Top Description Fields Constructors Methods
org.hibernate.dialect

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

extends AbstractSqlAstTranslator<T extends JdbcOperation>
Class Inheritance
Imports
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, 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 MariaDB.
Author
Christian Beikov

Field Summary

Modifier and TypeField and Description
private final MariaDBDialect

Constructor Summary

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

Deprecated as a consequence of SessionFactoryImplementor being deprecated.

Method Summary

Modifier and TypeMethod and Description
public MariaDBDialect
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.
protected void
protected void
protected void
protected void
protected boolean
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
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
private boolean
protected boolean
supportsWithClauseInSubquery()

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

Whether the SQL with clause is supported within a subquery.
public void
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.
Inherited from org.hibernate.sql.ast.spi.AbstractSqlAstTranslator:
addAdditionalWherePredicateaddAppliedParameterBindingappendappendappendappendBackslashEscapedLikeLiteralappendSqlappendSqlappendSqlappendSqlappendSqlapplyParameterareAllResultsParametersareAllResultsParametersassertRowsOnlyFetchClauseTypecastFunctioncastNumberToStringcleanupdetermineCyclePathColumnNamedetermineLateralEmulationPredicatedetermineLockingStrategydetermineWhereClauseRestrictionWithJoinEmulationemulateCycleClauseWithRowAndArrayemulateFetchOffsetWithWindowFunctionsemulateFetchOffsetWithWindowFunctionsemulateFetchOffsetWithWindowFunctionsVisitQueryPartemulateQuantifiedTupleSubQueryPredicateemulateQueryPartTableReferenceColumnAliasingemulateSearchClauseOrderWithRowAndArrayemulateSelectTupleComparisonemulateSortSpecificationNullPrecedenceemulateSubQueryRelationalRestrictionPredicateemulateTupleComparisonemulateValuesTableReferenceColumnAliasinggetAffectedTableNamesgetAppliedParameterBindingsgetArrayContainsFunctiongetBooleanTypegetCastTypeNamegetCastTypeNamegetClauseStackgetCteStatementgetCurrentClauseStackgetCurrentCteStatementgetCurrentDmlStatementgetCurrentQueryPartgetDmlTargetTableAliasgetEffectiveLockModegetEffectiveLockModegetEffectiveLockTimeoutgetFetchClauseTypeForRowNumberinggetForUpdategetForUpdateWithClausegetFromDualForSelectOnlygetIntegerTypegetJdbcLockStrategygetJdbcParameterBindingsgetJdbcServicesgetLeftHandExpressiongetLimitgetLimitParametergetLockOptionsgetMaxRowsgetNoWaitgetOffsetParametergetParameterBindersgetParameterBindValuegetParameterRenderingModegetQueryPartForRowNumberinggetQueryPartStackgetRowsToSkipgetSelectItemReferencegetSessionFactorygetSkipLockedgetSortSpecificationsRowNumberinggetSqlgetSqlAppendergetSqlBuffergetSqlTypeNamegetSqlTypeNamegetStatementgetStringTypegetWrapperOptionshasAggregateFunctionshasLimithasLimithasNestedTableGroupsToRenderhasOffsetinlineCteTableGroupinOverOrWithinGroupClauseinterpretExpressionisCorrelatedisInRecursiveQueryPartisLiteralisParameterisRowNumberingCurrentQueryPartisRowsOnlyFetchClauseTypeisStructneedsCteInliningneedsLockingneedsMaxRowsneedsRecursiveKeywordInWithClauseneedsRowsToSkipprepareLimitOffsetParametersprocessNestedTableGroupJoinsprocessTableGroupJoinprocessTableGroupJoinsregisterAffectedTableregisterAffectedTablerenderrenderAsLiteralrenderBackslashEscapedLikePatternrenderCaseInsensitiveLikeEmulationrenderCastedrenderCombinedLimitClauserenderCombinedLimitClauserenderCommaSeparatedrenderCommaSeparatedSelectExpressionrenderCommaSeparatedSelectExpressionrenderComparisonDistinctOperatorrenderComparisonEmulateCaserenderComparisonEmulateDecoderenderComparisonEmulateDecoderenderComparisonEmulateIntersectrenderComparisonStandardrenderCteColumnsrenderCycleClauserenderDerivedTableReferencerenderExpressionAsLiteralrenderExpressionsAsSubqueryrenderFetchrenderFetchExpressionrenderFetchPlusOffsetExpressionrenderFetchPlusOffsetExpressionAsLiteralrenderFetchPlusOffsetExpressionAsSingleParameterrenderFirstClauserenderFirstClauserenderFirstSkipClauserenderFirstSkipClauserenderForUpdateClauserenderInsertIntoNoColumnsrenderIntoIntoAndTablerenderLimitOffsetClauserenderLimitOffsetClauserenderLiteralrenderMaterializationHintrenderNamedTableReferencerenderOffsetrenderOffsetExpressionrenderOffsetFetchClauserenderOffsetFetchClauserenderOrderByrenderParameterAsParameterrenderParameterAsParameterrenderPrimaryTableReferencerenderQueryGrouprenderRecursiveCteVirtualSelectionsrenderRootTableGrouprenderRowNumberrenderRowNumberingSelectItemsrenderRowsToClauserenderRowsToClauserenderSearchClauserenderSelectExpressionrenderSelectExpressionWithCastedOrInlinedPlainParametersrenderSelectSimpleComparisonrenderSelectTupleComparisonrenderSetClauserenderSkipFirstClauserenderSkipFirstClauserendersTableReferenceAliasrenderStandardCycleClauserenderStandardSearchClauserenderTableGrouprenderTableGroupJoinrenderTableReferenceIdentificationVariablerenderTableReferenceJoinsrenderTopClauserenderTopClauserenderTopStartAtClauserenderTopStartAtClauserenderTupleComparisonStandardrenderVirtualSelectionsresolveAliasedExpressionresolveAliasedExpressionresolveExpressionToAliassetLimitParametersetOffsetParametershouldInlineCtesimpleColumnWriteFragmentRenderingsupportsArrayConstructorsupportsDuplicateSelectItemsInQueryGroupsupportsFilterClausesupportsJoinInMutationStatementSubquerysupportsNestedWithClausesupportsNullPrecedencesupportsQuantifiedPredicatessupportsRecursiveClauseArrayAndRowEmulationsupportsRecursiveCycleClausesupportsRecursiveCycleUsingClausesupportsRecursiveSearchClausesupportsRowConstructorsupportsRowValueConstructorDistinctFromSyntaxsupportsRowValueConstructorGtLtSyntaxsupportsRowValueConstructorSyntaxsupportsRowValueConstructorSyntaxInInListsupportsRowValueConstructorSyntaxInInSubQuerysupportsWithClausetranslatetranslateDeletetranslateInserttranslateSelecttranslateUpdateuseOffsetFetchClausevisitAggregateColumnWriteExpressionvisitAnsiCaseSearchedExpressionvisitAnsiCaseSimpleExpressionvisitAnyvisitAssignmentvisitBetweenPredicatevisitBinaryArithmeticExpressionvisitCaseSearchedExpressionvisitCaseSearchedExpressionvisitCaseSimpleExpressionvisitCaseSimpleExpressionvisitCollationvisitColumnReferencevisitColumnWriteFragmentvisitConversionvisitCteContainervisitCteDefinitionvisitCteObjectvisitCustomTableDeletevisitCustomTableInsertvisitCustomTableUpdatevisitDecodeCaseSearchedExpressionvisitDeleteStatementvisitDeleteStatementOnlyvisitDistinctvisitDurationvisitDurationUnitvisitEntityTypeLiteralvisitEveryvisitExistsPredicatevisitExtractUnitvisitFilterFragmentPredicatevisitFilterPredicatevisitFormatvisitForUpdateClausevisitFromClausevisitFunctionTableReferencevisitGroupByClausevisitGroupedPredicatevisitHavingClausevisitInArrayPredicatevisitInListPredicatevisitInsertStatementvisitInsertStatementOnlyvisitInSubQueryPredicatevisitJdbcLiteralvisitJunctionvisitModifiedSubQueryExpressionvisitNamedTableReferencevisitNegatedPredicatevisitNullnessPredicatevisitOptionalTableUpdatevisitOrderByvisitOvervisitOverClausevisitOverClausevisitOverflowvisitParametervisitParameterAsParametervisitPartitionByClausevisitPartitionExpressionsvisitPartitionExpressionsvisitQueryLiteralvisitRelationalPredicatevisitReturningColumnsvisitReturningColumnsvisitSelectClausevisitSelectStatementvisitSelfRenderingExpressionvisitSelfRenderingPredicatevisitSetAssignmentvisitSortSpecificationvisitSortSpecificationvisitSqlFragmentPredicatevisitSqlSelectExpressionvisitSqlSelectionvisitSqlSelectionExpressionvisitSqlSelectionsvisitStandardTableDeletevisitStandardTableInsertvisitStandardTableUpdatevisitStarvisitSummarizationvisitTableGroupvisitTableGroupJoinvisitTableReferenceJoinvisitThruthnessPredicatevisitTrimSpecificationvisitTuplevisitUnaryOperationExpressionvisitUnparsedNumericLiteralvisitUpdateStatementvisitUpdateStatementOnlyvisitValuesListvisitValuesListEmulateSelectUnionvisitValuesListStandardvisitValuesTableReferencevisitWhereClausewithParameterRenderingModewithRowNumbering

Field Detail

dialectback to summary
private final MariaDBDialect dialect

Hides org.hibernate.sql.ast.spi.AbstractSqlAstTranslator.dialect.

Constructor Detail

MariaDBSqlAstTranslatorback to summary
public MariaDBSqlAstTranslator(SessionFactoryImplementor sessionFactory, Statement statement)

Deprecated

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

Method Detail

getDialectback to summary
public MariaDBDialect 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
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)
shouldEmulateLateralWithIntersectback to summary
protected boolean shouldEmulateLateralWithIntersect(QueryPart queryPart)

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

Annotations
@Override
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
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
supportsWindowFunctionsback to summary
private boolean supportsWindowFunctions()
supportsWithClauseInSubqueryback to summary
protected boolean supportsWithClauseInSubquery()

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

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

Whether the SQL with clause is supported within a subquery.

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
visitQueryPartTableReferenceback to summary
public void visitQueryPartTableReference(QueryPartTableReference tableReference)

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

Implements org.hibernate.sql.ast.SqlAstWalker.visitQueryPartTableReference.

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