Class OracleLegacySqlAstTranslator<T extends org.hibernate.sql.exec.spi.JdbcOperation>

  • All Implemented Interfaces:
    Appendable, org.hibernate.sql.ast.spi.SqlAppender, org.hibernate.sql.ast.SqlAstTranslator<T>, org.hibernate.sql.ast.SqlAstWalker

    public class OracleLegacySqlAstTranslator<T extends org.hibernate.sql.exec.spi.JdbcOperation>
    extends org.hibernate.sql.ast.spi.AbstractSqlAstTranslator<T>
    A SQL AST translator for Oracle.
    • Nested Class Summary

      • Nested classes/interfaces inherited from class org.hibernate.sql.ast.spi.AbstractSqlAstTranslator

        org.hibernate.sql.ast.spi.AbstractSqlAstTranslator.ForUpdateClause, org.hibernate.sql.ast.spi.AbstractSqlAstTranslator.LockStrategy, org.hibernate.sql.ast.spi.AbstractSqlAstTranslator.SubQueryRelationalRestrictionEmulationRenderer<X extends org.hibernate.sql.ast.tree.expression.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

      Constructors 
      Constructor Description
      OracleLegacySqlAstTranslator​(org.hibernate.engine.spi.SessionFactoryImplementor sessionFactory, org.hibernate.sql.ast.tree.Statement statement)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected org.hibernate.sql.ast.spi.AbstractSqlAstTranslator.LockStrategy determineLockingStrategy​(org.hibernate.sql.ast.tree.select.QuerySpec querySpec, org.hibernate.sql.ast.spi.AbstractSqlAstTranslator.ForUpdateClause forUpdateClause, Boolean followOnLocking)  
      protected String getFromDual()  
      protected String getFromDualForSelectOnly()  
      protected boolean needsRecursiveKeywordInWithClause()  
      protected void renderComparison​(org.hibernate.sql.ast.tree.expression.Expression lhs, org.hibernate.query.sqm.ComparisonOperator operator, org.hibernate.sql.ast.tree.expression.Expression rhs)  
      protected void renderPartitionItem​(org.hibernate.sql.ast.tree.expression.Expression expression)  
      protected void renderRowNumber​(org.hibernate.sql.ast.tree.select.SelectClause selectClause, org.hibernate.sql.ast.tree.select.QueryPart queryPart)  
      protected void renderSelectTupleComparison​(List<org.hibernate.sql.ast.spi.SqlSelection> lhsExpressions, org.hibernate.sql.ast.tree.expression.SqlTuple tuple, org.hibernate.query.sqm.ComparisonOperator operator)  
      protected boolean shouldEmulateFetchClause​(org.hibernate.sql.ast.tree.select.QueryPart queryPart)  
      protected boolean shouldEmulateLateralWithIntersect​(org.hibernate.sql.ast.tree.select.QueryPart queryPart)  
      protected boolean supportsDuplicateSelectItemsInQueryGroup()  
      protected boolean supportsNestedSubqueryCorrelation()  
      protected boolean supportsRecursiveCycleClause()  
      protected boolean supportsRecursiveSearchClause()  
      protected boolean supportsRowValueConstructorSyntax()  
      protected boolean supportsRowValueConstructorSyntaxInInList()  
      protected boolean supportsRowValueConstructorSyntaxInInSubQuery()  
      protected boolean supportsRowValueConstructorSyntaxInQuantifiedPredicates()  
      protected boolean supportsWithClauseInSubquery()  
      protected void visitCaseSearchedExpression​(org.hibernate.sql.ast.tree.expression.CaseSearchedExpression caseSearchedExpression, boolean inSelect)  
      void visitFunctionTableReference​(org.hibernate.sql.ast.tree.from.FunctionTableReference tableReference)  
      void visitOffsetFetchClause​(org.hibernate.sql.ast.tree.select.QueryPart queryPart)  
      protected void visitOrderBy​(List<org.hibernate.sql.ast.tree.select.SortSpecification> sortSpecifications)  
      void visitOver​(org.hibernate.sql.ast.tree.expression.Over<?> over)  
      void visitQueryGroup​(org.hibernate.sql.ast.tree.select.QueryGroup queryGroup)  
      void visitQueryPartTableReference​(org.hibernate.sql.ast.tree.from.QueryPartTableReference tableReference)  
      void visitQuerySpec​(org.hibernate.sql.ast.tree.select.QuerySpec querySpec)  
      protected void visitSetAssignment​(org.hibernate.sql.ast.tree.update.Assignment assignment)  
      void visitSqlSelection​(org.hibernate.sql.ast.spi.SqlSelection sqlSelection)  
      protected void visitValuesList​(List<org.hibernate.sql.ast.tree.insert.Values> valuesList)  
      void visitValuesTableReference​(org.hibernate.sql.ast.tree.from.ValuesTableReference tableReference)  
      • Methods inherited from class org.hibernate.sql.ast.spi.AbstractSqlAstTranslator

        addAdditionalWherePredicate, addAppliedParameterBinding, append, append, append, appendBackslashEscapedLikeLiteral, appendSql, appendSql, appendSql, appendSql, appendSql, applyParameter, areAllResultsParameters, areAllResultsParameters, assertRowsOnlyFetchClauseType, castFunction, castNumberToString, cleanup, determineCyclePathColumnName, determineLateralEmulationPredicate, determineWhereClauseRestrictionWithJoinEmulation, emulateCycleClauseWithRowAndArray, emulateFetchOffsetWithWindowFunctions, emulateFetchOffsetWithWindowFunctions, emulateFetchOffsetWithWindowFunctionsVisitQueryPart, emulateQuantifiedTupleSubQueryPredicate, emulateQueryPartTableReferenceColumnAliasing, emulateSearchClauseOrderWithRowAndArray, emulateSelectTupleComparison, emulateSortSpecificationNullPrecedence, emulateSubQueryRelationalRestrictionPredicate, emulateTupleComparison, emulateValuesTableReferenceColumnAliasing, getAffectedTableNames, getAppliedParameterBindings, getArrayContainsFunction, getBooleanType, getCastTypeName, getCastTypeName, getClauseStack, getCteStatement, getCurrentClauseStack, getCurrentCteStatement, getCurrentDmlStatement, getCurrentQueryPart, getDialect, getDmlTargetTableAlias, getEffectiveLockMode, getEffectiveLockMode, getEffectiveLockTimeout, getFetchClauseTypeForRowNumbering, getForShare, getForUpdate, getForUpdateWithClause, getIntegerType, getJdbcLockStrategy, getJdbcParameterBindings, getJdbcServices, getLeftHandExpression, getLimit, getLimitParameter, getLockOptions, getMaxRows, getNoWait, getOffsetParameter, getParameterBinders, getParameterBindValue, getParameterRenderingMode, getQueryPartForRowNumbering, getQueryPartStack, getRowsToSkip, getSelectItemReference, getSessionFactory, getSkipLocked, getSortSpecificationsRowNumbering, getSql, getSqlAppender, getSqlBuffer, getSqlTypeName, getSqlTypeName, getStatement, getStringType, getWrapperOptions, hasAggregateFunctions, hasLimit, hasLimit, hasNestedTableGroupsToRender, hasOffset, inlineCteTableGroup, inOverOrWithinGroupClause, interpretExpression, isCorrelated, isInRecursiveQueryPart, isLiteral, isParameter, isRowNumberingCurrentQueryPart, isRowsOnlyFetchClauseType, isStruct, needsCteInlining, needsLocking, needsMaxRows, needsRowsToSkip, prepareLimitOffsetParameters, processNestedTableGroupJoins, processTableGroupJoin, processTableGroupJoins, registerAffectedTable, registerAffectedTable, render, renderAsLiteral, renderBackslashEscapedLikePattern, renderCaseInsensitiveLikeEmulation, renderCasted, renderCombinedLimitClause, renderCombinedLimitClause, renderCommaSeparated, renderCommaSeparatedSelectExpression, renderCommaSeparatedSelectExpression, renderComparisonDistinctOperator, renderComparisonEmulateCase, renderComparisonEmulateDecode, renderComparisonEmulateDecode, renderComparisonEmulateIntersect, renderComparisonStandard, renderCteColumns, renderCycleClause, renderDerivedTableReference, renderExpressionAsClauseItem, renderExpressionAsLiteral, renderExpressionsAsSubquery, renderFetch, renderFetchExpression, renderFetchPlusOffsetExpression, renderFetchPlusOffsetExpressionAsLiteral, renderFetchPlusOffsetExpressionAsSingleParameter, renderFirstClause, renderFirstClause, renderFirstSkipClause, renderFirstSkipClause, renderForUpdateClause, renderInsertIntoNoColumns, renderIntoIntoAndTable, renderLimitOffsetClause, renderLimitOffsetClause, renderLiteral, renderMaterializationHint, renderNamedTableReference, renderOffset, renderOffsetExpression, renderOffsetFetchClause, renderOffsetFetchClause, renderOrderBy, renderParameterAsParameter, renderParameterAsParameter, renderPrimaryTableReference, renderQueryGroup, renderRecursiveCteVirtualSelections, renderRootTableGroup, renderRowNumberingSelectItems, renderRowsToClause, renderRowsToClause, renderSearchClause, renderSelectExpression, renderSelectExpressionWithCastedOrInlinedPlainParameters, renderSelectSimpleComparison, renderSetClause, renderSkipFirstClause, renderSkipFirstClause, rendersTableReferenceAlias, renderStandardCycleClause, renderStandardSearchClause, renderStringContainsExactlyPredicate, renderTableGroup, renderTableGroupJoin, renderTableReferenceIdentificationVariable, renderTableReferenceJoins, renderTopClause, renderTopClause, renderTopStartAtClause, renderTopStartAtClause, renderTupleComparisonStandard, renderVirtualSelections, resolveAliasedExpression, resolveAliasedExpression, resolveExpressionToAlias, setLimitParameter, setOffsetParameter, shouldInlineCte, simpleColumnWriteFragmentRendering, supportsArrayConstructor, supportsDistinctFromPredicate, supportsFilterClause, supportsIntersect, supportsJoinInMutationStatementSubquery, supportsNestedWithClause, supportsNullPrecedence, supportsQuantifiedPredicates, supportsRecursiveClauseArrayAndRowEmulation, supportsRecursiveCycleUsingClause, supportsRowConstructor, supportsRowValueConstructorDistinctFromSyntax, supportsRowValueConstructorGtLtSyntax, supportsRowValueConstructorSyntaxInSet, supportsSimpleQueryGrouping, supportsWithClause, translate, translateDelete, translateInsert, translateSelect, translateUpdate, useOffsetFetchClause, visitAggregateColumnWriteExpression, visitAnsiCaseSearchedExpression, visitAnsiCaseSimpleExpression, visitAny, visitAssignment, visitBetweenPredicate, visitBinaryArithmeticExpression, visitBooleanExpressionPredicate, visitCaseSearchedExpression, visitCaseSimpleExpression, visitCaseSimpleExpression, visitCastTarget, visitCollation, visitColumnReference, visitColumnWriteFragment, visitConversion, visitCteContainer, visitCteDefinition, visitCteObject, visitCustomTableDelete, visitCustomTableInsert, visitCustomTableUpdate, visitDecodeCaseSearchedExpression, visitDeleteStatement, visitDeleteStatementOnly, visitDistinct, visitDuration, visitDurationUnit, visitEntityTypeLiteral, visitEvery, visitExistsPredicate, visitExtractUnit, visitFilterFragmentPredicate, visitFilterPredicate, visitFormat, visitForUpdateClause, visitFromClause, visitGroupByClause, visitGroupedPredicate, visitHavingClause, visitInArrayPredicate, visitInListPredicate, visitInsertStatement, visitInsertStatementOnly, visitInSubQueryPredicate, visitJdbcLiteral, visitJunction, visitLikePredicate, visitModifiedSubQueryExpression, visitNamedTableReference, visitNegatedPredicate, visitNullnessPredicate, visitOptionalTableUpdate, visitOverClause, visitOverClause, visitOverflow, visitParameter, visitParameterAsParameter, visitPartitionByClause, visitPartitionExpressions, visitPartitionExpressions, visitQueryLiteral, visitRecursivePath, visitRelationalPredicate, visitReturningColumns, visitReturningColumns, visitSelectClause, visitSelectStatement, visitSelfRenderingExpression, visitSelfRenderingPredicate, visitSortSpecification, visitSortSpecification, visitSqlFragmentPredicate, visitSqlSelectExpression, visitSqlSelectionExpression, visitSqlSelections, visitStandardTableDelete, visitStandardTableInsert, visitStandardTableUpdate, visitStar, visitSummarization, visitTableGroup, visitTableGroupJoin, visitTableReferenceJoin, visitThruthnessPredicate, visitTrimSpecification, visitTuple, visitUnaryOperationExpression, visitUnparsedNumericLiteral, visitUpdateStatement, visitUpdateStatementOnly, visitValuesListEmulateSelectUnion, visitValuesListStandard, visitWhereClause, withParameterRenderingMode, withRowNumbering
    • Constructor Detail

      • OracleLegacySqlAstTranslator

        public OracleLegacySqlAstTranslator​(org.hibernate.engine.spi.SessionFactoryImplementor sessionFactory,
                                            org.hibernate.sql.ast.tree.Statement statement)
    • Method Detail

      • needsRecursiveKeywordInWithClause

        protected boolean needsRecursiveKeywordInWithClause()
        Overrides:
        needsRecursiveKeywordInWithClause in class org.hibernate.sql.ast.spi.AbstractSqlAstTranslator<T extends org.hibernate.sql.exec.spi.JdbcOperation>
      • supportsWithClauseInSubquery

        protected boolean supportsWithClauseInSubquery()
        Overrides:
        supportsWithClauseInSubquery in class org.hibernate.sql.ast.spi.AbstractSqlAstTranslator<T extends org.hibernate.sql.exec.spi.JdbcOperation>
      • supportsRecursiveSearchClause

        protected boolean supportsRecursiveSearchClause()
        Overrides:
        supportsRecursiveSearchClause in class org.hibernate.sql.ast.spi.AbstractSqlAstTranslator<T extends org.hibernate.sql.exec.spi.JdbcOperation>
      • supportsRecursiveCycleClause

        protected boolean supportsRecursiveCycleClause()
        Overrides:
        supportsRecursiveCycleClause in class org.hibernate.sql.ast.spi.AbstractSqlAstTranslator<T extends org.hibernate.sql.exec.spi.JdbcOperation>
      • visitSqlSelection

        public void visitSqlSelection​(org.hibernate.sql.ast.spi.SqlSelection sqlSelection)
        Specified by:
        visitSqlSelection in interface org.hibernate.sql.ast.SqlAstWalker
        Overrides:
        visitSqlSelection in class org.hibernate.sql.ast.spi.AbstractSqlAstTranslator<T extends org.hibernate.sql.exec.spi.JdbcOperation>
      • determineLockingStrategy

        protected org.hibernate.sql.ast.spi.AbstractSqlAstTranslator.LockStrategy determineLockingStrategy​(org.hibernate.sql.ast.tree.select.QuerySpec querySpec,
                                                                                                           org.hibernate.sql.ast.spi.AbstractSqlAstTranslator.ForUpdateClause forUpdateClause,
                                                                                                           Boolean followOnLocking)
        Overrides:
        determineLockingStrategy in class org.hibernate.sql.ast.spi.AbstractSqlAstTranslator<T extends org.hibernate.sql.exec.spi.JdbcOperation>
      • shouldEmulateLateralWithIntersect

        protected boolean shouldEmulateLateralWithIntersect​(org.hibernate.sql.ast.tree.select.QueryPart queryPart)
        Overrides:
        shouldEmulateLateralWithIntersect in class org.hibernate.sql.ast.spi.AbstractSqlAstTranslator<T extends org.hibernate.sql.exec.spi.JdbcOperation>
      • supportsNestedSubqueryCorrelation

        protected boolean supportsNestedSubqueryCorrelation()
        Overrides:
        supportsNestedSubqueryCorrelation in class org.hibernate.sql.ast.spi.AbstractSqlAstTranslator<T extends org.hibernate.sql.exec.spi.JdbcOperation>
      • shouldEmulateFetchClause

        protected boolean shouldEmulateFetchClause​(org.hibernate.sql.ast.tree.select.QueryPart queryPart)
      • visitOrderBy

        protected void visitOrderBy​(List<org.hibernate.sql.ast.tree.select.SortSpecification> sortSpecifications)
        Overrides:
        visitOrderBy in class org.hibernate.sql.ast.spi.AbstractSqlAstTranslator<T extends org.hibernate.sql.exec.spi.JdbcOperation>
      • visitValuesList

        protected void visitValuesList​(List<org.hibernate.sql.ast.tree.insert.Values> valuesList)
        Overrides:
        visitValuesList in class org.hibernate.sql.ast.spi.AbstractSqlAstTranslator<T extends org.hibernate.sql.exec.spi.JdbcOperation>
      • visitValuesTableReference

        public void visitValuesTableReference​(org.hibernate.sql.ast.tree.from.ValuesTableReference tableReference)
        Specified by:
        visitValuesTableReference in interface org.hibernate.sql.ast.SqlAstWalker
        Overrides:
        visitValuesTableReference in class org.hibernate.sql.ast.spi.AbstractSqlAstTranslator<T extends org.hibernate.sql.exec.spi.JdbcOperation>
      • visitQueryPartTableReference

        public void visitQueryPartTableReference​(org.hibernate.sql.ast.tree.from.QueryPartTableReference tableReference)
        Specified by:
        visitQueryPartTableReference in interface org.hibernate.sql.ast.SqlAstWalker
        Overrides:
        visitQueryPartTableReference in class org.hibernate.sql.ast.spi.AbstractSqlAstTranslator<T extends org.hibernate.sql.exec.spi.JdbcOperation>
      • visitFunctionTableReference

        public void visitFunctionTableReference​(org.hibernate.sql.ast.tree.from.FunctionTableReference tableReference)
        Specified by:
        visitFunctionTableReference in interface org.hibernate.sql.ast.SqlAstWalker
        Overrides:
        visitFunctionTableReference in class org.hibernate.sql.ast.spi.AbstractSqlAstTranslator<T extends org.hibernate.sql.exec.spi.JdbcOperation>
      • visitQueryGroup

        public void visitQueryGroup​(org.hibernate.sql.ast.tree.select.QueryGroup queryGroup)
        Specified by:
        visitQueryGroup in interface org.hibernate.sql.ast.SqlAstWalker
        Overrides:
        visitQueryGroup in class org.hibernate.sql.ast.spi.AbstractSqlAstTranslator<T extends org.hibernate.sql.exec.spi.JdbcOperation>
      • visitQuerySpec

        public void visitQuerySpec​(org.hibernate.sql.ast.tree.select.QuerySpec querySpec)
        Specified by:
        visitQuerySpec in interface org.hibernate.sql.ast.SqlAstWalker
        Overrides:
        visitQuerySpec in class org.hibernate.sql.ast.spi.AbstractSqlAstTranslator<T extends org.hibernate.sql.exec.spi.JdbcOperation>
      • visitOffsetFetchClause

        public void visitOffsetFetchClause​(org.hibernate.sql.ast.tree.select.QueryPart queryPart)
        Specified by:
        visitOffsetFetchClause in interface org.hibernate.sql.ast.SqlAstWalker
        Overrides:
        visitOffsetFetchClause in class org.hibernate.sql.ast.spi.AbstractSqlAstTranslator<T extends org.hibernate.sql.exec.spi.JdbcOperation>
      • renderRowNumber

        protected void renderRowNumber​(org.hibernate.sql.ast.tree.select.SelectClause selectClause,
                                       org.hibernate.sql.ast.tree.select.QueryPart queryPart)
        Overrides:
        renderRowNumber in class org.hibernate.sql.ast.spi.AbstractSqlAstTranslator<T extends org.hibernate.sql.exec.spi.JdbcOperation>
      • visitOver

        public void visitOver​(org.hibernate.sql.ast.tree.expression.Over<?> over)
        Specified by:
        visitOver in interface org.hibernate.sql.ast.SqlAstWalker
        Overrides:
        visitOver in class org.hibernate.sql.ast.spi.AbstractSqlAstTranslator<T extends org.hibernate.sql.exec.spi.JdbcOperation>
      • renderComparison

        protected void renderComparison​(org.hibernate.sql.ast.tree.expression.Expression lhs,
                                        org.hibernate.query.sqm.ComparisonOperator operator,
                                        org.hibernate.sql.ast.tree.expression.Expression rhs)
        Overrides:
        renderComparison in class org.hibernate.sql.ast.spi.AbstractSqlAstTranslator<T extends org.hibernate.sql.exec.spi.JdbcOperation>
      • renderSelectTupleComparison

        protected void renderSelectTupleComparison​(List<org.hibernate.sql.ast.spi.SqlSelection> lhsExpressions,
                                                   org.hibernate.sql.ast.tree.expression.SqlTuple tuple,
                                                   org.hibernate.query.sqm.ComparisonOperator operator)
        Overrides:
        renderSelectTupleComparison in class org.hibernate.sql.ast.spi.AbstractSqlAstTranslator<T extends org.hibernate.sql.exec.spi.JdbcOperation>
      • visitCaseSearchedExpression

        protected void visitCaseSearchedExpression​(org.hibernate.sql.ast.tree.expression.CaseSearchedExpression caseSearchedExpression,
                                                   boolean inSelect)
        Overrides:
        visitCaseSearchedExpression in class org.hibernate.sql.ast.spi.AbstractSqlAstTranslator<T extends org.hibernate.sql.exec.spi.JdbcOperation>
      • renderPartitionItem

        protected void renderPartitionItem​(org.hibernate.sql.ast.tree.expression.Expression expression)
        Overrides:
        renderPartitionItem in class org.hibernate.sql.ast.spi.AbstractSqlAstTranslator<T extends org.hibernate.sql.exec.spi.JdbcOperation>
      • supportsDuplicateSelectItemsInQueryGroup

        protected boolean supportsDuplicateSelectItemsInQueryGroup()
        Overrides:
        supportsDuplicateSelectItemsInQueryGroup in class org.hibernate.sql.ast.spi.AbstractSqlAstTranslator<T extends org.hibernate.sql.exec.spi.JdbcOperation>
      • supportsRowValueConstructorSyntax

        protected boolean supportsRowValueConstructorSyntax()
        Overrides:
        supportsRowValueConstructorSyntax in class org.hibernate.sql.ast.spi.AbstractSqlAstTranslator<T extends org.hibernate.sql.exec.spi.JdbcOperation>
      • supportsRowValueConstructorSyntaxInInList

        protected boolean supportsRowValueConstructorSyntaxInInList()
        Overrides:
        supportsRowValueConstructorSyntaxInInList in class org.hibernate.sql.ast.spi.AbstractSqlAstTranslator<T extends org.hibernate.sql.exec.spi.JdbcOperation>
      • supportsRowValueConstructorSyntaxInQuantifiedPredicates

        protected boolean supportsRowValueConstructorSyntaxInQuantifiedPredicates()
        Overrides:
        supportsRowValueConstructorSyntaxInQuantifiedPredicates in class org.hibernate.sql.ast.spi.AbstractSqlAstTranslator<T extends org.hibernate.sql.exec.spi.JdbcOperation>
      • supportsRowValueConstructorSyntaxInInSubQuery

        protected boolean supportsRowValueConstructorSyntaxInInSubQuery()
        Overrides:
        supportsRowValueConstructorSyntaxInInSubQuery in class org.hibernate.sql.ast.spi.AbstractSqlAstTranslator<T extends org.hibernate.sql.exec.spi.JdbcOperation>
      • getFromDual

        protected String getFromDual()
        Overrides:
        getFromDual in class org.hibernate.sql.ast.spi.AbstractSqlAstTranslator<T extends org.hibernate.sql.exec.spi.JdbcOperation>
      • getFromDualForSelectOnly

        protected String getFromDualForSelectOnly()
        Overrides:
        getFromDualForSelectOnly in class org.hibernate.sql.ast.spi.AbstractSqlAstTranslator<T extends org.hibernate.sql.exec.spi.JdbcOperation>
      • visitSetAssignment

        protected void visitSetAssignment​(org.hibernate.sql.ast.tree.update.Assignment assignment)
        Overrides:
        visitSetAssignment in class org.hibernate.sql.ast.spi.AbstractSqlAstTranslator<T extends org.hibernate.sql.exec.spi.JdbcOperation>