Skip to content

Commit a2b06e5

Browse files
committed
Old Informix doesn't support the 'select 1' syntax, for example
1 parent c403e77 commit a2b06e5

File tree

2 files changed

+7
-1
lines changed

2 files changed

+7
-1
lines changed

hibernate-community-dialects/src/main/java/org/hibernate/community/dialect/InformixDialect.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1111,6 +1111,11 @@ public String getDual() {
11111111
return "(select 0 from systables where tabid=1)";
11121112
}
11131113

1114+
@Override
1115+
public String getFromDualForSelectOnly() {
1116+
return getVersion().isBefore( 12,10 ) ? " from " + getDual() + " dual" : "";
1117+
}
1118+
11141119
@Override
11151120
public boolean supportsCrossJoin() {
11161121
return false;

hibernate-community-dialects/src/main/java/org/hibernate/community/dialect/InformixSqlAstTranslator.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,8 @@ protected void visitQueryClauses(QuerySpec querySpec) {
5050
visitSelectClause( querySpec.getSelectClause() );
5151
visitFromClause( querySpec.getFromClause() );
5252
if ( !hasFrom( querySpec.getFromClause() )
53-
&& hasWhere( querySpec.getWhereClauseRestrictions() ) ) {
53+
&& hasWhere( querySpec.getWhereClauseRestrictions() )
54+
&& getDialect().getFromDualForSelectOnly().isBlank() ) {
5455
append( " from " );
5556
append( getDual() );
5657
}

0 commit comments

Comments
 (0)