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

jiajunxie 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 a10b858664 [CALCITE-5605] Add BigQuery as supported library for CHR
a10b858664 is described below

commit a10b858664250f9005e32857e57a18b8c48ec931
Author: Tanner Clary <[email protected]>
AuthorDate: Tue Mar 21 11:52:55 2023 -0700

    [CALCITE-5605] Add BigQuery as supported library for CHR
---
 .../java/org/apache/calcite/sql/fun/SqlLibraryOperators.java |  2 +-
 site/_docs/reference.md                                      |  2 +-
 .../main/java/org/apache/calcite/test/SqlOperatorTest.java   | 12 ++++++++----
 3 files changed, 10 insertions(+), 6 deletions(-)

diff --git 
a/core/src/main/java/org/apache/calcite/sql/fun/SqlLibraryOperators.java 
b/core/src/main/java/org/apache/calcite/sql/fun/SqlLibraryOperators.java
index f00c4c5f9d..af3aa62f27 100644
--- a/core/src/main/java/org/apache/calcite/sql/fun/SqlLibraryOperators.java
+++ b/core/src/main/java/org/apache/calcite/sql/fun/SqlLibraryOperators.java
@@ -1133,7 +1133,7 @@ public abstract class SqlLibraryOperators {
 
   /** The "CHR(n)" function; returns the character whose UTF-8 code is
    * {@code n}. */
-  @LibraryOperator(libraries = {ORACLE, POSTGRESQL})
+  @LibraryOperator(libraries = {BIG_QUERY, ORACLE, POSTGRESQL})
   public static final SqlFunction CHR =
       SqlBasicFunction.create("CHR",
           ReturnTypes.CHAR,
diff --git a/site/_docs/reference.md b/site/_docs/reference.md
index b784755401..c1a441db80 100644
--- a/site/_docs/reference.md
+++ b/site/_docs/reference.md
@@ -2647,7 +2647,7 @@ BigQuery's type system uses confusingly different names 
for types and functions:
 | b | ARRAY_LENGTH(array)                            | Synonym for 
`CARDINALITY`
 | b | ARRAY_REVERSE(array)                           | Reverses elements of 
*array*
 | m s | CHAR(integer)                                | Returns the character 
whose ASCII code is *integer* % 256, or null if *integer* &lt; 0
-| o p | CHR(integer)                                 | Returns the character 
whose UTF-8 code is *integer*
+| b o p | CHR(integer)                               | Returns the character 
whose UTF-8 code is *integer*
 | b o | COSH(numeric)                                | Returns the hyperbolic 
cosine of *numeric*
 | o | CONCAT(string, string)                         | Concatenates two strings
 | b m p | CONCAT(string [, string ]*)                | Concatenates two or 
more strings
diff --git a/testkit/src/main/java/org/apache/calcite/test/SqlOperatorTest.java 
b/testkit/src/main/java/org/apache/calcite/test/SqlOperatorTest.java
index 50524b8de1..8cd4bff390 100644
--- a/testkit/src/main/java/org/apache/calcite/test/SqlOperatorTest.java
+++ b/testkit/src/main/java/org/apache/calcite/test/SqlOperatorTest.java
@@ -1747,12 +1747,16 @@ public class SqlOperatorTest {
   @Test void testChr() {
     final SqlOperatorFixture f0 = fixture()
         .setFor(SqlLibraryOperators.CHR, VM_FENNEL, VM_JAVA);
-    final SqlOperatorFixture f = f0.withLibrary(SqlLibrary.ORACLE);
-    f.checkScalar("chr(97)", "a", "CHAR(1) NOT NULL");
-    f.checkScalar("chr(48)", "0", "CHAR(1) NOT NULL");
-    f.checkScalar("chr(0)", String.valueOf('\u0000'), "CHAR(1) NOT NULL");
     f0.checkFails("^chr(97.1)^",
         "No match found for function signature CHR\\(<NUMERIC>\\)", false);
+    final Consumer<SqlOperatorFixture> consumer = f -> {
+      f.checkScalar("chr(97)", "a", "CHAR(1) NOT NULL");
+      f.checkScalar("chr(48)", "0", "CHAR(1) NOT NULL");
+      f.checkScalar("chr(0)", String.valueOf('\u0000'), "CHAR(1) NOT NULL");
+      f.checkNull("chr(null)");
+    };
+    f0.forEachLibrary(list(SqlLibrary.BIG_QUERY, SqlLibrary.ORACLE, 
SqlLibrary.POSTGRESQL),
+        consumer);
   }
 
   @Test void testSelect() {

Reply via email to