Top Description Fields Constructors Methods
org.hsqldb

public Class StatementDML

extends StatementDMQL
Class Inheritance
Known Direct Subclasses
org.hsqldb.StatementInsert, org.hsqldb.StatementResultUpdate
Imports
org.hsqldb.HsqlNameManager.HsqlName, .ParserDQL.CompileContext, org.hsqldb.error.Error, .ErrorCode, org.hsqldb.lib.ArrayUtil, .HashSet, .OrderedHashSet, org.hsqldb.navigator.RangeIterator, .RowIterator, .RowSetNavigator, .RowSetNavigatorClient, .RowSetNavigatorDataChange, org.hsqldb.persist.PersistentStore, org.hsqldb.result.Result, .ResultConstants, .ResultMetaData, org.hsqldb.trigger.Trigger, org.hsqldb.types.Type, .Types

Implementation of Statement for DML statements.

Author
Fred Toussi (fredt@users dot sourceforge.net)
Since
1.9.0
Version
2.7.4

Field Summary

Modifier and TypeField and Description
pack-priv int[]
generatedIndexes

column indexes for generated values

pack-priv ResultMetaData
pack-priv ResultMetaData
generatedResultMetaData

ResultMetaData for generated values

pack-priv int
pack-priv boolean
pack-priv boolean
pack-priv boolean
pack-priv Expression
pack-priv Expression
pack-priv Expression
pack-priv SortAndSlice
pack-priv Expression[]
Inherited from org.hsqldb.StatementDMQL:
baseColumnMapbaseTablebaseUpdateColumnMapcheckRangeVariableconditioncursorNameinsertCheckColumnsinsertColumnMapinsertExpressionmultiColumnValuesqueryExpressionrangeIteratorCountrangeVariablesrestartIdentityroutinessequencessourceTablesubqueriestargetRangeVariablestargetTableupdatableTableCheckupdateCheckColumnsupdateColumnMapupdateExpressions

Constructor Summary

AccessConstructor and Description
public
StatementDML(int type, HsqlNameManager.HsqlName schemaName)

pack-priv
StatementDML(Session session, Table targetTable, RangeVariable targetRange, RangeVariable[] rangeVars, ParserDQL.CompileContext compileContext, boolean restartIdentity, int type, SortAndSlice sortAndSlice)

Instantiate this as a DELETE statement

pack-priv
StatementDML(Session session, Expression[] targets, Table targetTable, RangeVariable targetRange, RangeVariable[] rangeVars, int[] updateColumnMap, Expression[] colExpressions, boolean[] checkColumns, ParserDQL.CompileContext compileContext, SortAndSlice sortAndSlice)

Instantiate this as an UPDATE statement.

pack-priv
StatementDML(Session session, Expression[] targets, RangeVariable sourceRange, RangeVariable targetRange, RangeVariable[] rangeVars, int[] insertColMap, int[] updateColMap, boolean[] checkColumns, Expression mergeCondition, Expression insertExpr, Expression[] updateExpr, boolean deleteFirst, Expression insertCondition, Expression updateCondition, Expression deleteCondition, ParserDQL.CompileContext compileContext)

Instantiate this as a MERGE statement.

pack-priv
StatementDML()

Instantiate this as a CURSOR operation statement.

Method Summary

Modifier and TypeMethod and Description
public void
pack-priv void
pack-priv void
pack-priv int
delete(Session session, Table table, RowSetNavigatorDataChange navigator, RowSetNavigator generatedNavigator)

Highest level multiple row delete method.

pack-priv Result

Returns:

the result of executing the statement
executeDeleteStatement
(Session session, int limit)

Executes a DELETE statement.

pack-priv Result
pack-priv Result

Returns:

Result object
executeMergeStatement
(Session session)

Executes a MERGE statement.

pack-priv Result

Returns:

Result object
executeUpdateStatement
(Session session, int limit)

Executes an UPDATE statement.

