Top Description Constructors Methods
org.hibernate.dialect

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

extends AbstractSqlAstTranslator<T extends JdbcOperation>
Class Inheritance
Imports
java.util.List, java.util.function.Consumer, org.hibernate.engine.spi.SessionFactoryImplementor, org.hibernate.metamodel.mapping.JdbcMappingContainer, org.hibernate.query.sqm.BinaryArithmeticOperator, .ComparisonOperator, org.hibernate.sql.ast.SqlAstNodeRenderingMode, org.hibernate.sql.ast.spi.AbstractSqlAstTranslator, .SqlSelection, org.hibernate.sql.ast.tree.Statement, org.hibernate.sql.ast.tree.expression.BinaryArithmeticExpression, .CaseSearchedExpression, .CaseSimpleExpression, .Expression, .Literal, .SqlTuple, .Summarization, org.hibernate.sql.ast.tree.predicate.BooleanExpressionPredicate, .InArrayPredicate, org.hibernate.sql.ast.tree.select.QueryPart, org.hibernate.sql.exec.spi.JdbcOperation, org.hibernate.type.descriptor.jdbc.ArrayJdbcType

A SQL AST translator for HSQL.
Author
Christian Beikov

Constructor Summary

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

Deprecated as a consequence of SessionFactoryImplementor being deprecated.

Method Summary

Modifier and TypeMethod and Description
protected boolean
protected boolean
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 String
protected void
protected void
protected void
protected void
protected void
protected boolean
public boolean
private boolean
protected boolean
supportsRecursiveClauseArrayAndRowEmulation()

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

Whether the recursive search and cycle clause emulations based on the array and row constructor is supported.
protected boolean
supportsRowValueConstructorSyntax()

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

Is this dialect known to support what ANSI-SQL terms "row value constructor" syntax; sometimes called tuple syntax.
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.
protected boolean
supportsWithClauseInSubquery()

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

