Class DB2SqlAstTranslator<T extends JdbcOperation>
- All Implemented Interfaces:
Appendable, SqlAstWalker, SqlAstTranslator<T>, SqlAppender
-
Nested Class Summary
Nested classes/interfaces inherited from class AbstractSqlAstTranslator
AbstractSqlAstTranslator.LockStrategy, AbstractSqlAstTranslator.SubQueryRelationalRestrictionEmulationRenderer<X> -
Field Summary
Fields inherited from interface SqlAppender
CLOSE_PARENTHESIS, COMMA_SEPARATOR, COMMA_SEPARATOR_CHAR, NO_SEPARATOR, NULL_KEYWORD, OPEN_PARENTHESIS, PARAM_MARKER, WHITESPACE -
Constructor Summary
ConstructorsConstructorDescriptionDB2SqlAstTranslator(SqlAstTranslationRequest<? extends Statement, T> request) -
Method Summary
Modifier and TypeMethodDescriptionprotected voidprotected DerivedTableRenderingSupportSupplies the strategy which selects derived-table rendering plans.protected InsertConflictRenderingSupportSupplies the strategy which selects insert-conflict rendering plans.protected PaginationRenderingSupportSupplies the strategy which selects SQL AST pagination plans.protected QueryMutationRenderingSupportSupplies the strategy which selects query update and delete rendering plans.protected ReturningRenderingSupportSupplies the strategy which selects how mutations return generated column values.protected SetReturningFunctionRenderingSupportSupplies the strategy which selects named set-returning-function plans.protected TableJoinRenderingSupportSupplies the strategy which selects table-join rendering plans.protected voidrenderComparison(Expression lhs, ComparisonOperator operator, Expression rhs) protected voidrenderComparisonStandard(Expression lhs, ComparisonOperator operator, Expression rhs) protected voidrenderDmlTargetTableExpression(NamedTableReference tableReference) protected voidrenderExpressionAsClauseItem(Expression expression) protected voidrenderFetchExpression(Expression fetchExpression) protected voidrenderFromClauseAfterUpdateSet(UpdateStatement statement) protected voidrenderOffsetExpression(Expression offsetExpression) protected voidrenderSelectExpression(Expression expression) protected voidrenderSelectStatement(SelectStatement statement) Render the SQL for a select statement after the base has established its statement-stack and parameter-rendering-mode invariants.protected voidrenderSelectTupleComparison(List<SqlSelection> lhsExpressions, SqlTuple tuple, ComparisonOperator operator) protected booleanprotected voidvisitAnsiCaseSearchedExpression(CaseSearchedExpression caseSearchedExpression, Consumer<Expression> resultRenderer) protected voidvisitAnsiCaseSimpleExpression(CaseSimpleExpression caseSimpleExpression, Consumer<Expression> resultRenderer) protected voidvisitArithmeticOperand(Expression expression) voidvisitBooleanExpressionPredicate(BooleanExpressionPredicate booleanExpressionPredicate) Methods inherited from class SqlAstTranslatorWithMerge
createMergeOperation, expectation, renderMergeDelete, renderMergeInsert, renderMergeInto, renderMergeOn, renderMergeSourceAlias, renderMergeStatement, renderMergeTargetAlias, renderMergeUpdate, renderMergeUsing, renderMergeUsingQuery, renderMergeUsingQuerySelectionMethods inherited from class AbstractSqlAstTranslator
addAdditionalWherePredicate, addAffectedTableName, addParameterBinder, addParameterBinder, afterQueryGroup, append, append, append, appendBackslashEscapedLikeLiteral, appendDoubleQuoteEscapedString, appendSingleQuoteEscapedString, appendSql, appendSql, appendSql, appendSql, appendSql, appendSql, appendSql, applySqlComment, areAllResultsParameters, areAllResultsParameters, assertRowsOnlyFetchClauseType, beforeQueryGroup, castFunction, castNumberToString, determineColumnReferenceQualifier, determineCyclePathColumnName, determineLateralEmulationPredicate, determineLockingStrategy, determinePaginationRenderingPlan, determineUniqueConstraintNameThatMayFail, emulateCycleClauseWithRowAndArray, emulateFetchOffsetWithWindowFunctions, emulateFetchOffsetWithWindowFunctions, emulateQuantifiedTupleSubQueryPredicate, emulateSearchClauseOrderWithRowAndArray, emulateSelectTupleComparison, emulateSortSpecificationNullPrecedence, emulateSubQueryRelationalRestrictionPredicate, emulateTupleComparison, getAffectedTableNames, getArrayContainsFunction, getBooleanType, getClauseStack, getCteParameterRenderingMode, getCteStatement, getCurrentClauseStack, getCurrentDmlStatement, getCurrentQueryPart, getDialect, getEffectiveLockMode, getEffectiveLockMode, getEffectiveLockMode, getEffectiveLockTimeout, getFetchClauseTypeForRowNumbering, getGroupBySelectItemReferenceStrategy, getIntegerType, getJdbcParameterBindings, getJdbcServices, getLeftHandExpression, getLimit, getLimitParameter, getLiteralValue, getLockingClauseStrategy, getLockOptions, getOffsetParameter, getParameterBinders, getParameterBindValue, getParameterRenderingMode, getQueryPartForRowNumbering, getQueryPartStack, getSelectItemReference, getSelectOnlyFromClause, getSessionFactory, getSingleRowTableExpression, getSortSpecificationsRowNumbering, getSql, getSqlAst, getSqlBuffer, getStatement, getStatementStack, getStringType, getTranslationRequest, getVersionSeedMapping, getWrapperOptions, hasAggregateFunctions, hasFrom, hasLimit, hasLimit, hasNestedOrTargetTableCorrelation, hasNonTrivialFromClause, hasOffset, hasTargetTableCorrelation, hasWhere, inOverOrWithinGroupClause, interpretExpression, isInRecursiveQueryPart, isInSubquery, isIntegerDivisionEmulationRequired, isLiteral, isLob, isParameter, isParameterInterpretation, isRenderingCorrelatedDerivedTable, isRenderingDerivedTable, isRenderingLateralDerivedTable, isRowNumberingCurrentQueryPart, isRowsOnlyFetchClauseType, isStruct, needsCteInlining, needsLocking, preferUnionQueryForTupleInListPredicate, registerAffectedTable, registerAffectedTable, render, renderAsLiteral, renderAssignmentColumn, renderBackslashEscapedLikePattern, renderCaseInsensitiveLikeEmulation, renderCasted, renderColumnWrite, renderCombinedLimitClause, renderCombinedLimitClause, renderCommaSeparated, renderCommaSeparatedSelectExpression, renderCommaSeparatedSelectExpression, renderComparisonDistinctOperator, renderComparisonEmulateCase, renderComparisonEmulateDecode, renderComparisonEmulateDecode, renderComparisonEmulateIntersect, renderCteSelectHint, renderCycleClause, renderCycleUsingClause, renderDeleteClause, renderDeleteStatementDirect, renderDeleteStatementWithJoinEmulation, renderDerivedTableReferenceIdentificationVariable, renderEmptyOrderBy, renderEscapeCharacter, renderExpressionAsLiteral, renderExpressionsAsSubquery, renderExpressionsAsValuesSubquery, renderFetch, renderFetchFirstRow, renderFetchPlusOffsetExpression, renderFetchPlusOffsetExpressionAsLiteral, renderFetchPlusOffsetExpressionAsSingleParameter, renderFirstClause, renderFirstClause, renderFirstSkipClause, renderFirstSkipClause, renderFromClauseExcludingDmlTargetReference, renderFromClauseJoiningDmlTargetReference, renderFromClauseSpaces, renderInsertInto, renderInsertIntoNoColumns, renderInsertStatementAsMerge, renderInterval, renderIntervalLiteral, renderIntoIntoAndTable, renderLegacyReturningInsert, renderLikePattern, renderLikePredicate, renderLimitOffsetClause, renderLimitOffsetClause, renderLiteral, renderMaterializationHint, renderMergeUpdateClause, renderNamedSetReturningFunction, renderNull, renderOffset, renderOffsetFetchClause, renderOffsetFetchClause, renderOnDuplicateKeyConflictClause, renderOrderByClause, renderParameterAsParameter, renderPartitionItem, renderPrimaryTableReferencePrefix, renderQuantifiedEmulationSubQuery, renderQueryGroupWithoutOrderByAndOffsetFetch, renderQueryPartTableReferenceWithSelectListAliases, renderRecursiveCteVirtualSelections, renderRelationalEmulationSubQuery, renderRowNumber, renderRowNumberingSelectItems, renderRowsToClause, renderRowsToClause, renderSearchClause, renderSelectClause, renderSelectExpressionWithCastedOrInlinedPlainParameters, renderSelectItems, renderSelectSimpleComparison, renderSetAssignment, renderSetAssignmentEmulateJoin, renderSetClause, renderSkipFirstClause, renderSkipFirstClause, renderSortExpression, renderStandardConflictClause, renderStandardCycleClause, renderStandardSearchClause, renderStandardTableInsert, renderStandardTableUpdate, renderStatementPrefix, renderStringContainsExactlyPredicate, renderTableReferenceAlias, renderTableReferenceIdentificationVariable, renderTenantRestriction, renderTopClause, renderTopClause, renderTopStartAtClause, renderTopStartAtClause, renderTupleComparisonStandard, renderUpdateClause, renderUpdateStatementAsInlineView, renderUpdateStatementAsMerge, renderUpdateStatementAsScalarSubquery, renderUpdateStatementAsTupleSet, renderUpdateStatementDirect, renderValuesListAsSelectUnion, renderValuesListStandard, renderValuesTableReferenceWithSelectListAliases, renderVirtualSelections, renderWrappedParameter, resolveAliasedExpression, resolveAliasedExpression, resolveExpressionToAlias, setLockingTarget, shouldEmulateLateralWithIntersect, shouldInlineCte, simpleColumnWriteFragmentRendering, translate, useOffsetFetchClause, visitAggregateColumnWriteExpression, visitAny, visitAssignment, visitBetweenPredicate, visitBinaryArithmeticExpression, visitCaseSearchedExpression, visitCaseSearchedExpression, visitCaseSimpleExpression, visitCaseSimpleExpression, visitCastTarget, visitCollation, visitColumnReference, visitColumnWriteFragment, visitConversion, visitCteContainer, visitCustomTableDelete, visitCustomTableInsert, visitCustomTableUpdate, visitDecodeCaseSearchedExpression, visitDeleteClause, visitDeleteStatement, visitDeleteStatementOnly, visitDistinct, visitDuration, visitDurationUnit, visitEmbeddableTypeLiteral, visitEntityTypeLiteral, visitEvery, visitExistsPredicate, visitExtractUnit, visitFilterFragmentPredicate, visitFilterPredicate, visitFormat, visitForUpdateClause, visitFromClause, visitFunctionTableReference, visitGroupByClause, visitGroupedPredicate, visitHavingClause, visitInArrayPredicate, visitInListPredicate, visitInsertStatement, visitInSubQueryPredicate, visitJdbcLiteral, visitJunction, visitLikePredicate, visitModifiedSubQueryExpression, visitNamedTableReference, visitNegatedPredicate, visitNestedColumnReference, visitNullnessPredicate, visitOffsetFetchClause, visitOptionalTableUpdate, visitOrderBy, visitOver, visitOverClause, visitOverClause, visitOverflow, visitParameter, visitParameterAsParameter, visitPartitionByClause, visitPartitionExpressions, visitPartitionExpressions, visitQueryClauses, visitQueryGroup, visitQueryLiteral, visitQueryPartTableReference, visitQuerySpec, visitRecursivePath, visitRelationalPredicate, visitSelectClause, visitSelectStatement, visitSelfRenderingExpression, visitSelfRenderingPredicate, visitSetAssignment, visitSortSpecification, visitSortSpecification, visitSqlFragmentPredicate, visitSqlSelectExpression, visitSqlSelection, visitSqlSelectionExpression, visitStandardTableDelete, visitStandardTableInsert, visitStandardTableUpdate, visitStar, visitSummarization, visitTableGroup, visitTableGroupJoin, visitTableReferenceJoin, visitThruthnessPredicate, visitTrimSpecification, visitTuple, visitUnaryOperationExpression, visitUnparsedNumericLiteral, visitUpdateClause, visitUpdateStatement, visitUpdateStatementOnly, visitValuesList, visitValuesTableReference, visitWhereClause, withoutLateralDerivedTableContext, withParameterRenderingMode, withRowNumbering
-
Constructor Details
-
DB2SqlAstTranslator
@SPI(IMPLEMENT) public DB2SqlAstTranslator(SqlAstTranslationRequest<? extends Statement, T> request)
-
-
Method Details
-
getTableJoinRenderingSupport
Description copied from class:AbstractSqlAstTranslatorSupplies the strategy which selects table-join rendering plans.
Override this hook for contextual alternatives such as comma joins or
applysyntax. The translator remains responsible for predicates and traversal. The support must not benulland must not retain a supplied request.- Overrides:
getTableJoinRenderingSupportin 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>
-
getPaginationRenderingSupport
Description copied from class:AbstractSqlAstTranslatorSupplies the strategy which selects SQL AST pagination plans.
This hook controls pagination represented in the SQL AST. It is distinct from
LimitHandler, which rewrites already-rendered SQL for execution-time query limits. The returned support must be non-null and must not retain supplied requests.- Overrides:
getPaginationRenderingSupportin classAbstractSqlAstTranslator<T extends JdbcOperation>
-
getDerivedTableRenderingSupport
Description copied from class:AbstractSqlAstTranslatorSupplies the strategy which selects derived-table rendering plans.
Override this hook to customize query-part, values-table, or function-table syntax without overriding their traversal callbacks. The returned support must be non-null and must not retain supplied requests or translator state.
- Overrides:
getDerivedTableRenderingSupportin classAbstractSqlAstTranslator<T extends JdbcOperation>
-
getSetReturningFunctionRenderingSupport
Description copied from class:AbstractSqlAstTranslatorSupplies the strategy which selects named set-returning-function plans.
Override this hook to select native invocation, wrapping, or ordinality emulation while leaving argument traversal and SQL emission to the translator. The support must not be
nulland must not retain a supplied request.- Overrides:
getSetReturningFunctionRenderingSupportin classAbstractSqlAstTranslator<T extends JdbcOperation>
-
renderSelectStatement
Description copied from class:AbstractSqlAstTranslatorRender the SQL for a select statement after the base has established its statement-stack and parameter-rendering-mode invariants. Overrides may decorate or replace the standard rendering and may delegate tosuperto retain it.- Overrides:
renderSelectStatementin classAbstractSqlAstTranslator<T extends JdbcOperation>
-
emulateFetchOffsetWithWindowFunctionsVisitQueryPart
- Overrides:
emulateFetchOffsetWithWindowFunctionsVisitQueryPartin classAbstractSqlAstTranslator<T extends JdbcOperation>
-
renderOffsetExpression
- Overrides:
renderOffsetExpressionin classAbstractSqlAstTranslator<T extends JdbcOperation>
-
renderFetchExpression
- Overrides:
renderFetchExpressionin classAbstractSqlAstTranslator<T extends JdbcOperation>
-
getQueryMutationRenderingSupport
Description copied from class:AbstractSqlAstTranslatorSupplies the strategy which selects query update and delete rendering plans.
Override this hook to compose database-specific plan selection without taking ownership of statement traversal. The returned support must be non-null and must not retain supplied requests or translator state.
- Overrides:
getQueryMutationRenderingSupportin classAbstractSqlAstTranslator<T extends JdbcOperation>
-
getReturningRenderingSupport
Description copied from class:AbstractSqlAstTranslatorSupplies the strategy which selects how mutations return generated column values.
Override this hook to select a trailing clause or data-change-table plan; leave column traversal and SQL emission to the translator. The returned support must be non-null and must not retain supplied requests.
- Overrides:
getReturningRenderingSupportin classAbstractSqlAstTranslator<T extends JdbcOperation>
-
getInsertConflictRenderingSupport
Description copied from class:AbstractSqlAstTranslatorSupplies the strategy which selects insert-conflict rendering plans.
Override this hook when the database's native or emulated conflict syntax differs from
StandardInsertConflictRenderingSupport.CONSTRAINT_VIOLATION. The returned support must be non-null and must not retain supplied requests or translator state.- Overrides:
getInsertConflictRenderingSupportin classAbstractSqlAstTranslator<T extends JdbcOperation>
-
renderDmlTargetTableExpression
- Overrides:
renderDmlTargetTableExpressionin classAbstractSqlAstTranslator<T extends JdbcOperation>
-
renderFromClauseAfterUpdateSet
- Overrides:
renderFromClauseAfterUpdateSetin 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>
-
getDB2Version
-
supportsParameterOffsetFetchExpression
protected boolean supportsParameterOffsetFetchExpression()
-