wForget commented on code in PR #4816:
URL: https://github.com/apache/calcite/pull/4816#discussion_r2881678658
##########
core/src/test/java/org/apache/calcite/rel/rel2sql/RelToSqlConverterTest.java:
##########
@@ -11761,4 +11775,31 @@ public Sql schema(CalciteAssert.SchemaSpec schemaSpec)
{
.ok(expected);
}
+ @Test void testNotBetween() {
+ Sql f = fixture().convertletTable(new SqlRexConvertletTable() {
+ @Override public @Nullable SqlRexConvertlet get(SqlCall call) {
+ // Override StandardConvertletTable::convertBetween to avoid
converting SqlBetweenOperator
+ if (call != null && call.getOperator() instanceof SqlBetweenOperator) {
+ return StandardConvertletTable.INSTANCE::convertCall;
+ }
+ return StandardConvertletTable.INSTANCE.get(call);
+ }
+ });
+ final String query1 = "SELECT empno FROM emp WHERE NOT (empno BETWEEN 1000
AND 2000)";
+ final String expected1 = "SELECT \"EMPNO\"\n"
+ + "FROM \"SCOTT\".\"EMP\"\n"
+ + "WHERE CAST(\"EMPNO\" AS INTEGER) NOT BETWEEN ASYMMETRIC 1000 AND
2000";
+ f.withSql(query1)
+ .schema(CalciteAssert.SchemaSpec.JDBC_SCOTT)
+ .ok(expected1);
Review Comment:
Without this change, we will get an error:
```
Expected: is "SELECT \"EMPNO\"\nFROM \"SCOTT\".\"EMP\"\nWHERE CAST(\"EMPNO\"
AS INTEGER) NOT BETWEEN ASYMMETRIC 1000 AND 2000"
but: was "SELECT \"EMPNO\"\nFROM \"SCOTT\".\"EMP\"\nWHERE
CAST(\"EMPNO\" AS INTEGER) BETWEEN ASYMMETRIC 1000 AND 2000"
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]