Class GenericColumnDescriptor

    • Field Detail

      • name

        private java.lang.String name
        This class implements Formatable. That means that it can write itself to and from a formatted stream. If you add more fields to this class, make sure that you also write/read them with the writeExternal()/readExternal() methods. If, inbetween releases, you add more fields to this class, then you should bump the version number emitted by the getTypeFormatId() method.
      • schemaName

        private java.lang.String schemaName
      • tableName

        private java.lang.String tableName
      • columnPos

        private int columnPos
      • isAutoincrement

        private boolean isAutoincrement
      • updatableByCursor

        private boolean updatableByCursor
      • hasGenerationClause

        private boolean hasGenerationClause
    • Constructor Detail

      • GenericColumnDescriptor

        public GenericColumnDescriptor()
        Niladic constructor for Formatable
      • GenericColumnDescriptor

        public GenericColumnDescriptor​(java.lang.String name,
                                       DataTypeDescriptor type)
      • GenericColumnDescriptor

        public GenericColumnDescriptor​(ResultColumnDescriptor rcd)
        This constructor is used to build a generic (and formatable) ColumnDescriptor. The idea is that it can be passed a ColumnDescriptor from a query tree and convert it to something that can be used anywhere.
        Parameters:
        rcd - the ResultColumnDescriptor
    • Method Detail

      • getType

        public DataTypeDescriptor getType()
        Returns a DataTypeDescriptor for the column. This DataTypeDescriptor will not represent an actual value, it will only represent the type that all values in the column will have.
        Specified by:
        getType in interface ResultColumnDescriptor
        Returns:
        A DataTypeDescriptor describing the type of the column.
      • getName

        public java.lang.String getName()
        Returns the name of the Column.
        Specified by:
        getName in interface ResultColumnDescriptor
        Returns:
        A String containing the name of the column.
      • getSourceSchemaName

        public java.lang.String getSourceSchemaName()
        Get the name of the schema for the Column's base table, if any. Following example queries will all return APP (assuming user is in schema APP) select t.a from t select b.a from t as b select app.t.a from t
        Specified by:
        getSourceSchemaName in interface ResultColumnDescriptor
        Returns:
        A String containing the name of the schema of the Column's table. If the column is not in a schema (i.e. is a derived column), it returns NULL.
      • getSourceTableName

        public java.lang.String getSourceTableName()
        Get the name of the underlying(base) table this column comes from, if any. Following example queries will all return T select a from t select b.a from t as b select t.a from t
        Specified by:
        getSourceTableName in interface ResultColumnDescriptor
        Returns:
        A String containing the name of the Column's base table. If the column is not in a table (i.e. is a derived column), it returns NULL.
      • getColumnPosition

        public int getColumnPosition()
        Get the position of the Column. NOTE - position is 1-based.
        Specified by:
        getColumnPosition in interface ResultColumnDescriptor
        Returns:
        An int containing the position of the Column within the table.
      • isAutoincrement

        public boolean isAutoincrement()
        Description copied from interface: ResultColumnDescriptor
        Tell us if the column is an autoincrement column or not.
        Specified by:
        isAutoincrement in interface ResultColumnDescriptor
        Returns:
        TRUE, if the column is a base column of a table and is an autoincrement column.
      • updatableByCursor

        public boolean updatableByCursor()
        Description copied from interface: ResultColumnDescriptor
        Return true if the column is wirtable by a positioned update.
        Specified by:
        updatableByCursor in interface ResultColumnDescriptor
        Returns:
        TRUE, if the column is a base column of a table and is writable by a positioned update.
      • writeExternal

        public void writeExternal​(java.io.ObjectOutput out)
                           throws java.io.IOException
        Write this object out
        Specified by:
        writeExternal in interface java.io.Externalizable
        Parameters:
        out - write bytes here
        Throws:
        java.io.IOException - thrown on error
      • readExternal

        public void readExternal​(java.io.ObjectInput in)
                          throws java.io.IOException,
                                 java.lang.ClassNotFoundException
        Read this object from a stream of stored objects.
        Specified by:
        readExternal in interface java.io.Externalizable
        Parameters:
        in - read this.
        Throws:
        java.io.IOException - thrown on error
        java.lang.ClassNotFoundException - thrown on error
      • getTypeFormatId

        public int getTypeFormatId()
        Get the formatID which corresponds to this class.
        Specified by:
        getTypeFormatId in interface TypedFormat
        Returns:
        the formatID of this class
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • getStoredDataTypeDescriptor

        private DataTypeDescriptor getStoredDataTypeDescriptor​(java.lang.Object o)
        When retrieving a DataTypeDescriptor, it might just be a regular DataTypeDescriptor or may be an OldRoutineType, as used for Routine parameters and return values prior to DERBY-2775. If it is not a regular DataTypeDescriptor, it must be an OldRoutineType, so convert it to a DataTypeDescriptor DERBY-4913
        Parameters:
        o - object as obtained by fh.get("type") in readExternal
        Returns:
        DataTypeDescriptor