Top Description Fields Constructors Methods
org.hsqldb

public abstract Class StatementDMQL

extends Statement
Class Inheritance
Known Direct Subclasses
org.hsqldb.StatementExpression, org.hsqldb.StatementProcedure, org.hsqldb.StatementQuery, org.hsqldb.StatementSet, org.hsqldb.StatementDML
Imports
org.hsqldb.HsqlNameManager.HsqlName, .ParserDQL.CompileContext, org.hsqldb.error.Error, .ErrorCode, org.hsqldb.lib.ArrayUtil, .HashSet, .OrderedHashSet, org.hsqldb.map.ValuePool, org.hsqldb.result.Result, .ResultMetaData, org.hsqldb.rights.GrantConstants, .Grantee, .Right

Statement implementation for DML and base DQL statements.
Authors
Campbell Burnet (campbell-burnet@users dot sourceforge.net), Fred Toussi (fredt@users dot sourceforge.net)
Since
1.7.2
Version
2.7.3

Field Summary

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

column map of query expression

pack-priv Table
pack-priv int[]
pack-priv RangeVariable
pack-priv Expression
condition

condition expression for UPDATE, MERGE and DELETE

pack-priv HsqlNameManager.HsqlName
cursorName

Name of cursor

pack-priv boolean[]
insertCheckColumns

Flags indicating which columns' values will/will not be explicitly set.

pack-priv int[]
insertColumnMap

column map for INSERT operation direct or via MERGE

pack-priv Expression
insertExpression

INSERT_VALUES

pack-priv Expression[][]
multiColumnValues

Column value Expressions for MERGE

pack-priv QueryExpression
queryExpression

Select to be evaluated when this is an INSERT_SELECT or SELECT statement

pack-priv int
rangeIteratorCount

Total number of RangeIterator objects used

pack-priv RangeVariable[]
pack-priv boolean
restartIdentity

for TRUNCATE variation of DELETE

pack-priv Routine[]
pack-priv NumberSequence[]
sequences

Database objects used

pack-priv Table
sourceTable

source table for MERGE

pack-priv TableDerived[]
subqueries

Subqueries inverse usage depth order

pack-priv RangeVariable[]
pack-priv Table
targetTable

target table for INSERT_XXX, UPDATE, DELETE and MERGE

pack-priv Expression
pack-priv boolean[]
pack-priv int[]
updateColumnMap

column map for UPDATE operation direct or via MERGE

pack-priv Expression[]
updateExpressions

Column value Expressions for UPDATE and MERGE.

Inherited from org.hsqldb.Statement:
compileTimestampcursorPropertiesRequestemptyArraygroupidisErrorisExplainisLoggedisTransactionStatementisValidMETA_RESET_STATEMENTSMETA_RESET_VIEWSparameterMetaDataparametersparentPCOL_PREFIXreadTableNamesreferencesRETURN_COLUMN_NAMErootschemaNamesqlstatementReturnTypetypewriteTableNames

Constructor Summary

AccessConstructor and Description
pack-priv
StatementDMQL(int type, int group, HsqlNameManager.HsqlName schemaName)

Method Summary

Modifier and TypeMethod and Description
private StringBuilder
appendColumns(StringBuilder sb, int[] columnMap)

private StringBuilder
private StringBuilder
appendMultiColumns(StringBuilder sb, int[] columnMap)

private StringBuilder
private StringBuilder
private StringBuilder
appendSubqueries(Session session, StringBuilder sb, int blanks)

private StringBuilder
pack-priv void
checkAccessRights(Session session)

Determines if the authorizations are adequate to execute the compiled object.

public void
pack-priv abstract void
pack-priv abstract void
public String
describe(Session session)

Implements abstract org.hsqldb.Statement.describe.

Retrieves a String representation of this object.

pack-priv String
describeImpl(Session session)

Provides the toString() implementation.

public Result
execute(Session session)

Implements abstract org.hsqldb.Statement.execute.

private Result
pack-priv boolean[]
public ResultMetaData
getParametersMetaData()

Overrides org.hsqldb.Statement.getParametersMetaData.

Returns the metadata for the placeholder parameters.

pack-priv abstract Result
getResult(Session session)

public ResultMetaData
getResultMetaData()

Overrides org.hsqldb.Statement.getResultMetaData.

Returns the metadata, which is empty if the CompiledStatement does not generate a Result.

pack-priv TableDerived[]
public boolean
public final boolean
pack-priv void
public void
pack-priv void
pack-priv void
Inherited from org.hsqldb.Statement:
clearVariablesgeneratedResultMetaDatagetCompileTimestampgetCursorPropertiesRequestgetGroupgetIDgetReferencesgetResultPropertiesgetSchemaNamegetSQLgetStatementReturnTypegetTableNamesForReadgetTableNamesForWritegetTypehasGeneratedColumnsisAutoCommitStatementisErrorisLoggedisTransactionStatementisValidsetCompileTimestampsetCursorPropertiesRequestsetDescribesetGeneratedColumnInfosetIDsetParameterMetaDatasetParameterssetParentsetRootsetSchemaHsqlNamesetSQL

Field Detail

baseColumnMapback to summary
pack-priv int[] baseColumnMap

column map of query expression

baseTableback to summary
pack-priv Table baseTable
baseUpdateColumnMapback to summary
pack-priv int[] baseUpdateColumnMap
checkRangeVariableback to summary
pack-priv RangeVariable checkRangeVariable
conditionback to summary
pack-priv Expression condition

