Top Description Constructors Methods
org.hibernate.dialect

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

extends AbstractSqlAstTranslator<T extends JdbcOperation>
Class Inheritance
Imports
java.util.Locale, org.hibernate.engine.jdbc.Size, org.hibernate.engine.spi.SessionFactoryImplementor, org.hibernate.query.sqm.ComparisonOperator, org.hibernate.sql.ast.spi.AbstractSqlAstTranslator, org.hibernate.sql.ast.tree.Statement, org.hibernate.sql.ast.tree.expression.CastTarget, .Expression, .Literal, .Summarization, org.hibernate.sql.ast.tree.from.QueryPartTableReference, .ValuesTableReference, org.hibernate.sql.ast.tree.predicate.BooleanExpressionPredicate, .LikePredicate, org.hibernate.sql.ast.tree.select.QueryGroup, .QueryPart, .QuerySpec, org.hibernate.sql.exec.spi.JdbcOperation

A SQL AST translator for MySQL.
Author
Christian Beikov

Constructor Summary

AccessConstructor and Description
public
MySQLSqlAstTranslator(SessionFactoryImplementor sessionFactory, Statement statement)

Deprecated as a consequence of SessionFactoryImplementor being deprecated.

Method Summary

Modifier and TypeMethod and Description
public MySQLDialect
protected String
protected String
getFromDual()

Overrides org.hibernate.sql.ast.spi.AbstractSqlAstTranslator.getFromDual.

Some databases require a bit of syntactic noise when there are no tables in the from clause.
public static String
getSqlType(CastTarget castTarget, Dialect dialect)

Deprecated for removal. Use getSqlType(CastTarget, SessionFactoryImplementor) instead
public static String
getSqlType(CastTarget castTarget, SessionFactoryImplementor factory)

Deprecated as a consequence of SessionFactoryImplementor being deprecated.
private static String
getSqlType(CastTarget castTarget, String sqlType, Dialect dialect)

protected void
protected void
protected void
protected void
protected boolean
protected boolean
supportsDistinctFromPredicate()

Overrides org.hibernate.sql.ast.spi.AbstractSqlAstTranslator.supportsDistinctFromPredicate.

Is this SQL dialect known to support some kind of distinct from predicate.
protected boolean
protected boolean
public boolean
protected boolean
supportsRowValueConstructorSyntaxInQuantifiedPredicates()

Overrides org.hibernate.sql.ast.spi.AbstractSqlAstTranslator.supportsRowValueConstructorSyntaxInQuantifiedPredicates.

Is this dialect known to support what ANSI-SQL terms "row value constructor" syntax; sometimes called tuple syntax with quantified predicates.
public boolean
supportsRowValueConstructorSyntaxInSet()

Overrides org.hibernate.sql.ast.spi.AbstractSqlAstTranslator.supportsRowValueConstructorSyntaxInSet.

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 ...

protected boolean
protected boolean
public void
public void
public void
public void
public void
public void
protected void
visitRecursivePath(Expression recursivePath, int sizeEstimate)

Overrides org.hibernate.sql.ast.spi.AbstractSqlAstTranslator.visitRecursivePath.

