Package org.apache.derby.iapi.store.access

Examples of org.apache.derby.iapi.store.access.ConglomerateController


    public RowLocation getRowLocationTemplate(LanguageConnectionContext lcc,
                                              TableDescriptor td)
          throws StandardException
    {
      RowLocation       rl;
    ConglomerateController   heapCC = null;

    TransactionController tc =
      lcc.getTransactionCompile();

    long tableId = td.getHeapConglomerateId();
    heapCC =
            tc.openConglomerate(
                tableId, false, 0, tc.MODE_RECORD, tc.ISOLATION_READ_COMMITTED);
    try
    {
      rl = heapCC.newRowLocationTemplate();
    }
    finally
    {
      heapCC.close();
    }

    return rl;
    }
View Full Code Here


   */
  private int insertRowListImpl(ExecRow[] rowList, TransactionController tc, RowLocation[] rowLocationOut,
                   boolean wait)
    throws StandardException
  {
    ConglomerateController    heapController;
    RowLocation          heapLocation;
    ExecIndexRow        indexableRow;
    int              insertRetCode;
    int              retCode = ROWNOTDUPLICATE;
    int              indexCount = crf.getNumIndexes();
    ConglomerateController[]  indexControllers = new ConglomerateController[ indexCount ];

    // Open the conglomerates
    heapController =
            tc.openConglomerate(
                getHeapConglomerate(),
                false,
        (TransactionController.OPENMODE_FORUPDATE |
                    ((wait) ? 0 : TransactionController.OPENMODE_LOCK_NOWAIT)),
                TransactionController.MODE_RECORD,
                TransactionController.ISOLATION_REPEATABLE_READ);
   
    /* NOTE: Due to the lovely problem of trying to add
     * a new column to syscolumns and an index on that
     * column during upgrade, we have to deal with the
     * issue of the index not existing yet.  So, it's okay
     * if the index doesn't exist yet.  (It will magically
     * get created at a later point during upgrade.)
     */

    for ( int ictr = 0; ictr < indexCount; ictr++ )
    {
      long conglomNumber = getIndexConglomerate(ictr);
      if (conglomNumber > -1)
      {
        indexControllers[ ictr ] =
                tc.openConglomerate(
                  conglomNumber,
                        false,
            (TransactionController.OPENMODE_FORUPDATE |
                        ((wait) ? 0 : TransactionController.OPENMODE_LOCK_NOWAIT)),
              TransactionController.MODE_RECORD,
            TransactionController.ISOLATION_REPEATABLE_READ);
      }
    }

    heapLocation = heapController.newRowLocationTemplate();
    rowLocationOut[0]=heapLocation;

    // loop through rows on this list, inserting them into system table
    for (int rowNumber = 0; rowNumber < rowList.length; rowNumber++)
    {
      ExecRow row = rowList[rowNumber];
      // insert the base row and get its new location
      heapController.insertAndFetchLocation(row.getRowArray(), heapLocation);
     
      for ( int ictr = 0; ictr < indexCount; ictr++ )
        {
        if (indexControllers[ ictr ] == null)
        {
          continue;
        }

        // Get an index row based on the base row
        indexableRow = getIndexRowFromHeapRow( getIndexRowGenerator(ictr),
                             heapLocation,
                             row );

        insertRetCode =
                    indexControllers[ ictr ].insert(indexableRow.getRowArray());

        if ( insertRetCode == ConglomerateController.ROWISDUPLICATE )
        {
          retCode = rowNumber;
        }
      }

    }  // end loop through rows on list

    // Close the open conglomerates
    for ( int ictr = 0; ictr < indexCount; ictr++ )
    {
      if (indexControllers[ ictr ] == null)
      {
        continue;
      }

      indexControllers[ ictr ].close();
    }
    heapController.close();

    return  retCode;
  }
