You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@calcite.apache.org by vl...@apache.org on 2018/07/30 21:03:15 UTC

[1/5] calcite git commit: test: add testSqlAdvisorTableInSchema

Repository: calcite
Updated Branches:
  refs/heads/master 41a067718 -> 8b0973687


test: add testSqlAdvisorTableInSchema

The test validates that SQL Advisor suggets table names in autocomplete


Project: http://git-wip-us.apache.org/repos/asf/calcite/repo
Commit: http://git-wip-us.apache.org/repos/asf/calcite/commit/6496cb76
Tree: http://git-wip-us.apache.org/repos/asf/calcite/tree/6496cb76
Diff: http://git-wip-us.apache.org/repos/asf/calcite/diff/6496cb76

Branch: refs/heads/master
Commit: 6496cb76301e71911bdbe537bfa7af64b346c243
Parents: 41a0677
Author: Vladimir Sitnikov <si...@gmail.com>
Authored: Fri Oct 6 21:11:50 2017 +0300
Committer: Vladimir Sitnikov <si...@gmail.com>
Committed: Tue Jul 31 00:00:05 2018 +0300

----------------------------------------------------------------------
 .../src/test/java/org/apache/calcite/test/JdbcTest.java | 12 ++++++++++++
 1 file changed, 12 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/calcite/blob/6496cb76/core/src/test/java/org/apache/calcite/test/JdbcTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/calcite/test/JdbcTest.java b/core/src/test/java/org/apache/calcite/test/JdbcTest.java
index 6d51261..c1595b3 100644
--- a/core/src/test/java/org/apache/calcite/test/JdbcTest.java
+++ b/core/src/test/java/org/apache/calcite/test/JdbcTest.java
@@ -413,6 +413,18 @@ public class JdbcTest {
             "id=empid; names=[empid]; type=COLUMN"));
   }
 
+  @Test public void testSqlAdvisorTableInSchema()
+      throws SQLException, ClassNotFoundException {
+    adviseSql("select * from \"hr\".^",
+        CalciteAssert.checkResultUnordered(
+            "id=; names=null; type=MATCH",
+            "id=hr.dependents; names=[hr, dependents]; type=TABLE",
+            "id=hr.depts; names=[hr, depts]; type=TABLE",
+            "id=hr.emps; names=[hr, emps]; type=TABLE",
+            "id=hr.locations; names=[hr, locations]; type=TABLE",
+            "id=hr; names=[hr]; type=SCHEMA"));
+  }
+
   /**
    * Tests {@link org.apache.calcite.sql.advise.SqlAdvisorGetHintsFunction}.
    */


[3/5] calcite git commit: [CALCITE-2430] AssertionError: RelDataTypeImpl.getFieldList when SQL Advisor inspects non-struct field

Posted by vl...@apache.org.
[CALCITE-2430] AssertionError: RelDataTypeImpl.getFieldList when SQL Advisor inspects non-struct field


Project: http://git-wip-us.apache.org/repos/asf/calcite/repo
Commit: http://git-wip-us.apache.org/repos/asf/calcite/commit/1a94885a
Tree: http://git-wip-us.apache.org/repos/asf/calcite/tree/1a94885a
Diff: http://git-wip-us.apache.org/repos/asf/calcite/diff/1a94885a

Branch: refs/heads/master
Commit: 1a94885aa46216a1ab564afcf3e7968ecb54dbf9
Parents: a18a380
Author: Vladimir Sitnikov <si...@gmail.com>
Authored: Mon Jul 30 23:23:50 2018 +0300
Committer: Vladimir Sitnikov <si...@gmail.com>
Committed: Tue Jul 31 00:00:54 2018 +0300

----------------------------------------------------------------------
 .../apache/calcite/sql/validate/SqlValidatorImpl.java   | 12 +++++++-----
 .../src/test/java/org/apache/calcite/test/JdbcTest.java |  8 ++++++++
 2 files changed, 15 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/calcite/blob/1a94885a/core/src/main/java/org/apache/calcite/sql/validate/SqlValidatorImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/sql/validate/SqlValidatorImpl.java b/core/src/main/java/org/apache/calcite/sql/validate/SqlValidatorImpl.java
