This is an automated email from the ASF dual-hosted git repository.
eldenmoon pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new 73223fa0bea [chore](variant) deprecate flatten nested property (#61466)
73223fa0bea is described below
commit 73223fa0bead59a05944a275cbf9bd9fcfbd2260
Author: lihangyu <[email protected]>
AuthorDate: Thu Mar 19 10:20:20 2026 +0800
[chore](variant) deprecate flatten nested property (#61466)
---
be/src/exec/common/variant_util.cpp | 6 ++++--
be/src/storage/tablet/tablet_meta.cpp | 1 +
be/src/storage/tablet/tablet_schema.cpp | 12 ++++++++----
be/src/storage/tablet/tablet_schema.h | 12 ++++++++----
be/src/util/json/json_parser.cpp | 10 +++++-----
be/src/util/json/json_parser.h | 4 ++--
be/test/core/jsonb/json_parser_test.cpp | 22 +++++++++++-----------
be/test/exec/common/schema_util_rowset_test.cpp | 2 +-
be/test/exec/common/schema_util_test.cpp | 2 +-
.../segment/variant_column_writer_reader_test.cpp | 14 +++++++-------
be/test/storage/segment/variant_util_test.cpp | 12 ++++++------
be/test/testutil/variant_util.h | 6 +++---
.../java/org/apache/doris/catalog/OlapTable.java | 2 ++
.../org/apache/doris/catalog/TableProperty.java | 11 +++++++++++
.../apache/doris/common/util/PropertyAnalyzer.java | 10 +++++++++-
.../apache/doris/datasource/InternalCatalog.java | 3 ++-
.../java/org/apache/doris/qe/SessionVariable.java | 9 +++++++--
.../org/apache/doris/catalog/OlapTableTest.java | 16 ++++++++++++++++
.../data/query_p0/system/test_table_properties.out | 12 ++++++------
.../suites/variant_doc_mode_p2/load.groovy | 4 ++--
.../load.groovy | 4 ++--
.../load.groovy | 2 +-
.../suites/variant_p0/delete_update.groovy | 2 +-
.../variant_p0/doc_mode/delete_update.groovy | 2 +-
.../variant_p0/doc_mode/predefine/load.groovy | 4 ++--
.../test_double_write_when_schema_change.groovy | 2 +-
regression-test/suites/variant_p0/nested.groovy | 8 ++++----
.../suites/variant_p0/nested/load.groovy | 8 ++++----
.../variant_p0/nested/nested_in_top_array.groovy | 2 +-
regression-test/suites/variant_p0/nested2.groovy | 2 +-
.../variant_p0/predefine/delete_update.groovy | 2 +-
.../suites/variant_p0/predefine/load.groovy | 4 ++--
.../test_double_write_when_schema_change.groovy | 2 +-
.../suites/variant_p0/test_types_in_variant.groovy | 2 +-
.../suites/variant_p1/doc_snapshot/load.groovy | 2 +-
.../suites/variant_p1/predefine/load.groovy | 2 +-
36 files changed, 137 insertions(+), 83 deletions(-)
diff --git a/be/src/exec/common/variant_util.cpp
b/be/src/exec/common/variant_util.cpp
index dd70119d245..4713845a0a3 100644
--- a/be/src/exec/common/variant_util.cpp
+++ b/be/src/exec/common/variant_util.cpp
@@ -1846,7 +1846,7 @@ void parse_json_to_variant_impl(IColumn& column, const
char* src, size_t length,
auto& [paths, values] = *result;
assert(paths.size() == values.size());
size_t old_num_rows = column_variant.rows();
- if (config.enable_flatten_nested) {
+ if (config.deprecated_enable_flatten_nested) {
// here we should check the paths in variant and paths in result,
// if two paths which same prefix have different structure, we should
throw an exception
std::vector<PathInData> check_paths;
@@ -2155,7 +2155,9 @@ Status parse_and_materialize_variant_columns(Block&
block, const TabletSchema& t
std::vector<ParseConfig> configs(variant_column_pos.size());
for (size_t i = 0; i < variant_column_pos.size(); ++i) {
- configs[i].enable_flatten_nested =
tablet_schema.variant_flatten_nested();
+ // Deprecated legacy flatten-nested switch. Distinct from
variant_enable_nested_group.
+ configs[i].deprecated_enable_flatten_nested =
+ tablet_schema.deprecated_variant_flatten_nested();
const auto& column = tablet_schema.column(variant_schema_pos[i]);
if (!column.is_variant_type()) {
return Status::InternalError("column is not variant type, column
name: {}",
diff --git a/be/src/storage/tablet/tablet_meta.cpp
b/be/src/storage/tablet/tablet_meta.cpp
index b2b6d803d79..6d00beb8d2b 100644
--- a/be/src/storage/tablet/tablet_meta.cpp
+++ b/be/src/storage/tablet/tablet_meta.cpp
@@ -364,6 +364,7 @@ TabletMeta::TabletMeta(int64_t table_id, int64_t
partition_id, int64_t tablet_id
schema->set_disable_auto_compaction(tablet_schema.disable_auto_compaction);
}
+ // Deprecated legacy flatten-nested switch. Distinct from
variant_enable_nested_group.
if (tablet_schema.__isset.variant_enable_flatten_nested) {
schema->set_enable_variant_flatten_nested(tablet_schema.variant_enable_flatten_nested);
}
diff --git a/be/src/storage/tablet/tablet_schema.cpp
b/be/src/storage/tablet/tablet_schema.cpp
index ce95f1ca870..432552de37e 100644
--- a/be/src/storage/tablet/tablet_schema.cpp
+++ b/be/src/storage/tablet/tablet_schema.cpp
@@ -1289,7 +1289,7 @@ void TabletSchema::init_from_pb(const TabletSchemaPB&
schema, bool ignore_extrac
_row_store_column_unique_ids.assign(schema.row_store_column_unique_ids().begin(),
schema.row_store_column_unique_ids().end());
- _enable_variant_flatten_nested = schema.enable_variant_flatten_nested();
+ _deprecated_enable_variant_flatten_nested =
schema.enable_variant_flatten_nested();
if (schema.has_is_external_segment_column_meta_used()) {
_is_external_segment_column_meta_used =
schema.is_external_segment_column_meta_used();
} else {
@@ -1370,7 +1370,8 @@ void TabletSchema::build_current_tablet_schema(int64_t
index_id, int32_t version
_row_store_page_size = ori_tablet_schema.row_store_page_size();
_storage_page_size = ori_tablet_schema.storage_page_size();
_storage_dict_page_size = ori_tablet_schema.storage_dict_page_size();
- _enable_variant_flatten_nested =
ori_tablet_schema.variant_flatten_nested();
+ _deprecated_enable_variant_flatten_nested =
+ ori_tablet_schema.deprecated_variant_flatten_nested();
// copy from table_schema_param
_schema_version = version;
@@ -1570,7 +1571,7 @@ void TabletSchema::to_schema_pb(TabletSchemaPB*
tablet_schema_pb) const {
tablet_schema_pb->set_inverted_index_storage_format(_inverted_index_storage_format);
tablet_schema_pb->mutable_row_store_column_unique_ids()->Assign(
_row_store_column_unique_ids.begin(),
_row_store_column_unique_ids.end());
-
tablet_schema_pb->set_enable_variant_flatten_nested(_enable_variant_flatten_nested);
+
tablet_schema_pb->set_enable_variant_flatten_nested(_deprecated_enable_variant_flatten_nested);
tablet_schema_pb->set_is_external_segment_column_meta_used(
_is_external_segment_column_meta_used);
tablet_schema_pb->set_integer_type_default_use_plain_encoding(
@@ -1964,7 +1965,10 @@ bool operator==(const TabletSchema& a, const
TabletSchema& b) {
if (a._storage_page_size != b._storage_page_size) return false;
if (a._storage_dict_page_size != b._storage_dict_page_size) return false;
if (a._skip_write_index_on_load != b._skip_write_index_on_load) return
false;
- if (a._enable_variant_flatten_nested != b._enable_variant_flatten_nested)
return false;
+ if (a._deprecated_enable_variant_flatten_nested !=
+ b._deprecated_enable_variant_flatten_nested) {
+ return false;
+ }
if (a._is_external_segment_column_meta_used !=
b._is_external_segment_column_meta_used)
return false;
if (a._integer_type_default_use_plain_encoding !=
b._integer_type_default_use_plain_encoding)
diff --git a/be/src/storage/tablet/tablet_schema.h
b/be/src/storage/tablet/tablet_schema.h
index 90d1c2d6d0a..f5acd96f65a 100644
--- a/be/src/storage/tablet/tablet_schema.h
+++ b/be/src/storage/tablet/tablet_schema.h
@@ -478,10 +478,14 @@ public:
_disable_auto_compaction = disable_auto_compaction;
}
bool disable_auto_compaction() const { return _disable_auto_compaction; }
- void set_enable_variant_flatten_nested(bool flatten_nested) {
- _enable_variant_flatten_nested = flatten_nested;
+ // Deprecated legacy switch for flatten-nested variant behavior.
+ // It is distinct from variant_enable_nested_group.
+ void set_deprecated_variant_flatten_nested(bool flatten_nested) {
+ _deprecated_enable_variant_flatten_nested = flatten_nested;
+ }
+ bool deprecated_variant_flatten_nested() const {
+ return _deprecated_enable_variant_flatten_nested;
}
- bool variant_flatten_nested() const { return
_enable_variant_flatten_nested; }
void set_enable_single_replica_compaction(bool
enable_single_replica_compaction) {
_enable_single_replica_compaction = enable_single_replica_compaction;
}
@@ -821,7 +825,7 @@ private:
// Contains column ids of which columns should be encoded into row store.
// ATTN: For compability reason empty cids means all columns of tablet
schema are encoded to row column
std::vector<int32_t> _row_store_column_unique_ids;
- bool _enable_variant_flatten_nested = false;
+ bool _deprecated_enable_variant_flatten_nested = false;
std::map<size_t, int32_t> _vir_col_idx_to_unique_id;
std::map<int32_t, DataTypePtr> _pruned_columns_data_type;
diff --git a/be/src/util/json/json_parser.cpp b/be/src/util/json/json_parser.cpp
index 0f6f7de6b34..921093105de 100644
--- a/be/src/util/json/json_parser.cpp
+++ b/be/src/util/json/json_parser.cpp
@@ -44,9 +44,9 @@ std::optional<ParseResult>
JSONDataParser<ParserImpl>::parse(const char* begin,
return {};
}
ParseContext context;
- // enable_flatten_nested controls nested path traversal
+ // deprecated_enable_flatten_nested controls nested path traversal
// NestedGroup expansion is now handled at storage layer
- context.enable_flatten_nested = config.enable_flatten_nested;
+ context.deprecated_enable_flatten_nested =
config.deprecated_enable_flatten_nested;
context.is_top_array = document.isArray();
traverse(document, context);
ParseResult result;
@@ -68,8 +68,8 @@ void JSONDataParser<ParserImpl>::traverse(const Element&
element, ParseContext&
// handled by VariantNestedBuilder with a max-depth guard.
has_nested = false;
check_has_nested_object(element);
- ctx.has_nested_in_flatten = has_nested && ctx.enable_flatten_nested;
- if (has_nested && !ctx.enable_flatten_nested) {
+ ctx.has_nested_in_flatten = has_nested &&
ctx.deprecated_enable_flatten_nested;
+ if (has_nested && !ctx.deprecated_enable_flatten_nested) {
// Parse nested arrays to JsonbField
JsonbWriter writer;
traverseArrayAsJsonb(element.getArray(), writer);
@@ -206,7 +206,7 @@ void JSONDataParser<ParserImpl>::traverseArrayElement(const
Element& element,
element_ctx.has_nested_in_flatten = ctx.has_nested_in_flatten;
element_ctx.is_top_array = ctx.is_top_array;
traverse(element, element_ctx);
- auto& [_, paths, values, flatten_nested, __, is_top_array] = element_ctx;
+ auto& [_, paths, values, deprecated_flatten_nested, __, is_top_array] =
element_ctx;
if (element_ctx.has_nested_in_flatten && is_top_array) {
checkAmbiguousStructure(ctx, paths);
diff --git a/be/src/util/json/json_parser.h b/be/src/util/json/json_parser.h
index 92c2d135e33..4b49259588b 100644
--- a/be/src/util/json/json_parser.h
+++ b/be/src/util/json/json_parser.h
@@ -100,7 +100,7 @@ void writeValueAsJsonb(const Element& element, JsonbWriter&
writer) {
}
struct ParseConfig {
- bool enable_flatten_nested = false;
+ bool deprecated_enable_flatten_nested = false;
enum class ParseTo {
OnlySubcolumns = 0,
OnlyDocValueColumn = 1,
@@ -127,7 +127,7 @@ private:
PathInDataBuilder builder;
std::vector<PathInData::Parts> paths;
std::vector<Field> values;
- bool enable_flatten_nested = false;
+ bool deprecated_enable_flatten_nested = false;
bool has_nested_in_flatten = false;
bool is_top_array = false;
};
diff --git a/be/test/core/jsonb/json_parser_test.cpp
b/be/test/core/jsonb/json_parser_test.cpp
index 1251619a652..f8cfdf8e162 100644
--- a/be/test/core/jsonb/json_parser_test.cpp
+++ b/be/test/core/jsonb/json_parser_test.cpp
@@ -139,7 +139,7 @@ TEST(JsonParserTest, ParseMultiLevelNestedArray) {
EXPECT_EQ(result->paths.size(), 1);
// Test complex nested structure
- config.enable_flatten_nested = false;
+ config.deprecated_enable_flatten_nested = false;
std::string json1 = R"({"a":[[1,2],[3],[4,5,6]]})";
// multi level nested array in object
result = parser.parse(json1.c_str(), json1.size(), config);
@@ -165,7 +165,7 @@ TEST(JsonParserTest, ParseMultiLevelNestedArray) {
EXPECT_EQ(result->values[0].get_type(), doris::PrimitiveType::TYPE_JSONB);
// test flatten nested
- config.enable_flatten_nested = true;
+ config.deprecated_enable_flatten_nested = true;
// TODO: checkAmbiguousStructure is only called when has_nested_in_flatten
&& is_top_array.
// These JSONs are objects (not top-level arrays), so is_top_array=false
and the check is skipped.
// EXPECT_ANY_THROW(parser.parse(json.c_str(), json.size(), config));
@@ -184,14 +184,14 @@ TEST(JsonParserTest, ParseMultiLevelNestedArray) {
TEST(JsonParserTest, ParseNestedAndFlatten) {
JSONDataParser<SimdJSONParser> parser;
ParseConfig config;
- config.enable_flatten_nested = true;
+ config.deprecated_enable_flatten_nested = true;
std::string json = R"({"a":[{"b":1},{"b":2}]})";
auto result = parser.parse(json.c_str(), json.size(), config);
ASSERT_TRUE(result.has_value());
EXPECT_GT(result->values.size(), 0);
- config.enable_flatten_nested = false;
+ config.deprecated_enable_flatten_nested = false;
std::string json2 = R"({"a":[{"b":1},{"b":2}]})";
result = parser.parse(json2.c_str(), json2.size(), config);
ASSERT_TRUE(result.has_value());
@@ -249,7 +249,7 @@ TEST(JsonParserTest, TestIsPrefixFunction) {
TEST(JsonParserTest, TestAmbiguousStructureDetection) {
JSONDataParser<SimdJSONParser> parser;
ParseConfig config;
- config.enable_flatten_nested = true;
+ config.deprecated_enable_flatten_nested = true;
// TODO: The following 3 cases no longer throw because
checkAmbiguousStructure requires
// has_nested_in_flatten && is_top_array. "b" contains plain arrays (not
nested objects),
@@ -276,7 +276,7 @@ TEST(JsonParserTest, TestAmbiguousStructureDetection) {
TEST(JsonParserTest, TestNestedArrayHandling) {
JSONDataParser<SimdJSONParser> parser;
ParseConfig config;
- config.enable_flatten_nested = true;
+ config.deprecated_enable_flatten_nested = true;
// Test case 1: Simple nested array handling
std::string json1 = R"([{"b": 1}, {"c": 2}])";
@@ -296,7 +296,7 @@ TEST(JsonParserTest, TestNestedArrayWithDifferentConfigs) {
// Test with flatten_nested = false
ParseConfig config1;
- config1.enable_flatten_nested = false;
+ config1.deprecated_enable_flatten_nested = false;
std::string json1 = R"([{"b": [1, 2]}, {"b": [3, 4]}])";
auto result1 = parser.parse(json1.c_str(), json1.size(), config1);
@@ -306,7 +306,7 @@ TEST(JsonParserTest, TestNestedArrayWithDifferentConfigs) {
// Test with flatten_nested = true
ParseConfig config2;
- config2.enable_flatten_nested = true;
+ config2.deprecated_enable_flatten_nested = true;
// TODO: "b" contains plain arrays (no nested objects), so
has_nested=false,
// has_nested_in_flatten=false, and checkAmbiguousStructure is not called.
@@ -426,7 +426,7 @@ TEST(JsonParserTest, ParseUInt64) {
EXPECT_EQ(array_field[0].get<doris::PrimitiveType::TYPE_LARGEINT>(),
18446744073709551615ULL);
std::string nested_json = R"({"a": [{"b": 18446744073709551615}]})";
- config.enable_flatten_nested = true;
+ config.deprecated_enable_flatten_nested = true;
result = parser.parse(nested_json.c_str(), nested_json.size(), config);
ASSERT_TRUE(result.has_value());
EXPECT_EQ(result->values.size(), 1);
@@ -458,7 +458,7 @@ TEST(JsonParserTest, KeyLengthLimitByConfig) {
std::string obj_json = "{\"" + key11 + "\": 1}";
EXPECT_ANY_THROW(parser.parse(obj_json.c_str(), obj_json.size(),
config));
- config.enable_flatten_nested = false;
+ config.deprecated_enable_flatten_nested = false;
std::string jsonb_json = "{\"a\": [{\"" + key11 + "\": 1}]}";
EXPECT_ANY_THROW(parser.parse(jsonb_json.c_str(), jsonb_json.size(),
config));
}
@@ -471,7 +471,7 @@ TEST(JsonParserTest, KeyLengthLimitByConfig) {
auto result = parser.parse(obj_json.c_str(), obj_json.size(), config);
ASSERT_TRUE(result.has_value());
- config.enable_flatten_nested = false;
+ config.deprecated_enable_flatten_nested = false;
std::string jsonb_json = "{\"a\": [{\"" + key255 + "\": 1}]}";
result = parser.parse(jsonb_json.c_str(), jsonb_json.size(), config);
ASSERT_TRUE(result.has_value());
diff --git a/be/test/exec/common/schema_util_rowset_test.cpp
b/be/test/exec/common/schema_util_rowset_test.cpp
index a12d2429b8d..aa9c2fd13cd 100644
--- a/be/test/exec/common/schema_util_rowset_test.cpp
+++ b/be/test/exec/common/schema_util_rowset_test.cpp
@@ -143,7 +143,7 @@ static void fill_varaint_column(auto& variant_column, int
size, int uid) {
auto column_string = assert_cast<ColumnString*>(column.get());
fill_string_column_with_test_data(column_string, size, uid);
ParseConfig config;
- config.enable_flatten_nested = false;
+ config.deprecated_enable_flatten_nested = false;
variant_util::parse_json_to_variant(*variant_column, *column_string,
config);
}
diff --git a/be/test/exec/common/schema_util_test.cpp
b/be/test/exec/common/schema_util_test.cpp
index 70b5823c5c9..1a9b4617c52 100644
--- a/be/test/exec/common/schema_util_test.cpp
+++ b/be/test/exec/common/schema_util_test.cpp
@@ -1876,7 +1876,7 @@ TEST_F(SchemaUtilTest,
parse_and_materialize_variant_columns_ambiguous_paths) {
// The variant column is at index 0
std::vector<uint32_t> variant_pos = {0};
ParseConfig config;
- config.enable_flatten_nested = true;
+ config.deprecated_enable_flatten_nested = true;
// Should throw due to ambiguous paths
Status st = variant_util::parse_and_materialize_variant_columns(block,
variant_pos, {config});
diff --git a/be/test/storage/segment/variant_column_writer_reader_test.cpp
b/be/test/storage/segment/variant_column_writer_reader_test.cpp
index d341f2d1ba2..f690bf74f46 100644
--- a/be/test/storage/segment/variant_column_writer_reader_test.cpp
+++ b/be/test/storage/segment/variant_column_writer_reader_test.cpp
@@ -219,7 +219,7 @@ static void fill_variant_column_with_doc_value_only(
VariantUtil::fill_string_column_with_test_data(column_string, num_rows,
inserted);
ParseConfig config;
- config.enable_flatten_nested = false;
+ config.deprecated_enable_flatten_nested = false;
config.parse_to = ParseConfig::ParseTo::OnlyDocValueColumn;
variant_util::parse_json_to_variant(*column_object, *column_string,
config);
}
@@ -1340,7 +1340,7 @@ TEST_F(VariantColumnWriterReaderTest,
test_write_doc_compact_writer_and_read_doc
}
ParseConfig config;
- config.enable_flatten_nested = false;
+ config.deprecated_enable_flatten_nested = false;
config.parse_to = ParseConfig::ParseTo::OnlyDocValueColumn;
MutableColumnPtr root_variant =
@@ -1515,7 +1515,7 @@ TEST_F(VariantColumnWriterReaderTest,
test_doc_compact_sparse_write_array_gap) {
strings->insert_data(row1.data(), row1.size());
ParseConfig parse_cfg;
- parse_cfg.enable_flatten_nested = false;
+ parse_cfg.deprecated_enable_flatten_nested = false;
parse_cfg.parse_to = ParseConfig::ParseTo::OnlyDocValueColumn;
MutableColumnPtr bucket_variant =
@@ -1616,7 +1616,7 @@ TEST_F(VariantColumnWriterReaderTest,
test_write_doc_sparse_write_array_gap_and_
strings->insert_data(inserted_json[1].data(), inserted_json[1].size());
ParseConfig parse_cfg;
- parse_cfg.enable_flatten_nested = false;
+ parse_cfg.deprecated_enable_flatten_nested = false;
parse_cfg.parse_to = ParseConfig::ParseTo::OnlyDocValueColumn;
MutableColumnPtr variant_column =
@@ -2680,7 +2680,7 @@ TEST_F(VariantColumnWriterReaderTest,
test_no_sub_in_sparse_column) {
}
ParseConfig config;
- config.enable_flatten_nested = false;
+ config.deprecated_enable_flatten_nested = false;
variant_util::parse_json_to_variant(*column_object, *column_string,
config);
std::cout << "column_object size: "
<<
assert_cast<ColumnVariant*>(column_object.get())->debug_string() << std::endl;
@@ -2825,7 +2825,7 @@ TEST_F(VariantColumnWriterReaderTest,
test_prefix_in_sub_and_sparse) {
}
ParseConfig config;
- config.enable_flatten_nested = false;
+ config.deprecated_enable_flatten_nested = false;
variant_util::parse_json_to_variant(*column_object, *column_string,
config);
std::cout << "column_object size: "
<<
assert_cast<ColumnVariant*>(column_object.get())->debug_string() << std::endl;
@@ -3312,7 +3312,7 @@ TEST_F(VariantColumnWriterReaderTest,
test_read_with_checksum) {
fill_string_column_with_test_data(column_string, size,
inserted_jsonstr,
path_with_size);
ParseConfig config;
- config.enable_flatten_nested = false;
+ config.deprecated_enable_flatten_nested = false;
variant_util::parse_json_to_variant(*column_object,
*column_string, config);
};
diff --git a/be/test/storage/segment/variant_util_test.cpp
b/be/test/storage/segment/variant_util_test.cpp
index daa6d0b2a0e..53e9ede840c 100644
--- a/be/test/storage/segment/variant_util_test.cpp
+++ b/be/test/storage/segment/variant_util_test.cpp
@@ -53,7 +53,7 @@ TEST(VariantUtilTest,
ParseDocValueToSubcolumns_FillsDefaultsAndValues) {
auto json_col = _make_json_column(jsons);
ParseConfig cfg;
- cfg.enable_flatten_nested = false;
+ cfg.deprecated_enable_flatten_nested = false;
cfg.parse_to = ParseConfig::ParseTo::OnlyDocValueColumn;
parse_json_to_variant(*variant, *json_col, cfg);
@@ -105,7 +105,7 @@ TEST(VariantUtilTest,
ParseOnlyDocValueColumn_SerializesMixedTypes) {
auto json_col = _make_json_column(jsons);
ParseConfig cfg;
- cfg.enable_flatten_nested = false;
+ cfg.deprecated_enable_flatten_nested = false;
cfg.parse_to = ParseConfig::ParseTo::OnlyDocValueColumn;
parse_json_to_variant(*variant, *json_col, cfg);
@@ -222,7 +222,7 @@ TEST(VariantUtilTest,
ParseVariantColumns_DocModeBinaryToSubcolumns) {
auto variant = ColumnVariant::create(0);
auto json_col = _make_json_column(jsons);
ParseConfig cfg;
- cfg.enable_flatten_nested = false;
+ cfg.deprecated_enable_flatten_nested = false;
cfg.parse_to = ParseConfig::ParseTo::OnlyDocValueColumn;
parse_json_to_variant(*variant, *json_col, cfg);
ASSERT_TRUE(variant->is_doc_mode());
@@ -231,7 +231,7 @@ TEST(VariantUtilTest,
ParseVariantColumns_DocModeBinaryToSubcolumns) {
block.insert({variant->get_ptr(), std::make_shared<DataTypeVariant>(0),
"v"});
ParseConfig parse_cfg;
- parse_cfg.enable_flatten_nested = false;
+ parse_cfg.deprecated_enable_flatten_nested = false;
parse_cfg.parse_to = ParseConfig::ParseTo::OnlyDocValueColumn;
Status st =
parse_and_materialize_variant_columns(block, std::vector<uint32_t>
{0}, {parse_cfg});
@@ -275,7 +275,7 @@ TEST(VariantUtilTest,
ParseVariantColumns_DocModeRejectOnlySubcolumnsConfig) {
auto json_col = _make_json_column(jsons);
ParseConfig cfg;
- cfg.enable_flatten_nested = false;
+ cfg.deprecated_enable_flatten_nested = false;
cfg.parse_to = ParseConfig::ParseTo::OnlyDocValueColumn;
parse_json_to_variant(*variant, *json_col, cfg);
ASSERT_TRUE(variant->is_doc_mode());
@@ -284,7 +284,7 @@ TEST(VariantUtilTest,
ParseVariantColumns_DocModeRejectOnlySubcolumnsConfig) {
block.insert({variant->get_ptr(), std::make_shared<DataTypeVariant>(0),
"v"});
ParseConfig parse_cfg;
- parse_cfg.enable_flatten_nested = false;
+ parse_cfg.deprecated_enable_flatten_nested = false;
parse_cfg.parse_to = ParseConfig::ParseTo::OnlyDocValueColumn;
Status st =
parse_and_materialize_variant_columns(block, std::vector<uint32_t>
{0}, {parse_cfg});
diff --git a/be/test/testutil/variant_util.h b/be/test/testutil/variant_util.h
index a15542cce9a..9d3cdea9e84 100644
--- a/be/test/testutil/variant_util.h
+++ b/be/test/testutil/variant_util.h
@@ -303,7 +303,7 @@ public:
auto column_string = assert_cast<ColumnString*>(column.get());
auto res = fill_string_column_with_test_data(column_string, size,
inserted_jsonstr);
ParseConfig config;
- config.enable_flatten_nested = false;
+ config.deprecated_enable_flatten_nested = false;
variant_util::parse_json_to_variant(*column_object, *column_string,
config);
return res;
}
@@ -356,7 +356,7 @@ public:
assert(column_string->size() == size);
ParseConfig config;
// do not treat array with jsonb field
- config.enable_flatten_nested = has_nested;
+ config.deprecated_enable_flatten_nested = has_nested;
variant_util::parse_json_to_variant(*variant_column, *column_string,
config);
}
@@ -367,7 +367,7 @@ public:
auto column_string = assert_cast<ColumnString*>(column.get());
auto res = fill_string_column_with_nested_test_data(column_string,
size, inserted_jsonstr);
ParseConfig config;
- config.enable_flatten_nested = false;
+ config.deprecated_enable_flatten_nested = false;
variant_util::parse_json_to_variant(*column_object, *column_string,
config);
return res;
}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/OlapTable.java
b/fe/fe-core/src/main/java/org/apache/doris/catalog/OlapTable.java
index b0200c707fc..ba1b8d3c715 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/OlapTable.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/OlapTable.java
@@ -2618,6 +2618,7 @@ public class OlapTable extends Table implements
MTMVRelatedTableIf, GsonPostProc
return false;
}
+ @Deprecated
public void setVariantEnableFlattenNested(boolean flattenNested) throws
AnalysisException {
TableProperty tableProperty = getOrCreatTableProperty();
tableProperty.modifyTableProperties(PropertyAnalyzer.PROPERTIES_VARIANT_ENABLE_FLATTEN_NESTED,
@@ -2625,6 +2626,7 @@ public class OlapTable extends Table implements
MTMVRelatedTableIf, GsonPostProc
tableProperty.buildVariantEnableFlattenNested();
}
+ @Deprecated
public Boolean variantEnableFlattenNested() {
if (tableProperty != null) {
return tableProperty.variantEnableFlattenNested();
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/catalog/TableProperty.java
b/fe/fe-core/src/main/java/org/apache/doris/catalog/TableProperty.java
index c260fbb99c3..7ada8286d98 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/TableProperty.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/TableProperty.java
@@ -327,11 +327,22 @@ public class TableProperty implements GsonPostProcessable
{
}
public TableProperty buildVariantEnableFlattenNested() {
+ migrateDeprecatedVariantEnableFlattenNestedProperty();
variantEnableFlattenNested = Boolean.parseBoolean(
properties.getOrDefault(PropertyAnalyzer.PROPERTIES_VARIANT_ENABLE_FLATTEN_NESTED,
"false"));
return this;
}
+ private void migrateDeprecatedVariantEnableFlattenNestedProperty() {
+ if
(!properties.containsKey(PropertyAnalyzer.PROPERTIES_VARIANT_ENABLE_FLATTEN_NESTED)
+ &&
properties.containsKey(PropertyAnalyzer.LEGACY_PROPERTIES_VARIANT_ENABLE_FLATTEN_NESTED))
{
+
properties.put(PropertyAnalyzer.PROPERTIES_VARIANT_ENABLE_FLATTEN_NESTED,
+
properties.remove(PropertyAnalyzer.LEGACY_PROPERTIES_VARIANT_ENABLE_FLATTEN_NESTED));
+ return;
+ }
+
properties.remove(PropertyAnalyzer.LEGACY_PROPERTIES_VARIANT_ENABLE_FLATTEN_NESTED);
+ }
+
public boolean variantEnableFlattenNested() {
return variantEnableFlattenNested;
}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/common/util/PropertyAnalyzer.java
b/fe/fe-core/src/main/java/org/apache/doris/common/util/PropertyAnalyzer.java
index c6a8f0df8db..76e447b6a10 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/common/util/PropertyAnalyzer.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/common/util/PropertyAnalyzer.java
@@ -157,7 +157,14 @@ public class PropertyAnalyzer {
public static final String PROPERTIES_DISABLE_AUTO_COMPACTION =
"disable_auto_compaction";
- public static final String PROPERTIES_VARIANT_ENABLE_FLATTEN_NESTED =
"variant_enable_flatten_nested";
+ // Legacy persisted switch for flatten-nested variant behavior before it
was deprecated.
+ @Deprecated
+ public static final String LEGACY_PROPERTIES_VARIANT_ENABLE_FLATTEN_NESTED
= "variant_enable_flatten_nested";
+
+ // Deprecated legacy switch for flatten-nested variant behavior.
+ // It is distinct from variant_enable_nested_group.
+ @Deprecated
+ public static final String PROPERTIES_VARIANT_ENABLE_FLATTEN_NESTED =
"deprecated_variant_enable_flatten_nested";
public static final String PROPERTIES_ENABLE_SINGLE_REPLICA_COMPACTION =
"enable_single_replica_compaction";
@@ -835,6 +842,7 @@ public class PropertyAnalyzer {
+ " must be `true` or `false`");
}
+ @Deprecated
public static Boolean analyzeVariantFlattenNested(Map<String, String>
properties) throws AnalysisException {
if (properties == null || properties.isEmpty()) {
return false;
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/datasource/InternalCatalog.java
b/fe/fe-core/src/main/java/org/apache/doris/datasource/InternalCatalog.java
index d353520ae63..cbbc3dd1797 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/datasource/InternalCatalog.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/InternalCatalog.java
@@ -2492,7 +2492,8 @@ public class InternalCatalog implements
CatalogIf<Database> {
boolean variantEnableFlattenNested = false;
try {
variantEnableFlattenNested =
PropertyAnalyzer.analyzeVariantFlattenNested(properties);
- // only if session variable: enable_variant_flatten_nested = true
and
+ // Deprecated legacy flatten-nested switches.
+ // Only if session variable: enable_variant_flatten_nested = true
and
// table property: variant_enable_flatten_nested = true
// we can enable variant flatten nested otherwise throw error
if (ctx != null &&
ctx.getSessionVariable().getEnableVariantFlattenNested()
diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java
b/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java
index 576b3a392be..2d24753db7b 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java
@@ -808,8 +808,10 @@ public class SessionVariable implements Serializable,
Writable {
public static final String DISABLE_INVERTED_INDEX_V1_FOR_VARIANT =
"disable_inverted_index_v1_for_variant";
- // enable variant flatten nested as session variable, default is false,
- // which means do not flatten nested when create table
+ // Deprecated legacy switch for flatten-nested variant behavior.
+ // It is distinct from variant_enable_nested_group.
+ // Default is false, which means do not flatten nested when create table.
+ @Deprecated
public static final String ENABLE_VARIANT_FLATTEN_NESTED =
"enable_variant_flatten_nested";
public static final String ENABLE_VARIANT_SCHEMA_AUTO_CAST =
"enable_variant_schema_auto_cast";
@@ -1724,6 +1726,7 @@ public class SessionVariable implements Serializable,
Writable {
@VariableMgr.VarAttr(name = DISABLE_INVERTED_INDEX_V1_FOR_VARIANT,
needForward = true)
private boolean disableInvertedIndexV1ForVaraint = true;
+ @Deprecated
@VariableMgr.VarAttr(name = ENABLE_VARIANT_FLATTEN_NESTED, needForward =
true)
private boolean enableVariantFlattenNested = false;
@@ -6224,10 +6227,12 @@ public class SessionVariable implements Serializable,
Writable {
return disableInvertedIndexV1ForVaraint;
}
+ @Deprecated
public void setEnableVariantFlattenNested(boolean
enableVariantFlattenNested) {
this.enableVariantFlattenNested = enableVariantFlattenNested;
}
+ @Deprecated
public boolean getEnableVariantFlattenNested() {
return enableVariantFlattenNested;
}
diff --git
a/fe/fe-core/src/test/java/org/apache/doris/catalog/OlapTableTest.java
b/fe/fe-core/src/test/java/org/apache/doris/catalog/OlapTableTest.java
index 42f104371e8..881c79865d7 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/catalog/OlapTableTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/catalog/OlapTableTest.java
@@ -25,6 +25,7 @@ import org.apache.doris.cloud.rpc.VersionHelper;
import org.apache.doris.common.Config;
import org.apache.doris.common.FeConstants;
import org.apache.doris.common.io.FastByteArrayOutputStream;
+import org.apache.doris.common.util.PropertyAnalyzer;
import org.apache.doris.common.util.UnitTestUtil;
import org.apache.doris.qe.ConnectContext;
import org.apache.doris.qe.SessionVariable;
@@ -139,6 +140,21 @@ public class OlapTableTest {
Assert.assertEquals((short) 3,
olapTable.getDefaultReplicaAllocation().getTotalReplicaNum());
}
+ @Test
+ public void testBuildVariantEnableFlattenNestedWithLegacyPropertyKey()
throws IOException {
+ Map<String, String> properties = Maps.newHashMap();
+
properties.put(PropertyAnalyzer.LEGACY_PROPERTIES_VARIANT_ENABLE_FLATTEN_NESTED,
"true");
+
+ TableProperty tableProperty = new TableProperty(properties);
+ tableProperty.gsonPostProcess();
+
+ Assert.assertTrue(tableProperty.variantEnableFlattenNested());
+ Assert.assertEquals("true",
+
tableProperty.getProperties().get(PropertyAnalyzer.PROPERTIES_VARIANT_ENABLE_FLATTEN_NESTED));
+ Assert.assertFalse(
+
tableProperty.getProperties().containsKey(PropertyAnalyzer.LEGACY_PROPERTIES_VARIANT_ENABLE_FLATTEN_NESTED));
+ }
+
@Test
public void testGetPartitionRowCount() {
OlapTable olapTable = new OlapTable();
diff --git a/regression-test/data/query_p0/system/test_table_properties.out
b/regression-test/data/query_p0/system/test_table_properties.out
index 9f6e334cc9a..497f3006120 100644
--- a/regression-test/data/query_p0/system/test_table_properties.out
+++ b/regression-test/data/query_p0/system/test_table_properties.out
@@ -12,6 +12,7 @@ internal test_table_properties_db duplicate_table
compaction_policy size_based
internal test_table_properties_db duplicate_table compression
ZSTD
internal test_table_properties_db duplicate_table
data_sort.col_num 3
internal test_table_properties_db duplicate_table
data_sort.sort_type LEXICAL
+internal test_table_properties_db duplicate_table
deprecated_variant_enable_flatten_nested false
internal test_table_properties_db duplicate_table
disable_auto_compaction false
internal test_table_properties_db duplicate_table
enable_mow_light_delete false
internal test_table_properties_db duplicate_table
enable_single_replica_compaction false
@@ -38,7 +39,6 @@ internal test_table_properties_db duplicate_table
time_series_compaction_file_co
internal test_table_properties_db duplicate_table
time_series_compaction_goal_size_mbytes 1024
internal test_table_properties_db duplicate_table
time_series_compaction_level_threshold 1
internal test_table_properties_db duplicate_table
time_series_compaction_time_threshold_seconds 3600
-internal test_table_properties_db duplicate_table
variant_enable_flatten_nested false
internal test_table_properties_db duplicate_table
vertical_compaction_num_columns_per_group 5
internal test_table_properties_db listtable _auto_bucket
false
internal test_table_properties_db listtable binlog.enable
false
@@ -49,6 +49,7 @@ internal test_table_properties_db listtable
compaction_policy size_based
internal test_table_properties_db listtable compression
ZSTD
internal test_table_properties_db listtable
data_sort.col_num 6
internal test_table_properties_db listtable
data_sort.sort_type LEXICAL
+internal test_table_properties_db listtable
deprecated_variant_enable_flatten_nested false
internal test_table_properties_db listtable
disable_auto_compaction false
internal test_table_properties_db listtable
enable_mow_light_delete false
internal test_table_properties_db listtable
enable_single_replica_compaction false
@@ -75,7 +76,6 @@ internal test_table_properties_db listtable
time_series_compaction_file_count_th
internal test_table_properties_db listtable
time_series_compaction_goal_size_mbytes 1024
internal test_table_properties_db listtable
time_series_compaction_level_threshold 1
internal test_table_properties_db listtable
time_series_compaction_time_threshold_seconds 3600
-internal test_table_properties_db listtable
variant_enable_flatten_nested false
internal test_table_properties_db listtable
vertical_compaction_num_columns_per_group 5
internal test_table_properties_db unique_table _auto_bucket
false
internal test_table_properties_db unique_table binlog.enable
false
@@ -86,6 +86,7 @@ internal test_table_properties_db unique_table
compaction_policy size_based
internal test_table_properties_db unique_table compression
ZSTD
internal test_table_properties_db unique_table
data_sort.col_num 2
internal test_table_properties_db unique_table
data_sort.sort_type LEXICAL
+internal test_table_properties_db unique_table
deprecated_variant_enable_flatten_nested false
internal test_table_properties_db unique_table
disable_auto_compaction false
internal test_table_properties_db unique_table
enable_mow_light_delete false
internal test_table_properties_db unique_table
enable_single_replica_compaction false
@@ -112,7 +113,6 @@ internal test_table_properties_db unique_table
time_series_compaction_file_count
internal test_table_properties_db unique_table
time_series_compaction_goal_size_mbytes 1024
internal test_table_properties_db unique_table
time_series_compaction_level_threshold 1
internal test_table_properties_db unique_table
time_series_compaction_time_threshold_seconds 3600
-internal test_table_properties_db unique_table
variant_enable_flatten_nested false
internal test_table_properties_db unique_table
vertical_compaction_num_columns_per_group 5
-- !select_check_3 --
@@ -125,6 +125,7 @@ internal test_table_properties_db duplicate_table
compaction_policy size_based
internal test_table_properties_db duplicate_table compression
ZSTD
internal test_table_properties_db duplicate_table
data_sort.col_num 3
internal test_table_properties_db duplicate_table
data_sort.sort_type LEXICAL
+internal test_table_properties_db duplicate_table
deprecated_variant_enable_flatten_nested false
internal test_table_properties_db duplicate_table
disable_auto_compaction false
internal test_table_properties_db duplicate_table
enable_mow_light_delete false
internal test_table_properties_db duplicate_table
enable_single_replica_compaction false
@@ -151,7 +152,6 @@ internal test_table_properties_db duplicate_table
time_series_compaction_file_co
internal test_table_properties_db duplicate_table
time_series_compaction_goal_size_mbytes 1024
internal test_table_properties_db duplicate_table
time_series_compaction_level_threshold 1
internal test_table_properties_db duplicate_table
time_series_compaction_time_threshold_seconds 3600
-internal test_table_properties_db duplicate_table
variant_enable_flatten_nested false
internal test_table_properties_db duplicate_table
vertical_compaction_num_columns_per_group 5
internal test_table_properties_db unique_table _auto_bucket
false
internal test_table_properties_db unique_table binlog.enable
false
@@ -162,6 +162,7 @@ internal test_table_properties_db unique_table
compaction_policy size_based
internal test_table_properties_db unique_table compression
ZSTD
internal test_table_properties_db unique_table
data_sort.col_num 2
internal test_table_properties_db unique_table
data_sort.sort_type LEXICAL
+internal test_table_properties_db unique_table
deprecated_variant_enable_flatten_nested false
internal test_table_properties_db unique_table
disable_auto_compaction false
internal test_table_properties_db unique_table
enable_mow_light_delete false
internal test_table_properties_db unique_table
enable_single_replica_compaction false
@@ -188,7 +189,6 @@ internal test_table_properties_db unique_table
time_series_compaction_file_count
internal test_table_properties_db unique_table
time_series_compaction_goal_size_mbytes 1024
internal test_table_properties_db unique_table
time_series_compaction_level_threshold 1
internal test_table_properties_db unique_table
time_series_compaction_time_threshold_seconds 3600
-internal test_table_properties_db unique_table
variant_enable_flatten_nested false
internal test_table_properties_db unique_table
vertical_compaction_num_columns_per_group 5
-- !select_check_4 --
@@ -203,6 +203,7 @@ internal test_table_properties_db duplicate_table
compaction_policy size_based
internal test_table_properties_db duplicate_table compression
ZSTD
internal test_table_properties_db duplicate_table
data_sort.col_num 3
internal test_table_properties_db duplicate_table
data_sort.sort_type LEXICAL
+internal test_table_properties_db duplicate_table
deprecated_variant_enable_flatten_nested false
internal test_table_properties_db duplicate_table
disable_auto_compaction false
internal test_table_properties_db duplicate_table
enable_mow_light_delete false
internal test_table_properties_db duplicate_table
enable_single_replica_compaction false
@@ -229,7 +230,6 @@ internal test_table_properties_db duplicate_table
time_series_compaction_file_co
internal test_table_properties_db duplicate_table
time_series_compaction_goal_size_mbytes 1024
internal test_table_properties_db duplicate_table
time_series_compaction_level_threshold 1
internal test_table_properties_db duplicate_table
time_series_compaction_time_threshold_seconds 3600
-internal test_table_properties_db duplicate_table
variant_enable_flatten_nested false
internal test_table_properties_db duplicate_table
vertical_compaction_num_columns_per_group 5
-- !select_check_6 --
diff --git a/regression-test/suites/variant_doc_mode_p2/load.groovy
b/regression-test/suites/variant_doc_mode_p2/load.groovy
index 6dc40484b2a..e9a926f380e 100644
--- a/regression-test/suites/variant_doc_mode_p2/load.groovy
+++ b/regression-test/suites/variant_doc_mode_p2/load.groovy
@@ -92,7 +92,7 @@ suite("test_doc_value_p2", "nonConcurrent,p2"){
)
DUPLICATE KEY(`k`)
DISTRIBUTED BY HASH(k) BUCKETS 1
- properties("replication_num" = "1", "disable_auto_compaction" =
"true", "variant_enable_flatten_nested" = "false",
"inverted_index_storage_format"= "v2");
+ properties("replication_num" = "1", "disable_auto_compaction" =
"true", "deprecated_variant_enable_flatten_nested" = "false",
"inverted_index_storage_format"= "v2");
"""
// 2015
load_json_data.call(table_name, """${getS3Url() +
'/regression/gharchive.m/2015-01-01-0.json'}""")
@@ -154,7 +154,7 @@ suite("test_doc_value_p2", "nonConcurrent,p2"){
)
UNIQUE KEY(`k`)
DISTRIBUTED BY HASH(k) BUCKETS 4
- properties("replication_num" = "1", "disable_auto_compaction" =
"false", "variant_enable_flatten_nested" = "false", "bloom_filter_columns" =
"v");
+ properties("replication_num" = "1", "disable_auto_compaction" =
"false", "deprecated_variant_enable_flatten_nested" = "false",
"bloom_filter_columns" = "v");
"""
sql """insert into github_events2 select * from github_events order by k"""
sql """select v['payload']['commits'] from github_events order by k ;"""
diff --git
a/regression-test/suites/variant_github_events_nonConcurrent_p2/load.groovy
b/regression-test/suites/variant_github_events_nonConcurrent_p2/load.groovy
index 5fca8a07016..0bf08c0633c 100644
--- a/regression-test/suites/variant_github_events_nonConcurrent_p2/load.groovy
+++ b/regression-test/suites/variant_github_events_nonConcurrent_p2/load.groovy
@@ -85,7 +85,7 @@ suite("regression_test_variant_github_events_p2",
"nonConcurrent,p2"){
)
DUPLICATE KEY(`k`)
DISTRIBUTED BY HASH(k) BUCKETS 4
- properties("replication_num" = "1", "disable_auto_compaction" =
"true", "variant_enable_flatten_nested" = "true",
"inverted_index_storage_format"= "v2");
+ properties("replication_num" = "1", "disable_auto_compaction" =
"true", "deprecated_variant_enable_flatten_nested" = "true",
"inverted_index_storage_format"= "v2");
"""
// 2015
load_json_data.call(table_name, """${getS3Url() +
'/regression/gharchive.m/2015-01-01-0.json'}""")
@@ -147,7 +147,7 @@ suite("regression_test_variant_github_events_p2",
"nonConcurrent,p2"){
)
UNIQUE KEY(`k`)
DISTRIBUTED BY HASH(k) BUCKETS 4
- properties("replication_num" = "1", "disable_auto_compaction" =
"false", "variant_enable_flatten_nested" = "true", "bloom_filter_columns" =
"v");
+ properties("replication_num" = "1", "disable_auto_compaction" =
"false", "deprecated_variant_enable_flatten_nested" = "true",
"bloom_filter_columns" = "v");
"""
sql """insert into github_events2 select * from github_events order by k"""
sql """select v['payload']['commits'] from github_events order by k ;"""
diff --git
a/regression-test/suites/variant_github_events_nonConcurrent_upgrade_p2/load.groovy
b/regression-test/suites/variant_github_events_nonConcurrent_upgrade_p2/load.groovy
index f53ed7d1b42..cfe29e2e682 100644
---
a/regression-test/suites/variant_github_events_nonConcurrent_upgrade_p2/load.groovy
+++
b/regression-test/suites/variant_github_events_nonConcurrent_upgrade_p2/load.groovy
@@ -83,7 +83,7 @@ suite("regression_test_variant_github_events_upgrade_p2",
"nonConcurrent,p2"){
)
UNIQUE KEY(`k`)
DISTRIBUTED BY HASH(k) BUCKETS 4
- properties("replication_num" = "1", "disable_auto_compaction" =
"true", "bloom_filter_columns" = "v", "variant_enable_flatten_nested" = "true",
"inverted_index_storage_format"= "v2", "enable_unique_key_merge_on_write" =
"false");
+ properties("replication_num" = "1", "disable_auto_compaction" =
"true", "bloom_filter_columns" = "v",
"deprecated_variant_enable_flatten_nested" = "true",
"inverted_index_storage_format"= "v2", "enable_unique_key_merge_on_write" =
"false");
"""
// 2015
load_json_data.call(table_name, """${getS3Url() +
'/regression/gharchive.m/2015-01-01-0.json'}""")
diff --git a/regression-test/suites/variant_p0/delete_update.groovy
b/regression-test/suites/variant_p0/delete_update.groovy
index e01aa8fd52d..7d01312953d 100644
--- a/regression-test/suites/variant_p0/delete_update.groovy
+++ b/regression-test/suites/variant_p0/delete_update.groovy
@@ -29,7 +29,7 @@ suite("regression_test_variant_delete_and_update",
"variant_type"){
)
UNIQUE KEY(`k`)
DISTRIBUTED BY HASH(k) BUCKETS 3
- properties("replication_num" = "1", "enable_unique_key_merge_on_write"
= "false", "variant_enable_flatten_nested" = "true");
+ properties("replication_num" = "1", "enable_unique_key_merge_on_write"
= "false", "deprecated_variant_enable_flatten_nested" = "true");
"""
// test mor table
diff --git a/regression-test/suites/variant_p0/doc_mode/delete_update.groovy
b/regression-test/suites/variant_p0/doc_mode/delete_update.groovy
index 992dd0b114a..340ea9a7edf 100644
--- a/regression-test/suites/variant_p0/doc_mode/delete_update.groovy
+++ b/regression-test/suites/variant_p0/doc_mode/delete_update.groovy
@@ -30,7 +30,7 @@ suite("variant_delete_and_update_doc_value", "p0"){
)
UNIQUE KEY(`k`)
DISTRIBUTED BY HASH(k) BUCKETS 3
- properties("replication_num" = "1", "enable_unique_key_merge_on_write"
= "false", "variant_enable_flatten_nested" = "false");
+ properties("replication_num" = "1", "enable_unique_key_merge_on_write"
= "false", "deprecated_variant_enable_flatten_nested" = "false");
"""
// test mor table
diff --git a/regression-test/suites/variant_p0/doc_mode/predefine/load.groovy
b/regression-test/suites/variant_p0/doc_mode/predefine/load.groovy
index 1e5dd1fcaf6..f4bde164b43 100644
--- a/regression-test/suites/variant_p0/doc_mode/predefine/load.groovy
+++ b/regression-test/suites/variant_p0/doc_mode/predefine/load.groovy
@@ -60,7 +60,7 @@ suite("test_variant_predefine_doc_value", "nonConcurrent"){
`v1` variant<properties("variant_enable_doc_mode" = "false")> NULL,
INDEX idx_var_sub(`v1`) USING INVERTED PROPERTIES("parser" =
"english") )
ENGINE=OLAP DUPLICATE KEY(`id`) DISTRIBUTED BY HASH(`id`) BUCKETS 2
- PROPERTIES ( "replication_allocation" = "tag.location.default: 1",
"variant_enable_flatten_nested" = "true");
+ PROPERTIES ( "replication_allocation" = "tag.location.default: 1",
"deprecated_variant_enable_flatten_nested" = "true");
"""
sql """insert into test_predefine1 values(1, '{"predefine_col1" :
1024}')"""
sql """insert into test_predefine1 values(2, '{"predefine_col2" :
1.11111}')"""
@@ -219,7 +219,7 @@ suite("test_variant_predefine_doc_value", "nonConcurrent"){
`id` bigint NOT NULL,
`v` variant<'nested.a':string> NULL)
ENGINE=OLAP DUPLICATE KEY(`id`) DISTRIBUTED BY HASH(`id`) BUCKETS 1
- PROPERTIES ( "replication_allocation" = "tag.location.default: 1",
"variant_enable_flatten_nested" = "false", "disable_auto_compaction" =
"true");"""
+ PROPERTIES ( "replication_allocation" = "tag.location.default: 1",
"deprecated_variant_enable_flatten_nested" = "false", "disable_auto_compaction"
= "true");"""
// test alter nested no effect at present
sql "truncate table test_predefine3"
diff --git
a/regression-test/suites/variant_p0/doc_mode/schema_change/test_double_write_when_schema_change.groovy
b/regression-test/suites/variant_p0/doc_mode/schema_change/test_double_write_when_schema_change.groovy
index a063e13b743..4619f0aae8e 100644
---
a/regression-test/suites/variant_p0/doc_mode/schema_change/test_double_write_when_schema_change.groovy
+++
b/regression-test/suites/variant_p0/doc_mode/schema_change/test_double_write_when_schema_change.groovy
@@ -68,7 +68,7 @@ suite("double_write_schema_change_doc_value",
"nonConcurrent") {
)
DUPLICATE KEY(`k`)
DISTRIBUTED BY HASH(k) BUCKETS 2
- properties("replication_num" = "1", "disable_auto_compaction" =
"false", "variant_enable_flatten_nested" = "false");
+ properties("replication_num" = "1", "disable_auto_compaction" =
"false", "deprecated_variant_enable_flatten_nested" = "false");
"""
set_be_config.call("memory_limitation_per_thread_for_schema_change_bytes",
"6294967296")
diff --git a/regression-test/suites/variant_p0/nested.groovy
b/regression-test/suites/variant_p0/nested.groovy
index ea685a86041..f3786f608a6 100644
--- a/regression-test/suites/variant_p0/nested.groovy
+++ b/regression-test/suites/variant_p0/nested.groovy
@@ -36,7 +36,7 @@ suite("regression_test_variant_nested", "p0"){
)
DUPLICATE KEY(`k`)
DISTRIBUTED BY HASH(k) BUCKETS 4
- properties("replication_num" = "1", "disable_auto_compaction"
= "false", "variant_enable_flatten_nested" = "true");
+ properties("replication_num" = "1", "disable_auto_compaction"
= "false", "deprecated_variant_enable_flatten_nested" = "true");
"""
sql """
insert into var_nested values (1, '{"xx" : 10}');
@@ -118,7 +118,7 @@
parallel_pipeline_task_num=7,profile_level=1,enable_pipeline_engine=true,enable_
)
UNIQUE KEY(`k`)
DISTRIBUTED BY HASH(k) BUCKETS 1
- properties("replication_num" = "1", "disable_auto_compaction"
= "false", "enable_unique_key_merge_on_write" = "true",
"variant_enable_flatten_nested" = "true");
+ properties("replication_num" = "1", "disable_auto_compaction"
= "false", "enable_unique_key_merge_on_write" = "true",
"deprecated_variant_enable_flatten_nested" = "true");
"""
sql """insert into var_nested2 select * from var_nested order by k
limit 1024"""
qt_sql """select
/*+SET_VAR(batch_size=4064,broker_load_batch_size=16352,disable_streaming_preaggregations=true,enable_distinct_streaming_aggregation=true,parallel_pipeline_task_num=1,profile_level=1,enable_parallel_scan=true,parallel_scan_max_scanners_count=48,parallel_scan_min_rows_per_scanner=16384,enable_fold_constant_by_be=true,enable_rewrite_element_at_to_slot=true,runtime_filter_type=12,enable_parallel_result_sink=false,enable_nereids_planner=true,rewrite_or_to_in_predica
[...]
@@ -140,7 +140,7 @@ where phone_numbers['type'] = 'GSM' OR
phone_numbers['type'] = 'HOME' and phone_
)
UNIQUE KEY(`k`)
DISTRIBUTED BY HASH(k) BUCKETS 1
- properties("replication_num" = "1", "disable_auto_compaction"
= "false", "enable_unique_key_merge_on_write" = "true",
"variant_enable_flatten_nested" = "true");
+ properties("replication_num" = "1", "disable_auto_compaction"
= "false", "enable_unique_key_merge_on_write" = "true",
"deprecated_variant_enable_flatten_nested" = "true");
"""
sql "insert into var_nested_array_agg select * from var_nested"
// 1. array_contains
@@ -157,7 +157,7 @@ where phone_numbers['type'] = 'GSM' OR
phone_numbers['type'] = 'HOME' and phone_
)
UNIQUE KEY(`k`)
DISTRIBUTED BY HASH(k) BUCKETS 1
- properties("replication_num" = "1", "disable_auto_compaction"
= "false", "enable_unique_key_merge_on_write" = "true",
"variant_enable_flatten_nested" = "true");
+ properties("replication_num" = "1", "disable_auto_compaction"
= "false", "enable_unique_key_merge_on_write" = "true",
"deprecated_variant_enable_flatten_nested" = "true");
"""
sql "insert into var_nested_explode_variant_with_abnomal select * from
var_nested"
// 1. v['nested']['x'] is null root
diff --git a/regression-test/suites/variant_p0/nested/load.groovy
b/regression-test/suites/variant_p0/nested/load.groovy
index f1c5b6121d0..ee193fab61b 100644
--- a/regression-test/suites/variant_p0/nested/load.groovy
+++ b/regression-test/suites/variant_p0/nested/load.groovy
@@ -36,7 +36,7 @@
// )
// DUPLICATE KEY(`k`)
// DISTRIBUTED BY HASH(k) BUCKETS 1 -- 1 bucket make
really compaction in conflict case
-// properties("replication_num" = "1",
"disable_auto_compaction" = "true", "variant_enable_flatten_nested" = "true");
+// properties("replication_num" = "1",
"disable_auto_compaction" = "true", "deprecated_variant_enable_flatten_nested"
= "true");
// """
// exception "If you want to enable variant flatten nested, please
set session variable"
// }
@@ -51,7 +51,7 @@
// )
// DUPLICATE KEY(`k`)
// DISTRIBUTED BY HASH(k) BUCKETS 1 -- 1 bucket make
really compaction in conflict case
-// properties("replication_num" = "1",
"disable_auto_compaction" = "true", "variant_enable_flatten_nested" = "true");
+// properties("replication_num" = "1",
"disable_auto_compaction" = "true", "deprecated_variant_enable_flatten_nested"
= "true");
// """
// sql """ insert into ${table_name} values (1, '{"nested": [{"a": 1,
"c": 1.1}, {"b": "1"}]}'); """
//
@@ -108,7 +108,7 @@
// )
// DUPLICATE KEY(`k`)
// DISTRIBUTED BY HASH(k) BUCKETS 1 -- 1 bucket make really
compaction in conflict case
-// properties("replication_num" = "1",
"disable_auto_compaction" = "true", "variant_enable_flatten_nested" = "true");
+// properties("replication_num" = "1",
"disable_auto_compaction" = "true", "deprecated_variant_enable_flatten_nested"
= "true");
// """
// // insert a array of object for a, b, c first then insert structure
conflict in one row
// // insert structure conflict in one row
@@ -153,7 +153,7 @@
//
// // drop table
// sql """ drop table ${table_name_1} """
-// sql """ create table ${table_name_1} (k bigint, v variant)
duplicate key(k) distributed by hash(k) buckets 1 properties("replication_num"
= "1", "disable_auto_compaction" = "true", "variant_enable_flatten_nested" =
"true") """
+// sql """ create table ${table_name_1} (k bigint, v variant)
duplicate key(k) distributed by hash(k) buckets 1 properties("replication_num"
= "1", "disable_auto_compaction" = "true",
"deprecated_variant_enable_flatten_nested" = "true") """
// // insert scalar data first then insert structure conflict in one
row
// sql """
// insert into ${table_name_1} values (1, '{"nested": {"a": 2.5,
"b": "123.1"}}');
diff --git
a/regression-test/suites/variant_p0/nested/nested_in_top_array.groovy
b/regression-test/suites/variant_p0/nested/nested_in_top_array.groovy
index f8edc713c2a..9c75f20dcb5 100644
--- a/regression-test/suites/variant_p0/nested/nested_in_top_array.groovy
+++ b/regression-test/suites/variant_p0/nested/nested_in_top_array.groovy
@@ -39,7 +39,7 @@ suite("nested_in_top_array", "p0"){
)
DUPLICATE KEY(`k`)
DISTRIBUTED BY HASH(k) BUCKETS 1 -- 1 bucket make really
compaction in conflict case
- properties("replication_num" = "1",
"disable_auto_compaction" = "false", "variant_enable_flatten_nested" = "true");
+ properties("replication_num" = "1",
"disable_auto_compaction" = "false", "deprecated_variant_enable_flatten_nested"
= "true");
"""
sql """ insert into ${table_name} values (1, '[{"a": 1, "c": 1.1},
{"b": "1"}]'); """
diff --git a/regression-test/suites/variant_p0/nested2.groovy
b/regression-test/suites/variant_p0/nested2.groovy
index 05b6be20276..e1b9d492887 100644
--- a/regression-test/suites/variant_p0/nested2.groovy
+++ b/regression-test/suites/variant_p0/nested2.groovy
@@ -37,7 +37,7 @@ suite("variant_nested_type_conflict", "p0"){
// )
// DUPLICATE KEY(`k`)
// DISTRIBUTED BY HASH(k) BUCKETS 1 -- 1 bucket make really
compaction in conflict case
- // properties("replication_num" = "1",
"disable_auto_compaction" = "false", "variant_enable_flatten_nested" = "true");
+ // properties("replication_num" = "1",
"disable_auto_compaction" = "false", "deprecated_variant_enable_flatten_nested"
= "true");
// """
// def sql_select_batch = {
// qt_sql_0 """select * from ${table_name} order by k"""
diff --git a/regression-test/suites/variant_p0/predefine/delete_update.groovy
b/regression-test/suites/variant_p0/predefine/delete_update.groovy
index 8f62d8cdf9e..e74482875af 100644
--- a/regression-test/suites/variant_p0/predefine/delete_update.groovy
+++ b/regression-test/suites/variant_p0/predefine/delete_update.groovy
@@ -30,7 +30,7 @@ suite("regression_test_variant_predefine_delete_and_update",
"variant_type"){
)
UNIQUE KEY(`k`)
DISTRIBUTED BY HASH(k) BUCKETS 3
- properties("replication_num" = "1", "enable_unique_key_merge_on_write"
= "false", "variant_enable_flatten_nested" = "false", "disable_auto_compaction"
= "true");
+ properties("replication_num" = "1", "enable_unique_key_merge_on_write"
= "false", "deprecated_variant_enable_flatten_nested" = "false",
"disable_auto_compaction" = "true");
"""
// test mor table
diff --git a/regression-test/suites/variant_p0/predefine/load.groovy
b/regression-test/suites/variant_p0/predefine/load.groovy
index 099e07cdbef..a2fb8b9ea4b 100644
--- a/regression-test/suites/variant_p0/predefine/load.groovy
+++ b/regression-test/suites/variant_p0/predefine/load.groovy
@@ -63,7 +63,7 @@ suite("regression_test_variant_predefine_schema", "p0"){
`v1` variant<properties("variant_enable_doc_mode" = "false")> NULL,
INDEX idx_var_sub(`v1`) USING INVERTED PROPERTIES("parser" =
"english") )
ENGINE=OLAP DUPLICATE KEY(`id`) DISTRIBUTED BY HASH(`id`) BUCKETS 2
- PROPERTIES ( "replication_allocation" = "tag.location.default: 1",
"variant_enable_flatten_nested" = "true");
+ PROPERTIES ( "replication_allocation" = "tag.location.default: 1",
"deprecated_variant_enable_flatten_nested" = "true");
"""
sql """insert into test_predefine1 values(1, '{"predefine_col1" :
1024}')"""
sql """insert into test_predefine1 values(2, '{"predefine_col2" :
1.11111}')"""
@@ -222,7 +222,7 @@ suite("regression_test_variant_predefine_schema", "p0"){
`id` bigint NOT NULL,
`v` variant<'nested.a':string,
properties("variant_enable_doc_mode" = "false")> NULL)
ENGINE=OLAP DUPLICATE KEY(`id`) DISTRIBUTED BY HASH(`id`) BUCKETS 1
- PROPERTIES ( "replication_allocation" = "tag.location.default: 1",
"variant_enable_flatten_nested" = "false", "disable_auto_compaction" =
"true");"""
+ PROPERTIES ( "replication_allocation" = "tag.location.default: 1",
"deprecated_variant_enable_flatten_nested" = "false", "disable_auto_compaction"
= "true");"""
// test alter nested no effect at present
sql "truncate table test_predefine3"
diff --git
a/regression-test/suites/variant_p0/schema_change/test_double_write_when_schema_change.groovy
b/regression-test/suites/variant_p0/schema_change/test_double_write_when_schema_change.groovy
index 725bf1b5f00..3c1932390de 100644
---
a/regression-test/suites/variant_p0/schema_change/test_double_write_when_schema_change.groovy
+++
b/regression-test/suites/variant_p0/schema_change/test_double_write_when_schema_change.groovy
@@ -67,7 +67,7 @@ suite("double_write_schema_change_with_variant",
"nonConcurrent") {
)
DUPLICATE KEY(`k`)
DISTRIBUTED BY HASH(k) BUCKETS 2
- properties("replication_num" = "1", "disable_auto_compaction" =
"false", "variant_enable_flatten_nested" = "true");
+ properties("replication_num" = "1", "disable_auto_compaction" =
"false", "deprecated_variant_enable_flatten_nested" = "true");
"""
set_be_config.call("memory_limitation_per_thread_for_schema_change_bytes",
"6294967296")
diff --git a/regression-test/suites/variant_p0/test_types_in_variant.groovy
b/regression-test/suites/variant_p0/test_types_in_variant.groovy
index b258035db12..373d90dba61 100644
--- a/regression-test/suites/variant_p0/test_types_in_variant.groovy
+++ b/regression-test/suites/variant_p0/test_types_in_variant.groovy
@@ -81,7 +81,7 @@ suite("regression_test_variant_types", "var_view") {
) engine = olap
duplicate key (id)
distributed by hash(id) buckets 1
- properties ("replication_num" = "1", "variant_enable_flatten_nested" =
"true")
+ properties ("replication_num" = "1",
"deprecated_variant_enable_flatten_nested" = "true")
"""
sql """ set enable_variant_flatten_nested = false """
diff --git a/regression-test/suites/variant_p1/doc_snapshot/load.groovy
b/regression-test/suites/variant_p1/doc_snapshot/load.groovy
index cca5fae70bc..8db8e0b9731 100644
--- a/regression-test/suites/variant_p1/doc_snapshot/load.groovy
+++ b/regression-test/suites/variant_p1/doc_snapshot/load.groovy
@@ -76,7 +76,7 @@ suite("predefine_type_multi_index_doc_value", "p1"){
)
DUPLICATE KEY(`k`)
DISTRIBUTED BY HASH(k) BUCKETS 4
- properties("replication_num" = "1", "disable_auto_compaction" =
"true", "variant_enable_flatten_nested" = "false");
+ properties("replication_num" = "1", "disable_auto_compaction" =
"true", "deprecated_variant_enable_flatten_nested" = "false");
"""
// 2015
diff --git a/regression-test/suites/variant_p1/predefine/load.groovy
b/regression-test/suites/variant_p1/predefine/load.groovy
index ffc710454b4..2809f5ed280 100644
--- a/regression-test/suites/variant_p1/predefine/load.groovy
+++ b/regression-test/suites/variant_p1/predefine/load.groovy
@@ -77,7 +77,7 @@ suite("test_predefine_type_multi_index", "p1"){
)
DUPLICATE KEY(`k`)
DISTRIBUTED BY HASH(k) BUCKETS 4
- properties("replication_num" = "1", "disable_auto_compaction" =
"true", "variant_enable_flatten_nested" = "true");
+ properties("replication_num" = "1", "disable_auto_compaction" =
"true", "deprecated_variant_enable_flatten_nested" = "true");
"""
// 2015
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]