From dfcce2a61ec372f7ec3111c9110231541d34dbae Mon Sep 17 00:00:00 2001 From: eldenmoon <15605149486@163.com> Date: Tue, 27 Aug 2024 17:06:06 +0800 Subject: [PATCH] [Improve](Variant) truncate key when column is variant type when creating mtmv --- .../trees/plans/commands/info/CreateMTMVInfo.java | 2 +- regression-test/suites/variant_p0/mtmv.groovy | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/CreateMTMVInfo.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/CreateMTMVInfo.java index 25dc50b97ebc40..67aaae7fb87057 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/CreateMTMVInfo.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/CreateMTMVInfo.java @@ -287,7 +287,7 @@ private void analyzeKeys() { if (type.isFloatLikeType() || type.isStringType() || type.isJsonType() || catalogType.isComplexType() || type.isBitmapType() || type.isHllType() || type.isQuantileStateType() || type.isJsonType() || type.isStructType() - || column.getAggType() != null) { + || column.getAggType() != null || type.isVariantType()) { break; } keys.add(column.getName()); diff --git a/regression-test/suites/variant_p0/mtmv.groovy b/regression-test/suites/variant_p0/mtmv.groovy index 616316ad00fdfd..5d26c8fcf5647a 100644 --- a/regression-test/suites/variant_p0/mtmv.groovy +++ b/regression-test/suites/variant_p0/mtmv.groovy @@ -92,4 +92,16 @@ suite("regression_test_variant_mtmv"){ """ def job_name_2 = getJobName(db, "mv2") waitingMTMVTaskFinished(job_name_2) + + sql """DROP TABLE IF EXISTS tbl1""" + sql """ + CREATE TABLE tbl1 ( pk int, var VARIANT NULL ) engine=olap DUPLICATE KEY(pk) distributed by hash(pk) buckets 10 properties("replication_num" += "1"); + """ + sql """insert into tbl1 values (1, '{"a":1}')""" + sql """DROP MATERIALIZED VIEW IF EXISTS tbl1_mv""" + sql """ + CREATE MATERIALIZED VIEW tbl1_mv BUILD IMMEDIATE REFRESH AUTO ON MANUAL DISTRIBUTED BY RANDOM BUCKETS 10 PROPERTIES +('replication_num' = '1') AS SELECT * FROM tbl1; + """ } \ No newline at end of file