Пример #1
0
  /**
   * Create an IndexChanger
   *
   * @param irg the IndexRowGenerator for the index.
   * @param indexCID the conglomerate id for the index.
   * @param indexSCOCI the SCOCI for the idexes.
   * @param indexDCOCI the DCOCI for the idexes.
   * @param baseCC the ConglomerateController for the base table.
   * @param tc The TransactionController
   * @param lockMode The lock mode (granularity) to use
   * @param baseRowReadMap Map of columns read in. 1 based.
   * @param isolationLevel Isolation level to use.
   * @param activation Current activation
   * @exception StandardException Thrown on error
   */
  public 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 {
    this.irg = irg;
    this.indexCID = indexCID;
    this.indexSCOCI = indexSCOCI;
    this.indexDCOCI = indexDCOCI;
    this.baseCC = baseCC;
    this.tc = tc;
    this.lockMode = lockMode;
    this.baseRowReadMap = baseRowReadMap;
    this.rowHolderPassedIn = false;
    this.isolationLevel = isolationLevel;
    this.activation = activation;
    this.indexName = indexName;

    // activation will be null when called from DataDictionary
    if (activation != null && activation.getIndexConglomerateNumber() == indexCID) {
      ownIndexSC = false;
    }

    if (SanityManager.DEBUG) {
      SanityManager.ASSERT(tc != null, "TransactionController argument to constructor is null");
      SanityManager.ASSERT(irg != null, "IndexRowGenerator argument to constructor is null");
    }
  }