Class TableName

  • All Implemented Interfaces:
    Visitable

    public class TableName
    extends QueryTreeNode
    A TableName represents a qualified name, externally represented as a schema name and an object name separated by a dot. This class is misnamed: it is used to represent the names of other object types in addition to tables.
    • Field Detail

      • tableName

        java.lang.String tableName
      • schemaName

        java.lang.String schemaName
      • hasSchema

        private boolean hasSchema
    • Constructor Detail

      • TableName

        TableName​(java.lang.String schemaName,
                  java.lang.String tableName,
                  ContextManager cm)
        Constructor for when we have both the table and schema names.
        Parameters:
        schemaName - The name of the schema being referenced
        tableName - The name of the table or other object being referenced
        cm - The context manager
      • TableName

        TableName​(java.lang.String schemaName,
                  java.lang.String tableName,
                  int tokBeginOffset,
                  int tokEndOffset,
                  ContextManager cm)
        Constructor for when we have both the table and schema names.
        Parameters:
        schemaName - The name of the schema being referenced
        tableName - The name of the table or other object being referenced
        tokBeginOffset - begin position of token for the table name identifier from parser. pass in -1 if unknown
        tokEndOffset - end position of token for the table name identifier from parser. pass in -1 if unknown
        cm - The context manager
    • Method Detail

      • getTableName

        public java.lang.String getTableName()
        Get the table name (without the schema name).
        Returns:
        Table name as a String
      • hasSchema

        public boolean hasSchema()
        Return true if this instance was initialized with not null schemaName.
        Returns:
        true if this instance was initialized with not null schemaName
      • getSchemaName

        public java.lang.String getSchemaName()
        Get the schema name.
        Returns:
        Schema name as a String
      • setSchemaName

        void setSchemaName​(java.lang.String schemaName)
        Set the schema name.
        Parameters:
        schemaName - Schema name as a String
      • getFullTableName

        java.lang.String getFullTableName()
        Get the full table name (with the schema name, if explicitly specified).
        Returns:
        Full table name as a String
      • getFullSQLName

        public java.lang.String getFullSQLName()
        Get the full SQL name of this object, properly quoted and escaped.
      • toString

        public java.lang.String toString()
        Convert this object to a String. See comments in QueryTreeNode.java for how this should be done for tree printing.
        Overrides:
        toString in class QueryTreeNode
        Returns:
        This object as a String
      • equals

        boolean equals​(TableName otherTableName)
        2 TableNames are equal if their both their schemaNames and tableNames are equal, or if this node's full table name is null (which happens when a SELECT * is expanded). Also, only check table names if the schema name(s) are null.
        Parameters:
        otherTableName - The other TableName.
        Returns:
        boolean Whether or not the 2 TableNames are equal.
      • equals

        boolean equals​(java.lang.String otherSchemaName,
                       java.lang.String otherTableName)
        2 TableNames are equal if their both their schemaNames and tableNames are equal, or if this node's full table name is null (which happens when a SELECT * is expanded). Also, only check table names if the schema name(s) are null.
        Parameters:
        otherSchemaName - The other TableName.
        otherTableName - The other TableName.
        Returns:
        boolean Whether or not the 2 TableNames are equal.
      • cloneMe

        public TableName cloneMe()
        Clone this TableName
      • bind

        void bind()
           throws StandardException
        Bind this TableName. This means filling in the schema name if it wasn't specified.
        Throws:
        StandardException - Thrown on error
      • hashCode

        public int hashCode()
        Returns a hash code for this tableName. This allows us to use TableNames as keys in hash lists.
        Overrides:
        hashCode in class java.lang.Object
        Returns:
        hash code for this table name
      • equals

        public boolean equals​(java.lang.Object other)
        Compares two TableNames. Needed for hashing logic to work.
        Overrides:
        equals in class java.lang.Object
        Parameters:
        other - other tableName