Renders the recursive path, possibly wrapping a cast expression around it, to make sure a type with proper size is chosen.
public void
Inherited from org.hibernate.sql.ast.spi.AbstractSqlAstTranslator:
addAdditionalWherePredicateaddAppliedParameterBindingappendappendappendappendBackslashEscapedLikeLiteralappendSqlappendSqlappendSqlappendSqlappendSqlapplyParameterareAllResultsParametersareAllResultsParametersassertRowsOnlyFetchClauseTypecastFunctioncastNumberToStringcleanupdetermineCyclePathColumnNamedetermineLateralEmulationPredicatedetermineLockingStrategydetermineWhereClauseRestrictionWithJoinEmulationemulateCycleClauseWithRowAndArrayemulateFetchOffsetWithWindowFunctionsemulateFetchOffsetWithWindowFunctionsemulateFetchOffsetWithWindowFunctionsVisitQueryPartemulateQuantifiedTupleSubQueryPredicateemulateQueryPartTableReferenceColumnAliasingemulateSearchClauseOrderWithRowAndArrayemulateSelectTupleComparisonemulateSortSpecificationNullPrecedenceemulateSubQueryRelationalRestrictionPredicateemulateTupleComparisonemulateValuesTableReferenceColumnAliasinggetAffectedTableNamesgetAppliedParameterBindingsgetArrayContainsFunctiongetBooleanTypegetCastTypeNamegetCastTypeNamegetClauseStackgetCteStatementgetCurrentClauseStackgetCurrentCteStatementgetCurrentDmlStatementgetCurrentQueryPartgetDmlTargetTableAliasgetEffectiveLockModegetEffectiveLockModegetEffectiveLockTimeoutgetFetchClauseTypeForRowNumberinggetForUpdategetForUpdateWithClausegetFromDualForSelectOnlygetIntegerTypegetJdbcLockStrategygetJdbcParameterBindingsgetJdbcServicesgetLeftHandExpressiongetLimitgetLimitParametergetLockOptionsgetMaxRowsgetNoWaitgetOffsetParametergetParameterBindersgetParameterBindValuegetParameterRenderingModegetQueryPartForRowNumberinggetQueryPartStackgetRowsToSkipgetSelectItemReferencegetSessionFactorygetSkipLockedgetSortSpecificationsRowNumberinggetSqlgetSqlAppendergetSqlBuffergetSqlTypeNamegetSqlTypeNamegetStatementgetStringTypegetWrapperOptionshasAggregateFunctionshasLimithasLimithasNestedTableGroupsToRenderhasOffsetinlineCteTableGroupinOverOrWithinGroupClauseinterpretExpressionisCorrelatedisInRecursiveQueryPartisLiteralisParameterisRowNumberingCurrentQueryPartisRowsOnlyFetchClauseTypeisStructneedsCteInliningneedsLockingneedsMaxRowsneedsRecursiveKeywordInWithClauseneedsRowsToSkipprepareLimitOffsetParametersprocessNestedTableGroupJoinsprocessTableGroupJoinprocessTableGroupJoinsregisterAffectedTableregisterAffectedTablerenderrenderAsLiteralrenderBackslashEscapedLikePatternrenderCaseInsensitiveLikeEmulationrenderCastedrenderCombinedLimitClauserenderCombinedLimitClauserenderCommaSeparatedrenderCommaSeparatedSelectExpressionrenderCommaSeparatedSelectExpressionrenderComparisonDistinctOperatorrenderComparisonEmulateCaserenderComparisonEmulateDecoderenderComparisonEmulateDecoderenderComparisonEmulateIntersectrenderComparisonStandardrenderCteColumnsrenderCycleClauserenderDerivedTableReferencerenderExpressionAsLiteralrenderExpressionsAsSubqueryrenderFetchrenderFetchExpressionrenderFetchPlusOffsetExpressionrenderFetchPlusOffsetExpressionAsLiteralrenderFetchPlusOffsetExpressionAsSingleParameterrenderFirstClauserenderFirstClauserenderFirstSkipClauserenderFirstSkipClauserenderForUpdateClauserenderInsertIntoNoColumnsrenderIntoIntoAndTablerenderLimitOffsetClauserenderLimitOffsetClauserenderLiteralrenderMaterializationHintrenderNamedTableReferencerenderOffsetrenderOffsetExpressionrenderOffsetFetchClauserenderOffsetFetchClauserenderOrderByrenderParameterAsParameterrenderParameterAsParameterrenderPrimaryTableReferencerenderQueryGrouprenderRecursiveCteVirtualSelectionsrenderRootTableGrouprenderRowNumberrenderRowNumberingSelectItemsrenderRowsToClauserenderRowsToClauserenderSearchClauserenderSelectExpressionrenderSelectExpressionWithCastedOrInlinedPlainParametersrenderSelectSimpleComparisonrenderSelectTupleComparisonrenderSetClauserenderSkipFirstClauserenderSkipFirstClauserendersTableReferenceAliasrenderStandardCycleClauserenderStandardSearchClauserenderTableGrouprenderTableGroupJoinrenderTableReferenceIdentificationVariablerenderTableReferenceJoinsrenderTopClauserenderTopClauserenderTopStartAtClauserenderTopStartAtClauserenderTupleComparisonStandardrenderVirtualSelectionsresolveAliasedExpressionresolveAliasedExpressionresolveExpressionToAliassetLimitParametersetOffsetParametershouldEmulateLateralWithIntersectshouldInlineCtesimpleColumnWriteFragmentRenderingsupportsArrayConstructorsupportsDuplicateSelectItemsInQueryGroupsupportsFilterClausesupportsJoinInMutationStatementSubquerysupportsNestedWithClausesupportsNullPrecedencesupportsQuantifiedPredicatessupportsRecursiveClauseArrayAndRowEmulationsupportsRecursiveCycleClausesupportsRecursiveCycleUsingClausesupportsRecursiveSearchClausesupportsRowConstructorsupportsRowValueConstructorDistinctFromSyntaxsupportsRowValueConstructorGtLtSyntaxsupportsRowValueConstructorSyntaxsupportsRowValueConstructorSyntaxInInSubQuerysupportsWithClauseInSubquerytranslatetranslateDeletetranslateInserttranslateSelecttranslateUpdateuseOffsetFetchClausevisitAggregateColumnWriteExpressionvisitAnsiCaseSearchedExpressionvisitAnsiCaseSimpleExpressionvisitAnyvisitAssignmentvisitBetweenPredicatevisitBinaryArithmeticExpressionvisitCaseSearchedExpressionvisitCaseSearchedExpressionvisitCaseSimpleExpressionvisitCaseSimpleExpressionvisitCollationvisitColumnReferencevisitColumnWriteFragmentvisitConversionvisitCteContainervisitCteDefinitionvisitCteObjectvisitCustomTableDeletevisitCustomTableInsertvisitCustomTableUpdatevisitDecodeCaseSearchedExpressionvisitDeleteStatementvisitDeleteStatementOnlyvisitDistinctvisitDurationvisitDurationUnitvisitEntityTypeLiteralvisitEveryvisitExistsPredicatevisitExtractUnitvisitFilterFragmentPredicatevisitFilterPredicatevisitFormatvisitForUpdateClausevisitFromClausevisitFunctionTableReferencevisitGroupByClausevisitGroupedPredicatevisitHavingClausevisitInArrayPredicatevisitInListPredicatevisitInsertStatementvisitInsertStatementOnlyvisitInSubQueryPredicatevisitJdbcLiteralvisitJunctionvisitModifiedSubQueryExpressionvisitNamedTableReferencevisitNegatedPredicatevisitNullnessPredicatevisitOptionalTableUpdatevisitOrderByvisitOvervisitOverClausevisitOverClausevisitOverflowvisitParametervisitParameterAsParametervisitPartitionByClausevisitPartitionExpressionsvisitPartitionExpressionsvisitQueryLiteralvisitQueryPartTableReferencevisitRelationalPredicatevisitReturningColumnsvisitReturningColumnsvisitSelectClausevisitSelectStatementvisitSelfRenderingExpressionvisitSelfRenderingPredicatevisitSetAssignmentvisitSortSpecificationvisitSortSpecificationvisitSqlFragmentPredicatevisitSqlSelectExpressionvisitSqlSelectionvisitSqlSelectionExpressionvisitSqlSelectionsvisitStandardTableDeletevisitStandardTableInsertvisitStandardTableUpdatevisitStarvisitSummarizationvisitTableGroupvisitTableGroupJoinvisitTableReferenceJoinvisitThruthnessPredicatevisitTrimSpecificationvisitTuplevisitUnaryOperationExpressionvisitUnparsedNumericLiteralvisitUpdateStatementvisitUpdateStatementOnlyvisitValuesListvisitValuesListEmulateSelectUnionvisitValuesListStandardvisitWhereClausewithParameterRenderingModewithRowNumbering

