Package org.hibernate.dialect.sql.ast
Class DB2SqlAstTranslator<T extends JdbcOperation>
java.lang.Object
org.hibernate.sql.ast.spi.AbstractSqlAstTranslator<T>
org.hibernate.sql.ast.spi.SqlAstTranslatorWithMerge<T>
org.hibernate.dialect.sql.ast.DB2SqlAstTranslator<T>
- All Implemented Interfaces:
Appendable,SqlAppender,SqlAstTranslator<T>,SqlAstWalker
- Direct Known Subclasses:
DB2iSqlAstTranslator,DB2zSqlAstTranslator
A SQL AST translator for DB2.
-
Nested Class Summary
Nested classes/interfaces inherited from class org.hibernate.sql.ast.spi.AbstractSqlAstTranslator
AbstractSqlAstTranslator.LockStrategy, AbstractSqlAstTranslator.SubQueryRelationalRestrictionEmulationRenderer<X extends Expression> -
Field Summary
Fields inherited from interface org.hibernate.sql.ast.spi.SqlAppender
CLOSE_PARENTHESIS, COMMA_SEPARATOR, COMMA_SEPARATOR_CHAR, NO_SEPARATOR, NULL_KEYWORD, OPEN_PARENTHESIS, PARAM_MARKER, WHITESPACE -
Constructor Summary
ConstructorsConstructorDescriptionDB2SqlAstTranslator(SessionFactoryImplementor sessionFactory, Statement statement) -
Method Summary
Modifier and TypeMethodDescriptionprotected voidprotected Stringprotected booleanWhether the SQL with clause requires the "recursive" keyword for recursive CTEs.protected voidrenderComparison(Expression lhs, ComparisonOperator operator, Expression rhs) protected voidrenderComparisonStandard(Expression lhs, ComparisonOperator operator, Expression rhs) protected voidrenderDerivedTableReference(DerivedTableReference tableReference) protected voidrenderDmlTargetTableExpression(NamedTableReference tableReference) protected voidrenderExpressionAsClauseItem(Expression expression) protected voidrenderFetchExpression(Expression fetchExpression) protected voidrenderFromClauseAfterUpdateSet(UpdateStatement statement) voidrenderNamedSetReturningFunction(String functionName, List<? extends SqlAstNode> sqlAstArguments, AnonymousTupleTableGroupProducer tupleType, String tableIdentifierVariable, SqlAstNodeRenderingMode argumentRenderingMode) Renders a named set returning function.protected voidrenderOffsetExpression(Expression offsetExpression) protected booleanrenderReturningClause(MutationStatement statement) protected voidrenderSelectExpression(Expression expression) protected voidrenderSelectTupleComparison(List<SqlSelection> lhsExpressions, SqlTuple tuple, ComparisonOperator operator) protected voidrenderTableGroupJoin(TableGroupJoin tableGroupJoin, List<TableGroupJoin> tableGroupJoinCollector) protected voidrenderTableReferenceJoins(TableGroup tableGroup, LockMode lockMode, int swappedJoinIndex, boolean forceLeftJoin) protected booleanshouldEmulateFetchClause(QueryPart queryPart) protected booleanprotected booleanprotected booleanprotected voidvisitAnsiCaseSearchedExpression(CaseSearchedExpression caseSearchedExpression, Consumer<Expression> resultRenderer) protected voidvisitAnsiCaseSimpleExpression(CaseSimpleExpression caseSimpleExpression, Consumer<Expression> resultRenderer) protected voidvisitArithmeticOperand(Expression expression) voidvisitBooleanExpressionPredicate(BooleanExpressionPredicate booleanExpressionPredicate) protected voidvisitConflictClause(ConflictClause conflictClause) protected voidvisitDeleteStatementOnly(DeleteStatement statement) protected voidvisitInsertStatementOnly(InsertSelectStatement statement) voidvisitOffsetFetchClause(QueryPart queryPart) voidvisitQueryGroup(QueryGroup queryGroup) voidvisitQueryPartTableReference(QueryPartTableReference tableReference) voidvisitQuerySpec(QuerySpec querySpec) protected voidvisitReturningColumns(List<ColumnReference> returningColumns) voidvisitSelectStatement(SelectStatement statement) voidvisitStandardTableInsert(TableInsertStandard tableInsert) voidvisitStandardTableUpdate(TableUpdateStandard tableUpdate) protected voidvisitUpdateStatementOnly(UpdateStatement statement) Methods inherited from class org.hibernate.sql.ast.spi.SqlAstTranslatorWithMerge
createMergeOperation, renderMergeDelete, renderMergeInsert, renderMergeInto, renderMergeOn, renderMergeSourceAlias, renderMergeStatement, renderMergeTargetAlias, renderMergeUpdate, renderMergeUsing, renderMergeUsingQuerySelectionMethods inherited from class org.hibernate.sql.ast.spi.AbstractSqlAstTranslator
addAdditionalWherePredicate, addAffectedTableName, addAppliedParameterBinding, addParameterBinder, addParameterBinder, afterQueryGroup, append, append, append, appendAssignmentColumn, appendBackslashEscapedLikeLiteral, appendDoubleQuoteEscapedString, appendSingleQuoteEscapedString, appendSql, appendSql, appendSql, appendSql, appendSql, areAllResultsParameters, areAllResultsParameters, assertRowsOnlyFetchClauseType, beforeQueryGroup, castFunction, castNumberToString, cleanup, createRowMatchingPredicate, determineColumnReferenceQualifier, determineCyclePathColumnName, determineLateralEmulationPredicate, determineLockingStrategy, determineWhereClauseRestrictionWithJoinEmulation, determineWhereClauseRestrictionWithJoinEmulation, emulateCycleClauseWithRowAndArray, emulateFetchOffsetWithWindowFunctions, emulateFetchOffsetWithWindowFunctions, emulateQuantifiedTupleSubQueryPredicate, emulateQueryPartTableReferenceColumnAliasing, emulateSearchClauseOrderWithRowAndArray, emulateSelectTupleComparison, emulateSortSpecificationNullPrecedence, emulateSubQueryRelationalRestrictionPredicate, emulateTupleComparison, emulateValuesTableReferenceColumnAliasing, getAffectedTableNames, getAppliedParameterBindings, getArrayContainsFunction, getBooleanType, getCastTypeName, getClauseStack, getCteStatement, getCurrentClauseStack, getCurrentCteStatement, getCurrentDmlStatement, getCurrentQueryPart, getDialect, getDual, getEffectiveLockMode, getEffectiveLockMode, getEffectiveLockMode, getEffectiveLockTimeout, getFetchClauseTypeForRowNumbering, getFromDualForSelectOnly, getIntegerType, getJdbcLockStrategy, getJdbcParameterBindings, getJdbcServices, getLeftHandExpression, getLimit, getLimitParameter, getLiteralValue, getLockingClauseStrategy, getLockOptions, getMaxRows, getOffsetParameter, getParameterBinders, getParameterBindValue, getParameterRenderingMode, getQueryPartForRowNumbering, getQueryPartStack, getRowsToSkip, getSelectItemReference, getSessionFactory, getSortSpecificationsRowNumbering, getSql, getSqlAppender, getSqlAst, getSqlBuffer, getSqlTypeName, getStatement, getStatementStack, getStringType, getUniqueConstraintNameThatMayFail, getWrapperOptions, hasAggregateFunctions, hasFrom, hasLimit, hasLimit, hasNestedTableGroupsToRender, hasNonTrivialFromClause, hasOffset, hasWhere, inlineCteTableGroup, inOverOrWithinGroupClause, interpretExpression, isCorrelated, isInRecursiveQueryPart, isInSubquery, isIntegerDivisionEmulationRequired, isLiteral, isParameter, isRowNumberingCurrentQueryPart, isRowsOnlyFetchClauseType, isStruct, needsCteInlining, needsLocking, needsMaxRows, needsParenthesesAroundQueryGroup, needsRowsToSkip, prepareLimitOffsetParameters, prependSql, processNestedTableGroupJoins, processTableGroupJoin, processTableGroupJoins, registerAffectedTable, registerAffectedTable, render, renderAsLiteral, renderBackslashEscapedLikePattern, renderCaseInsensitiveLikeEmulation, renderCasted, renderCombinedLimitClause, renderCombinedLimitClause, renderCommaSeparated, renderCommaSeparatedSelectExpression, renderCommaSeparatedSelectExpression, renderComparisonDistinctOperator, renderComparisonEmulateCase, renderComparisonEmulateDecode, renderComparisonEmulateDecode, renderComparisonEmulateIntersect, renderCteColumns, renderCycleClause, renderDeleteClause, renderDerivedTableReferenceIdentificationVariable, renderDmlTargetTableGroup, renderExpressionAsLiteral, renderExpressionsAsSubquery, renderFetch, renderFetchPlusOffsetExpression, renderFetchPlusOffsetExpressionAsLiteral, renderFetchPlusOffsetExpressionAsSingleParameter, renderFirstClause, renderFirstClause, renderFirstSkipClause, renderFirstSkipClause, renderFromClauseExcludingDmlTargetReference, renderFromClauseJoiningDmlTargetReference, renderFromClauseSpaces, renderInsertIntoNoColumns, renderInterval, renderIntervalLiteral, renderIntoIntoAndTable, renderJoinedTableGroup, renderLikePredicate, renderLimitOffsetClause, renderLimitOffsetClause, renderLiteral, renderMaterializationHint, renderMergeUpdateClause, renderNamedTableReference, renderNull, renderOffset, renderOffsetFetchClause, renderOffsetFetchClause, renderOrderBy, renderParameterAsParameter, renderPartitionItem, renderPrimaryTableReference, renderQueryGroup, renderRecursiveCteVirtualSelections, renderRootTableGroup, renderRowNumber, renderRowNumberingSelectItems, renderRowsToClause, renderRowsToClause, renderSearchClause, renderSelectExpressionWithCastedOrInlinedPlainParameters, renderSelectSimpleComparison, renderSetClause, renderSimpleNamedFunction, renderSkipFirstClause, renderSkipFirstClause, renderSortExpression, renderStandardCycleClause, renderStandardSearchClause, renderStringContainsExactlyPredicate, renderTableReferenceIdentificationVariable, renderTableReferenceJoins, renderTopClause, renderTopClause, renderTopStartAtClause, renderTopStartAtClause, renderTupleComparisonStandard, renderUpdateClause, renderVirtualSelections, renderWrappedParameter, resolveAliasedExpression, resolveAliasedExpression, resolveExpressionToAlias, setLimitParameter, setLockingTarget, setOffsetParameter, shouldEmulateLateralWithIntersect, shouldInlineCte, simpleColumnWriteFragmentRendering, supportsRecursiveClauseArrayAndRowEmulation, translate, translateDelete, translateInsert, translateSelect, translateUpdate, useOffsetFetchClause, visitAggregateColumnWriteExpression, visitAny, visitAssignment, visitBetweenPredicate, visitBinaryArithmeticExpression, visitCaseSearchedExpression, visitCaseSearchedExpression, visitCaseSimpleExpression, visitCaseSimpleExpression, visitCastTarget, visitCollation, visitColumnReference, visitColumnWriteFragment, visitConversion, visitCteContainer, visitCteDefinition, visitCteObject, visitCustomTableDelete, visitCustomTableInsert, visitCustomTableUpdate, visitDecodeCaseSearchedExpression, visitDeleteStatement, visitDistinct, visitDuration, visitDurationUnit, visitEmbeddableTypeLiteral, visitEntityTypeLiteral, visitEvery, visitExistsPredicate, visitExtractUnit, visitFilterFragmentPredicate, visitFilterPredicate, visitFormat, visitForUpdateClause, visitFromClause, visitFunctionTableReference, visitGroupByClause, visitGroupedPredicate, visitHavingClause, visitInArrayPredicate, visitInListPredicate, visitInsertSource, visitInsertStatement, visitInsertStatementEmulateMerge, visitInSubQueryPredicate, visitJdbcLiteral, visitJunction, visitLikePredicate, visitModifiedSubQueryExpression, visitNamedTableReference, visitNegatedPredicate, visitNestedColumnReference, visitNullnessPredicate, visitOnDuplicateKeyConflictClause, visitOnDuplicateKeyConflictClauseWithDoNothing, visitOptionalTableUpdate, visitOrderBy, visitOver, visitOverClause, visitOverClause, visitOverflow, visitParameter, visitParameterAsParameter, visitPartitionByClause, visitPartitionExpressions, visitPartitionExpressions, visitQueryClauses, visitQueryLiteral, visitRecursivePath, visitRelationalPredicate, visitReturningColumns, visitSelectClause, visitSelfRenderingExpression, visitSelfRenderingPredicate, visitSetAssignment, visitSetAssignmentEmulateJoin, visitSortSpecification, visitSortSpecification, visitSqlFragmentPredicate, visitSqlSelectExpression, visitSqlSelection, visitSqlSelectionExpression, visitSqlSelections, visitStandardConflictClause, visitStandardTableDelete, visitStar, visitSummarization, visitTableGroup, visitTableGroupJoin, visitTableReferenceJoin, visitThruthnessPredicate, visitTrimSpecification, visitTuple, visitUnaryOperationExpression, visitUnparsedNumericLiteral, visitUpdateStatement, visitUpdateStatementEmulateInlineView, visitUpdateStatementEmulateMerge, visitUpdateStatementEmulateTupleSet, visitValuesList, visitValuesListEmulateSelectUnion, visitValuesListStandard, visitValuesTableReference, visitWhereClause, withParameterRenderingMode, withRowNumbering
-
Constructor Details
-
DB2SqlAstTranslator
-
-
Method Details
-
needsRecursiveKeywordInWithClause
protected boolean needsRecursiveKeywordInWithClause()Description copied from class:AbstractSqlAstTranslatorWhether the SQL with clause requires the "recursive" keyword for recursive CTEs.- Overrides:
needsRecursiveKeywordInWithClausein classAbstractSqlAstTranslator<T extends JdbcOperation>
-
renderTableReferenceJoins
protected void renderTableReferenceJoins(TableGroup tableGroup, LockMode lockMode, int swappedJoinIndex, boolean forceLeftJoin) - Overrides:
renderTableReferenceJoinsin classAbstractSqlAstTranslator<T extends JdbcOperation>
-
renderTableGroupJoin
protected void renderTableGroupJoin(TableGroupJoin tableGroupJoin, List<TableGroupJoin> tableGroupJoinCollector) - Overrides:
renderTableGroupJoinin classAbstractSqlAstTranslator<T extends JdbcOperation>
-
renderExpressionAsClauseItem
- Overrides:
renderExpressionAsClauseItemin classAbstractSqlAstTranslator<T extends JdbcOperation>
-
visitArithmeticOperand
- Overrides:
visitArithmeticOperandin classAbstractSqlAstTranslator<T extends JdbcOperation>
-
visitBooleanExpressionPredicate
- Specified by:
visitBooleanExpressionPredicatein interfaceSqlAstWalker- Overrides:
visitBooleanExpressionPredicatein classAbstractSqlAstTranslator<T extends JdbcOperation>
-
visitAnsiCaseSearchedExpression
protected void visitAnsiCaseSearchedExpression(CaseSearchedExpression caseSearchedExpression, Consumer<Expression> resultRenderer) - Overrides:
visitAnsiCaseSearchedExpressionin classAbstractSqlAstTranslator<T extends JdbcOperation>
-
visitAnsiCaseSimpleExpression
protected void visitAnsiCaseSimpleExpression(CaseSimpleExpression caseSimpleExpression, Consumer<Expression> resultRenderer) - Overrides:
visitAnsiCaseSimpleExpressionin classAbstractSqlAstTranslator<T extends JdbcOperation>
-
shouldEmulateFetchClause
-
supportsOffsetClause
protected boolean supportsOffsetClause() -
visitQueryPartTableReference
- Specified by:
visitQueryPartTableReferencein interfaceSqlAstWalker- Overrides:
visitQueryPartTableReferencein classAbstractSqlAstTranslator<T extends JdbcOperation>
-
renderDerivedTableReference
- Overrides:
renderDerivedTableReferencein classAbstractSqlAstTranslator<T extends JdbcOperation>
-
renderNamedSetReturningFunction
public void renderNamedSetReturningFunction(String functionName, List<? extends SqlAstNode> sqlAstArguments, AnonymousTupleTableGroupProducer tupleType, String tableIdentifierVariable, SqlAstNodeRenderingMode argumentRenderingMode) Description copied from interface:SqlAstTranslatorRenders a named set returning function.- Specified by:
renderNamedSetReturningFunctionin interfaceSqlAstTranslator<T extends JdbcOperation>- Overrides:
renderNamedSetReturningFunctionin classAbstractSqlAstTranslator<T extends JdbcOperation>
-
visitSelectStatement
- Specified by:
visitSelectStatementin interfaceSqlAstWalker- Overrides:
visitSelectStatementin classAbstractSqlAstTranslator<T extends JdbcOperation>
-
emulateFetchOffsetWithWindowFunctionsVisitQueryPart
- Overrides:
emulateFetchOffsetWithWindowFunctionsVisitQueryPartin classAbstractSqlAstTranslator<T extends JdbcOperation>
-
visitQueryGroup
- Specified by:
visitQueryGroupin interfaceSqlAstWalker- Overrides:
visitQueryGroupin classAbstractSqlAstTranslator<T extends JdbcOperation>
-
visitQuerySpec
- Specified by:
visitQuerySpecin interfaceSqlAstWalker- Overrides:
visitQuerySpecin classAbstractSqlAstTranslator<T extends JdbcOperation>
-
visitOffsetFetchClause
- Specified by:
visitOffsetFetchClausein interfaceSqlAstWalker- Overrides:
visitOffsetFetchClausein classAbstractSqlAstTranslator<T extends JdbcOperation>
-
renderOffsetExpression
- Overrides:
renderOffsetExpressionin classAbstractSqlAstTranslator<T extends JdbcOperation>
-
renderFetchExpression
- Overrides:
renderFetchExpressionin classAbstractSqlAstTranslator<T extends JdbcOperation>
-
visitDeleteStatementOnly
- Overrides:
visitDeleteStatementOnlyin classAbstractSqlAstTranslator<T extends JdbcOperation>
-
visitUpdateStatementOnly
- Overrides:
visitUpdateStatementOnlyin classAbstractSqlAstTranslator<T extends JdbcOperation>
-
supportsFromClauseInUpdate
protected boolean supportsFromClauseInUpdate() -
visitInsertStatementOnly
- Overrides:
visitInsertStatementOnlyin classAbstractSqlAstTranslator<T extends JdbcOperation>
-
visitConflictClause
- Overrides:
visitConflictClausein classAbstractSqlAstTranslator<T extends JdbcOperation>
-
renderDmlTargetTableExpression
- Overrides:
renderDmlTargetTableExpressionin classAbstractSqlAstTranslator<T extends JdbcOperation>
-
renderFromClauseAfterUpdateSet
- Overrides:
renderFromClauseAfterUpdateSetin classAbstractSqlAstTranslator<T extends JdbcOperation>
-
renderReturningClause
-
getNewTableChangeModifier
-
visitStandardTableInsert
- Specified by:
visitStandardTableInsertin interfaceSqlAstWalker- Overrides:
visitStandardTableInsertin classAbstractSqlAstTranslator<T extends JdbcOperation>
-
visitStandardTableUpdate
- Specified by:
visitStandardTableUpdatein interfaceSqlAstWalker- Overrides:
visitStandardTableUpdatein classAbstractSqlAstTranslator<T extends JdbcOperation>
-
renderComparison
- Overrides:
renderComparisonin classAbstractSqlAstTranslator<T extends JdbcOperation>
-
renderComparisonStandard
protected void renderComparisonStandard(Expression lhs, ComparisonOperator operator, Expression rhs) - Overrides:
renderComparisonStandardin classAbstractSqlAstTranslator<T extends JdbcOperation>
-
renderSelectExpression
- Overrides:
renderSelectExpressionin classAbstractSqlAstTranslator<T extends JdbcOperation>
-
renderSelectTupleComparison
protected void renderSelectTupleComparison(List<SqlSelection> lhsExpressions, SqlTuple tuple, ComparisonOperator operator) - Overrides:
renderSelectTupleComparisonin classAbstractSqlAstTranslator<T extends JdbcOperation>
-
visitReturningColumns
- Overrides:
visitReturningColumnsin classAbstractSqlAstTranslator<T extends JdbcOperation>
-
getDB2Version
-
supportsParameterOffsetFetchExpression
protected boolean supportsParameterOffsetFetchExpression()
-