Package org.hibernate.sql.ast.spi
Class AbstractSqlAstTranslator<T extends JdbcOperation>
java.lang.Object
org.hibernate.sql.ast.spi.AbstractSqlAstTranslator<T>
- All Implemented Interfaces:
Appendable,SqlAppender,SqlAstTranslator<T>,SqlAstWalker
- Direct Known Subclasses:
CockroachSqlAstTranslator,DB2SqlAstTranslator,HANASqlAstTranslator,HSQLSqlAstTranslator,MariaDBSqlAstTranslator,MySQLSqlAstTranslator,SpannerSqlAstTranslator,SqlAstTranslatorWithMerge,SqlAstTranslatorWithUpsert,StandardSqlAstTranslator,SybaseASESqlAstTranslator,SybaseSqlAstTranslator
public abstract class AbstractSqlAstTranslator<T extends JdbcOperation>
extends Object
implements SqlAstTranslator<T>, SqlAppender
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected static classprotected static enumprotected static interface -
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
ConstructorsModifierConstructorDescriptionprotectedAbstractSqlAstTranslator(SessionFactoryImplementor sessionFactory, Statement statement) -
Method Summary
Modifier and TypeMethodDescriptionprotected voidaddAdditionalWherePredicate(Predicate predicate) voidaddAffectedTableName(String tableName) protected voidaddAppliedParameterBinding(JdbcParameter parameter, JdbcParameterBinding binding) append(char c) append(CharSequence csq) append(CharSequence csq, int start, int end) protected voidprotected voidappendBackslashEscapedLikeLiteral(SqlAppender appender, String literal, boolean noBackslashEscapes) voidvoidvoidappendSql(boolean value) voidappendSql(char fragment) voidappendSql(int value) voidappendSql(long value) voidAdd the passed fragment into the in-flight bufferprotected voidapplyParameter(ColumnValueParameter parameter) protected booleanareAllResultsParameters(CaseSearchedExpression caseSearchedExpression) protected booleanareAllResultsParameters(CaseSimpleExpression caseSimpleExpression) protected voidassertRowsOnlyFetchClauseType(QueryPart queryPart) protected FunctionRendererprotected ExpressioncastNumberToString(Expression expression, int precision, int scale) Casts a number expression to a string with the given precision and scale.protected voidcleanup()protected PredicatecreateRowMatchingPredicate(TableGroup dmlTargetTableGroup, String lhsAlias, String rhsAlias) protected StringdetermineColumnReferenceQualifier(ColumnReference columnReference) protected Stringprotected PredicatedetermineLateralEmulationPredicate(TableGroup tableGroup) protected AbstractSqlAstTranslator.LockStrategydetermineLockingStrategy(QuerySpec querySpec, AbstractSqlAstTranslator.ForUpdateClause forUpdateClause, Boolean followOnLocking) protected Predicateprotected PredicatedetermineWhereClauseRestrictionWithJoinEmulation(AbstractUpdateOrDeleteStatement statement, String dmlTargetAlias) protected voidemulateCycleClauseWithRowAndArray(SelectClause selectClause) protected voidemulateFetchOffsetWithWindowFunctions(QueryPart queryPart, boolean emulateFetchClause) protected voidemulateFetchOffsetWithWindowFunctions(QueryPart queryPart, Expression offsetExpression, Expression fetchExpression, FetchClauseType fetchClauseType, boolean emulateFetchClause) protected voidprotected voidemulateQuantifiedTupleSubQueryPredicate(Predicate predicate, SelectStatement selectStatement, SqlTuple lhsTuple, ComparisonOperator tupleComparisonOperator) An optimized emulation for relational tuple sub-query comparisons.protected voidemulateQueryPartTableReferenceColumnAliasing(QueryPartTableReference tableReference) protected voidemulateSearchClauseOrderWithRowAndArray(SelectClause selectClause) protected voidemulateSelectTupleComparison(List<SqlSelection> lhsSelections, List<? extends SqlAstNode> rhsExpressions, ComparisonOperator operator, boolean indexOptimized) protected voidemulateSortSpecificationNullPrecedence(Expression sortExpression, Nulls nullPrecedence) protected <X extends Expression>
voidemulateSubQueryRelationalRestrictionPredicate(Predicate predicate, boolean negated, SelectStatement selectStatement, X lhsTuple, AbstractSqlAstTranslator.SubQueryRelationalRestrictionEmulationRenderer<X> renderer, ComparisonOperator tupleComparisonOperator) protected voidemulateTupleComparison(List<? extends SqlAstNode> lhsExpressions, List<? extends SqlAstNode> rhsExpressions, ComparisonOperator operator, boolean indexOptimized) A tuple comparison like(a, b) > (1, 2)can be emulated through it logical definition:a > 1 or a = 1 and b > 2.protected voidemulateValuesTableReferenceColumnAliasing(ValuesTableReference tableReference) Not the best spot for this.protected Map<JdbcParameter,JdbcParameterBinding> protected StringReturns the name of thearray_contains(array, element)function, which is used for emulating the cycle clause.static StringgetCastTypeName(SqlTypedMapping castTarget, TypeConfiguration typeConfiguration) protected CteStatementgetCteStatement(String cteName) protected CteStatementReturns the current query part that is translated.protected StringgetDual()Returns a table expression that has one row.protected LockModegetEffectiveLockMode(String alias) protected LockModegetEffectiveLockMode(String alias, boolean isRoot) protected intgetEffectiveLockTimeout(LockMode lockMode) protected FetchClauseTypegetFetchClauseTypeForRowNumbering(QueryPart queryPartForRowNumbering) protected StringgetForShare(int timeoutMillis) protected Stringprotected Stringprotected Stringprotected JdbcLockStrategyprotected JdbcParameterBindingsprotected JdbcServicesprotected ExpressiongetLeftHandExpression(Predicate predicate) protected LimitgetLimit()protected JdbcParameter<X> XgetLiteralValue(Expression expression) Returns the literal value of the given expression, inlining a parameter value if necessary.protected LockOptionsprotected intgetMaxRows(SelectStatement sqlAstSelect, JdbcParameterBindings jdbcParameterBindings, int rowsToSkip) protected Stringprotected JdbcParameterprotected ObjectgetParameterBindValue(JdbcParameter parameter) protected SqlAstNodeRenderingModeprotected QueryPartprotected intgetRowsToSkip(SelectStatement sqlAstSelect, JdbcParameterBindings jdbcParameterBindings) protected final SqlSelectionExpressiongetSelectItemReference(Expression expression) protected Stringprotected List<SortSpecification>getSortSpecificationsRowNumbering(SelectClause selectClause, QueryPart queryPart) getSql()protected SqlAppenderstatic StringgetSqlTypeName(SqlTypedMapping castTarget, TypeConfiguration typeConfiguration) protected Statementprotected Stringprotected WrapperOptionsprotected booleanhasAggregateFunctions(QuerySpec querySpec) protected booleanhasLimit()protected booleanprotected booleanhasNestedTableGroupsToRender(List<TableGroupJoin> nestedTableGroupJoins) protected static booleanhasNonTrivialFromClause(FromClause fromClause) protected booleanprotected voidinlineCteTableGroup(TableGroup tableGroup, LockMode lockMode) protected booleanprotected <R> RinterpretExpression(Expression expression, JdbcParameterBindings jdbcParameterBindings) protected booleanisCorrelated(CteStatement cteStatement) protected booleanprotected booleanprotected booleanprotected final booleanisLiteral(Expression expression) static booleanisParameter(Expression expression) protected booleanprotected booleanisRowsOnlyFetchClauseType(QueryPart queryPart) protected booleanisStruct(JdbcMappingContainer expressionType) protected booleanWhether CTEs should be inlined rather than rendered as CTEs.protected booleanneedsLocking(QuerySpec querySpec) protected booleanprotected booleanWhether the SQL with clause requires the "recursive" keyword for recursive CTEs.protected booleanprotected voidprotected voidprocessNestedTableGroupJoins(TableGroup source, List<TableGroupJoin> tableGroupJoinCollector) protected voidprocessTableGroupJoin(TableGroupJoin tableGroupJoin, List<TableGroupJoin> tableGroupJoinCollector) protected voidprocessTableGroupJoins(TableGroup source) protected voidregisterAffectedTable(String tableExpression) protected voidregisterAffectedTable(NamedTableReference tableReference) voidrender(SqlAstNode sqlAstNode, SqlAstNodeRenderingMode renderingMode) Renders the given SQL AST node with the given rendering mode.protected voidrenderAsLiteral(JdbcParameter jdbcParameter, Object literalValue) protected voidrenderBackslashEscapedLikePattern(Expression pattern, Expression escapeCharacter, boolean noBackslashEscapes) protected voidrenderCaseInsensitiveLikeEmulation(Expression lhs, Expression rhs, Expression escapeCharacter, boolean negated) protected voidrenderCasted(Expression expression) protected voidrenderCombinedLimitClause(Expression offsetExpression, Expression fetchExpression) protected voidrenderCombinedLimitClause(QueryPart queryPart) protected final voidrenderCommaSeparated(Iterable<? extends SqlAstNode> expressions) protected final voidrenderCommaSeparatedSelectExpression(Iterable<? extends SqlAstNode> expressions) protected final voidrenderCommaSeparatedSelectExpression(Iterable<? extends SqlAstNode> expressions, Iterable<String> aliases) protected voidrenderComparison(Expression lhs, ComparisonOperator operator, Expression rhs) protected voidrenderComparisonDistinctOperator(Expression lhs, ComparisonOperator operator, Expression rhs) protected voidrenderComparisonEmulateCase(Expression lhs, ComparisonOperator operator, Expression rhs) protected voidrenderComparisonEmulateDecode(Expression lhs, ComparisonOperator operator, Expression rhs) protected voidrenderComparisonEmulateDecode(Expression lhs, ComparisonOperator operator, Expression rhs, SqlAstNodeRenderingMode firstArgRenderingMode) protected voidrenderComparisonEmulateIntersect(Expression lhs, ComparisonOperator operator, Expression rhs) protected voidrenderComparisonStandard(Expression lhs, ComparisonOperator operator, Expression rhs) protected voidprotected voidprotected voidrenderDeleteClause(DeleteStatement statement) protected voidrenderDerivedTableReference(DerivedTableReference tableReference) protected voidprotected voidrenderDmlTargetTableExpression(NamedTableReference tableReference) protected voidrenderDmlTargetTableGroup(TableGroup tableGroup) protected voidrenderExpressionAsClauseItem(Expression expression) protected voidrenderExpressionAsLiteral(Expression expression, JdbcParameterBindings jdbcParameterBindings) protected voidrenderExpressionsAsSubquery(List<? extends Expression> expressions) protected voidrenderFetch(Expression fetchExpression, Expression offsetExpressionToAdd, FetchClauseType fetchClauseType) protected voidrenderFetchExpression(Expression fetchExpression) protected voidrenderFetchPlusOffsetExpression(Expression fetchClauseExpression, Expression offsetClauseExpression, int offset) protected voidrenderFetchPlusOffsetExpressionAsLiteral(Expression fetchClauseExpression, Expression offsetClauseExpression, int offset) protected voidrenderFetchPlusOffsetExpressionAsSingleParameter(Expression fetchClauseExpression, Expression offsetClauseExpression, int offset) protected voidrenderFirstClause(Expression offsetExpression, Expression fetchExpression) protected voidrenderFirstClause(QuerySpec querySpec) protected voidrenderFirstSkipClause(Expression offsetExpression, Expression fetchExpression) protected voidrenderFirstSkipClause(QuerySpec querySpec) protected voidrenderForUpdateClause(QuerySpec querySpec, AbstractSqlAstTranslator.ForUpdateClause forUpdateClause) protected voidrenderFromClauseAfterUpdateSet(UpdateStatement statement) protected voidprotected voidprotected voidrenderFromClauseSpaces(FromClause fromClause) protected voidrenderInsertIntoNoColumns(TableInsertStandard tableInsert) Handle rendering an insert with no columnsprotected voidrenderInterval(Duration duration) protected voidrenderIntervalLiteral(Literal literal, TemporalUnit unit) protected voidrenderIntoIntoAndTable(TableInsertStandard tableInsert) Renders theinsert into <table name>portion of an insertprotected voidrenderLimitOffsetClause(Expression offsetExpression, Expression fetchExpression) protected voidrenderLimitOffsetClause(QueryPart queryPart) protected voidrenderLiteral(Literal literal, boolean castParameter) protected voidrenderMaterializationHint(CteMaterialization materialization) protected voidrenderMergeUpdateClause(List<Assignment> assignments, Predicate wherePredicate) voidrenderNamedSetReturningFunction(String functionName, List<? extends SqlAstNode> sqlAstArguments, AnonymousTupleTableGroupProducer tupleType, String tableIdentifierVariable, SqlAstNodeRenderingMode argumentRenderingMode) Renders a named set returning function.protected booleanrenderNamedTableReference(NamedTableReference tableReference, LockMode lockMode) protected voidrenderNull(Literal literal) protected voidrenderOffset(Expression offsetExpression, boolean renderOffsetRowsKeyword) protected voidrenderOffsetExpression(Expression offsetExpression) protected voidrenderOffsetFetchClause(Expression offsetExpression, Expression fetchExpression, FetchClauseType fetchClauseType, boolean renderOffsetRowsKeyword) protected voidrenderOffsetFetchClause(QueryPart queryPart, boolean renderOffsetRowsKeyword) protected voidrenderOrderBy(boolean addWhitespace, List<SortSpecification> sortSpecifications) protected voidrenderParameterAsParameter(int position, JdbcParameter jdbcParameter) Renders a parameter marker for the given positionprotected final voidrenderParameterAsParameter(JdbcParameter jdbcParameter) protected voidrenderPartitionItem(Expression expression) protected booleanrenderPrimaryTableReference(TableGroup tableGroup, LockMode lockMode) protected voidrenderQueryGroup(QueryGroup queryGroup, boolean renderOrderByAndOffsetFetchClause) protected voidrenderRecursiveCteVirtualSelections(SelectClause selectClause) protected voidrenderRootTableGroup(TableGroup tableGroup, List<TableGroupJoin> tableGroupJoinCollector) protected voidrenderRowNumber(SelectClause selectClause, QueryPart queryPart) protected voidrenderRowNumberingSelectItems(SelectClause selectClause, QueryPart queryPart) protected voidrenderRowsToClause(Expression offsetClauseExpression, Expression fetchClauseExpression) protected voidrenderRowsToClause(QuerySpec querySpec) protected voidprotected voidrenderSelectExpression(Expression expression) protected voidprotected voidrenderSelectSimpleComparison(List<SqlSelection> lhsExpressions, Expression expression, ComparisonOperator operator) protected voidrenderSelectTupleComparison(List<SqlSelection> lhsExpressions, SqlTuple tuple, ComparisonOperator operator) protected voidrenderSetClause(List<Assignment> assignments) protected final voidrenderSimpleNamedFunction(String functionName, List<? extends SqlAstNode> sqlAstArguments, SqlAstNodeRenderingMode argumentRenderingMode) protected voidrenderSkipFirstClause(Expression offsetExpression, Expression fetchExpression) protected voidrenderSkipFirstClause(QuerySpec querySpec) protected voidrenderSortExpression(Expression sortExpression, boolean ignoreCase) protected voidprotected voidprotected voidrenderStringContainsExactlyPredicate(Expression haystack, Expression needle) protected voidrenderTableGroup(TableGroup tableGroup, Predicate predicate, List<TableGroupJoin> tableGroupJoinCollector) protected voidrenderTableGroupJoin(TableGroupJoin tableGroupJoin, List<TableGroupJoin> tableGroupJoinCollector) protected voidrenderTableReferenceIdentificationVariable(TableReference tableReference) protected voidrenderTableReferenceJoins(TableGroup tableGroup) protected voidrenderTableReferenceJoins(TableGroup tableGroup, int swappedJoinIndex, boolean forceLeftJoin) protected voidrenderTopClause(Expression offsetExpression, Expression fetchExpression, FetchClauseType fetchClauseType, boolean addOffset, boolean needsParenthesis) protected voidrenderTopClause(QuerySpec querySpec, boolean addOffset, boolean needsParenthesis) protected voidrenderTopStartAtClause(Expression offsetExpression, Expression fetchExpression, FetchClauseType fetchClauseType) protected voidrenderTopStartAtClause(QuerySpec querySpec) protected voidrenderTupleComparisonStandard(List<SqlSelection> lhsExpressions, SqlTuple tuple, ComparisonOperator operator) protected voidrenderUpdateClause(UpdateStatement updateStatement) protected voidrenderVirtualSelections(SelectClause selectClause) protected voidrenderWrappedParameter(JdbcParameter jdbcParameter) protected ExpressionresolveAliasedExpression(List<SqlSelection> sqlSelections, Expression expression) protected ExpressionresolveAliasedExpression(Expression expression) protected ExpressionresolveExpressionToAlias(Expression expression) protected voidsetLimitParameter(JdbcParameter limitParameter) protected voidsetOffsetParameter(JdbcParameter offsetParameter) protected booleanshouldEmulateLateralWithIntersect(QueryPart queryPart) protected booleanshouldInlineCte(TableGroup tableGroup) Whether CTEs should be inlined rather than rendered as CTEs.protected voidsimpleColumnWriteFragmentRendering(ColumnWriteFragment columnWriteFragment) protected booleanWhether the recursive search and cycle clause emulations based on the array and row constructor is supported.translate(JdbcParameterBindings jdbcParameterBindings, QueryOptions queryOptions) protected JdbcOperationQueryDeletetranslateDelete(DeleteStatement sqlAst) protected JdbcOperationQueryInserttranslateInsert(InsertSelectStatement sqlAst) protected JdbcOperationQuerySelecttranslateSelect(SelectStatement selectStatement) protected JdbcOperationQueryUpdatetranslateUpdate(UpdateStatement sqlAst) protected booleanuseOffsetFetchClause(QueryPart queryPart) voidvisitAggregateColumnWriteExpression(AggregateColumnWriteExpression aggregateColumnWriteExpression) protected voidvisitAnsiCaseSearchedExpression(CaseSearchedExpression caseSearchedExpression, Consumer<Expression> resultRenderer) protected voidvisitAnsiCaseSimpleExpression(CaseSimpleExpression caseSimpleExpression, Consumer<Expression> resultRenderer) voidprotected voidvisitArithmeticOperand(Expression expression) voidvisitAssignment(Assignment assignment) voidvisitBetweenPredicate(BetweenPredicate betweenPredicate) voidvisitBinaryArithmeticExpression(BinaryArithmeticExpression arithmeticExpression) voidvisitBooleanExpressionPredicate(BooleanExpressionPredicate booleanExpressionPredicate) final voidvisitCaseSearchedExpression(CaseSearchedExpression caseSearchedExpression) protected voidvisitCaseSearchedExpression(CaseSearchedExpression caseSearchedExpression, boolean inSelect) final voidvisitCaseSimpleExpression(CaseSimpleExpression caseSimpleExpression) protected voidvisitCaseSimpleExpression(CaseSimpleExpression caseSimpleExpression, boolean inSelect) voidvisitCastTarget(CastTarget castTarget) voidvisitCollation(Collation collation) voidvisitColumnReference(ColumnReference columnReference) voidvisitColumnWriteFragment(ColumnWriteFragment columnWriteFragment) protected voidvisitConflictClause(ConflictClause conflictClause) voidvisitConversion(Conversion conversion) voidvisitCteContainer(CteContainer cteContainer) protected voidprotected voidvisitCteObject(CteObject cteObject) voidvisitCustomTableDelete(TableDeleteCustomSql tableDelete) voidvisitCustomTableInsert(TableInsertCustomSql tableInsert) voidvisitCustomTableUpdate(TableUpdateCustomSql tableUpdate) protected voidvisitDecodeCaseSearchedExpression(CaseSearchedExpression caseSearchedExpression) voidvisitDeleteStatement(DeleteStatement statement) protected voidvisitDeleteStatementOnly(DeleteStatement statement) voidvisitDistinct(Distinct distinct) voidvisitDuration(Duration duration) voidvoidvisitEmbeddableTypeLiteral(EmbeddableTypeLiteral expression) voidvisitEntityTypeLiteral(EntityTypeLiteral expression) voidvisitEvery(Every every) voidvisitExistsPredicate(ExistsPredicate existsPredicate) voidvisitExtractUnit(ExtractUnit extractUnit) voidvoidvisitFilterPredicate(FilterPredicate filterPredicate) voidvisitFormat(Format format) protected voidvisitForUpdateClause(QuerySpec querySpec) voidvisitFromClause(FromClause fromClause) voidvisitFunctionTableReference(FunctionTableReference tableReference) protected final voidvisitGroupByClause(QuerySpec querySpec, SelectItemReferenceStrategy referenceStrategy) voidvisitGroupedPredicate(GroupedPredicate groupedPredicate) protected final voidvisitHavingClause(QuerySpec querySpec) voidvisitInArrayPredicate(InArrayPredicate inArrayPredicate) voidvisitInListPredicate(InListPredicate inListPredicate) protected voidvisitInsertSource(InsertSelectStatement statement) voidvisitInsertStatement(InsertSelectStatement statement) protected voidprotected voidvisitInsertStatementOnly(InsertSelectStatement statement) voidvisitInSubQueryPredicate(InSubQueryPredicate inSubQueryPredicate) voidvisitJdbcLiteral(JdbcLiteral<?> jdbcLiteral) voidvisitJunction(Junction junction) voidvisitLikePredicate(LikePredicate likePredicate) voidvoidvisitNamedTableReference(NamedTableReference tableReference) voidvisitNegatedPredicate(NegatedPredicate negatedPredicate) voidvisitNestedColumnReference(NestedColumnReference nestedColumnReference) voidvisitNullnessPredicate(NullnessPredicate nullnessPredicate) voidvisitOffsetFetchClause(QueryPart queryPart) protected voidvisitOnDuplicateKeyConflictClause(ConflictClause conflictClause) voidvisitOptionalTableUpdate(OptionalTableUpdate tableUpdate) protected voidvisitOrderBy(List<SortSpecification> sortSpecifications) voidprotected final voidvisitOverClause(List<Expression> partitionExpressions, List<SortSpecification> sortSpecifications) protected voidvisitOverClause(List<Expression> partitionExpressions, List<SortSpecification> sortSpecifications, FrameMode mode, FrameKind startKind, Expression startExpression, FrameKind endKind, Expression endExpression, FrameExclusion exclusion, boolean orderedSetAggregate) voidvisitOverflow(Overflow overflow) voidvisitParameter(JdbcParameter jdbcParameter) protected voidvisitParameterAsParameter(JdbcParameter jdbcParameter) protected final voidvisitPartitionByClause(List<Expression> partitionExpressions) protected final voidvisitPartitionExpressions(List<Expression> partitionExpressions, Function<Expression, Expression> resolveAliasExpression, boolean inlineParametersOfAliasedExpressions) protected final voidvisitPartitionExpressions(List<Expression> partitionExpressions, SelectItemReferenceStrategy referenceStrategy) voidvisitQueryGroup(QueryGroup queryGroup) voidvisitQueryLiteral(QueryLiteral<?> queryLiteral) voidvisitQueryPartTableReference(QueryPartTableReference tableReference) voidvisitQuerySpec(QuerySpec querySpec) protected voidvisitRecursivePath(Expression recursivePath, int sizeEstimate) Renders the recursive path, possibly wrapping a cast expression around it, to make sure a type with proper size is chosen.voidvisitRelationalPredicate(ComparisonPredicate comparisonPredicate) protected voidvisitReturningColumns(Supplier<List<ColumnReference>> returningColumnsAccess) protected voidvisitReturningColumns(List<ColumnReference> returningColumns) voidvisitSelectClause(SelectClause selectClause) voidvisitSelectStatement(SelectStatement statement) voidvisitSelfRenderingExpression(SelfRenderingExpression expression) voidvisitSelfRenderingPredicate(SelfRenderingPredicate selfRenderingPredicate) protected voidvisitSetAssignment(Assignment assignment) protected voidvisitSetAssignmentEmulateJoin(Assignment assignment, UpdateStatement statement) protected voidvisitSortSpecification(Expression sortExpression, SortDirection sortOrder, Nulls nullPrecedence, boolean ignoreCase) voidvisitSortSpecification(SortSpecification sortSpecification) voidvisitSqlFragmentPredicate(SqlFragmentPredicate predicate) protected voidvisitSqlSelectExpression(Expression expression) voidvisitSqlSelection(SqlSelection sqlSelection) voidvisitSqlSelectionExpression(SqlSelectionExpression expression) protected voidvisitSqlSelections(SelectClause selectClause) protected voidvisitStandardConflictClause(ConflictClause conflictClause) voidvisitStandardTableDelete(TableDeleteStandard tableDelete) voidvisitStandardTableInsert(TableInsertStandard tableInsert) voidvisitStandardTableUpdate(TableUpdateStandard tableUpdate) voidvoidvisitSummarization(Summarization every) voidvisitTableGroup(TableGroup tableGroup) voidvisitTableGroupJoin(TableGroupJoin tableGroupJoin) voidvisitTableReferenceJoin(TableReferenceJoin tableReferenceJoin) voidvisitThruthnessPredicate(ThruthnessPredicate thruthnessPredicate) voidvisitTrimSpecification(TrimSpecification trimSpecification) voidvisitTuple(SqlTuple tuple) voidvisitUnaryOperationExpression(UnaryOperation unaryOperationExpression) <N extends Number>
voidvisitUnparsedNumericLiteral(UnparsedNumericLiteral<N> literal) voidvisitUpdateStatement(UpdateStatement statement) protected voidprotected voidvisitUpdateStatementEmulateMerge(UpdateStatement statement) protected voidprotected voidvisitUpdateStatementOnly(UpdateStatement statement) protected voidvisitValuesList(List<Values> valuesList) protected voidvisitValuesListEmulateSelectUnion(List<Values> valuesList) protected final voidvisitValuesListStandard(List<Values> valuesList) voidvisitValuesTableReference(ValuesTableReference tableReference) protected final voidvisitWhereClause(Predicate whereClauseRestrictions) protected voidwithParameterRenderingMode(SqlAstNodeRenderingMode renderingMode, Runnable runnable) protected final voidwithRowNumbering(QueryPart queryPart, boolean needsSelectAliases, Runnable r)
-
Constructor Details
-
AbstractSqlAstTranslator
-
-
Method Details
-
getDialect
-
getSessionFactory
- Specified by:
getSessionFactoryin interfaceSqlAstTranslator<T extends JdbcOperation>
-
castFunction
-
getWrapperOptions
-
getIntegerType
-
getStringType
-
getBooleanType
-
getSql
-
getSqlBuffer
-
cleanup
protected void cleanup() -
getParameterBinders
-
getSqlAppender
-
getAffectedTableNames
Description copied from interface:SqlAstTranslatorNot the best spot for this. Returns the table names collected while walking the SQL AST. It's ok here because the translator is consider a one-time-use. It just needs to be called after translation. A better option is probably to have "translation" objects that expose the affected table-names.- Specified by:
getAffectedTableNamesin interfaceSqlAstTranslator<T extends JdbcOperation>
-
addAffectedTableName
- Specified by:
addAffectedTableNamein interfaceSqlAstTranslator<T extends JdbcOperation>
-
getStatement
-
getCurrentDmlStatement
-
getParameterRenderingMode
-
addAdditionalWherePredicate
-
appendSql
Description copied from interface:SqlAppenderAdd the passed fragment into the in-flight buffer- Specified by:
appendSqlin interfaceSqlAppender
-
appendSql
public void appendSql(char fragment) - Specified by:
appendSqlin interfaceSqlAppender
-
appendSql
public void appendSql(int value) - Specified by:
appendSqlin interfaceSqlAppender
-
appendSql
public void appendSql(long value) - Specified by:
appendSqlin interfaceSqlAppender
-
appendSql
public void appendSql(boolean value) - Specified by:
appendSqlin interfaceSqlAppender
-
appendDoubleQuoteEscapedString
- Specified by:
appendDoubleQuoteEscapedStringin interfaceSqlAppender
-
appendSingleQuoteEscapedString
- Specified by:
appendSingleQuoteEscapedStringin interfaceSqlAppender
-
append
- Specified by:
appendin interfaceAppendable- Specified by:
appendin interfaceSqlAppender
-
append
- Specified by:
appendin interfaceAppendable- Specified by:
appendin interfaceSqlAppender
-
append
- Specified by:
appendin interfaceAppendable- Specified by:
appendin interfaceSqlAppender
-
getJdbcServices
-
addAppliedParameterBinding
-
getAppliedParameterBindings
-
getJdbcLockStrategy
-
getJdbcParameterBindings
-
getLockOptions
-
getLimit
-
hasLimit
protected boolean hasLimit() -
hasLimit
-
hasOffset
-
useOffsetFetchClause
-
isRowsOnlyFetchClauseType
-
getOffsetParameter
-
setOffsetParameter
-
getLimitParameter
-
setLimitParameter
-
getLiteralValue
Description copied from interface:SqlAstTranslatorReturns the literal value of the given expression, inlining a parameter value if necessary.- Specified by:
getLiteralValuein interfaceSqlAstTranslator<T extends JdbcOperation>
-
interpretExpression
protected <R> R interpretExpression(Expression expression, JdbcParameterBindings jdbcParameterBindings) -
renderExpressionAsLiteral
protected void renderExpressionAsLiteral(Expression expression, JdbcParameterBindings jdbcParameterBindings) -
getParameterBindValue
-
getLeftHandExpression
-
inOverOrWithinGroupClause
protected boolean inOverOrWithinGroupClause() -
getClauseStack
-
getStatementStack
-
getQueryPartStack
-
getCurrentQueryPart
Description copied from interface:SqlAstTranslatorReturns the current query part that is translated.- Specified by:
getCurrentQueryPartin interfaceSqlAstTranslator<T extends JdbcOperation>
-
getCurrentClauseStack
- Specified by:
getCurrentClauseStackin interfaceSqlAstTranslator<T extends JdbcOperation>
-
getCurrentCteStatement
-
getCteStatement
-
translate
- Specified by:
translatein interfaceSqlAstTranslator<T extends JdbcOperation>
-
translateDelete
-
translateUpdate
-
translateInsert
-
getUniqueConstraintNameThatMayFail
-
translateSelect
-
getRowsToSkip
protected int getRowsToSkip(SelectStatement sqlAstSelect, JdbcParameterBindings jdbcParameterBindings) -
getMaxRows
protected int getMaxRows(SelectStatement sqlAstSelect, JdbcParameterBindings jdbcParameterBindings, int rowsToSkip) -
needsRowsToSkip
protected boolean needsRowsToSkip() -
needsMaxRows
protected boolean needsMaxRows() -
prepareLimitOffsetParameters
protected void prepareLimitOffsetParameters() -
visitSelectStatement
- Specified by:
visitSelectStatementin interfaceSqlAstWalker
-
visitDeleteStatement
- Specified by:
visitDeleteStatementin interfaceSqlAstWalker
-
visitUpdateStatement
- Specified by:
visitUpdateStatementin interfaceSqlAstWalker
-
visitAssignment
- Specified by:
visitAssignmentin interfaceSqlAstWalker
-
visitInsertStatement
- Specified by:
visitInsertStatementin interfaceSqlAstWalker
-
visitDeleteStatementOnly
-
renderDeleteClause
-
visitUpdateStatementOnly
-
renderUpdateClause
-
renderDmlTargetTableExpression
-
hasNonTrivialFromClause
-
determineWhereClauseRestrictionWithJoinEmulation
protected Predicate determineWhereClauseRestrictionWithJoinEmulation(AbstractUpdateOrDeleteStatement statement) -
determineWhereClauseRestrictionWithJoinEmulation
protected Predicate determineWhereClauseRestrictionWithJoinEmulation(AbstractUpdateOrDeleteStatement statement, String dmlTargetAlias) -
renderSetClause
-
visitSetAssignment
-
appendAssignmentColumn
-
visitSetAssignmentEmulateJoin
-
isStruct
-
visitInsertStatementOnly
-
isIntegerDivisionEmulationRequired
-
visitInsertSource
-
visitInsertStatementEmulateMerge
-
visitUpdateStatementEmulateMerge
-
visitUpdateStatementEmulateInlineView
-
visitUpdateStatementEmulateTupleSet
-
renderMergeUpdateClause
-
visitValuesList
-
visitValuesListStandard
-
visitValuesListEmulateSelectUnion
-
visitForUpdateClause
-
renderForUpdateClause
protected void renderForUpdateClause(QuerySpec querySpec, AbstractSqlAstTranslator.ForUpdateClause forUpdateClause) -
getForUpdate
-
getForUpdateWithClause
-
getNoWait
-
getSkipLocked
-
getEffectiveLockMode
-
getEffectiveLockMode
-
getEffectiveLockTimeout
-
hasAggregateFunctions
-
determineLockingStrategy
protected AbstractSqlAstTranslator.LockStrategy determineLockingStrategy(QuerySpec querySpec, AbstractSqlAstTranslator.ForUpdateClause forUpdateClause, Boolean followOnLocking) -
visitConflictClause
-
visitStandardConflictClause
-
visitOnDuplicateKeyConflictClause
-
visitReturningColumns
-
visitReturningColumns
-
visitCteContainer
-
visitCteObject
-
renderCteColumns
-
determineCyclePathColumnName
-
isInRecursiveQueryPart
protected boolean isInRecursiveQueryPart() -
isInSubquery
protected boolean isInSubquery() -
visitCteDefinition
-
needsCteInlining
protected boolean needsCteInlining()Whether CTEs should be inlined rather than rendered as CTEs. -
shouldInlineCte
Whether CTEs should be inlined rather than rendered as CTEs. -
needsRecursiveKeywordInWithClause
protected boolean needsRecursiveKeywordInWithClause()Whether the SQL with clause requires the "recursive" keyword for recursive CTEs. -
supportsRecursiveClauseArrayAndRowEmulation
protected boolean supportsRecursiveClauseArrayAndRowEmulation()Whether the recursive search and cycle clause emulations based on the array and row constructor is supported. -
renderMaterializationHint
-
renderSearchClause
-
renderStandardSearchClause
-
renderCycleClause
-
renderStandardCycleClause
-
renderRecursiveCteVirtualSelections
-
emulateSearchClauseOrderWithRowAndArray
-
visitRecursivePath
Renders the recursive path, possibly wrapping a cast expression around it, to make sure a type with proper size is chosen. -
emulateCycleClauseWithRowAndArray
-
getArrayContainsFunction
Returns the name of thearray_contains(array, element)function, which is used for emulating the cycle clause. -
renderStringContainsExactlyPredicate
-
castNumberToString
Casts a number expression to a string with the given precision and scale. -
visitQueryGroup
- Specified by:
visitQueryGroupin interfaceSqlAstWalker
-
renderQueryGroup
-
visitQuerySpec
- Specified by:
visitQuerySpecin interfaceSqlAstWalker
-
visitWhereClause
-
resolveAliasedExpression
-
resolveAliasedExpression
protected Expression resolveAliasedExpression(List<SqlSelection> sqlSelections, Expression expression) -
resolveExpressionToAlias
-
visitGroupByClause
protected final void visitGroupByClause(QuerySpec querySpec, SelectItemReferenceStrategy referenceStrategy) -
visitPartitionByClause
-
visitPartitionExpressions
protected final void visitPartitionExpressions(List<Expression> partitionExpressions, SelectItemReferenceStrategy referenceStrategy) -
visitPartitionExpressions
protected final void visitPartitionExpressions(List<Expression> partitionExpressions, Function<Expression, Expression> resolveAliasExpression, boolean inlineParametersOfAliasedExpressions) -
renderPartitionItem
-
visitHavingClause
-
visitOrderBy
-
renderOrderBy
-
emulateSelectTupleComparison
protected void emulateSelectTupleComparison(List<SqlSelection> lhsSelections, List<? extends SqlAstNode> rhsExpressions, ComparisonOperator operator, boolean indexOptimized) -
emulateTupleComparison
protected void emulateTupleComparison(List<? extends SqlAstNode> lhsExpressions, List<? extends SqlAstNode> rhsExpressions, ComparisonOperator operator, boolean indexOptimized) A tuple comparison like(a, b) > (1, 2)can be emulated through it logical definition:a > 1 or a = 1 and b > 2. The normal tuple comparison emulation is not very index friendly though because of the top level OR predicate. Index optimized emulation of tuple comparisons puts an AND predicate on the top level. The effect of that is, that the database can do an index seek to efficiently find a superset of matching rows. Generally, it is sufficient to just add a broader predicate like for(a, b) > (1, 2)we adda >= 1 and (..). But we can further optimize this if we just remove the non-matching parts from this too broad predicate. For(a, b, c) > (1, 2, 3)we use the broad predicatea >= 1and then want to remove rows wherea = 1 and (b, c) <= (2, 3) -
renderExpressionsAsSubquery
-
renderSelectSimpleComparison
protected void renderSelectSimpleComparison(List<SqlSelection> lhsExpressions, Expression expression, ComparisonOperator operator) -
renderSelectTupleComparison
protected void renderSelectTupleComparison(List<SqlSelection> lhsExpressions, SqlTuple tuple, ComparisonOperator operator) -
renderTupleComparisonStandard
protected void renderTupleComparisonStandard(List<SqlSelection> lhsExpressions, SqlTuple tuple, ComparisonOperator operator) -
renderComparison
-
renderComparisonStandard
protected void renderComparisonStandard(Expression lhs, ComparisonOperator operator, Expression rhs) -
renderComparisonDistinctOperator
protected void renderComparisonDistinctOperator(Expression lhs, ComparisonOperator operator, Expression rhs) -
renderComparisonEmulateDecode
protected void renderComparisonEmulateDecode(Expression lhs, ComparisonOperator operator, Expression rhs) -
renderComparisonEmulateDecode
protected void renderComparisonEmulateDecode(Expression lhs, ComparisonOperator operator, Expression rhs, SqlAstNodeRenderingMode firstArgRenderingMode) -
renderComparisonEmulateCase
protected void renderComparisonEmulateCase(Expression lhs, ComparisonOperator operator, Expression rhs) -
renderComparisonEmulateIntersect
protected void renderComparisonEmulateIntersect(Expression lhs, ComparisonOperator operator, Expression rhs) -
visitSortSpecification
- Specified by:
visitSortSpecificationin interfaceSqlAstWalker
-
visitSortSpecification
protected void visitSortSpecification(Expression sortExpression, SortDirection sortOrder, Nulls nullPrecedence, boolean ignoreCase) -
renderSortExpression
-
emulateSortSpecificationNullPrecedence
protected void emulateSortSpecificationNullPrecedence(Expression sortExpression, Nulls nullPrecedence) -
visitOffsetFetchClause
- Specified by:
visitOffsetFetchClausein interfaceSqlAstWalker
-
renderOffsetFetchClause
-
renderOffsetFetchClause
protected void renderOffsetFetchClause(Expression offsetExpression, Expression fetchExpression, FetchClauseType fetchClauseType, boolean renderOffsetRowsKeyword) -
renderOffset
-
renderFetch
protected void renderFetch(Expression fetchExpression, Expression offsetExpressionToAdd, FetchClauseType fetchClauseType) -
renderOffsetExpression
-
renderFetchExpression
-
renderTopClause
-
renderTopClause
protected void renderTopClause(Expression offsetExpression, Expression fetchExpression, FetchClauseType fetchClauseType, boolean addOffset, boolean needsParenthesis) -
renderTopStartAtClause
-
renderTopStartAtClause
protected void renderTopStartAtClause(Expression offsetExpression, Expression fetchExpression, FetchClauseType fetchClauseType) -
renderRowsToClause
-
renderRowsToClause
protected void renderRowsToClause(Expression offsetClauseExpression, Expression fetchClauseExpression) -
renderFetchPlusOffsetExpression
protected void renderFetchPlusOffsetExpression(Expression fetchClauseExpression, Expression offsetClauseExpression, int offset) -
renderFetchPlusOffsetExpressionAsLiteral
protected void renderFetchPlusOffsetExpressionAsLiteral(Expression fetchClauseExpression, Expression offsetClauseExpression, int offset) -
renderFetchPlusOffsetExpressionAsSingleParameter
protected void renderFetchPlusOffsetExpressionAsSingleParameter(Expression fetchClauseExpression, Expression offsetClauseExpression, int offset) -
renderFirstSkipClause
-
renderFirstSkipClause
-
renderSkipFirstClause
-
renderSkipFirstClause
-
renderFirstClause
-
renderFirstClause
-
renderCombinedLimitClause
-
renderCombinedLimitClause
-
renderLimitOffsetClause
-
renderLimitOffsetClause
-
assertRowsOnlyFetchClauseType
-
getQueryPartForRowNumbering
-
isRowNumberingCurrentQueryPart
protected boolean isRowNumberingCurrentQueryPart() -
emulateFetchOffsetWithWindowFunctions
protected void emulateFetchOffsetWithWindowFunctions(QueryPart queryPart, boolean emulateFetchClause) -
emulateFetchOffsetWithWindowFunctions
protected void emulateFetchOffsetWithWindowFunctions(QueryPart queryPart, Expression offsetExpression, Expression fetchExpression, FetchClauseType fetchClauseType, boolean emulateFetchClause) -
emulateFetchOffsetWithWindowFunctionsVisitQueryPart
-
withRowNumbering
-
visitSelectClause
- Specified by:
visitSelectClausein interfaceSqlAstWalker
-
visitSqlSelections
-
renderVirtualSelections
-
getSelectItemReference
-
renderRowNumberingSelectItems
-
getFetchClauseTypeForRowNumbering
-
visitOver
- Specified by:
visitOverin interfaceSqlAstWalker
-
visitOverClause
protected final void visitOverClause(List<Expression> partitionExpressions, List<SortSpecification> sortSpecifications) -
visitOverClause
protected void visitOverClause(List<Expression> partitionExpressions, List<SortSpecification> sortSpecifications, FrameMode mode, FrameKind startKind, Expression startExpression, FrameKind endKind, Expression endExpression, FrameExclusion exclusion, boolean orderedSetAggregate) -
renderRowNumber
-
isParameter
-
isLiteral
-
getSortSpecificationsRowNumbering
protected List<SortSpecification> getSortSpecificationsRowNumbering(SelectClause selectClause, QueryPart queryPart) -
visitSqlSelection
- Specified by:
visitSqlSelectionin interfaceSqlAstWalker
-
visitSqlSelectExpression
-
renderSelectExpression
-
renderExpressionAsClauseItem
-
renderSelectExpressionWithCastedOrInlinedPlainParameters
-
renderCasted
-
renderLiteral
-
visitFromClause
- Specified by:
visitFromClausein interfaceSqlAstWalker
-
renderFromClauseSpaces
-
renderFromClauseAfterUpdateSet
-
renderFromClauseExcludingDmlTargetReference
-
renderFromClauseJoiningDmlTargetReference
-
createRowMatchingPredicate
protected Predicate createRowMatchingPredicate(TableGroup dmlTargetTableGroup, String lhsAlias, String rhsAlias) -
renderDmlTargetTableGroup
-
renderRootTableGroup
protected void renderRootTableGroup(TableGroup tableGroup, List<TableGroupJoin> tableGroupJoinCollector) -
renderTableGroup
protected void renderTableGroup(TableGroup tableGroup, Predicate predicate, List<TableGroupJoin> tableGroupJoinCollector) -
needsLocking
-
hasNestedTableGroupsToRender
-
renderPrimaryTableReference
-
renderDerivedTableReference
-
inlineCteTableGroup
-
renderNamedTableReference
-
visitValuesTableReference
- Specified by:
visitValuesTableReferencein interfaceSqlAstWalker
-
visitQueryPartTableReference
- Specified by:
visitQueryPartTableReferencein interfaceSqlAstWalker
-
visitFunctionTableReference
- Specified by:
visitFunctionTableReferencein interfaceSqlAstWalker
-
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>
-
renderSimpleNamedFunction
protected final void renderSimpleNamedFunction(String functionName, List<? extends SqlAstNode> sqlAstArguments, SqlAstNodeRenderingMode argumentRenderingMode) -
emulateQueryPartTableReferenceColumnAliasing
-
emulateValuesTableReferenceColumnAliasing
-
renderDerivedTableReferenceIdentificationVariable
protected void renderDerivedTableReferenceIdentificationVariable(DerivedTableReference tableReference) -
renderTableReferenceIdentificationVariable
-
registerAffectedTable
-
registerAffectedTable
-
renderTableReferenceJoins
-
renderTableReferenceJoins
protected void renderTableReferenceJoins(TableGroup tableGroup, int swappedJoinIndex, boolean forceLeftJoin) -
processTableGroupJoins
-
processNestedTableGroupJoins
protected void processNestedTableGroupJoins(TableGroup source, List<TableGroupJoin> tableGroupJoinCollector) -
processTableGroupJoin
protected void processTableGroupJoin(TableGroupJoin tableGroupJoin, List<TableGroupJoin> tableGroupJoinCollector) -
renderTableGroupJoin
protected void renderTableGroupJoin(TableGroupJoin tableGroupJoin, List<TableGroupJoin> tableGroupJoinCollector) -
determineLateralEmulationPredicate
-
shouldEmulateLateralWithIntersect
-
visitTableGroup
- Specified by:
visitTableGroupin interfaceSqlAstWalker
-
visitTableGroupJoin
- Specified by:
visitTableGroupJoinin interfaceSqlAstWalker
-
visitNamedTableReference
- Specified by:
visitNamedTableReferencein interfaceSqlAstWalker
-
visitTableReferenceJoin
- Specified by:
visitTableReferenceJoinin interfaceSqlAstWalker
-
visitColumnReference
- Specified by:
visitColumnReferencein interfaceSqlAstWalker
-
visitNestedColumnReference
- Specified by:
visitNestedColumnReferencein interfaceSqlAstWalker
-
visitAggregateColumnWriteExpression
public void visitAggregateColumnWriteExpression(AggregateColumnWriteExpression aggregateColumnWriteExpression) - Specified by:
visitAggregateColumnWriteExpressionin interfaceSqlAstWalker
-
determineColumnReferenceQualifier
-
visitExtractUnit
- Specified by:
visitExtractUnitin interfaceSqlAstWalker
-
visitDurationUnit
- Specified by:
visitDurationUnitin interfaceSqlAstWalker
-
visitFormat
- Specified by:
visitFormatin interfaceSqlAstWalker
-
visitStar
- Specified by:
visitStarin interfaceSqlAstWalker
-
visitTrimSpecification
- Specified by:
visitTrimSpecificationin interfaceSqlAstWalker
-
visitCastTarget
- Specified by:
visitCastTargetin interfaceSqlAstWalker
-
getSqlTypeName
public static String getSqlTypeName(SqlTypedMapping castTarget, TypeConfiguration typeConfiguration) -
getCastTypeName
public static String getCastTypeName(SqlTypedMapping castTarget, TypeConfiguration typeConfiguration) -
visitDistinct
- Specified by:
visitDistinctin interfaceSqlAstWalker
-
visitOverflow
- Specified by:
visitOverflowin interfaceSqlAstWalker
-
visitParameter
- Specified by:
visitParameterin interfaceSqlAstWalker
-
visitParameterAsParameter
-
renderParameterAsParameter
-
renderWrappedParameter
-
renderParameterAsParameter
Renders a parameter marker for the given position -
render
Description copied from interface:SqlAstTranslatorRenders the given SQL AST node with the given rendering mode.- Specified by:
renderin interfaceSqlAstTranslator<T extends JdbcOperation>
-
withParameterRenderingMode
-
visitTuple
- Specified by:
visitTuplein interfaceSqlAstWalker
-
renderCommaSeparated
-
renderCommaSeparatedSelectExpression
protected final void renderCommaSeparatedSelectExpression(Iterable<? extends SqlAstNode> expressions) -
renderCommaSeparatedSelectExpression
protected final void renderCommaSeparatedSelectExpression(Iterable<? extends SqlAstNode> expressions, Iterable<String> aliases) -
visitCollation
- Specified by:
visitCollationin interfaceSqlAstWalker
-
visitSqlSelectionExpression
- Specified by:
visitSqlSelectionExpressionin interfaceSqlAstWalker
-
visitEntityTypeLiteral
- Specified by:
visitEntityTypeLiteralin interfaceSqlAstWalker
-
visitEmbeddableTypeLiteral
- Specified by:
visitEmbeddableTypeLiteralin interfaceSqlAstWalker
-
visitBinaryArithmeticExpression
- Specified by:
visitBinaryArithmeticExpressionin interfaceSqlAstWalker
-
visitArithmeticOperand
-
visitDuration
- Specified by:
visitDurationin interfaceSqlAstWalker
-
renderInterval
-
renderIntervalLiteral
-
visitConversion
- Specified by:
visitConversionin interfaceSqlAstWalker
-
visitCaseSearchedExpression
- Specified by:
visitCaseSearchedExpressionin interfaceSqlAstWalker
-
visitCaseSearchedExpression
protected void visitCaseSearchedExpression(CaseSearchedExpression caseSearchedExpression, boolean inSelect) -
visitAnsiCaseSearchedExpression
protected void visitAnsiCaseSearchedExpression(CaseSearchedExpression caseSearchedExpression, Consumer<Expression> resultRenderer) -
visitDecodeCaseSearchedExpression
-
visitCaseSimpleExpression
- Specified by:
visitCaseSimpleExpressionin interfaceSqlAstWalker
-
visitCaseSimpleExpression
protected void visitCaseSimpleExpression(CaseSimpleExpression caseSimpleExpression, boolean inSelect) -
visitAnsiCaseSimpleExpression
protected void visitAnsiCaseSimpleExpression(CaseSimpleExpression caseSimpleExpression, Consumer<Expression> resultRenderer) -
areAllResultsParameters
-
areAllResultsParameters
-
visitAny
- Specified by:
visitAnyin interfaceSqlAstWalker
-
visitEvery
- Specified by:
visitEveryin interfaceSqlAstWalker
-
visitSummarization
- Specified by:
visitSummarizationin interfaceSqlAstWalker
-
visitJdbcLiteral
- Specified by:
visitJdbcLiteralin interfaceSqlAstWalker
-
visitQueryLiteral
- Specified by:
visitQueryLiteralin interfaceSqlAstWalker
-
visitUnparsedNumericLiteral
- Specified by:
visitUnparsedNumericLiteralin interfaceSqlAstWalker
-
renderNull
-
renderAsLiteral
-
visitUnaryOperationExpression
- Specified by:
visitUnaryOperationExpressionin interfaceSqlAstWalker
-
visitModifiedSubQueryExpression
- Specified by:
visitModifiedSubQueryExpressionin interfaceSqlAstWalker
-
visitSelfRenderingPredicate
- Specified by:
visitSelfRenderingPredicatein interfaceSqlAstWalker
-
visitSelfRenderingExpression
- Specified by:
visitSelfRenderingExpressionin interfaceSqlAstWalker
-
visitBooleanExpressionPredicate
- Specified by:
visitBooleanExpressionPredicatein interfaceSqlAstWalker
-
visitBetweenPredicate
- Specified by:
visitBetweenPredicatein interfaceSqlAstWalker
-
visitFilterPredicate
- Specified by:
visitFilterPredicatein interfaceSqlAstWalker
-
visitFilterFragmentPredicate
- Specified by:
visitFilterFragmentPredicatein interfaceSqlAstWalker
-
visitSqlFragmentPredicate
- Specified by:
visitSqlFragmentPredicatein interfaceSqlAstWalker
-
visitGroupedPredicate
- Specified by:
visitGroupedPredicatein interfaceSqlAstWalker
-
visitInListPredicate
- Specified by:
visitInListPredicatein interfaceSqlAstWalker
-
visitInArrayPredicate
- Specified by:
visitInArrayPredicatein interfaceSqlAstWalker
-
visitInSubQueryPredicate
- Specified by:
visitInSubQueryPredicatein interfaceSqlAstWalker
-
emulateSubQueryRelationalRestrictionPredicate
protected <X extends Expression> void emulateSubQueryRelationalRestrictionPredicate(Predicate predicate, boolean negated, SelectStatement selectStatement, X lhsTuple, AbstractSqlAstTranslator.SubQueryRelationalRestrictionEmulationRenderer<X> renderer, ComparisonOperator tupleComparisonOperator) -
emulateQuantifiedTupleSubQueryPredicate
protected void emulateQuantifiedTupleSubQueryPredicate(Predicate predicate, SelectStatement selectStatement, SqlTuple lhsTuple, ComparisonOperator tupleComparisonOperator) An optimized emulation for relational tuple sub-query comparisons. The idea of this method is to use limit 1 to select the max or min tuple and only compare against that. -
visitExistsPredicate
- Specified by:
visitExistsPredicatein interfaceSqlAstWalker
-
visitJunction
- Specified by:
visitJunctionin interfaceSqlAstWalker
-
visitLikePredicate
- Specified by:
visitLikePredicatein interfaceSqlAstWalker
-
renderCaseInsensitiveLikeEmulation
protected void renderCaseInsensitiveLikeEmulation(Expression lhs, Expression rhs, Expression escapeCharacter, boolean negated) -
renderBackslashEscapedLikePattern
protected void renderBackslashEscapedLikePattern(Expression pattern, Expression escapeCharacter, boolean noBackslashEscapes) -
appendBackslashEscapedLikeLiteral
protected void appendBackslashEscapedLikeLiteral(SqlAppender appender, String literal, boolean noBackslashEscapes) -
visitNegatedPredicate
- Specified by:
visitNegatedPredicatein interfaceSqlAstWalker
-
visitNullnessPredicate
- Specified by:
visitNullnessPredicatein interfaceSqlAstWalker
-
visitThruthnessPredicate
- Specified by:
visitThruthnessPredicatein interfaceSqlAstWalker
-
visitRelationalPredicate
- Specified by:
visitRelationalPredicatein interfaceSqlAstWalker
-
getDual
Returns a table expression that has one row.- Returns:
- the SQL equivalent to Oracle's
dual.
-
getFromDualForSelectOnly
-
visitStandardTableInsert
- Specified by:
visitStandardTableInsertin interfaceSqlAstWalker
-
renderIntoIntoAndTable
Renders theinsert into <table name>portion of an insert -
renderInsertIntoNoColumns
Handle rendering an insert with no columns -
visitCustomTableInsert
- Specified by:
visitCustomTableInsertin interfaceSqlAstWalker
-
visitStandardTableUpdate
- Specified by:
visitStandardTableUpdatein interfaceSqlAstWalker
-
visitOptionalTableUpdate
- Specified by:
visitOptionalTableUpdatein interfaceSqlAstWalker
-
visitCustomTableUpdate
- Specified by:
visitCustomTableUpdatein interfaceSqlAstWalker
-
visitStandardTableDelete
- Specified by:
visitStandardTableDeletein interfaceSqlAstWalker
-
visitCustomTableDelete
- Specified by:
visitCustomTableDeletein interfaceSqlAstWalker
-
applyParameter
-
visitColumnWriteFragment
- Specified by:
visitColumnWriteFragmentin interfaceSqlAstWalker
-
simpleColumnWriteFragmentRendering
-