Skip to content

Commit 9322dae

Browse files
committed
Bump to Calcite 1.37
1 parent c822828 commit 9322dae

File tree

4 files changed

+24
-8
lines changed

4 files changed

+24
-8
lines changed

exec/java-exec/src/main/java/org/apache/drill/exec/planner/common/DrillWindowRelBase.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,4 +37,9 @@ public DrillWindowRelBase(
3737
List<Group> windows) {
3838
super(cluster, traits, child, constants, DrillRelOptUtil.uniqifyFieldName(rowType, cluster.getTypeFactory()), windows);
3939
}
40+
41+
@Override
42+
public Window copy(List<RexLiteral> constants) {
43+
return new DrillWindowRelBase(getCluster(), traitSet, getInput(), constants, getRowType(), groups);
44+
}
4045
}

exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/DrillConvertletTable.java

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@
3434
import org.apache.calcite.sql.SqlLiteral;
3535
import org.apache.calcite.sql.SqlNode;
3636
import org.apache.calcite.sql.SqlNumericLiteral;
37+
import org.apache.calcite.sql.SqlBasicFunction;
3738
import org.apache.calcite.sql.SqlOperator;
38-
import org.apache.calcite.sql.fun.SqlRandFunction;
3939
import org.apache.calcite.sql.fun.SqlStdOperatorTable;
4040
import org.apache.calcite.sql.parser.SqlParserPos;
4141
import org.apache.calcite.sql.type.SqlTypeName;
@@ -154,12 +154,9 @@ private static SqlRexConvertlet randConvertlet() {
154154
List<RexNode> operands = call.getOperandList().stream()
155155
.map(cx::convertExpression)
156156
.collect(Collectors.toList());
157-
return cx.getRexBuilder().makeCall(new SqlRandFunction() {
158-
@Override
159-
public boolean isDeterministic() {
160-
return false;
161-
}
162-
}, operands);
157+
// In Calcite 1.37+, RAND is a SqlBasicFunction, use withDeterministic(false) to mark it as non-deterministic
158+
SqlBasicFunction nonDeterministicRand = ((SqlBasicFunction) SqlStdOperatorTable.RAND).withDeterministic(false);
159+
return cx.getRexBuilder().makeCall(nonDeterministicRand, operands);
163160
};
164161
}
165162

exec/java-exec/src/main/java/org/apache/drill/exec/store/enumerable/plan/JdbcExpressionCheck.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@
2323
import org.apache.calcite.rex.RexFieldAccess;
2424
import org.apache.calcite.rex.RexFieldCollation;
2525
import org.apache.calcite.rex.RexInputRef;
26+
import org.apache.calcite.rex.RexLambda;
27+
import org.apache.calcite.rex.RexLambdaRef;
2628
import org.apache.calcite.rex.RexLiteral;
2729
import org.apache.calcite.rex.RexLocalRef;
2830
import org.apache.calcite.rex.RexNode;
@@ -132,4 +134,16 @@ public Boolean visitTableInputRef(RexTableInputRef fieldRef) {
132134
public Boolean visitPatternFieldRef(RexPatternFieldRef fieldRef) {
133135
return false;
134136
}
137+
138+
@Override
139+
public Boolean visitLambdaRef(RexLambdaRef lambdaRef) {
140+
// Lambda expressions are not supported for JDBC pushdown
141+
return false;
142+
}
143+
144+
@Override
145+
public Boolean visitLambda(RexLambda lambda) {
146+
// Lambda expressions are not supported for JDBC pushdown
147+
return false;
148+
}
135149
}

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@
5757
<bouncycastle.version>1.78.1</bouncycastle.version>
5858
<caffeine.version>2.9.3</caffeine.version>
5959
<calcite.groupId>org.apache.calcite</calcite.groupId>
60-
<calcite.version>1.36.0</calcite.version>
60+
<calcite.version>1.37.0</calcite.version>
6161
<codemodel.version>2.6</codemodel.version>
6262
<commons.beanutils.version>1.11.0</commons.beanutils.version>
6363
<commons.cli.version>1.4</commons.cli.version>

0 commit comments

Comments
 (0)