index 3bb0cd4..3ea6064 100644
--- a/core/src/main/java/org/apache/calcite/sql/validate/SqlValidatorImpl.java
+++ b/core/src/main/java/org/apache/calcite/sql/validate/SqlValidatorImpl.java
@@ -802,11 +802,13 @@ public class SqlValidatorImpl implements SqlValidatorWithHints {
       }
       if (ns != null) {
         RelDataType rowType = ns.getRowType();
-        for (RelDataTypeField field : rowType.getFieldList()) {
-          hintList.add(
-              new SqlMonikerImpl(
-                  field.getName(),
-                  SqlMonikerType.COLUMN));
+        if (rowType.isStruct()) {
+          for (RelDataTypeField field : rowType.getFieldList()) {
+            hintList.add(
+                new SqlMonikerImpl(
+                    field.getName(),
+                    SqlMonikerType.COLUMN));
+          }
         }
       }
 

http://git-wip-us.apache.org/repos/asf/calcite/blob/1a94885a/core/src/test/java/org/apache/calcite/test/JdbcTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/calcite/test/JdbcTest.java b/core/src/test/java/org/apache/calcite/test/JdbcTest.java
index 8261b8d..65572dc 100644
--- a/core/src/test/java/org/apache/calcite/test/JdbcTest.java
+++ b/core/src/test/java/org/apache/calcite/test/JdbcTest.java
@@ -421,6 +421,14 @@ public class JdbcTest {
             "id=; names=null; type=MATCH"));
   }
 
