This is an automated email from the ASF dual-hosted git repository.
mbudiu 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 4fa0d5bbe9 [CALCITE-7128] SqlImplementor.toSql does not handle UUID
literals
4fa0d5bbe9 is described below
commit 4fa0d5bbe987c4ae0779ca434fb71e1ae8637b77
Author: Mihai Budiu <[email protected]>
AuthorDate: Tue Aug 5 17:46:19 2025 -0700
[CALCITE-7128] SqlImplementor.toSql does not handle UUID literals
Signed-off-by: Mihai Budiu <[email protected]>
---
.../main/java/org/apache/calcite/rel/rel2sql/SqlImplementor.java | 3 +++
.../org/apache/calcite/rel/rel2sql/RelToSqlConverterTest.java | 9 +++++++++
2 files changed, 12 insertions(+)
diff --git
a/core/src/main/java/org/apache/calcite/rel/rel2sql/SqlImplementor.java
b/core/src/main/java/org/apache/calcite/rel/rel2sql/SqlImplementor.java
index 1b92f18b96..80eb1b2887 100644
--- a/core/src/main/java/org/apache/calcite/rel/rel2sql/SqlImplementor.java
+++ b/core/src/main/java/org/apache/calcite/rel/rel2sql/SqlImplementor.java
@@ -133,6 +133,7 @@
import java.util.List;
import java.util.Map;
import java.util.Set;
+import java.util.UUID;
import java.util.function.Function;
import java.util.function.IntFunction;
import java.util.function.Predicate;
@@ -1555,6 +1556,8 @@ public static SqlNode toSql(RexLiteral literal) {
return SqlLiteral.createTimestamp(typeName,
castNonNull(literal.getValueAs(TimestampString.class)),
literal.getType().getPrecision(), POS);
+ case UUID:
+ return
SqlLiteral.createUuid(castNonNull(literal.getValueAs(UUID.class)), POS);
case BINARY:
return
SqlLiteral.createBinaryString(castNonNull(literal.getValueAs(byte[].class)),
POS);
case ANY:
diff --git
a/core/src/test/java/org/apache/calcite/rel/rel2sql/RelToSqlConverterTest.java
b/core/src/test/java/org/apache/calcite/rel/rel2sql/RelToSqlConverterTest.java
index a0b7c2425d..f0420e7919 100644
---
a/core/src/test/java/org/apache/calcite/rel/rel2sql/RelToSqlConverterTest.java
+++
b/core/src/test/java/org/apache/calcite/rel/rel2sql/RelToSqlConverterTest.java
@@ -9382,6 +9382,15 @@ private void checkLiteral2(String expression, String
expected) {
sql(sql6).ok(expected6);
}
+ /** Test case for <a
href="https://issues.apache.org/jira/browse/CALCITE-7128">[CALCITE-7128]
+ * SqlImplementor.toSql does not handle UUID literals</a>. */
+ @Test void testUuid() {
+ final String sql = "SELECT UUID '123e4567-e89b-12d3-a456-426655440000' AS
x";
+ final String expected = "SELECT *\n"
+ + "FROM (VALUES (UUID '123e4567-e89b-12d3-a456-426655440000')) AS
\"t\" (\"X\")";
+ sql(sql).ok(expected);
+ }
+
/** Test case for
* <a
href="https://issues.apache.org/jira/browse/CALCITE-6116">[CALCITE-6116]
* Add EXISTS function (enabled in Spark library)</a>. */