Class TableName

java.lang.Object
org.apache.derby.impl.sql.compile.QueryTreeNode
org.apache.derby.impl.sql.compile.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 Details

    • tableName

      String tableName
    • schemaName

      String schemaName
    • hasSchema

      private boolean hasSchema
  • Constructor Details

    • TableName

      TableName(String schemaName, 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(String schemaName, 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 Details

    • getTableName

      public 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 String getSchemaName()
      Get the schema name.
      Returns:
      Schema name as a String
    • setSchemaName

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

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

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

      public 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(String otherSchemaName, 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 Object
      Returns:
      hash code for this table name
    • equals

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