public ResultMetaData
pack-priv static String[]
pack-priv Object[]
pack-priv Object[]
getInsertData(Session session, Type[] colTypes, Expression[] rowArgs)

pack-priv Result
pack-priv void
pack-priv static void
getUpdatedData(Session session, Expression[] targets, Table targetTable, int[] columnMap, Expression[] colExpressions, Type[] colTypes, final Object[] data)

public boolean
pack-priv void
insertRowSet(Session session, RowSetNavigator generatedNavigator, RowSetNavigator newData)

pack-priv Result
pack-priv void
performIntegrityChecks(Session session, Table table, Object[] oldData, Object[] newData, int[] updatedColumns)

pack-priv static void
performReferentialActions(Session session, RowSetNavigatorDataChange navigator, Row row, Object[] data, int[] changedCols, HashSet<Constraint> path, boolean deleteCascade)

public void
pack-priv void
pack-priv int

Returns:

int
update
(Session
Session
session
,
Table
Table
table
,
RowSetNavigatorDataChange navigator, RowSetNavigator generatedNavigator)

Highest level multiple row update method.

Inherited from org.hsqldb.StatementDMQL:
checkAccessRightsdescribedescribeImplexecutegetInsertOrUpdateColumnCheckListgetParametersMetaDatagetResultMetaDatagetSubqueriesisCatalogChangeisCatalogLockmaterializeSubQueriesresolvesetBaseIndexColumnMapsetDatabaseObjects

Field Detail

generatedIndexesback to summary
pack-priv int[] generatedIndexes

column indexes for generated values

generatedInputMetaDataback to summary
pack-priv ResultMetaData generatedInputMetaData
generatedResultMetaDataback to summary
pack-priv ResultMetaData generatedResultMetaData

ResultMetaData for generated values

generatedTypeback to summary
pack-priv int generatedType
isMergeDeleteFirstback to summary
pack-priv boolean isMergeDeleteFirst
isSimpleInsertback to summary
pack-priv boolean isSimpleInsert
isTruncateback to summary
pack-priv boolean isTruncate
mergeDeleteConditionback to summary
pack-priv Expression mergeDeleteCondition
mergeInsertConditionback to summary
pack-priv Expression mergeInsertCondition
mergeUpdateConditionback to summary
pack-priv Expression mergeUpdateCondition
sortAndSliceback to summary
pack-priv SortAndSlice sortAndSlice
targetsback to summary
pack-priv Expression[] targets

Constructor Detail

StatementDMLback to summary
public StatementDML(int type, HsqlNameManager.HsqlName schemaName)
StatementDMLback to summary
pack-priv StatementDML(Session session, Table targetTable, RangeVariable targetRange, RangeVariable[] rangeVars, ParserDQL.CompileContext compileContext, boolean restartIdentity, int type, SortAndSlice sortAndSlice)

Instantiate this as a DELETE statement

StatementDMLback to summary
pack-priv StatementDML(Session session, Expression[] targets, Table targetTable, RangeVariable targetRange, RangeVariable[] rangeVars, int[] updateColumnMap, Expression[] colExpressions, boolean[] checkColumns, ParserDQL.CompileContext compileContext, SortAndSlice sortAndSlice)

Instantiate this as an UPDATE statement.

StatementDMLback to summary
pack-priv StatementDML(Session session, Expression[] targets, RangeVariable sourceRange, RangeVariable targetRange, RangeVariable[] rangeVars, int[] insertColMap, int[] updateColMap, boolean[] checkColumns, Expression mergeCondition, Expression insertExpr, Expression[] updateExpr, boolean deleteFirst, Expression insertCondition, Expression updateCondition, Expression deleteCondition, ParserDQL.CompileContext compileContext)

Instantiate this as a MERGE statement.

StatementDMLback to summary
pack-priv StatementDML()

Instantiate this as a CURSOR operation statement.

Method Detail

clearStructuresback to summary
public void clearStructures(Session session)

Overrides org.hsqldb.StatementDMQL.clearStructures.

