Package org.apache.derby.iapi.sql.dictionary

Examples of org.apache.derby.iapi.sql.dictionary.IndexRowGenerator


                   0, 0, 0.0, null);
        }
      }
      else
      {
        IndexRowGenerator irg =
              currentConglomerateDescriptor.getIndexDescriptor();

        int[] baseColumnPositions = irg.baseColumnPositions();
        boolean[] isAscending = irg.isAscending();

        for (int i = 0; i < baseColumnPositions.length; i++)
        {
          /*
          ** Don't add the column to the ordering if it's already
View Full Code Here


   * @exception StandardException    Thrown on error
   */
  public boolean isCoveringIndex(ConglomerateDescriptor cd) throws StandardException
  {
    boolean coveringIndex = true;
    IndexRowGenerator  irg;
    int[]        baseCols;
    int          colPos;

    /* You can only be a covering index if you're an index */
    if ( ! cd.isIndex())
      return false;

    irg = cd.getIndexDescriptor();
    baseCols = irg.baseColumnPositions();

    /* First we check to see if this is a covering index */
    int rclSize = resultColumns.size();
    for (int index = 0; index < rclSize; index++)
    {
View Full Code Here

                    ConglomerateDescriptor idxCD,
                    ConglomerateDescriptor heapCD,
                    boolean cloneRCs)
            throws StandardException
  {
    IndexRowGenerator  irg = idxCD.getIndexDescriptor();
    int[]        baseCols = irg.baseColumnPositions();
    ResultColumnList  newCols =
                (ResultColumnList) getNodeFactory().getNode(
                        C_NodeTypes.RESULT_COLUMN_LIST,
                        getContextManager());
View Full Code Here

    if (! cd.isIndex())
    {
      return false;
    }

    IndexRowGenerator irg =
      cd.getIndexDescriptor();

    // is this a unique index
    if (! irg.isUnique())
    {
      return false;
    }

    int[] baseColumnPositions = irg.baseColumnPositions();

    DataDictionary dd = getDataDictionary();

    // Do we have an exact match on the full key
    for (int index = 0; index < baseColumnPositions.length; index++)
View Full Code Here

    ExecIndexRow        indexableRow;
    int              numColumns;
    long            conglomId;
    RowLocation          rl;
    CatalogRowFactory      rf = ti.getCatalogRowFactory();
    IndexRowGenerator      irg;
    ConglomerateDescriptor  conglomerateDescriptor;

    initSystemIndexVariables(ddg, ti, indexNumber);

    irg = ti.getIndexRowGenerator(indexNumber);

    numColumns = ti.getIndexColumnCount(indexNumber);

    /* Is the index unique */
    isUnique = ti.isIndexUnique(indexNumber);

    // create an index row template
    indexableRow = irg.getIndexRowTemplate();

    baseRow = rf.makeEmptyRow();

    // Get a RowLocation template
    cc = tc.openConglomerate(
      heapConglomerateNumber, false, 0,
            TransactionController.MODE_RECORD,
      TransactionController.ISOLATION_REPEATABLE_READ);

    rl = cc.newRowLocationTemplate();
    cc.close();

    // Get an index row based on the base row
    irg.getIndexRow(baseRow, rl, indexableRow, (FormatableBitSet) null);

    // Describe the properties of the index to the store using Properties
    // RESOLVE: The following properties assume a BTREE index.
    Properties  indexProperties = ti.getCreateIndexProperties(indexNumber);

View Full Code Here

    boolean[] isAscending = new boolean[baseColumnPositions.length];
    for (int i = 0; i < baseColumnPositions.length; i++)
      isAscending[i]        = true;

        IndexRowGenerator irg = null;

        if (softwareVersion.checkVersion(
                DataDictionary.DD_VERSION_DERBY_10_4,null))
        {
            irg = new IndexRowGenerator(
                "BTREE", ti.isIndexUnique(indexNumber),
                false,
                baseColumnPositions,
                isAscending,
                baseColumnPositions.length);
        }
        else
        {
            //older version of Data Disctionary
            //use old constructor
            irg = new IndexRowGenerator (
                "BTREE", ti.isIndexUnique(indexNumber),
                baseColumnPositions,
                isAscending,
                baseColumnPositions.length);
        }
View Full Code Here

    int            indexNumber
    )
    throws StandardException
  {
    long            indexConglomerateNumber = tabInfo.getIndexConglomerate( indexNumber );
    IndexRowGenerator      indexRowGenerator = tabInfo.getIndexRowGenerator( indexNumber );
    CatalogRowFactory      rowFactory = tabInfo.getCatalogRowFactory();
    ExecRow            heapRow = rowFactory.makeEmptyRow();
    ExecIndexRow        indexableRow = indexRowGenerator.getIndexRowTemplate();

    ScanController        heapScan =
      tc.openScan(
        heapConglomerateNumber,       // conglomerate to open
        false,                          // don't hold open across commit
        0,                              // for read
                TransactionController.MODE_TABLE,
                TransactionController.ISOLATION_REPEATABLE_READ,
        (FormatableBitSet) null,                 // all fields as objects
        null,                           // start position - first row
        ScanController.GE,              // startSearchOperation
        null,                           //scanQualifier,
        null,                           //stop position-through last row
        ScanController.GT);             // stopSearchOperation

    RowLocation          heapLocation =
            heapScan.newRowLocationTemplate();

    ConglomerateController    indexController =
      tc.openConglomerate(
        indexConglomerateNumber,
                false,
        TransactionController.OPENMODE_FORUPDATE,
        TransactionController.MODE_TABLE,
        TransactionController.ISOLATION_REPEATABLE_READ);

    while ( heapScan.fetchNext(heapRow.getRowArray()) )
        {
       heapScan.fetchLocation( heapLocation );

      indexRowGenerator.getIndexRow( heapRow, heapLocation, indexableRow, (FormatableBitSet) null );

      indexController.insert(indexableRow.getRowArray());
    }

    indexController.close();
View Full Code Here

                   0, 0, 0.0, null);
        }
      }
      else
      {
        IndexRowGenerator irg =
              currentConglomerateDescriptor.getIndexDescriptor();

        int[] baseColumnPositions = irg.baseColumnPositions();
        boolean[] isAscending = irg.isAscending();

        for (int i = 0; i < baseColumnPositions.length; i++)
        {
          //Check if the order by column has equijoin on another
          //column which is already identified as an ordered column
View Full Code Here

   * @exception StandardException    Thrown on error
   */
  public boolean isCoveringIndex(ConglomerateDescriptor cd) throws StandardException
  {
    boolean coveringIndex = true;
    IndexRowGenerator  irg;
    int[]        baseCols;
    int          colPos;

    /* You can only be a covering index if you're an index */
    if ( ! cd.isIndex())
      return false;

    irg = cd.getIndexDescriptor();
    baseCols = irg.baseColumnPositions();

    /* First we check to see if this is a covering index */
    int rclSize = resultColumns.size();
    for (int index = 0; index < rclSize; index++)
    {
View Full Code Here

                    ConglomerateDescriptor idxCD,
                    ConglomerateDescriptor heapCD,
                    boolean cloneRCs)
            throws StandardException
  {
    IndexRowGenerator  irg = idxCD.getIndexDescriptor();
    int[]        baseCols = irg.baseColumnPositions();
    ResultColumnList  newCols =
                (ResultColumnList) getNodeFactory().getNode(
                        C_NodeTypes.RESULT_COLUMN_LIST,
                        getContextManager());
View Full Code Here

TOP

Related Classes of org.apache.derby.iapi.sql.dictionary.IndexRowGenerator

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.