Constructor Detail

MySQLSqlAstTranslatorback to summary
public MySQLSqlAstTranslator(SessionFactoryImplementor sessionFactory, Statement statement)

Deprecated

as a consequence of SessionFactoryImplementor being deprecated. See corresponding docs for further information.

Method Detail

getDialectback to summary
public MySQLDialect getDialect()

Overrides org.hibernate.sql.ast.spi.AbstractSqlAstTranslator.getDialect.

Annotations
@Override
getForShareback to summary
protected String getForShare(int timeoutMillis)

Overrides org.hibernate.sql.ast.spi.AbstractSqlAstTranslator.getForShare.

Annotations
@Override
getFromDualback to summary
protected String getFromDual()

Overrides org.hibernate.sql.ast.spi.AbstractSqlAstTranslator.getFromDual.

Doc from org.hibernate.sql.ast.spi.AbstractSqlAstTranslator.getFromDual.

Some databases require a bit of syntactic noise when there are no tables in the from clause.

Returns:String

the SQL equivalent to Oracle's from dual.

Annotations
@Override
getSqlTypeback to summary
public static String getSqlType(CastTarget castTarget, Dialect dialect)

Deprecated

for removal.

Use getSqlType(CastTarget, SessionFactoryImplementor) instead

Annotations
@Deprecated
forRemoval:true
getSqlTypeback to summary
public static String getSqlType(CastTarget castTarget, SessionFactoryImplementor factory)

