This is an automated email from the ASF dual-hosted git repository.
zhenchen pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/calcite.git
The following commit(s) were added to refs/heads/main by this push:
new 3fa0b62c33 [CALCITE-7155] Some optimization can be done according to
error prone suggestions
3fa0b62c33 is described below
commit 3fa0b62c33c3a9eaaac59b09dfe800619f8bdb9b
Author: Zhen Chen <[email protected]>
AuthorDate: Sun Aug 31 20:55:01 2025 +0800
[CALCITE-7155] Some optimization can be done according to error prone
suggestions
---
.../org/apache/calcite/adapter/arrow/ArrowTranslator.java | 2 +-
.../org/apache/calcite/rel/rules/JoinExpandOrToUnionRule.java | 8 ++++----
.../java/org/apache/calcite/rel/rules/SetOpToFilterRule.java | 10 +++++-----
core/src/main/java/org/apache/calcite/sql/SqlCallBinding.java | 2 +-
.../main/java/org/apache/calcite/sql2rel/RelDecorrelator.java | 2 +-
.../postgresql/format/compiled/NumberCompiledPattern.java | 2 +-
.../java/org/apache/calcite/adapter/mongodb/MongoFilter.java | 2 +-
testkit/src/main/java/org/apache/calcite/test/QuidemTest.java | 11 ++++++-----
8 files changed, 20 insertions(+), 19 deletions(-)
diff --git
a/arrow/src/main/java/org/apache/calcite/adapter/arrow/ArrowTranslator.java
b/arrow/src/main/java/org/apache/calcite/adapter/arrow/ArrowTranslator.java
index 1651974cb4..1102ce2056 100644
--- a/arrow/src/main/java/org/apache/calcite/adapter/arrow/ArrowTranslator.java
+++ b/arrow/src/main/java/org/apache/calcite/adapter/arrow/ArrowTranslator.java
@@ -229,7 +229,7 @@ private String translateUnary(String op, RexCall call) {
}
/** Combines a field name and a unary operator to produce a predicate
string. */
- private String translateUnaryOp(String op, String name) {
+ private static String translateUnaryOp(String op, String name) {
return name + " " + op;
}
diff --git
a/core/src/main/java/org/apache/calcite/rel/rules/JoinExpandOrToUnionRule.java
b/core/src/main/java/org/apache/calcite/rel/rules/JoinExpandOrToUnionRule.java
index eafb92a872..6e3f137e56 100644
---
a/core/src/main/java/org/apache/calcite/rel/rules/JoinExpandOrToUnionRule.java
+++
b/core/src/main/java/org/apache/calcite/rel/rules/JoinExpandOrToUnionRule.java
@@ -120,7 +120,7 @@ protected JoinExpandOrToUnionRule(Config config) {
call.transformTo(expanded);
}
- private List<RexNode> splitCond(Join join) {
+ private static List<RexNode> splitCond(Join join) {
final RexBuilder builder = join.getCluster().getRexBuilder();
final List<RexNode> orConds = RelOptUtil.disjunctions(join.getCondition());
final int leftFieldCount = join.getLeft().getRowType().getFieldCount();
@@ -147,7 +147,7 @@ private List<RexNode> splitCond(Join join) {
return result;
}
- private boolean isValidCond(RexNode node, int leftFieldCount) {
+ private static boolean isValidCond(RexNode node, int leftFieldCount) {
boolean hasJoinKeyCond = false;
List<RexNode> conds = RelOptUtil.conjunctions(node);
for (RexNode cond : conds) {
@@ -176,7 +176,7 @@ private boolean isValidCond(RexNode node, int
leftFieldCount) {
return hasJoinKeyCond;
}
- private boolean isEquiJoinCond(RexCall call, int leftFieldCount) {
+ private static boolean isEquiJoinCond(RexCall call, int leftFieldCount) {
if (call.getKind() != SqlKind.EQUALS
&& call.getKind() != SqlKind.IS_NOT_DISTINCT_FROM) {
return false;
@@ -195,7 +195,7 @@ private boolean isEquiJoinCond(RexCall call, int
leftFieldCount) {
return false;
}
- private boolean doesNotReferToBothInputs(RexNode rex, int leftFieldCount) {
+ private static boolean doesNotReferToBothInputs(RexNode rex, int
leftFieldCount) {
RexInputRefCounter counter = new RexInputRefCounter(leftFieldCount);
rex.accept(counter);
return counter.doesNotReferToBothInputs();
diff --git
a/core/src/main/java/org/apache/calcite/rel/rules/SetOpToFilterRule.java
b/core/src/main/java/org/apache/calcite/rel/rules/SetOpToFilterRule.java
index 127485239c..e00e3e50f6 100644
--- a/core/src/main/java/org/apache/calcite/rel/rules/SetOpToFilterRule.java
+++ b/core/src/main/java/org/apache/calcite/rel/rules/SetOpToFilterRule.java
@@ -115,7 +115,7 @@ protected SetOpToFilterRule(Config config) {
config.matchHandler().accept(this, call);
}
- private void match(RelOptRuleCall call) {
+ private static void match(RelOptRuleCall call) {
final SetOp setOp = call.rel(0);
final List<RelNode> inputs = setOp.getInputs();
if (setOp.all || inputs.size() < 2) {
@@ -235,7 +235,7 @@ private static RexNode andFirstNotRest(RelBuilder builder,
List<RexNode> conds)
* INTERSECT: AND combination
* MINUS: Special handling where first source uses AND-NOT combination.
*/
- private RexNode combineConditions(RelBuilder builder, List<RexNode> conds,
+ private static RexNode combineConditions(RelBuilder builder, List<RexNode>
conds,
SetOp setOp, boolean isFirstSource) {
if (setOp instanceof Union) {
return builder.or(conds);
@@ -254,21 +254,21 @@ private RexNode combineConditions(RelBuilder builder,
List<RexNode> conds,
@Value.Immutable(singleton = false)
public interface Config extends RelRule.Config {
Config UNION = ImmutableSetOpToFilterRule.Config.builder()
- .withMatchHandler(SetOpToFilterRule::match)
+ .withMatchHandler((rule, call) -> SetOpToFilterRule.match(call))
.build()
.withOperandSupplier(
b0 -> b0.operand(Union.class).anyInputs())
.as(Config.class);
Config INTERSECT = ImmutableSetOpToFilterRule.Config.builder()
- .withMatchHandler(SetOpToFilterRule::match)
+ .withMatchHandler((rule, call) -> SetOpToFilterRule.match(call))
.build()
.withOperandSupplier(
b0 -> b0.operand(Intersect.class).anyInputs())
.as(Config.class);
Config MINUS = ImmutableSetOpToFilterRule.Config.builder()
- .withMatchHandler(SetOpToFilterRule::match)
+ .withMatchHandler((rule, call) -> SetOpToFilterRule.match(call))
.build()
.withOperandSupplier(
b0 -> b0.operand(Minus.class).anyInputs())
diff --git a/core/src/main/java/org/apache/calcite/sql/SqlCallBinding.java
b/core/src/main/java/org/apache/calcite/sql/SqlCallBinding.java
index b0c46298e4..95e403901c 100644
--- a/core/src/main/java/org/apache/calcite/sql/SqlCallBinding.java
+++ b/core/src/main/java/org/apache/calcite/sql/SqlCallBinding.java
@@ -191,7 +191,7 @@ private boolean hasAssignment() {
/** Returns the operands to a call permuted into the same order as the
* formal parameters of the function. */
- private List<SqlNode> permutedOperands(final SqlCall call) {
+ private static List<SqlNode> permutedOperands(final SqlCall call) {
final SqlOperator operator = call.getOperator();
final SqlOperandMetadata operandMetadata =
requireNonNull((SqlOperandMetadata) operator.getOperandTypeChecker(),
diff --git a/core/src/main/java/org/apache/calcite/sql2rel/RelDecorrelator.java
b/core/src/main/java/org/apache/calcite/sql2rel/RelDecorrelator.java
index 1fa0beaa3d..42e3a84f96 100644
--- a/core/src/main/java/org/apache/calcite/sql2rel/RelDecorrelator.java
+++ b/core/src/main/java/org/apache/calcite/sql2rel/RelDecorrelator.java
@@ -3053,7 +3053,7 @@ public static final class
AdjustProjectForCountAggregateRule
onMatch2(d, call, correlate, left, aggOutputProject, aggregate);
}
- private void onMatch2(
+ private static void onMatch2(
RelDecorrelator d,
RelOptRuleCall call,
Correlate correlate,
diff --git
a/core/src/main/java/org/apache/calcite/util/format/postgresql/format/compiled/NumberCompiledPattern.java
b/core/src/main/java/org/apache/calcite/util/format/postgresql/format/compiled/NumberCompiledPattern.java
index 58e96e080d..2f001e33d2 100644
---
a/core/src/main/java/org/apache/calcite/util/format/postgresql/format/compiled/NumberCompiledPattern.java
+++
b/core/src/main/java/org/apache/calcite/util/format/postgresql/format/compiled/NumberCompiledPattern.java
@@ -79,7 +79,7 @@ public NumberCompiledPattern(ChronoUnitEnum chronoUnit,
return stringValue;
}
- private String getOrdinalSuffix(String stringValue) {
+ private static String getOrdinalSuffix(String stringValue) {
// 10 through 19 have a th suffix
if (stringValue.length() >= 2 && stringValue.charAt(stringValue.length() -
2) == '1') {
return "th";
diff --git
a/mongodb/src/main/java/org/apache/calcite/adapter/mongodb/MongoFilter.java
b/mongodb/src/main/java/org/apache/calcite/adapter/mongodb/MongoFilter.java
index 062623bcdd..00a26c5fe3 100644
--- a/mongodb/src/main/java/org/apache/calcite/adapter/mongodb/MongoFilter.java
+++ b/mongodb/src/main/java/org/apache/calcite/adapter/mongodb/MongoFilter.java
@@ -280,7 +280,7 @@ private boolean translateBinary2(String op, RexNode left,
RexNode right,
}
}
- private void translateOp2(String op, String name, RexLiteral right,
+ private static void translateOp2(String op, String name, RexLiteral right,
Multimap<String, Pair<String, RexLiteral>> multimap, Map<String,
RexLiteral> eqMap) {
if (op == null) {
// E.g.: {deptno: 100}
diff --git a/testkit/src/main/java/org/apache/calcite/test/QuidemTest.java
b/testkit/src/main/java/org/apache/calcite/test/QuidemTest.java
index fed1ce466a..244735dc6a 100644
--- a/testkit/src/main/java/org/apache/calcite/test/QuidemTest.java
+++ b/testkit/src/main/java/org/apache/calcite/test/QuidemTest.java
@@ -249,7 +249,7 @@ protected void checkRun(String path) throws Exception {
// - Reset defaults: "original"
if (propertyName.equals("planner-rules")) {
if (value.equals("original")) {
- closer.add(Hook.PLANNER.addThread(this::resetPlanner));
+ closer.add(Hook.PLANNER.addThread(QuidemTest::resetPlanner));
} else {
closer.add(
Hook.PLANNER.addThread((Consumer<RelOptPlanner>)
@@ -277,7 +277,7 @@ protected void checkRun(String path) throws Exception {
}
}
- private void updatePlanner(RelOptPlanner planner, String value) {
+ private static void updatePlanner(RelOptPlanner planner, String value) {
List<RelOptRule> rulesAdd = new ArrayList<>();
List<RelOptRule> rulesRemove = new ArrayList<>();
parseRules(value, rulesAdd, rulesRemove);
@@ -285,14 +285,15 @@ private void updatePlanner(RelOptPlanner planner, String
value) {
rulesAdd.forEach(planner::addRule);
}
- private void resetPlanner(RelOptPlanner planner) {
+ private static void resetPlanner(RelOptPlanner planner) {
if (originalRules != null) {
planner.getRules().forEach(planner::removeRule);
originalRules.forEach(planner::addRule);
}
}
- private void parseRules(String value, List<RelOptRule> rulesAdd,
List<RelOptRule> rulesRemove) {
+ private static void parseRules(String value, List<RelOptRule> rulesAdd,
+ List<RelOptRule> rulesRemove) {
Pattern pattern =
Pattern.compile("([+-])((CoreRules|EnumerableRules)\\.)?(\\w+)");
Matcher matcher = pattern.matcher(value);
@@ -330,7 +331,7 @@ public static RelOptRule getCoreRule(String ruleName) {
}
}
- private void setRules(char operation, RelOptRule rule,
+ private static void setRules(char operation, RelOptRule rule,
List<RelOptRule> rulesAdd, List<RelOptRule> rulesRemove) {
if (operation == '+') {
rulesAdd.add(rule);