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 2020/06/12 12:26:13 UTC

[calcite] branch master updated: [CALCITE-4061] Build should fail if Calcite code uses deprecated APIs

This is an automated email from the ASF dual-hosted git repository.

vladimirsitnikov pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/calcite.git


The following commit(s) were added to refs/heads/master by this push:
     new f099919  [CALCITE-4061] Build should fail if Calcite code uses deprecated APIs
f099919 is described below

commit f09991959dea41b8805d8cdd18572803d42e3738
Author: Vladimir Sitnikov <si...@gmail.com>
AuthorDate: Fri Jun 12 15:24:43 2020 +0300

    [CALCITE-4061] Build should fail if Calcite code uses deprecated APIs
---
 build.gradle.kts                                                  | 1 +
 .../org/apache/calcite/adapter/cassandra/CassandraSchema.java     | 8 +++++++-
 core/src/main/java/org/apache/calcite/rel/core/Window.java        | 2 +-
 core/src/main/java/org/apache/calcite/sql/SqlOverOperator.java    | 2 +-
 core/src/main/java/org/apache/calcite/sql/SqlWindow.java          | 2 +-
 .../java/org/apache/calcite/sql/validate/SqlValidatorImpl.java    | 2 ++
 core/src/test/java/org/apache/calcite/test/RelOptRulesTest.java   | 5 +++--
 .../main/java/org/apache/calcite/adapter/druid/DruidRules.java    | 3 +--
 .../main/java/org/apache/calcite/adapter/spark/HttpServer.java    | 1 -
 9 files changed, 17 insertions(+), 9 deletions(-)

