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* < 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() {