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]

Reply via email to