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.
- Author:
- Christian Beikov
-
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 StringdetermineColumnReferenceQualifier(ColumnReference columnReference) protected StringgetForShare(int timeoutMillis) static StringgetSqlType(CastTarget castTarget, Dialect dialect) Deprecated, for removal: This API element is subject to removal in a future version.static StringgetSqlType(CastTarget castTarget, SessionFactoryImplementor factory) protected voidrenderComparison(Expression lhs, ComparisonOperator operator, Expression rhs) protected voidrenderDeleteClause(DeleteStatement statement) protected voidrenderDmlTargetTableExpression(NamedTableReference tableReference) protected voidrenderExpressionAsClauseItem(Expression expression) protected voidrenderPartitionItem(Expression expression) protected voidrenderStringContainsExactlyPredicate(Expression haystack, Expression needle) protected voidrenderUpdateClause(UpdateStatement updateStatement) protected booleanshouldEmulateFetchClause(QueryPart queryPart) protected booleanIs this SQL dialect known to support some kind of distinct from predicate.protected booleanprotected booleanprotected booleanbooleanIf the dialect supportsrow values, does it offer such support in IN lists as well?protected booleanIs this dialect known to support what ANSI-SQL terms "row value constructor" syntax; sometimes called tuple syntax with quantified predicates.booleanIs this dialect known to support what ANSI-SQL terms "row value constructor" syntax, sometimes called tuple syntax, in the SET clause;protected booleanprotected booleanWhether the SQL with clause is supported.protected JdbcOperationQueryInserttranslateInsert(InsertSelectStatement sqlAst) voidvisitBinaryArithmeticExpression(BinaryArithmeticExpression arithmeticExpression) voidvisitBooleanExpressionPredicate(BooleanExpressionPredicate booleanExpressionPredicate) voidvisitCastTarget(CastTarget castTarget) voidvisitColumnReference(ColumnReference columnReference) protected voidvisitConflictClause(ConflictClause conflictClause) protected voidvisitInsertSource(InsertSelectStatement statement) voidvisitLikePredicate(LikePredicate likePredicate) voidvisitOffsetFetchClause(QueryPart queryPart) voidvisitQueryGroup(QueryGroup queryGroup) voidvisitQuerySpec(QuerySpec querySpec) protected voidvisitRecursivePath(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.voidvisitValuesTableReference(ValuesTableReference tableReference) 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, determineCyclePathColumnName, determineLateralEmulationPredicate, determineLockingStrategy, determineWhereClauseRestrictionWithJoinEmulation, determineWhereClauseRestrictionWithJoinEmulation, emulateCycleClauseWithRowAndArray, emulateFetchOffsetWithWindowFunctions, emulateFetchOffsetWithWindowFunctions, emulateFetchOffsetWithWindowFunctionsVisitQueryPart, emulateQuantifiedTupleSubQueryPredicate, emulateQueryPartTableReferenceColumnAliasing, emulateSearchClauseOrderWithRowAndArray, emulateSelectTupleComparison, emulateSortSpecificationNullPrecedence, emulateSubQueryRelationalRestrictionPredicate, emulateTupleComparison, emulateValuesTableReferenceColumnAliasing, getAffectedTableNames, getAppliedParameterBindings, getArrayContainsFunction, getBooleanType, getCastTypeName, getCastTypeName, getClauseStack, getCteStatement, getCurrentClauseStack, getCurrentCteStatement, getCurrentDmlStatement, getCurrentQueryPart, getDual, getEffectiveLockMode, getEffectiveLockMode, getEffectiveLockTimeout, getFetchClauseTypeForRowNumbering, 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, 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, renderIntoIntoAndTable, renderLimitOffsetClause, renderLimitOffsetClause, renderLiteral, renderMaterializationHint, 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, 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
@Deprecated(forRemoval=true) public static String getSqlType(CastTarget castTarget, Dialect dialect) Deprecated, for removal: This API element is subject to removal in a future version. -
getSqlType
-
visitBinaryArithmeticExpression
- Specified by:
visitBinaryArithmeticExpressionin interfaceSqlAstWalker- Overrides:
visitBinaryArithmeticExpressionin classAbstractSqlAstTranslator<T extends JdbcOperation>
-
visitInsertSource
- Overrides:
visitInsertSourcein classAbstractSqlAstTranslator<T extends JdbcOperation>
-
visitColumnReference
- Specified by:
visitColumnReferencein interfaceSqlAstWalker- Overrides:
visitColumnReferencein classAbstractSqlAstTranslator<T extends JdbcOperation>
-
renderDeleteClause
- Overrides:
renderDeleteClausein classAbstractSqlAstTranslator<T extends JdbcOperation>
-
renderUpdateClause
- Overrides:
renderUpdateClausein classAbstractSqlAstTranslator<T extends JdbcOperation>
-
renderDmlTargetTableExpression
- Overrides:
renderDmlTargetTableExpressionin classAbstractSqlAstTranslator<T extends JdbcOperation>
-
supportsJoinsInDelete
protected boolean supportsJoinsInDelete()- Overrides:
supportsJoinsInDeletein classAbstractSqlAstTranslator<T extends JdbcOperation>
-
translateInsert
- Overrides:
translateInsertin classAbstractSqlAstTranslator<T extends JdbcOperation>
-
visitConflictClause
- Overrides:
visitConflictClausein classAbstractSqlAstTranslator<T extends JdbcOperation>
-
determineColumnReferenceQualifier
- Overrides:
determineColumnReferenceQualifierin classAbstractSqlAstTranslator<T extends JdbcOperation>
-
renderExpressionAsClauseItem
- Overrides:
renderExpressionAsClauseItemin classAbstractSqlAstTranslator<T extends JdbcOperation>
-
visitRecursivePath
Description copied from class:AbstractSqlAstTranslatorRenders the recursive path, possibly wrapping a cast expression around it, to make sure a type with proper size is chosen.- Overrides:
visitRecursivePathin classAbstractSqlAstTranslator<T extends JdbcOperation>
-
visitBooleanExpressionPredicate
- Specified by:
visitBooleanExpressionPredicatein interfaceSqlAstWalker- Overrides:
visitBooleanExpressionPredicatein classAbstractSqlAstTranslator<T extends JdbcOperation>
-
shouldEmulateFetchClause
-
visitQueryGroup
- Specified by:
visitQueryGroupin interfaceSqlAstWalker- Overrides:
visitQueryGroupin classAbstractSqlAstTranslator<T extends JdbcOperation>
-
visitQuerySpec
- Specified by:
visitQuerySpecin interfaceSqlAstWalker- Overrides:
visitQuerySpecin classAbstractSqlAstTranslator<T extends JdbcOperation>
-
visitValuesTableReference
- Specified by:
visitValuesTableReferencein interfaceSqlAstWalker- Overrides:
visitValuesTableReferencein classAbstractSqlAstTranslator<T extends JdbcOperation>
-
visitOffsetFetchClause
- Specified by:
visitOffsetFetchClausein interfaceSqlAstWalker- Overrides:
visitOffsetFetchClausein classAbstractSqlAstTranslator<T extends JdbcOperation>
-
renderComparison
- Overrides:
renderComparisonin classAbstractSqlAstTranslator<T extends JdbcOperation>
-
renderPartitionItem
- Overrides:
renderPartitionItemin classAbstractSqlAstTranslator<T extends JdbcOperation>
-
visitLikePredicate
- Specified by:
visitLikePredicatein interfaceSqlAstWalker- Overrides:
visitLikePredicatein classAbstractSqlAstTranslator<T extends JdbcOperation>
-
supportsRowValueConstructorSyntaxInSet
public boolean supportsRowValueConstructorSyntaxInSet()Description copied from class:AbstractSqlAstTranslatorIs 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:
supportsRowValueConstructorSyntaxInSetin 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:AbstractSqlAstTranslatorIf the dialect supportsrow values, does it offer such support in IN lists as well?For example,
... where (FIRST_NAME, LAST_NAME) IN ( (?, ?), (?, ?) ) ...- Overrides:
supportsRowValueConstructorSyntaxInInListin 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:AbstractSqlAstTranslatorIs 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:
supportsRowValueConstructorSyntaxInQuantifiedPredicatesin 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:
supportsIntersectin classAbstractSqlAstTranslator<T extends JdbcOperation>
-
supportsDistinctFromPredicate
protected boolean supportsDistinctFromPredicate()Description copied from class:AbstractSqlAstTranslatorIs 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:
supportsDistinctFromPredicatein 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:
supportsSimpleQueryGroupingin classAbstractSqlAstTranslator<T extends JdbcOperation>
-
supportsNestedSubqueryCorrelation
protected boolean supportsNestedSubqueryCorrelation()- Overrides:
supportsNestedSubqueryCorrelationin classAbstractSqlAstTranslator<T extends JdbcOperation>
-
supportsWithClause
protected boolean supportsWithClause()Description copied from class:AbstractSqlAstTranslatorWhether the SQL with clause is supported.- Overrides:
supportsWithClausein classAbstractSqlAstTranslator<T extends JdbcOperation>
-
getDialect
- Overrides:
getDialectin classAbstractSqlAstTranslator<T extends JdbcOperation>
-
visitCastTarget
- Specified by:
visitCastTargetin interfaceSqlAstWalker- Overrides:
visitCastTargetin classAbstractSqlAstTranslator<T extends JdbcOperation>
-
renderStringContainsExactlyPredicate
- Overrides:
renderStringContainsExactlyPredicatein classAbstractSqlAstTranslator<T extends JdbcOperation>
-
getSqlType(CastTarget, SessionFactoryImplementor)instead