condition expression for UPDATE, MERGE and DELETE

cursorNameback to summary
pack-priv HsqlNameManager.HsqlName cursorName

Name of cursor

insertCheckColumnsback to summary
pack-priv boolean[] insertCheckColumns

Flags indicating which columns' values will/will not be explicitly set.

insertColumnMapback to summary
pack-priv int[] insertColumnMap

column map for INSERT operation direct or via MERGE

insertExpressionback to summary
pack-priv Expression insertExpression

INSERT_VALUES

multiColumnValuesback to summary
pack-priv Expression[][] multiColumnValues

Column value Expressions for MERGE

queryExpressionback to summary
pack-priv QueryExpression queryExpression

Select to be evaluated when this is an INSERT_SELECT or SELECT statement

rangeIteratorCountback to summary
pack-priv int rangeIteratorCount

Total number of RangeIterator objects used

rangeVariablesback to summary
pack-priv RangeVariable[] rangeVariables
restartIdentityback to summary
pack-priv boolean restartIdentity

for TRUNCATE variation of DELETE

routinesback to summary
pack-priv Routine[] routines
sequencesback to summary
pack-priv NumberSequence[] sequences

Database objects used

sourceTableback to summary
pack-priv Table sourceTable

source table for MERGE

subqueriesback to summary
pack-priv TableDerived[] subqueries

Subqueries inverse usage depth order

targetRangeVariablesback to summary
pack-priv RangeVariable[] targetRangeVariables
targetTableback to summary
pack-priv Table targetTable

target table for INSERT_XXX, UPDATE, DELETE and MERGE

updatableTableCheckback to summary
pack-priv Expression updatableTableCheck

VIEW check

updateCheckColumnsback to summary
pack-priv boolean[] updateCheckColumns
updateColumnMapback to summary
pack-priv int[] updateColumnMap

column map for UPDATE operation direct or via MERGE

updateExpressionsback to summary
pack-priv Expression[] updateExpressions

Column value Expressions for UPDATE and MERGE.

Constructor Detail

StatementDMQLback to summary
pack-priv StatementDMQL(int type, int group, HsqlNameManager.HsqlName schemaName)

Method Detail

appendColumnsback to summary
private StringBuilder appendColumns(StringBuilder sb, int[] columnMap)
appendConditionback to summary
private StringBuilder appendCondition(Session session, StringBuilder sb)
appendMultiColumnsback to summary
private StringBuilder appendMultiColumns(StringBuilder sb, int[] columnMap)
appendParamsback to summary
private StringBuilder appendParams(StringBuilder sb)
appendSourceTableback to summary
private StringBuilder appendSourceTable(StringBuilder sb)
appendSubqueriesback to summary
private StringBuilder appendSubqueries(Session session, StringBuilder sb, int blanks)
appendTableback to summary
private StringBuilder appendTable(StringBuilder sb)
checkAccessRightsback to summary
pack-priv void checkAccessRights(Session session)

Determines if the authorizations are adequate to execute the compiled object. Completion requires the list of all database objects in a compiled statement.

clearStructuresback to summary
public void clearStructures(Session session)

Overrides org.hsqldb.Statement.clearStructures.

collectTableNamesForReadback to summary
pack-priv abstract void collectTableNamesForRead(OrderedHashSet<HsqlNameManager.HsqlName> set)
collectTableNamesForWriteback to summary
pack-priv abstract void collectTableNamesForWrite(OrderedHashSet<HsqlNameManager.HsqlName> set)
describeback to summary
public String describe(Session session)

Implements abstract org.hsqldb.Statement.describe.

Retrieves a String representation of this object.

describeImplback to summary
pack-priv String describeImpl(Session session)

Provides the toString() implementation.

executeback to summary
public Result execute(Session session)

Implements abstract org.hsqldb.Statement.execute.

getExplainResultback to summary
private Result getExplainResult(Session session)
getInsertOrUpdateColumnCheckListback to summary
pack-priv boolean[] getInsertOrUpdateColumnCheckList()
getParametersMetaDataback to summary
public ResultMetaData getParametersMetaData()

Overrides org.hsqldb.Statement.getParametersMetaData.

Returns the metadata for the placeholder parameters.

getResultback to summary
pack-priv abstract Result getResult(Session session)
getResultMetaDataback to summary
public ResultMetaData getResultMetaData()

Overrides org.hsqldb.Statement.getResultMetaData.

Returns the metadata, which is empty if the CompiledStatement does not generate a Result.

getSubqueriesback to summary
pack-priv TableDerived[] getSubqueries(Session session)
isCatalogChangeback to summary
public boolean isCatalogChange()

Overrides org.hsqldb.Statement.isCatalogChange.

isCatalogLockback to summary
public final boolean isCatalogLock(int model)

Overrides org.hsqldb.Statement.isCatalogLock.

materializeSubQueriesback to summary
pack-priv void materializeSubQueries(Session session)
resolveback to summary
public void resolve(Session session)

Overrides org.hsqldb.Statement.resolve.

setBaseIndexColumnMapback to summary
pack-priv void setBaseIndexColumnMap()
setDatabaseObjectsback to summary
pack-priv void setDatabaseObjects(Session session, ParserDQL.CompileContext compileContext)

Overrides org.hsqldb.Statement.setDatabaseObjects.