You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by ji...@apache.org on 2022/06/28 08:46:16 UTC

[flink] branch master updated: [FLINK-27304][hive] Calcite's varbinary type should be converted to Hive's binary type.

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

jingzhang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/flink.git


The following commit(s) were added to refs/heads/master by this push:
     new 6f7c273be14 [FLINK-27304][hive] Calcite's varbinary type should be converted to Hive's binary type.
6f7c273be14 is described below

commit 6f7c273be147f6acb4443103d91e5299ef6696ef
Author: luoyuxia <lu...@alibaba-inc.com>
AuthorDate: Sun Apr 24 19:45:38 2022 +0800

    [FLINK-27304][hive] Calcite's varbinary type should be converted to Hive's binary type.
    
    This closes #19562
---
 .../table/planner/delegation/hive/copy/HiveParserTypeConverter.java  | 3 ++-
 .../org/apache/flink/connectors/hive/HiveDialectQueryITCase.java     | 5 ++++-
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/flink-connectors/flink-connector-hive/src/main/java/org/apache/flink/table/planner/delegation/hive/copy/HiveParserTypeConverter.java b/flink-connectors/flink-connector-hive/src/main/java/org/apache/flink/table/planner/delegation/hive/copy/HiveParserTypeConverter.java
index caa8df47a21..fac4d4b9022 100644
--- a/flink-connectors/flink-connector-hive/src/main/java/org/apache/flink/table/planner/delegation/hive/copy/HiveParserTypeConverter.java
+++ b/flink-connectors/flink-connector-hive/src/main/java/org/apache/flink/table/planner/delegation/hive/copy/HiveParserTypeConverter.java
@@ -148,7 +148,7 @@ public class HiveParserTypeConverter {
                 convertedType = dtFactory.createSqlType(SqlTypeName.TIMESTAMP, 9);
                 break;
             case BINARY:
-                convertedType = dtFactory.createSqlType(SqlTypeName.BINARY);
+                convertedType = dtFactory.createSqlType(SqlTypeName.VARBINARY);
                 break;
             case DECIMAL:
                 DecimalTypeInfo dtInf = (DecimalTypeInfo) type;
@@ -295,6 +295,7 @@ public class HiveParserTypeConverter {
             case INTERVAL_SECOND:
                 return hiveShim.getIntervalDayTimeTypeInfo();
             case BINARY:
+            case VARBINARY:
                 return TypeInfoFactory.binaryTypeInfo;
             case DECIMAL:
                 return TypeInfoFactory.getDecimalTypeInfo(rType.getPrecision(), rType.getScale());
diff --git a/flink-connectors/flink-connector-hive/src/test/java/org/apache/flink/connectors/hive/HiveDialectQueryITCase.java b/flink-connectors/flink-connector-hive/src/test/java/org/apache/flink/connectors/hive/HiveDialectQueryITCase.java
index a41686bdd47..9365b6a25a6 100644
--- a/flink-connectors/flink-connector-hive/src/test/java/org/apache/flink/connectors/hive/HiveDialectQueryITCase.java
+++ b/flink-connectors/flink-connector-hive/src/test/java/org/apache/flink/connectors/hive/HiveDialectQueryITCase.java
@@ -82,6 +82,8 @@ public class HiveDialectQueryITCase {
         tableEnv.executeSql("CREATE TABLE src (key STRING, value STRING)");
         tableEnv.executeSql(
                 "CREATE TABLE srcpart (key STRING, `value` STRING) PARTITIONED BY (ds STRING, hr STRING)");
+        tableEnv.executeSql("create table binary_t (a int, ab array<binary>)");
+
         tableEnv.executeSql(
                 "CREATE TABLE nested (\n"
                         + "  a int,\n"
@@ -156,7 +158,8 @@ public class HiveDialectQueryITCase {
                                         + "(partition by dep order by salary desc) as rnk from employee) a where rnk=1",
                                 "select salary,sum(cnt) over (order by salary)/sum(cnt) over "
                                         + "(order by salary ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) from"
-                                        + " (select salary,count(*) as cnt from employee group by salary) a"));
+                                        + " (select salary,count(*) as cnt from employee group by salary) a",
+                                "select a, one from binary_t lateral view explode(ab) abs as one where a > 0"));
         if (HiveVersionTestUtil.HIVE_230_OR_LATER) {
             toRun.add(
                     "select weekofyear(current_timestamp()), dayofweek(current_timestamp()) from src limit 1");