diff --git a/dialect/db/oracle/src/main/java/org/eclipse/daanse/sql/dialect/db/oracle/OracleDialect.java b/dialect/db/oracle/src/main/java/org/eclipse/daanse/sql/dialect/db/oracle/OracleDialect.java index a423f16..71ae165 100644 --- a/dialect/db/oracle/src/main/java/org/eclipse/daanse/sql/dialect/db/oracle/OracleDialect.java +++ b/dialect/db/oracle/src/main/java/org/eclipse/daanse/sql/dialect/db/oracle/OracleDialect.java @@ -266,10 +266,9 @@ public StringBuilder generateOrderByNulls(CharSequence expr, boolean ascending, return generateOrderByNullsAnsi(expr, ascending, collateNullsLast); } - @Override - public boolean allowsJoinOn() { - return false; - } + // No allowsJoinOn override: Oracle reads ANSI JOIN ... ON since 9i. The false it returned was an inherited + // base-class default rather than a reason of Oracle's, and Oracle alone wrote comma joins with the join + // condition in WHERE (database run 19./20.10., the drill-through statements; F-10.6 5a). @Override public boolean allowsRegularExpressionInWhereClause() { diff --git a/dialect/db/oracle/src/test/java/org/eclipse/daanse/sql/dialect/db/oracle/OracleDialectTest.java b/dialect/db/oracle/src/test/java/org/eclipse/daanse/sql/dialect/db/oracle/OracleDialectTest.java index 4f26439..18d700d 100644 --- a/dialect/db/oracle/src/test/java/org/eclipse/daanse/sql/dialect/db/oracle/OracleDialectTest.java +++ b/dialect/db/oracle/src/test/java/org/eclipse/daanse/sql/dialect/db/oracle/OracleDialectTest.java @@ -44,6 +44,12 @@ public void setUp() throws Exception { dialect = new OracleDialect(org.eclipse.daanse.sql.dialect.api.DialectInitData.fromConnection(connection)); } + /** Oracle reads ANSI joins; comma joins were the inherited default, not an Oracle limit. */ + @Test + void anInnerJoinIsWrittenWithJoinOn() { + assertTrue(dialect.allowsJoinOn()); + } + @Test void testAllowsRegularExpressionInWhereClause() { assertTrue(dialect.allowsRegularExpressionInWhereClause());