Deprecated

as a consequence of SessionFactoryImplementor being deprecated. See corresponding docs for further information.

getSqlTypeback to summary
private static String getSqlType(CastTarget castTarget, String sqlType, Dialect dialect)
renderComparisonback to summary
protected void renderComparison(Expression lhs, ComparisonOperator operator, Expression rhs)

Overrides org.hibernate.sql.ast.spi.AbstractSqlAstTranslator.renderComparison.

Annotations
@Override
renderExpressionAsClauseItemback to summary
protected void renderExpressionAsClauseItem(Expression expression)

Overrides org.hibernate.sql.ast.spi.AbstractSqlAstTranslator.renderExpressionAsClauseItem.

Annotations
@Override
renderPartitionItemback to summary
protected void renderPartitionItem(Expression expression)

Overrides org.hibernate.sql.ast.spi.AbstractSqlAstTranslator.renderPartitionItem.

Annotations
@Override
renderStringContainsExactlyPredicateback to summary
protected void renderStringContainsExactlyPredicate(Expression haystack, Expression needle)

Overrides org.hibernate.sql.ast.spi.AbstractSqlAstTranslator.renderStringContainsExactlyPredicate.

Annotations
@Override
shouldEmulateFetchClauseback to summary
protected boolean shouldEmulateFetchClause(QueryPart queryPart)
supportsDistinctFromPredicateback to summary
protected boolean supportsDistinctFromPredicate()

Overrides org.hibernate.sql.ast.spi.AbstractSqlAstTranslator.supportsDistinctFromPredicate.

Doc from org.hibernate.sql.ast.spi.AbstractSqlAstTranslator.supportsDistinctFromPredicate.

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

Returns:boolean

True if this SQL dialect is known to support some kind of distinct from predicate; false otherwise

Annotations
@Override
supportsIntersectback to summary
protected boolean supportsIntersect()

Overrides org.hibernate.sql.ast.spi.AbstractSqlAstTranslator.supportsIntersect.

Annotations
@Override
supportsNestedSubqueryCorrelationback to summary
protected boolean supportsNestedSubqueryCorrelation()

Overrides org.hibernate.sql.ast.spi.AbstractSqlAstTranslator.supportsNestedSubqueryCorrelation.

Annotations
@Override
supportsRowValueConstructorSyntaxInInListback to summary
public boolean supportsRowValueConstructorSyntaxInInList()

Overrides org.hibernate.sql.ast.spi.AbstractSqlAstTranslator.supportsRowValueConstructorSyntaxInInList.

Doc from org.hibernate.sql.ast.spi.AbstractSqlAstTranslator.supportsRowValueConstructorSyntaxInInList.

If the dialect supports row values, does it offer such support in IN lists as well?

For example, ... where (FIRST_NAME, LAST_NAME) IN ( (?, ?), (?, ?) ) ...

Returns:boolean

True if this SQL dialect is known to support "row value constructor" syntax in the IN list; false otherwise.

Annotations
@Override
supportsRowValueConstructorSyntaxInQuantifiedPredicatesback to summary
protected boolean supportsRowValueConstructorSyntaxInQuantifiedPredicates()

Overrides org.hibernate.sql.ast.spi.AbstractSqlAstTranslator.supportsRowValueConstructorSyntaxInQuantifiedPredicates.

