Class SQLServerLegacySqlAstTranslator<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 SQLServerLegacySqlAstTranslator<T extends org.hibernate.sql.exec.spi.JdbcOperation>
    extends org.hibernate.sql.ast.spi.AbstractSqlAstTranslator<T>
    A SQL AST translator for SQL Server.
    • 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
      SQLServerLegacySqlAstTranslator​(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.community.dialect.SQLServerLegacySqlAstTranslator.OffsetFetchClauseMode getOffsetFetchClauseMode​(org.hibernate.sql.ast.tree.select.QueryPart queryPart)  
      protected boolean needsRecursiveKeywordInWithClause()  
      protected boolean needsRowsToSkip()  
      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 renderEmptyOrderBy()  
      protected void renderForUpdateClause​(org.hibernate.sql.ast.tree.select.QuerySpec querySpec, org.hibernate.sql.ast.spi.AbstractSqlAstTranslator.ForUpdateClause forUpdateClause)  
      protected boolean renderNamedTableReference​(org.hibernate.sql.ast.tree.from.NamedTableReference tableReference, org.hibernate.LockMode lockMode)  
      protected void renderOrderBy​(boolean addWhitespace, List<org.hibernate.sql.ast.tree.select.SortSpecification> sortSpecifications)  
      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 void renderTableGroupJoin​(org.hibernate.sql.ast.tree.from.TableGroupJoin tableGroupJoin, List<org.hibernate.sql.ast.tree.from.TableGroupJoin> tableGroupJoinCollector)  
      protected boolean shouldEmulateFetchClause​(org.hibernate.sql.ast.tree.select.QueryPart queryPart)  
      protected boolean supportsRowValueConstructorSyntax()  
      protected boolean supportsRowValueConstructorSyntaxInInList()  
      protected boolean supportsRowValueConstructorSyntaxInQuantifiedPredicates()  
      protected boolean supportsSimpleQueryGrouping()  
      protected boolean supportsWithClauseInSubquery()  
      void visitBinaryArithmeticExpression​(org.hibernate.sql.ast.tree.expression.BinaryArithmeticExpression arithmeticExpression)  
      void visitOffsetFetchClause​(org.hibernate.sql.ast.tree.select.QueryPart queryPart)  
      void visitQueryGroup​(org.hibernate.sql.ast.tree.select.QueryGroup queryGroup)  
      void visitQuerySpec​(org.hibernate.sql.ast.tree.select.QuerySpec querySpec)  
      void visitSelectClause​(org.hibernate.sql.ast.tree.select.SelectClause selectClause)  
      protected void visitSqlSelections​(org.hibernate.sql.ast.tree.select.SelectClause selectClause)  
      • 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, determineWhereClauseRestrictionWithJoinEmulation, emulateCycleClauseWithRowAndArray, emulateFetchOffsetWithWindowFunctions, emulateFetchOffsetWithWindowFunctions, emulateFetchOffsetWithWindowFunctionsVisitQueryPart, emulateQuantifiedTupleSubQueryPredicate, emulateQueryPartTableReferenceColumnAliasing, emulateSearchClauseOrderWithRowAndArray, emulateSelectTupleComparison, emulateSortSpecificationNullPrecedence, emulateSubQueryRelationalRestrictionPredicate, emulateTupleComparison, emulateValuesTableReferenceColumnAliasing, getAffectedTableNames, getAppliedParameterBindings, getArrayContainsFunction, getBooleanType, getClauseStack, getCteStatement, getCurrentClauseStack, getCurrentCteStatement, getCurrentDmlStatement, getCurrentQueryPart, getDialect, getDmlTargetTableAlias, getEffectiveLockMode, getEffectiveLockMode, getEffectiveLockTimeout, getFetchClauseTypeForRowNumbering, getForShare, getForUpdate, getForUpdateWithClause, getFromDual, getFromDualForSelectOnly, 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, getStatement, getStringType, getWrapperOptions, hasAggregateFunctions, hasLimit, hasLimit, hasNestedTableGroupsToRender, hasOffset, inlineCteTableGroup, inOverOrWithinGroupClause, interpretExpression, isCorrelated, isInRecursiveQueryPart, isLiteral, isParameter, isRowNumberingCurrentQueryPart, isRowsOnlyFetchClauseType, isStruct, needsCteInlining, needsLocking, needsMaxRows, prepareLimitOffsetParameters, processNestedTableGroupJoins, processTableGroupJoin, processTableGroupJoins, registerAffectedTable, registerAffectedTable, render, renderAsLiteral, renderBackslashEscapedLikePattern, renderCaseInsensitiveLikeEmulation, renderCasted, renderCombinedLimitClause, renderCombinedLimitClause, renderCommaSeparated, renderCommaSeparatedSelectExpression, renderCommaSeparatedSelectExpression, renderComparisonDistinctOperator, renderComparisonEmulateCase, renderComparisonEmulateDecode, renderComparisonEmulateIntersect, renderComparisonStandard, renderCteColumns, renderCycleClause, renderDerivedTableReference, renderExpressionAsClauseItem, renderExpressionAsLiteral, renderExpressionsAsSubquery, renderFetch, renderFetchExpression, renderFetchPlusOffsetExpression, renderFetchPlusOffsetExpressionAsLiteral, renderFetchPlusOffsetExpressionAsSingleParameter, renderFirstClause, renderFirstClause, renderFirstSkipClause, renderFirstSkipClause, renderInsertIntoNoColumns, renderIntoIntoAndTable, renderLimitOffsetClause, renderLimitOffsetClause, renderLiteral, renderMaterializationHint, renderOffset, renderOffsetExpression, renderOffsetFetchClause, renderOffsetFetchClause, renderParameterAsParameter, renderParameterAsParameter, renderQueryGroup, renderRecursiveCteVirtualSelections, renderRootTableGroup, renderRowNumber, renderRowNumberingSelectItems, renderRowsToClause, renderRowsToClause, renderSearchClause, renderSelectExpression, renderSelectExpressionWithCastedOrInlinedPlainParameters, renderSelectSimpleComparison, renderSetClause, renderSkipFirstClause, renderSkipFirstClause, rendersTableReferenceAlias, renderStandardCycleClause, renderStandardSearchClause, renderTableGroup, renderTableReferenceIdentificationVariable, renderTableReferenceJoins, renderTopClause, renderTopClause, renderTopStartAtClause, renderTopStartAtClause, renderTupleComparisonStandard, renderVirtualSelections, resolveAliasedExpression, resolveAliasedExpression, resolveExpressionToAlias, setLimitParameter, setOffsetParameter, shouldEmulateLateralWithIntersect, shouldInlineCte, simpleColumnWriteFragmentRendering, supportsArrayConstructor, supportsDistinctFromPredicate, supportsDuplicateSelectItemsInQueryGroup, supportsFilterClause, supportsIntersect, supportsJoinInMutationStatementSubquery, supportsNestedSubqueryCorrelation, supportsNestedWithClause, supportsNullPrecedence, supportsQuantifiedPredicates, supportsRecursiveClauseArrayAndRowEmulation, supportsRecursiveCycleClause, supportsRecursiveCycleUsingClause, supportsRecursiveSearchClause, supportsRowConstructor, supportsRowValueConstructorDistinctFromSyntax, supportsRowValueConstructorGtLtSyntax, supportsRowValueConstructorSyntaxInInSubQuery, supportsRowValueConstructorSyntaxInSet, supportsWithClause, translate, translateDelete, translateInsert, translateSelect, translateUpdate, useOffsetFetchClause, visitAggregateColumnWriteExpression, visitAnsiCaseSearchedExpression, visitAnsiCaseSimpleExpression, visitAny, visitAssignment, visitBetweenPredicate, visitBooleanExpressionPredicate, visitCaseSearchedExpression, visitCaseSearchedExpression, visitCaseSimpleExpression, visitCaseSimpleExpression, visitCastTarget, visitCollation, visitColumnReference, visitColumnWriteFragment, visitConversion, visitCteContainer, visitCteDefinition, visitCustomTableDelete, visitCustomTableInsert, visitCustomTableUpdate, visitDecodeCaseSearchedExpression, visitDeleteStatement, visitDeleteStatementOnly, visitDistinct, visitDuration, visitDurationUnit, visitEntityTypeLiteral, visitEvery, visitExistsPredicate, visitExtractUnit, visitFilterFragmentPredicate, visitFilterPredicate, visitFormat, visitForUpdateClause, visitFromClause, visitFunctionTableReference, visitGroupByClause, visitGroupedPredicate, visitHavingClause, visitInArrayPredicate, visitInListPredicate, visitInsertStatement, visitInsertStatementOnly, visitInSubQueryPredicate, visitJdbcLiteral, visitJunction, visitLikePredicate, visitModifiedSubQueryExpression, visitNamedTableReference, visitNegatedPredicate, visitNullnessPredicate, visitOrderBy, visitOver, visitOverClause, visitOverClause, visitOverflow, visitParameter, visitParameterAsParameter, visitPartitionByClause, visitPartitionExpressions, visitPartitionExpressions, visitQueryLiteral, visitQueryPartTableReference, visitRecursivePath, visitRelationalPredicate, visitReturningColumns, visitReturningColumns, visitSelectStatement, visitSelfRenderingExpression, visitSelfRenderingPredicate, visitSetAssignment, visitSortSpecification, visitSortSpecification, visitSqlFragmentPredicate, visitSqlSelectExpression, visitSqlSelection, visitSqlSelectionExpression, visitStandardTableDelete, visitStandardTableInsert, visitStandardTableUpdate, visitStar, visitSummarization, visitTableGroup, visitTableGroupJoin, visitTableReferenceJoin, visitTrimSpecification, visitTuple, visitUnaryOperationExpression, visitUpdateStatement, visitUpdateStatementOnly, visitValuesList, visitValuesTableReference, visitWhereClause, withParameterRenderingMode, withRowNumbering
    • Constructor Detail

      • SQLServerLegacySqlAstTranslator

        public SQLServerLegacySqlAstTranslator​(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>
      • renderTableGroupJoin

        protected void renderTableGroupJoin​(org.hibernate.sql.ast.tree.from.TableGroupJoin tableGroupJoin,
                                            List<org.hibernate.sql.ast.tree.from.TableGroupJoin> tableGroupJoinCollector)
        Overrides:
        renderTableGroupJoin 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>
      • renderNamedTableReference

        protected boolean renderNamedTableReference​(org.hibernate.sql.ast.tree.from.NamedTableReference tableReference,
                                                    org.hibernate.LockMode lockMode)
        Overrides:
        renderNamedTableReference in class org.hibernate.sql.ast.spi.AbstractSqlAstTranslator<T extends org.hibernate.sql.exec.spi.JdbcOperation>
      • renderForUpdateClause

        protected void renderForUpdateClause​(org.hibernate.sql.ast.tree.select.QuerySpec querySpec,
                                             org.hibernate.sql.ast.spi.AbstractSqlAstTranslator.ForUpdateClause forUpdateClause)
        Overrides:
        renderForUpdateClause in class org.hibernate.sql.ast.spi.AbstractSqlAstTranslator<T extends org.hibernate.sql.exec.spi.JdbcOperation>
      • getOffsetFetchClauseMode

        protected org.hibernate.community.dialect.SQLServerLegacySqlAstTranslator.OffsetFetchClauseMode getOffsetFetchClauseMode​(org.hibernate.sql.ast.tree.select.QueryPart queryPart)
      • supportsSimpleQueryGrouping

        protected boolean supportsSimpleQueryGrouping()
        Overrides:
        supportsSimpleQueryGrouping 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)
      • 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>
      • visitSelectClause

        public void visitSelectClause​(org.hibernate.sql.ast.tree.select.SelectClause selectClause)
        Specified by:
        visitSelectClause in interface org.hibernate.sql.ast.SqlAstWalker
        Overrides:
        visitSelectClause in class org.hibernate.sql.ast.spi.AbstractSqlAstTranslator<T extends org.hibernate.sql.exec.spi.JdbcOperation>
      • needsRowsToSkip

        protected boolean needsRowsToSkip()
        Overrides:
        needsRowsToSkip 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>
      • renderOrderBy

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

        protected void renderEmptyOrderBy()
      • 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>
      • 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>
      • 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>
      • 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>