+  @Test public void testSqlAdvisorNonStructColumn()
+      throws SQLException, ClassNotFoundException {
+    adviseSql("select e.\"empid\".^ from \"hr\".\"emps\" e",
+        CalciteAssert.checkResultUnordered(
+            "id=*; names=[*]; type=KEYWORD",
+            "id=; names=null; type=MATCH"));
+  }
+
   @Test public void testSqlAdvisorTableInSchema()
       throws SQLException, ClassNotFoundException {
     adviseSql("select * from \"hr\".^",


[2/5] calcite git commit: [CALCITE-2429] NPE: SqlValidatorImpl.lookupFieldNamespace when SQL Advisor observes non-existing field

Posted by vl...@apache.org.
[CALCITE-2429] NPE: SqlValidatorImpl.lookupFieldNamespace when SQL Advisor observes non-existing field


Project: http://git-wip-us.apache.org/repos/asf/calcite/repo
Commit: http://git-wip-us.apache.org/repos/asf/calcite/commit/a18a3800
Tree: http://git-wip-us.apache.org/repos/asf/calcite/tree/a18a3800
Diff: http://git-wip-us.apache.org/repos/asf/calcite/diff/a18a3800

Branch: refs/heads/master
Commit: a18a380095c9f0bb3da9912748a5b368e547134f
Parents: 6496cb7
Author: Vladimir Sitnikov <si...@gmail.com>
Authored: Mon Jul 30 23:21:07 2018 +0300
Committer: Vladimir Sitnikov <si...@gmail.com>
Committed: Tue Jul 31 00:00:34 2018 +0300

----------------------------------------------------------------------
 .../org/apache/calcite/sql/validate/SqlValidatorImpl.java    | 3 +++
 core/src/test/java/org/apache/calcite/test/JdbcTest.java     | 8 ++++++++
 2 files changed, 11 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/calcite/blob/a18a3800/core/src/main/java/org/apache/calcite/sql/validate/SqlValidatorImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/sql/validate/SqlValidatorImpl.java b/core/src/main/java/org/apache/calcite/sql/validate/SqlValidatorImpl.java
index 7edcd7b..3bb0cd4 100644
--- a/core/src/main/java/org/apache/calcite/sql/validate/SqlValidatorImpl.java
+++ b/core/src/main/java/org/apache/calcite/sql/validate/SqlValidatorImpl.java
@@ -4831,6 +4831,9 @@ public class SqlValidatorImpl implements SqlValidatorWithHints {
   SqlValidatorNamespace lookupFieldNamespace(RelDataType rowType, String name) {
     final SqlNameMatcher nameMatcher = catalogReader.nameMatcher();
     final RelDataTypeField field = nameMatcher.field(rowType, name);
+    if (field == null) {
+      return null;
+    }
     return new FieldNamespace(this, field.getType());
   }
 

http://git-wip-us.apache.org/repos/asf/calcite/blob/a18a3800/core/src/test/java/org/apache/calcite/test/JdbcTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/calcite/test/JdbcTest.java b/core/src/test/java/org/apache/calcite/test/JdbcTest.java
index c1595b3..8261b8d 100644
--- a/core/src/test/java/org/apache/calcite/test/JdbcTest.java
+++ b/core/src/test/java/org/apache/calcite/test/JdbcTest.java
@@ -413,6 +413,14 @@ public class JdbcTest {
             "id=empid; names=[empid]; type=COLUMN"));
   }
 
+  @Test public void testSqlAdvisorNonExistingColumn()
+      throws SQLException, ClassNotFoundException {
+    adviseSql("select e.empdid_wrong_name.^ from \"hr\".\"emps\" e",
+        CalciteAssert.checkResultUnordered(
+            "id=*; names=[*]; type=KEYWORD",
+            "id=; names=null; type=MATCH"));
+  }
+
   @Test public void testSqlAdvisorTableInSchema()
       throws SQLException, ClassNotFoundException {
     adviseSql("select * from \"hr\".^",


[5/5] calcite git commit: Java 8: use computeIfAbsent when possible

Posted by vl...@apache.org.
Java 8: use computeIfAbsent when possible


Project: http://git-wip-us.apache.org/repos/asf/calcite/repo
Commit: http://git-wip-us.apache.org/repos/asf/calcite/commit/8b097368
Tree: http://git-wip-us.apache.org/repos/asf/calcite/tree/8b097368
Diff: http://git-wip-us.apache.org/repos/asf/calcite/diff/8b097368

Branch: refs/heads/master
Commit: 8b09736870de922b5c0b0b149732ebeacd990437
Parents: 466b327
Author: Vladimir Sitnikov <si...@gmail.com>
Authored: Mon Jul 30 23:26:13 2018 +0300
Committer: Vladimir Sitnikov <si...@gmail.com>
Committed: Tue Jul 31 00:01:10 2018 +0300

----------------------------------------------------------------------
 .../org/apache/calcite/sql/validate/SqlValidatorImpl.java     | 4 +---
 core/src/main/java/org/apache/calcite/util/NameMultimap.java  | 6 +-----
 .../test/java/org/apache/calcite/test/MockCatalogReader.java  | 7 ++-----
 .../test/concurrent/ConcurrentTestCommandGenerator.java       | 6 +-----
 4 files changed, 5 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/calcite/blob/8b097368/core/src/main/java/org/apache/calcite/sql/validate/SqlValidatorImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/sql/validate/SqlValidatorImpl.java b/core/src/main/java/org/apache/calcite/sql/validate/SqlValidatorImpl.java
index 3ea6064..da64cf8 100644
--- a/core/src/main/java/org/apache/calcite/sql/validate/SqlValidatorImpl.java
+++ b/core/src/main/java/org/apache/calcite/sql/validate/SqlValidatorImpl.java
@@ -4825,9 +4825,7 @@ public class SqlValidatorImpl implements SqlValidatorWithHints {
 
   public void setOriginal(SqlNode expr, SqlNode original) {
     // Don't overwrite the original original.
-    if (originalExprs.get(expr) == null) {
-      originalExprs.put(expr, original);
-    }
+    originalExprs.putIfAbsent(expr, original);
   }
 
   SqlValidatorNamespace lookupFieldNamespace(RelDataType rowType, String name) {

http://git-wip-us.apache.org/repos/asf/calcite/blob/8b097368/core/src/main/java/org/apache/calcite/util/NameMultimap.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/util/NameMultimap.java b/core/src/main/java/org/apache/calcite/util/NameMultimap.java
index 5422983..ecab012 100644
--- a/core/src/main/java/org/apache/calcite/util/NameMultimap.java
+++ b/core/src/main/java/org/apache/calcite/util/NameMultimap.java
@@ -50,11 +50,7 @@ public class NameMultimap<V> {
 
   /** Adds an entry to this multimap. */
   public void put(String name, V v) {
-    List<V> list = map.get(name);
-    if (list == null) {
-      list = new ArrayList<>();
-      map.put(name, list);
-    }
+    List<V> list = map.computeIfAbsent(name, k -> new ArrayList<>());
     list.add(v);
   }
 

http://git-wip-us.apache.org/repos/asf/calcite/blob/8b097368/core/src/test/java/org/apache/calcite/test/MockCatalogReader.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/calcite/test/MockCatalogReader.java b/core/src/test/java/org/apache/calcite/test/MockCatalogReader.java
index 663a98e..9106524 100644
--- a/core/src/test/java/org/apache/calcite/test/MockCatalogReader.java
+++ b/core/src/test/java/org/apache/calcite/test/MockCatalogReader.java
@@ -1408,11 +1408,8 @@ public class MockCatalogReader extends CalciteCatalogReader {
       this.defaultColumnGroup = defaultColumnGroup;
       for (Ord<CompoundNameColumn> column : Ord.zip(columns)) {
         nameMap.put(column.e.getName(), column.i);
-        Map<String, Integer> subMap = groupMap.get(column.e.first);
-        if (subMap == null) {
-          subMap = new HashMap<>();
-          groupMap.put(column.e.first, subMap);
-        }
+        Map<String, Integer> subMap =
+            groupMap.computeIfAbsent(column.e.first, k -> new HashMap<>());
         subMap.put(column.e.second, column.i);
       }
     }

http://git-wip-us.apache.org/repos/asf/calcite/blob/8b097368/core/src/test/java/org/apache/calcite/test/concurrent/ConcurrentTestCommandGenerator.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/calcite/test/concurrent/ConcurrentTestCommandGenerator.java b/core/src/test/java/org/apache/calcite/test/concurrent/ConcurrentTestCommandGenerator.java
index e1c2e4d..5e5f042 100644
--- a/core/src/test/java/org/apache/calcite/test/concurrent/ConcurrentTestCommandGenerator.java
+++ b/core/src/test/java/org/apache/calcite/test/concurrent/ConcurrentTestCommandGenerator.java
@@ -347,11 +347,7 @@ public class ConcurrentTestCommandGenerator {
     assert order > 0;
 
     TreeMap<Integer, ConcurrentTestCommand> commandMap =
-        threadMap.get(threadId);
-    if (commandMap == null) {
-      commandMap = new TreeMap<Integer, ConcurrentTestCommand>();
-      threadMap.put(threadId, commandMap);
-    }
+        threadMap.computeIfAbsent(threadId, k -> new TreeMap<>());
 
     // check for duplicate order numbers
     assert !commandMap.containsKey(order);


[4/5] calcite git commit: [CALCITE-2431] AssertionError: SqlUtil.getAncestry when providing completion hints for sub-schema

Posted by vl...@apache.org.
[CALCITE-2431] AssertionError: SqlUtil.getAncestry when providing completion hints for sub-schema


Project: http://git-wip-us.apache.org/repos/asf/calcite/repo
Commit: http://git-wip-us.apache.org/repos/asf/calcite/commit/466b3279
Tree: http://git-wip-us.apache.org/repos/asf/calcite/tree/466b3279
Diff: http://git-wip-us.apache.org/repos/asf/calcite/diff/466b3279

Branch: refs/heads/master
Commit: 466b3279dcc7a274349ecbbde94b562eb50a043b
Parents: 1a94885
Author: Vladimir Sitnikov <si...@gmail.com>
Authored: Mon Jul 30 23:25:17 2018 +0300
Committer: Vladimir Sitnikov <si...@gmail.com>
Committed: Tue Jul 31 00:01:09 2018 +0300

----------------------------------------------------------------------
 .../java/org/apache/calcite/sql/advise/SqlAdvisor.java  |  3 +--
 .../src/test/java/org/apache/calcite/test/JdbcTest.java | 12 ++++++++++++
 2 files changed, 13 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/calcite/blob/466b3279/core/src/main/java/org/apache/calcite/sql/advise/SqlAdvisor.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/sql/advise/SqlAdvisor.java b/core/src/main/java/org/apache/calcite/sql/advise/SqlAdvisor.java
index 5395fac..cafa612 100644
--- a/core/src/main/java/org/apache/calcite/sql/advise/SqlAdvisor.java
+++ b/core/src/main/java/org/apache/calcite/sql/advise/SqlAdvisor.java
@@ -241,8 +241,7 @@ public class SqlAdvisor {
       final SqlParserPos pos) {
     List<SqlNode> nodes = SqlUtil.getAncestry(root,
         input -> input instanceof SqlIdentifier
-            && Util.last(((SqlIdentifier) input).names)
-                .equals(UPPER_HINT_TOKEN),
+            && ((SqlIdentifier) input).names.contains(UPPER_HINT_TOKEN),
         input -> Objects.requireNonNull(input).getParserPosition()
             .startsAt(pos));
     assert nodes.get(0) == root;

http://git-wip-us.apache.org/repos/asf/calcite/blob/466b3279/core/src/test/java/org/apache/calcite/test/JdbcTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/calcite/test/JdbcTest.java b/core/src/test/java/org/apache/calcite/test/JdbcTest.java
index 65572dc..94507b5 100644
--- a/core/src/test/java/org/apache/calcite/test/JdbcTest.java
+++ b/core/src/test/java/org/apache/calcite/test/JdbcTest.java
@@ -429,6 +429,18 @@ public class JdbcTest {
             "id=; names=null; type=MATCH"));
   }
 
+  @Test public void testSqlAdvisorSubSchema()
+      throws SQLException, ClassNotFoundException {
+    adviseSql("select * from \"hr\".^.test_test_test",
+        CalciteAssert.checkResultUnordered(
+            "id=; names=null; type=MATCH",
+            "id=hr.dependents; names=[hr, dependents]; type=TABLE",
+            "id=hr.depts; names=[hr, depts]; type=TABLE",
+            "id=hr.emps; names=[hr, emps]; type=TABLE",
+            "id=hr.locations; names=[hr, locations]; type=TABLE",
+            "id=hr; names=[hr]; type=SCHEMA"));
+  }
+
   @Test public void testSqlAdvisorTableInSchema()
       throws SQLException, ClassNotFoundException {
     adviseSql("select * from \"hr\".^",