Class BasicSortObserver

    • Field Detail

      • doClone

        protected boolean doClone
      • distinct

        protected boolean distinct
      • reuseWrappers

        private boolean reuseWrappers
    • Constructor Detail

      • BasicSortObserver

        public BasicSortObserver​(boolean doClone,
                                 boolean distinct,
                                 ExecRow execRow,
                                 boolean reuseWrappers)
        Simple constructor
        Parameters:
        doClone - If true, then rows that are retained by the sorter will be cloned. This is needed if language is reusing row wrappers.
        distinct - If true, toss out duplicates. Otherwise, retain them.
        execRow - ExecRow to use as source of clone for store.
        reuseWrappers - Whether or not we can reuse the wrappers
    • Method Detail

      • insertDuplicateKey

        public DataValueDescriptor[] insertDuplicateKey​(DataValueDescriptor[] insertRow,
                                                        DataValueDescriptor[] existingRow)
                                                 throws StandardException
        Called prior to inserting a duplicate sort key.
        Specified by:
        insertDuplicateKey in interface SortObserver
        Parameters:
        insertRow - the current row that the sorter is on the verge of retaining. It is a duplicate of existingRow.
        existingRow - the row that is already in the the sorter which is a duplicate of insertRow
        Returns:
        the row to be inserted by the sorter. If null, then nothing is inserted by the sorter. Distinct sorts will want to return null.
        Throws:
        StandardException - never thrown
      • deferred

        public boolean deferred()
        Description copied from interface: SortObserver
        Overridden by subclasses that observe sorters with uniqueness checking.
        Specified by:
        deferred in interface SortObserver
        Returns:
        true if constraint mode of the index's constraint is effectively deferred. Any SortObserver implementations that implement uniqueness checking need to keep track of this information.
      • deferrable

        public boolean deferrable()
        Description copied from interface: SortObserver
        Overridden by subclasses that observe sorters with uniqueness checking.
        Specified by:
        deferrable in interface SortObserver
        Returns:
        true if the index's constraint is deferrable. Any SortObserver implementations that implement uniqueness checking need to keep track of this information.
      • rememberDuplicate

        public void rememberDuplicate​(DataValueDescriptor[] row)
                               throws StandardException
        Description copied from interface: SortObserver
        Overridden by subclasses that observe sorters with uniqueness checking. Will be called by sorters iff deferrable() and deferred() and uniqueness violation, so implementations that sometimes return true to these must implement this method to save duplicate information till commit time.
        Specified by:
        rememberDuplicate in interface SortObserver
        Parameters:
        row - data of offending key
        Throws:
        StandardException - standard error policy