Package org.hibernate.dialect
Class MySQLSqlAstTranslator<T extends JdbcOperation>
java.lang.Object
org.hibernate.sql.ast.spi.AbstractSqlAstTranslator<T>
org.hibernate.dialect.MySQLSqlAstTranslator<T>
- All Implemented Interfaces:
Appendable
,SqlAppender
,SqlAstTranslator<T>
,SqlAstWalker
A SQL AST translator for MySQL.
-
Nested Class Summary
Nested classes/interfaces inherited from class org.hibernate.sql.ast.spi.AbstractSqlAstTranslator
AbstractSqlAstTranslator.ForUpdateClause, AbstractSqlAstTranslator.LockStrategy, AbstractSqlAstTranslator.SubQueryRelationalRestrictionEmulationRenderer<X extends 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
ConstructorsConstructorDescriptionMySQLSqlAstTranslator
(SessionFactoryImplementor sessionFactory, Statement statement) -
Method Summary
Modifier and TypeMethodDescriptionprotected String
determineColumnReferenceQualifier
(ColumnReference columnReference) protected String
getForShare
(int timeoutMillis) static String
getSqlType
(CastTarget castTarget, SessionFactoryImplementor factory) protected void
renderComparison
(Expression lhs, ComparisonOperator operator, Expression rhs) protected void
renderDeleteClause
(DeleteStatement statement) protected void
renderDerivedTableReference
(DerivedTableReference tableReference) protected void
renderDmlTargetTableExpression
(NamedTableReference tableReference) protected void
renderExpressionAsClauseItem
(Expression expression) protected void
renderPartitionItem
(Expression expression) protected void
renderStringContainsExactlyPredicate
(Expression haystack, Expression needle) protected void
renderUpdateClause
(UpdateStatement updateStatement) protected boolean
shouldEmulateFetchClause
(QueryPart queryPart) protected boolean
Is this SQL dialect known to support some kind of distinct from predicate.protected boolean
protected boolean
protected boolean
boolean
If the dialect supportsrow values
, does it offer such support in IN lists as well?protected boolean
Is this dialect known to support what ANSI-SQL terms "row value constructor" syntax; sometimes called tuple syntax with quantified predicates.boolean
Is this dialect known to support what ANSI-SQL terms "row value constructor" syntax, sometimes called tuple syntax, in the SET clause;protected boolean
protected boolean
Whether the SQL with clause is supported.protected JdbcOperationQueryInsert
translateInsert
(InsertSelectStatement sqlAst) void
visitBinaryArithmeticExpression
(BinaryArithmeticExpression arithmeticExpression) void
visitBooleanExpressionPredicate
(BooleanExpressionPredicate booleanExpressionPredicate) void
visitCastTarget
(CastTarget castTarget) void
visitColumnReference
(ColumnReference columnReference) protected void
visitConflictClause
(ConflictClause conflictClause) protected void
visitInsertSource
(InsertSelectStatement statement) void
visitLikePredicate
(LikePredicate likePredicate) void
visitOffsetFetchClause
(QueryPart queryPart) void
visitQueryGroup
(QueryGroup queryGroup) void
visitQuerySpec
(QuerySpec querySpec) protected void
visitRecursivePath
(Expression recursivePath, int sizeEstimate) Renders the recursive path, possibly wrapping a cast expression around it, to make sure a type with proper size is chosen.void
visitValuesTableReference
(ValuesTableReference tableReference) Methods inherited from class org.hibernate.sql.ast.spi.AbstractSqlAstTranslator
addAdditionalWherePredicate, 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, renderDerivedTableReferenceIdentificationVariable, 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, supportsArrayConstructor, supportsDuplicateSelectItemsInQueryGroup, supportsFilterClause, supportsJoinInMutationStatementSubquery, supportsNestedWithClause, supportsNullPrecedence, supportsQuantifiedPredicates, supportsRecursiveClauseArrayAndRowEmulation, supportsRecursiveCycleClause, supportsRecursiveCycleUsingClause, supportsRecursiveSearchClause, supportsRowConstructor, supportsRowValueConstructorDistinctFromSyntax, supportsRowValueConstructorGtLtSyntax, supportsRowValueConstructorSyntax, supportsRowValueConstructorSyntaxInInSubQuery, supportsWithClauseInSubquery, 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, visitQueryPartTableReference, 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
-
MySQLSqlAstTranslator
-
-
Method Details
-
getSqlType
-
visitBinaryArithmeticExpression
- Specified by:
visitBinaryArithmeticExpression
in interfaceSqlAstWalker
- Overrides:
visitBinaryArithmeticExpression
in classAbstractSqlAstTranslator<T extends JdbcOperation>
-
visitInsertSource
- Overrides:
visitInsertSource
in classAbstractSqlAstTranslator<T extends JdbcOperation>
-
visitColumnReference
- Specified by:
visitColumnReference
in interfaceSqlAstWalker
- Overrides:
visitColumnReference
in classAbstractSqlAstTranslator<T extends JdbcOperation>
-
renderDeleteClause
- Overrides:
renderDeleteClause
in classAbstractSqlAstTranslator<T extends JdbcOperation>
-
renderUpdateClause
- Overrides:
renderUpdateClause
in classAbstractSqlAstTranslator<T extends JdbcOperation>
-
renderDmlTargetTableExpression
- Overrides:
renderDmlTargetTableExpression
in classAbstractSqlAstTranslator<T extends JdbcOperation>
-
supportsJoinsInDelete
protected boolean supportsJoinsInDelete()- Overrides:
supportsJoinsInDelete
in classAbstractSqlAstTranslator<T extends JdbcOperation>
-
translateInsert
- Overrides:
translateInsert
in classAbstractSqlAstTranslator<T extends JdbcOperation>
-
visitConflictClause
- Overrides:
visitConflictClause
in classAbstractSqlAstTranslator<T extends JdbcOperation>
-
determineColumnReferenceQualifier
- Overrides:
determineColumnReferenceQualifier
in classAbstractSqlAstTranslator<T extends JdbcOperation>
-
renderExpressionAsClauseItem
- Overrides:
renderExpressionAsClauseItem
in classAbstractSqlAstTranslator<T extends JdbcOperation>
-
visitRecursivePath
Description copied from class:AbstractSqlAstTranslator
Renders the recursive path, possibly wrapping a cast expression around it, to make sure a type with proper size is chosen.- Overrides:
visitRecursivePath
in classAbstractSqlAstTranslator<T extends JdbcOperation>
-
visitBooleanExpressionPredicate
- Specified by:
visitBooleanExpressionPredicate
in interfaceSqlAstWalker
- Overrides:
visitBooleanExpressionPredicate
in classAbstractSqlAstTranslator<T extends JdbcOperation>
-
shouldEmulateFetchClause
-
visitQueryGroup
- Specified by:
visitQueryGroup
in interfaceSqlAstWalker
- Overrides:
visitQueryGroup
in classAbstractSqlAstTranslator<T extends JdbcOperation>
-
visitQuerySpec
- Specified by:
visitQuerySpec
in interfaceSqlAstWalker
- Overrides:
visitQuerySpec
in classAbstractSqlAstTranslator<T extends JdbcOperation>
-
visitValuesTableReference
- Specified by:
visitValuesTableReference
in interfaceSqlAstWalker
- Overrides:
visitValuesTableReference
in classAbstractSqlAstTranslator<T extends JdbcOperation>
-
renderDerivedTableReference
- Overrides:
renderDerivedTableReference
in classAbstractSqlAstTranslator<T extends JdbcOperation>
-
visitOffsetFetchClause
- Specified by:
visitOffsetFetchClause
in interfaceSqlAstWalker
- Overrides:
visitOffsetFetchClause
in classAbstractSqlAstTranslator<T extends JdbcOperation>
-
renderComparison
- Overrides:
renderComparison
in classAbstractSqlAstTranslator<T extends JdbcOperation>
-
renderPartitionItem
- Overrides:
renderPartitionItem
in classAbstractSqlAstTranslator<T extends JdbcOperation>
-
visitLikePredicate
- Specified by:
visitLikePredicate
in interfaceSqlAstWalker
- Overrides:
visitLikePredicate
in classAbstractSqlAstTranslator<T extends JdbcOperation>
-
supportsRowValueConstructorSyntaxInSet
public boolean supportsRowValueConstructorSyntaxInSet()Description copied from class:AbstractSqlAstTranslator
Is this dialect known to support what ANSI-SQL terms "row value constructor" syntax, sometimes called tuple syntax, in the SET clause;Basically, does it support syntax like
... SET (FIRST_NAME, LAST_NAME) = ('Steve', 'Ebersole') ...
- Overrides:
supportsRowValueConstructorSyntaxInSet
in classAbstractSqlAstTranslator<T extends JdbcOperation>
- Returns:
- True if this SQL dialect is known to support "row value constructor" syntax in the SET clause; false otherwise.
-
supportsRowValueConstructorSyntaxInInList
public boolean supportsRowValueConstructorSyntaxInInList()Description copied from class:AbstractSqlAstTranslator
If the dialect supportsrow values
, does it offer such support in IN lists as well?For example,
... where (FIRST_NAME, LAST_NAME) IN ( (?, ?), (?, ?) ) ...
- Overrides:
supportsRowValueConstructorSyntaxInInList
in classAbstractSqlAstTranslator<T extends JdbcOperation>
- Returns:
- True if this SQL dialect is known to support "row value constructor" syntax in the IN list; false otherwise.
-
supportsRowValueConstructorSyntaxInQuantifiedPredicates
protected boolean supportsRowValueConstructorSyntaxInQuantifiedPredicates()Description copied from class:AbstractSqlAstTranslator
Is this dialect known to support what ANSI-SQL terms "row value constructor" syntax; sometimes called tuple syntax with quantified predicates.Basically, does it support syntax like
... where (FIRST_NAME, LAST_NAME) = ALL (select ...) ...
- Overrides:
supportsRowValueConstructorSyntaxInQuantifiedPredicates
in classAbstractSqlAstTranslator<T extends JdbcOperation>
- Returns:
- True if this SQL dialect is known to support "row value constructor" syntax with quantified predicates; false otherwise.
-
supportsIntersect
protected boolean supportsIntersect()- Overrides:
supportsIntersect
in classAbstractSqlAstTranslator<T extends JdbcOperation>
-
supportsDistinctFromPredicate
protected boolean supportsDistinctFromPredicate()Description copied from class:AbstractSqlAstTranslator
Is this SQL dialect known to support some kind of distinct from predicate.Basically, does it support syntax like
... where FIRST_NAME IS DISTINCT FROM LAST_NAME
- Overrides:
supportsDistinctFromPredicate
in classAbstractSqlAstTranslator<T extends JdbcOperation>
- Returns:
- True if this SQL dialect is known to support some kind of distinct from predicate; false otherwise
-
supportsSimpleQueryGrouping
protected boolean supportsSimpleQueryGrouping()- Overrides:
supportsSimpleQueryGrouping
in classAbstractSqlAstTranslator<T extends JdbcOperation>
-
supportsNestedSubqueryCorrelation
protected boolean supportsNestedSubqueryCorrelation()- Overrides:
supportsNestedSubqueryCorrelation
in classAbstractSqlAstTranslator<T extends JdbcOperation>
-
supportsWithClause
protected boolean supportsWithClause()Description copied from class:AbstractSqlAstTranslator
Whether the SQL with clause is supported.- Overrides:
supportsWithClause
in classAbstractSqlAstTranslator<T extends JdbcOperation>
-
getDialect
- Overrides:
getDialect
in classAbstractSqlAstTranslator<T extends JdbcOperation>
-
visitCastTarget
- Specified by:
visitCastTarget
in interfaceSqlAstWalker
- Overrides:
visitCastTarget
in classAbstractSqlAstTranslator<T extends JdbcOperation>
-
renderStringContainsExactlyPredicate
- Overrides:
renderStringContainsExactlyPredicate
in classAbstractSqlAstTranslator<T extends JdbcOperation>
-