You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by al...@apache.org on 2021/08/20 13:38:41 UTC

[ignite] branch sql-calcite updated: IGNITE-14954 Fix MONTHNAME, DAYNAME functions fail - Fixes #9311.

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

alexpl pushed a commit to branch sql-calcite
in repository https://gitbox.apache.org/repos/asf/ignite.git


The following commit(s) were added to refs/heads/sql-calcite by this push:
     new b0fc1eb  IGNITE-14954 Fix MONTHNAME, DAYNAME functions fail - Fixes #9311.
b0fc1eb is described below

commit b0fc1ebf9e1c0b0093e74b4fb5c4d9ba1af08229
Author: Aleksey Plekhanov <pl...@gmail.com>
AuthorDate: Fri Aug 20 16:36:53 2021 +0300

    IGNITE-14954 Fix MONTHNAME, DAYNAME functions fail - Fixes #9311.
    
    Signed-off-by: Aleksey Plekhanov <pl...@gmail.com>
---
 .../processors/query/calcite/exec/ExecutionContext.java  |  7 +++++++
 .../internal/processors/query/calcite/FunctionsTest.java |  7 +++++++
 .../src/test/sql/function/date/test_date_part.test       | 16 ++++++++++++++++
 .../test/sql/function/date/test_date_part.test_ignore    |  5 ++---
 4 files changed, 32 insertions(+), 3 deletions(-)

diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/ExecutionContext.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/ExecutionContext.java
index 0417571..4ddebc4 100644
--- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/ExecutionContext.java
+++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/ExecutionContext.java
@@ -18,6 +18,7 @@
 package org.apache.ignite.internal.processors.query.calcite.exec;
 
 import java.util.List;
+import java.util.Locale;
 import java.util.Map;
 import java.util.TimeZone;
 import java.util.UUID;
@@ -51,6 +52,10 @@ public class ExecutionContext<Row> implements DataContext {
     private static final TimeZone TIME_ZONE = TimeZone.getDefault(); // TODO DistributedSqlConfiguration#timeZone
 
     /** */
+    // TODO https://issues.apache.org/jira/browse/IGNITE-15276 Support other locales.
+    private static final Locale LOCALE = Locale.ENGLISH;
+
+    /** */
     private final UUID qryId;
 
     /** */
@@ -209,6 +214,8 @@ public class ExecutionContext<Row> implements DataContext {
             return startTs;
         if (Variable.LOCAL_TIMESTAMP.camelName.equals(name))
             return startTs;
+        if (Variable.LOCALE.camelName.equals(name))
+            return LOCALE;
         if (name.startsWith("?"))
             return TypeUtils.toInternal(this, params.get(name));
 
diff --git a/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/FunctionsTest.java b/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/FunctionsTest.java
index 11c80d1..eb9c601 100644
--- a/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/FunctionsTest.java
+++ b/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/FunctionsTest.java
@@ -225,6 +225,13 @@ public class FunctionsTest extends GridCommonAbstractTest {
     }
 
     /** */
+    @Test
+    public void testMonthnameDayname() {
+        checkQuery("SELECT MONTHNAME(DATE '2021-01-01')").returns("January").check();
+        checkQuery("SELECT DAYNAME(DATE '2021-01-01')").returns("Friday").check();
+    }
+
+    /** */
     private QueryChecker checkQuery(String qry) {
         return new QueryChecker(qry) {
             @Override protected QueryEngine getEngine() {
diff --git a/modules/calcite/src/test/sql/function/date/test_date_part.test b/modules/calcite/src/test/sql/function/date/test_date_part.test
index f3c067d..aecd9d7 100644
--- a/modules/calcite/src/test/sql/function/date/test_date_part.test
+++ b/modules/calcite/src/test/sql/function/date/test_date_part.test
@@ -29,6 +29,22 @@ SELECT LAST_DAY(d::timestamp) FROM dates ORDER BY d;
 1992-03-31
 1992-05-31
 
+#  monthname
+query T
+SELECT MONTHNAME(d) FROM dates ORDER BY d;
+----
+January
+March
+May
+
+#  dayname
+query T
+SELECT DAYNAME(d) FROM dates ORDER BY d;
+----
+Wednesday
+Tuesday
+Tuesday
+
 #  aliases
 query I
 SELECT DAYOFMONTH(d) FROM dates ORDER BY d;
diff --git a/modules/calcite/src/test/sql/function/date/test_date_part.test_ignore b/modules/calcite/src/test/sql/function/date/test_date_part.test_ignore
index 94d1466..9e7b2cd 100644
--- a/modules/calcite/src/test/sql/function/date/test_date_part.test_ignore
+++ b/modules/calcite/src/test/sql/function/date/test_date_part.test_ignore
@@ -1,7 +1,6 @@
 # name: test/sql/function/date/test_date_part.test
 # description: DATE_PART test
 # group: [date]
-# Ignored: https://issues.apache.org/jira/browse/IGNITE-14954
 # Ignored: https://issues.apache.org/jira/browse/IGNITE-14955
 
 statement ok
@@ -105,7 +104,7 @@ SELECT LAST_DAY(d::timestamp) FROM dates ORDER BY d;
 
 #  monthname
 query T
-SELECT MONTHNAME(d) FROM dates;
+SELECT MONTHNAME(d) FROM dates ORDER BY d;
 ----
 January
 March
@@ -113,7 +112,7 @@ May
 
 #  dayname
 query T
-SELECT DAYNAME(d) FROM dates;
+SELECT DAYNAME(d) FROM dates ORDER BY d;
 ----
 Wednesday
 Tuesday