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 2023/01/26 06:13:38 UTC

[ignite] branch master updated: IGNITE-18511 SQL Calcite: Add details to Calcite parser exception - Fixes #10479.

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

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


The following commit(s) were added to refs/heads/master by this push:
     new 76504371325 IGNITE-18511 SQL Calcite: Add details to Calcite parser exception - Fixes #10479.
76504371325 is described below

commit 76504371325803341e6a9162b1367478877a0122
Author: Ilhom Ulmasov <il...@gmail.com>
AuthorDate: Thu Jan 26 09:11:25 2023 +0300

    IGNITE-18511 SQL Calcite: Add details to Calcite parser exception - Fixes #10479.
    
    Signed-off-by: Aleksey Plekhanov <pl...@gmail.com>
---
 .../internal/processors/query/calcite/util/Commons.java   |  2 +-
 .../calcite/integration/TableDdlIntegrationTest.java      | 15 +++++++++++++++
 2 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/util/Commons.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/util/Commons.java
index fb51d5e9586..442ca86f000 100644
--- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/util/Commons.java
+++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/util/Commons.java
@@ -204,7 +204,7 @@ public final class Commons {
             return parse(new SourceStringReader(qry), parserCfg);
         }
         catch (SqlParseException e) {
-            throw new IgniteSQLException("Failed to parse query.", IgniteQueryErrorCode.PARSING, e);
+            throw new IgniteSQLException("Failed to parse query. " + e.getMessage(), IgniteQueryErrorCode.PARSING, e);
         }
     }
 
diff --git a/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/integration/TableDdlIntegrationTest.java b/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/integration/TableDdlIntegrationTest.java
index e8932f5dd27..57d09f5fe1e 100644
--- a/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/integration/TableDdlIntegrationTest.java
+++ b/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/integration/TableDdlIntegrationTest.java
@@ -281,6 +281,21 @@ public class TableDdlIntegrationTest extends AbstractDdlIntegrationTest {
         sql("create table if not exists my_table (id int, val varchar)");
     }
 
+    /**
+     * Create table using reserved word
+     */
+    @Test
+    public void createTableUseReservedWord() {
+        assertThrows("create table table (id int primary key, val varchar)", IgniteSQLException.class,
+            "Failed to parse query. Encountered \"table table\"");
+
+        sql("create table \"table\" (id int primary key, val varchar)");
+
+        sql("insert into \"table\" (id, val) values (0, '1')");
+
+        assertQuery("select * from \"table\" ").returns(0, "1").check();
+    }
+
     /**
      * Creates a table without a primary key and then insert a few rows.
      */