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

java.lang.Object
org.hibernate.sql.ast.spi.AbstractSqlAstTranslator<T>
org.hibernate.community.dialect.CockroachLegacySqlAstTranslator<T>
All Implemented Interfaces:
Appendable, org.hibernate.sql.ast.spi.SqlAppender, org.hibernate.sql.ast.SqlAstTranslator<T>, org.hibernate.sql.ast.SqlAstWalker

public class CockroachLegacySqlAstTranslator<T extends org.hibernate.sql.exec.spi.JdbcOperation> extends org.hibernate.sql.ast.spi.AbstractSqlAstTranslator<T>
A SQL AST translator for Cockroach.
  • 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
    CockroachLegacySqlAstTranslator(org.hibernate.engine.spi.SessionFactoryImplementor sessionFactory, org.hibernate.sql.ast.tree.Statement statement)
     
  • Method Summary

    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
    getForShare(int timeoutMillis)
     
    protected String
     
    protected void
    renderDmlTargetTableExpression(org.hibernate.sql.ast.tree.from.NamedTableReference tableReference)
     
    protected void
    renderExpressionAsClauseItem(org.hibernate.sql.ast.tree.expression.Expression expression)
     
    protected void
    renderForUpdateClause(org.hibernate.sql.ast.tree.select.QuerySpec querySpec, org.hibernate.sql.ast.spi.AbstractSqlAstTranslator.ForUpdateClause forUpdateClause)
     
    protected void
    renderFromClauseAfterUpdateSet(org.hibernate.sql.ast.tree.update.UpdateStatement statement)
     
    protected void
    renderMaterializationHint(org.hibernate.sql.ast.tree.cte.CteMaterialization materialization)
     
    protected void
    renderPartitionItem(org.hibernate.sql.ast.tree.expression.Expression expression)
     
    protected void
    renderTableReferenceIdentificationVariable(org.hibernate.sql.ast.tree.from.TableReference tableReference)
     
    protected boolean
    shouldEmulateFetchClause(org.hibernate.sql.ast.tree.select.QueryPart queryPart)
     
    protected boolean
     
    protected boolean
     
    protected boolean
     
    protected org.hibernate.sql.exec.spi.JdbcOperationQueryInsert
    translateInsert(org.hibernate.sql.ast.tree.insert.InsertSelectStatement sqlAst)
     
    void
    visitBinaryArithmeticExpression(org.hibernate.sql.ast.tree.expression.BinaryArithmeticExpression arithmeticExpression)
     
    void
    visitBooleanExpressionPredicate(org.hibernate.sql.ast.tree.predicate.BooleanExpressionPredicate booleanExpressionPredicate)
     
    protected void
    visitConflictClause(org.hibernate.sql.ast.tree.insert.ConflictClause conflictClause)
     
    void
    visitInArrayPredicate(org.hibernate.sql.ast.tree.predicate.InArrayPredicate inArrayPredicate)
     
    void
    visitLikePredicate(org.hibernate.sql.ast.tree.predicate.LikePredicate likePredicate)
     
    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)
     

    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, createRowMatchingPredicate, determineColumnReferenceQualifier, determineCyclePathColumnName, determineLateralEmulationPredicate, determineWhereClauseRestrictionWithJoinEmulation, determineWhereClauseRestrictionWithJoinEmulation, emulateCycleClauseWithRowAndArray, emulateFetchOffsetWithWindowFunctions, emulateFetchOffsetWithWindowFunctions, emulateFetchOffsetWithWindowFunctionsVisitQueryPart, emulateQuantifiedTupleSubQueryPredicate, emulateQueryPartTableReferenceColumnAliasing, emulateSearchClauseOrderWithRowAndArray, emulateSelectTupleComparison, emulateSortSpecificationNullPrecedence, emulateSubQueryRelationalRestrictionPredicate, emulateTupleComparison, emulateValuesTableReferenceColumnAliasing, getAffectedTableNames, getAppliedParameterBindings, getArrayContainsFunction, getBooleanType, getCastTypeName, getClauseStack, getCteStatement, getCurrentClauseStack, getCurrentCteStatement, getCurrentDmlStatement, getCurrentQueryPart, getDialect, getDual, getEffectiveLockMode, getEffectiveLockMode, getEffectiveLockTimeout, getFetchClauseTypeForRowNumbering, 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, getSqlBuffer, getSqlTypeName, getStatement, getStatementStack, getStringType, getUniqueConstraintNameThatMayFail, getWrapperOptions, hasAggregateFunctions, hasLimit, hasLimit, hasNestedTableGroupsToRender, hasNonTrivialFromClause, hasOffset, inlineCteTableGroup, inOverOrWithinGroupClause, interpretExpression, isCorrelated, isInRecursiveQueryPart, isInSubquery, isIntegerDivisionEmulationRequired, isLiteral, isParameter, isRowNumberingCurrentQueryPart, isRowsOnlyFetchClauseType, isStruct, needsCteInlining, needsLocking, needsMaxRows, needsRecursiveKeywordInWithClause, needsRowsToSkip, prepareLimitOffsetParameters, processNestedTableGroupJoins, processTableGroupJoin, processTableGroupJoins, registerAffectedTable, registerAffectedTable, render, renderAsLiteral, renderBackslashEscapedLikePattern, renderCaseInsensitiveLikeEmulation, renderCasted, renderCombinedLimitClause, renderCombinedLimitClause, renderCommaSeparated, renderCommaSeparatedSelectExpression, renderCommaSeparatedSelectExpression, renderComparison, renderComparisonDistinctOperator, renderComparisonEmulateCase, renderComparisonEmulateDecode, renderComparisonEmulateDecode, renderComparisonEmulateIntersect, renderComparisonStandard, renderCteColumns, renderCycleClause, renderDeleteClause, renderDerivedTableReference, renderDmlTargetTableGroup, renderExpressionAsLiteral, renderExpressionsAsSubquery, renderFetch, renderFetchExpression, renderFetchPlusOffsetExpression, renderFetchPlusOffsetExpressionAsLiteral, renderFetchPlusOffsetExpressionAsSingleParameter, renderFirstClause, renderFirstClause, renderFirstSkipClause, renderFirstSkipClause, renderFromClauseExcludingDmlTargetReference, renderFromClauseJoiningDmlTargetReference, renderFromClauseSpaces, renderInsertIntoNoColumns, renderIntoIntoAndTable, renderLimitOffsetClause, renderLimitOffsetClause, renderLiteral, renderMergeUpdateClause, renderNamedTableReference, renderNull, renderOffset, renderOffsetExpression, renderOffsetFetchClause, renderOffsetFetchClause, renderOrderBy, renderParameterAsParameter, renderParameterAsParameter, renderPrimaryTableReference, renderQueryGroup, renderRecursiveCteVirtualSelections, renderRootTableGroup, renderRowNumber, renderRowNumberingSelectItems, renderRowsToClause, renderRowsToClause, renderSearchClause, renderSelectExpression, renderSelectExpressionWithCastedOrInlinedPlainParameters, renderSelectSimpleComparison, renderSelectTupleComparison, renderSetClause, renderSkipFirstClause, renderSkipFirstClause, renderSortExpression, renderStandardCycleClause, renderStandardSearchClause, renderStringContainsExactlyPredicate, renderTableGroup, renderTableGroupJoin, renderTableReferenceJoins, renderTopClause, renderTopClause, renderTopStartAtClause, renderTopStartAtClause, renderTupleComparisonStandard, renderUpdateClause, renderVirtualSelections, resolveAliasedExpression, resolveAliasedExpression, resolveExpressionToAlias, setLimitParameter, setOffsetParameter, shouldEmulateLateralWithIntersect, shouldInlineCte, simpleColumnWriteFragmentRendering, supportsDistinctFromPredicate, supportsDuplicateSelectItemsInQueryGroup, supportsFilterClause, supportsIntersect, supportsJoinInMutationStatementSubquery, supportsJoinsInDelete, supportsNestedSubqueryCorrelation, supportsNestedWithClause, supportsNullPrecedence, supportsQuantifiedPredicates, supportsRecursiveClauseArrayAndRowEmulation, supportsRecursiveCycleClause, supportsRecursiveCycleUsingClause, supportsRecursiveSearchClause, supportsRowValueConstructorDistinctFromSyntax, supportsRowValueConstructorGtLtSyntax, supportsRowValueConstructorSyntax, supportsRowValueConstructorSyntaxInInList, supportsRowValueConstructorSyntaxInInSubQuery, supportsRowValueConstructorSyntaxInSet, supportsSimpleQueryGrouping, supportsWithClause, supportsWithClauseInSubquery, translate, translateDelete, translateSelect, translateUpdate, useOffsetFetchClause, visitAggregateColumnWriteExpression, visitAnsiCaseSearchedExpression, visitAnsiCaseSimpleExpression, visitAny, visitArithmeticOperand, visitAssignment, visitBetweenPredicate, visitCaseSearchedExpression, visitCaseSearchedExpression, visitCaseSimpleExpression, visitCaseSimpleExpression, visitCastTarget, visitCollation, visitColumnReference, visitColumnWriteFragment, visitConversion, visitCteContainer, visitCteDefinition, visitCteObject, visitCustomTableDelete, visitCustomTableInsert, visitCustomTableUpdate, visitDecodeCaseSearchedExpression, visitDeleteStatement, visitDeleteStatementOnly, visitDistinct, visitDuration, visitDurationUnit, visitEmbeddableTypeLiteral, visitEntityTypeLiteral, visitEvery, visitExistsPredicate, visitExtractUnit, visitFilterFragmentPredicate, visitFilterPredicate, visitFormat, visitForUpdateClause, visitFromClause, visitFunctionTableReference, visitGroupByClause, visitGroupedPredicate, visitHavingClause, visitInListPredicate, visitInsertSource, visitInsertStatement, visitInsertStatementEmulateMerge, visitInsertStatementOnly, visitInSubQueryPredicate, visitJdbcLiteral, visitJunction, visitModifiedSubQueryExpression, visitNamedTableReference, visitNegatedPredicate, visitNestedColumnReference, visitNullnessPredicate, visitOnDuplicateKeyConflictClause, visitOptionalTableUpdate, visitOrderBy, visitOver, visitOverClause, visitOverClause, visitOverflow, visitParameter, visitParameterAsParameter, visitPartitionByClause, visitPartitionExpressions, visitPartitionExpressions, visitQueryLiteral, visitQueryPartTableReference, visitRecursivePath, visitRelationalPredicate, visitReturningColumns, visitReturningColumns, visitSelectClause, visitSelectStatement, visitSelfRenderingExpression, visitSelfRenderingPredicate, visitSetAssignment, visitSetAssignmentEmulateJoin, visitSortSpecification, visitSortSpecification, visitSqlFragmentPredicate, visitSqlSelectExpression, visitSqlSelection, visitSqlSelectionExpression, visitSqlSelections, visitStandardConflictClause, visitStandardTableDelete, visitStandardTableInsert, visitStandardTableUpdate, visitStar, visitSummarization, visitTableGroup, visitTableGroupJoin, visitTableReferenceJoin, visitThruthnessPredicate, visitTrimSpecification, visitTuple, visitUnaryOperationExpression, visitUnparsedNumericLiteral, visitUpdateStatement, visitUpdateStatementEmulateInlineView, visitUpdateStatementEmulateMerge, visitUpdateStatementEmulateTupleSet, visitUpdateStatementOnly, visitValuesList, visitValuesListEmulateSelectUnion, visitValuesListStandard, visitValuesTableReference, visitWhereClause, withParameterRenderingMode, withRowNumbering

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • CockroachLegacySqlAstTranslator

      public CockroachLegacySqlAstTranslator(org.hibernate.engine.spi.SessionFactoryImplementor sessionFactory, org.hibernate.sql.ast.tree.Statement statement)
  • Method Details

    • 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>
    • translateInsert

      protected org.hibernate.sql.exec.spi.JdbcOperationQueryInsert translateInsert(org.hibernate.sql.ast.tree.insert.InsertSelectStatement sqlAst)
      Overrides:
      translateInsert in class org.hibernate.sql.ast.spi.AbstractSqlAstTranslator<T extends org.hibernate.sql.exec.spi.JdbcOperation>
    • renderTableReferenceIdentificationVariable

      protected void renderTableReferenceIdentificationVariable(org.hibernate.sql.ast.tree.from.TableReference tableReference)
      Overrides:
      renderTableReferenceIdentificationVariable in class org.hibernate.sql.ast.spi.AbstractSqlAstTranslator<T extends org.hibernate.sql.exec.spi.JdbcOperation>
    • renderDmlTargetTableExpression

      protected void renderDmlTargetTableExpression(org.hibernate.sql.ast.tree.from.NamedTableReference tableReference)
      Overrides:
      renderDmlTargetTableExpression in class org.hibernate.sql.ast.spi.AbstractSqlAstTranslator<T extends org.hibernate.sql.exec.spi.JdbcOperation>
    • renderFromClauseAfterUpdateSet

      protected void renderFromClauseAfterUpdateSet(org.hibernate.sql.ast.tree.update.UpdateStatement statement)
      Overrides:
      renderFromClauseAfterUpdateSet in class org.hibernate.sql.ast.spi.AbstractSqlAstTranslator<T extends org.hibernate.sql.exec.spi.JdbcOperation>
    • visitConflictClause

      protected void visitConflictClause(org.hibernate.sql.ast.tree.insert.ConflictClause conflictClause)
      Overrides:
      visitConflictClause 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>
    • renderMaterializationHint

      protected void renderMaterializationHint(org.hibernate.sql.ast.tree.cte.CteMaterialization materialization)
      Overrides:
      renderMaterializationHint 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>
    • getForShare

      protected String getForShare(int timeoutMillis)
      Overrides:
      getForShare in class org.hibernate.sql.ast.spi.AbstractSqlAstTranslator<T extends org.hibernate.sql.exec.spi.JdbcOperation>
    • getForUpdate

      protected String getForUpdate()
      Overrides:
      getForUpdate 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>
    • 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>
    • 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>
    • 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>
    • 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>
    • 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>
    • supportsRowValueConstructorSyntaxInQuantifiedPredicates

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

      public void visitInArrayPredicate(org.hibernate.sql.ast.tree.predicate.InArrayPredicate inArrayPredicate)
      Specified by:
      visitInArrayPredicate in interface org.hibernate.sql.ast.SqlAstWalker
      Overrides:
      visitInArrayPredicate in class org.hibernate.sql.ast.spi.AbstractSqlAstTranslator<T extends org.hibernate.sql.exec.spi.JdbcOperation>