org.apache.derby.impl.sql.execute
Class GenericExecutionContext

java.lang.Object
  extended byorg.apache.derby.iapi.services.context.ContextImpl
      extended byorg.apache.derby.impl.sql.execute.GenericExecutionContext
All Implemented Interfaces:
Context, ExecutionContext

public class GenericExecutionContext
extends ContextImpl
implements ExecutionContext

ExecutionContext stores the result set factory to be used by the current connection, and manages execution-level connection activities.

An execution context is expected to be on the stack for the duration of the connection.

Author:
ames

Field Summary
protected  ExecutionFactory execFactory
           
protected  ResultSetFactory rsFactory
           
protected  ResultSetStatisticsFactory rssFactory
           
private  ResultSet sourceRS
           
 
Fields inherited from class org.apache.derby.iapi.services.context.ContextImpl
 
Fields inherited from interface org.apache.derby.iapi.sql.execute.ExecutionContext
CONTEXT_ID, CS_TO_JDBC_ISOLATION_LEVEL_MAP, CS_TO_SQL_ISOLATION_MAP, READ_COMMITTED_ISOLATION_LEVEL, READ_UNCOMMITTED_ISOLATION_LEVEL, REPEATABLE_READ_ISOLATION_LEVEL, SERIALIZABLE_ISOLATION_LEVEL, UNSPECIFIED_ISOLATION_LEVEL
 
Constructor Summary
GenericExecutionContext(ResultSetFactory rsf, ContextManager cm, ExecutionFactory ef)
           
 
Method Summary
 void beginStatement(ResultSet sourceRS)
          Mark the beginning of a statement (INSERT, UPDATE, DELETE)
 void cleanupOnError(java.lang.Throwable error)
          Contexts will be passed errors that are caught by the outer system when they are serious enough to require corrective action.
 void endStatement()
          The end of a statement (INSERT, UPDATE, DELETE)
 ExecutionFactory getExecutionFactory()
          Get the ExecutionFactory from this ExecutionContext.
 ResultSetFactory getResultSetFactory()
          Get the ResultSetFactory from this ExecutionContext.
 ResultSetStatisticsFactory getResultSetStatisticsFactory()
          Get the ResultSetStatisticsFactory from this ExecutionContext.
 java.lang.Object[] siftForeignKeys(java.lang.Object[] fullList)
          Sifts the array of foreign key constraints for the ones which apply in the current context.
 java.lang.Object siftTriggers(java.lang.Object triggerInfo)
          Sifts the triggers for the ones which apply in the current context.
 
Methods inherited from class org.apache.derby.iapi.services.context.ContextImpl
appendErrorInfo, getContextManager, getIdName, isLastHandler, popMe, pushMe
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.apache.derby.iapi.services.context.Context
getContextManager, getIdName, isLastHandler, popMe, pushMe
 

Field Detail

sourceRS

private ResultSet sourceRS

rsFactory

protected ResultSetFactory rsFactory

rssFactory

protected ResultSetStatisticsFactory rssFactory

execFactory

protected ExecutionFactory execFactory
Constructor Detail

GenericExecutionContext

public GenericExecutionContext(ResultSetFactory rsf,
                               ContextManager cm,
                               ExecutionFactory ef)
Method Detail

getResultSetFactory

public ResultSetFactory getResultSetFactory()
Get the ResultSetFactory from this ExecutionContext.

Specified by:
getResultSetFactory in interface ExecutionContext
Returns:
The result set factory associated with this ExecutionContext

getResultSetStatisticsFactory

public ResultSetStatisticsFactory getResultSetStatisticsFactory()
                                                         throws StandardException
Get the ResultSetStatisticsFactory from this ExecutionContext.

Specified by:
getResultSetStatisticsFactory in interface ExecutionContext
Returns:
The result set statistics factory associated with this ExecutionContext
Throws:
StandardException - Thrown on error

getExecutionFactory

public ExecutionFactory getExecutionFactory()
Description copied from interface: ExecutionContext
Get the ExecutionFactory from this ExecutionContext.

Specified by:
getExecutionFactory in interface ExecutionContext
Returns:
The Execution factory associated with this ExecutionContext

beginStatement

public void beginStatement(ResultSet sourceRS)
                    throws StandardException
Description copied from interface: ExecutionContext
Mark the beginning of a statement (INSERT, UPDATE, DELETE)

Specified by:
beginStatement in interface ExecutionContext
Parameters:
sourceRS - Source ResultSet for the statement.
Throws:
StandardException - Thrown on error
See Also:
ExecutionContext.beginStatement(org.apache.derby.iapi.sql.ResultSet)

endStatement

public void endStatement()
                  throws StandardException
Description copied from interface: ExecutionContext
The end of a statement (INSERT, UPDATE, DELETE)

Specified by:
endStatement in interface ExecutionContext
Throws:
StandardException - Thrown on error
See Also:
ExecutionContext.endStatement()

siftForeignKeys

public java.lang.Object[] siftForeignKeys(java.lang.Object[] fullList)
                                   throws StandardException
Description copied from interface: ExecutionContext
Sifts the array of foreign key constraints for the ones which apply in the current context. In certain contexts (e.g., when applying the COPY file or when tearing-off a new table during REFRESH), we don't want to not bother enforcing some foreign keys.

Specified by:
siftForeignKeys in interface ExecutionContext
Parameters:
fullList - the full list of foreign keys that apply for the current statement
Returns:
a pruned back list, which we will actually bother enforcing.
Throws:
StandardException - Thrown on error
See Also:
ExecutionContext.siftForeignKeys(java.lang.Object[])

siftTriggers

public java.lang.Object siftTriggers(java.lang.Object triggerInfo)
                              throws StandardException
Description copied from interface: ExecutionContext
Sifts the triggers for the ones which apply in the current context. In certain contexts (e.g., when applying the COPY file or when tearing-off a new table during REFRESH), we don't want to not bother firing triggers.

Specified by:
siftTriggers in interface ExecutionContext
Parameters:
triggerInfo - the original trigger info
Returns:
a pruned back triggerInfo, which we will actually bother enforcing.
Throws:
StandardException - Thrown on error
See Also:
ExecutionContext.siftTriggers(java.lang.Object)

cleanupOnError

public void cleanupOnError(java.lang.Throwable error)
                    throws StandardException
Description copied from interface: Context
Contexts will be passed errors that are caught by the outer system when they are serious enough to require corrective action. They will be told what the error is, so that they can react appropriately. Most of the time, the contexts will react by either doing nothing or by removing themselves from the context manager. If there are no other references to the context, removing itself from the manager equates to freeing it.

Contexts must release all their resources before removing themselves from their context manager.

The context manager will "unwind" the contexts during cleanup in the reverse order they were placed on its global stack.

If error is an instance of StandardException then an implementation of this method may throw a new exception if and only if the new exception is an instance of StandardException that is more severe than the original error or the new exception is a not an instance of StandardException (e.g java.lang.NullPointerException).

Specified by:
cleanupOnError in interface Context
Throws:
StandardException - Thrown on error

Built on Mon 2007-06-04 09:58:47+0400, from revision ???

Apache Derby V10.1 Engine Documentation - Copyright © 1997,2005 The Apache Software Foundation or its licensors, as applicable.