Doc from org.hibernate.sql.ast.spi.AbstractSqlAstTranslator.supportsRowValueConstructorSyntaxInQuantifiedPredicates.

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 ...) ...

Returns:boolean

True if this SQL dialect is known to support "row value constructor" syntax with quantified predicates; false otherwise.

Annotations
@Override
supportsRowValueConstructorSyntaxInSetback to summary
public boolean supportsRowValueConstructorSyntaxInSet()

Overrides org.hibernate.sql.ast.spi.AbstractSqlAstTranslator.supportsRowValueConstructorSyntaxInSet.

Doc from org.hibernate.sql.ast.spi.AbstractSqlAstTranslator.supportsRowValueConstructorSyntaxInSet.

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') ...

Returns:boolean

True if this SQL dialect is known to support "row value constructor" syntax in the SET clause; false otherwise.

Annotations
@Override
supportsSimpleQueryGroupingback to summary
protected boolean supportsSimpleQueryGrouping()

Overrides org.hibernate.sql.ast.spi.AbstractSqlAstTranslator.supportsSimpleQueryGrouping.

Annotations
@Override
supportsWithClauseback to summary
protected boolean supportsWithClause()

Overrides org.hibernate.sql.ast.spi.AbstractSqlAstTranslator.supportsWithClause.

Doc from org.hibernate.sql.ast.spi.AbstractSqlAstTranslator.supportsWithClause.

Whether the SQL with clause is supported.

Annotations
@Override
visitBooleanExpressionPredicateback to summary
public void visitBooleanExpressionPredicate(BooleanExpressionPredicate booleanExpressionPredicate)

Overrides org.hibernate.sql.ast.spi.AbstractSqlAstTranslator.visitBooleanExpressionPredicate.

Implements org.hibernate.sql.ast.SqlAstWalker.visitBooleanExpressionPredicate.

Annotations
@Override
visitCastTargetback to summary
public void visitCastTarget(CastTarget castTarget)

Overrides org.hibernate.sql.ast.spi.AbstractSqlAstTranslator.visitCastTarget.

Implements org.hibernate.sql.ast.SqlAstWalker.visitCastTarget.

Annotations
@Override
visitLikePredicateback to summary
public void visitLikePredicate(LikePredicate likePredicate)

Overrides org.hibernate.sql.ast.spi.AbstractSqlAstTranslator.visitLikePredicate.

Implements org.hibernate.sql.ast.SqlAstWalker.visitLikePredicate.

Annotations
@Override
visitOffsetFetchClauseback to summary
public void visitOffsetFetchClause(QueryPart queryPart)

Overrides org.hibernate.sql.ast.spi.AbstractSqlAstTranslator.visitOffsetFetchClause.

Implements org.hibernate.sql.ast.SqlAstWalker.visitOffsetFetchClause.

Annotations
@Override
visitQueryGroupback to summary
public void visitQueryGroup(QueryGroup queryGroup)

Overrides org.hibernate.sql.ast.spi.AbstractSqlAstTranslator.visitQueryGroup.

Implements org.hibernate.sql.ast.SqlAstWalker.visitQueryGroup.

Annotations
@Override
visitQuerySpecback to summary
public void visitQuerySpec(QuerySpec querySpec)

Overrides org.hibernate.sql.ast.spi.AbstractSqlAstTranslator.visitQuerySpec.

Implements org.hibernate.sql.ast.SqlAstWalker.visitQuerySpec.

Annotations
@Override
visitRecursivePathback to summary
protected void visitRecursivePath(Expression recursivePath, int sizeEstimate)

Overrides org.hibernate.sql.ast.spi.AbstractSqlAstTranslator.visitRecursivePath.

Doc from org.hibernate.sql.ast.spi.AbstractSqlAstTranslator.visitRecursivePath.

Renders the recursive path, possibly wrapping a cast expression around it, to make sure a type with proper size is chosen.

Annotations
@Override
visitValuesTableReferenceback to summary
public void visitValuesTableReference(ValuesTableReference tableReference)

Overrides org.hibernate.sql.ast.spi.AbstractSqlAstTranslator.visitValuesTableReference.

Implements org.hibernate.sql.ast.SqlAstWalker.visitValuesTableReference.

Annotations
@Override