You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by am...@apache.org on 2022/10/17 14:47:48 UTC
[ignite] branch master updated: IGNITE-17870 SQL. Do not yield separate query result for comments (#10303)
This is an automated email from the ASF dual-hosted git repository.
amashenkov 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 5c1fbd8d652 IGNITE-17870 SQL. Do not yield separate query result for comments (#10303)
5c1fbd8d652 is described below
commit 5c1fbd8d6522ed1df83bbcfb1d4dc02ffa91f7ed
Author: Andrew V. Mashenkov <AM...@users.noreply.github.com>
AuthorDate: Mon Oct 17 17:47:40 2022 +0300
IGNITE-17870 SQL. Do not yield separate query result for comments (#10303)
---
.../sql/SqlParserMultiStatementSelfTest.java | 38 ++++++++++++++++++++++
.../processors/query/h2/IgniteH2Indexing.java | 3 ++
.../query/MultipleStatementsSqlQuerySelfTest.java | 8 +++--
3 files changed, 47 insertions(+), 2 deletions(-)
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/sql/SqlParserMultiStatementSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/sql/SqlParserMultiStatementSelfTest.java
index b511cdc188d..840a880300e 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/sql/SqlParserMultiStatementSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/sql/SqlParserMultiStatementSelfTest.java
@@ -63,6 +63,44 @@ public class SqlParserMultiStatementSelfTest extends SqlParserAbstractSelfTest {
*/
@Test
public void testComments() {
+ String sql = " -- Creating new index \n" +
+ " CREATE INDEX IDX1 on TABLE1(id); \n" +
+ " -- Creating one more index \n" +
+ " CREATE INDEX IDX2 on TABLE2(id); \n" +
+ " -- All done.";
+
+ SqlParser parser = new SqlParser("schema", sql);
+
+ // Haven't parse anything yet.
+ assertEquals(null, parser.lastCommandSql());
+ assertEquals(sql, parser.remainingSql());
+
+ SqlCommand cmd = parser.nextCommand();
+
+ assertTrue(cmd instanceof SqlCreateIndexCommand);
+ assertEquals("CREATE INDEX IDX1 on TABLE1(id)", parser.lastCommandSql());
+ assertEquals(" \n -- Creating one more index \n" +
+ " CREATE INDEX IDX2 on TABLE2(id); \n" +
+ " -- All done.", parser.remainingSql());
+
+ cmd = parser.nextCommand();
+
+ assertTrue(cmd instanceof SqlCreateIndexCommand);
+ assertEquals("CREATE INDEX IDX2 on TABLE2(id)", parser.lastCommandSql());
+ assertEquals(" \n -- All done.", parser.remainingSql());
+
+ cmd = parser.nextCommand();
+
+ assertNull(cmd);
+ assertEquals(null, parser.lastCommandSql());
+ assertEquals(null, parser.remainingSql());
+ }
+
+ /**
+ * Check that comments between statements work.
+ */
+ @Test
+ public void testEmptyTransaction() {
String beginSql = "BEGIN ;" + " \n";
String noteSql = " -- Let's start an empty transaction; $1M idea!\n";
String commitSql = "COMMIT;" + ";;";
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
index 2463cba9677..dbf55a4aef2 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
@@ -1032,6 +1032,9 @@ public class IgniteH2Indexing implements GridQueryIndexing {
assert cmd != null;
+ if (cmd.noOp() && remainingQry == null && newQryDesc.sql().isEmpty())
+ continue;
+
FieldsQueryCursor<List<?>> cmdRes = executeCommand(
newQryDesc,
newQryParams,
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/MultipleStatementsSqlQuerySelfTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/MultipleStatementsSqlQuerySelfTest.java
index b3006120398..90381aa01a7 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/MultipleStatementsSqlQuerySelfTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/MultipleStatementsSqlQuerySelfTest.java
@@ -54,11 +54,15 @@ public class MultipleStatementsSqlQuerySelfTest extends AbstractIndexingCommonTe
GridQueryProcessor qryProc = node.context().query();
SqlFieldsQuery qry = new SqlFieldsQuery(
+ "-- Creating table \n" +
"create table test(ID int primary key, NAME varchar(20)); " +
+ " -- Adding data \n" +
"insert into test (ID, NAME) values (1, 'name_1');" +
"insert into test (ID, NAME) values (2, 'name_2'), (3, 'name_3');" +
- "select * from test;")
- .setSchema("PUBLIC");
+ " -- Query data \n" +
+ "select * from test;" +
+ " -- All done."
+ ).setSchema("PUBLIC");
List<FieldsQueryCursor<List<?>>> res = qryProc.querySqlFields(qry, true, false);