collectTableNamesForReadback to summary
pack-priv void collectTableNamesForRead(OrderedHashSet<HsqlNameManager.HsqlName> set)

Implements abstract org.hsqldb.StatementDMQL.collectTableNamesForRead.

collectTableNamesForWriteback to summary
pack-priv void collectTableNamesForWrite(OrderedHashSet<HsqlNameManager.HsqlName> set)

Implements abstract org.hsqldb.StatementDMQL.collectTableNamesForWrite.

deleteback to summary
pack-priv int delete(Session session, Table table, RowSetNavigatorDataChange navigator, RowSetNavigator generatedNavigator)

Highest level multiple row delete method. Corresponds to an SQL DELETE.

executeDeleteStatementback to summary
pack-priv Result executeDeleteStatement(Session session, int limit)

Executes a DELETE statement.

Returns:Result

the result of executing the statement

executeDeleteTruncateStatementback to summary
pack-priv Result executeDeleteTruncateStatement(Session session)
executeMergeStatementback to summary
pack-priv Result executeMergeStatement(Session session)

Executes a MERGE statement.

Returns:Result

Result object

executeUpdateStatementback to summary
pack-priv Result executeUpdateStatement(Session session, int limit)

Executes an UPDATE statement.

Returns:Result

Result object

generatedResultMetaDataback to summary
public ResultMetaData generatedResultMetaData()

Overrides org.hsqldb.Statement.generatedResultMetaData.

getConstraintInfoback to summary
pack-priv static String[] getConstraintInfo(Constraint c)
getGeneratedColumnsback to summary
pack-priv Object[] getGeneratedColumns(Object[] data)
getInsertDataback to summary
pack-priv Object[] getInsertData(Session session, Type[] colTypes, Expression[] rowArgs)
getResultback to summary
pack-priv Result getResult(Session session)

Implements abstract org.hsqldb.StatementDMQL.getResult.

getTriggerTableNamesback to summary
pack-priv void getTriggerTableNames(OrderedHashSet<HsqlNameManager.HsqlName> set, boolean write)
getUpdatedDataback to summary
pack-priv static void getUpdatedData(Session session, Expression[] targets, Table targetTable, int[] columnMap, Expression[] colExpressions, Type[] colTypes, final Object[] data)
hasGeneratedColumnsback to summary
public boolean hasGeneratedColumns()

Overrides org.hsqldb.Statement.hasGeneratedColumns.

insertRowSetback to summary
pack-priv void insertRowSet(Session session, RowSetNavigator generatedNavigator, RowSetNavigator newData)
insertSingleRowback to summary
pack-priv Result insertSingleRow(Session session, PersistentStore store, Object[] data)
performIntegrityChecksback to summary
pack-priv void performIntegrityChecks(Session session, Table table, Object[] oldData, Object[] newData, int[] updatedColumns)
performReferentialActionsback to summary
pack-priv static void performReferentialActions(Session session, RowSetNavigatorDataChange navigator, Row row, Object[] data, int[] changedCols, HashSet<Constraint> path, boolean deleteCascade)
setGeneratedColumnInfoback to summary
public void setGeneratedColumnInfo(int generate, ResultMetaData meta)

Overrides org.hsqldb.Statement.setGeneratedColumnInfo.

setupChecksback to summary
pack-priv void setupChecks()
updateback to summary
pack-priv int update(Session session, Table table, RowSetNavigatorDataChange navigator, RowSetNavigator generatedNavigator)

Highest level multiple row update method.

Following clauses from SQL Standard section 11.8 are enforced 9) Let ISS be the innermost SQL-statement being executed. 10) If evaluation of these General Rules during the execution of ISS would cause an update of some site to a value that is distinct from the value to which that site was previously updated during the execution of ISS, then an exception condition is raised: triggered data change violation. 11) If evaluation of these General Rules during the execution of ISS would cause deletion of a row containing a site that is identified for replacement in that row, then an exception condition is raised: triggered data change violation.

Parameters
session:Session

Session

table:Table

Table

Returns:int

int