Top Description Fields Constructors Methods
org.hibernate.dialect

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

extends AbstractSqlAstTranslator<T extends JdbcOperation>
Class Inheritance
Imports
java.util.List, org.hibernate.MappingException, org.hibernate.engine.spi.SessionFactoryImplementor, org.hibernate.query.sqm.BinaryArithmeticOperator, .ComparisonOperator, org.hibernate.sql.ast.SqlAstNodeRenderingMode, org.hibernate.sql.ast.spi.AbstractSqlAstTranslator, org.hibernate.sql.ast.tree.Statement, org.hibernate.sql.ast.tree.cte.CteStatement, org.hibernate.sql.ast.tree.expression.BinaryArithmeticExpression, .Expression, .Literal, .Summarization, org.hibernate.sql.ast.tree.from.FunctionTableReference, .QueryPartTableReference, org.hibernate.sql.ast.tree.insert.Values, org.hibernate.sql.ast.tree.select.QueryGroup, .QueryPart, .QuerySpec, org.hibernate.sql.exec.spi.JdbcOperation, org.hibernate.sql.model.internal.TableInsertStandard

A SQL AST translator for HANA.
Author
Christian Beikov

Field Summary

Modifier and TypeField and Description
private boolean

Constructor Summary

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

Deprecated as a consequence of SessionFactoryImplementor being deprecated.

Method Summary

Modifier and TypeMethod and Description
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 SqlAstNodeRenderingMode
protected boolean
protected void
protected void
protected void
protected boolean
protected boolean
supportsRowValueConstructorGtLtSyntax()

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

