Class PostgreSQLSqlAstTranslator<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
ConstructorsConstructorDescriptionPostgreSQLSqlAstTranslator(SqlAstTranslationRequest<? extends Statement, T> request) -
Method Summary
Modifier and TypeMethodDescriptionprotected StringReturns the name of thearray_contains(array, element)function, which is used for emulating the cycle clause.protected SelectItemReferenceStrategySelect how this translator refers to select items in agroup byclause.protected InsertConflictRenderingSupportSupplies the strategy which selects insert-conflict rendering plans.protected PaginationRenderingSupportSupplies the strategy which selects SQL AST pagination plans.protected voidrenderComparison(Expression lhs, ComparisonOperator operator, Expression rhs) protected voidRender the optional path column of a standard CTE cycle clause.protected voidrenderDmlTargetTableExpression(NamedTableReference tableReference) protected voidrenderExpressionAsClauseItem(Expression expression) protected voidrenderFromClauseAfterUpdateSet(UpdateStatement statement) protected voidrenderInsertIntoNoColumns(TableInsertStandard tableInsert) Render a completeinsert intostatement for an insert with no column value bindings.protected voidrenderLikePredicate(LikePredicate likePredicate) protected voidrenderMaterializationHint(CteMaterialization materialization) protected voidrenderPartitionItem(Expression expression) protected voidrenderStandardTableInsert(TableInsertStandard tableInsert) voidvisitBinaryArithmeticExpression(BinaryArithmeticExpression arithmeticExpression) voidvisitBooleanExpressionPredicate(BooleanExpressionPredicate booleanExpressionPredicate) voidvisitInArrayPredicate(InArrayPredicate inArrayPredicate) voidvisitNullnessPredicate(NullnessPredicate nullnessPredicate) Methods inherited from class PostgreSQLFamilySqlAstTranslator
expectation, renderMergeStatement, renderTableReferenceAliasMethods inherited from class SqlAstTranslatorWithMerge
createMergeOperation, renderMergeDelete, renderMergeInsert, renderMergeInto, renderMergeOn, renderMergeSourceAlias, 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, emulateFetchOffsetWithWindowFunctionsVisitQueryPart, emulateQuantifiedTupleSubQueryPredicate, emulateSearchClauseOrderWithRowAndArray, emulateSelectTupleComparison, emulateSortSpecificationNullPrecedence, emulateSubQueryRelationalRestrictionPredicate, emulateTupleComparison, getAffectedTableNames, getBooleanType, getClauseStack, getCteParameterRenderingMode, getCteStatement, getCurrentClauseStack, getCurrentDmlStatement, getCurrentQueryPart, getDerivedTableRenderingSupport, getDialect, getEffectiveLockMode, getEffectiveLockMode, getEffectiveLockMode, getEffectiveLockTimeout, getFetchClauseTypeForRowNumbering, getIntegerType, getJdbcParameterBindings, getJdbcServices, getLeftHandExpression, getLimit, getLimitParameter, getLiteralValue, getLockingClauseStrategy, getLockOptions, getOffsetParameter, getParameterBinders, getParameterBindValue, getParameterRenderingMode, getQueryMutationRenderingSupport, getQueryPartForRowNumbering, getQueryPartStack, getReturningRenderingSupport, getSelectItemReference, getSelectOnlyFromClause, getSessionFactory, getSetReturningFunctionRenderingSupport, getSingleRowTableExpression, getSortSpecificationsRowNumbering, getSql, getSqlAst, getSqlBuffer, getStatement, getStatementStack, getStringType, getTableJoinRenderingSupport, 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, renderComparisonStandard, renderCteSelectHint, renderCycleClause, renderDeleteClause, renderDeleteStatementDirect, renderDeleteStatementWithJoinEmulation, renderDerivedTableReferenceIdentificationVariable, renderEmptyOrderBy, renderEscapeCharacter, renderExpressionAsLiteral, renderExpressionsAsSubquery, renderExpressionsAsValuesSubquery, renderFetch, renderFetchExpression, renderFetchFirstRow, renderFetchPlusOffsetExpression, renderFetchPlusOffsetExpressionAsLiteral, renderFetchPlusOffsetExpressionAsSingleParameter, renderFirstClause, renderFirstClause, renderFirstSkipClause, renderFirstSkipClause, renderFromClauseExcludingDmlTargetReference, renderFromClauseJoiningDmlTargetReference, renderFromClauseSpaces, renderInsertInto, renderInsertStatementAsMerge, renderInterval, renderIntervalLiteral, renderIntoIntoAndTable, renderLegacyReturningInsert, renderLikePattern, renderLimitOffsetClause, renderLimitOffsetClause, renderLiteral, renderMergeUpdateClause, renderNamedSetReturningFunction, renderNull, renderOffset, renderOffsetExpression, renderOffsetFetchClause, renderOffsetFetchClause, renderOnDuplicateKeyConflictClause, renderOrderByClause, renderParameterAsParameter, renderPrimaryTableReferencePrefix, renderQuantifiedEmulationSubQuery, renderQueryGroupWithoutOrderByAndOffsetFetch, renderQueryPartTableReferenceWithSelectListAliases, renderRecursiveCteVirtualSelections, renderRelationalEmulationSubQuery, renderRowNumber, renderRowNumberingSelectItems, renderRowsToClause, renderRowsToClause, renderSearchClause, renderSelectClause, renderSelectExpression, renderSelectExpressionWithCastedOrInlinedPlainParameters, renderSelectItems, renderSelectSimpleComparison, renderSelectStatement, renderSelectTupleComparison, renderSetAssignment, renderSetAssignmentEmulateJoin, renderSetClause, renderSkipFirstClause, renderSkipFirstClause, renderSortExpression, renderStandardConflictClause, renderStandardCycleClause, renderStandardSearchClause, renderStandardTableUpdate, renderStatementPrefix, renderStringContainsExactlyPredicate, 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, visitAnsiCaseSearchedExpression, visitAnsiCaseSimpleExpression, visitAny, visitArithmeticOperand, visitAssignment, visitBetweenPredicate, 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, visitInListPredicate, visitInsertStatement, visitInSubQueryPredicate, visitJdbcLiteral, visitJunction, visitLikePredicate, visitModifiedSubQueryExpression, visitNamedTableReference, visitNegatedPredicate, visitNestedColumnReference, 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
-
PostgreSQLSqlAstTranslator
@SPI(IMPLEMENT) public PostgreSQLSqlAstTranslator(SqlAstTranslationRequest<? extends Statement, T> request)
-
-
Method Details
-
getGroupBySelectItemReferenceStrategy
@SPI({IMPLEMENT,SUPPLY}) protected SelectItemReferenceStrategy getGroupBySelectItemReferenceStrategy()Description copied from class:AbstractSqlAstTranslatorSelect how this translator refers to select items in a
group byclause.Return one non-null stable choice without mutating the request or renderer state. Override this focused hook instead of replacing group-by traversal.
- Overrides:
getGroupBySelectItemReferenceStrategyin classAbstractSqlAstTranslator<T extends JdbcOperation>- Returns:
- the select-item reference strategy
- See Also:
-
visitInArrayPredicate
- Specified by:
visitInArrayPredicatein interfaceSqlAstWalker- Overrides:
visitInArrayPredicatein classAbstractSqlAstTranslator<T extends JdbcOperation>
-
getArrayContainsFunction
Description copied from class:AbstractSqlAstTranslatorReturns the name of thearray_contains(array, element)function, which is used for emulating the cycle clause.- Overrides:
getArrayContainsFunctionin classAbstractSqlAstTranslator<T extends JdbcOperation>
-
renderStandardTableInsert
- Overrides:
renderStandardTableInsertin classAbstractSqlAstTranslator<T extends JdbcOperation>
-
renderInsertIntoNoColumns
Description copied from class:AbstractSqlAstTranslatorRender a complete
insert intostatement for an insert with no column value bindings.Override this method when the database uses syntax other than the generic
values ( )form. CallAbstractSqlAstTranslator.renderIntoIntoAndTable(TableInsertStandard)when the standard table rendering and affected-table registration are appropriate, then append the database-specific no-column syntax. If the database cannot express this operation, throw aMappingExceptionwhich identifies the affected table and Dialect.- Overrides:
renderInsertIntoNoColumnsin classAbstractSqlAstTranslator<T extends JdbcOperation>- Parameters:
tableInsert- the supported model insert to render
-
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>
-
renderExpressionAsClauseItem
- Overrides:
renderExpressionAsClauseItemin classAbstractSqlAstTranslator<T extends JdbcOperation>
-
renderComparison
- Overrides:
renderComparisonin classAbstractSqlAstTranslator<T extends JdbcOperation>
-
visitBooleanExpressionPredicate
- Specified by:
visitBooleanExpressionPredicatein interfaceSqlAstWalker- Overrides:
visitBooleanExpressionPredicatein classAbstractSqlAstTranslator<T extends JdbcOperation>
-
visitNullnessPredicate
- Specified by:
visitNullnessPredicatein interfaceSqlAstWalker- Overrides:
visitNullnessPredicatein classAbstractSqlAstTranslator<T extends JdbcOperation>
-
renderMaterializationHint
- Overrides:
renderMaterializationHintin 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>
-
renderCycleUsingClause
Description copied from class:AbstractSqlAstTranslatorRender the optional path column of a standard CTE cycle clause.- Overrides:
renderCycleUsingClausein classAbstractSqlAstTranslator<T extends JdbcOperation>
-
renderPartitionItem
- Overrides:
renderPartitionItemin classAbstractSqlAstTranslator<T extends JdbcOperation>
-
renderLikePredicate
- Overrides:
renderLikePredicatein classAbstractSqlAstTranslator<T extends JdbcOperation>
-
visitBinaryArithmeticExpression
- Specified by:
visitBinaryArithmeticExpressionin interfaceSqlAstWalker- Overrides:
visitBinaryArithmeticExpressionin classAbstractSqlAstTranslator<T extends JdbcOperation>
-