Package org.apache.derby.iapi.sql.execute

Examples of org.apache.derby.iapi.sql.execute.ExecutionContext


  private ExecutionFactory getExecutionFactory()
  {
    if (ef == null)
    {
      ExecutionContext  ec;

      ec = (ExecutionContext)
          ContextService.getContext(ExecutionContext.CONTEXT_ID);
      ef = ec.getExecutionFactory();
    }
    return ef;
  }
View Full Code Here


      if (lcc.getRunTimeStatisticsMode() &&
        ! doesCommit())
      {
        endExecutionTime = getCurrentTimeMillis();

        ExecutionContext ec = lcc.getExecutionContext();
        ResultSetStatisticsFactory rssf;
        rssf = ec.getResultSetStatisticsFactory();

        lcc.setRunTimeStatisticsObject(
          rssf.getRunTimeStatistics(activation, this, subqueryTrackingArray));

        HeaderPrintWriter istream = lcc.getLogQueryPlan() ? Monitor.getStream() : null;
View Full Code Here

    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 */
 
View Full Code Here

  private ExecutionFactory getExecutionFactory()
  {
    if (ef == null)
    {
      ExecutionContext  ec;

      ec = (ExecutionContext)
          ContextService.getContext(ExecutionContext.CONTEXT_ID);
      ef = ec.getExecutionFactory();
    }
    return ef;
  }
View Full Code Here

   */
  public ExecRow getEmptyExecRow( ContextManager cm)
     throws StandardException
  {
    int              columnCount = getNumberOfColumns();
    ExecutionContext      ec = (ExecutionContext) cm.getContext(ExecutionContext.CONTEXT_ID);
    ExecRow result = ec.getExecutionFactory().getValueRow(columnCount);

    for (int index = 0; index < columnCount; index++)
    {
      ColumnDescriptor cd = (ColumnDescriptor) columnDescriptorList.elementAt(index);
      //String name = column.getColumnName();
View Full Code Here

      if (lcc.getRunTimeStatisticsMode() &&
        ! doesCommit())
      {
        endExecutionTime = getCurrentTimeMillis();

        ExecutionContext ec = lcc.getExecutionContext();
        ResultSetStatisticsFactory rssf;
        rssf = ec.getResultSetStatisticsFactory();

        lcc.setRunTimeStatisticsObject(
          rssf.getRunTimeStatistics(activation, this, subqueryTrackingArray));

        HeaderPrintWriter istream = lcc.getLogQueryPlan() ? Monitor.getStream() : null;
View Full Code Here

   * @return  A ResultDescription for this ResultSetNode.
   */

  public ResultDescription makeResultDescription()
  {
    ExecutionContext ec = (ExecutionContext) getContextManager().getContext(
      ExecutionContext.CONTEXT_ID);
      ResultColumnDescriptor[] colDescs = makeResultDescriptors(ec);

      return ec.getExecutionFactory().getResultDescription(colDescs, null );
  }
View Full Code Here

   * @return  A ResultDescription for this ResultSetNode.
   */

  public ResultColumnDescriptor[] makeResultDescriptors()
  {
    ExecutionContext ec = (ExecutionContext) getContextManager().getContext(
      ExecutionContext.CONTEXT_ID);
    return makeResultDescriptors(ec);
  }
View Full Code Here

   * @return  A ResultDescription for this DML statement
   */

  public ResultDescription makeResultDescription()
  {
    ExecutionContext ec = (ExecutionContext) getContextManager().getContext(
      ExecutionContext.CONTEXT_ID);
      ResultColumnDescriptor[] colDescs = resultSet.makeResultDescriptors(ec);
    String statementType = statementToString();

      return ec.getExecutionFactory().getResultDescription(colDescs, statementType );
  }
View Full Code Here

   * @return  A ResultDescription for this ResultSetNode.
   */

  public ResultColumnDescriptor[] makeResultDescriptors()
  {
    ExecutionContext ec = (ExecutionContext) getContextManager().getContext(
      ExecutionContext.CONTEXT_ID);
    return makeResultDescriptors(ec);
  }
View Full Code Here

TOP

Related Classes of org.apache.derby.iapi.sql.execute.ExecutionContext

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.