Class BaseActivation
- java.lang.Object
-
- org.apache.derby.impl.sql.execute.BaseActivation
-
- All Implemented Interfaces:
Dependable
,GeneratedByteCode
,Activation
,Dependent
,CursorActivation
- Direct Known Subclasses:
ConstantActionActivation
,CursorActivation
public abstract class BaseActivation extends java.lang.Object implements CursorActivation, GeneratedByteCode
BaseActivation provides the fundamental support we expect all activations to have. Doesn't actually implement any of the activation interface, expects the subclasses to do that.
-
-
Field Summary
Fields Modifier and Type Field Description private int[]
autoGeneratedKeysColumnIndexes
private java.lang.String[]
autoGeneratedKeysColumnNames
private boolean
autoGeneratedKeysResultSetMode
private java.util.Calendar
cal
private boolean
checkRowCounts
protected boolean
closed
protected ContextManager
cm
private java.util.Stack<ConstantAction>
constantActionStack
Stack of ConstantActions.private java.lang.String
cursorName
private TableDescriptor
ddlTableDescriptor
private boolean
forCreateTable
private CursorResultSet
forUpdateIndexScan
private GeneratedClass
gc
private long
indexConglomerateNumber
protected int
indexOfSessionTableNamesInSavedObjects
private ScanController
indexSC
private boolean
inUse
private boolean
isValid
By setting isValid to false, we can force a new activation to be used even if the prepared statement is still valid.private LanguageConnectionContext
lcc
private static long
MAX_SQRT
private long
maxRows
protected int
numSubqueries
private Activation
parentActivation
The 'parentActivation' of an activation of a statement executing in the root connection is null.protected java.util.Hashtable<java.lang.String,java.util.Vector<TemporaryRowHolder>>
parentResultSets
protected ExecPreparedStatement
preStmt
protected ParameterValueSet
pvs
protected CursorResultSet[]
raParentResultSets
protected ResultDescription
resultDescription
protected ResultSet
resultSet
private boolean
resultSetHoldability
protected ExecRow[]
row
private java.util.HashSet<java.lang.Integer>
rowCountsCheckedThisExecution
private boolean
scrollable
private boolean
singleExecution
private SQLSessionContext
sqlSessionContextForChildren
The SQL session context to be used inside a nested connection in a stored routine or in a substatement.private java.sql.ResultSet
targetVTI
private static int
TEN_PERCENT_THRESHOLD
private ConglomerateController
updateHeapCC
protected java.lang.String
UUIDString
For dependency trackingprotected UUID
UUIDValue
For dependency trackingprivate java.sql.SQLWarning
warnings
-
Fields inherited from interface org.apache.derby.catalog.Dependable
ACTIVATION, ALIAS, COLUMNS_IN_TABLE, COLUMNS_PERMISSION, CONGLOMERATE, CONSTRAINT, DEFAULT, FILE, HEAP, INDEX, PERM, PREPARED_STATEMENT, ROLE_GRANT, ROUTINE_PERMISSION, SCHEMA, SEQUENCE, STORED_PREPARED_STATEMENT, TABLE, TABLE_PERMISSION, TRIGGER, VIEW
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
BaseActivation()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
addWarning(java.sql.SQLWarning w)
Add a warning to the activationstatic void
allocateQualArray(Qualifier[][] qualifiers, int position, int length)
Allocate an array of qualifiers and initialize in Qualifier[][]boolean
checkIfThisActivationHasHoldCursor(java.lang.String tableName)
Temporary tables can be declared with ON COMMIT DELETE ROWS.protected void
checkPositionedStatement(java.lang.String cursorName, java.lang.String psName)
Check that a positioned statement is executing against a cursor from the same PreparedStatement (plan) that the positioned statement was original compiled against.void
checkStatementValidity()
Check the validity of the current executing statement.void
clearCurrentRow(int resultSetNumber)
Clear the current row for the specified ResultSet.void
clearHeapConglomerateController()
Clear the ConglomerateController to be used for an update or delete.void
clearIndexScanInfo()
Clear the info for the index to be re-used for update/delete.void
clearParentResultSets()
prepared statement use the same activation for multiple execution.void
clearWarnings()
Clear the activation's warnings.void
close()
Closing an activation marks it as unusable.protected void
closeActivationAction()
A generated class can create its own closeActivationAction method to invoke special logic when the activation is closed.protected abstract ResultSet
createResultSet()
Create the ResultSet tree for this statement.(package private) ResultSet
decorateResultSet()
Create the ResultSet tree for this statement, and possibly perform extra checks or initialization required by specific sub-classes.java.lang.Object
e0()
java.lang.Object
e1()
java.lang.Object
e2()
java.lang.Object
e3()
java.lang.Object
e4()
java.lang.Object
e5()
java.lang.Object
e6()
java.lang.Object
e7()
java.lang.Object
e8()
java.lang.Object
e9()
ResultSet
execute()
When the prepared statement is executed, it passes execution on to the activation execution was requested for.int[]
getAutoGeneratedKeysColumnIndexes()
Returns the column positions array of columns requested in auto-generated keys resultset for this avtivation.java.lang.String[]
getAutoGeneratedKeysColumnNames()
Returns the column names array of columns requested in auto-generated keys resultset for this avtivation.boolean
getAutoGeneratedKeysResultsetMode()
Returns true if auto-generated keys resultset request was made for this avtivation.protected java.util.Calendar
getCalendar()
Return a calendar for use by this activation.java.lang.String
getClassType()
Get the unique class id for the Dependable.protected DataValueDescriptor
getColumnFromRow(int rsNumber, int colId)
ConstantAction
getConstantAction()
Get the top ConstantAction on the stack without changing the stack.ContextManager
getContextManager()
Get the Current ContextManager.java.sql.Connection
getCurrentConnection()
Used to get a proxy for the current connection.Row
getCurrentRow(int resultSetNumber)
Get the current row at the given index.NumberDataValue
getCurrentValueAndAdvance(java.lang.String sequenceUUIDstring, int typeFormatID)
Called by generated code to get the next number in an ANSI/ISO sequence and advance the sequence.java.lang.String
getCursorName()
get the cursor name.CursorResultSet
getCursorResultSet()
Used in CurrentOfResultSet to get to the cursor result set for a cursor.DataValueFactory
getDataValueFactory()
Used by activations to generate data values.NumberDataValue
getDB2Length(DataValueDescriptor value, int constantLength, NumberDataValue reUse)
Compute the DB2 compatible length of a value.TableDescriptor
getDDLTableDescriptor()
Get the TableDescriptor for the target of DDL.DependableFinder
getDependableFinder()
Get an object which can be written to disk and which, when read from disk, will find or reconstruct this in-memory Dependable.java.sql.ResultSet[][]
getDynamicResults()
Real implementations of this method are provided by a generated class.ExecutionFactory
getExecutionFactory()
Used in activations for generating rows.boolean
getForCreateTable()
Get whether or not this activation is for create table.CursorResultSet
getForUpdateIndexScan()
GeneratedClass
getGC()
Get the GeneratedClass object for this object.ConglomerateController
getHeapConglomerateController()
Get the ConglomerateController, if any, that has already been opened for the heap when scaning for an update or delete.long
getIndexConglomerateNumber()
Get the conglomerate number of the index, if any, that has already been opened for scaning for an update or delete.ScanController
getIndexScanController()
Get the ScanController, if any, that has already been opened for the index when scaning for an update or delete.LanguageConnectionContext
getLanguageConnectionContext()
Get the language connection factory associated with this connectionint
getMaxDynamicResults()
Real implementations of this method are provided by a generated class.long
getMaxRows()
Get the maximum # of rows. (# of rows that can be returned by a ResultSet. 0 means no limit.)GeneratedMethod
getMethod(java.lang.String methodName)
(package private) static ModuleFactory
getMonitor()
Privileged Monitor lookup.int
getNumSubqueries()
Get the number of subqueries in the entire query.UUID
getObjectID()
Get the UUID of this Dependable OBJECT.java.lang.String
getObjectName()
Get the name of this Dependable OBJECT.protected DataValueDescriptor
getParameter(int position)
This method can help reduce the amount of generated code by changing instances of this.pvs.getParameter(position) to this.getParameter(position)ParameterValueSet
getParameterValueSet()
return the parameters.Activation
getParentActivation()
Get the activation of the calling statement or parent statement.java.util.Vector<TemporaryRowHolder>
getParentResultSet(java.lang.String resultSetId)
get the reference to parent table ResultSets, that will be needed by the referential action dependent table scans.java.util.Enumeration<java.lang.String>
getParentResultSetKeys()
ExecPreparedStatement
getPreparedStatement()
Get the prepared statement that this activation is for.ResultDescription
getResultDescription()
Get the result description for this activation, if it has one.ResultSet
getResultSet()
Returns the current result set for this activation, i.e.ResultSetFactory
getResultSetFactory()
Used in the execute method of activations for generating the result sets that they concatenate together.boolean
getResultSetHoldability()
Return the holdability of this activation.RowLocation
getRowLocationTemplate(int itemNumber)
Get the saved RowLocation.boolean
getScrollable()
protected DataValueDescriptor
getSetAutoincrementValue(int columnPosition, long increment)
Called by generated code to compute the next autoincrement value.SQLSessionContext
getSQLSessionContextForChildren()
Return the current SQL session context for all immediately nested connections stemming from the call or function invocation of the statement corresponding to this activation.CursorResultSet
getTargetResultSet()
Used in CurrentOfResultSet to get to the target result set for a cursor.java.sql.ResultSet
getTargetVTI()
Get the ResultSet for the target of an update/delete to a VTI.TransactionController
getTransactionController()
Get the Execution TransactionController associated with this activation/lcc.java.sql.SQLWarning
getWarnings()
Returns the chained list of warnings.void
informOfRowCount(NoPutResultSet resultSet, long currentRowCount)
Tell this activation that the given ResultSet was found to have the given number of rows.void
initFromContext(Context context)
Initialize the generated class from a context.boolean
isClosed()
Find out if the activation closed or not.boolean
isCursorActivation()
Is this Activation for a cursor?boolean
isInUse()
Is the activation in use?boolean
isPersistent()
Return whether or not this Dependable is persistent.boolean
isSingleExecution()
Returns true if this Activation is only going to be used for one execution.boolean
isValid()
Check that all of the dependent's dependencies are valid.void
makeInvalid(int action, LanguageConnectionContext lcc)
Mark the dependent as invalid (due to at least one of its dependencies being invalid).void
markUnused()
Mark the activation as unused.NoPutResultSet
materializeResultSetIfPossible(NoPutResultSet rs)
protected static void
nullToPrimitiveTest(DataValueDescriptor dvd, java.lang.String primitiveType)
ConstantAction
popConstantAction()
Pop the ConstantAction stack, returning the element which was just popped off the stack.void
prepareToInvalidate(Provider p, int action, LanguageConnectionContext lcc)
Prepare to mark the dependent as invalid (due to at least one of its dependencies being invalid).ConstantAction
pushConstantAction(ConstantAction newConstantAction)
Push a ConstantAction to be returned by getConstantAction().protected void
reinit()
Reinitialize data structures added by the sub-classes before each execution of the statement.static void
reinitializeQualifiers(Qualifier[][] qualifiers)
Reinitialize all Qualifiers in an array of Qualifiers.void
reset()
This is a partial implementation of reset.void
setAutoGeneratedKeysResultsetInfo(int[] columnIndexes, java.lang.String[] columnNames)
Set the auto-generated keys resultset mode to true for this activation.static void
setColumnPosition(int[] columnPositions, int positionToSet, int column)
Set a column position in an array of column positions.void
setCurrentRow(ExecRow currentRow, int resultSetNumber)
Remember the row for the specified ResultSet.void
setCursorName(java.lang.String cursorName)
remember the cursor namevoid
setDDLTableDescriptor(TableDescriptor td)
Save the TableDescriptor for the target of DDL so that it can be passed between the various ConstantActions during execution.void
setForCreateTable()
Mark the Activation as being for create table.void
setForUpdateIndexScan(CursorResultSet forUpdateIndexScan)
beetle 3865: updateable cursor using index.void
setGC(GeneratedClass gc)
Set the Generated Class.void
setHeapConglomerateController(ConglomerateController updateHeapCC)
Set the ConglomerateController to be used for an update or delete.void
setIndexConglomerateNumber(long indexConglomerateNumber)
Set the conglomerate number of the index to be used for an update or delete, when scanning an index that will also be updated (Saves opening the ScanController twice.)void
setIndexScanController(ScanController indexSC)
Set the ScanController to be used for an update or delete, when scanning an index that will also be updated (Saves opening the ScanController twice.)void
setMaxRows(long maxRows)
Set the maximum # of rows. (# of rows that can be returned by a ResultSet. 0 means no limit.)void
setParameters(ParameterValueSet parameterValues, DataTypeDescriptor[] parameterTypes)
Sets the parameter values for this execution of the statement.protected void
setParameterValueSet(int paramCount, boolean hasReturnParam)
void
setParentActivation(Activation a)
This activation is created in a dynamic call context or a substatement execution context, make note of its parent statements activation (a).void
setParentResultSet(TemporaryRowHolder rs, java.lang.String resultSetId)
static void
setQualifier(Qualifier[][] qualifiers, Qualifier qualifier, int position_1, int position_2)
Set a Qualifier in a 2 dimensional array of Qualifiers.void
setResultSetHoldability(boolean resultSetHoldability)
Set current resultset holdability.void
setSingleExecution()
Set this Activation for a single execution.void
setTargetVTI(java.sql.ResultSet targetVTI)
Save the ResultSet for the target of an update/delete to a VTI.void
setupActivation(ExecPreparedStatement ps, boolean scrollable)
Link this activation with its PreparedStatement.SQLSessionContext
setupSQLSessionContextForChildren(boolean push)
Set up and return the current SQL session context for all immediately nested connections stemming from the call or function invocation of the statement corresponding to this activation (push=true) or for a substatement, which shares the parents statement's session context (push=false).protected boolean
shouldWeCheckRowCounts()
Find out if it's time to check the row counts of the tables involved in this query.void
throwIfClosed(java.lang.String op)
Various activation methods need to disallow their invocation if the activation is closed.void
throwIfMissingParms()
Throw an exception if any parameters are uninitialized.-
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.loader.GeneratedByteCode
postConstructor
-
-
-
-
Field Detail
-
lcc
private LanguageConnectionContext lcc
-
cm
protected ContextManager cm
-
preStmt
protected ExecPreparedStatement preStmt
-
resultSet
protected ResultSet resultSet
-
resultDescription
protected ResultDescription resultDescription
-
closed
protected boolean closed
-
cursorName
private java.lang.String cursorName
-
numSubqueries
protected int numSubqueries
-
singleExecution
private boolean singleExecution
-
inUse
private volatile boolean inUse
-
targetVTI
private java.sql.ResultSet targetVTI
-
warnings
private java.sql.SQLWarning warnings
-
gc
private GeneratedClass gc
-
checkRowCounts
private boolean checkRowCounts
-
rowCountsCheckedThisExecution
private java.util.HashSet<java.lang.Integer> rowCountsCheckedThisExecution
-
MAX_SQRT
private static final long MAX_SQRT
-
TEN_PERCENT_THRESHOLD
private static final int TEN_PERCENT_THRESHOLD
- See Also:
- Constant Field Values
-
updateHeapCC
private ConglomerateController updateHeapCC
-
indexSC
private ScanController indexSC
-
indexConglomerateNumber
private long indexConglomerateNumber
-
ddlTableDescriptor
private TableDescriptor ddlTableDescriptor
-
maxRows
private long maxRows
-
forCreateTable
private boolean forCreateTable
-
scrollable
private boolean scrollable
-
resultSetHoldability
private boolean resultSetHoldability
-
forUpdateIndexScan
private CursorResultSet forUpdateIndexScan
-
autoGeneratedKeysResultSetMode
private boolean autoGeneratedKeysResultSetMode
-
autoGeneratedKeysColumnIndexes
private int[] autoGeneratedKeysColumnIndexes
-
autoGeneratedKeysColumnNames
private java.lang.String[] autoGeneratedKeysColumnNames
-
isValid
private boolean isValid
By setting isValid to false, we can force a new activation to be used even if the prepared statement is still valid. This is used when modifying the current role for a session, which may (if the statement relies on privileges obtained via the current role) require rechecking of privileges. The checking normally only happens the first time the prepared statement is used in a session, when the activation is constructed. Forcing creation of a new activation achieves the purpose of getting the check performed over again and is cheaper than invalidating the prepared statement itself. Also, the latter would impact other sessions, forcing them to recreate their activations.
-
UUIDString
protected java.lang.String UUIDString
For dependency tracking
-
UUIDValue
protected UUID UUIDValue
For dependency tracking
-
parentActivation
private Activation parentActivation
The 'parentActivation' of an activation of a statement executing in the root connection is null. A non-null 'parentActivation' represents the activation of the calling statement (if we are in a nested connection of a stored routine), or the activation of the parent statement (if we are executing a sub-statement) 'parentActivation' is set when this activation is created (@see PreparedStatement#getActivation) based on the top of the dynamic call stack of execution, which is tracked by StatementContext. The nested SQL session context is initialized by code generated for the call, after parameters are evaluated or just sub-statement execution starts.- See Also:
StaticMethodCallNode.generatePushNestedSessionContext(org.apache.derby.impl.sql.compile.ActivationClassBuilder, org.apache.derby.iapi.services.compiler.MethodBuilder, boolean, java.lang.String)
,PreparedStatement.executeSubStatement(org.apache.derby.iapi.sql.Activation, org.apache.derby.iapi.sql.Activation, boolean, long)
-
sqlSessionContextForChildren
private SQLSessionContext sqlSessionContextForChildren
The SQL session context to be used inside a nested connection in a stored routine or in a substatement. In the latter case, it is an alias to the superstatement's session context.
-
constantActionStack
private java.util.Stack<ConstantAction> constantActionStack
Stack of ConstantActions.
-
indexOfSessionTableNamesInSavedObjects
protected int indexOfSessionTableNamesInSavedObjects
-
row
protected ExecRow[] row
-
pvs
protected ParameterValueSet pvs
-
raParentResultSets
protected CursorResultSet[] raParentResultSets
-
parentResultSets
protected java.util.Hashtable<java.lang.String,java.util.Vector<TemporaryRowHolder>> parentResultSets
-
cal
private java.util.Calendar cal
-
-
Method Detail
-
initFromContext
public final void initFromContext(Context context) throws StandardException
Description copied from interface:GeneratedByteCode
Initialize the generated class from a context. Called by the class manager just after creating the instance of the new class.- Specified by:
initFromContext
in interfaceGeneratedByteCode
- Throws:
StandardException
-
execute
public final ResultSet execute() throws StandardException
Description copied from interface:Activation
When the prepared statement is executed, it passes execution on to the activation execution was requested for.- Specified by:
execute
in interfaceActivation
- Returns:
- the ResultSet for further manipulation, if any.
- Throws:
StandardException
- Thrown on failure
-
decorateResultSet
ResultSet decorateResultSet() throws StandardException
Create the ResultSet tree for this statement, and possibly perform extra checks or initialization required by specific sub-classes.- Returns:
- the root of the ResultSet tree for this statement
- Throws:
StandardException
-
createResultSet
protected abstract ResultSet createResultSet() throws StandardException
Create the ResultSet tree for this statement.- Returns:
- the root of the ResultSet tree for this statement
- Throws:
StandardException
- standard error policy
-
reinit
protected void reinit() throws StandardException
Reinitialize data structures added by the sub-classes before each execution of the statement. The default implementation does nothing. Sub-classes should override this method if they need to perform operations before each execution.- Throws:
StandardException
-
getPreparedStatement
public final ExecPreparedStatement getPreparedStatement()
Description copied from interface:Activation
Get the prepared statement that this activation is for.- Specified by:
getPreparedStatement
in interfaceActivation
- Returns:
- the prepared statement this activation is for.
-
pushConstantAction
public ConstantAction pushConstantAction(ConstantAction newConstantAction)
Description copied from interface:Activation
Push a ConstantAction to be returned by getConstantAction(). Returns the newConstantAction.- Specified by:
pushConstantAction
in interfaceActivation
-
popConstantAction
public ConstantAction popConstantAction()
Description copied from interface:Activation
Pop the ConstantAction stack, returning the element which was just popped off the stack.- Specified by:
popConstantAction
in interfaceActivation
-
getConstantAction
public ConstantAction getConstantAction()
Description copied from interface:Activation
Get the top ConstantAction on the stack without changing the stack.- Specified by:
getConstantAction
in interfaceActivation
-
checkStatementValidity
public final void checkStatementValidity() throws StandardException
Description copied from interface:Activation
Check the validity of the current executing statement. Needs to be called after a statement has obtained the relevant table locks on the- Specified by:
checkStatementValidity
in interfaceActivation
- Throws:
StandardException
-
setupActivation
public final void setupActivation(ExecPreparedStatement ps, boolean scrollable) throws StandardException
Link this activation with its PreparedStatement. It can be called with null to break the link with the PreparedStatement.- Parameters:
ps
- prepared statementscrollable
- activation for a scrollable result set- Throws:
StandardException
- standard error policy
-
getResultSet
public ResultSet getResultSet()
Description copied from interface:Activation
Returns the current result set for this activation, i.e. the one returned by the last execute() call. If there has been no execute call or the activation has been reset or closed, a null is returned.- Specified by:
getResultSet
in interfaceActivation
- Returns:
- the current ResultSet of this activation.
-
getRowLocationTemplate
public RowLocation getRowLocationTemplate(int itemNumber)
Get the saved RowLocation.- Specified by:
getRowLocationTemplate
in interfaceActivation
- Parameters:
itemNumber
- The saved item number.- Returns:
- A RowLocation template for the conglomerate
-
getResultDescription
public ResultDescription getResultDescription()
Description copied from interface:Activation
Get the result description for this activation, if it has one.- Specified by:
getResultDescription
in interfaceActivation
- Returns:
- result description for this activation, if it has one; otherwise, null.
-
reset
public void reset() throws StandardException
This is a partial implementation of reset. Subclasses will want to reset information they are aware of, such as parameters.All subclasses must call super.reset() and then do their cleanup.
The execute call must set the resultSet field to be the resultSet that it has returned.
- Specified by:
reset
in interfaceActivation
- Throws:
StandardException
- on error
-
close
public final void close() throws StandardException
Closing an activation marks it as unusable. Any other requests made on it will fail. An activation should be marked closed when it is expected to not be used any longer, i.e. when the connection for it is closed, or it has suffered some sort of severe error. This should also remove it from the language connection context.- Specified by:
close
in interfaceActivation
- Throws:
StandardException
- on error
-
closeActivationAction
protected void closeActivationAction() throws java.lang.Exception
A generated class can create its own closeActivationAction method to invoke special logic when the activation is closed.- Throws:
java.lang.Exception
- error
-
isClosed
public boolean isClosed()
Find out if the activation closed or not.- Specified by:
isClosed
in interfaceActivation
- Returns:
- true if the prepared statement has been closed.
-
setSingleExecution
public void setSingleExecution()
Set this Activation for a single execution.- Specified by:
setSingleExecution
in interfaceActivation
- See Also:
Activation.setSingleExecution()
-
isSingleExecution
public boolean isSingleExecution()
Returns true if this Activation is only going to be used for one execution.- Specified by:
isSingleExecution
in interfaceActivation
- See Also:
Activation.isSingleExecution()
-
getNumSubqueries
public int getNumSubqueries()
Get the number of subqueries in the entire query.- Specified by:
getNumSubqueries
in interfaceActivation
- Returns:
- int The number of subqueries in the entire query.
-
isCursorActivation
public boolean isCursorActivation()
Description copied from interface:Activation
Is this Activation for a cursor?- Specified by:
isCursorActivation
in interfaceActivation
- Returns:
- Whether or not this Activation is for a cursor.
- See Also:
Activation.isCursorActivation()
-
setGC
public final void setGC(GeneratedClass gc)
Description copied from interface:GeneratedByteCode
Set the Generated Class. Call by the class manager just after calling initFromContext.- Specified by:
setGC
in interfaceGeneratedByteCode
-
getGC
public final GeneratedClass getGC()
Description copied from interface:GeneratedByteCode
Get the GeneratedClass object for this object.- Specified by:
getGC
in interfaceGeneratedByteCode
-
getMethod
public final GeneratedMethod getMethod(java.lang.String methodName) throws StandardException
- Specified by:
getMethod
in interfaceGeneratedByteCode
- Throws:
StandardException
-
e0
public java.lang.Object e0() throws StandardException
- Specified by:
e0
in interfaceGeneratedByteCode
- Throws:
StandardException
-
e1
public java.lang.Object e1() throws StandardException
- Specified by:
e1
in interfaceGeneratedByteCode
- Throws:
StandardException
-
e2
public java.lang.Object e2() throws StandardException
- Specified by:
e2
in interfaceGeneratedByteCode
- Throws:
StandardException
-
e3
public java.lang.Object e3() throws StandardException
- Specified by:
e3
in interfaceGeneratedByteCode
- Throws:
StandardException
-
e4
public java.lang.Object e4() throws StandardException
- Specified by:
e4
in interfaceGeneratedByteCode
- Throws:
StandardException
-
e5
public java.lang.Object e5() throws StandardException
- Specified by:
e5
in interfaceGeneratedByteCode
- Throws:
StandardException
-
e6
public java.lang.Object e6() throws StandardException
- Specified by:
e6
in interfaceGeneratedByteCode
- Throws:
StandardException
-
e7
public java.lang.Object e7() throws StandardException
- Specified by:
e7
in interfaceGeneratedByteCode
- Throws:
StandardException
-
e8
public java.lang.Object e8() throws StandardException
- Specified by:
e8
in interfaceGeneratedByteCode
- Throws:
StandardException
-
e9
public java.lang.Object e9() throws StandardException
- Specified by:
e9
in interfaceGeneratedByteCode
- Throws:
StandardException
-
checkIfThisActivationHasHoldCursor
public boolean checkIfThisActivationHasHoldCursor(java.lang.String tableName)
Temporary tables can be declared with ON COMMIT DELETE ROWS. But if the table has a held curosr open at commit time, data should not be deleted from the table. This method, (gets called at commit time) checks if this activation held cursor and if so, does that cursor reference the passed temp table name.- Specified by:
checkIfThisActivationHasHoldCursor
in interfaceActivation
- Returns:
- true if this activation has held cursor and if it references the passed temp table name
-
setCursorName
public void setCursorName(java.lang.String cursorName)
remember the cursor name- Specified by:
setCursorName
in interfaceActivation
- Parameters:
cursorName
- The cursor name to use.
-
getCursorName
public java.lang.String getCursorName()
get the cursor name. For something that isn't a cursor, this is used as a string name of the result set for messages from things like the dependency manager.Activations that do support cursors will override this.
- Specified by:
getCursorName
in interfaceActivation
- Returns:
- The cursor name.
-
setResultSetHoldability
public void setResultSetHoldability(boolean resultSetHoldability)
Description copied from interface:Activation
Set current resultset holdability.- Specified by:
setResultSetHoldability
in interfaceActivation
- Parameters:
resultSetHoldability
- The new resultset holdability.
-
getResultSetHoldability
public boolean getResultSetHoldability()
Description copied from interface:Activation
Return the holdability of this activation.- Specified by:
getResultSetHoldability
in interfaceActivation
- Returns:
- The holdability of this activation.
-
setAutoGeneratedKeysResultsetInfo
public void setAutoGeneratedKeysResultsetInfo(int[] columnIndexes, java.lang.String[] columnNames)
Description copied from interface:Activation
Set the auto-generated keys resultset mode to true for this activation. The specific columns for auto-generated keys resultset can be requested by passing column positions array The specific columns for auto-generated keys resultset can be requested by passing column names array Both the parameters would be null if user didn't request specific keys. Otherwise, the user could request specific columns by passing column positions or names array but not both.- Specified by:
setAutoGeneratedKeysResultsetInfo
in interfaceActivation
- Parameters:
columnIndexes
- Request specific columns in auto-generated keys resultset by passing column positions. null means no specific columns requested by positioncolumnNames
- Request specific columns in auto-generated keys resultset by passing column names. null means no specific columns requested by position- See Also:
Activation.setAutoGeneratedKeysResultsetInfo(int[], java.lang.String[])
-
getAutoGeneratedKeysResultsetMode
public boolean getAutoGeneratedKeysResultsetMode()
Description copied from interface:Activation
Returns true if auto-generated keys resultset request was made for this avtivation.- Specified by:
getAutoGeneratedKeysResultsetMode
in interfaceActivation
- Returns:
- auto-generated keys resultset mode for this activation.
- See Also:
Activation.getAutoGeneratedKeysResultsetMode()
-
getAutoGeneratedKeysColumnIndexes
public int[] getAutoGeneratedKeysColumnIndexes()
Description copied from interface:Activation
Returns the column positions array of columns requested in auto-generated keys resultset for this avtivation. Returns null if no specific column requested by positions- Specified by:
getAutoGeneratedKeysColumnIndexes
in interfaceActivation
- Returns:
- column positions array of columns requested.
- See Also:
Activation.getAutoGeneratedKeysColumnIndexes()
-
getAutoGeneratedKeysColumnNames
public java.lang.String[] getAutoGeneratedKeysColumnNames()
Description copied from interface:Activation
Returns the column names array of columns requested in auto-generated keys resultset for this avtivation. Returns null if no specific column requested by names- Specified by:
getAutoGeneratedKeysColumnNames
in interfaceActivation
- Returns:
- column names array of columns requested.
- See Also:
Activation.getAutoGeneratedKeysColumnNames()
-
getResultSetFactory
public final ResultSetFactory getResultSetFactory()
Used in the execute method of activations for generating the result sets that they concatenate together.
-
getExecutionFactory
public final ExecutionFactory getExecutionFactory()
Used in activations for generating rows.- Specified by:
getExecutionFactory
in interfaceActivation
- Returns:
- ExecutionFactory
-
getTargetResultSet
public CursorResultSet getTargetResultSet()
Used in CurrentOfResultSet to get to the target result set for a cursor. Overridden by activations generated for updatable cursors. Those activations capture the target result set in a field in their execute() method, and then return the value of that field in their version of this method.- Specified by:
getTargetResultSet
in interfaceCursorActivation
- Returns:
- null.
-
getSetAutoincrementValue
protected DataValueDescriptor getSetAutoincrementValue(int columnPosition, long increment) throws StandardException
Called by generated code to compute the next autoincrement value.- Returns:
- The next autoincrement value which should be inserted. returns the correct number datatype.
- Throws:
StandardException
-
getCurrentValueAndAdvance
public NumberDataValue getCurrentValueAndAdvance(java.lang.String sequenceUUIDstring, int typeFormatID) throws StandardException
Called by generated code to get the next number in an ANSI/ISO sequence and advance the sequence. Raises an exception if the sequence was declared NO CYCLE and its range is exhausted.- Specified by:
getCurrentValueAndAdvance
in interfaceActivation
- Parameters:
sequenceUUIDstring
- The string value of the sequence's UUIDtypeFormatID
- The format id of the data type to be returned. E.g., StoredFormatIds.SQL_INTEGER_ID.- Returns:
- The next number in the sequence
- Throws:
StandardException
-
getCursorResultSet
public CursorResultSet getCursorResultSet()
Used in CurrentOfResultSet to get to the cursor result set for a cursor. Overridden by activations generated for updatable cursors. Those activations capture the cursor result set in a field in their execute() method, and then return the value of that field in their version of this method.- Specified by:
getCursorResultSet
in interfaceCursorActivation
- Returns:
- null
-
throwIfClosed
public void throwIfClosed(java.lang.String op) throws StandardException
Various activation methods need to disallow their invocation if the activation is closed. This lets them check and throw without generating alot of code.The code to write to generate the call to this is approximately:
// jf is a JavaFactory CallableExpression ce = jf.newMethodCall( jf.thisExpression(), BaseActivation.CLASS_NAME, "throwIfClosed", "void", acb.exprArray(jf.newStringLiteral(...some literal here...))); //mb is a MethodBuilder mb.addStatement(jf.newStatement(ce)); The java code to write to call this is:this.throwIfClosed(...some literal here...); In both cases, "...some literal here..." gets replaced with an expression of type String that evaluates to the name of the operation that is being checked, like "execute" or "reset".- Throws:
StandardException
- thrown if closed
-
setColumnPosition
public static void setColumnPosition(int[] columnPositions, int positionToSet, int column)
Set a column position in an array of column positions.- Parameters:
columnPositions
- The array of column positionspositionToSet
- The place to put the column positioncolumn
- The column position
-
allocateQualArray
public static void allocateQualArray(Qualifier[][] qualifiers, int position, int length)
Allocate an array of qualifiers and initialize in Qualifier[][]- Parameters:
qualifiers
- The array of Qualifier arrays.position
- The position in the array to setlength
- The array length of the qualifier array to allocate.
-
setQualifier
public static void setQualifier(Qualifier[][] qualifiers, Qualifier qualifier, int position_1, int position_2)
Set a Qualifier in a 2 dimensional array of Qualifiers. Set a single Qualifier into one slot of a 2 dimensional array of Qualifiers. @see Qualifier for detailed description of layout of the 2-d array.- Parameters:
qualifiers
- The array of Qualifiersqualifier
- The Qualifierposition_1
- The Nth array index into qualifiers[N][M]position_2
- The Nth array index into qualifiers[N][M]
-
reinitializeQualifiers
public static void reinitializeQualifiers(Qualifier[][] qualifiers)
Reinitialize all Qualifiers in an array of Qualifiers.- Parameters:
qualifiers
- The array of Qualifiers
-
markUnused
public final void markUnused()
Mark the activation as unused.- Specified by:
markUnused
in interfaceActivation
-
isInUse
public final boolean isInUse()
Is the activation in use?- Specified by:
isInUse
in interfaceActivation
- Returns:
- true/false
-
addWarning
public void addWarning(java.sql.SQLWarning w)
Description copied from interface:Activation
Add a warning to the activation- Specified by:
addWarning
in interfaceActivation
- See Also:
Activation.addWarning(java.sql.SQLWarning)
-
getWarnings
public java.sql.SQLWarning getWarnings()
Description copied from interface:Activation
Returns the chained list of warnings. Returns null if there are no warnings.- Specified by:
getWarnings
in interfaceActivation
- See Also:
Activation.getWarnings()
-
clearWarnings
public void clearWarnings()
Description copied from interface:Activation
Clear the activation's warnings.- Specified by:
clearWarnings
in interfaceActivation
- See Also:
Activation.clearWarnings()
-
nullToPrimitiveTest
protected static void nullToPrimitiveTest(DataValueDescriptor dvd, java.lang.String primitiveType) throws StandardException
- Throws:
StandardException
- on error
-
informOfRowCount
public void informOfRowCount(NoPutResultSet resultSet, long currentRowCount) throws StandardException
Description copied from interface:Activation
Tell this activation that the given ResultSet was found to have the given number of rows. This is used during execution to determine whether a table has grown or shrunk. If a table's size changes significantly, the activation may invalidate its PreparedStatement to force recompilation. Note that the association of row counts with ResultSets is kept in the activation class, not in the activation itself. This means that this method must be synchronized. This method is not required to check the number of rows on each call. Because of synchronization, this check is likely to be expensive, so it may only check every hundred calls or so.- Specified by:
informOfRowCount
in interfaceActivation
- Throws:
StandardException
- Thrown on error- See Also:
Activation.informOfRowCount(org.apache.derby.iapi.sql.execute.NoPutResultSet, long)
-
getHeapConglomerateController
public ConglomerateController getHeapConglomerateController()
Description copied from interface:Activation
Get the ConglomerateController, if any, that has already been opened for the heap when scaning for an update or delete. (Saves opening the ConglomerateController twice.)- Specified by:
getHeapConglomerateController
in interfaceActivation
- Returns:
- The ConglomerateController, if available, to use for the update.
- See Also:
Activation.getHeapConglomerateController()
-
setHeapConglomerateController
public void setHeapConglomerateController(ConglomerateController updateHeapCC)
Description copied from interface:Activation
Set the ConglomerateController to be used for an update or delete. (Saves opening the ConglomerateController twice.)- Specified by:
setHeapConglomerateController
in interfaceActivation
- Parameters:
updateHeapCC
- The ConglomerateController to reuse for the update or delete.- See Also:
Activation.setHeapConglomerateController(org.apache.derby.iapi.store.access.ConglomerateController)
-
clearHeapConglomerateController
public void clearHeapConglomerateController()
Description copied from interface:Activation
Clear the ConglomerateController to be used for an update or delete. (Saves opening the ConglomerateController twice.)- Specified by:
clearHeapConglomerateController
in interfaceActivation
- See Also:
Activation.clearHeapConglomerateController()
-
getIndexScanController
public ScanController getIndexScanController()
Description copied from interface:Activation
Get the ScanController, if any, that has already been opened for the index when scaning for an update or delete. (Saves opening the ScanController twice.)- Specified by:
getIndexScanController
in interfaceActivation
- Returns:
- The ScanController, if available, to use for the update.
- See Also:
Activation.getIndexScanController()
-
setIndexScanController
public void setIndexScanController(ScanController indexSC)
Description copied from interface:Activation
Set the ScanController to be used for an update or delete, when scanning an index that will also be updated (Saves opening the ScanController twice.)- Specified by:
setIndexScanController
in interfaceActivation
- Parameters:
indexSC
- The ScanController to reuse for the update or delete.- See Also:
Activation.setIndexScanController(org.apache.derby.iapi.store.access.ScanController)
-
getIndexConglomerateNumber
public long getIndexConglomerateNumber()
Description copied from interface:Activation
Get the conglomerate number of the index, if any, that has already been opened for scaning for an update or delete. (Saves opening the ScanController twice.)- Specified by:
getIndexConglomerateNumber
in interfaceActivation
- Returns:
- The conglomerate number, if available, to use for the update.
- See Also:
Activation.getIndexConglomerateNumber()
-
setIndexConglomerateNumber
public void setIndexConglomerateNumber(long indexConglomerateNumber)
Description copied from interface:Activation
Set the conglomerate number of the index to be used for an update or delete, when scanning an index that will also be updated (Saves opening the ScanController twice.)- Specified by:
setIndexConglomerateNumber
in interfaceActivation
- Parameters:
indexConglomerateNumber
- The conglomerate number of the index to reuse for the update or delete.- See Also:
Activation.setIndexConglomerateNumber(long)
-
clearIndexScanInfo
public void clearIndexScanInfo()
Description copied from interface:Activation
Clear the info for the index to be re-used for update/delete. (ScanController and conglomerate number.)- Specified by:
clearIndexScanInfo
in interfaceActivation
- See Also:
Activation.clearIndexScanInfo()
-
setForCreateTable
public void setForCreateTable()
Description copied from interface:Activation
Mark the Activation as being for create table. (NOTE: We can do certain optimizations for create table that we can't do for other DDL.)- Specified by:
setForCreateTable
in interfaceActivation
- See Also:
Activation.setForCreateTable()
-
getForCreateTable
public boolean getForCreateTable()
Description copied from interface:Activation
Get whether or not this activation is for create table. (NOTE: We can do certain optimizations for create table that we can't do for other DDL.)- Specified by:
getForCreateTable
in interfaceActivation
- Returns:
- Whether or not this activation is for create table.
- See Also:
Activation.getForCreateTable()
-
setDDLTableDescriptor
public void setDDLTableDescriptor(TableDescriptor td)
Description copied from interface:Activation
Save the TableDescriptor for the target of DDL so that it can be passed between the various ConstantActions during execution.- Specified by:
setDDLTableDescriptor
in interfaceActivation
- See Also:
Activation.setDDLTableDescriptor(org.apache.derby.iapi.sql.dictionary.TableDescriptor)
-
getDDLTableDescriptor
public TableDescriptor getDDLTableDescriptor()
Description copied from interface:Activation
Get the TableDescriptor for the target of DDL.- Specified by:
getDDLTableDescriptor
in interfaceActivation
- Returns:
- The TableDescriptor for the target of DDL.
- See Also:
Activation.getDDLTableDescriptor()
-
setMaxRows
public void setMaxRows(long maxRows)
Description copied from interface:Activation
Set the maximum # of rows. (# of rows that can be returned by a ResultSet. 0 means no limit.)- Specified by:
setMaxRows
in interfaceActivation
- Parameters:
maxRows
- Maximum # of rows. (0 means no limit.)- See Also:
Activation.setMaxRows(long)
-
getMaxRows
public long getMaxRows()
Description copied from interface:Activation
Get the maximum # of rows. (# of rows that can be returned by a ResultSet. 0 means no limit.)- Specified by:
getMaxRows
in interfaceActivation
- Returns:
- Maximum # of rows. (0 means no limit.)
- See Also:
Activation.getMaxRows()
-
setTargetVTI
public void setTargetVTI(java.sql.ResultSet targetVTI)
Description copied from interface:Activation
Save the ResultSet for the target of an update/delete to a VTI.- Specified by:
setTargetVTI
in interfaceActivation
-
getTargetVTI
public java.sql.ResultSet getTargetVTI()
Description copied from interface:Activation
Get the ResultSet for the target of an update/delete to a VTI.- Specified by:
getTargetVTI
in interfaceActivation
- Returns:
- The ResultSet for the target of an update/delete to a VTI.
-
shouldWeCheckRowCounts
protected boolean shouldWeCheckRowCounts() throws StandardException
Find out if it's time to check the row counts of the tables involved in this query.- Returns:
- true if the row counts should be checked, false otherwise
- Throws:
StandardException
-
getScrollable
public final boolean getScrollable()
-
setParameterValueSet
protected final void setParameterValueSet(int paramCount, boolean hasReturnParam)
-
getParameter
protected final DataValueDescriptor getParameter(int position) throws StandardException
This method can help reduce the amount of generated code by changing instances of this.pvs.getParameter(position) to this.getParameter(position)- Parameters:
position
-- Throws:
StandardException
-
getParameterValueSet
public ParameterValueSet getParameterValueSet()
return the parameters.- Specified by:
getParameterValueSet
in interfaceActivation
- Returns:
- The ParameterValueSet for this execution of the statement. Returns NULL if there are no parameters.
-
setParameters
public void setParameters(ParameterValueSet parameterValues, DataTypeDescriptor[] parameterTypes) throws StandardException
Description copied from interface:Activation
Sets the parameter values for this execution of the statement.Has no effect if the activation has been closed.
NOTE: The setParameters() method is currently unimplemented. A statement with parameters will generate its own ParameterValueSet, which can be gotten with the getParameterValueSet() method (above). The idea behind setParameters() is to improve performance when operating across a network by allowing all the parameters to be set in one call, as opposed to one call per parameter.
- Specified by:
setParameters
in interfaceActivation
- Parameters:
parameterValues
- The values of the parameters.- Throws:
StandardException
-
throwIfMissingParms
public void throwIfMissingParms() throws StandardException
Throw an exception if any parameters are uninitialized.- Throws:
StandardException
- Thrown if any parameters are unitialized
-
setCurrentRow
public void setCurrentRow(ExecRow currentRow, int resultSetNumber)
Remember the row for the specified ResultSet.- Specified by:
setCurrentRow
in interfaceActivation
- Parameters:
currentRow
- The row to be operated upon.resultSetNumber
- The resultSetNumber for the current ResultSet
-
clearCurrentRow
public void clearCurrentRow(int resultSetNumber)
Clear the current row for the specified ResultSet.- Specified by:
clearCurrentRow
in interfaceActivation
- Parameters:
resultSetNumber
- The resultSetNumber for the current ResultSet
-
getCurrentRow
public Row getCurrentRow(int resultSetNumber)
Get the current row at the given index.- Specified by:
getCurrentRow
in interfaceActivation
-
getSQLSessionContextForChildren
public SQLSessionContext getSQLSessionContextForChildren()
Return the current SQL session context for all immediately nested connections stemming from the call or function invocation of the statement corresponding to this activation. Substatements (e.g. used in rs.updateRow), inherit the SQL session context via its parent activation.- Specified by:
getSQLSessionContextForChildren
in interfaceActivation
- See Also:
Activation.getSQLSessionContextForChildren()
-
setupSQLSessionContextForChildren
public SQLSessionContext setupSQLSessionContextForChildren(boolean push)
Description copied from interface:Activation
Set up and return the current SQL session context for all immediately nested connections stemming from the call or function invocation of the statement corresponding to this activation (push=true) or for a substatement, which shares the parents statement's session context (push=false).- Specified by:
setupSQLSessionContextForChildren
in interfaceActivation
- Parameters:
push
- true if used to push a new connection context- See Also:
Activation.setupSQLSessionContextForChildren(boolean)
-
setParentActivation
public void setParentActivation(Activation a)
This activation is created in a dynamic call context or a substatement execution context, make note of its parent statements activation (a).- Specified by:
setParentActivation
in interfaceActivation
- Parameters:
a
- The caller's or superstatement's activation
-
getParentActivation
public Activation getParentActivation()
Get the activation of the calling statement or parent statement.- Specified by:
getParentActivation
in interfaceActivation
- Returns:
- The parent's activation
-
getColumnFromRow
protected final DataValueDescriptor getColumnFromRow(int rsNumber, int colId) throws StandardException
- Throws:
StandardException
-
checkPositionedStatement
protected void checkPositionedStatement(java.lang.String cursorName, java.lang.String psName) throws StandardException
Check that a positioned statement is executing against a cursor from the same PreparedStatement (plan) that the positioned statement was original compiled against. Only called from generated code for positioned UPDATE and DELETE statements. See CurrentOfNode.- Parameters:
cursorName
- Name of the cursorpsName
- Object name of the PreparedStatement.- Throws:
StandardException
-
materializeResultSetIfPossible
public NoPutResultSet materializeResultSetIfPossible(NoPutResultSet rs) throws StandardException
- Throws:
StandardException
-
setParentResultSet
public void setParentResultSet(TemporaryRowHolder rs, java.lang.String resultSetId)
- Specified by:
setParentResultSet
in interfaceActivation
-
getParentResultSet
public java.util.Vector<TemporaryRowHolder> getParentResultSet(java.lang.String resultSetId)
get the reference to parent table ResultSets, that will be needed by the referential action dependent table scans.- Specified by:
getParentResultSet
in interfaceActivation
-
getParentResultSetKeys
public java.util.Enumeration<java.lang.String> getParentResultSetKeys()
- Specified by:
getParentResultSetKeys
in interfaceActivation
-
clearParentResultSets
public void clearParentResultSets()
prepared statement use the same activation for multiple execution. For each excution we create new set of temporary resultsets, we should clear this hash table. otherwise we will refer to the released resources.- Specified by:
clearParentResultSets
in interfaceActivation
-
setForUpdateIndexScan
public void setForUpdateIndexScan(CursorResultSet forUpdateIndexScan)
beetle 3865: updateable cursor using index. A way of communication between cursor activation and update activation.- Specified by:
setForUpdateIndexScan
in interfaceActivation
-
getForUpdateIndexScan
public CursorResultSet getForUpdateIndexScan()
- Specified by:
getForUpdateIndexScan
in interfaceActivation
-
getCalendar
protected java.util.Calendar getCalendar()
Return a calendar for use by this activation. Calendar objects are not thread safe, the one returned is purely for use by this activation and it is assumed that is it single threded through the single active thread in a connection model.
-
getLanguageConnectionContext
public final LanguageConnectionContext getLanguageConnectionContext()
Get the language connection factory associated with this connection- Specified by:
getLanguageConnectionContext
in interfaceActivation
-
getTransactionController
public final TransactionController getTransactionController()
Description copied from interface:Activation
Get the Execution TransactionController associated with this activation/lcc.- Specified by:
getTransactionController
in interfaceActivation
-
getContextManager
public ContextManager getContextManager()
Get the Current ContextManager.- Returns:
- Current ContextManager
-
getDataValueFactory
public DataValueFactory getDataValueFactory()
Used by activations to generate data values. Most DML statements will use this method. Possibly some DDL statements will, as well.- Specified by:
getDataValueFactory
in interfaceActivation
- Returns:
- DataValueFactory
-
getCurrentConnection
public java.sql.Connection getCurrentConnection() throws java.sql.SQLException
Used to get a proxy for the current connection.- Throws:
java.sql.SQLException
- Thrown on failure to get connection
-
getDynamicResults
public java.sql.ResultSet[][] getDynamicResults()
Real implementations of this method are provided by a generated class.- Specified by:
getDynamicResults
in interfaceActivation
- Returns:
- null if no dynamic results exists. Otherwise an array of ResultSet arrays, each of length one containing null or a reference to a ResultSet.
-
getMaxDynamicResults
public int getMaxDynamicResults()
Real implementations of this method are provided by a generated class.- Specified by:
getMaxDynamicResults
in interfaceActivation
-
getDB2Length
public NumberDataValue getDB2Length(DataValueDescriptor value, int constantLength, NumberDataValue reUse) throws StandardException
Compute the DB2 compatible length of a value.- Parameters:
value
-constantLength
- The length, if it is a constant modulo null/not null. -1 if the length is not constantreUse
- If non-null then re-use this as a container for the length- Returns:
- the DB2 compatible length, set to null if value is null.
- Throws:
StandardException
-
getDependableFinder
public DependableFinder getDependableFinder()
Description copied from interface:Dependable
Get an object which can be written to disk and which, when read from disk, will find or reconstruct this in-memory Dependable.- Specified by:
getDependableFinder
in interfaceDependable
- Returns:
- A Finder object that can be written to disk if this is a Persistent Dependable. Null if this is not a persistent dependable.
- See Also:
Dependable.getDependableFinder()
-
getObjectName
public java.lang.String getObjectName()
Description copied from interface:Dependable
Get the name of this Dependable OBJECT. This is useful for diagnostic messages.- Specified by:
getObjectName
in interfaceDependable
- Returns:
- Name of Dependable OBJECT.
- See Also:
Dependable.getObjectName()
-
getObjectID
public UUID getObjectID()
Description copied from interface:Dependable
Get the UUID of this Dependable OBJECT.- Specified by:
getObjectID
in interfaceDependable
- Returns:
- UUID of this OBJECT.
- See Also:
Dependable.getObjectID()
-
getClassType
public java.lang.String getClassType()
Description copied from interface:Dependable
Get the unique class id for the Dependable. Every Dependable belongs to a class of Dependables.- Specified by:
getClassType
in interfaceDependable
- Returns:
- type of this Dependable.
- See Also:
Dependable.getClassType()
-
isPersistent
public boolean isPersistent()
Description copied from interface:Dependable
Return whether or not this Dependable is persistent. Persistent dependencies are stored in SYS.SYSDEPENDS.- Specified by:
isPersistent
in interfaceDependable
- Returns:
- true if this Dependable is persistent.
- See Also:
Dependable.isPersistent()
-
isValid
public boolean isValid()
Description copied from interface:Dependent
Check that all of the dependent's dependencies are valid.- Specified by:
isValid
in interfaceDependent
- Returns:
- true if the dependent is currently valid
- See Also:
Dependent.isValid()
-
makeInvalid
public void makeInvalid(int action, LanguageConnectionContext lcc) throws StandardException
Description copied from interface:Dependent
Mark the dependent as invalid (due to at least one of its dependencies being invalid).- Specified by:
makeInvalid
in interfaceDependent
- Parameters:
action
- The action causing the invalidationlcc
- The LanguageConnectionContext- Throws:
StandardException
- thrown if unable to make it invalid- See Also:
Dependent.makeInvalid(int, org.apache.derby.iapi.sql.conn.LanguageConnectionContext)
-
prepareToInvalidate
public void prepareToInvalidate(Provider p, int action, LanguageConnectionContext lcc) throws StandardException
Description copied from interface:Dependent
Prepare to mark the dependent as invalid (due to at least one of its dependencies being invalid).- Specified by:
prepareToInvalidate
in interfaceDependent
- Parameters:
p
- the provideraction
- The action causing the invalidationlcc
- The LanguageConnectionContext- Throws:
StandardException
- thrown if unable to make it invalid- See Also:
Dependent.prepareToInvalidate(org.apache.derby.iapi.sql.depend.Provider, int, org.apache.derby.iapi.sql.conn.LanguageConnectionContext)
-
getMonitor
static ModuleFactory getMonitor()
Privileged Monitor lookup. Must be package private so that user code can't call this entry point.
-
-