You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by yu...@apache.org on 2024/01/24 04:02:26 UTC

(flink) branch release-1.17 updated: [FLINK-33233][hive] Fix NPE when non-native udf is used in join condition with Hive dialect (#24148)

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

yuxia pushed a commit to branch release-1.17
in repository https://gitbox.apache.org/repos/asf/flink.git


The following commit(s) were added to refs/heads/release-1.17 by this push:
     new 44a697c2537 [FLINK-33233][hive] Fix NPE when non-native udf is used in join condition with Hive dialect (#24148)
44a697c2537 is described below

commit 44a697c2537de02b96ca1044498e3f930dd6fdc7
Author: yunfan123 <yu...@users.noreply.github.com>
AuthorDate: Wed Jan 24 12:02:20 2024 +0800

    [FLINK-33233][hive] Fix NPE when non-native udf is used in join condition with Hive dialect (#24148)
---
 .../flink/table/planner/delegation/hive/HiveParserCalcitePlanner.java | 1 +
 .../flink-connector-hive/src/test/resources/query-test/join.q         | 4 ++++
 2 files changed, 5 insertions(+)

diff --git a/flink-connectors/flink-connector-hive/src/main/java/org/apache/flink/table/planner/delegation/hive/HiveParserCalcitePlanner.java b/flink-connectors/flink-connector-hive/src/main/java/org/apache/flink/table/planner/delegation/hive/HiveParserCalcitePlanner.java
index 5de65b7e512..682f6e858e3 100644
--- a/flink-connectors/flink-connector-hive/src/main/java/org/apache/flink/table/planner/delegation/hive/HiveParserCalcitePlanner.java
+++ b/flink-connectors/flink-connector-hive/src/main/java/org/apache/flink/table/planner/delegation/hive/HiveParserCalcitePlanner.java
@@ -477,6 +477,7 @@ public class HiveParserCalcitePlanner {
             HiveParserJoinTypeCheckCtx jCtx =
                     new HiveParserJoinTypeCheckCtx(
                             leftRR, rightRR, hiveJoinType, frameworkConfig, cluster);
+            jCtx.setUnparseTranslator(semanticAnalyzer.unparseTranslator);
             HiveParserRowResolver combinedRR = HiveParserRowResolver.getCombinedRR(leftRR, rightRR);
             if (joinCondAst.getType() == HiveASTParser.TOK_TABCOLNAME
                     && !hiveJoinType.equals(JoinType.LEFTSEMI)) {
diff --git a/flink-connectors/flink-connector-hive/src/test/resources/query-test/join.q b/flink-connectors/flink-connector-hive/src/test/resources/query-test/join.q
index dc2d8f6f344..c5664916f56 100644
--- a/flink-connectors/flink-connector-hive/src/test/resources/query-test/join.q
+++ b/flink-connectors/flink-connector-hive/src/test/resources/query-test/join.q
@@ -37,3 +37,7 @@ select * from (select a.value, a.* from (select * from src) a join (select * fro
 select f1.x,f1.y,f2.x,f2.y from (select * from foo order by x,y) f1 join (select * from foo order by x,y) f2;
 
 [+I[1, 1, 1, 1], +I[1, 1, 2, 2], +I[1, 1, 3, 3], +I[1, 1, 4, 4], +I[1, 1, 5, 5], +I[2, 2, 1, 1], +I[2, 2, 2, 2], +I[2, 2, 3, 3], +I[2, 2, 4, 4], +I[2, 2, 5, 5], +I[3, 3, 1, 1], +I[3, 3, 2, 2], +I[3, 3, 3, 3], +I[3, 3, 4, 4], +I[3, 3, 5, 5], +I[4, 4, 1, 1], +I[4, 4, 2, 2], +I[4, 4, 3, 3], +I[4, 4, 4, 4], +I[4, 4, 5, 5], +I[5, 5, 1, 1], +I[5, 5, 2, 2], +I[5, 5, 3, 3], +I[5, 5, 4, 4], +I[5, 5, 5, 5]]
+
+select foo.y, bar.I from bar join foo on hiveudf(foo.x) = bar.I where bar.I > 1;
+
+[+I[2, 2]]