[CALCITE-2475] SqlAdvisor: support MINUS
Project: http://git-wip-us.apache.org/repos/asf/calcite/repo Commit: http://git-wip-us.apache.org/repos/asf/calcite/commit/4afea52a Tree: http://git-wip-us.apache.org/repos/asf/calcite/tree/4afea52a Diff: http://git-wip-us.apache.org/repos/asf/calcite/diff/4afea52a Branch: refs/heads/master Commit: 4afea52a7d50a188cd7b740deea6545013796690 Parents: 14a98e9 Author: Vladimir Sitnikov <[email protected]> Authored: Sun Aug 19 18:02:02 2018 +0300 Committer: Vladimir Sitnikov <[email protected]> Committed: Wed Sep 5 15:24:24 2018 +0300 ---------------------------------------------------------------------- .../java/org/apache/calcite/sql/advise/SqlSimpleParser.java | 4 +++- .../java/org/apache/calcite/sql/test/SqlAdvisorTest.java | 9 +++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/calcite/blob/4afea52a/core/src/main/java/org/apache/calcite/sql/advise/SqlSimpleParser.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/sql/advise/SqlSimpleParser.java b/core/src/main/java/org/apache/calcite/sql/advise/SqlSimpleParser.java index 28b66e3..7324a8f 100644 --- a/core/src/main/java/org/apache/calcite/sql/advise/SqlSimpleParser.java +++ b/core/src/main/java/org/apache/calcite/sql/advise/SqlSimpleParser.java @@ -38,7 +38,7 @@ public class SqlSimpleParser { // keywords SELECT, FROM, JOIN, ON, USING, WHERE, GROUP, HAVING, ORDER, BY, - UNION, INTERSECT, EXCEPT, + UNION, INTERSECT, EXCEPT, MINUS, /** * left parenthesis @@ -191,6 +191,7 @@ public class SqlSimpleParser { case UNION: case INTERSECT: case EXCEPT: + case MINUS: outList.add(token); if (iter.hasNext()) { token = iter.next(); @@ -236,6 +237,7 @@ public class SqlSimpleParser { case UNION: case INTERSECT: case EXCEPT: + case MINUS: subQueryList.remove(subQueryList.size() - 1); iter.previous(); break loop; http://git-wip-us.apache.org/repos/asf/calcite/blob/4afea52a/core/src/test/java/org/apache/calcite/sql/test/SqlAdvisorTest.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/org/apache/calcite/sql/test/SqlAdvisorTest.java b/core/src/test/java/org/apache/calcite/sql/test/SqlAdvisorTest.java index 8734bcd..fa6edf6 100644 --- a/core/src/test/java/org/apache/calcite/sql/test/SqlAdvisorTest.java +++ b/core/src/test/java/org/apache/calcite/sql/test/SqlAdvisorTest.java @@ -661,6 +661,15 @@ public class SqlAdvisorTest extends SqlValidatorTestCase { assertComplete(sql, list); } + @Test public void testSimlifyMinus() { + String sql; + sql = "select ^ from dummy a minus select * from dummy b"; + assertSimplify(sql, "SELECT _suggest_ FROM dummy a"); + + sql = "select * from dummy a minus select ^ from dummy b"; + assertSimplify(sql, "SELECT _suggest_ FROM dummy b"); + } + @Test public void testOnCondition() throws Exception { String sql;