Is this dialect known to support what ANSI-SQL terms "row value constructor" syntax; sometimes called tuple syntax with <, >, ≤ and ≥ operators.
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.
public void
public void
public void
public void
public void
protected void
Inherited from org.hibernate.sql.ast.spi.AbstractSqlAstTranslator:
addAdditionalWherePredicateaddAppliedParameterBindingappendappendappendappendBackslashEscapedLikeLiteralappendSqlappendSqlappendSqlappendSqlappendSqlapplyParameterareAllResultsParametersareAllResultsParametersassertRowsOnlyFetchClauseTypecastFunctioncastNumberToStringcleanupdetermineCyclePathColumnNamedetermineLateralEmulationPredicatedetermineLockingStrategydetermineWhereClauseRestrictionWithJoinEmulationemulateCycleClauseWithRowAndArrayemulateFetchOffsetWithWindowFunctionsemulateFetchOffsetWithWindowFunctionsemulateFetchOffsetWithWindowFunctionsVisitQueryPartemulateQuantifiedTupleSubQueryPredicateemulateQueryPartTableReferenceColumnAliasingemulateSearchClauseOrderWithRowAndArrayemulateSelectTupleComparisonemulateSortSpecificationNullPrecedenceemulateSubQueryRelationalRestrictionPredicateemulateTupleComparisonemulateValuesTableReferenceColumnAliasinggetAffectedTableNamesgetAppliedParameterBindingsgetArrayContainsFunctiongetBooleanTypegetCastTypeNamegetCastTypeNamegetClauseStackgetCteStatementgetCurrentClauseStackgetCurrentCteStatementgetCurrentDmlStatementgetCurrentQueryPartgetDialectgetDmlTargetTableAliasgetEffectiveLockModegetEffectiveLockModegetEffectiveLockTimeoutgetFetchClauseTypeForRowNumberinggetForSharegetForUpdategetForUpdateWithClausegetIntegerTypegetJdbcLockStrategygetJdbcParameterBindingsgetJdbcServicesgetLeftHandExpressiongetLimitgetLimitParametergetLockOptionsgetMaxRowsgetNoWaitgetOffsetParametergetParameterBindersgetParameterBindValuegetQueryPartForRowNumberinggetQueryPartStackgetRowsToSkipgetSelectItemReferencegetSessionFactorygetSkipLockedgetSortSpecificationsRowNumberinggetSqlgetSqlAppendergetSqlBuffergetSqlTypeNamegetSqlTypeNamegetStatementgetStringTypegetWrapperOptionshasAggregateFunctionshasLimithasLimithasNestedTableGroupsToRenderhasOffsetinlineCteTableGroupinOverOrWithinGroupClauseinterpretExpressionisInRecursiveQueryPartisLiteralisParameterisRowNumberingCurrentQueryPartisRowsOnlyFetchClauseTypeisStructneedsCteInliningneedsLockingneedsMaxRowsneedsRecursiveKeywordInWithClauseneedsRowsToSkipprepareLimitOffsetParametersprocessNestedTableGroupJoinsprocessTableGroupJoinprocessTableGroupJoinsregisterAffectedTableregisterAffectedTablerenderrenderAsLiteralrenderBackslashEscapedLikePatternrenderCaseInsensitiveLikeEmulationrenderCastedrenderCombinedLimitClauserenderCombinedLimitClauserenderCommaSeparatedrenderCommaSeparatedSelectExpressionrenderCommaSeparatedSelectExpressionrenderComparisonDistinctOperatorrenderComparisonEmulateCaserenderComparisonEmulateDecoderenderComparisonEmulateDecoderenderComparisonEmulateIntersectrenderComparisonStandardrenderCteColumnsrenderCycleClauserenderDerivedTableReferencerenderExpressionAsClauseItemrenderExpressionAsLiteralrenderExpressionsAsSubqueryrenderFetchrenderFetchExpressionrenderFetchPlusOffsetExpressionrenderFetchPlusOffsetExpressionAsLiteralrenderFetchPlusOffsetExpressionAsSingleParameterrenderFirstClauserenderFirstClauserenderFirstSkipClauserenderFirstSkipClauserenderForUpdateClauserenderIntoIntoAndTablerenderLimitOffsetClauserenderLimitOffsetClauserenderLiteralrenderMaterializationHintrenderNamedTableReferencerenderOffsetrenderOffsetExpressionrenderOffsetFetchClauserenderOffsetFetchClauserenderOrderByrenderParameterAsParameterrenderParameterAsParameterrenderPrimaryTableReferencerenderQueryGrouprenderRecursiveCteVirtualSelectionsrenderRootTableGrouprenderRowNumberrenderRowNumberingSelectItemsrenderRowsToClauserenderRowsToClauserenderSearchClauserenderSelectExpressionrenderSelectExpressionWithCastedOrInlinedPlainParametersrenderSelectSimpleComparisonrenderSelectTupleComparisonrenderSetClauserenderSkipFirstClauserenderSkipFirstClauserendersTableReferenceAliasrenderStandardCycleClauserenderStandardSearchClauserenderStringContainsExactlyPredicaterenderTableGrouprenderTableGroupJoinrenderTableReferenceIdentificationVariablerenderTableReferenceJoinsrenderTopClauserenderTopClauserenderTopStartAtClauserenderTopStartAtClauserenderTupleComparisonStandardrenderVirtualSelectionsresolveAliasedExpressionresolveAliasedExpressionresolveExpressionToAliassetLimitParametersetOffsetParametershouldEmulateLateralWithIntersectshouldInlineCtesimpleColumnWriteFragmentRenderingsupportsArrayConstructorsupportsDistinctFromPredicatesupportsDuplicateSelectItemsInQueryGroupsupportsFilterClausesupportsIntersectsupportsJoinInMutationStatementSubquerysupportsNestedSubqueryCorrelationsupportsNestedWithClausesupportsNullPrecedencesupportsQuantifiedPredicatessupportsRecursiveClauseArrayAndRowEmulationsupportsRecursiveCycleClausesupportsRecursiveCycleUsingClausesupportsRecursiveSearchClausesupportsRowConstructorsupportsRowValueConstructorDistinctFromSyntaxsupportsRowValueConstructorSyntaxsupportsRowValueConstructorSyntaxInInListsupportsRowValueConstructorSyntaxInInSubQuerysupportsRowValueConstructorSyntaxInSetsupportsSimpleQueryGroupingsupportsWithClausetranslatetranslateDeletetranslateInserttranslateSelecttranslateUpdateuseOffsetFetchClausevisitAggregateColumnWriteExpressionvisitAnsiCaseSearchedExpressionvisitAnsiCaseSimpleExpressionvisitAnyvisitAssignmentvisitBetweenPredicatevisitBinaryArithmeticExpressionvisitBooleanExpressionPredicatevisitCaseSearchedExpressionvisitCaseSearchedExpressionvisitCaseSimpleExpressionvisitCaseSimpleExpressionvisitCastTargetvisitCollationvisitColumnReferencevisitColumnWriteFragmentvisitConversionvisitCteContainervisitCteDefinitionvisitCteObjectvisitCustomTableDeletevisitCustomTableInsertvisitCustomTableUpdatevisitDecodeCaseSearchedExpressionvisitDeleteStatementvisitDeleteStatementOnlyvisitDistinctvisitDurationvisitDurationUnitvisitEntityTypeLiteralvisitEveryvisitExistsPredicatevisitExtractUnitvisitFilterFragmentPredicatevisitFilterPredicatevisitFormatvisitForUpdateClausevisitFromClausevisitGroupByClausevisitGroupedPredicatevisitHavingClausevisitInArrayPredicatevisitInListPredicatevisitInsertStatementvisitInsertStatementOnlyvisitInSubQueryPredicatevisitJdbcLiteralvisitJunctionvisitLikePredicatevisitModifiedSubQueryExpressionvisitNamedTableReferencevisitNegatedPredicatevisitNullnessPredicatevisitOptionalTableUpdatevisitOrderByvisitOvervisitOverClausevisitOverClausevisitOverflowvisitParametervisitParameterAsParametervisitPartitionByClausevisitPartitionExpressionsvisitPartitionExpressionsvisitQueryLiteralvisitRecursivePathvisitRelationalPredicatevisitReturningColumnsvisitReturningColumnsvisitSelectClausevisitSelectStatementvisitSelfRenderingExpressionvisitSelfRenderingPredicatevisitSetAssignmentvisitSortSpecificationvisitSortSpecificationvisitSqlFragmentPredicatevisitSqlSelectExpressionvisitSqlSelectionvisitSqlSelectionExpressionvisitSqlSelectionsvisitStandardTableDeletevisitStandardTableInsertvisitStandardTableUpdatevisitStarvisitSummarizationvisitTableGroupvisitTableGroupJoinvisitTableReferenceJoinvisitThruthnessPredicatevisitTrimSpecificationvisitTuplevisitUnaryOperationExpressionvisitUnparsedNumericLiteralvisitUpdateStatementvisitUpdateStatementOnlyvisitValuesListEmulateSelectUnionvisitValuesListStandardvisitValuesTableReferencevisitWhereClausewithParameterRenderingModewithRowNumbering

