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\".^",