Skip to content

Commit 6f7c273

Browse files
luoyuxiabeyond1920
authored andcommitted
[FLINK-27304][hive] Calcite's varbinary type should be converted to Hive's binary type.
This closes #19562
1 parent b972e37 commit 6f7c273

File tree

2 files changed

+6
-2
lines changed

2 files changed

+6
-2
lines changed

flink-connectors/flink-connector-hive/src/main/java/org/apache/flink/table/planner/delegation/hive/copy/HiveParserTypeConverter.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ public static RelDataType convert(PrimitiveTypeInfo type, RelDataTypeFactory dtF
148148
convertedType = dtFactory.createSqlType(SqlTypeName.TIMESTAMP, 9);
149149
break;
150150
case BINARY:
151-
convertedType = dtFactory.createSqlType(SqlTypeName.BINARY);
151+
convertedType = dtFactory.createSqlType(SqlTypeName.VARBINARY);
152152
break;
153153
case DECIMAL:
154154
DecimalTypeInfo dtInf = (DecimalTypeInfo) type;
@@ -295,6 +295,7 @@ private static TypeInfo convertPrimitiveType(RelDataType rType) {
295295
case INTERVAL_SECOND:
296296
return hiveShim.getIntervalDayTimeTypeInfo();
297297
case BINARY:
298+
case VARBINARY:
298299
return TypeInfoFactory.binaryTypeInfo;
299300
case DECIMAL:
300301
return TypeInfoFactory.getDecimalTypeInfo(rType.getPrecision(), rType.getScale());

flink-connectors/flink-connector-hive/src/test/java/org/apache/flink/connectors/hive/HiveDialectQueryITCase.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,8 @@ public static void setup() throws Exception {
8282
tableEnv.executeSql("CREATE TABLE src (key STRING, value STRING)");
8383
tableEnv.executeSql(
8484
"CREATE TABLE srcpart (key STRING, `value` STRING) PARTITIONED BY (ds STRING, hr STRING)");
85+
tableEnv.executeSql("create table binary_t (a int, ab array<binary>)");
86+
8587
tableEnv.executeSql(
8688
"CREATE TABLE nested (\n"
8789
+ " a int,\n"
@@ -156,7 +158,8 @@ public void testAdditionalQueries() throws Exception {
156158
+ "(partition by dep order by salary desc) as rnk from employee) a where rnk=1",
157159
"select salary,sum(cnt) over (order by salary)/sum(cnt) over "
158160
+ "(order by salary ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) from"
159-
+ " (select salary,count(*) as cnt from employee group by salary) a"));
161+
+ " (select salary,count(*) as cnt from employee group by salary) a",
162+
"select a, one from binary_t lateral view explode(ab) abs as one where a > 0"));
160163
if (HiveVersionTestUtil.HIVE_230_OR_LATER) {
161164
toRun.add(
162165
"select weekofyear(current_timestamp()), dayofweek(current_timestamp()) from src limit 1");

0 commit comments

Comments
 (0)