This is an automated email from the ASF dual-hosted git repository.

zhehu pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/calcite.git


The following commit(s) were added to refs/heads/main by this push:
     new 5a0480c22e [CALCITE-7066] UNSIGNED types are not supported by 
databases like Oracle, SQL Server
5a0480c22e is described below

commit 5a0480c22e14e5a4536348022ff66bbf8ae8e433
Author: Zhe Hu <[email protected]>
AuthorDate: Sat Jun 21 08:45:05 2025 +0800

    [CALCITE-7066] UNSIGNED types are not supported by databases like Oracle, 
SQL Server
---
 .../calcite/sql/validate/SqlConformanceEnum.java       | 10 +++++++++-
 .../org/apache/calcite/sql/parser/SqlParserTest.java   | 18 ++++++++++++++++++
 2 files changed, 27 insertions(+), 1 deletion(-)

diff --git 
a/core/src/main/java/org/apache/calcite/sql/validate/SqlConformanceEnum.java 
b/core/src/main/java/org/apache/calcite/sql/validate/SqlConformanceEnum.java
index d5d99b8099..a905c0ec9c 100644
--- a/core/src/main/java/org/apache/calcite/sql/validate/SqlConformanceEnum.java
+++ b/core/src/main/java/org/apache/calcite/sql/validate/SqlConformanceEnum.java
@@ -508,6 +508,14 @@ public enum SqlConformanceEnum implements SqlConformance {
   }
 
   @Override public boolean supportsUnsignedTypes() {
-    return true;
+    switch (this) {
+    case BABEL:
+    case DEFAULT:
+    case LENIENT:
+    case MYSQL_5:
+      return true;
+    default:
+      return false;
+    }
   }
 }
diff --git 
a/testkit/src/main/java/org/apache/calcite/sql/parser/SqlParserTest.java 
b/testkit/src/main/java/org/apache/calcite/sql/parser/SqlParserTest.java
index 5846dac493..f7704aa842 100644
--- a/testkit/src/main/java/org/apache/calcite/sql/parser/SqlParserTest.java
+++ b/testkit/src/main/java/org/apache/calcite/sql/parser/SqlParserTest.java
@@ -66,6 +66,7 @@
 import java.io.Reader;
 import java.io.StringReader;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 import java.util.Locale;
 import java.util.Random;
@@ -1426,6 +1427,23 @@ private void checkLarge(int n) {
         .same();
     sql("SELECT CAST(1 AS BIGINT UNSIGNED)")
         .same();
+    List<SqlConformance> unsignedNotSupport =
+        Arrays.asList(
+          SqlConformanceEnum.ORACLE_10,
+          SqlConformanceEnum.ORACLE_12,
+          SqlConformanceEnum.BIG_QUERY,
+          SqlConformanceEnum.PRAGMATIC_99,
+          SqlConformanceEnum.PRAGMATIC_2003,
+          SqlConformanceEnum.PRESTO,
+          SqlConformanceEnum.SQL_SERVER_2008,
+          SqlConformanceEnum.STRICT_92,
+          SqlConformanceEnum.STRICT_99,
+          SqlConformanceEnum.STRICT_2003);
+    unsignedNotSupport.forEach(conformance -> {
+      sql("SELECT CAST(1 AS ^UNSIGNED^)")
+          .withConformance(conformance)
+          .fails("Support for UNSIGNED data types is not enabled");
+    });
     sql("SELECT CAST(1 AS ^UNSIGNED^)")
         .withConformance(new SqlAbstractConformance() {
           @Override public boolean supportsUnsignedTypes() {

Reply via email to