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

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


The following commit(s) were added to refs/heads/master by this push:
     new e4b9c73007 DRILL-8435: Pin the version of Calcite in the master branch 
(#2804)
e4b9c73007 is described below

commit e4b9c73007374bcf622035e48a5e19a8f7654ccc
Author: James Turton <[email protected]>
AuthorDate: Thu May 18 06:55:12 2023 +0200

    DRILL-8435: Pin the version of Calcite in the master branch (#2804)
    
    * Upgrade javassist -> 3.29.2-GA.
    * Pin Calcite to 1.34.0 and reenable 
testTimestampAddDiffLiteralTypeInference.
    * Adjust casting costs so that VARCHAR -> BIGINT is cheaper than VARCHAR -> 
FLOAT8.
    * Undo DRILL-8424 (#daaa40325), RexBuilder changes for SAFE_CAST.
---
 .../java-exec/src/main/codegen/templates/Parser.jj | 53 +++-------------------
 .../planner/sql/conversion/DrillRexBuilder.java    |  8 ++--
 .../exec/resolver/ResolverTypePrecedence.java      | 21 +++++----
 .../java/org/apache/drill/TestImplicitCasting.java |  8 +++-
 .../drill/exec/fn/impl/TestNewDateFunctions.java   | 20 --------
 .../fn/impl/TestTimestampAddDiffFunctions.java     |  2 -
 pom.xml                                            |  4 +-
 7 files changed, 30 insertions(+), 86 deletions(-)

diff --git a/exec/java-exec/src/main/codegen/templates/Parser.jj 
b/exec/java-exec/src/main/codegen/templates/Parser.jj
index 472ac65869..ccd2091f7e 100644
--- a/exec/java-exec/src/main/codegen/templates/Parser.jj
+++ b/exec/java-exec/src/main/codegen/templates/Parser.jj
@@ -63,7 +63,6 @@ import org.apache.calcite.sql.SqlDynamicParam;
 import org.apache.calcite.sql.SqlExplain;
 import org.apache.calcite.sql.SqlExplainFormat;
 import org.apache.calcite.sql.SqlExplainLevel;
-import org.apache.calcite.sql.SqlFunction;
 import org.apache.calcite.sql.SqlFunctionCategory;
 import org.apache.calcite.sql.SqlHint;
 import org.apache.calcite.sql.SqlIdentifier;
@@ -5136,8 +5135,6 @@ SqlIntervalQualifier TimeUnit() : {
 |   <MINUTE> { return new SqlIntervalQualifier(TimeUnit.MINUTE, null, 
getPos()); }
 |   <HOUR> { return new SqlIntervalQualifier(TimeUnit.HOUR, null, getPos()); }
 |   <DAY> { return new SqlIntervalQualifier(TimeUnit.DAY, null, getPos()); }
-|   <DAYOFWEEK> { return new SqlIntervalQualifier(TimeUnit.DOW, null, 
getPos()); }
-|   <DAYOFYEAR> { return new SqlIntervalQualifier(TimeUnit.DOY, null, 
getPos()); }
 |   <DOW> { return new SqlIntervalQualifier(TimeUnit.DOW, null, getPos()); }
 |   <DOY> { return new SqlIntervalQualifier(TimeUnit.DOY, null, getPos()); }
 |   <ISODOW> { return new SqlIntervalQualifier(TimeUnit.ISODOW, null, 
getPos()); }
@@ -6005,16 +6002,11 @@ SqlNode BuiltinFunctionCall() :
     SqlDataTypeSpec dt;
     final SqlIntervalQualifier unit;
     final SqlNode node;
-    final SqlLiteral style; // mssql convert 'style' operand
-    final SqlFunction f;
 }
 {
     //~ FUNCTIONS WITH SPECIAL SYNTAX ---------------------------------------
     (
-        (  <CAST> { f = SqlStdOperatorTable.CAST; }
-        | <SAFE_CAST> { f = SqlLibraryOperators.SAFE_CAST; }
-        )
-        { s = span(); }
+        <CAST> { s = span(); }
         <LPAREN> AddExpression(args, ExprContext.ACCEPT_SUB_QUERY)
         <AS>
         (
@@ -6023,7 +6015,7 @@ SqlNode BuiltinFunctionCall() :
             <INTERVAL> e = IntervalQualifier() { args.add(e); }
         )
         <RPAREN> {
-            return f.createCall(s.end(this), args);
+            return SqlStdOperatorTable.CAST.createCall(s.end(this), args);
         }
     |
         <EXTRACT> { s = span(); }
@@ -6051,39 +6043,11 @@ SqlNode BuiltinFunctionCall() :
     |
         <CONVERT> { s = span(); }
         <LPAREN>
-        (
-          // CONVERT in the form of CONVERT(x USING y)
-
-          // "AddExpression" matches INTERVAL,
-          // which can also be 1st token in args of MSSQL CONVERT
-          // So lookahead another token (to match <USING> vs. <COMMA>)
-          LOOKAHEAD(2)
-          AddExpression(args, ExprContext.ACCEPT_SUB_QUERY)
-          <USING> name = SimpleIdentifier() { args.add(name); }
-          <RPAREN> {
-              return SqlStdOperatorTable.CONVERT.createCall(s.end(this), args);
-          }
-        | // mssql CONVERT(type, val [,style])
-          (
-            dt = DataType() { args.add(dt); }
-            |
-            <INTERVAL> e = IntervalQualifier() { args.add(e); }
-          )
-          <COMMA>
-          AddExpression(args, ExprContext.ACCEPT_SUB_QUERY)
-          [
-            <COMMA>
-            (
-              style = UnsignedNumericLiteral() { args.add(style); }
-              |
-              <NULL> { args.add(SqlLiteral.createNull(getPos())); }
-            )
-          ]
-          <RPAREN> {
-            return SqlLibraryOperators.MSSQL_CONVERT.createCall(s.end(this), 
args);
-          }
-        )
-    |
+        AddExpression(args, ExprContext.ACCEPT_SUB_QUERY)
+        <USING> name = SimpleIdentifier() { args.add(name); }
+        <RPAREN> {
+            return SqlStdOperatorTable.CONVERT.createCall(s.end(this), args);
+        }    |
         <TRANSLATE> { s = span(); }
         <LPAREN>
         AddExpression(args, ExprContext.ACCEPT_SUB_QUERY)
@@ -7766,8 +7730,6 @@ SqlPostfixOperator PostfixRowOperator() :
 |   < DATETIME_INTERVAL_CODE: "DATETIME_INTERVAL_CODE" >
 |   < DATETIME_INTERVAL_PRECISION: "DATETIME_INTERVAL_PRECISION" >
 |   < DAY: "DAY" >
-|   < DAYOFWEEK: "DAYOFWEEK" >
-|   < DAYOFYEAR: "DAYOFYEAR" >
 |   < DAYS: "DAYS" >
 |   < DEALLOCATE: "DEALLOCATE" >
 |   < DEC: "DEC" >
@@ -8117,7 +8079,6 @@ SqlPostfixOperator PostfixRowOperator() :
 |   < ROW_NUMBER: "ROW_NUMBER" >
 |   < ROWS: "ROWS" >
 |   < RUNNING: "RUNNING" >
-|   < SAFE_CAST: "SAFE_CAST" >
 |   < SATURDAY: "SATURDAY" >
 |   < SAVEPOINT: "SAVEPOINT" >
 |   < SCALAR: "SCALAR" >
diff --git 
a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/conversion/DrillRexBuilder.java
 
b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/conversion/DrillRexBuilder.java
index 7c232ec52f..299859c842 100644
--- 
a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/conversion/DrillRexBuilder.java
+++ 
b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/conversion/DrillRexBuilder.java
@@ -65,9 +65,9 @@ class DrillRexBuilder extends RexBuilder {
    * @return Call to CAST operator
    */
   @Override
-  public RexNode makeCast(RelDataType type, RexNode exp, boolean 
matchNullability, boolean safe) {
+  public RexNode makeCast(RelDataType type, RexNode exp, boolean 
matchNullability) {
     if (matchNullability) {
-      return makeAbstractCast(type, exp, safe);
+      return makeAbstractCast(type, exp);
     }
     // for the case when BigDecimal literal has a scale or precision
     // that differs from the value from specified RelDataType, cast cannot be 
removed
@@ -81,11 +81,11 @@ class DrillRexBuilder extends RexBuilder {
         BigDecimal bigDecimal = (BigDecimal) value;
         DecimalUtility.checkValueOverflow(bigDecimal, precision, scale);
         if (bigDecimal.precision() != precision || bigDecimal.scale() != 
scale) {
-          return makeAbstractCast(type, exp, safe);
+          return makeAbstractCast(type, exp);
         }
       }
     }
-    return super.makeCast(type, exp, false, safe);
+    return super.makeCast(type, exp, false);
   }
 
   private void validatePrecisionAndScale(int precision, int scale) {
diff --git 
a/exec/java-exec/src/main/java/org/apache/drill/exec/resolver/ResolverTypePrecedence.java
 
b/exec/java-exec/src/main/java/org/apache/drill/exec/resolver/ResolverTypePrecedence.java
index abc181402f..bb7c256c6a 100644
--- 
a/exec/java-exec/src/main/java/org/apache/drill/exec/resolver/ResolverTypePrecedence.java
+++ 
b/exec/java-exec/src/main/java/org/apache/drill/exec/resolver/ResolverTypePrecedence.java
@@ -118,7 +118,7 @@ public class ResolverTypePrecedence {
     .putEdgeValue(MinorType.INTERVALYEAR, MinorType.INTERVAL, 10f)
     // interval conversions
     // prefer the cast in the opposite direction
-    .putEdgeValue(MinorType.INTERVAL, MinorType.VARCHAR, 100f)
+    .putEdgeValue(MinorType.INTERVAL, MinorType.VARCHAR, 1000f)
 
     // dict widening
     .putEdgeValue(MinorType.DICT, MinorType.MAP, 10f)
@@ -138,15 +138,16 @@ public class ResolverTypePrecedence {
     .putEdgeValue(MinorType.FIXEDCHAR, MinorType.VARCHAR, 10f)
     .putEdgeValue(MinorType.FIXEDBINARY, MinorType.VARBINARY, 10f)
     // char and binary conversions
-    .putEdgeValue(MinorType.VARCHAR, MinorType.INT, 10f)
-    .putEdgeValue(MinorType.VARCHAR, MinorType.FLOAT8, 20f)
-    .putEdgeValue(MinorType.VARCHAR, MinorType.FLOAT4, 21f)
-    .putEdgeValue(MinorType.VARCHAR, MinorType.VARDECIMAL, 30f)
-    .putEdgeValue(MinorType.VARCHAR, MinorType.TIMESTAMP, 40f)
-    .putEdgeValue(MinorType.VARCHAR, MinorType.INTERVALDAY, 50f)
-    .putEdgeValue(MinorType.VARCHAR, MinorType.BIT, 60f)
-    .putEdgeValue(MinorType.VARCHAR, MinorType.VARBINARY, 70f)
-    .putEdgeValue(MinorType.VARBINARY, MinorType.VARCHAR, 80f)
+    .putEdgeValue(MinorType.VARCHAR, MinorType.BIGINT, 100f)
+    .putEdgeValue(MinorType.VARCHAR, MinorType.INT, 101f)
+    .putEdgeValue(MinorType.VARCHAR, MinorType.FLOAT8, 102f)
+    .putEdgeValue(MinorType.VARCHAR, MinorType.FLOAT4, 103f)
+    .putEdgeValue(MinorType.VARCHAR, MinorType.VARDECIMAL, 104f)
+    .putEdgeValue(MinorType.VARCHAR, MinorType.TIMESTAMP, 105f)
+    .putEdgeValue(MinorType.VARCHAR, MinorType.INTERVALDAY, 106f)
+    .putEdgeValue(MinorType.VARCHAR, MinorType.BIT, 107f)
+    .putEdgeValue(MinorType.VARCHAR, MinorType.VARBINARY, 108f)
+    .putEdgeValue(MinorType.VARBINARY, MinorType.VARCHAR, 109f)
 
     // union type sink vertex
     .putEdgeValue(MinorType.LIST, MinorType.UNION, 10f)
diff --git 
a/exec/java-exec/src/test/java/org/apache/drill/TestImplicitCasting.java 
b/exec/java-exec/src/test/java/org/apache/drill/TestImplicitCasting.java
index 54a0fe738b..f8a43b30de 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/TestImplicitCasting.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/TestImplicitCasting.java
@@ -99,9 +99,9 @@ public class TestImplicitCasting extends ClusterTest {
       ResolverTypePrecedence.computeCost(TypeProtos.MinorType.MAP, 
TypeProtos.MinorType.FLOAT8),
       0f
     );
-    // VARCHAR -> INT -> BIGINT
+    // VARCHAR -> BIGINT
     assertEquals(
-      10f+10f,
+      100f,
       ResolverTypePrecedence.computeCost(TypeProtos.MinorType.VARCHAR, 
TypeProtos.MinorType.BIGINT),
       0f
     );
@@ -155,6 +155,10 @@ public class TestImplicitCasting extends ClusterTest {
       ResolverTypePrecedence.computeCost(TypeProtos.MinorType.VARCHAR, 
TypeProtos.MinorType.BIGINT),
       
lessThan(ResolverTypePrecedence.computeCost(TypeProtos.MinorType.VARCHAR, 
TypeProtos.MinorType.TIMESTAMP))
     );
+    assertThat(
+      ResolverTypePrecedence.computeCost(TypeProtos.MinorType.VARCHAR, 
TypeProtos.MinorType.BIGINT),
+      
lessThan(ResolverTypePrecedence.computeCost(TypeProtos.MinorType.VARCHAR, 
TypeProtos.MinorType.FLOAT8))
+    );
     assertThat(
       ResolverTypePrecedence.computeCost(TypeProtos.MinorType.VARCHAR, 
TypeProtos.MinorType.FLOAT8),
       
lessThan(ResolverTypePrecedence.computeCost(TypeProtos.MinorType.VARCHAR, 
TypeProtos.MinorType.FLOAT4))
diff --git 
a/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestNewDateFunctions.java
 
b/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestNewDateFunctions.java
index 6d51430052..626b6d18ca 100644
--- 
a/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestNewDateFunctions.java
+++ 
b/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestNewDateFunctions.java
@@ -152,26 +152,6 @@ public class TestNewDateFunctions extends BaseTestQuery {
       .go();
   }
 
-  @Test
-  public void testDayOfYear() throws Exception {
-    testBuilder()
-        .sqlQuery("SELECT EXTRACT(DOY FROM date '2023-04-17') AS col1, 
EXTRACT(DAYOFYEAR FROM date '2023-04-17') as col2")
-        .unOrdered()
-        .baselineColumns("col1", "col2")
-        .baselineValues(107L, 107L)
-        .go();
-  }
-
-  @Test
-  public void testDayOfWeek() throws Exception {
-    testBuilder()
-        .sqlQuery("SELECT EXTRACT(DOW FROM date '2023-04-17') AS col1, 
EXTRACT(DAYOFWEEK FROM date '2023-04-17') as col2")
-        .unOrdered()
-        .baselineColumns("col1", "col2")
-        .baselineValues(1L, 1L)
-        .go();
-  }
-
   @Test
   public void testLocalTimestamp() throws Exception {
     testBuilder()
diff --git 
a/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestTimestampAddDiffFunctions.java
 
b/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestTimestampAddDiffFunctions.java
index 807214b82b..977fd4b5c5 100644
--- 
a/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestTimestampAddDiffFunctions.java
+++ 
b/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestTimestampAddDiffFunctions.java
@@ -21,7 +21,6 @@ import org.apache.drill.test.ClusterFixture;
 import org.apache.drill.test.ClusterFixtureBuilder;
 import org.apache.drill.test.ClusterTest;
 import org.junit.BeforeClass;
-import org.junit.Ignore;
 import org.junit.Test;
 
 import java.time.LocalDateTime;
@@ -52,7 +51,6 @@ public class TestTimestampAddDiffFunctions extends 
ClusterTest {
     startCluster(builder);
   }
 
-  @Ignore
   @Test // DRILL-3610
   public void testTimestampAddDiffLiteralTypeInference() throws Exception {
     Map<String, String> dateTypes = new HashMap<>();
diff --git a/pom.xml b/pom.xml
index 6684b44c8a..59ebc44a6b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -54,7 +54,7 @@
     <parquet.version>1.12.3</parquet.version>
     <parquet.format.version>2.9.0</parquet.format.version>
     <calcite.groupId>org.apache.calcite</calcite.groupId>
-    <calcite.version>1.35.0-SNAPSHOT</calcite.version>
+    <calcite.version>1.34.0</calcite.version>
     <avatica.version>1.23.0</avatica.version>
     <janino.version>3.1.8</janino.version>
     <sqlline.version>1.12.0</sqlline.version>
@@ -83,7 +83,7 @@
     <hbase.version>2.4.9</hbase.version>
     <fmpp.version>1.0</fmpp.version>
     <freemarker.version>2.3.30</freemarker.version>
-    <javassist.version>3.28.0-GA</javassist.version>
+    <javassist.version>3.29.2-GA</javassist.version>
     <msgpack.version>0.6.6</msgpack.version>
     <reflections.version>0.9.10</reflections.version>
     <avro.version>1.11.1</avro.version>

Reply via email to