diff --git a/isthmus/src/main/java/io/substrait/isthmus/AggregateFunctions.java b/isthmus/src/main/java/io/substrait/isthmus/AggregateFunctions.java index 0d5d5bf0e..8c2bcbc64 100644 --- a/isthmus/src/main/java/io/substrait/isthmus/AggregateFunctions.java +++ b/isthmus/src/main/java/io/substrait/isthmus/AggregateFunctions.java @@ -21,19 +21,19 @@ public class AggregateFunctions { /** Substrait-specific MIN aggregate function (nullable return type). */ - public static SqlAggFunction MIN = new SubstraitSqlMinMaxAggFunction(SqlKind.MIN); + public static final SqlAggFunction MIN = new SubstraitSqlMinMaxAggFunction(SqlKind.MIN); /** Substrait-specific MAX aggregate function (nullable return type). */ - public static SqlAggFunction MAX = new SubstraitSqlMinMaxAggFunction(SqlKind.MAX); + public static final SqlAggFunction MAX = new SubstraitSqlMinMaxAggFunction(SqlKind.MAX); /** Substrait-specific AVG aggregate function (nullable return type). */ - public static SqlAggFunction AVG = new SubstraitAvgAggFunction(SqlKind.AVG); + public static final SqlAggFunction AVG = new SubstraitAvgAggFunction(SqlKind.AVG); /** Substrait-specific SUM aggregate function (nullable return type). */ - public static SqlAggFunction SUM = new SubstraitSumAggFunction(); + public static final SqlAggFunction SUM = new SubstraitSumAggFunction(); /** Substrait-specific SUM0 aggregate function (non-null BIGINT return type). */ - public static SqlAggFunction SUM0 = new SubstraitSumEmptyIsZeroAggFunction(); + public static final SqlAggFunction SUM0 = new SubstraitSumEmptyIsZeroAggFunction(); /** * Converts default Calcite aggregate functions to Substrait-specific variants when needed. diff --git a/isthmus/src/main/java/io/substrait/isthmus/TypeConverter.java b/isthmus/src/main/java/io/substrait/isthmus/TypeConverter.java index add54572d..3ba3e71a1 100644 --- a/isthmus/src/main/java/io/substrait/isthmus/TypeConverter.java +++ b/isthmus/src/main/java/io/substrait/isthmus/TypeConverter.java @@ -40,7 +40,7 @@ public class TypeConverter { *
Both {@link UserTypeMapper#toSubstrait(RelDataType)} and {@link
* UserTypeMapper#toCalcite(Type.UserDefined)} return {@code null} in this default configuration.
*/
- public static TypeConverter DEFAULT =
+ public static final TypeConverter DEFAULT =
new TypeConverter(
new UserTypeMapper() {
@Nullable
diff --git a/isthmus/src/main/java/io/substrait/isthmus/calcite/SubstraitOperatorTable.java b/isthmus/src/main/java/io/substrait/isthmus/calcite/SubstraitOperatorTable.java
index c73baed7e..51d68197d 100644
--- a/isthmus/src/main/java/io/substrait/isthmus/calcite/SubstraitOperatorTable.java
+++ b/isthmus/src/main/java/io/substrait/isthmus/calcite/SubstraitOperatorTable.java
@@ -32,7 +32,7 @@
public class SubstraitOperatorTable implements SqlOperatorTable {
/** Singleton instance of the Substrait operator table. */
- public static SubstraitOperatorTable INSTANCE = new SubstraitOperatorTable();
+ public static final SubstraitOperatorTable INSTANCE = new SubstraitOperatorTable();
private static final SqlOperatorTable SUBSTRAIT_OPERATOR_TABLE =
SqlOperatorTables.of(
diff --git a/isthmus/src/main/java/io/substrait/isthmus/expression/CallConverters.java b/isthmus/src/main/java/io/substrait/isthmus/expression/CallConverters.java
index a34b8f87e..4b00c15da 100644
--- a/isthmus/src/main/java/io/substrait/isthmus/expression/CallConverters.java
+++ b/isthmus/src/main/java/io/substrait/isthmus/expression/CallConverters.java
@@ -40,7 +40,7 @@ public class CallConverters {
*
* @see ExpressionCreator#cast(Type, Expression, Expression.FailureBehavior)
*/
- public static Function When converting from Calcite to Substrait, this call converter extracts the stored {@link
* Expression.UserDefinedLiteral}.
*/
- public static Function Each literal's nullability is set to match its field type's nullability.
*/
- public static SimpleCallConverter ROW =
+ public static final SimpleCallConverter ROW =
(call, visitor) -> {
if (call.getKind() != SqlKind.ROW) {
return null;
@@ -189,7 +189,7 @@ else if (operand instanceof Expression.StructLiteral
* This converter assumes that operand expressions have already been converted by the provided
* top-level visitor.
*/
- public static SimpleCallConverter CASE =
+ public static final SimpleCallConverter CASE =
(call, visitor) -> {
if (call.getKind() != SqlKind.CASE) {
return null;
@@ -225,7 +225,7 @@ else if (operand instanceof Expression.StructLiteral
* Returns a {@link SimpleCallConverter} that expands SEARCH calls using the provided {@link
* RexBuilder}
*/
- public static Function Matching is done on operator identity (these are niladic {@link SqlKind#OTHER_FUNCTION}
* functions with no dedicated {@link SqlKind}).
*/
- public static SimpleCallConverter EXECUTION_CONTEXT_VARIABLE =
+ public static final SimpleCallConverter EXECUTION_CONTEXT_VARIABLE =
(call, visitor) -> {
if (call.getOperator() == SqlStdOperatorTable.CURRENT_TIMESTAMP) {
return ExpressionCreator.currentTimestamp(call.getType().getPrecision());
diff --git a/isthmus/src/main/java/io/substrait/isthmus/sql/SubstraitSqlDialect.java b/isthmus/src/main/java/io/substrait/isthmus/sql/SubstraitSqlDialect.java
index 23c8deedf..e4b19b4d0 100644
--- a/isthmus/src/main/java/io/substrait/isthmus/sql/SubstraitSqlDialect.java
+++ b/isthmus/src/main/java/io/substrait/isthmus/sql/SubstraitSqlDialect.java
@@ -15,10 +15,10 @@
public class SubstraitSqlDialect extends SqlDialect {
/** Default context for the Substrait SQL dialect. */
- public static SqlDialect.Context DEFAULT_CONTEXT = SqlDialect.EMPTY_CONTEXT;
+ public static final SqlDialect.Context DEFAULT_CONTEXT = SqlDialect.EMPTY_CONTEXT;
/** Default instance of Substrait SQL dialect. */
- public static SqlDialect DEFAULT = new SubstraitSqlDialect(DEFAULT_CONTEXT);
+ public static final SqlDialect DEFAULT = new SubstraitSqlDialect(DEFAULT_CONTEXT);
/**
* Converts a Calcite {@link RelNode} to its SQL representation using the default dialect.
diff --git a/isthmus/src/test/java/io/substrait/isthmus/RelCopyOnWriteVisitorTest.java b/isthmus/src/test/java/io/substrait/isthmus/RelCopyOnWriteVisitorTest.java
index 5f3fc09db..d73b1299c 100644
--- a/isthmus/src/test/java/io/substrait/isthmus/RelCopyOnWriteVisitorTest.java
+++ b/isthmus/src/test/java/io/substrait/isthmus/RelCopyOnWriteVisitorTest.java
@@ -27,10 +27,10 @@
class RelCopyOnWriteVisitorTest extends PlanTestBase {
- public static SimpleExtension.FunctionAnchor APPROX_COUNT_DISTINCT =
+ public static final SimpleExtension.FunctionAnchor APPROX_COUNT_DISTINCT =
SimpleExtension.FunctionAnchor.of(
"extension:io.substrait:functions_aggregate_approx", "approx_count_distinct:any");
- public static SimpleExtension.FunctionAnchor COUNT =
+ public static final SimpleExtension.FunctionAnchor COUNT =
SimpleExtension.FunctionAnchor.of(
"extension:io.substrait:functions_aggregate_generic", "count:any");