Field Detail

inLateralback to summary
private boolean inLateral

Constructor Detail

HANASqlAstTranslatorback to summary
public HANASqlAstTranslator(SessionFactoryImplementor sessionFactory, Statement statement)

Deprecated

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

Method Detail

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
getParameterRenderingModeback to summary
protected SqlAstNodeRenderingMode getParameterRenderingMode()

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

Annotations
@Override
isCorrelatedback to summary
protected boolean isCorrelated(CteStatement cteStatement)

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

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

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

Annotations
@Override
renderInsertIntoNoColumnsback to summary
protected void renderInsertIntoNoColumns(TableInsertStandard tableInsert)

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

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

Handle rendering an insert with no columns

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

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

Annotations
@Override
shouldEmulateFetchClauseback to summary
protected boolean shouldEmulateFetchClause(QueryPart queryPart)
supportsRowValueConstructorGtLtSyntaxback to summary
protected boolean supportsRowValueConstructorGtLtSyntax()

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

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

Is this dialect known to support what ANSI-SQL terms "row value constructor" syntax; sometimes called tuple syntax with <, >, ≤ and ≥ operators.

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 with relational comparison operators; 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
visitFunctionTableReferenceback to summary
public void visitFunctionTableReference(FunctionTableReference tableReference)

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

Implements org.hibernate.sql.ast.SqlAstWalker.visitFunctionTableReference.

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
visitValuesListback to summary
protected void visitValuesList(List<Values> valuesList)

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

Annotations
@Override