Class H2LegacySqlAstTranslator<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 H2LegacySqlAstTranslator<T extends org.hibernate.sql.exec.spi.JdbcOperation>
    extends org.hibernate.sql.ast.spi.AbstractSqlAstTranslator<T>
    A legacy SQL AST translator for H2.
    • 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, COMA_SEPARATOR, COMA_SEPARATOR_CHAR, NO_SEPARATOR, NULL_KEYWORD, OPEN_PARENTHESIS, PARAM_MARKER, WHITESPACE
    • Constructor Summary

      Constructors 
      Constructor Description
      H2LegacySqlAstTranslator​(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 String getArrayContainsFunction()  
      protected String getFromDual()  
      protected boolean needsCteInlining()  
      protected void renderExpressionAsClauseItem​(org.hibernate.sql.ast.tree.expression.Expression expression)  
      protected void renderPartitionItem​(org.hibernate.sql.ast.tree.expression.Expression expression)  
      protected boolean renderPrimaryTableReference​(org.hibernate.sql.ast.tree.from.TableGroup tableGroup, org.hibernate.LockMode lockMode)  
      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 shouldInlineCte​(org.hibernate.sql.ast.tree.from.TableGroup tableGroup)  
      protected boolean supportsArrayConstructor()  
      protected boolean supportsNullPrecedence()  
      protected boolean supportsRowConstructor()  
      protected boolean supportsRowValueConstructorDistinctFromSyntax()  
      protected boolean supportsRowValueConstructorSyntax()  
      protected boolean supportsRowValueConstructorSyntaxInInList()  
      protected boolean supportsRowValueConstructorSyntaxInQuantifiedPredicates()  
      protected boolean supportsWithClauseInSubquery()  
      void visitBinaryArithmeticExpression​(org.hibernate.sql.ast.tree.expression.BinaryArithmeticExpression arithmeticExpression)  
      void visitBooleanExpressionPredicate​(org.hibernate.sql.ast.tree.predicate.BooleanExpressionPredicate booleanExpressionPredicate)  
      void visitCteContainer​(org.hibernate.sql.ast.tree.cte.CteContainer cteContainer)  
      void visitInSubQueryPredicate​(org.hibernate.sql.ast.tree.predicate.InSubQueryPredicate inSubQueryPredicate)  
      void visitLikePredicate​(org.hibernate.sql.ast.tree.predicate.LikePredicate likePredicate)  
      void visitOffsetFetchClause​(org.hibernate.sql.ast.tree.select.QueryPart queryPart)  
      protected void visitReturningColumns​(List<org.hibernate.sql.ast.tree.expression.ColumnReference> returningColumns)  
      void visitReturningInsertStatement​(org.hibernate.sql.model.internal.TableInsertStandard tableInsert)  
      protected void visitSqlSelections​(org.hibernate.sql.ast.tree.select.SelectClause selectClause)  
      void visitStandardTableInsert​(org.hibernate.sql.model.internal.TableInsertStandard tableInsert)  
      • 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, determineLockingStrategy, emulateCycleClauseWithRowAndArray, emulateFetchOffsetWithWindowFunctions, emulateFetchOffsetWithWindowFunctions, emulateFetchOffsetWithWindowFunctionsVisitQueryPart, emulateQuantifiedTupleSubQueryPredicate, emulateQueryPartTableReferenceColumnAliasing, emulateSearchClauseOrderWithRowAndArray, emulateSelectTupleComparison, emulateSortSpecificationNullPrecedence, emulateSubQueryRelationalRestrictionPredicate, emulateTupleComparison, emulateValuesTableReferenceColumnAliasing, getAffectedTableNames, getAppliedParameterBindings, getBooleanType, getClauseStack, getCteStatement, getCurrentClauseStack, getCurrentCteStatement, getCurrentDmlStatement, getCurrentQueryPart, getDialect, getDmlTargetTableAlias, getEffectiveLockMode, getEffectiveLockTimeout, getFetchClauseTypeForRowNumbering, getFilterJdbcParameters, getForShare, getForUpdate, getForUpdateWithClause, getFromDualForSelectOnly, getIntegerType, getJdbcLockStrategy, getJdbcParameterBindings, getJdbcServices, getLeftHandExpression, getLimit, getLimitParameter, getLockOptions, getMaxRows, getNoWait, getOffsetParameter, getParameterBinders, getParameterBindValue, getParameterRenderingMode, getQueryPartForRowNumbering, getQueryPartStack, getRowsToSkip, getSelectItemReference, getSessionFactory, getSkipLocked, getSortSpecificationsRowNumbering, getSql, getSqlAppender, getStatement, getStringType, getWrapperOptions, hasAggregateFunctions, hasLimit, hasNestedTableGroupsToRender, hasOffset, inlineCteTableGroup, inOverOrWithinGroupClause, interpretExpression, isCorrelated, isInRecursiveQueryPart, isLiteral, isParameter, isRowNumberingCurrentQueryPart, isRowsOnlyFetchClauseType, isStruct, needsMaxRows, needsRecursiveKeywordInWithClause, needsRowsToSkip, prepareLimitOffsetParameters, processNestedTableGroupJoins, processTableGroupJoin, processTableGroupJoins, registerAffectedTable, registerAffectedTable, render, renderAsLiteral, renderBackslashEscapedLikePattern, renderCaseInsensitiveLikeEmulation, renderCasted, renderCombinedLimitClause, renderCombinedLimitClause, renderCommaSeparated, renderCommaSeparatedSelectExpression, renderCommaSeparatedSelectExpression, renderComparison, renderComparisonDistinctOperator, renderComparisonEmulateCase, renderComparisonEmulateDecode, renderComparisonEmulateIntersect, renderComparisonStandard, renderCteColumns, renderCycleClause, renderDerivedTableReference, 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, renderQueryGroup, renderRecursiveCteVirtualSelections, renderRootTableGroup, renderRowNumber, renderRowNumberingSelectItems, renderRowsToClause, renderRowsToClause, renderSearchClause, renderSelectExpression, renderSelectExpressionWithCastedOrInlinedPlainParameters, renderSelectSimpleComparison, renderSetClause, renderSkipFirstClause, renderSkipFirstClause, rendersTableReferenceAlias, renderStandardCycleClause, renderStandardSearchClause, renderTableGroup, renderTableGroupJoin, renderTableReferenceIdentificationVariable, renderTableReferenceJoins, renderTopClause, renderTopClause, renderTopStartAtClause, renderTopStartAtClause, renderTupleComparisonStandard, renderVirtualSelections, resolveAliasedExpression, resolveAliasedExpression, resolveExpressionToAlias, setLimitParameter, setOffsetParameter, shouldEmulateLateralWithIntersect, supportsDistinctFromPredicate, supportsDuplicateSelectItemsInQueryGroup, supportsFilterClause, supportsIntersect, supportsNestedSubqueryCorrelation, supportsNestedWithClause, supportsQuantifiedPredicates, supportsRecursiveClauseArrayAndRowEmulation, supportsRecursiveCycleClause, supportsRecursiveCycleUsingClause, supportsRecursiveSearchClause, supportsRowValueConstructorGtLtSyntax, supportsRowValueConstructorSyntaxInInSubQuery, supportsRowValueConstructorSyntaxInSet, supportsSimpleQueryGrouping, supportsWithClause, translate, translateDelete, translateInsert, translateSelect, translateUpdate, useOffsetFetchClause, visitAggregateColumnWriteExpression, visitAnsiCaseSearchedExpression, visitAnsiCaseSimpleExpression, visitAny, visitAssignment, visitBetweenPredicate, visitCaseSearchedExpression, visitCaseSearchedExpression, visitCaseSimpleExpression, visitCaseSimpleExpression, visitCastTarget, visitCollation, visitColumnReference, visitColumnWriteFragment, visitConversion, visitCteDefinition, visitCustomTableDelete, visitCustomTableInsert, visitCustomTableUpdate, visitDecodeCaseSearchedExpression, visitDeleteStatement, visitDeleteStatementOnly, visitDistinct, visitDuration, visitDurationUnit, visitEntityTypeLiteral, visitEvery, visitExistsPredicate, visitExtractUnit, visitFilterFragmentPredicate, visitFilterPredicate, visitFormat, visitForUpdateClause, visitFromClause, visitFunctionTableReference, visitGroupByClause, visitGroupedPredicate, visitHavingClause, visitInListPredicate, visitInsertStatement, visitInsertStatementOnly, visitJdbcLiteral, visitJunction, visitModifiedSubQueryExpression, visitNamedTableReference, visitNegatedPredicate, visitNullnessPredicate, visitOrderBy, visitOver, visitOverClause, visitOverClause, visitOverflow, visitParameter, visitParameterAsParameter, visitPartitionByClause, visitPartitionExpressions, visitPartitionExpressions, visitQueryGroup, visitQueryLiteral, visitQueryPartTableReference, visitQuerySpec, visitRecursivePath, visitRelationalPredicate, visitReturningColumns, visitSelectClause, visitSelectStatement, visitSelfRenderingExpression, visitSelfRenderingPredicate, visitSetAssignment, visitSortSpecification, visitSortSpecification, visitSqlFragmentPredicate, visitSqlSelectExpression, visitSqlSelection, visitSqlSelectionExpression, visitStandardTableDelete, visitStandardTableUpdate, visitStar, visitSummarization, visitTableGroup, visitTableGroupJoin, visitTableReferenceJoin, visitTrimSpecification, visitTuple, visitUnaryOperationExpression, visitUpdateStatement, visitUpdateStatementOnly, visitValuesList, visitValuesTableReference, visitWhereClause, withParameterRenderingMode, withRowNumbering
    • Constructor Detail

      • H2LegacySqlAstTranslator

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

      • visitStandardTableInsert

        public void visitStandardTableInsert​(org.hibernate.sql.model.internal.TableInsertStandard tableInsert)
        Specified by:
        visitStandardTableInsert in interface org.hibernate.sql.ast.SqlAstWalker
        Overrides:
        visitStandardTableInsert in class org.hibernate.sql.ast.spi.AbstractSqlAstTranslator<T extends org.hibernate.sql.exec.spi.JdbcOperation>
      • visitReturningInsertStatement

        public void visitReturningInsertStatement​(org.hibernate.sql.model.internal.TableInsertStandard tableInsert)
      • visitReturningColumns

        protected void visitReturningColumns​(List<org.hibernate.sql.ast.tree.expression.ColumnReference> returningColumns)
        Overrides:
        visitReturningColumns in class org.hibernate.sql.ast.spi.AbstractSqlAstTranslator<T extends org.hibernate.sql.exec.spi.JdbcOperation>
      • visitCteContainer

        public void visitCteContainer​(org.hibernate.sql.ast.tree.cte.CteContainer cteContainer)
        Overrides:
        visitCteContainer in class org.hibernate.sql.ast.spi.AbstractSqlAstTranslator<T extends org.hibernate.sql.exec.spi.JdbcOperation>
      • needsCteInlining

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

        protected boolean shouldInlineCte​(org.hibernate.sql.ast.tree.from.TableGroup tableGroup)
        Overrides:
        shouldInlineCte 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>
      • supportsRowConstructor

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

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

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

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

        public void visitBooleanExpressionPredicate​(org.hibernate.sql.ast.tree.predicate.BooleanExpressionPredicate booleanExpressionPredicate)
        Specified by:
        visitBooleanExpressionPredicate in interface org.hibernate.sql.ast.SqlAstWalker
        Overrides:
        visitBooleanExpressionPredicate 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>
      • 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>
      • visitInSubQueryPredicate

        public void visitInSubQueryPredicate​(org.hibernate.sql.ast.tree.predicate.InSubQueryPredicate inSubQueryPredicate)
        Specified by:
        visitInSubQueryPredicate in interface org.hibernate.sql.ast.SqlAstWalker
        Overrides:
        visitInSubQueryPredicate in class org.hibernate.sql.ast.spi.AbstractSqlAstTranslator<T extends org.hibernate.sql.exec.spi.JdbcOperation>
      • visitSqlSelections

        protected void visitSqlSelections​(org.hibernate.sql.ast.tree.select.SelectClause selectClause)
        Overrides:
        visitSqlSelections 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>
      • visitBinaryArithmeticExpression

        public void visitBinaryArithmeticExpression​(org.hibernate.sql.ast.tree.expression.BinaryArithmeticExpression arithmeticExpression)
        Specified by:
        visitBinaryArithmeticExpression in interface org.hibernate.sql.ast.SqlAstWalker
        Overrides:
        visitBinaryArithmeticExpression in class org.hibernate.sql.ast.spi.AbstractSqlAstTranslator<T extends org.hibernate.sql.exec.spi.JdbcOperation>
      • renderPrimaryTableReference

        protected boolean renderPrimaryTableReference​(org.hibernate.sql.ast.tree.from.TableGroup tableGroup,
                                                      org.hibernate.LockMode lockMode)
        Overrides:
        renderPrimaryTableReference in class org.hibernate.sql.ast.spi.AbstractSqlAstTranslator<T extends org.hibernate.sql.exec.spi.JdbcOperation>
      • visitLikePredicate

        public void visitLikePredicate​(org.hibernate.sql.ast.tree.predicate.LikePredicate likePredicate)
        Specified by:
        visitLikePredicate in interface org.hibernate.sql.ast.SqlAstWalker
        Overrides:
        visitLikePredicate 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>
      • supportsRowValueConstructorDistinctFromSyntax

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

        protected boolean supportsNullPrecedence()
        Overrides:
        supportsNullPrecedence 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>