Class ConstraintDefinitionNode

    • Field Detail

      • constraintName

        private TableName constraintName
      • constraintType

        protected int constraintType
      • properties

        protected java.util.Properties properties
      • backingIndexName

        java.lang.String backingIndexName
      • backingIndexUUID

        UUID backingIndexUUID
      • constraintText

        java.lang.String constraintText
      • behavior

        private int behavior
      • verifyType

        private int verifyType
      • INITIALLY_DEFERRED_DEFAULT

        public static final boolean INITIALLY_DEFERRED_DEFAULT
        See Also:
        Constant Field Values
      • characteristics

        private boolean[] characteristics
        boolean[3]: {deferrable?, initiallyDeferred?, enforced?}
    • Constructor Detail

      • ConstraintDefinitionNode

        ConstraintDefinitionNode​(TableName constraintName,
                                 int constraintType,
                                 ResultColumnList rcl,
                                 java.util.Properties properties,
                                 ValueNode checkCondition,
                                 java.lang.String constraintText,
                                 int behavior,
                                 int verifyType,
                                 ContextManager cm)
    • Method Detail

      • setCharacteristics

        void setCharacteristics​(boolean[] cc)
      • getCharacteristics

        boolean[] getCharacteristics()
      • 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 TableElementNode
        Returns:
        This object as a String
      • getConstraintMoniker

        java.lang.String getConstraintMoniker()
        Get the name of the constraint. If the user didn't provide one, we make one up. This allows Replication to agree with the core compiler on the names of constraints.
        Returns:
        constraint name
      • getDropSchemaName

        java.lang.String getDropSchemaName()
        To support dropping existing constraints that may have mismatched schema names we need to support ALTER TABLE S1.T DROP CONSTRAINT S2.C. If a constraint name was specified this returns it, otherwise it returns null.
      • getBackingIndexUUID

        UUID getBackingIndexUUID()
        Allocates a UUID if one doesn't already exist for the index backing this constraint. This allows Replication logic to agree with the core compiler on what the UUIDs of indices are.
        Returns:
        a UUID for the constraint. allocates one if this is the first time this method is called.
      • getBackingIndexName

        java.lang.String getBackingIndexName​(DataDictionary dd)
        Gets a unique name for the backing index for this constraint of the form SQLyymmddhhmmssxxn yy - year, mm - month, dd - day of month, hh - hour, mm - minute, ss - second, xx - the first 2 digits of millisec because we don't have enough space to keep the exact millisec value, n - number between 0-9
        Returns:
        name of backing index
      • setAuxiliaryProviderList

        void setAuxiliaryProviderList​(ProviderList apl)
        Set the auxiliary provider list.
        Parameters:
        apl - The new auxiliary provider list.
      • getAuxiliaryProviderList

        ProviderList getAuxiliaryProviderList()
        Return the auxiliary provider list.
        Returns:
        The auxiliary provider list.
      • hasPrimaryKeyConstraint

        boolean hasPrimaryKeyConstraint()
        Is this a primary key constraint.
        Overrides:
        hasPrimaryKeyConstraint in class TableElementNode
        Returns:
        boolean Whether or not this is a primary key constraint
      • hasUniqueKeyConstraint

        boolean hasUniqueKeyConstraint()
        Is this a unique key constraint.
        Overrides:
        hasUniqueKeyConstraint in class TableElementNode
        Returns:
        boolean Whether or not this is a unique key constraint
      • hasForeignKeyConstraint

        boolean hasForeignKeyConstraint()
        Is this a foreign key constraint.
        Overrides:
        hasForeignKeyConstraint in class TableElementNode
        Returns:
        boolean Whether or not this is a unique key constraint
      • hasCheckConstraint

        boolean hasCheckConstraint()
        Does this element have a check constraint.
        Overrides:
        hasCheckConstraint in class TableElementNode
        Returns:
        boolean Whether or not this element has a check constraint
      • hasConstraint

        boolean hasConstraint()
        Does this element have a constraint on it.
        Overrides:
        hasConstraint in class TableElementNode
        Returns:
        boolean Whether or not this element has a constraint on it
      • requiresBackingIndex

        boolean requiresBackingIndex()
        Does this constraint require a backing index for its implementation?
        Returns:
        boolean true if this constraint requires a backing index, i.e. if is a foreign key, primary key or unique key constraint
      • requiresUniqueIndex

        boolean requiresUniqueIndex()
        Is this a primary key or unique constraint?
        Returns:
        boolean true if this is a primary key or unique key constraint
      • getConstraintType

        int getConstraintType()
        Get the constraint type
        Returns:
        constraintType The constraint type.
      • setProperties

        void setProperties​(java.util.Properties properties)
        Set the optional properties for the backing index to this constraint.
        Parameters:
        properties - The optional Properties for this constraint.
      • getProperties

        java.util.Properties getProperties()
        Get the optional properties for the backing index to this constraint.
        Returns:
        The optional properties for the backing index to this constraint
      • isReferenced

        boolean isReferenced()
        Is this constraint referenced.
        Returns:
        true/false
      • getReferenceCount

        int getReferenceCount()
        Get the count of enabled fks that reference this constraint
        Returns:
        the number
      • isEnabled

        boolean isEnabled()
        Is this constraint enabled.
        Returns:
        true/false
      • getColumnList

        ResultColumnList getColumnList()
        Get the column list from this node.
        Returns:
        ResultColumnList The column list from this table constraint.
      • setColumnList

        void setColumnList​(ResultColumnList columnList)
        Set the column list for this node. This is useful for check constraints where the list of referenced columns is built at bind time.
        Parameters:
        columnList - The new columnList.
      • getCheckCondition

        ValueNode getCheckCondition()
        Get the check condition from this table constraint.
        Returns:
        The check condition from this node.
      • setCheckCondition

        void setCheckCondition​(ValueNode checkCondition)
        Set the check condition for this table constraint.
        Parameters:
        checkCondition - The check condition
      • getConstraintText

        java.lang.String getConstraintText()
        Get the text of the constraint. (Only meaningful for check constraints.)
        Returns:
        The constraint text.
      • getDropBehavior

        int getDropBehavior()
        Return the behavior of this constraint. See StatementType.DROP_CASCADE etc.
        Returns:
        the behavior
      • getVerifyType

        int getVerifyType()
        Returns:
        the expected type of the constraint, DataDictionary.DROP_CONSTRAINT if the constraint is to be dropped without checking its type.
      • getUUIDFactory

        private UUIDFactory getUUIDFactory()
        Get the UUID factory
        Returns:
        the UUID factory
      • acceptChildren

        void acceptChildren​(Visitor v)
                     throws StandardException
        Description copied from class: QueryTreeNode
        Accept a visitor on all child nodes. All sub-classes that add fields that should be visited, should override this method and call accept(v) on all visitable fields, as well as super.acceptChildren(v) to make sure all visitable fields defined by the super-class are accepted too.
        Overrides:
        acceptChildren in class QueryTreeNode
        Parameters:
        v - the visitor
        Throws:
        StandardException - on errors raised by the visitor
      • qualifyNames

        void qualifyNames()
                   throws StandardException
        Qualify all SQL object names in a CHECK constraint with schema name.
        Throws:
        StandardException - if an error occurs
      • getMonitor

        private static ModuleFactory getMonitor()
        Privileged Monitor lookup. Must be private so that user code can't call this entry point.