View Full Code Here

              int stopOp,
              int indexNumber,
              boolean wait)
     throws StandardException
  {
    ConglomerateController    heapCC;
    ScanController        drivingScan;
    ExecIndexRow         drivingIndexRow;
    RowLocation          baseRowLocation;
    RowChanger           rc;
    ExecRow            baseRow = crf.makeEmptyRow();
    int                         rowsDeleted = 0;
    boolean            passedFilter = true;
   
    rc = getRowChanger( tc, (int[])null,baseRow );

    /*
    ** If we have a start and a stop key, then we are going to
    ** get row locks, otherwise, we are getting table locks.
    ** This may be excessive locking for the case where there
    ** is a start key and no stop key or vice versa.
    */
    int lockMode = ((startKey != null) && (stopKey != null)) ?
        tc.MODE_RECORD :
        tc.MODE_TABLE;

    /*
    ** Don't use level 3 if we have the same start/stop key.
    */
    int isolation =
            ((startKey != null) && (stopKey != null) && (startKey == stopKey)) ?
        TransactionController.ISOLATION_REPEATABLE_READ :
        TransactionController.ISOLATION_SERIALIZABLE;

    // Row level locking
    rc.open(lockMode, wait);

    DataValueDescriptor[] startKeyRow =
            startKey == null ? null : startKey.getRowArray();

    DataValueDescriptor[] stopKeyRow =
            stopKey == null  ? null : stopKey.getRowArray();

    /* Open the heap conglomerate */
    heapCC = tc.openConglomerate(
                    getHeapConglomerate(),
                    false,
                    (TransactionController.OPENMODE_FORUPDATE |
                            ((wait) ? 0 : TransactionController.OPENMODE_LOCK_NOWAIT)),
                    lockMode,
                    TransactionController.ISOLATION_REPEATABLE_READ);

    drivingScan = tc.openScan(
      getIndexConglomerate(indexNumber)// conglomerate to open
      false, // don't hold open across commit
      (TransactionController.OPENMODE_FORUPDATE |
        ((wait) ? 0 : TransactionController.OPENMODE_LOCK_NOWAIT)),
            lockMode,
      isolation,
      (FormatableBitSet) null, // all fields as objects
      startKeyRow,   // start position - first row
            startOp,      // startSearchOperation
      qualifier, //scanQualifier
      stopKeyRow,   // stop position - through last row
            stopOp);     // stopSearchOperation

    // Get an index row based on the base row
    drivingIndexRow = getIndexRowFromHeapRow(
      getIndexRowGenerator( indexNumber ),
      heapCC.newRowLocationTemplate(),
      crf.makeEmptyRow());

    while (drivingScan.fetchNext(drivingIndexRow.getRowArray()))
    {
      baseRowLocation = (RowLocation)
            drivingIndexRow.getColumn(drivingIndexRow.nColumns());

      boolean base_row_exists =
                heapCC.fetch(
                    baseRowLocation, baseRow.getRowArray(), (FormatableBitSet) null);

            if (SanityManager.DEBUG)
            {
                // it can not be possible for heap row to disappear while
                // holding scan cursor on index at ISOLATION_REPEATABLE_READ.
                SanityManager.ASSERT(base_row_exists, "base row not found");
            }

      // only delete rows which pass the base-row filter
      if ( filter != null ) { passedFilter = filter.execute( baseRow ).equals( true ); }
      if ( passedFilter )
      {
        rc.deleteRow( baseRow, baseRowLocation );
        rowsDeleted++;
      }
    }

    heapCC.close();
    drivingScan.close();
    rc.close();
   
    return rowsDeleted;
  }
View Full Code Here

  ExecRow getRow( TransactionController tc,
            ExecIndexRow key,
            int indexNumber )
    throws StandardException
  {
    ConglomerateController    heapCC;

    /* Open the heap conglomerate */
    heapCC = tc.openConglomerate(
                    getHeapConglomerate(),
                    false,
                    0,             // for read only
                    TransactionController.MODE_RECORD,
                    TransactionController.ISOLATION_REPEATABLE_READ);

    try { return getRow( tc, heapCC, key, indexNumber ); }
    finally { heapCC.close(); }
  }
View Full Code Here

  RowLocation getRowLocation(TransactionController tc,
                    ExecIndexRow key,
                    int indexNumber)
        throws StandardException
  {
    ConglomerateController    heapCC;
    heapCC = tc.openConglomerate(
                    getHeapConglomerate(),
                    false,
                    0,             // for read only
                    TransactionController.MODE_RECORD,
                    TransactionController.ISOLATION_REPEATABLE_READ);

    try
    {
      RowLocation rl[] = new RowLocation[1];
      ExecRow notUsed = getRowInternal(tc, heapCC, key, indexNumber, rl);
      return rl[0];
    }
    finally
    {
      heapCC.close();
    }
  }
