Class IndexDescriptorImpl

    • Constructor Summary

      Constructors 
      Constructor Description
      IndexDescriptorImpl()
      Zero-argument constructor for Formatable interface
      IndexDescriptorImpl​(java.lang.String indexType, boolean isUnique, boolean isUniqueWithDuplicateNulls, boolean isUniqueDeferrable, boolean hasDeferrableChecking, int[] baseColumnPositions, boolean[] isAscending, int numberOfOrderedColumns)
      Constructor for an IndexDescriptorImpl
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      int[] baseColumnPositions()
      Returns an array of column positions in the base table.
      boolean equals​(java.lang.Object other)
      Test for value equality
      int getKeyColumnPosition​(int heapColumnPosition)
      Returns the postion of a column.
      int getTypeFormatId()
      Get a universally unique identifier for the type of this object.
      boolean hasDeferrableChecking()
      Returns true if the index is used to support a deferrable constraint.
      int hashCode()  
      java.lang.String indexType()
      Returns the type of the index.
      boolean[] isAscending()
      Returns array of boolean telling asc/desc info for each index key column for convenience of using together with baseColumnPositions method.
      boolean isAscending​(java.lang.Integer keyColumnPosition)
      Returns true if the specified column is ascending in the index (1-based).
      boolean isDescending​(java.lang.Integer keyColumnPosition)
      Returns true if the specified column is descending in the index (1-based).
      boolean isUnique()
      Returns true if the index is unique.
      boolean isUniqueDeferrable()
      The index represents a PRIMARY KEY or a UNIQUE NOT NULL constraint which is deferrable.
      boolean isUniqueWithDuplicateNulls()
      Returns true if the index is duplicate keys only for null key parts.
      int numberOfOrderedColumns()
      Returns the number of ordered columns.
      void readExternal​(java.io.ObjectInput in)  
      void setBaseColumnPositions​(int[] baseColumnPositions)
      set the baseColumnPositions field of the index descriptor.
      void setIsAscending​(boolean[] isAscending)
      set the isAscending field of the index descriptor.
      void setNumberOfOrderedColumns​(int numberOfOrderedColumns)
      set the numberOfOrderedColumns field of the index descriptor.
      java.lang.String toString()  
      void writeExternal​(java.io.ObjectOutput out)  
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    • Field Detail

      • isUnique

        private boolean isUnique
        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, in between releases, you add more fields to this class, then you should bump the version number emitted by the getTypeFormatId() method.
      • baseColumnPositions

        private int[] baseColumnPositions
      • isAscending

        private boolean[] isAscending
      • numberOfOrderedColumns

        private int numberOfOrderedColumns
      • indexType

        private java.lang.String indexType
      • isUniqueWithDuplicateNulls

        private boolean isUniqueWithDuplicateNulls
      • isUniqueDeferrable

        private boolean isUniqueDeferrable
        The index represents a PRIMARY KEY or a UNIQUE NOT NULL constraint which is deferrable. true implies isUnique == false and isUniqueWithDuplicateNulls == false and hasDeferrableChecking == true.
      • hasDeferrableChecking

        private boolean hasDeferrableChecking
        The index represents a constraint which is deferrable.
    • Constructor Detail

      • IndexDescriptorImpl

        public IndexDescriptorImpl​(java.lang.String indexType,
                                   boolean isUnique,
                                   boolean isUniqueWithDuplicateNulls,
                                   boolean isUniqueDeferrable,
                                   boolean hasDeferrableChecking,
                                   int[] baseColumnPositions,
                                   boolean[] isAscending,
                                   int numberOfOrderedColumns)
        Constructor for an IndexDescriptorImpl
        Parameters:
        indexType - The type of index
        isUnique - True means the index is unique
        isUniqueWithDuplicateNulls - True means the index will be unique for non null values but duplicate nulls will be allowed. This parameter has no effect if the isUnique is true. If isUnique is false and isUniqueWithDuplicateNulls is set to true the index will allow duplicate nulls but for non null keys will act like a unique index.
        isUniqueDeferrable - True means the index represents a PRIMARY KEY or a UNIQUE NOT NULL constraint which is deferrable.
        hasDeferrableChecking - True if this index supports a deferrable constraint.
        baseColumnPositions - An array of column positions in the base table. Each index column corresponds to a column position in the base table.
        isAscending - An array of booleans telling asc/desc on each column.
        numberOfOrderedColumns - In the future, it will be possible to store non-ordered columns in an index. These will be useful for covered queries.
      • IndexDescriptorImpl

        public IndexDescriptorImpl()
        Zero-argument constructor for Formatable interface
    • Method Detail

      • hasDeferrableChecking

        public boolean hasDeferrableChecking()
        Description copied from interface: IndexDescriptor
        Returns true if the index is used to support a deferrable constraint.
        Specified by:
        hasDeferrableChecking in interface IndexDescriptor
        Returns:
        true is the index supports a deferrable constraint
      • isUniqueDeferrable

        public boolean isUniqueDeferrable()
        The index represents a PRIMARY KEY or a UNIQUE NOT NULL constraint which is deferrable. true implies #isUnique() == false and #isUniqueWithDuplicateNulls() == false and #hasDeferrableChecking() == true.
        Specified by:
        isUniqueDeferrable in interface IndexDescriptor
        Returns:
        true is the index supports such a constraint
      • baseColumnPositions

        public int[] baseColumnPositions()
        Description copied from interface: IndexDescriptor
        Returns an array of column positions in the base table. Each index column corresponds to a column position in the base table, except the column representing the location of the row in the base table. The returned array holds the column positions in the base table, so, if entry 2 is the number 4, the second column in the index is the fourth column in the table.
        Specified by:
        baseColumnPositions in interface IndexDescriptor
        See Also:
        IndexDescriptor.baseColumnPositions()
      • numberOfOrderedColumns

        public int numberOfOrderedColumns()
        Description copied from interface: IndexDescriptor
        Returns the number of ordered columns.

        In the future, it will be possible to store non-ordered columns in an index. These will be useful for covered queries. The ordered columns will be at the beginning of the index row, and they will be followed by the non-ordered columns. For now, all columns in an index must be ordered.

        Specified by:
        numberOfOrderedColumns in interface IndexDescriptor
        See Also:
        IndexDescriptor.numberOfOrderedColumns()
      • isAscending

        public boolean[] isAscending()
        Description copied from interface: IndexDescriptor
        Returns array of boolean telling asc/desc info for each index key column for convenience of using together with baseColumnPositions method. Both methods return an array with subscript starting from 0.
        Specified by:
        isAscending in interface IndexDescriptor
        See Also:
        IndexDescriptor.isAscending()
      • toString

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

        public void readExternal​(java.io.ObjectInput in)
                          throws java.io.IOException,
                                 java.lang.ClassNotFoundException
        Specified by:
        readExternal in interface java.io.Externalizable
        Throws:
        java.io.IOException - Thrown on read error
        java.lang.ClassNotFoundException
        See Also:
        Externalizable.readExternal(java.io.ObjectInput)
      • writeExternal

        public void writeExternal​(java.io.ObjectOutput out)
                           throws java.io.IOException
        Specified by:
        writeExternal in interface java.io.Externalizable
        Throws:
        java.io.IOException - Thrown on write error
        See Also:
        Externalizable.writeExternal(java.io.ObjectOutput)
      • getTypeFormatId

        public int getTypeFormatId()
        Description copied from interface: TypedFormat
        Get a universally unique identifier for the type of this object.
        Specified by:
        getTypeFormatId in interface TypedFormat
        Returns:
        The identifier. (A UUID stuffed in an array of 16 bytes).
      • equals

        public boolean equals​(java.lang.Object other)
        Test for value equality
        Overrides:
        equals in class java.lang.Object
        Parameters:
        other - The other indexrowgenerator to compare this one with
        Returns:
        true if this indexrowgenerator has the same value as other
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
        See Also:
        Object.hashCode()