diff --git a/build.gradle.kts b/build.gradle.kts
index af8e0ab..7512783 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -523,6 +523,7 @@ allprojects {
 
             configureEach<JavaCompile> {
                 options.encoding = "UTF-8"
+                options.compilerArgs.addAll(listOf("-Xlint:deprecation", "-Werror"))
             }
             configureEach<Test> {
                 useJUnitPlatform {
diff --git a/cassandra/src/main/java/org/apache/calcite/adapter/cassandra/CassandraSchema.java b/cassandra/src/main/java/org/apache/calcite/adapter/cassandra/CassandraSchema.java
index b0a2458..17b5c70 100644
--- a/cassandra/src/main/java/org/apache/calcite/adapter/cassandra/CassandraSchema.java
+++ b/cassandra/src/main/java/org/apache/calcite/adapter/cassandra/CassandraSchema.java
@@ -149,7 +149,13 @@ public class CassandraSchema extends AbstractSchema {
     this.parentSchema = parentSchema;
     this.name = name;
 
-    this.hook = Hook.TRIMMED.add(node -> {
+    this.hook = prepareHook();
+  }
+
+  @SuppressWarnings("deprecation")
+  private Hook.Closeable prepareHook() {
+    // It adds a global hook, so it should probably be replaced with a thread-local hook
+    return Hook.TRIMMED.add(node -> {
       CassandraSchema.this.addMaterializedViews();
     });
   }
diff --git a/core/src/main/java/org/apache/calcite/rel/core/Window.java b/core/src/main/java/org/apache/calcite/rel/core/Window.java
index 13d8830..71176e5 100644
--- a/core/src/main/java/org/apache/calcite/rel/core/Window.java
+++ b/core/src/main/java/org/apache/calcite/rel/core/Window.java
@@ -308,7 +308,7 @@ public abstract class Window extends SingleRel {
      * @return true when the window is non-empty
      * @see org.apache.calcite.sql.SqlWindow#isAlwaysNonEmpty()
      * @see org.apache.calcite.sql.SqlOperatorBinding#getGroupCount()
-     * @see org.apache.calcite.sql.validate.SqlValidatorImpl#resolveWindow(org.apache.calcite.sql.SqlNode, org.apache.calcite.sql.validate.SqlValidatorScope, boolean)
+     * @see org.apache.calcite.sql.validate.SqlValidatorImpl#resolveWindow(org.apache.calcite.sql.SqlNode, org.apache.calcite.sql.validate.SqlValidatorScope)
      */
     public boolean isAlwaysNonEmpty() {
       int lowerKey = lowerBound.getOrderKey();
diff --git a/core/src/main/java/org/apache/calcite/sql/SqlOverOperator.java b/core/src/main/java/org/apache/calcite/sql/SqlOverOperator.java
index 4e8d035..5f6cb3f 100644
--- a/core/src/main/java/org/apache/calcite/sql/SqlOverOperator.java
+++ b/core/src/main/java/org/apache/calcite/sql/SqlOverOperator.java
@@ -98,7 +98,7 @@ public class SqlOverOperator extends SqlBinaryOperator {
     }
 
     SqlNode window = call.operand(1);
-    SqlWindow w = validator.resolveWindow(window, scope, false);
+    SqlWindow w = validator.resolveWindow(window, scope);
 
     final int groupCount = w.isAlwaysNonEmpty() ? 1 : 0;
     final SqlCall aggCall = (SqlCall) agg;
diff --git a/core/src/main/java/org/apache/calcite/sql/SqlWindow.java b/core/src/main/java/org/apache/calcite/sql/SqlWindow.java
index 4f816d0..68c429a 100644
--- a/core/src/main/java/org/apache/calcite/sql/SqlWindow.java
+++ b/core/src/main/java/org/apache/calcite/sql/SqlWindow.java
@@ -535,7 +535,7 @@ public class SqlWindow extends SqlCall {
     SqlLiteral allowPartial = this.allowPartial;
 
     if (refName != null) {
-      SqlWindow win = validator.resolveWindow(this, operandScope, false);
+      SqlWindow win = validator.resolveWindow(this, operandScope);
       partitionList = win.partitionList;
       orderList = win.orderList;
       isRows = win.isRows;
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 c0843ca..4cbde73 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
@@ -2927,6 +2927,8 @@ public class SqlValidatorImpl implements SqlValidatorWithHints {
     return aggFinder.findAgg(select.getSelectList());
   }
 
+  @Override
+  @Deprecated
   public boolean isAggregate(SqlNode selectNode) {
     return aggFinder.findAgg(selectNode) != null;
   }
diff --git a/core/src/test/java/org/apache/calcite/test/RelOptRulesTest.java b/core/src/test/java/org/apache/calcite/test/RelOptRulesTest.java
index 1d88adc..ec2d30d 100644
--- a/core/src/test/java/org/apache/calcite/test/RelOptRulesTest.java
+++ b/core/src/test/java/org/apache/calcite/test/RelOptRulesTest.java
@@ -6173,8 +6173,9 @@ class RelOptRulesTest extends RelOptTestBase {
             FilterProjectTransposeRule.INSTANCE,
             FilterMergeRule.INSTANCE,
             ProjectMergeRule.INSTANCE,
-            new ProjectFilterTransposeRule(Project.class, Filter .class,
-                RelFactories.LOGICAL_BUILDER, exprCondition),
+            new ProjectFilterTransposeRule(Project.class, Filter.class,
+                RelFactories.LOGICAL_BUILDER, exprCondition,
+                false, false),
             EnumerableRules.ENUMERABLE_PROJECT_RULE,
             EnumerableRules.ENUMERABLE_FILTER_RULE,
             EnumerableRules.ENUMERABLE_SORT_RULE,
diff --git a/druid/src/main/java/org/apache/calcite/adapter/druid/DruidRules.java b/druid/src/main/java/org/apache/calcite/adapter/druid/DruidRules.java
index 20781dc..c3b5d1d 100644
--- a/druid/src/main/java/org/apache/calcite/adapter/druid/DruidRules.java
+++ b/druid/src/main/java/org/apache/calcite/adapter/druid/DruidRules.java
@@ -35,7 +35,6 @@ import org.apache.calcite.rel.rules.AggregateFilterTransposeRule;
 import org.apache.calcite.rel.rules.FilterAggregateTransposeRule;
 import org.apache.calcite.rel.rules.FilterProjectTransposeRule;
 import org.apache.calcite.rel.rules.ProjectFilterTransposeRule;
-import org.apache.calcite.rel.rules.ProjectSortTransposeRule;
 import org.apache.calcite.rel.rules.SortProjectTransposeRule;
 import org.apache.calcite.rel.type.RelDataType;
 import org.apache.calcite.rel.type.RelDataTypeFactory;
@@ -726,7 +725,7 @@ public class DruidRules {
    */
   @Deprecated // to be removed before 1.25
   public static class DruidProjectSortTransposeRule
-      extends ProjectSortTransposeRule {
+      extends org.apache.calcite.rel.rules.ProjectSortTransposeRule {
 
     /**
      * Creates a DruidProjectSortTransposeRule.
diff --git a/spark/src/main/java/org/apache/calcite/adapter/spark/HttpServer.java b/spark/src/main/java/org/apache/calcite/adapter/spark/HttpServer.java
index fee780e..b646005 100644
--- a/spark/src/main/java/org/apache/calcite/adapter/spark/HttpServer.java
+++ b/spark/src/main/java/org/apache/calcite/adapter/spark/HttpServer.java
@@ -62,7 +62,6 @@ class HttpServer {
 
       final ServerConnector connector = new ServerConnector(server);
       connector.setIdleTimeout(60 * 1000);
-      connector.setSoLingerTime(-1);
       connector.setPort(0);
       server.setConnectors(new Connector[] { connector });