View Full Code Here

               int[]          colsToUpdate,
               TransactionController  tc,
               boolean wait)
    throws StandardException
  {
    ConglomerateController    heapCC;
    ScanController        drivingScan;
    ExecIndexRow         drivingIndexRow;
    RowLocation          baseRowLocation;
    ExecIndexRow        templateRow;
    ExecRow            baseRow = crf.makeEmptyRow();

    if (SanityManager.DEBUG)
    {
      SanityManager.ASSERT( indicesToUpdate.length == crf.getNumIndexes(),
                 "Wrong number of indices." );
    }

    RowChanger           rc  = getRowChanger( tc, colsToUpdate,baseRow );

    // Row level locking
    rc.openForUpdate(indicesToUpdate, TransactionController.MODE_RECORD, wait);

    /* Open the heap conglomerate */
    heapCC = tc.openConglomerate(
                    getHeapConglomerate(),
                    false,
                    (TransactionController.OPENMODE_FORUPDATE |
                    ((wait) ? 0 : TransactionController.OPENMODE_LOCK_NOWAIT)),
                    TransactionController.MODE_RECORD,
                    TransactionController.ISOLATION_REPEATABLE_READ);

    drivingScan = tc.openScan(
      getIndexConglomerate(indexNumber)// conglomerate to open
      false, // don't hold open across commit
      (TransactionController.OPENMODE_FORUPDATE |
            ((wait) ? 0 : TransactionController.OPENMODE_LOCK_NOWAIT)),
            TransactionController.MODE_RECORD,
            TransactionController.ISOLATION_REPEATABLE_READ,
      (FormatableBitSet) null,     // all fields as objects
      key.getRowArray(),   // start position - first row
            ScanController.GE,      // startSearchOperation
      null, //scanQualifier
      key.getRowArray(),   // stop position - through last row
            ScanController.GT);     // stopSearchOperation

    // Get an index row based on the base row
    drivingIndexRow = getIndexRowFromHeapRow(
      getIndexRowGenerator( indexNumber ),
      heapCC.newRowLocationTemplate(),
      crf.makeEmptyRow());

    int rowNum = 0;
    while (drivingScan.fetchNext(drivingIndexRow.getRowArray()))
    {
      baseRowLocation = (RowLocation)
            drivingIndexRow.getColumn(drivingIndexRow.nColumns());
      boolean base_row_exists =
                heapCC.fetch(
                    baseRowLocation, baseRow.getRowArray(), (FormatableBitSet) null);

            if (SanityManager.DEBUG)
            {
                // it can not be possible for heap row to disappear while
                // holding scan cursor on index at ISOLATION_REPEATABLE_READ.
                SanityManager.ASSERT(base_row_exists, "base row not found");
            }
     
      rc.updateRow(baseRow, (rowNum == newRows.length - 1) ?
            newRows[rowNum] : newRows[rowNum++], baseRowLocation );
    }
    rc.finish();
    heapCC.close();
    drivingScan.close();
    rc.close();
  }
