This is an automated email from the ASF dual-hosted git repository. dwysakowicz pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/flink.git
commit 36542c134b1d4482b37850033dc66a209fd42331 Author: Hanyu Zheng <135176127+hanyuzhe...@users.noreply.github.com> AuthorDate: Wed Jul 26 23:31:09 2023 -0700 [FLINK-32815] Implement internal HASHCODE function --- .../flink/table/functions/BuiltInFunctionDefinitions.java | 10 ++++++++++ .../apache/flink/table/planner/codegen/ExprCodeGenerator.scala | 3 +++ .../table/planner/codegen/calls/BridgingFunctionGenUtil.scala | 2 +- 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/flink-table/flink-table-common/src/main/java/org/apache/flink/table/functions/BuiltInFunctionDefinitions.java b/flink-table/flink-table-common/src/main/java/org/apache/flink/table/functions/BuiltInFunctionDefinitions.java index dedeb6860c7..177cf1aba04 100644 --- a/flink-table/flink-table-common/src/main/java/org/apache/flink/table/functions/BuiltInFunctionDefinitions.java +++ b/flink-table/flink-table-common/src/main/java/org/apache/flink/table/functions/BuiltInFunctionDefinitions.java @@ -2292,6 +2292,16 @@ public final class BuiltInFunctionDefinitions { .runtimeProvided() .build(); + public static final BuiltInFunctionDefinition HASHCODE = + BuiltInFunctionDefinition.newBuilder() + .name("$HASHCODE$1") + .kind(SCALAR) + .inputTypeStrategy(sequence(ANY)) + .outputTypeStrategy(nullableIfArgs(explicit(DataTypes.INT().notNull()))) + .runtimeProvided() + .internal() + .build(); + public static final BuiltInFunctionDefinition JSON_OBJECT = BuiltInFunctionDefinition.newBuilder() .name("JSON_OBJECT") diff --git a/flink-table/flink-table-planner/src/main/scala/org/apache/flink/table/planner/codegen/ExprCodeGenerator.scala b/flink-table/flink-table-planner/src/main/scala/org/apache/flink/table/planner/codegen/ExprCodeGenerator.scala index 3f847670107..b40631a5e39 100644 --- a/flink-table/flink-table-planner/src/main/scala/org/apache/flink/table/planner/codegen/ExprCodeGenerator.scala +++ b/flink-table/flink-table-planner/src/main/scala/org/apache/flink/table/planner/codegen/ExprCodeGenerator.scala @@ -805,6 +805,9 @@ class ExprCodeGenerator(ctx: CodeGeneratorContext, nullableInput: Boolean) case BuiltInFunctionDefinitions.JSON_STRING => new JsonStringCallGen(call).generate(ctx, operands, resultType) + case BuiltInFunctionDefinitions.HASHCODE => + new HashCodeCallGen().generate(ctx, operands, resultType) + case BuiltInFunctionDefinitions.AGG_DECIMAL_PLUS | BuiltInFunctionDefinitions.HIVE_AGG_DECIMAL_PLUS => val left = operands.head diff --git a/flink-table/flink-table-planner/src/main/scala/org/apache/flink/table/planner/codegen/calls/BridgingFunctionGenUtil.scala b/flink-table/flink-table-planner/src/main/scala/org/apache/flink/table/planner/codegen/calls/BridgingFunctionGenUtil.scala index 499e085be47..87c666ca5dc 100644 --- a/flink-table/flink-table-planner/src/main/scala/org/apache/flink/table/planner/codegen/calls/BridgingFunctionGenUtil.scala +++ b/flink-table/flink-table-planner/src/main/scala/org/apache/flink/table/planner/codegen/calls/BridgingFunctionGenUtil.scala @@ -587,7 +587,7 @@ object BridgingFunctionGenUtil { |public class $evaluatorName extends ${className[AbstractRichFunction]} { | | ${ctx.reuseMemberCode()} - | + | ${ctx.reuseInnerClassDefinitionCode()} | public $evaluatorName(Object[] references) throws Exception { | ${ctx.reuseInitCode()} | }