From fe9767941d4a8bc2ce8cf38fc352d9c362ceabd9 Mon Sep 17 00:00:00 2001 From: camby <104178625@qq.com> Date: Mon, 29 Aug 2022 11:10:52 +0800 Subject: [PATCH] [fix](array-type) adjust enable_array_type config (#12071) Problem: 1. `enable_array_type` is masterOnly; 2. dynamic open config only affect FE MASTER `admin set frontend config("enable_array_type"="true");` 3. query in FE FOLLOWER will fail, because of `enable_array_type` is false in FE FOLLOWER `select * from table_with_array ` Solution: Only check `enable_array_type` while creating new tables with array column. Co-authored-by: cambyzju --- .../java/org/apache/doris/analysis/CreateTableStmt.java | 3 +++ .../src/main/java/org/apache/doris/catalog/ArrayType.java | 6 +----- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateTableStmt.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateTableStmt.java index 8180b7681e..9e8d6f5c6a 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateTableStmt.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateTableStmt.java @@ -389,6 +389,9 @@ public class CreateTableStmt extends DdlStmt { columnDef.analyze(engineName.equals("olap")); if (columnDef.getType().isArrayType()) { + if (!Config.enable_array_type) { + throw new AnalysisException("Please open enable_array_type config before use Array."); + } if (columnDef.getAggregateType() != null && columnDef.getAggregateType() != AggregateType.NONE) { throw new AnalysisException("Array column can't support aggregation " + columnDef.getAggregateType()); diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/ArrayType.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/ArrayType.java index e8fc4c2812..3475f1d238 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/catalog/ArrayType.java +++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/ArrayType.java @@ -17,7 +17,6 @@ package org.apache.doris.catalog; -import org.apache.doris.common.Config; import org.apache.doris.thrift.TColumnType; import org.apache.doris.thrift.TTypeDesc; import org.apache.doris.thrift.TTypeNode; @@ -155,9 +154,6 @@ public class ArrayType extends Type { @Override public boolean isSupported() { - if (!Config.enable_array_type) { - return false; - } return !itemType.isNull(); } @@ -180,7 +176,7 @@ public class ArrayType extends Type { @Override public boolean supportsTablePartitioning() { - return isSupported() && !isComplexType(); + return false; } @Override