| Modifier and Type | Field and Description |
|---|---|
| private final Activation | |
| private ConglomerateController | |
| private final FormatableBitSet | |
| private final boolean | |
| private BackingStoreHashtable | |
| private ConglomerateController | |
| private final long | |
| private final DynamicCompiledOpenConglomInfo | |
| private final String | |
| private ScanController | |
| private final StaticCompiledOpenConglomInfo | |
| private final IndexRowGenerator | |
| private int | |
| private final LanguageConnectionContext | |
| private final int | |
| private ExecIndexRow | |
| private ExecIndexRow | |
| private boolean | |
| private TemporaryRowHolderImpl | |
| private boolean | |
| private final TransactionController | |
| private UUID |
| Access | Constructor and Description |
|---|---|
| pack-priv | IndexChanger(IndexRowGenerator
the IndexRowGenerator for the index. irg, long the conglomerate id for the index. indexCID, StaticCompiledOpenConglomInfo the SCOCI for the indexes. indexSCOCI, DynamicCompiledOpenConglomInfo the DCOCI for the indexes. indexDCOCI, String indexName, ConglomerateController the ConglomerateController for the base table. baseCC, TransactionController The TransactionController tc, int The lock mode (granularity) to use lockMode, FormatableBitSet Map of columns read in. 1 based. baseRowReadMap, int Isolation level to use. isolationLevel, Activation Current activation activation)Create an IndexChanger |
| Modifier and Type | Method and Description |
|---|---|
| pack-priv void | |
| private void | |
| private void | |
| pack-priv void | delete(ExecRow
the base table row. baseRow, RowLocation the base table row's location. baseRowLocation)Perform index maintenance to support a delete of a base table row. |
| private void | doDeferredInsert()
Insert a row into the temporary conglomerate This opens our deferred ConglomeratController the first time it is called. |
| private void | |
| private void | |
| pack-priv void | |
| private UUID | |
| private boolean | Returns: Nothing.Determine whether or not any columns in the current index row are being changed by the update. |
| pack-priv void | insert(ExecRow
the base table row. newRow, RowLocation the base table row's location. baseRowLocation)Perform index maintenance to support an insert of a base table row. |
| private void | insertAndCheckDups(ExecIndexRow
The row to insert row)Insert the given row into the given conglomerate and check for duplicate key error. |
| pack-priv void | insertForUpdate(ExecRow
the base table row. newRow, RowLocation the base table row's location. baseRowLocation)If we're updating a unique index, the inserts have to be deferred. |
| pack-priv void | |
| private ConglomerateController | Returns: The ConglomerateController for this index.Open the ConglomerateController for this index if it isn't open yet. |
| pack-priv void | setBaseCC(ConglomerateController
The heap's ConglomerateController. baseCC)Propagate the heap's ConglomerateController to this index changer. |
| private void | setOurIndexRow(ExecRow
a base table row. baseRow, RowLocation baseRowLoc baseRow's location baseRowLoc)Set the column values for 'ourIndexRow' to refer to a base table row and location provided by the caller. |
| private void | setOurUpdatedIndexRow(ExecRow
a base table row. baseRow, RowLocation baseRowLoc baseRow's location baseRowLoc)Set the column values for 'ourUpdatedIndexRow' to refer to a base table row and location provided by the caller. |
| pack-priv void | setRowHolder(TemporaryRowHolderImpl
the row holder rowHolder)Set the row holder for this changer to use. |
| private void | |
| pack-priv void | update(ExecRow
the old image of the base table row. oldBaseRow, ExecRow the new image of the base table row. newBaseRow, RowLocation the base table row's location. baseRowLocation)Perform index maintenance to support an update of a base table row. |
| activation | back to summary |
|---|---|
| private final Activation activation | |
| baseCC | back to summary |
|---|---|
| private ConglomerateController baseCC | |
| baseRowReadMap | back to summary |
|---|---|
| private final FormatableBitSet baseRowReadMap | |
| deferrable | back to summary |
|---|---|
| private final boolean deferrable | |
| deferredDuplicates | back to summary |
|---|---|
| private BackingStoreHashtable deferredDuplicates | |
| indexCC | back to summary |
|---|---|
| private ConglomerateController indexCC | |
| indexCID | back to summary |
|---|---|
| private final long indexCID | |
| indexDCOCI | back to summary |
|---|---|
| private final DynamicCompiledOpenConglomInfo indexDCOCI | |
| indexName | back to summary |
|---|---|
| private final String indexName | |
| indexSC | back to summary |
|---|---|
| private ScanController indexSC | |
| indexSCOCI | back to summary |
|---|---|
| private final StaticCompiledOpenConglomInfo indexSCOCI | |
| irg | back to summary |
|---|---|
| private final IndexRowGenerator irg | |
| isolationLevel | back to summary |
|---|---|
| private int isolationLevel | |
| lcc | back to summary |
|---|---|
| private final LanguageConnectionContext lcc | |
| lockMode | back to summary |
|---|---|
| private final int lockMode | |
| ourIndexRow | back to summary |
|---|---|
| private ExecIndexRow ourIndexRow | |
| ourUpdatedIndexRow | back to summary |
|---|---|
| private ExecIndexRow ourUpdatedIndexRow | |
| ownIndexSC | back to summary |
|---|---|
| private boolean ownIndexSC | |
| rowHolder | back to summary |
|---|---|
| private TemporaryRowHolderImpl rowHolder | |
| rowHolderPassedIn | back to summary |
|---|---|
| private boolean rowHolderPassedIn | |
| tc | back to summary |
|---|---|
| private final TransactionController tc | |
| uniqueConstraintId | back to summary |
|---|---|
| private UUID uniqueConstraintId | |
| IndexChanger | back to summary |
|---|---|
| pack-priv IndexChanger(IndexRowGenerator irg, long indexCID, StaticCompiledOpenConglomInfo indexSCOCI, DynamicCompiledOpenConglomInfo indexDCOCI, String indexName, ConglomerateController baseCC, TransactionController tc, int lockMode, FormatableBitSet baseRowReadMap, int isolationLevel, Activation activation) throws StandardException Create an IndexChanger
| |
| close | back to summary |
|---|---|
| pack-priv void close() throws StandardException Close this IndexChanger.
| |
| closeIndexCC | back to summary |
|---|---|
| private void closeIndexCC() throws StandardException Close our index Conglomerate Controller | |
| closeIndexSC | back to summary |
|---|---|
| private void closeIndexSC() throws StandardException Close our index ScanController. | |
| delete | back to summary |
|---|---|
| pack-priv void delete(ExecRow baseRow, RowLocation baseRowLocation) throws StandardException Perform index maintenance to support a delete of a base table row.
| |
| doDeferredInsert | back to summary |
|---|---|
| private void doDeferredInsert() throws StandardException Insert a row into the temporary conglomerate This opens our deferred ConglomeratController the first time it is called.
| |
| doDelete | back to summary |
|---|---|
| private void doDelete() throws StandardException Delete a row from our index. This assumes our index ScanController is positioned before the row by setScan if we own the SC, otherwise it is positioned on the row by the underlying index scan. This verifies the row exists and is unique.
| |
| doInsert | back to summary |
|---|---|
| private void doInsert() throws StandardException Insert a row into our indes. This opens our index ConglomeratController the first time it is called.
| |
| finish | back to summary |
|---|---|
| pack-priv void finish() throws StandardException Finish doing the changes for this index. This is intended for deferred inserts for unique indexes. It has no effect unless we are doing an update of a unique index.
| |
| getUniqueConstraintId | back to summary |
|---|---|
| private UUID getUniqueConstraintId() throws StandardException | |
| indexRowChanged | back to summary |
|---|---|
| private boolean indexRowChanged() throws StandardException Determine whether or not any columns in the current index row are being changed by the update. No need to update the index if no columns changed.
| |
| insert | back to summary |
|---|---|
| pack-priv void insert(ExecRow newRow, RowLocation baseRowLocation) throws StandardException Perform index maintenance to support an insert of a base table row.
| |
| insertAndCheckDups | back to summary |
|---|---|
| private void insertAndCheckDups(ExecIndexRow row) throws StandardException Insert the given row into the given conglomerate and check for duplicate key error.
| |
| insertForUpdate | back to summary |
|---|---|
| pack-priv void insertForUpdate(ExecRow newRow, RowLocation baseRowLocation) throws StandardException If we're updating a unique index, the inserts have to be deferred. This is to avoid uniqueness violations that are only temporary. If we do all the deletes first, only "true" uniqueness violations can happen. We do this here, rather than in open(), because this is the only operation that requires deferred inserts, and we only want to create the conglomerate if necessary.
| |
| open | back to summary |
|---|---|
| pack-priv void open() throws StandardException Open this IndexChanger.
| |
| openIndexCC | back to summary |
|---|---|
| private ConglomerateController openIndexCC() throws StandardException Open the ConglomerateController for this index if it isn't open yet.
| |
| setBaseCC | back to summary |
|---|---|
| pack-priv void setBaseCC(ConglomerateController baseCC) Propagate the heap's ConglomerateController to this index changer.
| |
| setOurIndexRow | back to summary |
|---|---|
| private void setOurIndexRow(ExecRow baseRow, RowLocation baseRowLoc) throws StandardException Set the column values for 'ourIndexRow' to refer to a base table row and location provided by the caller. The idea here is to
| |
| setOurUpdatedIndexRow | back to summary |
|---|---|
| private void setOurUpdatedIndexRow(ExecRow baseRow, RowLocation baseRowLoc) throws StandardException Set the column values for 'ourUpdatedIndexRow' to refer to a base table row and location provided by the caller. The idea here is to
| |
| setRowHolder | back to summary |
|---|---|
| pack-priv void setRowHolder(TemporaryRowHolderImpl rowHolder) Set the row holder for this changer to use. If the row holder is set, it wont bother saving copies of rows needed for deferred processing. Also, it will never close the passed in rowHolder.
| |
| setScan | back to summary |
|---|---|
| private void setScan() throws StandardException Position our index scan to 'ourIndexRow'. This creates the scan the first time it is called.
| |
| update | back to summary |
|---|---|
| pack-priv void update(ExecRow oldBaseRow, ExecRow newBaseRow, RowLocation baseRowLocation) throws StandardException Perform index maintenance to support an update of a base table row.
| |