Whether the SQL with clause is supported within a subquery.
protected void
protected 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:
addAdditionalWherePredicateaddAppliedParameterBindingappendappendappendappendBackslashEscapedLikeLiteralappendSqlappendSqlappendSqlappendSqlappendSqlapplyParameterareAllResultsParametersareAllResultsParametersassertRowsOnlyFetchClauseTypecastFunctioncastNumberToStringcleanupdetermineCyclePathColumnNamedetermineLateralEmulationPredicatedetermineLockingStrategydetermineWhereClauseRestrictionWithJoinEmulationemulateCycleClauseWithRowAndArrayemulateFetchOffsetWithWindowFunctionsemulateFetchOffsetWithWindowFunctionsemulateFetchOffsetWithWindowFunctionsVisitQueryPartemulateQuantifiedTupleSubQueryPredicateemulateQueryPartTableReferenceColumnAliasingemulateSearchClauseOrderWithRowAndArrayemulateSelectTupleComparisonemulateSortSpecificationNullPrecedenceemulateSubQueryRelationalRestrictionPredicateemulateTupleComparisonemulateValuesTableReferenceColumnAliasinggetAffectedTableNamesgetAppliedParameterBindingsgetArrayContainsFunctiongetBooleanTypegetCastTypeNamegetCastTypeNamegetClauseStackgetCteStatementgetCurrentClauseStackgetCurrentCteStatementgetCurrentDmlStatementgetCurrentQueryPartgetDialectgetDmlTargetTableAliasgetEffectiveLockModegetEffectiveLockModegetEffectiveLockTimeoutgetFetchClauseTypeForRowNumberinggetForSharegetForUpdategetForUpdateWithClausegetIntegerTypegetJdbcLockStrategygetJdbcParameterBindingsgetJdbcServicesgetLeftHandExpressiongetLimitgetLimitParametergetLockOptionsgetMaxRowsgetNoWaitgetOffsetParametergetParameterBindersgetParameterBindValuegetParameterRenderingModegetQueryPartForRowNumberinggetQueryPartStackgetRowsToSkipgetSelectItemReferencegetSessionFactorygetSkipLockedgetSortSpecificationsRowNumberinggetSqlgetSqlAppendergetSqlBuffergetSqlTypeNamegetSqlTypeNamegetStatementgetStringTypegetWrapperOptionshasAggregateFunctionshasLimithasLimithasNestedTableGroupsToRenderhasOffsetinlineCteTableGroupinOverOrWithinGroupClauseinterpretExpressionisCorrelatedisInRecursiveQueryPartisLiteralisParameterisRowNumberingCurrentQueryPartisRowsOnlyFetchClauseTypeisStructneedsCteInliningneedsLockingneedsMaxRowsneedsRecursiveKeywordInWithClauseneedsRowsToSkipprepareLimitOffsetParametersprocessNestedTableGroupJoinsprocessTableGroupJoinprocessTableGroupJoinsregisterAffectedTableregisterAffectedTablerenderrenderAsLiteralrenderBackslashEscapedLikePatternrenderCaseInsensitiveLikeEmulationrenderCastedrenderCombinedLimitClauserenderCombinedLimitClauserenderCommaSeparatedrenderCommaSeparatedSelectExpressionrenderCommaSeparatedSelectExpressionrenderComparisonDistinctOperatorrenderComparisonEmulateCaserenderComparisonEmulateDecoderenderComparisonEmulateDecoderenderComparisonEmulateIntersectrenderComparisonStandardrenderCteColumnsrenderCycleClauserenderDerivedTableReferencerenderExpressionAsLiteralrenderExpressionsAsSubqueryrenderFetchrenderFetchExpressionrenderFetchPlusOffsetExpressionrenderFetchPlusOffsetExpressionAsLiteralrenderFetchPlusOffsetExpressionAsSingleParameterrenderFirstClauserenderFirstClauserenderFirstSkipClauserenderFirstSkipClauserenderForUpdateClauserenderInsertIntoNoColumnsrenderIntoIntoAndTablerenderLimitOffsetClauserenderLimitOffsetClauserenderLiteralrenderMaterializationHintrenderNamedTableReferencerenderOffsetrenderOffsetExpressionrenderOffsetFetchClauserenderOffsetFetchClauserenderOrderByrenderParameterAsParameterrenderParameterAsParameterrenderPrimaryTableReferencerenderQueryGrouprenderRecursiveCteVirtualSelectionsrenderRootTableGrouprenderRowNumberrenderRowNumberingSelectItemsrenderRowsToClauserenderRowsToClauserenderSearchClauserenderSelectExpressionWithCastedOrInlinedPlainParametersrenderSelectSimpleComparisonrenderSetClauserenderSkipFirstClauserenderSkipFirstClauserendersTableReferenceAliasrenderStandardCycleClauserenderStandardSearchClauserenderStringContainsExactlyPredicaterenderTableGrouprenderTableGroupJoinrenderTableReferenceIdentificationVariablerenderTableReferenceJoinsrenderTopClauserenderTopClauserenderTopStartAtClauserenderTopStartAtClauserenderTupleComparisonStandardrenderVirtualSelectionsresolveAliasedExpressionresolveAliasedExpressionresolveExpressionToAliassetLimitParametersetOffsetParametershouldEmulateLateralWithIntersectshouldInlineCtesimpleColumnWriteFragmentRenderingsupportsDistinctFromPredicatesupportsDuplicateSelectItemsInQueryGroupsupportsIntersectsupportsJoinInMutationStatementSubquerysupportsNestedSubqueryCorrelationsupportsNestedWithClausesupportsNullPrecedencesupportsQuantifiedPredicatessupportsRecursiveCycleClausesupportsRecursiveCycleUsingClausesupportsRecursiveSearchClausesupportsRowConstructorsupportsRowValueConstructorDistinctFromSyntaxsupportsRowValueConstructorGtLtSyntaxsupportsRowValueConstructorSyntaxInInSubQuerysupportsRowValueConstructorSyntaxInSetsupportsSimpleQueryGroupingsupportsWithClausetranslatetranslateDeletetranslateInserttranslateSelecttranslateUpdateuseOffsetFetchClausevisitAggregateColumnWriteExpressionvisitAnyvisitAssignmentvisitBetweenPredicatevisitCaseSearchedExpressionvisitCaseSearchedExpressionvisitCaseSimpleExpressionvisitCaseSimpleExpressionvisitCastTargetvisitCollationvisitColumnReferencevisitColumnWriteFragmentvisitConversionvisitCteContainervisitCteDefinitionvisitCteObjectvisitCustomTableDeletevisitCustomTableInsertvisitCustomTableUpdatevisitDecodeCaseSearchedExpressionvisitDeleteStatementvisitDeleteStatementOnlyvisitDistinctvisitDurationvisitDurationUnitvisitEntityTypeLiteralvisitEveryvisitExistsPredicatevisitExtractUnitvisitFilterFragmentPredicatevisitFilterPredicatevisitFormatvisitForUpdateClausevisitFromClausevisitFunctionTableReferencevisitGroupByClausevisitGroupedPredicatevisitHavingClausevisitInListPredicatevisitInsertStatementvisitInsertStatementOnlyvisitInSubQueryPredicatevisitJdbcLiteralvisitJunctionvisitLikePredicatevisitModifiedSubQueryExpressionvisitNamedTableReferencevisitNegatedPredicatevisitNullnessPredicatevisitOptionalTableUpdatevisitOrderByvisitOvervisitOverClausevisitOverClausevisitOverflowvisitParametervisitParameterAsParametervisitPartitionByClausevisitPartitionExpressionsvisitPartitionExpressionsvisitQueryGroupvisitQueryLiteralvisitQueryPartTableReferencevisitQuerySpecvisitRelationalPredicatevisitReturningColumnsvisitReturningColumnsvisitSelectClausevisitSelectStatementvisitSelfRenderingExpressionvisitSelfRenderingPredicatevisitSetAssignmentvisitSortSpecificationvisitSortSpecificationvisitSqlFragmentPredicatevisitSqlSelectExpressionvisitSqlSelectionvisitSqlSelectionExpressionvisitSqlSelectionsvisitStandardTableDeletevisitStandardTableInsertvisitStandardTableUpdatevisitStarvisitSummarizationvisitTableGroupvisitTableGroupJoinvisitTableReferenceJoinvisitThruthnessPredicatevisitTrimSpecificationvisitTuplevisitUnaryOperationExpressionvisitUnparsedNumericLiteralvisitUpdateStatementvisitUpdateStatementOnlyvisitValuesListvisitValuesListEmulateSelectUnionvisitValuesListStandardvisitValuesTableReferencevisitWhereClausewithParameterRenderingModewithRowNumbering