View Full Code Here

    ScanController      scan = null;
    int[]          baseColumnPositions;
    int            baseColumns = 0;
    DataValueFactory    dvf;
    long          indexRows;
    ConglomerateController  baseCC = null;
    ConglomerateController  indexCC = null;
    ExecutionContext    ec;
    SchemaDescriptor    sd;
    ConstraintDescriptor  constraintDesc;

    LanguageConnectionContext lcc = ConnectionUtil.getCurrentLCC();
    tc = lcc.getTransactionExecute();

    try {

            dd = lcc.getDataDictionary();

            dvf = lcc.getDataValueFactory();

            ec = lcc.getExecutionContext() ;

            sd = dd.getSchemaDescriptor(schemaName, tc, true);
            td = dd.getTableDescriptor(tableName, sd);

            if (td == null)
            {
                throw StandardException.newException(
                    SQLState.LANG_TABLE_NOT_FOUND,
                    schemaName + "." + tableName);
            }

            /* Skip views */
            if (td.getTableType() == TableDescriptor.VIEW_TYPE)
            {
                return true;
            }

      /* Open the heap for reading */
      baseCC = tc.openConglomerate(
                  td.getHeapConglomerateId(), false, 0,
                TransactionController.MODE_TABLE,
              TransactionController.ISOLATION_SERIALIZABLE);

      /* Check the consistency of the heap */
      baseCC.checkConsistency();

      heapCD = td.getConglomerateDescriptor(td.getHeapConglomerateId());

      /* Get a row template for the base table */
      baseRow = ec.getExecutionFactory().getValueRow(td.getNumberOfColumns());

      /* Fill the row with nulls of the correct type */
      ColumnDescriptorList cdl = td.getColumnDescriptorList();
      int           cdlSize = cdl.size();

      for (int index = 0; index < cdlSize; index++)
      {
        ColumnDescriptor cd = (ColumnDescriptor) cdl.elementAt(index);
        baseRow.setColumn(cd.getPosition(),
                    cd.getType().getNull());
      }

      /* Look at all the indexes on the table */
      ConglomerateDescriptor[] cds = td.getConglomerateDescriptors();
      for (int index = 0; index < cds.length; index++)
      {
        indexCD = cds[index];
        /* Skip the heap */
        if ( ! indexCD.isIndex())
          continue;

        /* Check the internal consistency of the index */
        indexCC =
              tc.openConglomerate(
                indexCD.getConglomerateNumber(),
                        false,
              0,
            TransactionController.MODE_TABLE,
                      TransactionController.ISOLATION_SERIALIZABLE);

        indexCC.checkConsistency();
        indexCC.close();
        indexCC = null;

        /* if index is for a constraint check that the constraint exists */

        if (indexCD.isConstraint())
        {
          constraintDesc = dd.getConstraintDescriptor(td, indexCD.getUUID());
          if (constraintDesc == null)
          {
            throw StandardException.newException(
                    SQLState.LANG_OBJECT_NOT_FOUND,
                    "CONSTRAINT for INDEX",
                    indexCD.getConglomerateName());
          }
        }

        /*
        ** Set the base row count when we get to the first index.
        ** We do this here, rather than outside the index loop, so
        ** we won't do the work of counting the rows in the base table
        ** if there are no indexes to check.
        */
        if (baseRowCount < 0)
        {
          scan = tc.openScan(heapCD.getConglomerateNumber(),
                    false,  // hold
                    0,    // not forUpdate
                      TransactionController.MODE_TABLE,
                      TransactionController.ISOLATION_SERIALIZABLE,
                                        RowUtil.EMPTY_ROW_BITSET,
                    null,  // startKeyValue
                    0,    // not used with null start posn.
                    null,  // qualifier
                    null,  // stopKeyValue
                    0);    // not used with null stop posn.

          /* Also, get the row location template for index rows */
          rl = scan.newRowLocationTemplate();
          scanRL = scan.newRowLocationTemplate();

          for (baseRowCount = 0; scan.next(); baseRowCount++)
            /* Empty statement */

          scan.close();
          scan = null;
        }

        baseColumnPositions =
            indexCD.getIndexDescriptor().baseColumnPositions();
        baseColumns = baseColumnPositions.length;

        FormatableBitSet indexColsBitSet = new FormatableBitSet();
        for (int i = 0; i < baseColumns; i++)
        {
          indexColsBitSet.grow(baseColumnPositions[i]);
          indexColsBitSet.set(baseColumnPositions[i] - 1);
        }

        /* Get one row template for the index scan, and one for the fetch */
        indexRow = ec.getExecutionFactory().getValueRow(baseColumns + 1);

        /* Fill the row with nulls of the correct type */
        for (int column = 0; column < baseColumns; column++)
        {
          /* Column positions in the data dictionary are one-based */
           ColumnDescriptor cd = td.getColumnDescriptor(baseColumnPositions[column]);
          indexRow.setColumn(column + 1,
                      cd.getType().getNull());
        }

        /* Set the row location in the last column of the index row */
        indexRow.setColumn(baseColumns + 1, rl);

        /* Do a full scan of the index */
        scan = tc.openScan(indexCD.getConglomerateNumber(),
                  false,  // hold
                  0,    // not forUpdate
                    TransactionController.MODE_TABLE,
                        TransactionController.ISOLATION_SERIALIZABLE,
                  (FormatableBitSet) null,
                  null,  // startKeyValue
                  0,    // not used with null start posn.
                  null,  // qualifier
                  null,  // stopKeyValue
                  0);    // not used with null stop posn.

        DataValueDescriptor[] baseRowIndexOrder =
                    new DataValueDescriptor[baseColumns];
        DataValueDescriptor[] baseObjectArray = baseRow.getRowArray();

        for (int i = 0; i < baseColumns; i++)
        {
          baseRowIndexOrder[i] = baseObjectArray[baseColumnPositions[i] - 1];
        }
     
        /* Get the index rows and count them */
        for (indexRows = 0; scan.fetchNext(indexRow.getRowArray()); indexRows++)
        {
          /*
          ** Get the base row using the RowLocation in the index row,
          ** which is in the last column. 
          */
          RowLocation baseRL = (RowLocation) indexRow.getColumn(baseColumns + 1);

          boolean base_row_exists =
                    baseCC.fetch(
                      baseRL, baseObjectArray, indexColsBitSet);

          /* Throw exception if fetch() returns false */
          if (! base_row_exists)
          {
            String indexName = indexCD.getConglomerateName();
            throw StandardException.newException(SQLState.LANG_INCONSISTENT_ROW_LOCATION,
                  (schemaName + "." + tableName),
                  indexName,
                  baseRL.toString(),
                  indexRow.toString());
          }

          /* Compare all the column values */
          for (int column = 0; column < baseColumns; column++)
          {
            DataValueDescriptor indexColumn =
              indexRow.getColumn(column + 1);
            DataValueDescriptor baseColumn =
              baseRowIndexOrder[column];

            /*
            ** With this form of compare(), null is considered equal
            ** to null.
            */
            if (indexColumn.compare(baseColumn) != 0)
            {
              ColumnDescriptor cd =
                                td.getColumnDescriptor(
                                    baseColumnPositions[column]);

                            /*
                            System.out.println(
                                "SQLState.LANG_INDEX_COLUMN_NOT_EQUAL:" +
                                "indexCD.getConglomerateName()" + indexCD.getConglomerateName() +
                                ";td.getSchemaName() = " + td.getSchemaName() +
                                ";td.getName() = " + td.getName() +
                                ";baseRL.toString() = " + baseRL.toString() +
                                ";cd.getColumnName() = " + cd.getColumnName() +
                                ";indexColumn.toString() = " + indexColumn.toString() +
                                ";baseColumn.toString() = " + baseColumn.toString() +
                                ";indexRow.toString() = " + indexRow.toString());
                            */

              throw StandardException.newException(
                                SQLState.LANG_INDEX_COLUMN_NOT_EQUAL,
                                indexCD.getConglomerateName(),
                                td.getSchemaName(),
                                td.getName(),
                                baseRL.toString(),
                                cd.getColumnName(),
                                indexColumn.toString(),
                                baseColumn.toString(),
                                indexRow.toString());
            }
          }
        }

        /* Clean up after the index scan */
        scan.close();
        scan = null;

        /*
        ** The index is supposed to have the same number of rows as the
        ** base conglomerate.
        */
        if (indexRows != baseRowCount)
        {
          throw StandardException.newException(SQLState.LANG_INDEX_ROW_COUNT_MISMATCH,
                    indexCD.getConglomerateName(),
                    td.getSchemaName(),
                    td.getName(),
                    Long.toString(indexRows),
                    Long.toString(baseRowCount));
        }
      }
      /* check that all constraints have backing index */
      ConstraintDescriptorList constraintDescList =
        dd.getConstraintDescriptors(td);
      for (int index = 0; index < constraintDescList.size(); index++)
      {
        constraintDesc = constraintDescList.elementAt(index);
        if (constraintDesc.hasBackingIndex())
        {
          ConglomerateDescriptor conglomDesc;

          conglomDesc = td.getConglomerateDescriptor(
              constraintDesc.getConglomerateId());
          if (conglomDesc == null)
          {
            throw StandardException.newException(
                    SQLState.LANG_OBJECT_NOT_FOUND,
                    "INDEX for CONSTRAINT",
                    constraintDesc.getConstraintName());
          }
        }
      }
     
    }
    catch (StandardException se)
    {
      throw PublicAPI.wrapStandardException(se);
    }
    finally
    {
            try
            {
                /* Clean up before we leave */
                if (baseCC != null)
                {
                    baseCC.close();
                    baseCC = null;
                }
                if (indexCC != null)
                {
                    indexCC.close();
                    indexCC = null;
                }
                if (scan != null)
                {
                    scan.close();
View Full Code Here

      if (cd == null) { return new Properties(); }

      conglomerateNumber = cd.getConglomerateNumber();
    }

    ConglomerateController cc = tc.openConglomerate(
                conglomerateNumber,
                false,
                0,
                TransactionController.MODE_RECORD,
                TransactionController.ISOLATION_SERIALIZABLE);

    Properties properties = tc.getUserCreateConglomPropList();
    cc.getTableProperties( properties );

    cc.close();
        return properties;

    } catch (StandardException se) {
      throw PublicAPI.wrapStandardException(se);
    }
View Full Code Here


    private void getSpaceInfo(int index)
        throws StandardException
    {
            ConglomerateController cc = tc.openConglomerate(
                conglomTable[index].getConglomId(),
                false,
                0,            // not for update
                TransactionController.MODE_RECORD,
                TransactionController.ISOLATION_READ_COMMITTED
                );
            spaceInfo = cc.getSpaceInfo();
            cc.close();
            cc = null;
    }
View Full Code Here

        long        col2[]  = { 11246246111};
        long        col3[]  = {11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21};
        long                    conglomid;
        long                    base_conglomid;
        long                    index_conglomid;
        ConglomerateController  base_cc             = null;
        ConglomerateController  index_cc            = null;
        RowLocation             base_rowloc         = null;

        base_row = TemplateRow.newU8Row(3);

        if (init_conglomerate_type.compareTo("BTREE") == 0)
        {
            base_conglomid =
                tc.createConglomerate(
                    "heap", base_row, null,  null,
                    TransactionController.IS_DEFAULT);

            index_row = new T_SecondaryIndexRow();

            base_cc =
                tc.openConglomerate(
                    base_conglomid,
                    false,
                    TransactionController.OPENMODE_FORUPDATE,
                    TransactionController.MODE_RECORD,
                    TransactionController.ISOLATION_SERIALIZABLE);

            base_rowloc = base_cc.newRowLocationTemplate();

            index_row.init(base_row, base_rowloc, 4);

            index_conglomid =
                tc.createConglomerate(
                    init_conglomerate_type, index_row.getRow(),
                    null,
          init_properties,
          init_temporary ? TransactionController.IS_TEMPORARY : TransactionController.IS_DEFAULT);

            index_cc = 
                tc.openConglomerate(
                    index_conglomid,
                    false,
                    TransactionController.OPENMODE_FORUPDATE,
                    TransactionController.MODE_RECORD,
                    TransactionController.ISOLATION_SERIALIZABLE);

            conglomid = index_conglomid;
            openscan_template = index_row.getRow();

            // make another template
            T_SecondaryIndexRow fetch_index_row = new T_SecondaryIndexRow();
            fetch_index_row.init(
                TemplateRow.newU8Row(3),
                base_cc.newRowLocationTemplate(),
                4);
            fetch_template = fetch_index_row.getRow();
        }
        else
        {
            base_conglomid =
                tc.createConglomerate(init_conglomerate_type, base_row, null,
                                      init_properties,
                    init_temporary ? TransactionController.IS_TEMPORARY : TransactionController.IS_DEFAULT);

            base_cc = 
                tc.openConglomerate(
                    base_conglomid,
                    false,
                    TransactionController.OPENMODE_FORUPDATE,
                    TransactionController.MODE_RECORD,
                    TransactionController.ISOLATION_SERIALIZABLE);

            base_rowloc = base_cc.newRowLocationTemplate();

            conglomid = base_conglomid;
            openscan_template = base_row;
            fetch_template    = TemplateRow.newU8Row(3);
        }

        // insert them in reverse order just to make sure btree is sorting them
        for (int i = col1.length - 1; i >= 0; i--)
        {
            ((SQLLongint)(base_row[0])).setValue(col1[i]);
            ((SQLLongint)(base_row[1])).setValue(col2[i]);
            ((SQLLongint)(base_row[2])).setValue(col3[i]);

            base_cc.insertAndFetchLocation(base_row, base_rowloc);

            if (init_conglomerate_type.compareTo("BTREE") == 0)
            {
                index_cc.insert(index_row.getRow());
            }
        }

        tc.commit();
View Full Code Here

TOP

Related Classes of org.apache.derby.iapi.store.access.ConglomerateController

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.