You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@calcite.apache.org by jh...@apache.org on 2018/01/18 23:02:27 UTC
[1/2] calcite git commit: [CALCITE-2118] RelToSqlConverter should
only generate "*" if field names match (Sam Waggoner)
Repository: calcite
Updated Branches:
refs/heads/master 522f65487 -> 961b8bd2d
[CALCITE-2118] RelToSqlConverter should only generate "*" if field names match (Sam Waggoner)
Close apache/calcite#610
Project: http://git-wip-us.apache.org/repos/asf/calcite/repo
Commit: http://git-wip-us.apache.org/repos/asf/calcite/commit/adc1bb26
Tree: http://git-wip-us.apache.org/repos/asf/calcite/tree/adc1bb26
Diff: http://git-wip-us.apache.org/repos/asf/calcite/diff/adc1bb26
Branch: refs/heads/master
Commit: adc1bb265c45cef92c26b028c2fe4cc9bdead3f3
Parents: 522f654
Author: Sam Waggoner <sa...@gmail.com>
Authored: Thu Jan 18 09:04:17 2018 -0800
Committer: Julian Hyde <jh...@apache.org>
Committed: Thu Jan 18 13:30:10 2018 -0800
----------------------------------------------------------------------
.../calcite/rel/rel2sql/RelToSqlConverter.java | 2 +-
.../calcite/rel/rel2sql/SqlImplementor.java | 9 +++++--
.../rel/rel2sql/RelToSqlConverterTest.java | 27 ++++++++++++++++++++
3 files changed, 35 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/calcite/blob/adc1bb26/core/src/main/java/org/apache/calcite/rel/rel2sql/RelToSqlConverter.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rel/rel2sql/RelToSqlConverter.java b/core/src/main/java/org/apache/calcite/rel/rel2sql/RelToSqlConverter.java
index 5e9cfc2..2afda14 100644
--- a/core/src/main/java/org/apache/calcite/rel/rel2sql/RelToSqlConverter.java
+++ b/core/src/main/java/org/apache/calcite/rel/rel2sql/RelToSqlConverter.java
@@ -173,7 +173,7 @@ public class RelToSqlConverter extends SqlImplementor
public Result visit(Project e) {
Result x = visitChild(0, e.getInput());
parseCorrelTable(e, x);
- if (isStar(e.getChildExps(), e.getInput().getRowType())) {
+ if (isStar(e.getChildExps(), e.getInput().getRowType(), e.getRowType())) {
return x;
}
final Builder builder =
http://git-wip-us.apache.org/repos/asf/calcite/blob/adc1bb26/core/src/main/java/org/apache/calcite/rel/rel2sql/SqlImplementor.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rel/rel2sql/SqlImplementor.java b/core/src/main/java/org/apache/calcite/rel/rel2sql/SqlImplementor.java
index 0faacf5..b8a51b0 100644
--- a/core/src/main/java/org/apache/calcite/rel/rel2sql/SqlImplementor.java
+++ b/core/src/main/java/org/apache/calcite/rel/rel2sql/SqlImplementor.java
@@ -122,7 +122,11 @@ public abstract class SqlImplementor {
selectList.add(node);
}
- public static boolean isStar(List<RexNode> exps, RelDataType inputRowType) {
+ /** Returns whether a list of expressions projects all fields, in order,
+ * from the input, with the same names. */
+ public static boolean isStar(List<RexNode> exps, RelDataType inputRowType,
+ RelDataType projectRowType) {
+ assert exps.size() == projectRowType.getFieldCount();
int i = 0;
for (RexNode ref : exps) {
if (!(ref instanceof RexInputRef)) {
@@ -131,7 +135,8 @@ public abstract class SqlImplementor {
return false;
}
}
- return i == inputRowType.getFieldCount();
+ return i == inputRowType.getFieldCount()
+ && inputRowType.getFieldNames().equals(projectRowType.getFieldNames());
}
public static boolean isStar(RexProgram program) {
http://git-wip-us.apache.org/repos/asf/calcite/blob/adc1bb26/core/src/test/java/org/apache/calcite/rel/rel2sql/RelToSqlConverterTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/calcite/rel/rel2sql/RelToSqlConverterTest.java b/core/src/test/java/org/apache/calcite/rel/rel2sql/RelToSqlConverterTest.java
index e194456..54cb4cd 100644
--- a/core/src/test/java/org/apache/calcite/rel/rel2sql/RelToSqlConverterTest.java
+++ b/core/src/test/java/org/apache/calcite/rel/rel2sql/RelToSqlConverterTest.java
@@ -2261,6 +2261,33 @@ public class RelToSqlConverterTest {
.ok(expectedOracle);
}
+ /** Test case for
+ * <a href="https://issues.apache.org/jira/browse/CALCITE-2118">[CALCITE-2118]
+ * RelToSqlConverter should only generate "*" if field names match</a>. */
+ @Test public void testPreserveAlias() {
+ final String sql = "select \"warehouse_class_id\" as \"id\",\n"
+ + " \"description\"\n"
+ + "from \"warehouse_class\"";
+ final String expected = ""
+ + "SELECT \"warehouse_class_id\" AS \"id\", \"description\"\n"
+ + "FROM \"foodmart\".\"warehouse_class\"";
+ sql(sql).ok(expected);
+
+ final String sql2 = "select \"warehouse_class_id\", \"description\"\n"
+ + "from \"warehouse_class\"";
+ final String expected2 = "SELECT *\n"
+ + "FROM \"foodmart\".\"warehouse_class\"";
+ sql(sql2).ok(expected2);
+ }
+
+ @Test public void testPreservePermutation() {
+ final String sql = "select \"description\", \"warehouse_class_id\"\n"
+ + "from \"warehouse_class\"";
+ final String expected = "SELECT \"description\", \"warehouse_class_id\"\n"
+ + "FROM \"foodmart\".\"warehouse_class\"";
+ sql(sql).ok(expected);
+ }
+
/** Fluid interface to run tests. */
private static class Sql {
private CalciteAssert.SchemaSpec schemaSpec;
[2/2] calcite git commit: [CALCITE-2139] Upgrade maven checkstyle
plugin, and fix formatting (Vijay Kumar)
Posted by jh...@apache.org.
[CALCITE-2139] Upgrade maven checkstyle plugin, and fix formatting (Vijay Kumar)
Upgrade maven-checkstyle-plugin from 2.17 (checkstyle 6.11.2) to
3.0.0 (checkstyle 6.18).
Close apache/calcite#609
Change-Id: Ic025aabf3e84278d79d8034e2857bdf3382b7df3
Project: http://git-wip-us.apache.org/repos/asf/calcite/repo
Commit: http://git-wip-us.apache.org/repos/asf/calcite/commit/961b8bd2
Tree: http://git-wip-us.apache.org/repos/asf/calcite/tree/961b8bd2
Diff: http://git-wip-us.apache.org/repos/asf/calcite/diff/961b8bd2
Branch: refs/heads/master
Commit: 961b8bd2db61a9e0af99b727462d82c23694b88f
Parents: adc1bb2
Author: vijayk <vk...@hortonworks.com>
Authored: Thu Jan 18 14:37:57 2018 +0530
Committer: Julian Hyde <jh...@apache.org>
Committed: Thu Jan 18 14:32:58 2018 -0800
----------------------------------------------------------------------
.../java/org/apache/calcite/rel/rules/ProjectToWindowRule.java | 2 +-
pom.xml | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/calcite/blob/961b8bd2/core/src/main/java/org/apache/calcite/rel/rules/ProjectToWindowRule.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rel/rules/ProjectToWindowRule.java b/core/src/main/java/org/apache/calcite/rel/rules/ProjectToWindowRule.java
index 2a37522..4b7a4dc 100644
--- a/core/src/main/java/org/apache/calcite/rel/rules/ProjectToWindowRule.java
+++ b/core/src/main/java/org/apache/calcite/rel/rules/ProjectToWindowRule.java
@@ -196,7 +196,7 @@ public abstract class ProjectToWindowRule extends RelOptRule {
return program.expandLocalRef(a0);
}
}),
- calc.getRowType().getFieldNames());
+ calc.getRowType().getFieldNames());
}
return relBuilder.build();
}
http://git-wip-us.apache.org/repos/asf/calcite/blob/961b8bd2/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 9655174..dcd367d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -100,7 +100,7 @@ limitations under the License.
<jmh.version>1.12</jmh.version>
<jsoup.version>1.10.2</jsoup.version>
<junit.version>4.12</junit.version>
- <maven-checkstyle-plugin.version>2.17</maven-checkstyle-plugin.version>
+ <maven-checkstyle-plugin.version>3.0.0</maven-checkstyle-plugin.version>
<maven-dependency-plugin.version>2.10</maven-dependency-plugin.version>
<!-- Apache 18 has 3.0.1, but need 3.0.2 for [MSOURCES-94]. -->
<maven-jar-plugin.version>3.0.2</maven-jar-plugin.version>