Package org.hibernate.community.dialect
Class TiDBSqlAstTranslator<T extends org.hibernate.sql.exec.spi.JdbcOperation>
java.lang.Object
org.hibernate.sql.ast.spi.AbstractSqlAstTranslator<T>
org.hibernate.community.dialect.TiDBSqlAstTranslator<T>
- All Implemented Interfaces:
Appendable,org.hibernate.sql.ast.spi.SqlAppender,org.hibernate.sql.ast.SqlAstTranslator<T>,org.hibernate.sql.ast.SqlAstWalker
public class TiDBSqlAstTranslator<T extends org.hibernate.sql.exec.spi.JdbcOperation>
extends org.hibernate.sql.ast.spi.AbstractSqlAstTranslator<T>
A SQL AST translator for TiDB.
-
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
ConstructorsConstructorDescriptionTiDBSqlAstTranslator(org.hibernate.engine.spi.SessionFactoryImplementor sessionFactory, org.hibernate.sql.ast.tree.Statement statement, TiDBDialect dialect) -
Method Summary
Modifier and TypeMethodDescriptionprotected StringdetermineColumnReferenceQualifier(org.hibernate.sql.ast.tree.expression.ColumnReference columnReference) protected StringgetForShare(int timeoutMillis) protected voidrenderComparison(org.hibernate.sql.ast.tree.expression.Expression lhs, org.hibernate.query.sqm.ComparisonOperator operator, org.hibernate.sql.ast.tree.expression.Expression rhs) protected voidrenderDeleteClause(org.hibernate.sql.ast.tree.delete.DeleteStatement statement) protected voidrenderDerivedTableReferenceIdentificationVariable(org.hibernate.sql.ast.tree.from.DerivedTableReference tableReference) protected voidrenderDmlTargetTableExpression(org.hibernate.sql.ast.tree.from.NamedTableReference tableReference) protected voidrenderExpressionAsClauseItem(org.hibernate.sql.ast.tree.expression.Expression expression) protected voidrenderPartitionItem(org.hibernate.sql.ast.tree.expression.Expression expression) protected voidrenderStringContainsExactlyPredicate(org.hibernate.sql.ast.tree.expression.Expression haystack, org.hibernate.sql.ast.tree.expression.Expression needle) protected voidrenderUpdateClause(org.hibernate.sql.ast.tree.update.UpdateStatement updateStatement) protected booleanshouldEmulateFetchClause(org.hibernate.sql.ast.tree.select.QueryPart queryPart) protected org.hibernate.sql.exec.spi.JdbcOperationQueryInserttranslateInsert(org.hibernate.sql.ast.tree.insert.InsertSelectStatement sqlAst) voidvisitBinaryArithmeticExpression(org.hibernate.sql.ast.tree.expression.BinaryArithmeticExpression arithmeticExpression) voidvisitBooleanExpressionPredicate(org.hibernate.sql.ast.tree.predicate.BooleanExpressionPredicate booleanExpressionPredicate) voidvisitCastTarget(org.hibernate.sql.ast.tree.expression.CastTarget castTarget) voidvisitColumnReference(org.hibernate.sql.ast.tree.expression.ColumnReference columnReference) protected voidvisitConflictClause(org.hibernate.sql.ast.tree.insert.ConflictClause conflictClause) protected voidvisitInsertSource(org.hibernate.sql.ast.tree.insert.InsertSelectStatement statement) voidvisitLikePredicate(org.hibernate.sql.ast.tree.predicate.LikePredicate likePredicate) voidvisitOffsetFetchClause(org.hibernate.sql.ast.tree.select.QueryPart queryPart) voidvisitQueryGroup(org.hibernate.sql.ast.tree.select.QueryGroup queryGroup) voidvisitQueryPartTableReference(org.hibernate.sql.ast.tree.from.QueryPartTableReference tableReference) voidvisitQuerySpec(org.hibernate.sql.ast.tree.select.QuerySpec querySpec) voidvisitValuesTableReference(org.hibernate.sql.ast.tree.from.ValuesTableReference tableReference) Methods inherited from class org.hibernate.sql.ast.spi.AbstractSqlAstTranslator
addAdditionalWherePredicate, addAffectedTableName, addAppliedParameterBinding, append, append, append, appendBackslashEscapedLikeLiteral, appendDoubleQuoteEscapedString, appendSingleQuoteEscapedString, appendSql, appendSql, appendSql, appendSql, appendSql, applyParameter, areAllResultsParameters, areAllResultsParameters, assertRowsOnlyFetchClauseType, castFunction, castNumberToString, cleanup, createRowMatchingPredicate, determineCyclePathColumnName, determineLateralEmulationPredicate, determineLockingStrategy, 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, getDual, getEffectiveLockMode, getEffectiveLockMode, getEffectiveLockTimeout, getFetchClauseTypeForRowNumbering, getForUpdate, getForUpdateWithClause, getFromDualForSelectOnly, getIntegerType, getJdbcLockStrategy, getJdbcParameterBindings, getJdbcServices, getLeftHandExpression, getLimit, getLimitParameter, getLiteralValue, 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, renderComparisonDistinctOperator, renderComparisonEmulateCase, renderComparisonEmulateDecode, renderComparisonEmulateDecode, renderComparisonEmulateIntersect, renderComparisonStandard, renderCteColumns, renderCycleClause, renderDerivedTableReference, renderDmlTargetTableGroup, renderExpressionAsLiteral, renderExpressionsAsSubquery, renderFetch, renderFetchExpression, renderFetchPlusOffsetExpression, renderFetchPlusOffsetExpressionAsLiteral, renderFetchPlusOffsetExpressionAsSingleParameter, renderFirstClause, renderFirstClause, renderFirstSkipClause, renderFirstSkipClause, renderForUpdateClause, renderFromClauseAfterUpdateSet, renderFromClauseExcludingDmlTargetReference, renderFromClauseJoiningDmlTargetReference, renderFromClauseSpaces, renderInsertIntoNoColumns, renderInterval, renderIntervalLiteral, renderIntoIntoAndTable, renderLimitOffsetClause, renderLimitOffsetClause, renderLiteral, renderMaterializationHint, renderMergeUpdateClause, renderNamedSetReturningFunction, renderNamedTableReference, renderNull, renderOffset, renderOffsetExpression, renderOffsetFetchClause, renderOffsetFetchClause, renderOrderBy, renderParameterAsParameter, renderParameterAsParameter, renderPrimaryTableReference, renderQueryGroup, renderRecursiveCteVirtualSelections, renderRootTableGroup, renderRowNumber, renderRowNumberingSelectItems, renderRowsToClause, renderRowsToClause, renderSearchClause, renderSelectExpression, renderSelectExpressionWithCastedOrInlinedPlainParameters, renderSelectSimpleComparison, renderSelectTupleComparison, renderSetClause, renderSimpleNamedFunction, renderSkipFirstClause, renderSkipFirstClause, renderSortExpression, renderStandardCycleClause, renderStandardSearchClause, renderTableGroup, renderTableGroupJoin, renderTableReferenceIdentificationVariable, renderTableReferenceJoins, renderTableReferenceJoins, renderTopClause, renderTopClause, renderTopStartAtClause, renderTopStartAtClause, renderTupleComparisonStandard, renderVirtualSelections, renderWrappedParameter, resolveAliasedExpression, resolveAliasedExpression, resolveExpressionToAlias, setLimitParameter, setOffsetParameter, shouldEmulateLateralWithIntersect, shouldInlineCte, simpleColumnWriteFragmentRendering, supportsRecursiveClauseArrayAndRowEmulation, translate, translateDelete, translateSelect, translateUpdate, useOffsetFetchClause, visitAggregateColumnWriteExpression, visitAnsiCaseSearchedExpression, visitAnsiCaseSimpleExpression, visitAny, visitArithmeticOperand, visitAssignment, visitBetweenPredicate, visitCaseSearchedExpression, visitCaseSearchedExpression, visitCaseSimpleExpression, visitCaseSimpleExpression, visitCollation, 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, visitInArrayPredicate, visitInListPredicate, visitInsertStatement, visitInsertStatementEmulateMerge, visitInsertStatementOnly, visitInSubQueryPredicate, visitJdbcLiteral, visitJunction, visitModifiedSubQueryExpression, visitNamedTableReference, visitNegatedPredicate, visitNestedColumnReference, visitNullnessPredicate, visitOnDuplicateKeyConflictClause, visitOptionalTableUpdate, visitOrderBy, visitOver, visitOverClause, visitOverClause, visitOverflow, visitParameter, visitParameterAsParameter, visitPartitionByClause, visitPartitionExpressions, visitPartitionExpressions, visitQueryLiteral, 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, visitWhereClause, withParameterRenderingMode, withRowNumbering
-
Constructor Details
-
TiDBSqlAstTranslator
public TiDBSqlAstTranslator(org.hibernate.engine.spi.SessionFactoryImplementor sessionFactory, org.hibernate.sql.ast.tree.Statement statement, TiDBDialect dialect)
-
-
Method Details
-
visitBinaryArithmeticExpression
public void visitBinaryArithmeticExpression(org.hibernate.sql.ast.tree.expression.BinaryArithmeticExpression arithmeticExpression) - Specified by:
visitBinaryArithmeticExpressionin interfaceorg.hibernate.sql.ast.SqlAstWalker- Overrides:
visitBinaryArithmeticExpressionin classorg.hibernate.sql.ast.spi.AbstractSqlAstTranslator<T extends org.hibernate.sql.exec.spi.JdbcOperation>
-
visitInsertSource
protected void visitInsertSource(org.hibernate.sql.ast.tree.insert.InsertSelectStatement statement) - Overrides:
visitInsertSourcein classorg.hibernate.sql.ast.spi.AbstractSqlAstTranslator<T extends org.hibernate.sql.exec.spi.JdbcOperation>
-
visitColumnReference
public void visitColumnReference(org.hibernate.sql.ast.tree.expression.ColumnReference columnReference) - Specified by:
visitColumnReferencein interfaceorg.hibernate.sql.ast.SqlAstWalker- Overrides:
visitColumnReferencein classorg.hibernate.sql.ast.spi.AbstractSqlAstTranslator<T extends org.hibernate.sql.exec.spi.JdbcOperation>
-
renderDeleteClause
protected void renderDeleteClause(org.hibernate.sql.ast.tree.delete.DeleteStatement statement) - Overrides:
renderDeleteClausein classorg.hibernate.sql.ast.spi.AbstractSqlAstTranslator<T extends org.hibernate.sql.exec.spi.JdbcOperation>
-
renderUpdateClause
protected void renderUpdateClause(org.hibernate.sql.ast.tree.update.UpdateStatement updateStatement) - Overrides:
renderUpdateClausein classorg.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:
renderDmlTargetTableExpressionin classorg.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:
translateInsertin classorg.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:
visitConflictClausein classorg.hibernate.sql.ast.spi.AbstractSqlAstTranslator<T extends org.hibernate.sql.exec.spi.JdbcOperation>
-
determineColumnReferenceQualifier
protected String determineColumnReferenceQualifier(org.hibernate.sql.ast.tree.expression.ColumnReference columnReference) - Overrides:
determineColumnReferenceQualifierin classorg.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:
renderExpressionAsClauseItemin classorg.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:
visitBooleanExpressionPredicatein interfaceorg.hibernate.sql.ast.SqlAstWalker- Overrides:
visitBooleanExpressionPredicatein classorg.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:
visitQueryGroupin interfaceorg.hibernate.sql.ast.SqlAstWalker- Overrides:
visitQueryGroupin classorg.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:
visitQuerySpecin interfaceorg.hibernate.sql.ast.SqlAstWalker- Overrides:
visitQuerySpecin classorg.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:
visitValuesTableReferencein interfaceorg.hibernate.sql.ast.SqlAstWalker- Overrides:
visitValuesTableReferencein classorg.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:
visitQueryPartTableReferencein interfaceorg.hibernate.sql.ast.SqlAstWalker- Overrides:
visitQueryPartTableReferencein classorg.hibernate.sql.ast.spi.AbstractSqlAstTranslator<T extends org.hibernate.sql.exec.spi.JdbcOperation>
-
renderDerivedTableReferenceIdentificationVariable
protected void renderDerivedTableReferenceIdentificationVariable(org.hibernate.sql.ast.tree.from.DerivedTableReference tableReference) - Overrides:
renderDerivedTableReferenceIdentificationVariablein classorg.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:
visitOffsetFetchClausein interfaceorg.hibernate.sql.ast.SqlAstWalker- Overrides:
visitOffsetFetchClausein classorg.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:
renderComparisonin classorg.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:
renderPartitionItemin classorg.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:
visitLikePredicatein interfaceorg.hibernate.sql.ast.SqlAstWalker- Overrides:
visitLikePredicatein classorg.hibernate.sql.ast.spi.AbstractSqlAstTranslator<T extends org.hibernate.sql.exec.spi.JdbcOperation>
-
getDialect
- Overrides:
getDialectin classorg.hibernate.sql.ast.spi.AbstractSqlAstTranslator<T extends org.hibernate.sql.exec.spi.JdbcOperation>
-
visitCastTarget
public void visitCastTarget(org.hibernate.sql.ast.tree.expression.CastTarget castTarget) - Specified by:
visitCastTargetin interfaceorg.hibernate.sql.ast.SqlAstWalker- Overrides:
visitCastTargetin classorg.hibernate.sql.ast.spi.AbstractSqlAstTranslator<T extends org.hibernate.sql.exec.spi.JdbcOperation>
-
renderStringContainsExactlyPredicate
protected void renderStringContainsExactlyPredicate(org.hibernate.sql.ast.tree.expression.Expression haystack, org.hibernate.sql.ast.tree.expression.Expression needle) - Overrides:
renderStringContainsExactlyPredicatein classorg.hibernate.sql.ast.spi.AbstractSqlAstTranslator<T extends org.hibernate.sql.exec.spi.JdbcOperation>
-