Constructor Detail

HSQLSqlAstTranslatorback to summary
public HSQLSqlAstTranslator(SessionFactoryImplementor sessionFactory, Statement statement)

Deprecated

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

Method Detail

areAllResultsPlainParametersOrLiteralsback to summary
protected boolean areAllResultsPlainParametersOrLiterals(CaseSearchedExpression caseSearchedExpression)
areAllResultsPlainParametersOrLiteralsback to summary
protected boolean areAllResultsPlainParametersOrLiterals(CaseSimpleExpression caseSimpleExpression)
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
getFromDualForSelectOnlyback to summary
protected String getFromDualForSelectOnly()

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

Annotations
@Override
renderComparisonback to summary
protected void renderComparison(Expression lhs, ComparisonOperator operator, Expression rhs)

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

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
renderSelectExpressionback to summary
protected void renderSelectExpression(Expression expression)

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

Annotations
@Override
renderSelectTupleComparisonback to summary
protected void renderSelectTupleComparison(List<SqlSelection> lhsExpressions, SqlTuple tuple, ComparisonOperator operator)

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

Annotations
@Override
supportsArrayConstructorback to summary
protected boolean supportsArrayConstructor()

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

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

Whether the SQL array constructor is supported.

Annotations
@Override
supportsFilterClauseback to summary
public boolean supportsFilterClause()

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

Implements org.hibernate.sql.ast.SqlAstTranslator.supportsFilterClause.

Doc from org.hibernate.sql.ast.SqlAstTranslator.supportsFilterClause.

Whether the FILTER clause for aggregate functions is supported.

Annotations
@Override
supportsOffsetFetchClauseback to summary
private boolean supportsOffsetFetchClause()
supportsRecursiveClauseArrayAndRowEmulationback to summary
protected boolean supportsRecursiveClauseArrayAndRowEmulation()

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

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

Whether the recursive search and cycle clause emulations based on the array and row constructor is supported.

Annotations
@Override
supportsRowValueConstructorSyntaxback to summary
protected boolean supportsRowValueConstructorSyntax()

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

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

Is this dialect known to support what ANSI-SQL terms "row value constructor" syntax; sometimes called tuple syntax.

Basically, does it support syntax like ... where (FIRST_NAME, LAST_NAME) = ('Steve', 'Ebersole') ...

Returns:boolean

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

Annotations
@Override
supportsRowValueConstructorSyntaxInInListback to summary
protected 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
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
visitAnsiCaseSearchedExpressionback to summary
protected void visitAnsiCaseSearchedExpression(CaseSearchedExpression expression, Consumer<Expression> resultRenderer)

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

Annotations
@Override
visitAnsiCaseSimpleExpressionback to summary
protected void visitAnsiCaseSimpleExpression(CaseSimpleExpression expression, Consumer<Expression> resultRenderer)

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

Annotations
@Override
visitBinaryArithmeticExpressionback to summary
public void visitBinaryArithmeticExpression(BinaryArithmeticExpression arithmeticExpression)

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

Implements org.hibernate.sql.ast.SqlAstWalker.visitBinaryArithmeticExpression.

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
visitInArrayPredicateback to summary
public void visitInArrayPredicate(InArrayPredicate inArrayPredicate)

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

Implements org.hibernate.sql.ast.SqlAstWalker.visitInArrayPredicate.

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