[enhance](variant) typed_paths_to sparse column (#54078)

diff --git a/be/src/olap/rowset/segment_v2/segment.cpp b/be/src/olap/rowset/segment_v2/segment.cpp
index d3cb443..85b9040 100644
--- a/be/src/olap/rowset/segment_v2/segment.cpp
+++ b/be/src/olap/rowset/segment_v2/segment.cpp
@@ -602,24 +602,44 @@
     // Find the specific node within the variant structure using the relative path.
     const auto* node = variant_reader->get_reader_by_path(relative_path);
 
+    if (relative_path.get_path() == SPARSE_COLUMN_PATH) {
+        return vectorized::DataTypeFactory::instance().create_data_type(column);
+    }
+
     // Case 1: Node not found for the given path within the variant reader.
     // If relative_path is empty, it means the original path pointed to the root
     // of the variant column itself. We should return the Variant type.
     if (node == nullptr || relative_path.empty()) {
-        return vectorized::DataTypeFactory::instance().create_data_type(column);
+        if (column.is_nested_subcolumn()) {
+            return vectorized::DataTypeFactory::instance().create_data_type(column);
+        }
+        return column.is_nullable()
+                       ? vectorized::make_nullable(std::make_shared<vectorized::DataTypeVariant>(
+                                 column.variant_max_subcolumns_count()))
+                       : std::make_shared<vectorized::DataTypeVariant>(
+                                 column.variant_max_subcolumns_count());
     }
 
     bool exist_in_sparse = variant_reader->exist_in_sparse_column(relative_path);
     bool is_physical_leaf = node->children.empty();
 
+    if (is_physical_leaf && column.is_nested_subcolumn()) {
+        return node->data.file_column_type;
+    }
+
     // Condition to return the specific underlying type of the node:
     // 1. We are reading flat leaves (ignoring hierarchy).
     // 2. OR It's a leaf in the physical column structure AND it doesn't *also* exist
     //    in the sparse column (meaning it's purely a materialized leaf).
-    if (read_flat_leaves || (is_physical_leaf && !exist_in_sparse)) {
+    if (read_flat_leaves || (is_physical_leaf && !exist_in_sparse &&
+                             !variant_reader->is_exceeded_sparse_column_limit())) {
         return node->data.file_column_type;
     }
-    return vectorized::DataTypeFactory::instance().create_data_type(column);
+    return column.is_nullable()
+                   ? vectorized::make_nullable(std::make_shared<vectorized::DataTypeVariant>(
+                             column.variant_max_subcolumns_count()))
+                   : std::make_shared<vectorized::DataTypeVariant>(
+                             column.variant_max_subcolumns_count());
 }
 
 Status Segment::_create_column_readers_once(OlapReaderStatistics* stats) {
diff --git a/be/src/olap/rowset/segment_v2/segment_writer.cpp b/be/src/olap/rowset/segment_v2/segment_writer.cpp
index 0a9ff4d..6bb3dd2 100644
--- a/be/src/olap/rowset/segment_v2/segment_writer.cpp
+++ b/be/src/olap/rowset/segment_v2/segment_writer.cpp
@@ -772,9 +772,17 @@
         }
         return Status::OK();
     }
+    if (block->columns() < _column_writers.size()) {
+        return Status::InternalError(
+                "block->columns() < _column_writers.size(), block->columns()=" +
+                std::to_string(block->columns()) +
+                ", _column_writers.size()=" + std::to_string(_column_writers.size()) +
+                ", _tablet_schema->dump_structure()=" + _tablet_schema->dump_structure());
+    }
     CHECK(block->columns() >= _column_writers.size())
             << ", block->columns()=" << block->columns()
-            << ", _column_writers.size()=" << _column_writers.size();
+            << ", _column_writers.size()=" << _column_writers.size()
+            << ", _tablet_schema->dump_structure()=" << _tablet_schema->dump_structure();
     // Row column should be filled here when it's a directly write from memtable
     // or it's schema change write(since column data type maybe changed, so we should reubild)
     if (_opts.write_type == DataWriteType::TYPE_DIRECT ||
diff --git a/be/src/olap/rowset/segment_v2/variant/variant_column_reader.cpp b/be/src/olap/rowset/segment_v2/variant/variant_column_reader.cpp
index cdd8252..0a3a1d6 100644
--- a/be/src/olap/rowset/segment_v2/variant/variant_column_reader.cpp
+++ b/be/src/olap/rowset/segment_v2/variant/variant_column_reader.cpp
@@ -72,6 +72,12 @@
     return existed_in_sparse_column || prefix_existed_in_sparse_column;
 }
 
+bool VariantColumnReader::is_exceeded_sparse_column_limit() const {
+    return !_statistics->sparse_column_non_null_size.empty() &&
+           _statistics->sparse_column_non_null_size.size() >=
+                   config::variant_max_sparse_column_statistics_size;
+}
+
 int64_t VariantColumnReader::get_metadata_size() const {
     int64_t size = ColumnReader::get_metadata_size();
     if (_statistics) {
@@ -205,10 +211,16 @@
             RETURN_IF_ERROR(_create_sparse_merge_reader(iterator, opts, target_col, inner_iter));
             return Status::OK();
         }
+
+        if (target_col.is_nested_subcolumn()) {
+            // using the sibling of the nested column to fill the target nested column
+            RETURN_IF_ERROR(_new_default_iter_with_same_nested(iterator, target_col));
+            return Status::OK();
+        }
+
         // If the path is typed, it means the path is not a sparse column, so we can't read the sparse column
         // even if the sparse column size is reached limit
-        if (existed_in_sparse_column ||
-            (exceeded_sparse_column_limit && !relative_path.get_is_typed())) {
+        if (existed_in_sparse_column || exceeded_sparse_column_limit) {
             // Sparse column exists or reached sparse size limit, read sparse column
             ColumnIterator* inner_iter;
             RETURN_IF_ERROR(_sparse_column_reader->new_iterator(&inner_iter, nullptr));
@@ -219,11 +231,7 @@
                     const_cast<StorageReadOptions*>(opts), target_col);
             return Status::OK();
         }
-        if (target_col.is_nested_subcolumn()) {
-            // using the sibling of the nested column to fill the target nested column
-            RETURN_IF_ERROR(_new_default_iter_with_same_nested(iterator, target_col));
-            return Status::OK();
-        }
+
         VLOG_DEBUG << "new_default_iter: " << target_col.path_info_ptr()->get_path();
         std::unique_ptr<ColumnIterator> it;
         RETURN_IF_ERROR(Segment::new_default_iterator(target_col, &it));
@@ -264,7 +272,7 @@
     // Otherwise the prefix is not exist and the sparse column size is reached limit
     // which means the path maybe exist in sparse_column
     bool exceeded_sparse_column_limit = !_statistics->sparse_column_non_null_size.empty() &&
-                                        _statistics->sparse_column_non_null_size.size() ==
+                                        _statistics->sparse_column_non_null_size.size() >=
                                                 config::variant_max_sparse_column_statistics_size;
 
     // For compaction operations, read flat leaves, otherwise read hierarchical data
@@ -284,7 +292,7 @@
              _statistics->sparse_column_non_null_size.end()) &&
             _statistics->sparse_column_non_null_size.lower_bound(prefix)->first.starts_with(prefix);
     // if prefix exists in sparse column, read sparse column with hierarchical reader
-    if (prefix_existed_in_sparse_column) {
+    if (prefix_existed_in_sparse_column || exceeded_sparse_column_limit) {
         // Example {"b" : {"c":456,"e":7.111}}
         // b.c is sparse column, b.e is subcolumn, so b is both the prefix of sparse column and subcolumn
         return _create_hierarchical_reader(iterator, relative_path, node, root);
@@ -317,9 +325,6 @@
             RETURN_IF_ERROR(_create_hierarchical_reader(iterator, relative_path, node, root));
         }
     } else {
-        if (exceeded_sparse_column_limit) {
-            return _create_hierarchical_reader(iterator, relative_path, nullptr, root);
-        }
         // Sparse column not exists and not reached stats limit, then the target path is not exist, get a default iterator
         std::unique_ptr<ColumnIterator> iter;
         RETURN_IF_ERROR(Segment::new_default_iterator(*target_col, &iter));
@@ -444,11 +449,8 @@
         std::unordered_map<vectorized::PathInData, vectorized::DataTypes,
                            vectorized::PathInData::Hash>* subcolumns_types) const {
     for (const auto& subcolumn_reader : *_subcolumn_readers) {
-        // no need typed path and root path
-        if (!subcolumn_reader->path.get_is_typed() && !subcolumn_reader->path.empty()) {
-            auto& path_types = (*subcolumns_types)[subcolumn_reader->path];
-            path_types.push_back(subcolumn_reader->data.file_column_type);
-        }
+        auto& path_types = (*subcolumns_types)[subcolumn_reader->path];
+        path_types.push_back(subcolumn_reader->data.file_column_type);
     }
 }
 
diff --git a/be/src/olap/rowset/segment_v2/variant/variant_column_reader.h b/be/src/olap/rowset/segment_v2/variant/variant_column_reader.h
index cb13b63..3577ce1 100644
--- a/be/src/olap/rowset/segment_v2/variant/variant_column_reader.h
+++ b/be/src/olap/rowset/segment_v2/variant/variant_column_reader.h
@@ -70,6 +70,8 @@
 
     bool exist_in_sparse_column(const vectorized::PathInData& path) const;
 
+    bool is_exceeded_sparse_column_limit() const;
+
     const SubcolumnColumnReaders* get_subcolumn_readers() const { return _subcolumn_readers.get(); }
 
     void get_subcolumns_types(
diff --git a/be/src/olap/rowset/segment_v2/variant/variant_column_writer_impl.cpp b/be/src/olap/rowset/segment_v2/variant/variant_column_writer_impl.cpp
index 94c4a9c..12c345f 100644
--- a/be/src/olap/rowset/segment_v2/variant/variant_column_writer_impl.cpp
+++ b/be/src/olap/rowset/segment_v2/variant/variant_column_writer_impl.cpp
@@ -76,11 +76,11 @@
                              IndexFileWriter* inverted_index_file_writer,
                              std::unique_ptr<ColumnWriter>* writer,
                              TabletIndexes& subcolumn_indexes, ColumnWriterOptions* opt,
-                             int64_t none_null_value_size) {
+                             int64_t none_null_value_size, bool need_record_none_null_value_size) {
     _init_column_meta(opt->meta, cid, column, opt->compression_type);
     // no need to record none null value size for typed column or nested column, since it's compaction stage
     // will directly pick it as sub column
-    if (!column.path_info_ptr()->get_is_typed() && !column.path_info_ptr()->has_nested_part()) {
+    if (need_record_none_null_value_size) {
         // record none null value size for statistics
         opt->meta->set_none_null_size(none_null_value_size);
     }
@@ -265,32 +265,22 @@
         // create subcolumn writer
         int current_column_id = column_id++;
         TabletColumn tablet_column;
-        int64_t none_null_value_size = -1;
-        vectorized::ColumnPtr current_column;
-        vectorized::DataTypePtr current_type;
+        int64_t none_null_value_size = entry->data.get_non_null_value_size();
+        vectorized::ColumnPtr current_column = entry->data.get_finalized_column_ptr()->get_ptr();
+        vectorized::DataTypePtr current_type = entry->data.get_least_common_type();
         if (auto current_path = entry->path.get_path();
             _subcolumns_info.find(current_path) != _subcolumns_info.end()) {
             tablet_column = std::move(_subcolumns_info[current_path].column);
-            vectorized::DataTypePtr storage_type =
-                    vectorized::DataTypeFactory::instance().create_data_type(tablet_column);
-            vectorized::DataTypePtr finalized_type = entry->data.get_least_common_type();
-            current_column = entry->data.get_finalized_column_ptr()->get_ptr();
-            if (!storage_type->equals(*finalized_type)) {
-                RETURN_IF_ERROR(vectorized::schema_util::cast_column(
-                        {current_column, finalized_type, ""}, storage_type, &current_column));
-            }
             _subcolumns_indexes[current_column_id] =
                     std::move(_subcolumns_info[current_path].indexes);
-            const auto& null_data = assert_cast<const vectorized::ColumnNullable&>(*current_column)
-                                            .get_null_map_data();
-            none_null_value_size =
-                    simd::count_zero_num((int8_t*)null_data.data(), null_data.size());
-            current_type = storage_type;
+            if (auto storage_type =
+                        vectorized::DataTypeFactory::instance().create_data_type(tablet_column);
+                !storage_type->equals(*current_type)) {
+                return Status::InvalidArgument("Storage type {} is not equal to current type {}",
+                                               storage_type->get_name(), current_type->get_name());
+            }
         } else {
             tablet_column = generate_column_info(entry);
-            none_null_value_size = entry->data.get_non_null_value_size();
-            current_column = entry->data.get_finalized_column_ptr()->get_ptr();
-            current_type = entry->data.get_least_common_type();
         }
         ColumnWriterOptions opts;
         opts.meta = _opts.footer->add_columns();
@@ -300,10 +290,16 @@
         opts.file_writer = _opts.file_writer;
         std::unique_ptr<ColumnWriter> writer;
         vectorized::schema_util::inherit_column_attributes(*_tablet_column, tablet_column);
+
+        bool need_record_none_null_value_size =
+                (!tablet_column.path_info_ptr()->get_is_typed() ||
+                 _tablet_column->variant_enable_typed_paths_to_sparse()) &&
+                !tablet_column.path_info_ptr()->has_nested_part();
+
         RETURN_IF_ERROR(_create_column_writer(
                 current_column_id, tablet_column, _opts.rowset_ctx->tablet_schema,
                 _opts.index_file_writer, &writer, _subcolumns_indexes[current_column_id], &opts,
-                none_null_value_size));
+                none_null_value_size, need_record_none_null_value_size));
         _subcolumn_writers.push_back(std::move(writer));
         _subcolumn_opts.push_back(opts);
         _subcolumn_opts[current_column_id - 1].meta->set_num_rows(num_rows);
@@ -394,7 +390,10 @@
         }
     }
 
-    RETURN_IF_ERROR(ptr->pick_subcolumns_to_sparse_column(_subcolumns_info));
+    RETURN_IF_ERROR(ptr->convert_typed_path_to_storage_type(_subcolumns_info));
+
+    RETURN_IF_ERROR(ptr->pick_subcolumns_to_sparse_column(
+            _subcolumns_info, _tablet_column->variant_enable_typed_paths_to_sparse()));
 
 #ifndef NDEBUG
     ptr->check_consistency();
@@ -542,7 +541,7 @@
     //
     _tablet_column = column;
     _opts = opts;
-    _column = vectorized::ColumnVariant::create(true);
+    _column = vectorized::ColumnVariant::create(0);
 }
 
 Status VariantSubcolumnWriter::init() {
@@ -575,34 +574,41 @@
     const auto& parent_column =
             _opts.rowset_ctx->tablet_schema->column_by_uid(_tablet_column->parent_unique_id());
 
+    TabletColumn flush_column;
+
+    auto path = _tablet_column->path_info_ptr()->copy_pop_front().get_path();
+
+    TabletSchema::SubColumnInfo sub_column_info;
     if (ptr->get_subcolumns().get_root()->data.get_least_common_base_type_id() ==
         PrimitiveType::INVALID_TYPE) {
         auto flush_type = vectorized::DataTypeFactory::instance().create_data_type(
                 PrimitiveType::TYPE_TINYINT, true /* is_nullable */);
         ptr->ensure_root_node_type(flush_type);
     }
-
-    TabletColumn flush_column = vectorized::schema_util::get_column_by_type(
+    flush_column = vectorized::schema_util::get_column_by_type(
             ptr->get_root_type(), _tablet_column->name(),
             vectorized::schema_util::ExtraInfo {
                     .unique_id = -1,
                     .parent_unique_id = _tablet_column->parent_unique_id(),
                     .path_info = *_tablet_column->path_info_ptr()});
+
     int64_t none_null_value_size = ptr->get_subcolumns().get_root()->data.get_non_null_value_size();
+    bool need_record_none_null_value_size = (!flush_column.path_info_ptr()->get_is_typed()) &&
+                                            !flush_column.path_info_ptr()->has_nested_part();
     ColumnWriterOptions opts = _opts;
 
     // refresh opts and get writer with flush column
     vectorized::schema_util::inherit_column_attributes(parent_column, flush_column);
     RETURN_IF_ERROR(_create_column_writer(0, flush_column, _opts.rowset_ctx->tablet_schema,
                                           _opts.index_file_writer, &_writer, _indexes, &opts,
-                                          none_null_value_size));
+                                          none_null_value_size, need_record_none_null_value_size));
+
     _opts = opts;
     auto olap_data_convertor = std::make_unique<vectorized::OlapBlockDataConvertor>();
     int column_id = 0;
     RETURN_IF_ERROR(convert_and_write_column(olap_data_convertor.get(), flush_column,
                                              ptr->get_root_type(), _writer.get(),
                                              ptr->get_root()->get_ptr(), ptr->rows(), column_id));
-
     _is_finalized = true;
     return Status::OK();
 }
diff --git a/be/src/olap/tablet_meta.cpp b/be/src/olap/tablet_meta.cpp
index 5bae0de..a1c9436 100644
--- a/be/src/olap/tablet_meta.cpp
+++ b/be/src/olap/tablet_meta.cpp
@@ -471,6 +471,10 @@
             column->set_pattern_type(PatternTypePB::MATCH_NAME_GLOB);
         }
     }
+    if (tcolumn.__isset.variant_enable_typed_paths_to_sparse) {
+        column->set_variant_enable_typed_paths_to_sparse(
+                tcolumn.variant_enable_typed_paths_to_sparse);
+    }
 }
 
 void TabletMeta::remove_rowset_delete_bitmap(const RowsetId& rowset_id, const Version& version) {
diff --git a/be/src/olap/tablet_schema.cpp b/be/src/olap/tablet_schema.cpp
index 23966ca4..277fa49 100644
--- a/be/src/olap/tablet_schema.cpp
+++ b/be/src/olap/tablet_schema.cpp
@@ -137,6 +137,79 @@
     }
 }
 
+PrimitiveType TabletColumn::get_primitive_type_by_field_type(FieldType type) {
+    switch (type) {
+    case FieldType::OLAP_FIELD_TYPE_UNKNOWN:
+        return PrimitiveType::INVALID_TYPE;
+    case FieldType::OLAP_FIELD_TYPE_NONE:
+        return PrimitiveType::TYPE_NULL;
+    case FieldType::OLAP_FIELD_TYPE_BOOL:
+        return PrimitiveType::TYPE_BOOLEAN;
+    case FieldType::OLAP_FIELD_TYPE_TINYINT:
+        return PrimitiveType::TYPE_TINYINT;
+    case FieldType::OLAP_FIELD_TYPE_SMALLINT:
+        return PrimitiveType::TYPE_SMALLINT;
+    case FieldType::OLAP_FIELD_TYPE_INT:
+        return PrimitiveType::TYPE_INT;
+    case FieldType::OLAP_FIELD_TYPE_BIGINT:
+        return PrimitiveType::TYPE_BIGINT;
+    case FieldType::OLAP_FIELD_TYPE_LARGEINT:
+        return PrimitiveType::TYPE_LARGEINT;
+    case FieldType::OLAP_FIELD_TYPE_FLOAT:
+        return PrimitiveType::TYPE_FLOAT;
+    case FieldType::OLAP_FIELD_TYPE_DOUBLE:
+        return PrimitiveType::TYPE_DOUBLE;
+    case FieldType::OLAP_FIELD_TYPE_VARCHAR:
+        return PrimitiveType::TYPE_VARCHAR;
+    case FieldType::OLAP_FIELD_TYPE_STRING:
+        return PrimitiveType::TYPE_STRING;
+    case FieldType::OLAP_FIELD_TYPE_DATE:
+        return PrimitiveType::TYPE_DATE;
+    case FieldType::OLAP_FIELD_TYPE_DATETIME:
+        return PrimitiveType::TYPE_DATETIME;
+    case FieldType::OLAP_FIELD_TYPE_CHAR:
+        return PrimitiveType::TYPE_CHAR;
+    case FieldType::OLAP_FIELD_TYPE_STRUCT:
+        return PrimitiveType::TYPE_STRUCT;
+    case FieldType::OLAP_FIELD_TYPE_ARRAY:
+        return PrimitiveType::TYPE_ARRAY;
+    case FieldType::OLAP_FIELD_TYPE_MAP:
+        return PrimitiveType::TYPE_MAP;
+    case FieldType::OLAP_FIELD_TYPE_HLL:
+        return PrimitiveType::TYPE_HLL;
+    case FieldType::OLAP_FIELD_TYPE_BITMAP:
+        return PrimitiveType::TYPE_BITMAP;
+    case FieldType::OLAP_FIELD_TYPE_QUANTILE_STATE:
+        return PrimitiveType::TYPE_QUANTILE_STATE;
+    case FieldType::OLAP_FIELD_TYPE_DATEV2:
+        return PrimitiveType::TYPE_DATEV2;
+    case FieldType::OLAP_FIELD_TYPE_DATETIMEV2:
+        return PrimitiveType::TYPE_DATETIMEV2;
+    case FieldType::OLAP_FIELD_TYPE_TIMEV2:
+        return PrimitiveType::TYPE_TIMEV2;
+    case FieldType::OLAP_FIELD_TYPE_DECIMAL32:
+        return PrimitiveType::TYPE_DECIMAL32;
+    case FieldType::OLAP_FIELD_TYPE_DECIMAL64:
+        return PrimitiveType::TYPE_DECIMAL64;
+    case FieldType::OLAP_FIELD_TYPE_DECIMAL128I:
+        return PrimitiveType::TYPE_DECIMAL128I;
+    case FieldType::OLAP_FIELD_TYPE_DECIMAL256:
+        return PrimitiveType::TYPE_DECIMAL256;
+    case FieldType::OLAP_FIELD_TYPE_IPV4:
+        return PrimitiveType::TYPE_IPV4;
+    case FieldType::OLAP_FIELD_TYPE_IPV6:
+        return PrimitiveType::TYPE_IPV6;
+    case FieldType::OLAP_FIELD_TYPE_JSONB:
+        return PrimitiveType::TYPE_JSONB;
+    case FieldType::OLAP_FIELD_TYPE_VARIANT:
+        return PrimitiveType::TYPE_VARIANT;
+    case FieldType::OLAP_FIELD_TYPE_AGG_STATE:
+        return PrimitiveType::TYPE_AGG_STATE;
+    default:
+        return PrimitiveType::INVALID_TYPE;
+    }
+}
+
 FieldType TabletColumn::get_field_type_by_string(const std::string& type_str) {
     std::string upper_type_str = type_str;
     std::transform(type_str.begin(), type_str.end(), upper_type_str.begin(),
@@ -617,6 +690,9 @@
     if (column.has_pattern_type()) {
         _pattern_type = column.pattern_type();
     }
+    if (column.has_variant_enable_typed_paths_to_sparse()) {
+        _variant_enable_typed_paths_to_sparse = column.variant_enable_typed_paths_to_sparse();
+    }
 }
 
 TabletColumn TabletColumn::create_materialized_variant_column(
@@ -701,6 +777,7 @@
     }
     column->set_variant_max_subcolumns_count(_variant_max_subcolumns_count);
     column->set_pattern_type(_pattern_type);
+    column->set_variant_enable_typed_paths_to_sparse(_variant_enable_typed_paths_to_sparse);
 }
 
 void TabletColumn::add_sub_column(TabletColumn& sub_column) {
diff --git a/be/src/olap/tablet_schema.h b/be/src/olap/tablet_schema.h
index a455617..feb5b70 100644
--- a/be/src/olap/tablet_schema.h
+++ b/be/src/olap/tablet_schema.h
@@ -166,6 +166,7 @@
     static std::string get_string_by_aggregation_type(FieldAggregationMethod aggregation_type);
     static FieldType get_field_type_by_string(const std::string& str);
     static FieldType get_field_type_by_type(PrimitiveType type);
+    static PrimitiveType get_primitive_type_by_field_type(FieldType type);
     static FieldAggregationMethod get_aggregation_type_by_string(const std::string& str);
     static uint32_t get_field_length_by_type(TPrimitiveType::type type, uint32_t string_length);
     bool is_row_store_column() const;
@@ -228,6 +229,14 @@
     }
     int32_t variant_max_subcolumns_count() const { return _variant_max_subcolumns_count; }
 
+    void set_variant_enable_typed_paths_to_sparse(bool variant_enable_typed_paths_to_sparse) {
+        _variant_enable_typed_paths_to_sparse = variant_enable_typed_paths_to_sparse;
+    }
+
+    bool variant_enable_typed_paths_to_sparse() const {
+        return _variant_enable_typed_paths_to_sparse;
+    }
+
 private:
     int32_t _unique_id = -1;
     std::string _col_name;
@@ -279,6 +288,7 @@
     size_t _num_sparse_columns = 0;
     int32_t _variant_max_subcolumns_count = 0;
     PatternTypePB _pattern_type = PatternTypePB::MATCH_NAME_GLOB;
+    bool _variant_enable_typed_paths_to_sparse = false;
 };
 
 bool operator==(const TabletColumn& a, const TabletColumn& b);
diff --git a/be/src/util/types.h b/be/src/util/types.h
index 7688dd6..4a26f28 100644
--- a/be/src/util/types.h
+++ b/be/src/util/types.h
@@ -43,5 +43,18 @@
     memcpy(&value, address, sizeof(int128_t));
     return value;
 }
+struct PackedUInt128 {
+    // PackedInt128() : value(0) {}
+    PackedUInt128() = default;
+
+    PackedUInt128(const unsigned __int128& value_) { value = value_; }
+    PackedUInt128& operator=(const unsigned __int128& value_) {
+        value = value_;
+        return *this;
+    }
+    PackedUInt128& operator=(const PackedUInt128& rhs) = default;
+
+    uint128_t value;
+} __attribute__((packed));
 
 } // namespace doris
diff --git a/be/src/vec/columns/column_variant.cpp b/be/src/vec/columns/column_variant.cpp
index 8aa5421..6ac1462 100644
--- a/be/src/vec/columns/column_variant.cpp
+++ b/be/src/vec/columns/column_variant.cpp
@@ -40,6 +40,7 @@
 #include <vector>
 
 #include "common/compiler_util.h" // IWYU pragma: keep
+#include "common/config.h"
 #include "common/exception.h"
 #include "common/logging.h"
 #include "common/status.h"
@@ -878,73 +879,159 @@
                            "Index ({}) for serialize to sparse column is out of range", row);
 }
 
-const char* parse_binary_from_sparse_column(PrimitiveType type, const char* data, Field& res,
+const char* parse_binary_from_sparse_column(FieldType type, const char* data, Field& res,
                                             FieldInfo& info_res) {
-    info_res.scalar_type_id = type;
+    info_res.scalar_type_id = TabletColumn::get_primitive_type_by_field_type(type);
     const char* end = data;
     switch (type) {
-    case PrimitiveType::TYPE_STRING: {
-        const size_t size = *reinterpret_cast<const size_t*>(data);
+    case FieldType::OLAP_FIELD_TYPE_STRING: {
+        size_t size = *reinterpret_cast<const size_t*>(data);
         data += sizeof(size_t);
         res = Field::create_field<TYPE_STRING>(String(data, size));
         end = data + size;
         break;
     }
-    case PrimitiveType::TYPE_TINYINT: {
-        res = Field::create_field<TYPE_TINYINT>(*reinterpret_cast<const Int8*>(data));
+    case FieldType::OLAP_FIELD_TYPE_TINYINT: {
+        res = Field::create_field<TYPE_TINYINT>(Int8(*reinterpret_cast<const Int8*>(data)));
         end = data + sizeof(Int8);
         break;
     }
-    case PrimitiveType::TYPE_SMALLINT: {
-        res = Field::create_field<TYPE_SMALLINT>(*reinterpret_cast<const Int16*>(data));
+    case FieldType::OLAP_FIELD_TYPE_SMALLINT: {
+        res = Field::create_field<TYPE_SMALLINT>(Int16(*reinterpret_cast<const Int16*>(data)));
         end = data + sizeof(Int16);
         break;
     }
-    case PrimitiveType::TYPE_INT: {
-        res = Field::create_field<TYPE_INT>(*reinterpret_cast<const Int32*>(data));
+    case FieldType::OLAP_FIELD_TYPE_INT: {
+        res = Field::create_field<TYPE_INT>(Int32(*reinterpret_cast<const Int32*>(data)));
         end = data + sizeof(Int32);
         break;
     }
-    case PrimitiveType::TYPE_BIGINT: {
-        res = Field::create_field<TYPE_BIGINT>(*reinterpret_cast<const Int64*>(data));
+    case FieldType::OLAP_FIELD_TYPE_BIGINT: {
+        res = Field::create_field<TYPE_BIGINT>(Int64(*reinterpret_cast<const Int64*>(data)));
         end = data + sizeof(Int64);
         break;
     }
-    case PrimitiveType::TYPE_FLOAT: {
-        res = Field::create_field<TYPE_FLOAT>(*reinterpret_cast<const Float32*>(data));
+    case FieldType::OLAP_FIELD_TYPE_LARGEINT: {
+        res = Field::create_field<TYPE_LARGEINT>(
+                Int128(reinterpret_cast<const PackedInt128*>(data)->value));
+        end = data + sizeof(PackedInt128);
+        break;
+    }
+    case FieldType::OLAP_FIELD_TYPE_FLOAT: {
+        res = Field::create_field<TYPE_FLOAT>(Float32(*reinterpret_cast<const Float32*>(data)));
         end = data + sizeof(Float32);
         break;
     }
-    case PrimitiveType::TYPE_DOUBLE: {
-        res = Field::create_field<TYPE_DOUBLE>(*reinterpret_cast<const Float64*>(data));
+    case FieldType::OLAP_FIELD_TYPE_DOUBLE: {
+        res = Field::create_field<TYPE_DOUBLE>(Float64(*reinterpret_cast<const Float64*>(data)));
         end = data + sizeof(Float64);
         break;
     }
-    case PrimitiveType::TYPE_JSONB: {
+    case FieldType::OLAP_FIELD_TYPE_JSONB: {
         size_t size = *reinterpret_cast<const size_t*>(data);
         data += sizeof(size_t);
         res = Field::create_field<TYPE_JSONB>(JsonbField(data, size));
         end = data + size;
         break;
     }
-    case PrimitiveType::INVALID_TYPE: {
-        res = Field();
-        end = data;
-        break;
-    }
-    case PrimitiveType::TYPE_ARRAY: {
+    case FieldType::OLAP_FIELD_TYPE_ARRAY: {
         const size_t size = *reinterpret_cast<const size_t*>(data);
         data += sizeof(size_t);
         res = Field::create_field<TYPE_ARRAY>(Array(size));
         auto& array = res.get<Array>();
         info_res.num_dimensions++;
+        FieldType nested_filed_type = FieldType::OLAP_FIELD_TYPE_NONE;
         for (size_t i = 0; i < size; ++i) {
             Field nested_field;
             const auto nested_type =
-                    static_cast<const PrimitiveType>(*reinterpret_cast<const uint8_t*>(data++));
+                    static_cast<FieldType>(*reinterpret_cast<const uint8_t*>(data++));
             data = parse_binary_from_sparse_column(nested_type, data, nested_field, info_res);
             array[i] = std::move(nested_field);
+            if (nested_type != FieldType::OLAP_FIELD_TYPE_NONE) {
+                nested_filed_type = nested_type;
+            }
         }
+        info_res.scalar_type_id = TabletColumn::get_primitive_type_by_field_type(nested_filed_type);
+        end = data;
+        break;
+    }
+    case FieldType::OLAP_FIELD_TYPE_IPV4: {
+        res = Field::create_field<TYPE_IPV4>(IPv4(*reinterpret_cast<const IPv4*>(data)));
+        end = data + sizeof(IPv4);
+        break;
+    }
+    case FieldType::OLAP_FIELD_TYPE_IPV6: {
+        res = Field::create_field<TYPE_IPV6>(reinterpret_cast<const PackedUInt128*>(data)->value);
+        end = data + sizeof(PackedUInt128);
+        break;
+    }
+    case FieldType::OLAP_FIELD_TYPE_DATEV2: {
+        res = Field::create_field<TYPE_DATEV2>(*reinterpret_cast<const UInt32*>(data));
+        end = data + sizeof(UInt32);
+        break;
+    }
+    case FieldType::OLAP_FIELD_TYPE_DATETIMEV2: {
+        const uint8_t scale = *reinterpret_cast<const uint8_t*>(data);
+        data += sizeof(uint8_t);
+        res = Field::create_field<TYPE_DATETIMEV2>(*reinterpret_cast<const UInt64*>(data));
+        info_res.precision = -1;
+        info_res.scale = static_cast<int>(scale);
+        end = data + sizeof(UInt64);
+        break;
+    }
+    case FieldType::OLAP_FIELD_TYPE_DECIMAL32: {
+        const uint8_t precision = *reinterpret_cast<const uint8_t*>(data);
+        data += sizeof(uint8_t);
+        const uint8_t scale = *reinterpret_cast<const uint8_t*>(data);
+        data += sizeof(uint8_t);
+        res = Field::create_field<TYPE_DECIMAL32>(Decimal32(*reinterpret_cast<const Int32*>(data)));
+        info_res.precision = static_cast<int>(precision);
+        info_res.scale = static_cast<int>(scale);
+        end = data + sizeof(Int32);
+        break;
+    }
+    case FieldType::OLAP_FIELD_TYPE_DECIMAL64: {
+        const uint8_t precision = *reinterpret_cast<const uint8_t*>(data);
+        data += sizeof(uint8_t);
+        const uint8_t scale = *reinterpret_cast<const uint8_t*>(data);
+        data += sizeof(uint8_t);
+        res = Field::create_field<TYPE_DECIMAL64>(Decimal64(*reinterpret_cast<const Int64*>(data)));
+        info_res.precision = static_cast<int>(precision);
+        info_res.scale = static_cast<int>(scale);
+        end = data + sizeof(Int64);
+        break;
+    }
+    case FieldType::OLAP_FIELD_TYPE_DECIMAL128I: {
+        const uint8_t precision = *reinterpret_cast<const uint8_t*>(data);
+        data += sizeof(uint8_t);
+        const uint8_t scale = *reinterpret_cast<const uint8_t*>(data);
+        data += sizeof(uint8_t);
+        res = Field::create_field<TYPE_DECIMAL128I>(
+                Decimal128V3(reinterpret_cast<const PackedInt128*>(data)->value));
+        info_res.precision = static_cast<int>(precision);
+        info_res.scale = static_cast<int>(scale);
+        end = data + sizeof(PackedInt128);
+        break;
+    }
+    case FieldType::OLAP_FIELD_TYPE_DECIMAL256: {
+        const uint8_t precision = *reinterpret_cast<const uint8_t*>(data);
+        data += sizeof(uint8_t);
+        const uint8_t scale = *reinterpret_cast<const uint8_t*>(data);
+        data += sizeof(uint8_t);
+        res = Field::create_field<TYPE_DECIMAL256>(
+                Decimal256(*reinterpret_cast<const wide::Int256*>(data)));
+        info_res.precision = static_cast<int>(precision);
+        info_res.scale = static_cast<int>(scale);
+        end = data + sizeof(wide::Int256);
+        break;
+    }
+    case FieldType::OLAP_FIELD_TYPE_BOOL: {
+        res = Field::create_field<TYPE_BOOLEAN>(*reinterpret_cast<const uint8_t*>(data));
+        end = data + sizeof(uint8_t);
+        break;
+    }
+    case FieldType::OLAP_FIELD_TYPE_NONE: {
+        res = Field();
         end = data;
         break;
     }
@@ -960,16 +1047,18 @@
     const auto& data_ref = value->get_data_at(row);
     const char* data = data_ref.data;
     DCHECK(data_ref.size > 1);
-    const auto type = static_cast<const PrimitiveType>(*reinterpret_cast<const uint8_t*>(data++));
+    const FieldType type = static_cast<FieldType>(*reinterpret_cast<const uint8_t*>(data++));
     Field res;
     FieldInfo info_res = {
-            .scalar_type_id = type,
+            .scalar_type_id = TabletColumn::get_primitive_type_by_field_type(type),
             .have_nulls = false,
             .need_convert = false,
             .num_dimensions = 0,
     };
     const char* end = parse_binary_from_sparse_column(type, data, res, info_res);
-    DCHECK_EQ(end - data_ref.data, data_ref.size);
+    DCHECK_EQ(end - data_ref.data, data_ref.size)
+            << "FieldType: " << (int)type << " data_ref.size: " << data_ref.size << " end: " << end
+            << " data: " << data;
     return {std::move(res), std::move(info_res)};
 }
 
@@ -1006,10 +1095,10 @@
     for (size_t i = offset; i != end; ++i) {
         const StringRef path_data = path->get_data_at(i);
         auto data = ColumnVariant::deserialize_from_sparse_column(value, i);
-        // TODO support decimal type or etc...
-        object.try_emplace(PathInData(path_data), FieldWithDataType(std::move(data.first), -1, -1,
-                                                                    data.second.scalar_type_id,
-                                                                    data.second.num_dimensions));
+        object.try_emplace(
+                PathInData(path_data),
+                FieldWithDataType(std::move(data.first), data.second.precision, data.second.scale,
+                                  data.second.scalar_type_id, data.second.num_dimensions));
     }
 
     if (object.empty()) {
@@ -1078,14 +1167,14 @@
     if (subcolumns.get_root() == nullptr || path.empty()) {
         throw Exception(ErrorCode::INTERNAL_ERROR, "column object has no root or path is empty");
     }
-    if (path.get_is_typed()) {
+
+    if (path.get_is_typed() || path.has_nested_part()) {
         return add_sub_column(path, num_rows);
     }
-    if (path.has_nested_part()) {
-        return add_sub_column(path, num_rows);
-    }
-    if (!_max_subcolumns_count ||
-        (subcolumns.size() - typed_path_count - nested_path_count) < _max_subcolumns_count + 1) {
+
+    // 1 for root, nested_path_count for nested path
+    int subcolumns_size = subcolumns.size() - nested_path_count - 1;
+    if (!_max_subcolumns_count || subcolumns_size < _max_subcolumns_count) {
         return add_sub_column(path, num_rows);
     }
 
@@ -1111,7 +1200,6 @@
             DCHECK(subcolumn != nullptr);
             subcolumn->insert_range_from(entry->data, start, length);
         } else {
-            CHECK(!entry->path.get_is_typed());
             CHECK(!entry->path.has_nested_part());
             src_path_and_subcoumn_for_sparse_column.emplace(entry->path.get_path(), entry->data);
         }
@@ -1863,14 +1951,53 @@
     ENABLE_CHECK_CONSISTENCY(this);
 }
 
-Status ColumnVariant::pick_subcolumns_to_sparse_column(
+Status ColumnVariant::convert_typed_path_to_storage_type(
         const std::unordered_map<std::string, TabletSchema::SubColumnInfo>& typed_paths) {
+    for (auto&& entry : subcolumns) {
+        if (auto it = typed_paths.find(entry->path.get_path()); it != typed_paths.end()) {
+            CHECK(entry->data.is_finalized());
+            vectorized::DataTypePtr storage_type =
+                    vectorized::DataTypeFactory::instance().create_data_type(it->second.column);
+            vectorized::DataTypePtr finalized_type = entry->data.get_least_common_type();
+            auto current_column = entry->data.get_finalized_column_ptr()->get_ptr();
+            if (!storage_type->equals(*finalized_type)) {
+                RETURN_IF_ERROR(vectorized::schema_util::cast_column(
+                        {current_column, finalized_type, ""}, storage_type, &current_column));
+            }
+            VLOG_DEBUG << "convert " << entry->path.get_path() << " from type"
+                       << entry->data.get_least_common_type()->get_name() << " to "
+                       << storage_type->get_name();
+            entry->data.data[0] = current_column;
+            entry->data.data_types[0] = storage_type;
+            entry->data.data_serdes[0] = Subcolumn::generate_data_serdes(storage_type, false);
+            entry->data.least_common_type = Subcolumn::LeastCommonType {storage_type, false};
+        }
+    }
+    return Status::OK();
+}
+
+Status ColumnVariant::pick_subcolumns_to_sparse_column(
+        const std::unordered_map<std::string, TabletSchema::SubColumnInfo>& typed_paths,
+        bool variant_enable_typed_paths_to_sparse) {
     DCHECK(_max_subcolumns_count >= 0) << "max subcolumns count is: " << _max_subcolumns_count;
 
+    // no need to pick subcolumns to sparse column, all subcolumns will be picked
+    if (_max_subcolumns_count == 0) {
+        return Status::OK();
+    }
+
     // root column must be exsit in subcolumns
-    bool need_pick_subcolumn_to_sparse_column =
-            (_max_subcolumns_count && (subcolumns.size() - typed_paths.size() - nested_path_count) >
-                                              _max_subcolumns_count + 1);
+    // nested path count is the count of nested columns
+    int64_t current_subcolumns_count = subcolumns.size() - 1 - nested_path_count;
+
+    //  1000 count
+    // b : 1500 typed path + 700 subcolumns -> 1200 count ()
+    if (!variant_enable_typed_paths_to_sparse) {
+        current_subcolumns_count -= typed_paths.size();
+    }
+
+    bool need_pick_subcolumn_to_sparse_column = current_subcolumns_count > _max_subcolumns_count;
+
     if (!need_pick_subcolumn_to_sparse_column) {
         return Status::OK();
     }
@@ -1893,8 +2020,8 @@
         if (entry->data.is_root) {
             continue;
         }
-        // typed column or nested column will be picked as sub column and ignore none null value size
-        if (typed_paths.find(entry->path.get_path()) != typed_paths.end() ||
+        if ((!variant_enable_typed_paths_to_sparse &&
+             typed_paths.find(entry->path.get_path()) != typed_paths.end()) ||
             entry->path.has_nested_part()) {
             VLOG_DEBUG << "pick " << entry->path.get_path() << " as typed column";
             new_subcolumns.add(entry->path, entry->data);
@@ -1928,7 +2055,6 @@
         } else if (none_null_value_sizes.find(entry->path.get_path()) !=
                    none_null_value_sizes.end()) {
             VLOG_DEBUG << "pick " << entry->path.get_path() << " as sparse column";
-            CHECK(!entry->path.get_is_typed());
             CHECK(!entry->path.has_nested_part());
             remaing_subcolumns.emplace(entry->path.get_path(), entry->data);
         }
diff --git a/be/src/vec/columns/column_variant.h b/be/src/vec/columns/column_variant.h
index c1f7441..e5550db 100644
--- a/be/src/vec/columns/column_variant.h
+++ b/be/src/vec/columns/column_variant.h
@@ -577,6 +577,10 @@
                                                                       size_t row);
 
     Status pick_subcolumns_to_sparse_column(
+            const std::unordered_map<std::string, TabletSchema::SubColumnInfo>& typed_paths,
+            bool variant_enable_typed_paths_to_sparse);
+
+    Status convert_typed_path_to_storage_type(
             const std::unordered_map<std::string, TabletSchema::SubColumnInfo>& typed_paths);
 
     void set_max_subcolumns_count(int32_t max_subcolumns_count) {
diff --git a/be/src/vec/common/schema_util.cpp b/be/src/vec/common/schema_util.cpp
index c160f4b..9cd8ae9 100644
--- a/be/src/vec/common/schema_util.cpp
+++ b/be/src/vec/common/schema_util.cpp
@@ -281,7 +281,7 @@
                                   TabletSchemaSPtr& common_schema, bool update_sparse_column,
                                   int32_t variant_col_unique_id,
                                   const std::map<std::string, TabletColumnPtr>& typed_columns,
-                                  std::set<PathInData>* path_set = nullptr) {
+                                  std::set<PathInData>* path_set) {
     PathsInData tuple_paths;
     DataTypes tuple_types;
     CHECK(common_schema.use_count() == 1);
@@ -857,6 +857,9 @@
                                     const TabletColumnPtr parent_column,
                                     TabletSchemaSPtr& output_schema,
                                     TabletSchema::PathsSetInfo& paths_set_info) {
+    if (parent_column->variant_enable_typed_paths_to_sparse()) {
+        return Status::OK();
+    }
     for (const auto& path : typed_paths) {
         TabletSchema::SubColumnInfo sub_column_info;
         if (generate_sub_column_info(*target, parent_column->unique_id(), path, &sub_column_info)) {
@@ -926,9 +929,18 @@
         // 1. this path has no data type in segments
         // 2. this path is in sparse paths
         // 3. the sparse paths are too much
-        if (find_data_types == path_to_data_types.end() || find_data_types->second.empty() ||
-            sparse_paths.find(std::string(subpath)) != sparse_paths.end() ||
-            sparse_paths.size() >= config::variant_max_sparse_column_statistics_size) {
+        TabletSchema::SubColumnInfo sub_column_info;
+        if (parent_column->variant_enable_typed_paths_to_sparse() &&
+            generate_sub_column_info(*target, parent_column->unique_id(), std::string(subpath),
+                                     &sub_column_info)) {
+            vectorized::schema_util::inherit_column_attributes(*parent_column,
+                                                               sub_column_info.column);
+            output_schema->append_column(sub_column_info.column);
+            paths_set_info.subcolumn_indexes.emplace(subpath, std::move(sub_column_info.indexes));
+            VLOG_DEBUG << "append typed column " << subpath;
+        } else if (find_data_types == path_to_data_types.end() || find_data_types->second.empty() ||
+                   sparse_paths.find(std::string(subpath)) != sparse_paths.end() ||
+                   sparse_paths.size() >= config::variant_max_sparse_column_statistics_size) {
             TabletColumn subcolumn;
             subcolumn.set_name(column_name);
             subcolumn.set_type(FieldType::OLAP_FIELD_TYPE_VARIANT);
@@ -937,6 +949,8 @@
             subcolumn.set_aggregation_method(parent_column->aggregation());
             subcolumn.set_variant_max_subcolumns_count(
                     parent_column->variant_max_subcolumns_count());
+            subcolumn.set_variant_enable_typed_paths_to_sparse(
+                    parent_column->variant_enable_typed_paths_to_sparse());
             subcolumn.set_is_nullable(true);
             output_schema->append_column(subcolumn);
             VLOG_DEBUG << "append sub column " << subpath << " data type "
@@ -992,7 +1006,6 @@
         RETURN_IF_ERROR(get_compaction_typed_columns(
                 target, uid_to_variant_extended_info[column->unique_id()].typed_paths, column,
                 output_schema, uid_to_paths_set_info[column->unique_id()]));
-
         // 2. append nested columns
         RETURN_IF_ERROR(get_compaction_nested_columns(
                 uid_to_variant_extended_info[column->unique_id()].nested_paths,
@@ -1211,8 +1224,9 @@
                 to_column->set_name(parent_column.name_lower_case() + "." + path);
                 to_column->set_type(from_column.type());
                 to_column->set_parent_unique_id(parent_column.unique_id());
+                bool is_typed = parent_column.variant_enable_typed_paths_to_sparse() ? false : true;
                 to_column->set_path_info(
-                        PathInData(parent_column.name_lower_case() + "." + path, true));
+                        PathInData(parent_column.name_lower_case() + "." + path, is_typed));
                 to_column->set_aggregation_method(parent_column.aggregation());
                 to_column->set_is_nullable(true);
                 to_column->set_precision(from_column.precision());
diff --git a/be/src/vec/common/schema_util.h b/be/src/vec/common/schema_util.h
index c90794c..60740f4 100644
--- a/be/src/vec/common/schema_util.h
+++ b/be/src/vec/common/schema_util.h
@@ -114,11 +114,11 @@
 // with a speicified variant column's unique id
 void update_least_common_schema(const std::vector<TabletSchemaSPtr>& schemas,
                                 TabletSchemaSPtr& common_schema, int32_t variant_col_unique_id,
-                                std::unordered_set<PathInData, PathInData::Hash>* path_set);
+                                std::set<PathInData>* path_set);
 
 void update_least_sparse_column(const std::vector<TabletSchemaSPtr>& schemas,
                                 TabletSchemaSPtr& common_schema, int32_t variant_col_unique_id,
-                                const std::unordered_set<PathInData, PathInData::Hash>& path_set);
+                                const std::set<PathInData>& path_set);
 
 // inherit attributes like index/agg info from it's parent column
 void inherit_column_attributes(TabletSchemaSPtr& schema);
@@ -185,4 +185,28 @@
 bool inherit_index(const std::vector<const TabletIndex*>& parent_indexes,
                    TabletIndexes& sub_column_indexes, const segment_v2::ColumnMetaPB& column_pb);
 
+void get_compaction_subcolumns(TabletSchema::PathsSetInfo& paths_set_info,
+                               const TabletColumnPtr parent_column, const TabletSchemaSPtr& target,
+                               const PathToDataTypes& path_to_data_types,
+                               const std::unordered_set<std::string>& sparse_paths,
+                               TabletSchemaSPtr& output_schema);
+
+void update_least_schema_internal(const std::map<PathInData, DataTypes>& subcolumns_types,
+                                  TabletSchemaSPtr& common_schema, bool update_sparse_column,
+                                  int32_t variant_col_unique_id,
+                                  const std::map<std::string, TabletColumnPtr>& typed_columns,
+                                  std::set<PathInData>* path_set = nullptr);
+
+Status get_compaction_typed_columns(const TabletSchemaSPtr& target,
+                                    const std::unordered_set<std::string>& typed_paths,
+                                    const TabletColumnPtr parent_column,
+                                    TabletSchemaSPtr& output_schema,
+                                    TabletSchema::PathsSetInfo& paths_set_info);
+
+Status get_compaction_nested_columns(
+        const std::unordered_set<vectorized::PathInData, vectorized::PathInData::Hash>&
+                nested_paths,
+        const PathToDataTypes& path_to_data_types, const TabletColumnPtr parent_column,
+        TabletSchemaSPtr& output_schema, TabletSchema::PathsSetInfo& paths_set_info);
+
 } // namespace  doris::vectorized::schema_util
diff --git a/be/src/vec/core/field.h b/be/src/vec/core/field.h
index 32a7511..2a18120 100644
--- a/be/src/vec/core/field.h
+++ b/be/src/vec/core/field.h
@@ -648,11 +648,18 @@
     using Type = Int128;
 };
 
+template <>
+struct NearestFieldTypeImpl<PackedUInt128> {
+    using Type = IPv6;
+};
+
 template <typename T>
 decltype(auto) cast_to_nearest_field_type(T&& x) {
     using U = NearestFieldType<std::decay_t<T>>;
     if constexpr (std::is_same_v<PackedInt128, std::decay_t<T>>) {
         return U(x.value);
+    } else if constexpr (std::is_same_v<PackedUInt128, std::decay_t<T>>) {
+        return U(x.value);
     } else if constexpr (std::is_same_v<std::decay_t<T>, U>) {
         return std::forward<T>(x);
     } else {
diff --git a/be/src/vec/data_types/data_type_variant.cpp b/be/src/vec/data_types/data_type_variant.cpp
index bcbf21c..12b8592 100644
--- a/be/src/vec/data_types/data_type_variant.cpp
+++ b/be/src/vec/data_types/data_type_variant.cpp
@@ -52,14 +52,9 @@
         : _max_subcolumns_count(max_subcolumns_count) {
     name = fmt::format("Variant(max subcolumns count = {})", max_subcolumns_count);
 }
+
 bool DataTypeVariant::equals(const IDataType& rhs) const {
     auto rhs_type = typeid_cast<const DataTypeVariant*>(&rhs);
-    if (rhs_type && _max_subcolumns_count != rhs_type->variant_max_subcolumns_count()) {
-        VLOG_DEBUG << "_max_subcolumns_count is" << _max_subcolumns_count
-                   << "rhs_type->variant_max_subcolumns_count()"
-                   << rhs_type->variant_max_subcolumns_count();
-        return false;
-    }
     return rhs_type && _max_subcolumns_count == rhs_type->variant_max_subcolumns_count();
 }
 
diff --git a/be/src/vec/data_types/serde/data_type_array_serde.cpp b/be/src/vec/data_types/serde/data_type_array_serde.cpp
index 2df9cd7..04237aa 100644
--- a/be/src/vec/data_types/serde/data_type_array_serde.cpp
+++ b/be/src/vec/data_types/serde/data_type_array_serde.cpp
@@ -429,7 +429,7 @@
 void DataTypeArraySerDe::write_one_cell_to_binary(const IColumn& src_column,
                                                   ColumnString::Chars& chars,
                                                   int64_t row_num) const {
-    const auto type = static_cast<uint8_t>(PrimitiveType::TYPE_ARRAY);
+    const uint8_t type = static_cast<uint8_t>(FieldType::OLAP_FIELD_TYPE_ARRAY);
     const size_t old_size = chars.size();
     const size_t new_size = old_size + sizeof(uint8_t) + sizeof(size_t);
     chars.resize(new_size);
diff --git a/be/src/vec/data_types/serde/data_type_datetimev2_serde.cpp b/be/src/vec/data_types/serde/data_type_datetimev2_serde.cpp
index d627302..40e185f 100644
--- a/be/src/vec/data_types/serde/data_type_datetimev2_serde.cpp
+++ b/be/src/vec/data_types/serde/data_type_datetimev2_serde.cpp
@@ -1208,6 +1208,25 @@
     UInt64 val = col.get_element(sz - 1);
     col.insert_many_vals(val, times);
 }
+
+void DataTypeDateTimeV2SerDe::write_one_cell_to_binary(const IColumn& src_column,
+                                                       ColumnString::Chars& chars,
+                                                       int64_t row_num) const {
+    const uint8_t type = static_cast<uint8_t>(FieldType::OLAP_FIELD_TYPE_DATETIMEV2);
+    const auto& data_ref =
+            assert_cast<const ColumnVector<TYPE_DATETIMEV2>&>(src_column).get_data_at(row_num);
+    const uint8_t sc = static_cast<uint8_t>(_scale);
+
+    const size_t old_size = chars.size();
+    const size_t new_size = old_size + sizeof(uint8_t) + sizeof(uint8_t) + data_ref.size;
+    chars.resize(new_size);
+    memcpy(chars.data() + old_size, reinterpret_cast<const char*>(&type), sizeof(uint8_t));
+    memcpy(chars.data() + old_size + sizeof(uint8_t), reinterpret_cast<const char*>(&sc),
+           sizeof(uint8_t));
+    memcpy(chars.data() + old_size + sizeof(uint8_t) + sizeof(uint8_t), data_ref.data,
+           data_ref.size);
+}
+
 // NOLINTEND(readability-function-cognitive-complexity)
 // NOLINTEND(readability-function-size)
 
@@ -1260,5 +1279,4 @@
         const DataTypeDecimal128::ColumnType& decimal_col, IColumn& target_col) const;
 template Status DataTypeDateTimeV2SerDe::from_decimal_strict_mode_batch<DataTypeDecimal256>(
         const DataTypeDecimal256::ColumnType& decimal_col, IColumn& target_col) const;
-
 } // namespace doris::vectorized
diff --git a/be/src/vec/data_types/serde/data_type_datetimev2_serde.h b/be/src/vec/data_types/serde/data_type_datetimev2_serde.h
index aa2c646..5f87a06 100644
--- a/be/src/vec/data_types/serde/data_type_datetimev2_serde.h
+++ b/be/src/vec/data_types/serde/data_type_datetimev2_serde.h
@@ -101,6 +101,9 @@
                                               const FormatOptions& options) const override;
     void insert_column_last_value_multiple_times(IColumn& column, uint64_t times) const override;
 
+    void write_one_cell_to_binary(const IColumn& src_column, ColumnString::Chars& chars,
+                                  int64_t row_num) const override;
+
 private:
     template <bool is_binary_format>
     Status _write_column_to_mysql(const IColumn& column, MysqlRowBuffer<is_binary_format>& result,
diff --git a/be/src/vec/data_types/serde/data_type_datev2_serde.cpp b/be/src/vec/data_types/serde/data_type_datev2_serde.cpp
index 86f158f..7f98343 100644
--- a/be/src/vec/data_types/serde/data_type_datev2_serde.cpp
+++ b/be/src/vec/data_types/serde/data_type_datev2_serde.cpp
@@ -208,6 +208,21 @@
     col.insert_many_vals(val, times);
 }
 
+void DataTypeDateV2SerDe::write_one_cell_to_binary(const IColumn& src_column,
+                                                   ColumnString::Chars& chars,
+                                                   int64_t row_num) const {
+    const uint8_t type = static_cast<uint8_t>(FieldType::OLAP_FIELD_TYPE_DATEV2);
+    const auto& data_ref =
+            assert_cast<const ColumnVector<TYPE_DATEV2>&>(src_column).get_data_at(row_num);
+
+    const size_t old_size = chars.size();
+    const size_t new_size = old_size + sizeof(uint8_t) + data_ref.size;
+    chars.resize(new_size);
+
+    memcpy(chars.data() + old_size, reinterpret_cast<const char*>(&type), sizeof(uint8_t));
+    memcpy(chars.data() + old_size + sizeof(uint8_t), data_ref.data, data_ref.size);
+}
+
 // NOLINTBEGIN(readability-function-size)
 // NOLINTBEGIN(readability-function-cognitive-complexity)
 Status DataTypeDateV2SerDe::from_string_batch(const ColumnString& col_str, ColumnNullable& col_res,
diff --git a/be/src/vec/data_types/serde/data_type_datev2_serde.h b/be/src/vec/data_types/serde/data_type_datev2_serde.h
index 73e3df5..da89d83 100644
--- a/be/src/vec/data_types/serde/data_type_datev2_serde.h
+++ b/be/src/vec/data_types/serde/data_type_datev2_serde.h
@@ -99,6 +99,9 @@
 
     void insert_column_last_value_multiple_times(IColumn& column, uint64_t times) const override;
 
+    void write_one_cell_to_binary(const IColumn& src_column, ColumnString::Chars& chars,
+                                  int64_t row_num) const override;
+
 private:
     template <bool is_binary_format>
     Status _write_column_to_mysql(const IColumn& column, MysqlRowBuffer<is_binary_format>& result,
diff --git a/be/src/vec/data_types/serde/data_type_decimal_serde.cpp b/be/src/vec/data_types/serde/data_type_decimal_serde.cpp
index 70d2e9c..d72d47f 100644
--- a/be/src/vec/data_types/serde/data_type_decimal_serde.cpp
+++ b/be/src/vec/data_types/serde/data_type_decimal_serde.cpp
@@ -24,6 +24,7 @@
 
 #include "arrow/type.h"
 #include "common/consts.h"
+#include "olap/tablet_schema.h"
 #include "util/jsonb_document.h"
 #include "util/jsonb_writer.h"
 #include "vec/columns/column.h"
@@ -548,6 +549,31 @@
     }
 }
 
+template <PrimitiveType T>
+void DataTypeDecimalSerDe<T>::write_one_cell_to_binary(const IColumn& src_column,
+                                                       ColumnString::Chars& chars,
+                                                       int64_t row_num) const {
+    const uint8_t type = (const uint8_t)TabletColumn::get_field_type_by_type(T);
+    const auto& data_ref = assert_cast<const ColumnDecimal<T>&>(src_column).get_data_at(row_num);
+    const auto& prec = static_cast<uint8_t>(precision);
+    const auto& sc = static_cast<uint8_t>(scale);
+
+    const size_t old_size = chars.size();
+    // FieldType + precision + scale + value
+    const size_t new_size =
+            old_size + sizeof(uint8_t) + sizeof(uint8_t) + sizeof(uint8_t) + data_ref.size;
+    chars.resize(new_size);
+
+    // FieldType + precision + scale + value
+    memcpy(chars.data() + old_size, reinterpret_cast<const char*>(&type), sizeof(uint8_t));
+    memcpy(chars.data() + old_size + sizeof(uint8_t), reinterpret_cast<const char*>(&prec),
+           sizeof(uint8_t));
+    memcpy(chars.data() + old_size + sizeof(uint8_t) + sizeof(uint8_t),
+           reinterpret_cast<const char*>(&sc), sizeof(uint8_t));
+    memcpy(chars.data() + old_size + sizeof(uint8_t) + sizeof(uint8_t) + sizeof(uint8_t),
+           data_ref.data, data_ref.size);
+}
+
 template class DataTypeDecimalSerDe<TYPE_DECIMAL32>;
 template class DataTypeDecimalSerDe<TYPE_DECIMAL64>;
 template class DataTypeDecimalSerDe<TYPE_DECIMAL128I>;
diff --git a/be/src/vec/data_types/serde/data_type_decimal_serde.h b/be/src/vec/data_types/serde/data_type_decimal_serde.h
index 8bdbccd..3cc2afc 100644
--- a/be/src/vec/data_types/serde/data_type_decimal_serde.h
+++ b/be/src/vec/data_types/serde/data_type_decimal_serde.h
@@ -112,6 +112,9 @@
 
     void insert_column_last_value_multiple_times(IColumn& column, uint64_t times) const override;
 
+    void write_one_cell_to_binary(const IColumn& src_column, ColumnString::Chars& chars,
+                                  int64_t row_num) const override;
+
 private:
     template <bool is_binary_format>
     Status _write_column_to_mysql(const IColumn& column, MysqlRowBuffer<is_binary_format>& result,
diff --git a/be/src/vec/data_types/serde/data_type_ipv4_serde.cpp b/be/src/vec/data_types/serde/data_type_ipv4_serde.cpp
index 463c91f..bf5d2cd 100644
--- a/be/src/vec/data_types/serde/data_type_ipv4_serde.cpp
+++ b/be/src/vec/data_types/serde/data_type_ipv4_serde.cpp
@@ -148,4 +148,19 @@
     col_data.insert(raw_data, raw_data + row_count);
     return Status::OK();
 }
+
+void DataTypeIPv4SerDe::write_one_cell_to_binary(const IColumn& src_column,
+                                                 ColumnString::Chars& chars,
+                                                 int64_t row_num) const {
+    const uint8_t type = static_cast<uint8_t>(FieldType::OLAP_FIELD_TYPE_IPV4);
+    const auto& data_ref = assert_cast<const ColumnIPv4&>(src_column).get_data_at(row_num);
+
+    const size_t old_size = chars.size();
+    const size_t new_size = old_size + sizeof(uint8_t) + data_ref.size;
+    chars.resize(new_size);
+
+    memcpy(chars.data() + old_size, reinterpret_cast<const char*>(&type), sizeof(uint8_t));
+    memcpy(chars.data() + old_size + sizeof(uint8_t), data_ref.data, data_ref.size);
+}
+
 } // namespace doris::vectorized
diff --git a/be/src/vec/data_types/serde/data_type_ipv4_serde.h b/be/src/vec/data_types/serde/data_type_ipv4_serde.h
index 24cc66f..f03e06b 100644
--- a/be/src/vec/data_types/serde/data_type_ipv4_serde.h
+++ b/be/src/vec/data_types/serde/data_type_ipv4_serde.h
@@ -59,6 +59,9 @@
     Status read_column_from_arrow(IColumn& column, const arrow::Array* arrow_array, int64_t start,
                                   int64_t end, const cctz::time_zone& ctz) const override;
 
+    void write_one_cell_to_binary(const IColumn& src_column, ColumnString::Chars& chars,
+                                  int64_t row_num) const override;
+
 private:
     template <bool is_binary_format>
     Status _write_column_to_mysql(const IColumn& column, MysqlRowBuffer<is_binary_format>& result,
diff --git a/be/src/vec/data_types/serde/data_type_ipv6_serde.cpp b/be/src/vec/data_types/serde/data_type_ipv6_serde.cpp
index 656897f..cc9ca27 100644
--- a/be/src/vec/data_types/serde/data_type_ipv6_serde.cpp
+++ b/be/src/vec/data_types/serde/data_type_ipv6_serde.cpp
@@ -250,4 +250,18 @@
     return Status::OK();
 }
 
+void DataTypeIPv6SerDe::write_one_cell_to_binary(const IColumn& src_column,
+                                                 ColumnString::Chars& chars,
+                                                 int64_t row_num) const {
+    const uint8_t type = static_cast<uint8_t>(FieldType::OLAP_FIELD_TYPE_IPV6);
+    const auto& data_ref = assert_cast<const ColumnIPv6&>(src_column).get_data_at(row_num);
+
+    const size_t old_size = chars.size();
+    const size_t new_size = old_size + sizeof(uint8_t) + data_ref.size;
+    chars.resize(new_size);
+
+    memcpy(chars.data() + old_size, reinterpret_cast<const char*>(&type), sizeof(uint8_t));
+    memcpy(chars.data() + old_size + sizeof(uint8_t), data_ref.data, data_ref.size);
+}
+
 } // namespace doris::vectorized
diff --git a/be/src/vec/data_types/serde/data_type_ipv6_serde.h b/be/src/vec/data_types/serde/data_type_ipv6_serde.h
index 85e2f81..9895b75 100644
--- a/be/src/vec/data_types/serde/data_type_ipv6_serde.h
+++ b/be/src/vec/data_types/serde/data_type_ipv6_serde.h
@@ -69,6 +69,9 @@
     void write_one_cell_to_jsonb(const IColumn& column, JsonbWriterT<JsonbOutStream>& result,
                                  Arena& mem_pool, int unique_id, int64_t row_num) const override;
 
+    void write_one_cell_to_binary(const IColumn& src_column, ColumnString::Chars& chars,
+                                  int64_t row_num) const override;
+
 private:
     template <bool is_binary_format>
     Status _write_column_to_mysql(const IColumn& column, MysqlRowBuffer<is_binary_format>& result,
diff --git a/be/src/vec/data_types/serde/data_type_jsonb_serde.cpp b/be/src/vec/data_types/serde/data_type_jsonb_serde.cpp
index 4d1a3d4..447bf5f 100644
--- a/be/src/vec/data_types/serde/data_type_jsonb_serde.cpp
+++ b/be/src/vec/data_types/serde/data_type_jsonb_serde.cpp
@@ -287,7 +287,7 @@
 void DataTypeJsonbSerDe::write_one_cell_to_binary(const IColumn& src_column,
                                                   ColumnString::Chars& chars,
                                                   int64_t row_num) const {
-    const uint8_t type = static_cast<uint8_t>(PrimitiveType::TYPE_JSONB);
+    const uint8_t type = static_cast<uint8_t>(FieldType::OLAP_FIELD_TYPE_JSONB);
     const auto& col = assert_cast<const ColumnString&>(src_column);
     const auto& data_ref = col.get_data_at(row_num);
     size_t data_size = data_ref.size;
diff --git a/be/src/vec/data_types/serde/data_type_nullable_serde.cpp b/be/src/vec/data_types/serde/data_type_nullable_serde.cpp
index 387ab4f..c684e10 100644
--- a/be/src/vec/data_types/serde/data_type_nullable_serde.cpp
+++ b/be/src/vec/data_types/serde/data_type_nullable_serde.cpp
@@ -385,7 +385,7 @@
                                                      int64_t row_num) const {
     auto& col = assert_cast<const ColumnNullable&>(src_column);
     if (col.is_null_at(row_num)) [[unlikely]] {
-        const uint8_t type = static_cast<uint8_t>(PrimitiveType::INVALID_TYPE);
+        const uint8_t type = static_cast<uint8_t>(FieldType::OLAP_FIELD_TYPE_NONE);
         const size_t old_size = chars.size();
         const size_t new_size = old_size + sizeof(uint8_t);
         chars.resize(new_size);
diff --git a/be/src/vec/data_types/serde/data_type_number_serde.cpp b/be/src/vec/data_types/serde/data_type_number_serde.cpp
index 5c2273c..82a9eb4 100644
--- a/be/src/vec/data_types/serde/data_type_number_serde.cpp
+++ b/be/src/vec/data_types/serde/data_type_number_serde.cpp
@@ -22,6 +22,7 @@
 #include "common/exception.h"
 #include "common/status.h"
 #include "gutil/strings/numbers.h"
+#include "olap/tablet_schema.h"
 #include "util/jsonb_document.h"
 #include "util/jsonb_writer.h"
 #include "util/mysql_global.h"
@@ -664,7 +665,7 @@
 void DataTypeNumberSerDe<T>::write_one_cell_to_binary(const IColumn& src_column,
                                                       ColumnString::Chars& chars,
                                                       int64_t row_num) const {
-    const auto type = static_cast<uint8_t>(T);
+    const uint8_t type = (const uint8_t)TabletColumn::get_field_type_by_type(T);
     const auto& data_ref = assert_cast<const ColumnType&>(src_column).get_data_at(row_num);
 
     const size_t old_size = chars.size();
diff --git a/be/src/vec/data_types/serde/data_type_string_serde.h b/be/src/vec/data_types/serde/data_type_string_serde.h
index 7d0cf20..4119c7b 100644
--- a/be/src/vec/data_types/serde/data_type_string_serde.h
+++ b/be/src/vec/data_types/serde/data_type_string_serde.h
@@ -210,7 +210,7 @@
 
     void write_one_cell_to_binary(const IColumn& src_column, ColumnString::Chars& chars,
                                   int64_t row_num) const override {
-        const uint8_t type = static_cast<uint8_t>(PrimitiveType::TYPE_STRING);
+        const uint8_t type = static_cast<uint8_t>(FieldType::OLAP_FIELD_TYPE_STRING);
         const auto& col = assert_cast<const ColumnType&>(src_column);
         const auto& data_ref = col.get_data_at(row_num);
         const size_t data_size = data_ref.size;
diff --git a/be/src/vec/exprs/vmatch_predicate.cpp b/be/src/vec/exprs/vmatch_predicate.cpp
index cfa99cf..b1d68fc 100644
--- a/be/src/vec/exprs/vmatch_predicate.cpp
+++ b/be/src/vec/exprs/vmatch_predicate.cpp
@@ -69,6 +69,7 @@
         _inverted_index_ctx->lower_case = INVERTED_INDEX_PARSER_FALSE;
     }
     _inverted_index_ctx->stop_words = node.match_predicate.parser_stopwords;
+    _inverted_index_ctx->custom_analyzer = node.match_predicate.custom_analyzer;
     _analyzer = inverted_index::InvertedIndexAnalyzer::create_analyzer(_inverted_index_ctx.get());
     _inverted_index_ctx->analyzer = _analyzer.get();
 }
diff --git a/be/test/expected_result/vec/data_types/column_object_to_string.out b/be/test/expected_result/vec/data_types/column_object_to_string.out
index e301e6e..25e73c5 100644
--- a/be/test/expected_result/vec/data_types/column_object_to_string.out
+++ b/be/test/expected_result/vec/data_types/column_object_to_string.out
@@ -9,8 +9,8 @@
 {"v":{"a":20,"b":"str","b":{"d":[20, 20]},"c":[20, 20],"c":{"d":"str"},"d":{"d":[20, 20]},"e":"str","f":["str", "str"]}};variant in row: 8
 {"v":{"a":20,"b":"str","b":{"d":[20, 20]},"c":[20, 20],"c":{"d":"str"},"d":{"d":[20, 20]},"e":"str","f":["str", "str"]}};variant in row: 9
 {"v":{"a":20,"b":"str","b":{"d":[20, 20]},"c":[20, 20],"c":{"d":"str"},"d":{"d":[20, 20]},"e":"str","f":["str", "str"]}};variant in row: 10
-{"v":{"a":20,"b":20,"b":{"d":["str", "str"]},"c":[20, 20],"c":{"d":20},"d":{"d":["str", "str"]},"e":"str","f":["str", "str"]}};variant in row: 11
-{"v":{"a":20,"b":20,"b":{"d":["str", "str"]},"c":[20, 20],"c":{"d":20},"d":{"d":["str", "str"]},"e":"str","f":["str", "str"]}};variant in row: 12
-{"v":{"a":20,"b":20,"b":{"d":["str", "str"]},"c":[20, 20],"c":{"d":20},"d":{"d":["str", "str"]},"e":"str","f":["str", "str"]}};variant in row: 13
-{"v":{"a":20,"b":20,"b":{"d":["str", "str"]},"c":[20, 20],"c":{"d":20},"d":{"d":["str", "str"]},"e":"str","f":["str", "str"]}};variant in row: 14
-{"v":{"a":20,"b":20,"b":{"d":["str", "str"]},"c":[20, 20],"c":{"d":20},"d":{"d":["str", "str"]},"e":"str","f":["str", "str"]}}
\ No newline at end of file
+{"v":{"a":20,"b":20,"b":{"d":["str","str"]},"c":[20, 20],"c":{"d":20},"d":{"d":["str","str"]},"e":"str","f":["str", "str"]}};variant in row: 11
+{"v":{"a":20,"b":20,"b":{"d":["str","str"]},"c":[20, 20],"c":{"d":20},"d":{"d":["str","str"]},"e":"str","f":["str", "str"]}};variant in row: 12
+{"v":{"a":20,"b":20,"b":{"d":["str","str"]},"c":[20, 20],"c":{"d":20},"d":{"d":["str","str"]},"e":"str","f":["str", "str"]}};variant in row: 13
+{"v":{"a":20,"b":20,"b":{"d":["str","str"]},"c":[20, 20],"c":{"d":20},"d":{"d":["str","str"]},"e":"str","f":["str", "str"]}};variant in row: 14
+{"v":{"a":20,"b":20,"b":{"d":["str","str"]},"c":[20, 20],"c":{"d":20},"d":{"d":["str","str"]},"e":"str","f":["str", "str"]}}
\ No newline at end of file
diff --git a/be/test/expected_result/vec/data_types/column_object_to_string_batch.out b/be/test/expected_result/vec/data_types/column_object_to_string_batch.out
index e301e6e..25e73c5 100644
--- a/be/test/expected_result/vec/data_types/column_object_to_string_batch.out
+++ b/be/test/expected_result/vec/data_types/column_object_to_string_batch.out
@@ -9,8 +9,8 @@
 {"v":{"a":20,"b":"str","b":{"d":[20, 20]},"c":[20, 20],"c":{"d":"str"},"d":{"d":[20, 20]},"e":"str","f":["str", "str"]}};variant in row: 8
 {"v":{"a":20,"b":"str","b":{"d":[20, 20]},"c":[20, 20],"c":{"d":"str"},"d":{"d":[20, 20]},"e":"str","f":["str", "str"]}};variant in row: 9
 {"v":{"a":20,"b":"str","b":{"d":[20, 20]},"c":[20, 20],"c":{"d":"str"},"d":{"d":[20, 20]},"e":"str","f":["str", "str"]}};variant in row: 10
-{"v":{"a":20,"b":20,"b":{"d":["str", "str"]},"c":[20, 20],"c":{"d":20},"d":{"d":["str", "str"]},"e":"str","f":["str", "str"]}};variant in row: 11
-{"v":{"a":20,"b":20,"b":{"d":["str", "str"]},"c":[20, 20],"c":{"d":20},"d":{"d":["str", "str"]},"e":"str","f":["str", "str"]}};variant in row: 12
-{"v":{"a":20,"b":20,"b":{"d":["str", "str"]},"c":[20, 20],"c":{"d":20},"d":{"d":["str", "str"]},"e":"str","f":["str", "str"]}};variant in row: 13
-{"v":{"a":20,"b":20,"b":{"d":["str", "str"]},"c":[20, 20],"c":{"d":20},"d":{"d":["str", "str"]},"e":"str","f":["str", "str"]}};variant in row: 14
-{"v":{"a":20,"b":20,"b":{"d":["str", "str"]},"c":[20, 20],"c":{"d":20},"d":{"d":["str", "str"]},"e":"str","f":["str", "str"]}}
\ No newline at end of file
+{"v":{"a":20,"b":20,"b":{"d":["str","str"]},"c":[20, 20],"c":{"d":20},"d":{"d":["str","str"]},"e":"str","f":["str", "str"]}};variant in row: 11
+{"v":{"a":20,"b":20,"b":{"d":["str","str"]},"c":[20, 20],"c":{"d":20},"d":{"d":["str","str"]},"e":"str","f":["str", "str"]}};variant in row: 12
+{"v":{"a":20,"b":20,"b":{"d":["str","str"]},"c":[20, 20],"c":{"d":20},"d":{"d":["str","str"]},"e":"str","f":["str", "str"]}};variant in row: 13
+{"v":{"a":20,"b":20,"b":{"d":["str","str"]},"c":[20, 20],"c":{"d":20},"d":{"d":["str","str"]},"e":"str","f":["str", "str"]}};variant in row: 14
+{"v":{"a":20,"b":20,"b":{"d":["str","str"]},"c":[20, 20],"c":{"d":20},"d":{"d":["str","str"]},"e":"str","f":["str", "str"]}}
\ No newline at end of file
diff --git a/be/test/expected_result/vec/data_types/column_object_to_string_with_buffer.out b/be/test/expected_result/vec/data_types/column_object_to_string_with_buffer.out
index e301e6e..25e73c5 100644
--- a/be/test/expected_result/vec/data_types/column_object_to_string_with_buffer.out
+++ b/be/test/expected_result/vec/data_types/column_object_to_string_with_buffer.out
@@ -9,8 +9,8 @@
 {"v":{"a":20,"b":"str","b":{"d":[20, 20]},"c":[20, 20],"c":{"d":"str"},"d":{"d":[20, 20]},"e":"str","f":["str", "str"]}};variant in row: 8
 {"v":{"a":20,"b":"str","b":{"d":[20, 20]},"c":[20, 20],"c":{"d":"str"},"d":{"d":[20, 20]},"e":"str","f":["str", "str"]}};variant in row: 9
 {"v":{"a":20,"b":"str","b":{"d":[20, 20]},"c":[20, 20],"c":{"d":"str"},"d":{"d":[20, 20]},"e":"str","f":["str", "str"]}};variant in row: 10
-{"v":{"a":20,"b":20,"b":{"d":["str", "str"]},"c":[20, 20],"c":{"d":20},"d":{"d":["str", "str"]},"e":"str","f":["str", "str"]}};variant in row: 11
-{"v":{"a":20,"b":20,"b":{"d":["str", "str"]},"c":[20, 20],"c":{"d":20},"d":{"d":["str", "str"]},"e":"str","f":["str", "str"]}};variant in row: 12
-{"v":{"a":20,"b":20,"b":{"d":["str", "str"]},"c":[20, 20],"c":{"d":20},"d":{"d":["str", "str"]},"e":"str","f":["str", "str"]}};variant in row: 13
-{"v":{"a":20,"b":20,"b":{"d":["str", "str"]},"c":[20, 20],"c":{"d":20},"d":{"d":["str", "str"]},"e":"str","f":["str", "str"]}};variant in row: 14
-{"v":{"a":20,"b":20,"b":{"d":["str", "str"]},"c":[20, 20],"c":{"d":20},"d":{"d":["str", "str"]},"e":"str","f":["str", "str"]}}
\ No newline at end of file
+{"v":{"a":20,"b":20,"b":{"d":["str","str"]},"c":[20, 20],"c":{"d":20},"d":{"d":["str","str"]},"e":"str","f":["str", "str"]}};variant in row: 11
+{"v":{"a":20,"b":20,"b":{"d":["str","str"]},"c":[20, 20],"c":{"d":20},"d":{"d":["str","str"]},"e":"str","f":["str", "str"]}};variant in row: 12
+{"v":{"a":20,"b":20,"b":{"d":["str","str"]},"c":[20, 20],"c":{"d":20},"d":{"d":["str","str"]},"e":"str","f":["str", "str"]}};variant in row: 13
+{"v":{"a":20,"b":20,"b":{"d":["str","str"]},"c":[20, 20],"c":{"d":20},"d":{"d":["str","str"]},"e":"str","f":["str", "str"]}};variant in row: 14
+{"v":{"a":20,"b":20,"b":{"d":["str","str"]},"c":[20, 20],"c":{"d":20},"d":{"d":["str","str"]},"e":"str","f":["str", "str"]}}
\ No newline at end of file
diff --git a/be/test/olap/rowset/segment_v2/variant_column_writer_reader_test.cpp b/be/test/olap/rowset/segment_v2/variant_column_writer_reader_test.cpp
index bf78fdc..e40bec1 100644
--- a/be/test/olap/rowset/segment_v2/variant_column_writer_reader_test.cpp
+++ b/be/test/olap/rowset/segment_v2/variant_column_writer_reader_test.cpp
@@ -263,7 +263,7 @@
     st = it->init(column_iter_opts);
     EXPECT_TRUE(st.ok()) << st.msg();
 
-    MutableColumnPtr new_column_object = ColumnObject::create(3);
+    MutableColumnPtr new_column_object = ColumnObject::create(3, false);
     size_t nrows = 1000;
     st = it->seek_to_ordinal(0);
     EXPECT_TRUE(st.ok()) << st.msg();
@@ -310,7 +310,7 @@
             row_ids.push_back(i);
         }
     }
-    new_column_object = ColumnObject::create(3);
+    new_column_object = ColumnObject::create(3, false);
     st = it->read_by_rowids(row_ids.data(), row_ids.size(), new_column_object);
     EXPECT_TRUE(st.ok()) << st.msg();
     for (int i = 0; i < row_ids.size(); ++i) {
@@ -320,7 +320,7 @@
     }
 
     auto read_to_column_object = [&](ColumnIterator* it) {
-        new_column_object = ColumnObject::create(3);
+        new_column_object = ColumnObject::create(3, false);
         nrows = 1000;
         st = it->seek_to_ordinal(0);
         EXPECT_TRUE(st.ok()) << st.msg();
@@ -448,6 +448,7 @@
     }
     EXPECT_TRUE(variant_stats->sparse_column_non_null_size.size() ==
                 config::variant_max_sparse_column_statistics_size);
+    EXPECT_TRUE(variant_column_reader->is_exceeded_sparse_column_limit());
     delete (it1);
 
     ColumnIterator* it2;
diff --git a/be/test/vec/columns/column_object_test.cpp b/be/test/vec/columns/column_object_test.cpp
new file mode 100644
index 0000000..4b048e7
--- /dev/null
+++ b/be/test/vec/columns/column_object_test.cpp
@@ -0,0 +1,1495 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+#include "vec/columns/column_object.h"
+
+#include <gmock/gmock-more-matchers.h>
+#include <gtest/gtest-message.h>
+#include <gtest/gtest-test-part.h>
+#include <gtest/gtest.h>
+#include <rapidjson/prettywriter.h>
+#include <stdio.h>
+
+#include "common/cast_set.h"
+#include "common/exception.h"
+#include "runtime/jsonb_value.h"
+#include "testutil/variant_util.h"
+#include "vec/columns/common_column_test.h"
+#include "vec/common/string_ref.h"
+#include "vec/core/field.h"
+#include "vec/core/types.h"
+#include "vec/data_types/data_type_array.h"
+#include "vec/data_types/data_type_factory.hpp"
+
+namespace doris::vectorized {
+
+class ColumnObjectTest : public ::testing::Test {};
+
+void convert_field_to_rapidjson(const vectorized::Field& field, rapidjson::Value& target,
+                                rapidjson::Document::AllocatorType& allocator) {
+    switch (field.get_type()) {
+    case vectorized::Field::Types::Null:
+        target.SetNull();
+        break;
+    case vectorized::Field::Types::Int64:
+        target.SetInt64(field.get<Int64>());
+        break;
+    case vectorized::Field::Types::Float64:
+        target.SetDouble(field.get<Float64>());
+        break;
+    case vectorized::Field::Types::JSONB: {
+        const auto& val = field.get<JsonbField>();
+        JsonbValue* json_val = JsonbDocument::createValue(val.get_value(), val.get_size());
+        convert_jsonb_to_rapidjson(*json_val, target, allocator);
+        break;
+    }
+    case vectorized::Field::Types::String: {
+        const String& val = field.get<String>();
+        target.SetString(val.data(), cast_set<rapidjson::SizeType>(val.size()));
+        break;
+    }
+    case vectorized::Field::Types::Array: {
+        const vectorized::Array& array = field.get<Array>();
+        target.SetArray();
+        for (const vectorized::Field& item : array) {
+            rapidjson::Value val;
+            convert_field_to_rapidjson(item, val, allocator);
+            target.PushBack(val, allocator);
+        }
+        break;
+    }
+    case vectorized::Field::Types::VariantMap: {
+        const vectorized::VariantMap& map = field.get<VariantMap>();
+        target.SetObject();
+        for (const auto& item : map) {
+            if (item.second.is_null()) {
+                continue;
+            }
+            rapidjson::Value key;
+            key.SetString(item.first.get_path().data(),
+                          cast_set<rapidjson::SizeType>(item.first.get_path().size()));
+            rapidjson::Value val;
+            convert_field_to_rapidjson(item.second, val, allocator);
+            if (val.IsNull() && item.first.empty()) {
+                // skip null value with empty key, indicate the null json value of root in variant map,
+                // usally padding in nested arrays
+                continue;
+            }
+            target.AddMember(key, val, allocator);
+        }
+        break;
+    }
+    default:
+        throw doris::Exception(ErrorCode::INTERNAL_ERROR, "unkown field type: {}",
+                               field.get_type_name());
+        break;
+    }
+}
+
+void convert_variant_map_to_rapidjson(const vectorized::VariantMap& map, rapidjson::Value& target,
+                                      rapidjson::Document::AllocatorType& allocator) {
+    target.SetObject();
+    for (const auto& item : map) {
+        if (item.second.is_null()) {
+            continue;
+        }
+        rapidjson::Value key;
+        key.SetString(item.first.get_path().data(),
+                      cast_set<rapidjson::SizeType>(item.first.get_path().size()));
+        rapidjson::Value val;
+        convert_field_to_rapidjson(item.second, val, allocator);
+        if (val.IsNull() && item.first.empty()) {
+            // skip null value with empty key, indicate the null json value of root in variant map,
+            // usally padding in nested arrays
+            continue;
+        }
+        target.AddMember(key, val, allocator);
+    }
+}
+
+void convert_array_to_rapidjson(const vectorized::Array& array, rapidjson::Value& target,
+                                rapidjson::Document::AllocatorType& allocator) {
+    target.SetArray();
+    for (const vectorized::Field& item : array) {
+        rapidjson::Value val;
+        convert_field_to_rapidjson(item, val, allocator);
+        target.PushBack(val, allocator);
+    }
+}
+
+TEST(ColumnVariantTest, insert_try_insert) {
+    auto v = VariantUtil::construct_dst_varint_column();
+    FieldInfo info;
+    info.scalar_type_id = TypeIndex::Nothing;
+    info.num_dimensions = 0;
+    PathInData path("v.f");
+    auto sub = v->get_subcolumn(path);
+    Int64 value = 43000000;
+
+    try {
+        sub->insert(value, info);
+        info.num_dimensions = 1;
+        sub->insert(value, info);
+
+        info.num_dimensions = 2;
+        sub->insert(value, info);
+    } catch (const doris::Exception& e) {
+        std::cout << "encounter exception: " << e.what() << std::endl;
+    }
+}
+
+TEST(ColumnVariantTest, basic_finalize) {
+    auto variant = VariantUtil::construct_basic_varint_column();
+    // 4. finalize
+    EXPECT_TRUE(variant->finalize(ColumnObject::FinalizeMode::WRITE_MODE).ok());
+    EXPECT_TRUE(variant->pick_subcolumns_to_sparse_column({}, false).ok());
+    EXPECT_EQ(variant->size(), 10);
+
+    // check finalized subcolumn
+    // 5 subcolumn + 1 root
+    EXPECT_EQ(variant->subcolumns.size(), 6);
+    for (const auto& column : variant->subcolumns) {
+        if (column->data.is_root) {
+            continue;
+        }
+        EXPECT_EQ(column->data.data.size(), 1);
+    }
+
+    // check sparse column
+    const auto& offsets = variant->serialized_sparse_column_offsets();
+    for (int row = 0; row < 5; ++row) {
+        EXPECT_EQ(offsets[row], 0);
+    }
+    for (int row = 5; row < 10; ++row) {
+        EXPECT_EQ(offsets[row] - offsets[row - 1], 3);
+    }
+}
+
+TEST(ColumnVariantTest, basic_deserialize) {
+    auto variant = VariantUtil::construct_basic_varint_column();
+
+    // 4. finalize
+    EXPECT_TRUE(variant->finalize(ColumnObject::FinalizeMode::WRITE_MODE).ok());
+    EXPECT_TRUE(variant->pick_subcolumns_to_sparse_column({}, false).ok());
+    EXPECT_EQ(variant->size(), 10);
+
+    const auto& [path, value] = variant->get_sparse_data_paths_and_values();
+    const auto& offsets = variant->serialized_sparse_column_offsets();
+    for (size_t row = 5; row < 10; ++row) {
+        size_t start = offsets[row - 1];
+        size_t end = offsets[row];
+
+        auto data = path->get_data_at(start);
+        EXPECT_EQ(data, StringRef("v.b.d", 5));
+        auto pair = variant->deserialize_from_sparse_column(value, start++);
+        EXPECT_EQ(pair.first.get<Int64>(), 30);
+
+        auto data2 = path->get_data_at(start);
+        auto pair2 = variant->deserialize_from_sparse_column(value, start++);
+        EXPECT_EQ(data2, StringRef("v.c.d", 5));
+        EXPECT_EQ(pair2.first.get<Int64>(), 30);
+
+        auto data3 = path->get_data_at(start);
+        auto pair3 = variant->deserialize_from_sparse_column(value, start++);
+        EXPECT_EQ(data3, StringRef("v.d.d", 5));
+        EXPECT_EQ(pair3.first.get<String>(), "50");
+        EXPECT_EQ(start, end);
+    }
+}
+
+// test ColumnVariant with ColumnNothing using update_hash_with_value
+TEST(ColumnVariantTest, updateHashValueWithColumnNothingTest) {
+    // Create a ColumnObject with a subcolumn that contains ColumnNothing
+    auto variant = ColumnObject::create(3, 3);
+
+    // Create a subcolumn with ColumnNothing type
+    PathInData path("v.nothing");
+    auto type = DataTypeFactory::instance().create_data_type(TypeIndex::Nothing);
+    auto column = type->create_column();
+    column->insert_many_defaults(3);
+    variant->add_sub_column(path, std::move(column), type);
+
+    // Finalize the variant column to ensure proper structure
+    // EXPECT_TRUE(variant->finalize(ColumnObject::FinalizeMode::WRITE_MODE).ok());
+    // EXPECT_TRUE(variant->pick_subcolumns_to_sparse_column({}).ok());
+    EXPECT_EQ(variant->size(), 3);
+
+    // Test update_hash_with_value with ColumnNothing
+    SipHash hash1, hash2, hash3;
+
+    // Test that update_hash_with_value doesn't crash with ColumnNothing
+    EXPECT_NO_THROW(variant->update_hash_with_value(0, hash1));
+    EXPECT_NO_THROW(variant->update_hash_with_value(1, hash2));
+    EXPECT_NO_THROW(variant->update_hash_with_value(2, hash3));
+
+    // For ColumnNothing, the hash should be consistent since it doesn't contain actual data
+    // However, the hash might include structural information, so we just verify it doesn't crash
+    // and produces some hash value
+    EXPECT_NE(hash1.get64(), 0);
+    EXPECT_NE(hash2.get64(), 0);
+    EXPECT_NE(hash3.get64(), 0);
+
+    // Test update_hashes_with_value with ColumnNothing
+    std::vector<uint64_t> hashes(3, 0);
+    EXPECT_NO_THROW(variant->update_hashes_with_value(hashes.data()));
+
+    // Verify that hashes are computed (non-zero)
+    EXPECT_NE(hashes[0], 0);
+    EXPECT_NE(hashes[1], 0);
+    EXPECT_NE(hashes[2], 0);
+
+    // Test update_xxHash_with_value with ColumnNothing
+    uint64_t xxhash = 0;
+    EXPECT_NO_THROW(variant->update_xxHash_with_value(0, 3, xxhash, nullptr));
+    EXPECT_NE(xxhash, 0);
+
+    // Test update_crc_with_value with ColumnNothing
+    uint32_t crc_hash = 0;
+    EXPECT_NO_THROW(variant->update_crc_with_value(0, 3, crc_hash, nullptr));
+    EXPECT_NE(crc_hash, 0);
+
+    // Test with null map
+    std::vector<uint8_t> null_map(3, 0);
+    null_map[1] = 1; // Mark second row as null
+
+    std::vector<uint64_t> hashes_with_null(3, 0);
+    EXPECT_NO_THROW(variant->update_hashes_with_value(hashes_with_null.data(), null_map.data()));
+
+    uint64_t xxhash_with_null = 0;
+    EXPECT_NO_THROW(variant->update_xxHash_with_value(0, 3, xxhash_with_null, null_map.data()));
+
+    uint32_t crc_hash_with_null = 0;
+    EXPECT_NO_THROW(variant->update_crc_with_value(0, 3, crc_hash_with_null, null_map.data()));
+}
+
+TEST(ColumnVariantTest, basic_inset_range_from) {
+    auto src = VariantUtil::construct_basic_varint_column();
+    EXPECT_TRUE(src->finalize(ColumnObject::FinalizeMode::WRITE_MODE).ok());
+    EXPECT_TRUE(src->pick_subcolumns_to_sparse_column({}, false).ok());
+    EXPECT_EQ(src->size(), 10);
+
+    // dst is an empty column, has 5 subcolumn + 1 root
+    auto dst = VariantUtil::construct_dst_varint_column();
+
+    // subcolumn->subcolumn          v.b v.f v.e
+    // subcolumn->sparse_column      v.a v.c
+    // sparse_column->subcolumn      v.b.d v.c.d
+    // sparse_column->sparse_column  v.d.d
+    dst->insert_range_from(*src, 0, 10);
+    dst->finalize();
+    EXPECT_EQ(dst->size(), 10);
+
+    // 5 subcolumn
+    EXPECT_EQ(dst->subcolumns.size(), 6);
+    ColumnObject::Subcolumns dst_subcolumns = dst->subcolumns;
+    std::sort(
+            dst_subcolumns.begin(), dst_subcolumns.end(),
+            [](const auto& lhsItem, const auto& rhsItem) { return lhsItem->path < rhsItem->path; });
+
+    for (const auto& column : dst_subcolumns) {
+        if (column->data.is_root) {
+            continue;
+        }
+        EXPECT_EQ(column->data.data.size(), 1);
+        EXPECT_EQ(column->data.data[0]->size(), 10);
+        if (column->path.get_path().size() == 3) {
+            EXPECT_EQ(column->data.get_non_null_value_size(), 10);
+        } else {
+            EXPECT_EQ(column->path.get_path().size(), 5);
+            EXPECT_EQ(column->data.get_non_null_value_size(), 5);
+            for (size_t row = 0; row != 5; ++row) {
+                EXPECT_TRUE(column->data.data[0]->is_null_at(row));
+            }
+            for (size_t row = 5; row != 10; ++row) {
+                EXPECT_EQ((*column->data.data[0])[row].get<Int64>(), 30);
+            }
+        }
+    }
+
+    // check sparse column
+    const auto& [path, value] = dst->get_sparse_data_paths_and_values();
+    const auto& offsets = dst->serialized_sparse_column_offsets();
+
+    // v.a v.c
+    for (int row = 0; row < 5; ++row) {
+        size_t start = offsets[row - 1];
+        size_t end = offsets[row];
+
+        auto data = path->get_data_at(start);
+        EXPECT_EQ(data, StringRef("v.a", 3));
+        auto pair = dst->deserialize_from_sparse_column(value, start++);
+        EXPECT_EQ(pair.first.get<Int64>(), 20);
+
+        auto data2 = path->get_data_at(start);
+        EXPECT_EQ(data2, StringRef("v.c", 3));
+        auto pair2 = dst->deserialize_from_sparse_column(value, start++);
+        EXPECT_EQ(pair2.first.get<Int64>(), 20);
+
+        EXPECT_EQ(start, end);
+    }
+
+    // v.a v.c v.d.d
+    for (int row = 5; row < 10; ++row) {
+        size_t start = offsets[row - 1];
+        size_t end = offsets[row];
+
+        auto data = path->get_data_at(start);
+        EXPECT_EQ(data, StringRef("v.a", 3));
+        auto pair = dst->deserialize_from_sparse_column(value, start++);
+        EXPECT_EQ(pair.first.get<Int64>(), 20);
+
+        auto data2 = path->get_data_at(start);
+        EXPECT_EQ(data2, StringRef("v.c", 3));
+        auto pair2 = dst->deserialize_from_sparse_column(value, start++);
+        EXPECT_EQ(pair2.first.get<Int64>(), 20);
+
+        auto data3 = path->get_data_at(start);
+        EXPECT_EQ(data3, StringRef("v.d.d", 5));
+        auto pair3 = dst->deserialize_from_sparse_column(value, start++);
+        EXPECT_EQ(pair3.first.get<String>(), "50");
+
+        EXPECT_EQ(start, end);
+    }
+}
+
+auto convert_to_jsonb_field(auto serde, auto& column) {
+    vectorized::DataTypeSerDe::FormatOptions options;
+    options.escape_char = '\\';
+    auto tmp_col = ColumnString::create();
+    VectorBufferWriter write_buffer(*tmp_col.get());
+    EXPECT_TRUE(serde->serialize_column_to_json(column, 0, 1, write_buffer, options).ok());
+
+    write_buffer.commit();
+    auto str_ref = tmp_col->get_data_at(0);
+    Slice data((char*)(str_ref.data), str_ref.size);
+
+    auto jsonb_type = doris::vectorized::DataTypeFactory::instance().create_data_type(
+            TypeIndex::JSONB, false);
+    auto jsonb_serde = jsonb_type->get_serde();
+    auto jsonb_column = jsonb_type->create_column();
+
+    DataTypeSerDe::FormatOptions format_options;
+    format_options.converted_from_string = true;
+    EXPECT_TRUE(
+            jsonb_serde->deserialize_one_cell_from_json(*jsonb_column, data, format_options).ok());
+    auto res = jsonb_column->get_data_at(0);
+    return JsonbField(res.data, res.size);
+}
+
+auto convert_string_to_jsonb_field(auto& column) {
+    auto str_ref = column.get_data_at(0);
+    Slice data((char*)(str_ref.data), str_ref.size);
+
+    auto jsonb_type = doris::vectorized::DataTypeFactory::instance().create_data_type(
+            TypeIndex::JSONB, false);
+    auto jsonb_serde = jsonb_type->get_serde();
+    auto jsonb_column = jsonb_type->create_column();
+    DataTypeSerDe::FormatOptions format_options;
+    format_options.converted_from_string = true;
+    format_options.escape_char = '\\';
+
+    EXPECT_TRUE(
+            jsonb_serde->deserialize_one_cell_from_json(*jsonb_column, data, format_options).ok());
+    auto res = jsonb_column->get_data_at(0);
+    return JsonbField(res.data, res.size);
+}
+
+doris::vectorized::Field get_jsonb_field(std::string_view type) {
+    static std::unordered_map<std::string_view, doris::vectorized::Field> field_map;
+    if (field_map.empty()) {
+        DataTypePtr data_type_int = doris::vectorized::DataTypeFactory::instance().create_data_type(
+                TypeIndex::Int8, false);
+        DataTypePtr data_type_array_int =
+                std::make_shared<doris::vectorized::DataTypeArray>(data_type_int);
+        auto array_column_int = data_type_array_int->create_column();
+        array_column_int->insert(VariantUtil::get_field("array_int"));
+        auto array_serde_int = data_type_array_int->get_serde();
+        field_map["array_int"] = convert_to_jsonb_field(array_serde_int, *array_column_int);
+
+        DataTypePtr data_type_str = doris::vectorized::DataTypeFactory::instance().create_data_type(
+                TypeIndex::String, false);
+        DataTypePtr data_type_array_str =
+                std::make_shared<doris::vectorized::DataTypeArray>(data_type_str);
+        auto array_column_str = data_type_array_str->create_column();
+        array_column_str->insert(VariantUtil::get_field("array_str"));
+        auto array_serde_str = data_type_array_str->get_serde();
+        field_map["array_str"] = convert_to_jsonb_field(array_serde_str, *array_column_str);
+
+        auto column_int = data_type_int->create_column();
+        column_int->insert(VariantUtil::get_field("int"));
+        auto serde_int = data_type_int->get_serde();
+        field_map["int"] = convert_to_jsonb_field(serde_int, *column_int);
+
+        // auto column_str = data_type_str->create_column();
+        // column_str->insert(VariantUtil::get_field("string"));
+        // field_map["string"] = convert_string_to_jsonb_field(*column_str);
+    }
+    return field_map[type];
+}
+
+// std::string convert_jsonb_field_to_string(doris::vectorized::Field jsonb) {
+//     const auto& val = jsonb.get<JsonbField>();
+//     const JsonbValue* json_val = JsonbDocument::createValue(val.get_value(), val.get_size());
+
+//     rapidjson::Document doc;
+//     doc.SetObject();
+//     rapidjson::Document::AllocatorType& allocator = doc.GetAllocator();
+//     rapidjson::Value json_value;
+//     convert_jsonb_to_rapidjson(*json_val, json_value, allocator);
+//     doc.AddMember("value", json_value, allocator);
+//     rapidjson::StringBuffer buffer;
+//     rapidjson::PrettyWriter<rapidjson::StringBuffer> writer(buffer);
+//     doc.Accept(writer);
+//     return std::string(buffer.GetString());
+// }
+
+std::string convert_field_to_string(doris::vectorized::Field array) {
+    rapidjson::Document doc;
+    doc.SetObject();
+    rapidjson::Document::AllocatorType& allocator = doc.GetAllocator();
+    rapidjson::Value json_value;
+    // DataTypeSerDe::convert_field_to_rapidjson(array, json_value, allocator);
+    doc.AddMember("value", json_value, allocator);
+    rapidjson::StringBuffer buffer;
+    rapidjson::PrettyWriter<rapidjson::StringBuffer> writer(buffer);
+    doc.Accept(writer);
+    return std::string(buffer.GetString());
+}
+
+TEST(ColumnVariantTest, is_null_at) {
+    auto v = VariantUtil::construct_dst_varint_column();
+    PathInData path("v.f");
+    auto sub = v->get_subcolumn(path);
+    std::cout << sub->get_least_common_typeBase()->get_name() << std::endl;
+    EXPECT_TRUE(sub->is_null_at(0));
+
+    auto v1 = VariantUtil::construct_advanced_varint_column();
+    PathInData path1("v.b.d");
+    auto sub1 = v1->get_subcolumn(path1);
+    EXPECT_TRUE(sub1->is_null_at(2));
+    EXPECT_ANY_THROW(sub1->is_null_at(16));
+    vectorized::Field f;
+    EXPECT_ANY_THROW(sub1->get(16, f));
+    std::cout << sub1->num_rows << std::endl;
+    EXPECT_NO_THROW(sub1->resize(sub1->num_rows));
+
+    auto [sparse_column_keys, sparse_column_values] = v1->get_sparse_data_paths_and_values();
+    std::string_view pa("v.a");
+    EXPECT_NO_THROW(
+            sub1->serialize_to_sparse_column(sparse_column_keys, pa, sparse_column_values, 2));
+    EXPECT_ANY_THROW(
+            sub1->serialize_to_sparse_column(sparse_column_keys, pa, sparse_column_values, 16));
+}
+
+TEST(ColumnVariantTest, advanced_finalize) {
+    auto variant = VariantUtil::construct_advanced_varint_column();
+
+    // 4. finalize
+    EXPECT_TRUE(variant->finalize(ColumnObject::FinalizeMode::WRITE_MODE).ok());
+    EXPECT_TRUE(variant->pick_subcolumns_to_sparse_column({}, false).ok());
+    EXPECT_EQ(variant->size(), 15);
+
+    // check finalized subcolumn
+    // 5 subcolumn + 1 root
+    EXPECT_EQ(variant->subcolumns.size(), 6);
+    for (const auto& column : variant->subcolumns) {
+        if (column->data.is_root) {
+            continue;
+        }
+        EXPECT_EQ(column->data.data.size(), 1);
+    }
+
+    // check sparse column
+    const auto& offsets = variant->serialized_sparse_column_offsets();
+    for (int row = 0; row < 5; ++row) {
+        EXPECT_EQ(offsets[row] - offsets[row - 1], 0);
+    }
+    for (int row = 5; row < 15; ++row) {
+        EXPECT_EQ(offsets[row] - offsets[row - 1], 3);
+    }
+
+    {
+        // Test fill_path_column_from_sparse_data
+        auto map = std::make_unique<NullMap>(15, 0);
+        vectorized::ColumnObject::fill_path_column_from_sparse_data(
+                *variant->get_subcolumn({}) /*root*/, map.get(), StringRef {"array"},
+                variant->get_sparse_column(), 0, 5);
+        vectorized::ColumnObject::fill_path_column_from_sparse_data(
+                *variant->get_subcolumn({}) /*root*/, map.get(), StringRef {"array"},
+                variant->get_sparse_column(), 5, 15);
+    }
+}
+
+TEST(ColumnVariantTest, advanced_deserialize) {
+    auto variant = VariantUtil::construct_advanced_varint_column();
+
+    // 4. finalize
+    EXPECT_TRUE(variant->finalize(ColumnObject::FinalizeMode::WRITE_MODE).ok());
+    EXPECT_TRUE(variant->pick_subcolumns_to_sparse_column({}, false).ok());
+    EXPECT_EQ(variant->size(), 15);
+
+    const auto& [path, value] = variant->get_sparse_data_paths_and_values();
+    const auto& offsets = variant->serialized_sparse_column_offsets();
+    for (size_t row = 5; row < 10; ++row) {
+        size_t start = offsets[row - 1];
+        size_t end = offsets[row];
+
+        auto data = path->get_data_at(start);
+        auto pair = variant->deserialize_from_sparse_column(value, start++);
+        EXPECT_EQ(data, StringRef("v.b.d", 5));
+        EXPECT_EQ(convert_field_to_string(pair.first),
+                  convert_field_to_string(get_jsonb_field("array_int")));
+
+        auto data2 = path->get_data_at(start);
+        auto pair2 = variant->deserialize_from_sparse_column(value, start++);
+        EXPECT_EQ(data2, StringRef("v.c.d", 5));
+        EXPECT_EQ(convert_field_to_string(pair2.first),
+                  convert_field_to_string(VariantUtil::get_field("string")));
+
+        auto data3 = path->get_data_at(start);
+        auto pair3 = variant->deserialize_from_sparse_column(value, start++);
+        EXPECT_EQ(data3, StringRef("v.d.d", 5));
+        EXPECT_EQ(convert_field_to_string(pair3.first),
+                  convert_field_to_string(get_jsonb_field("array_int")));
+        EXPECT_EQ(start, end);
+    }
+
+    for (size_t row = 10; row < 15; ++row) {
+        size_t start = offsets[row - 1];
+        size_t end = offsets[row];
+
+        auto data = path->get_data_at(start);
+        auto pair = variant->deserialize_from_sparse_column(value, start++);
+        EXPECT_EQ(data, StringRef("v.b.d", 5));
+        EXPECT_EQ(convert_field_to_string(pair.first),
+                  convert_field_to_string(get_jsonb_field("array_str")));
+
+        auto data2 = path->get_data_at(start);
+        auto pair2 = variant->deserialize_from_sparse_column(value, start++);
+        EXPECT_EQ(data2, StringRef("v.c.d", 5));
+        EXPECT_EQ(convert_field_to_string(pair2.first),
+                  convert_field_to_string(get_jsonb_field("int")));
+
+        auto data3 = path->get_data_at(start);
+        auto pair3 = variant->deserialize_from_sparse_column(value, start++);
+        EXPECT_EQ(data3, StringRef("v.d.d", 5));
+        EXPECT_EQ(convert_field_to_string(pair3.first),
+                  convert_field_to_string(get_jsonb_field("array_str")));
+        EXPECT_EQ(start, end);
+    }
+}
+
+TEST(ColumnVariantTest, advanced_insert_range_from) {
+    auto src = VariantUtil::construct_advanced_varint_column();
+    EXPECT_TRUE(src->finalize(ColumnObject::FinalizeMode::WRITE_MODE).ok());
+    EXPECT_TRUE(src->pick_subcolumns_to_sparse_column({}, false).ok());
+    EXPECT_EQ(src->size(), 15);
+
+    auto dst = VariantUtil::construct_dst_varint_column();
+
+    // subcolumn->subcolumn          v.b v.f v.e
+    // subcolumn->sparse_column      v.a v.c
+    // sparse_column->subcolumn      v.b.d v.c.d
+    // sparse_column->sparse_column  v.d.d
+    dst->insert_range_from(*src, 0, src->size());
+    dst->finalize();
+    EXPECT_EQ(dst->size(), 15);
+
+    EXPECT_EQ(dst->subcolumns.size(), 6);
+    ColumnObject::Subcolumns dst_subcolumns = dst->subcolumns;
+
+    std::sort(
+            dst_subcolumns.begin(), dst_subcolumns.end(),
+            [](const auto& lhsItem, const auto& rhsItem) { return lhsItem->path < rhsItem->path; });
+
+    // subcolumns
+    for (const auto& column : dst_subcolumns) {
+        if (column->data.is_root) {
+            continue;
+        }
+        EXPECT_EQ(column->data.data.size(), 1);
+        EXPECT_EQ(column->data.data[0]->size(), 15);
+
+        if (column->path.get_path().size() == 3) {
+            EXPECT_EQ(column->data.get_non_null_value_size(), 15);
+            if (column->path.get_path() == "v.b") {
+                EXPECT_EQ(assert_cast<const DataTypeNullable*>(column->data.data_types[0].get())
+                                  ->get_nested_type()
+                                  ->get_type_id(),
+                          TypeIndex::JSONB);
+            }
+        } else if (column->path.get_path().size() == 5) {
+            EXPECT_EQ(column->data.get_non_null_value_size(), 10);
+            EXPECT_EQ(assert_cast<const DataTypeNullable*>(column->data.data_types[0].get())
+                              ->get_nested_type()
+                              ->get_type_id(),
+                      TypeIndex::JSONB);
+            for (size_t row = 0; row < 5; ++row) {
+                EXPECT_TRUE(column->data.data[0]->is_null_at(row));
+            }
+        }
+    }
+
+    // sparse columns
+    const auto& [path, value] = dst->get_sparse_data_paths_and_values();
+    const auto& offsets = dst->serialized_sparse_column_offsets();
+
+    // v.a v.c
+    for (int row = 0; row < 5; ++row) {
+        size_t start = offsets[row - 1];
+        size_t end = offsets[row];
+
+        auto data = path->get_data_at(start);
+        EXPECT_EQ(data, StringRef("v.a", 3));
+        auto pair = dst->deserialize_from_sparse_column(value, start++);
+        EXPECT_EQ(pair.first.get<Int64>(), 20);
+
+        auto data2 = path->get_data_at(start);
+        EXPECT_EQ(data2, StringRef("v.c", 3));
+        auto pair2 = dst->deserialize_from_sparse_column(value, start++);
+        EXPECT_EQ(convert_field_to_string(pair2.first),
+                  convert_field_to_string(VariantUtil::get_field("array_int")));
+
+        EXPECT_EQ(start, end);
+    }
+
+    for (int row = 5; row < 10; ++row) {
+        size_t start = offsets[row - 1];
+        size_t end = offsets[row];
+
+        auto data = path->get_data_at(start);
+        auto pair = dst->deserialize_from_sparse_column(value, start++);
+        EXPECT_EQ(data, StringRef("v.a", 3));
+        EXPECT_EQ(pair.first.get<Int64>(), 20);
+
+        auto data2 = path->get_data_at(start);
+        auto pair2 = dst->deserialize_from_sparse_column(value, start++);
+        EXPECT_EQ(data2, StringRef("v.c", 3));
+        EXPECT_EQ(convert_field_to_string(pair2.first),
+                  convert_field_to_string(VariantUtil::get_field("array_int")));
+
+        auto data3 = path->get_data_at(start);
+        auto pair3 = dst->deserialize_from_sparse_column(value, start++);
+        EXPECT_EQ(data3, StringRef("v.d.d", 5));
+        EXPECT_EQ(convert_field_to_string(pair3.first),
+                  convert_field_to_string(get_jsonb_field("array_int")));
+
+        EXPECT_EQ(start, end);
+    }
+
+    for (int row = 10; row < 15; ++row) {
+        size_t start = offsets[row - 1];
+        size_t end = offsets[row];
+
+        auto data = path->get_data_at(start);
+        auto pair = dst->deserialize_from_sparse_column(value, start++);
+        EXPECT_EQ(data, StringRef("v.a", 3));
+        EXPECT_EQ(pair.first.get<Int64>(), 20);
+
+        auto data2 = path->get_data_at(start);
+        auto pair2 = dst->deserialize_from_sparse_column(value, start++);
+        EXPECT_EQ(data2, StringRef("v.c", 3));
+        EXPECT_EQ(convert_field_to_string(pair2.first),
+                  convert_field_to_string(VariantUtil::get_field("array_int")));
+
+        auto data3 = path->get_data_at(start);
+        auto pair3 = dst->deserialize_from_sparse_column(value, start++);
+        EXPECT_EQ(data3, StringRef("v.d.d", 5));
+        EXPECT_EQ(convert_field_to_string(pair3.first),
+                  convert_field_to_string(get_jsonb_field("array_str")));
+
+        EXPECT_EQ(start, end);
+    }
+}
+
+TEST(ColumnVariantTest, empty_inset_range_from) {
+    auto src = VariantUtil::construct_varint_column_only_subcolumns();
+    EXPECT_TRUE(src->finalize(ColumnObject::FinalizeMode::WRITE_MODE).ok());
+    EXPECT_TRUE(src->pick_subcolumns_to_sparse_column({}, false).ok());
+    EXPECT_EQ(src->size(), 6);
+
+    // dst is an empty column
+    auto dst = ColumnObject::create(5);
+
+    // subcolumn->subcolumn          v.a v.b v.c v.f v.e
+    dst->insert_range_from(*src, 0, 6);
+    EXPECT_EQ(dst->size(), 6);
+
+    // 5 subcolumn
+    EXPECT_EQ(dst->subcolumns.size(), 6);
+
+    for (const auto& column : dst->subcolumns) {
+        if (column->data.is_root) {
+            EXPECT_EQ(column->data.data.size(), 1);
+            EXPECT_EQ(column->data.data[0]->size(), 6);
+            EXPECT_EQ(column->data.get_non_null_value_size(), 1);
+            continue;
+        }
+        EXPECT_EQ(column->data.data.size(), 1);
+        EXPECT_EQ(column->data.data[0]->size(), 6);
+        EXPECT_EQ(column->data.get_non_null_value_size(), 5);
+    }
+
+    // empty sparse column
+    const auto& [path, value] = dst->get_sparse_data_paths_and_values();
+    const auto& offsets = dst->serialized_sparse_column_offsets();
+    EXPECT_EQ(offsets[4], offsets[-1]);
+    EXPECT_EQ(path->size(), value->size());
+
+    auto src_contains_seven_subcolumns = VariantUtil::construct_varint_column_more_subcolumns();
+
+    EXPECT_TRUE(
+            src_contains_seven_subcolumns->finalize(ColumnObject::FinalizeMode::WRITE_MODE).ok());
+    EXPECT_TRUE(src_contains_seven_subcolumns->pick_subcolumns_to_sparse_column({}, false).ok());
+    EXPECT_EQ(src_contains_seven_subcolumns->size(), 5);
+
+    // subcolumn->subcolumn          v.a v.b v.c v.f v.e
+    // add sprase columns            v.s v.x v.y v.z
+    dst->insert_range_from(*src_contains_seven_subcolumns, 0, 5);
+    EXPECT_EQ(dst->size(), 11);
+
+    // 5 subcolumn
+    EXPECT_EQ(dst->subcolumns.size(), 6);
+
+    for (int row = 0; row < 6; ++row) {
+        size_t start = offsets[row - 1];
+        size_t end = offsets[row];
+
+        EXPECT_EQ(start, end);
+    }
+
+    // v.s v.x v.y v.z
+    for (int row = 6; row < 11; ++row) {
+        size_t start = offsets[row - 1];
+        size_t end = offsets[row];
+
+        auto data0 = path->get_data_at(start);
+        EXPECT_EQ(data0, StringRef("v.s", 3));
+        auto pair0 = dst->deserialize_from_sparse_column(value, start++);
+        EXPECT_EQ(convert_field_to_string(pair0.first),
+                  convert_field_to_string(VariantUtil::get_field("string")));
+
+        auto data = path->get_data_at(start);
+        EXPECT_EQ(data, StringRef("v.x", 3));
+        auto pair = dst->deserialize_from_sparse_column(value, start++);
+        EXPECT_EQ(pair.first.get<Int16>(), std::numeric_limits<Int16>::max());
+
+        auto data2 = path->get_data_at(start);
+        EXPECT_EQ(data2, StringRef("v.y", 3));
+        auto pair2 = dst->deserialize_from_sparse_column(value, start++);
+        EXPECT_EQ(pair2.first.get<Int32>(), std::numeric_limits<Int32>::max());
+
+        auto data3 = path->get_data_at(start);
+        EXPECT_EQ(data3, StringRef("v.z", 3));
+        auto pair3 = dst->deserialize_from_sparse_column(value, start++);
+        EXPECT_EQ(pair3.first.get<Int64>(),
+                  Int64(static_cast<Int64>(std::numeric_limits<Int32>::max()) + 1));
+
+        EXPECT_EQ(start, end);
+    }
+
+    auto src_contains_subcoumns_and_sparse_columns = VariantUtil::construct_basic_varint_column();
+    EXPECT_TRUE(src_contains_subcoumns_and_sparse_columns
+                        ->finalize(ColumnObject::FinalizeMode::WRITE_MODE)
+                        .ok());
+    EXPECT_TRUE(
+            src_contains_subcoumns_and_sparse_columns->pick_subcolumns_to_sparse_column({}, false)
+                    .ok());
+    EXPECT_EQ(src_contains_subcoumns_and_sparse_columns->size(), 10);
+
+    // subcolumn->subcolumn          v.a v.b v.c v.f v.e
+    // add sprase columns            v.s v.x v.y v.b.d v.c.d v.d.d
+    dst->insert_range_from(*src_contains_subcoumns_and_sparse_columns, 0, 10);
+    EXPECT_EQ(dst->size(), 21);
+
+    // 5 subcolumn
+    EXPECT_EQ(dst->subcolumns.size(), 6);
+
+    for (int row = 0; row < 6; ++row) {
+        size_t start = offsets[row - 1];
+        size_t end = offsets[row];
+
+        EXPECT_EQ(start, end);
+    }
+
+    // v.x v.y
+    for (int row = 6; row < 11; ++row) {
+        size_t start = offsets[row - 1];
+        size_t end = offsets[row];
+
+        auto data0 = path->get_data_at(start);
+        EXPECT_EQ(data0, StringRef("v.s", 3));
+        auto pair0 = dst->deserialize_from_sparse_column(value, start++);
+        EXPECT_EQ(convert_field_to_string(pair0.first),
+                  convert_field_to_string(VariantUtil::get_field("string")));
+
+        auto data = path->get_data_at(start);
+        EXPECT_EQ(data, StringRef("v.x", 3));
+        auto pair = dst->deserialize_from_sparse_column(value, start++);
+        EXPECT_EQ(pair.first.get<Int16>(), std::numeric_limits<Int16>::max());
+
+        auto data2 = path->get_data_at(start);
+        EXPECT_EQ(data2, StringRef("v.y", 3));
+        auto pair2 = dst->deserialize_from_sparse_column(value, start++);
+        EXPECT_EQ(pair2.first.get<Int32>(), std::numeric_limits<Int32>::max());
+
+        auto data3 = path->get_data_at(start);
+        EXPECT_EQ(data3, StringRef("v.z", 3));
+        auto pair3 = dst->deserialize_from_sparse_column(value, start++);
+        EXPECT_EQ(pair3.first.get<Int64>(),
+                  Int64(static_cast<Int64>(std::numeric_limits<Int32>::max()) + 1));
+
+        EXPECT_EQ(start, end);
+    }
+
+    for (int row = 11; row < 16; ++row) {
+        size_t start = offsets[row - 1];
+        size_t end = offsets[row];
+
+        EXPECT_EQ(start, end);
+    }
+
+    //v.b.d v.c.d v.d.d
+    for (int row = 16; row < 21; ++row) {
+        size_t start = offsets[row - 1];
+        size_t end = offsets[row];
+
+        auto data = path->get_data_at(start);
+        EXPECT_EQ(data, StringRef("v.b.d", 5));
+        auto pair = dst->deserialize_from_sparse_column(value, start++);
+        EXPECT_EQ(pair.first.get<Int64>(), 30);
+
+        auto data2 = path->get_data_at(start);
+        auto pair2 = dst->deserialize_from_sparse_column(value, start++);
+        EXPECT_EQ(data2, StringRef("v.c.d", 5));
+        EXPECT_EQ(pair2.first.get<Int64>(), 30);
+
+        auto data3 = path->get_data_at(start);
+        auto pair3 = dst->deserialize_from_sparse_column(value, start++);
+        EXPECT_EQ(data3, StringRef("v.d.d", 5));
+        EXPECT_EQ(pair3.first.get<String>(), "50");
+        EXPECT_EQ(start, end);
+    }
+}
+
+TEST(ColumnVariantTest, insert_null_to_decimal_column) {
+    ColumnObject::Subcolumn subcolumn(0, true /* is_nullable */, false /* is_root */);
+    Field null_field;
+    subcolumn.insert(null_field);
+    subcolumn.finalize();
+    EXPECT_EQ(subcolumn.data.size(), 1);
+    EXPECT_EQ(subcolumn.data[0]->size(), 1);
+    EXPECT_EQ(subcolumn.data_types.size(), 1);
+    EXPECT_EQ(subcolumn.least_common_type.get_base_type_id(), TypeIndex::Nothing);
+    Field decimal_field(DecimalField<Decimal128V2>(10, 2));
+    subcolumn.insert(decimal_field);
+    subcolumn.finalize();
+    EXPECT_EQ(subcolumn.get_non_null_value_size(), 1);
+    EXPECT_EQ(subcolumn.data.size(), 1);
+    EXPECT_EQ(subcolumn.data[0]->size(), 2);
+    EXPECT_EQ(subcolumn.data[0]->is_null_at(0), true);
+    EXPECT_EQ(subcolumn.data[0]->is_null_at(1), false);
+    EXPECT_EQ(subcolumn.data_types.size(), 1);
+    EXPECT_EQ(subcolumn.least_common_type.get_base_type_id(), TypeIndex::Decimal128V2);
+}
+
+TEST(ColumnVariantTest, subcolumn_insert_range_from_test) {
+    ColumnObject::Subcolumn subcolumn(0, true /* is_nullable */, false /* is_root */);
+    Field int_field(20);
+    Field string_field("hello");
+    Field array_int_field = Array(2);
+    auto& array_int = array_int_field.get<Array>();
+    array_int[0] = int_field;
+    array_int[1] = int_field;
+    ColumnObject::Subcolumn subcolumn2(0, true /* is_nullable */, false /* is_root */);
+    subcolumn2.insert(array_int_field);
+    subcolumn2.finalize();
+
+    Field array_string_field = Array(2);
+    auto& array_string = array_string_field.get<Array>();
+    array_string[0] = string_field;
+    array_string[1] = string_field;
+    ColumnObject::Subcolumn subcolumn3(0, true /* is_nullable */, false /* is_root */);
+    subcolumn3.insert(array_string_field);
+    subcolumn3.finalize();
+
+    subcolumn.insert_range_from(subcolumn2, 0, 1);
+    subcolumn.insert_range_from(subcolumn3, 0, 1);
+    subcolumn.finalize();
+    EXPECT_EQ(subcolumn.data.size(), 1);
+    ColumnObject::Subcolumn subcolumn4(0, true /* is_nullable */, false /* is_root */);
+    subcolumn4.insert(int_field);
+    subcolumn4.finalize();
+
+    ColumnObject::Subcolumn subcolumn5(0, true /* is_nullable */, false /* is_root */);
+    subcolumn5.insert(string_field);
+    subcolumn5.finalize();
+
+    subcolumn.insert_range_from(subcolumn4, 0, 1);
+    subcolumn.insert_range_from(subcolumn5, 0, 1);
+    subcolumn.finalize();
+    EXPECT_EQ(subcolumn.data.size(), 1);
+}
+
+TEST(ColumnVariantTest, subcolumn_insert_range_fromtest_variant_field) {
+    std::vector<Field> fields;
+    fields.emplace_back(
+            VariantField(DecimalField<Decimal32>(Decimal32(1234), 2), TypeIndex::Decimal32, 6, 2));
+    fields.emplace_back(
+            VariantField(DecimalField<Decimal64>(Decimal64(5678), 2), TypeIndex::Decimal64, 8, 2));
+    fields.emplace_back(VariantField(DecimalField<Decimal128V2>(Decimal128V2(91011), 2),
+                                     TypeIndex::Decimal128V2, 16, 2));
+    fields.emplace_back(VariantField(DecimalField<Decimal128V3>(Decimal128V3(121314), 2),
+                                     TypeIndex::Decimal128V3, 18, 2));
+    fields.emplace_back(VariantField(DecimalField<Decimal256>(Decimal256(151617), 2),
+                                     TypeIndex::Decimal256, 32, 2));
+    Array arr_decimal32;
+    arr_decimal32.push_back(Field(VariantField(DecimalField<Decimal32>(Decimal32(12345678), 2),
+                                               TypeIndex::Decimal32, 6, 2)));
+    arr_decimal32.push_back(Field(VariantField(DecimalField<Decimal32>(Decimal32(87654321), 2),
+                                               TypeIndex::Decimal32, 6, 2)));
+    fields.emplace_back(VariantField(arr_decimal32, TypeIndex::Array));
+
+    Array arr_decimal64;
+    arr_decimal64.push_back(Field(VariantField(
+            DecimalField<Decimal64>(Decimal64(123456789012345), 2), TypeIndex::Decimal64, 18, 2)));
+    arr_decimal64.push_back(Field(VariantField(
+            DecimalField<Decimal64>(Decimal64(987654321098765), 2), TypeIndex::Decimal64, 18, 2)));
+    fields.emplace_back(VariantField(arr_decimal64, TypeIndex::Array));
+
+    Array arr_decimal128v2;
+    arr_decimal128v2.push_back(
+            Field(VariantField(DecimalField<Decimal128V2>(Decimal128V2(1234567890), 2),
+                               TypeIndex::Decimal128V2, 16, 2)));
+    arr_decimal128v2.push_back(
+            Field(VariantField(DecimalField<Decimal128V2>(Decimal128V2(9876543210), 2),
+                               TypeIndex::Decimal128V2, 16, 2)));
+    fields.emplace_back(VariantField(arr_decimal128v2, TypeIndex::Array));
+
+    Array arr_decimal128v3;
+    arr_decimal128v3.push_back(
+            Field(VariantField(DecimalField<Decimal128V3>(Decimal128V3(1234567890), 2),
+                               TypeIndex::Decimal128V3, 18, 2)));
+    arr_decimal128v3.push_back(
+            Field(VariantField(DecimalField<Decimal128V3>(Decimal128V3(9876543210), 2),
+                               TypeIndex::Decimal128V3, 18, 2)));
+    fields.emplace_back(VariantField(arr_decimal128v3, TypeIndex::Array));
+
+    Array arr_decimal256;
+    arr_decimal256.push_back(Field(VariantField(DecimalField<Decimal256>(Decimal256(1234567890), 2),
+                                                TypeIndex::Decimal256, 32, 2)));
+    arr_decimal256.push_back(Field(VariantField(DecimalField<Decimal256>(Decimal256(9876543210), 2),
+                                                TypeIndex::Decimal256, 32, 2)));
+    fields.emplace_back(VariantField(arr_decimal256, TypeIndex::Array));
+
+    std::random_device rd;
+    std::mt19937 g(rd());
+    for (int i = 0; i < 10000; i++) {
+        std::vector<Field> fields_copy;
+        fields_copy.emplace_back(Field::Types::Null);
+        fields_copy.emplace_back(Field::Types::Null);
+        std::shuffle(fields.begin(), fields.end(), g);
+        fields_copy.emplace_back(fields[0]);
+        fields_copy.emplace_back(fields[0]);
+        std::shuffle(fields_copy.begin(), fields_copy.end(), g);
+        auto subcolumn = ColumnObject::Subcolumn(0, true, false);
+        for (const auto& field : fields_copy) {
+            auto subcolumn_tmp = ColumnObject::Subcolumn(0, true, false);
+            subcolumn_tmp.insert(field);
+            subcolumn.insert_range_from(subcolumn_tmp, 0, 1);
+        }
+        subcolumn.finalize();
+        EXPECT_EQ(subcolumn.data.size(), 1);
+        EXPECT_EQ(subcolumn.data[0]->size(), 4);
+        auto& variant_field = fields[0].get<VariantField>();
+        EXPECT_EQ(remove_nullable(subcolumn.get_least_common_type())->get_type_id(),
+                  variant_field.get_type_id());
+    }
+}
+
+TEST(ColumnVariantTest, subcolumn_insert_range_from_test_advanced) {
+    std::vector<Field> fields;
+
+    fields.emplace_back(Field::Types::Null);
+
+    fields.emplace_back(Int8(100));
+
+    fields.emplace_back(Int16(10000));
+
+    fields.emplace_back(Int32(1000000000));
+
+    fields.emplace_back(Int64(922337203685477588));
+
+    fields.emplace_back(Float32(3.14159f));
+
+    fields.emplace_back(Float64(3.14159265359));
+
+    fields.emplace_back(String("hello world"));
+
+    Array arr_int8;
+    arr_int8.push_back(Field(Int8(1)));
+    arr_int8.push_back(Field(Int8(2)));
+    fields.emplace_back(arr_int8);
+
+    Array arr_int16;
+    arr_int16.push_back(Field(Int16(12323)));
+    arr_int16.push_back(Field(Int16(23232)));
+    fields.emplace_back(arr_int16);
+
+    Array arr_int32;
+    arr_int32.push_back(Field(Int32(123232323)));
+    arr_int32.push_back(Field(Int32(232323232)));
+    fields.emplace_back(arr_int32);
+
+    Array arr_int64;
+    arr_int64.push_back(Field(Int64(1232323232323232323)));
+    arr_int64.push_back(Field(Int64(2323232323232323232)));
+    fields.emplace_back(arr_int64);
+
+    Array arr_float32;
+    arr_float32.push_back(Field(Float32(1.1f)));
+    arr_float32.push_back(Field(Float32(2.2f)));
+    fields.emplace_back(arr_float32);
+
+    Array arr_float;
+    arr_float.push_back(Field(Float64(1.1)));
+    arr_float.push_back(Field(Float64(2.2)));
+    fields.emplace_back(arr_float);
+
+    Array arr_string;
+    arr_string.push_back(Field(String("one")));
+    arr_string.push_back(Field(String("two")));
+    fields.emplace_back(arr_string);
+
+    std::random_device rd;
+    std::mt19937 g(rd());
+
+    for (int i = 0; i < 10000; i++) {
+        std::shuffle(fields.begin(), fields.end(), g);
+        auto subcolumn = ColumnObject::Subcolumn(0, true, false);
+
+        for (const auto& field : fields) {
+            auto subcolumn_tmp = ColumnObject::Subcolumn(0, true, false);
+            subcolumn_tmp.insert(field);
+            subcolumn.insert_range_from(subcolumn_tmp, 0, 1);
+        }
+
+        subcolumn.finalize();
+        EXPECT_EQ(subcolumn.data.size(), 1);
+        // std::cout << "least common type: " << subcolumn.get_least_common_type()->get_name() << std::endl;
+        EXPECT_EQ(subcolumn.get_least_common_base_type_id(), TypeIndex::JSONB);
+
+        for (const auto& field : fields) {
+            subcolumn.insert(field);
+        }
+        EXPECT_EQ(subcolumn.get_least_common_base_type_id(), TypeIndex::JSONB);
+
+        if (i % 1000 == 0) {
+            std::cout << "insert count " << i << std::endl;
+        }
+    }
+}
+
+TEST(ColumnVariantTest, test_serialize_to_sparse_column_and_deserialize) {
+    Field decimal32_field = VariantField(DecimalField<Decimal32>(Decimal32(1234567890), 2),
+                                         TypeIndex::Decimal32, 6, 2);
+    Field decimal64_field = VariantField(DecimalField<Decimal64>(Decimal64(1234567890), 3),
+                                         TypeIndex::Decimal64, 16, 3);
+    Field decimal128v3_field = VariantField(DecimalField<Decimal128V3>(Decimal128V3(1234567890), 4),
+                                            TypeIndex::Decimal128V3, 28, 4);
+    Field decimal256_field = VariantField(DecimalField<Decimal256>(Decimal256(1234567890), 5),
+                                          TypeIndex::Decimal256, 56, 5);
+
+    ColumnObject::Subcolumn decimal32_subcolumn(0, true, false);
+    decimal32_subcolumn.insert(decimal32_field);
+    ColumnObject::Subcolumn decimal64_subcolumn(0, true, false);
+    decimal64_subcolumn.insert(decimal64_field);
+    ColumnObject::Subcolumn decimal128v3_subcolumn(0, true, false);
+    decimal128v3_subcolumn.insert(decimal128v3_field);
+    ColumnObject::Subcolumn decimal256_subcolumn(0, true, false);
+    decimal256_subcolumn.insert(decimal256_field);
+
+    auto serialized_sparse_column = ColumnMap::create(
+            ColumnString::create(), ColumnString::create(), ColumnArray::ColumnOffsets::create());
+    auto& column_map = assert_cast<ColumnMap&>(*serialized_sparse_column);
+    auto& sparse_column_keys = assert_cast<ColumnString&>(column_map.get_keys());
+    auto& sparse_column_values = assert_cast<ColumnString&>(column_map.get_values());
+
+    decimal32_subcolumn.serialize_to_sparse_column(&sparse_column_keys, "decimal32",
+                                                   &sparse_column_values, 0);
+    decimal64_subcolumn.serialize_to_sparse_column(&sparse_column_keys, "decimal64",
+                                                   &sparse_column_values, 0);
+    decimal128v3_subcolumn.serialize_to_sparse_column(&sparse_column_keys, "decimal128v3",
+                                                      &sparse_column_values, 0);
+    decimal256_subcolumn.serialize_to_sparse_column(&sparse_column_keys, "decimal256",
+                                                    &sparse_column_values, 0);
+
+    auto column_object = ColumnObject::create(0);
+    const auto& [field, field_info] =
+            column_object->deserialize_from_sparse_column(&sparse_column_values, 0);
+    EXPECT_EQ(field_info.scalar_type_id, TypeIndex::Decimal32);
+    EXPECT_EQ(field_info.have_nulls, false);
+    EXPECT_EQ(field_info.need_convert, false);
+    EXPECT_EQ(field_info.num_dimensions, 0);
+    EXPECT_EQ(field_info.scale, 2);
+
+    const auto& [field2, field_info2] =
+            column_object->deserialize_from_sparse_column(&sparse_column_values, 1);
+    EXPECT_EQ(field_info2.scalar_type_id, TypeIndex::Decimal64);
+    EXPECT_EQ(field_info2.have_nulls, false);
+    EXPECT_EQ(field_info2.need_convert, false);
+    EXPECT_EQ(field_info2.num_dimensions, 0);
+    EXPECT_EQ(field_info2.scale, 3);
+
+    const auto& [field3, field_info3] =
+            column_object->deserialize_from_sparse_column(&sparse_column_values, 2);
+    EXPECT_EQ(field_info3.scalar_type_id, TypeIndex::Decimal128V3);
+    EXPECT_EQ(field_info3.have_nulls, false);
+    EXPECT_EQ(field_info3.need_convert, false);
+    EXPECT_EQ(field_info3.num_dimensions, 0);
+    EXPECT_EQ(field_info3.scale, 4);
+
+    const auto& [field4, field_info4] =
+            column_object->deserialize_from_sparse_column(&sparse_column_values, 3);
+    EXPECT_EQ(field_info4.scalar_type_id, TypeIndex::Decimal256);
+    EXPECT_EQ(field_info4.have_nulls, false);
+    EXPECT_EQ(field_info4.need_convert, false);
+    EXPECT_EQ(field_info4.num_dimensions, 0);
+    EXPECT_EQ(field_info4.scale, 5);
+
+    decimal32_subcolumn.insert(field, field_info);
+    decimal32_subcolumn.finalize();
+    EXPECT_EQ(decimal32_subcolumn.data.size(), 1);
+    EXPECT_EQ(decimal32_subcolumn.data[0]->size(), 2);
+    auto tmp_col = ColumnString::create();
+    VectorBufferWriter write_buffer(*tmp_col.get());
+    decimal32_subcolumn.serialize_text_json(0, write_buffer);
+    write_buffer.commit();
+    EXPECT_EQ(tmp_col->get_data_at(0), StringRef("12345678.9", 11));
+    decimal32_subcolumn.serialize_text_json(1, write_buffer);
+    write_buffer.commit();
+    EXPECT_EQ(tmp_col->get_data_at(1), StringRef("12345678.9", 11));
+
+    decimal64_subcolumn.insert(field2, field_info2);
+    decimal64_subcolumn.finalize();
+    EXPECT_EQ(decimal64_subcolumn.data.size(), 1);
+    EXPECT_EQ(decimal64_subcolumn.data[0]->size(), 2);
+    auto tmp_col2 = ColumnString::create();
+    VectorBufferWriter write_buffer2(*tmp_col2.get());
+    decimal64_subcolumn.serialize_text_json(0, write_buffer2);
+    write_buffer2.commit();
+    EXPECT_EQ(tmp_col2->get_data_at(0), StringRef("1234567.890", 11));
+    decimal64_subcolumn.serialize_text_json(1, write_buffer2);
+    write_buffer2.commit();
+    EXPECT_EQ(tmp_col2->get_data_at(1), StringRef("1234567.890", 11));
+
+    decimal128v3_subcolumn.insert(field3, field_info3);
+    decimal128v3_subcolumn.finalize();
+    EXPECT_EQ(decimal128v3_subcolumn.data.size(), 1);
+    EXPECT_EQ(decimal128v3_subcolumn.data[0]->size(), 2);
+    auto tmp_col3 = ColumnString::create();
+    VectorBufferWriter write_buffer3(*tmp_col3.get());
+    decimal128v3_subcolumn.serialize_text_json(0, write_buffer3);
+    write_buffer3.commit();
+    EXPECT_EQ(tmp_col3->get_data_at(0), StringRef("123456.7890", 11));
+    decimal128v3_subcolumn.serialize_text_json(1, write_buffer3);
+    write_buffer3.commit();
+    EXPECT_EQ(tmp_col3->get_data_at(1), StringRef("123456.7890", 11));
+
+    decimal256_subcolumn.insert(field4, field_info4);
+    decimal256_subcolumn.finalize();
+    EXPECT_EQ(decimal256_subcolumn.data.size(), 1);
+    EXPECT_EQ(decimal256_subcolumn.data[0]->size(), 2);
+    auto tmp_col4 = ColumnString::create();
+    VectorBufferWriter write_buffer4(*tmp_col4.get());
+    decimal256_subcolumn.serialize_text_json(0, write_buffer4);
+    write_buffer4.commit();
+    EXPECT_EQ(tmp_col4->get_data_at(0), StringRef("12345.67890", 11));
+    decimal256_subcolumn.serialize_text_json(1, write_buffer4);
+    write_buffer4.commit();
+    EXPECT_EQ(tmp_col4->get_data_at(1), StringRef("12345.67890", 11));
+
+    Field string_ipv4_field("192.168.1.1");
+    Field string_ipv6_field("2001:db8:85a3:85a2:85a1:8a2e:370:7334");
+    Field string_date_field("2021-01-01");
+    Field string_datetime_field("2021-01-01 02:09:10");
+
+    vectorized::DataTypePtr data_type_string =
+            vectorized::DataTypeFactory::instance().create_data_type(vectorized::TypeIndex::String,
+                                                                     true, 0, 0);
+    vectorized::DataTypePtr data_type_ipv4 =
+            vectorized::DataTypeFactory::instance().create_data_type(vectorized::TypeIndex::IPv4,
+                                                                     true, 0, 0);
+    vectorized::DataTypePtr data_type_ipv6 =
+            vectorized::DataTypeFactory::instance().create_data_type(vectorized::TypeIndex::IPv6,
+                                                                     true, 0, 0);
+    vectorized::DataTypePtr data_type_date =
+            vectorized::DataTypeFactory::instance().create_data_type(vectorized::TypeIndex::DateV2,
+                                                                     true, 0, 0);
+    vectorized::DataTypePtr data_type_datetime =
+            vectorized::DataTypeFactory::instance().create_data_type(
+                    vectorized::TypeIndex::DateTimeV2, true, 0, 6);
+
+    ColumnPtr column_string_ipv4 = data_type_string->create_column();
+    ColumnPtr column_string_ipv6 = data_type_string->create_column();
+    ColumnPtr column_string_date = data_type_string->create_column();
+    ColumnPtr column_string_datetime = data_type_string->create_column();
+
+    auto column_nullable_ipv4 = assert_cast<ColumnNullable&>(*column_string_ipv4->assume_mutable());
+    auto column_nullable_ipv6 = assert_cast<ColumnNullable&>(*column_string_ipv6->assume_mutable());
+    auto column_nullable_date = assert_cast<ColumnNullable&>(*column_string_date->assume_mutable());
+    auto column_nullable_datetime =
+            assert_cast<ColumnNullable&>(*column_string_datetime->assume_mutable());
+
+    column_nullable_ipv4.insert(string_ipv4_field);
+    column_nullable_ipv6.insert(string_ipv6_field);
+    column_nullable_date.insert(string_date_field);
+    column_nullable_datetime.insert(string_datetime_field);
+
+    vectorized::ColumnPtr expected_ipv4;
+    auto status = schema_util::cast_column({column_string_ipv4, data_type_string, ""},
+                                           data_type_ipv4, &expected_ipv4);
+    EXPECT_TRUE(status.ok());
+    vectorized::ColumnPtr expected_ipv6;
+    status = schema_util::cast_column({column_string_ipv6, data_type_string, ""}, data_type_ipv6,
+                                      &expected_ipv6);
+    EXPECT_TRUE(status.ok());
+    vectorized::ColumnPtr expected_date;
+    status = schema_util::cast_column({column_string_date, data_type_string, ""}, data_type_date,
+                                      &expected_date);
+    EXPECT_TRUE(status.ok());
+    vectorized::ColumnPtr expected_datetime;
+    status = schema_util::cast_column({column_string_datetime, data_type_string, ""},
+                                      data_type_datetime, &expected_datetime);
+    EXPECT_TRUE(status.ok());
+
+    ColumnObject::Subcolumn ipv4_subcolumn(expected_ipv4->assume_mutable(), data_type_ipv4, true,
+                                           false);
+    ColumnObject::Subcolumn ipv6_subcolumn(expected_ipv6->assume_mutable(), data_type_ipv6, true,
+                                           false);
+    ColumnObject::Subcolumn date_subcolumn(expected_date->assume_mutable(), data_type_date, true,
+                                           false);
+    ColumnObject::Subcolumn datetime_subcolumn(expected_datetime->assume_mutable(),
+                                               data_type_datetime, true, false);
+
+    ipv4_subcolumn.serialize_to_sparse_column(&sparse_column_keys, "ipv4", &sparse_column_values,
+                                              0);
+    ipv6_subcolumn.serialize_to_sparse_column(&sparse_column_keys, "ipv6", &sparse_column_values,
+                                              0);
+    date_subcolumn.serialize_to_sparse_column(&sparse_column_keys, "date", &sparse_column_values,
+                                              0);
+    datetime_subcolumn.serialize_to_sparse_column(&sparse_column_keys, "datetime",
+                                                  &sparse_column_values, 0);
+
+    auto column_object2 = ColumnObject::create(0);
+    const auto& [field5, field_info5] =
+            column_object2->deserialize_from_sparse_column(&sparse_column_values, 4);
+    EXPECT_EQ(field_info5.scalar_type_id, TypeIndex::IPv4);
+    EXPECT_EQ(field_info5.have_nulls, false);
+    EXPECT_EQ(field_info5.need_convert, false);
+    EXPECT_EQ(field_info5.num_dimensions, 0);
+
+    const auto& [field6, field_info6] =
+            column_object2->deserialize_from_sparse_column(&sparse_column_values, 5);
+    EXPECT_EQ(field_info6.scalar_type_id, TypeIndex::IPv6);
+    EXPECT_EQ(field_info6.have_nulls, false);
+    EXPECT_EQ(field_info6.need_convert, false);
+    EXPECT_EQ(field_info6.num_dimensions, 0);
+
+    const auto& [field7, field_info7] =
+            column_object2->deserialize_from_sparse_column(&sparse_column_values, 6);
+    EXPECT_EQ(field_info7.scalar_type_id, TypeIndex::DateV2);
+    EXPECT_EQ(field_info7.have_nulls, false);
+    EXPECT_EQ(field_info7.need_convert, false);
+    EXPECT_EQ(field_info7.num_dimensions, 0);
+
+    const auto& [field8, field_info8] =
+            column_object2->deserialize_from_sparse_column(&sparse_column_values, 7);
+    EXPECT_EQ(field_info8.scalar_type_id, TypeIndex::DateTimeV2);
+    EXPECT_EQ(field_info8.have_nulls, false);
+    EXPECT_EQ(field_info8.need_convert, false);
+    EXPECT_EQ(field_info8.num_dimensions, 0);
+    EXPECT_EQ(field_info8.scale, 6);
+
+    ipv4_subcolumn.insert(field5, field_info5);
+    ipv4_subcolumn.finalize();
+    EXPECT_EQ(ipv4_subcolumn.data.size(), 1);
+    EXPECT_EQ(ipv4_subcolumn.data[0]->size(), 2);
+    auto tmp_col5 = ColumnString::create();
+    VectorBufferWriter write_buffer5(*tmp_col5.get());
+    ipv4_subcolumn.serialize_text_json(0, write_buffer5);
+    write_buffer5.commit();
+    EXPECT_EQ(tmp_col5->get_data_at(0), StringRef("\"192.168.1.1\"", 13));
+    ipv4_subcolumn.serialize_text_json(1, write_buffer5);
+    write_buffer5.commit();
+    EXPECT_EQ(tmp_col5->get_data_at(1), StringRef("\"192.168.1.1\"", 13));
+
+    ipv6_subcolumn.insert(field6, field_info6);
+    ipv6_subcolumn.finalize();
+    EXPECT_EQ(ipv6_subcolumn.data.size(), 1);
+    EXPECT_EQ(ipv6_subcolumn.data[0]->size(), 2);
+    auto tmp_col6 = ColumnString::create();
+    VectorBufferWriter write_buffer6(*tmp_col6.get());
+    ipv6_subcolumn.serialize_text_json(0, write_buffer6);
+    write_buffer6.commit();
+    EXPECT_EQ(tmp_col6->get_data_at(0), StringRef("\"2001:db8:85a3:85a2:85a1:8a2e:370:7334\"", 39));
+    ipv6_subcolumn.serialize_text_json(1, write_buffer6);
+    write_buffer6.commit();
+    EXPECT_EQ(tmp_col6->get_data_at(1), StringRef("\"2001:db8:85a3:85a2:85a1:8a2e:370:7334\"", 39));
+
+    date_subcolumn.insert(field7, field_info7);
+    date_subcolumn.finalize();
+    EXPECT_EQ(date_subcolumn.data.size(), 1);
+    EXPECT_EQ(date_subcolumn.data[0]->size(), 2);
+    auto tmp_col7 = ColumnString::create();
+    VectorBufferWriter write_buffer7(*tmp_col7.get());
+    date_subcolumn.serialize_text_json(0, write_buffer7);
+    write_buffer7.commit();
+    EXPECT_EQ(tmp_col7->get_data_at(0), StringRef("\"2021-01-01\"", 12));
+    date_subcolumn.serialize_text_json(1, write_buffer7);
+    write_buffer7.commit();
+    EXPECT_EQ(tmp_col7->get_data_at(1), StringRef("\"2021-01-01\"", 12));
+
+    datetime_subcolumn.insert(field8, field_info8);
+    datetime_subcolumn.finalize();
+    EXPECT_EQ(datetime_subcolumn.data.size(), 1);
+    EXPECT_EQ(datetime_subcolumn.data[0]->size(), 2);
+    auto tmp_col8 = ColumnString::create();
+    VectorBufferWriter write_buffer8(*tmp_col8.get());
+    datetime_subcolumn.serialize_text_json(0, write_buffer8);
+    write_buffer8.commit();
+    EXPECT_EQ(tmp_col8->get_data_at(0), StringRef("\"2021-01-01 02:09:10\"", 21));
+    datetime_subcolumn.serialize_text_json(1, write_buffer8);
+    write_buffer8.commit();
+    EXPECT_EQ(tmp_col8->get_data_at(1), StringRef("\"2021-01-01 02:09:10\"", 21));
+
+    Field largeint_field = 1289;
+    Field true_field = 1;
+
+    vectorized::DataTypePtr data_type_int =
+            vectorized::DataTypeFactory::instance().create_data_type(vectorized::TypeIndex::Int32,
+                                                                     true, 0, 0);
+    vectorized::DataTypePtr data_type_bool =
+            vectorized::DataTypeFactory::instance().create_data_type(vectorized::TypeIndex::UInt8,
+                                                                     true, 0, 0);
+    vectorized::DataTypePtr data_type_largeint =
+            vectorized::DataTypeFactory::instance().create_data_type(vectorized::TypeIndex::Int128,
+                                                                     true, 0, 0);
+
+    ColumnPtr column_int_largeint = data_type_int->create_column();
+    ColumnPtr column_int_bool = data_type_int->create_column();
+
+    auto column_nullable_int_largeint =
+            assert_cast<ColumnNullable&>(*column_int_largeint->assume_mutable());
+    auto column_nullable_int_bool =
+            assert_cast<ColumnNullable&>(*column_int_bool->assume_mutable());
+
+    column_nullable_int_largeint.insert(largeint_field);
+    column_nullable_int_bool.insert(true_field);
+
+    vectorized::ColumnPtr expected_largeint;
+    status = schema_util::cast_column({column_int_largeint, data_type_int, ""}, data_type_largeint,
+                                      &expected_largeint);
+    EXPECT_TRUE(status.ok());
+
+    vectorized::ColumnPtr expected_bool;
+    status = schema_util::cast_column({column_int_bool, data_type_int, ""}, data_type_bool,
+                                      &expected_bool);
+    EXPECT_TRUE(status.ok());
+
+    ColumnObject::Subcolumn largeint_subcolumn(expected_largeint->assume_mutable(),
+                                               data_type_largeint, true, false);
+    ColumnObject::Subcolumn bool_subcolumn(expected_bool->assume_mutable(), data_type_bool, true,
+                                           false);
+
+    largeint_subcolumn.serialize_to_sparse_column(&sparse_column_keys, "largeint",
+                                                  &sparse_column_values, 0);
+    bool_subcolumn.serialize_to_sparse_column(&sparse_column_keys, "bool", &sparse_column_values,
+                                              0);
+
+    auto column_object3 = ColumnObject::create(0);
+    const auto& [field9, field_info9] =
+            column_object3->deserialize_from_sparse_column(&sparse_column_values, 8);
+    EXPECT_EQ(field_info9.scalar_type_id, TypeIndex::Int128);
+    EXPECT_EQ(field_info9.have_nulls, false);
+    EXPECT_EQ(field_info9.need_convert, false);
+    EXPECT_EQ(field_info9.num_dimensions, 0);
+
+    const auto& [field10, field_info10] =
+            column_object3->deserialize_from_sparse_column(&sparse_column_values, 9);
+    EXPECT_EQ(field_info10.scalar_type_id, TypeIndex::UInt8);
+    EXPECT_EQ(field_info10.have_nulls, false);
+    EXPECT_EQ(field_info10.need_convert, false);
+    EXPECT_EQ(field_info10.num_dimensions, 0);
+
+    largeint_subcolumn.insert(field9, field_info9);
+    largeint_subcolumn.finalize();
+    EXPECT_EQ(largeint_subcolumn.data.size(), 1);
+    EXPECT_EQ(largeint_subcolumn.data[0]->size(), 2);
+    auto tmp_col9 = ColumnString::create();
+    VectorBufferWriter write_buffer9(*tmp_col9.get());
+    largeint_subcolumn.serialize_text_json(0, write_buffer9);
+    write_buffer9.commit();
+    EXPECT_EQ(tmp_col9->get_data_at(0), StringRef("1289", 4));
+    largeint_subcolumn.serialize_text_json(1, write_buffer9);
+    write_buffer9.commit();
+    EXPECT_EQ(tmp_col9->get_data_at(1), StringRef("1289", 4));
+
+    bool_subcolumn.insert(field10, field_info10);
+    bool_subcolumn.finalize();
+    EXPECT_EQ(bool_subcolumn.data.size(), 1);
+    EXPECT_EQ(bool_subcolumn.data[0]->size(), 2);
+    auto tmp_col10 = ColumnString::create();
+    VectorBufferWriter write_buffer10(*tmp_col10.get());
+    bool_subcolumn.serialize_text_json(0, write_buffer10);
+    write_buffer10.commit();
+    EXPECT_EQ(tmp_col10->get_data_at(0), StringRef("1", 1));
+    bool_subcolumn.serialize_text_json(1, write_buffer10);
+    write_buffer10.commit();
+    EXPECT_EQ(tmp_col10->get_data_at(1), StringRef("1", 1));
+}
+
+TEST(ColumnVariantTest, test_array_field_contains_null_field) {
+    ColumnObject::Subcolumn subcolumn(0, true /* is_nullable */, false /* is_root */);
+    Field null_field = Field();
+    Field int_field = Field(1);
+    Field array_field = Array(2);
+    auto& array = array_field.get<Array>();
+    array[0] = int_field;
+    array[1] = null_field;
+    subcolumn.insert(array_field);
+    subcolumn.finalize();
+    EXPECT_EQ(subcolumn.data.size(), 1);
+    EXPECT_EQ(subcolumn.data[0]->size(), 1);
+
+    auto serialized_sparse_column = ColumnMap::create(
+            ColumnString::create(), ColumnString::create(), ColumnArray::ColumnOffsets::create());
+    auto& column_map = assert_cast<ColumnMap&>(*serialized_sparse_column);
+    auto& sparse_column_keys = assert_cast<ColumnString&>(column_map.get_keys());
+    auto& sparse_column_values = assert_cast<ColumnString&>(column_map.get_values());
+    subcolumn.serialize_to_sparse_column(&sparse_column_keys, "array", &sparse_column_values, 0);
+
+    auto column_object3 = ColumnObject::create(0);
+    const auto& [field, field_info] =
+            column_object3->deserialize_from_sparse_column(&sparse_column_values, 0);
+    EXPECT_EQ(field.get<Array>().size(), 2);
+    EXPECT_EQ(field.get<Array>()[0].get<Field>(), int_field);
+    EXPECT_EQ(field.get<Array>()[1].get<Field>(), null_field);
+    EXPECT_EQ(field_info.scalar_type_id, TypeIndex::Int8);
+}
+
+} // namespace doris::vectorized
diff --git a/be/test/vec/columns/column_variant_test.cpp b/be/test/vec/columns/column_variant_test.cpp
index d1d7845..01eda5b 100644
--- a/be/test/vec/columns/column_variant_test.cpp
+++ b/be/test/vec/columns/column_variant_test.cpp
@@ -3492,7 +3492,8 @@
             memcpy(binary_data.data(), &str_size, sizeof(size_t));
             memcpy(binary_data.data() + sizeof(size_t), test_str.data(), test_str.size());
             const char* data = binary_data.data();
-            parse_binary_from_sparse_column(TypeIndex::String, data, res, field_info);
+            parse_binary_from_sparse_column(FieldType::OLAP_FIELD_TYPE_STRING, data, res,
+                                            field_info);
             EXPECT_EQ(res.get<String>(), "test_data");
         }
 
@@ -3500,28 +3501,31 @@
         {
             Int8 int8_val = 42;
             const char* data = reinterpret_cast<const char*>(&int8_val);
-            parse_binary_from_sparse_column(TypeIndex::Int8, data, res, field_info);
+            parse_binary_from_sparse_column(FieldType::OLAP_FIELD_TYPE_TINYINT, data, res,
+                                            field_info);
             EXPECT_EQ(res.get<Int8>(), 42);
         }
 
         {
             Int16 int16_val = 12345;
             const char* data = reinterpret_cast<const char*>(&int16_val);
-            parse_binary_from_sparse_column(TypeIndex::Int16, data, res, field_info);
+            parse_binary_from_sparse_column(FieldType::OLAP_FIELD_TYPE_SMALLINT, data, res,
+                                            field_info);
             EXPECT_EQ(res.get<Int16>(), 12345);
         }
 
         {
             Int32 int32_val = 123456789;
             const char* data = reinterpret_cast<const char*>(&int32_val);
-            parse_binary_from_sparse_column(TypeIndex::Int32, data, res, field_info);
+            parse_binary_from_sparse_column(FieldType::OLAP_FIELD_TYPE_INT, data, res, field_info);
             EXPECT_EQ(res.get<Int32>(), 123456789);
         }
 
         {
             Int64 int64_val = 1234567890123456789LL;
             const char* data = reinterpret_cast<const char*>(&int64_val);
-            parse_binary_from_sparse_column(TypeIndex::Int64, data, res, field_info);
+            parse_binary_from_sparse_column(FieldType::OLAP_FIELD_TYPE_BIGINT, data, res,
+                                            field_info);
             EXPECT_EQ(res.get<Int64>(), 1234567890123456789LL);
         }
 
@@ -3529,14 +3533,16 @@
         {
             Float32 float32_val = 3.1415901f;
             const char* data = reinterpret_cast<const char*>(&float32_val);
-            parse_binary_from_sparse_column(TypeIndex::Float32, data, res, field_info);
+            parse_binary_from_sparse_column(FieldType::OLAP_FIELD_TYPE_FLOAT, data, res,
+                                            field_info);
             EXPECT_FLOAT_EQ(res.get<Float32>(), 0);
         }
 
         {
             Float64 float64_val = 3.141592653589793;
             const char* data = reinterpret_cast<const char*>(&float64_val);
-            parse_binary_from_sparse_column(TypeIndex::Float64, data, res, field_info);
+            parse_binary_from_sparse_column(FieldType::OLAP_FIELD_TYPE_DOUBLE, data, res,
+                                            field_info);
             EXPECT_DOUBLE_EQ(res.get<Float64>(), 3.141592653589793);
         }
 
@@ -3549,14 +3555,8 @@
             memcpy(binary_data.data(), &json_size, sizeof(size_t));
             memcpy(binary_data.data() + sizeof(size_t), json_str.data(), json_str.size());
             const char* data = binary_data.data();
-            parse_binary_from_sparse_column(TypeIndex::JSONB, data, res, field_info);
-        }
-
-        // Test Nothing type
-        {
-            const char* data = nullptr;
-            parse_binary_from_sparse_column(TypeIndex::Nothing, data, res, field_info);
-            EXPECT_TRUE(res.is_null());
+            parse_binary_from_sparse_column(FieldType::OLAP_FIELD_TYPE_JSONB, data, res,
+                                            field_info);
         }
 
         // Test Array type
@@ -3571,48 +3571,24 @@
             data_ptr += sizeof(size_t);
 
             // Write first element (Int32)
-            *data_ptr++ = static_cast<uint8_t>(TypeIndex::Int32);
+            *data_ptr++ = static_cast<uint8_t>(FieldType::OLAP_FIELD_TYPE_INT);
             Int32 val1 = 42;
             memcpy(data_ptr, &val1, sizeof(Int32));
             data_ptr += sizeof(Int32);
 
             // Write second element (Int32)
-            *data_ptr++ = static_cast<uint8_t>(TypeIndex::Int32);
+            *data_ptr++ = static_cast<uint8_t>(FieldType::OLAP_FIELD_TYPE_INT);
             Int32 val2 = 43;
             memcpy(data_ptr, &val2, sizeof(Int32));
 
             const char* data = binary_data.data();
-            parse_binary_from_sparse_column(TypeIndex::Array, data, res, field_info);
+            parse_binary_from_sparse_column(FieldType::OLAP_FIELD_TYPE_ARRAY, data, res,
+                                            field_info);
             const Array& array = res.get<Array>();
             EXPECT_EQ(array.size(), 2);
             EXPECT_EQ(array[0].get<Int32>(), 42);
             EXPECT_EQ(array[1].get<Int32>(), 43);
         }
-
-        // Test unsupported types - these should throw exceptions
-        EXPECT_ANY_THROW(
-                parse_binary_from_sparse_column(TypeIndex::UInt8, nullptr, res, field_info));
-        EXPECT_ANY_THROW(
-                parse_binary_from_sparse_column(TypeIndex::UInt16, nullptr, res, field_info));
-        EXPECT_ANY_THROW(
-                parse_binary_from_sparse_column(TypeIndex::UInt32, nullptr, res, field_info));
-        EXPECT_ANY_THROW(
-                parse_binary_from_sparse_column(TypeIndex::UInt64, nullptr, res, field_info));
-        EXPECT_ANY_THROW(
-                parse_binary_from_sparse_column(TypeIndex::Date, nullptr, res, field_info));
-        EXPECT_ANY_THROW(
-                parse_binary_from_sparse_column(TypeIndex::DateTime, nullptr, res, field_info));
-        EXPECT_ANY_THROW(
-                parse_binary_from_sparse_column(TypeIndex::Decimal32, nullptr, res, field_info));
-        EXPECT_ANY_THROW(
-                parse_binary_from_sparse_column(TypeIndex::Decimal64, nullptr, res, field_info));
-        EXPECT_ANY_THROW(
-                parse_binary_from_sparse_column(TypeIndex::Decimal128V2, nullptr, res, field_info));
-        EXPECT_ANY_THROW(
-                parse_binary_from_sparse_column(TypeIndex::Tuple, nullptr, res, field_info));
-        EXPECT_ANY_THROW(parse_binary_from_sparse_column(TypeIndex::Map, nullptr, res, field_info));
-        EXPECT_ANY_THROW(
-                parse_binary_from_sparse_column(TypeIndex::VARIANT, nullptr, res, field_info));
     }
 
     // Test add_sub_column
diff --git a/be/test/vec/common/schema_util_rowset_test.cpp b/be/test/vec/common/schema_util_rowset_test.cpp
index a7a604c..6833fc8 100644
--- a/be/test/vec/common/schema_util_rowset_test.cpp
+++ b/be/test/vec/common/schema_util_rowset_test.cpp
@@ -535,3 +535,124 @@
     // write null data
     EXPECT_TRUE(variant_subcolumn_writer->write_data().ok());
 }
+
+TEST_F(SchemaUtilRowsetTest, typed_path_to_sparse_column) {
+    all_path_stats.clear();
+    // 1.create tablet schema
+    TabletSchemaPB schema_pb;
+    construct_column(schema_pb.add_column(), 0, "INT", "key", true);
+    construct_column(schema_pb.add_column(), 1, "VARIANT", "v1");
+    construct_column(schema_pb.add_column(), 2, "STRING", "v2");
+    construct_column(schema_pb.add_column(), 3, "VARIANT", "v3");
+    construct_column(schema_pb.add_column(), 4, "INT", "v4");
+    TabletSchemaSPtr tablet_schema = std::make_shared<TabletSchema>();
+    tablet_schema->init_from_pb(schema_pb);
+
+    // 2. create tablet
+    TabletMetaSharedPtr tablet_meta(new TabletMeta(tablet_schema));
+    _tablet = std::make_shared<Tablet>(*_engine_ref, tablet_meta, _data_dir.get());
+    EXPECT_TRUE(_tablet->init().ok());
+    EXPECT_TRUE(io::global_local_filesystem()->create_directory(_tablet->tablet_path()).ok());
+
+    // 3. create rowset
+    std::vector<RowsetSharedPtr> rowsets;
+    for (int i = 0; i < 5; i++) {
+        const auto& res = RowsetFactory::create_rowset_writer(
+                *_engine_ref,
+                rowset_writer_context(_data_dir, tablet_schema, _tablet->tablet_path()), false);
+        EXPECT_TRUE(res.has_value()) << res.error();
+        const auto& rowset_writer = res.value();
+        auto rowset = create_rowset(rowset_writer, tablet_schema);
+        EXPECT_TRUE(_tablet->add_rowset(rowset).ok());
+        rowsets.push_back(rowset);
+    }
+
+    std::unordered_map<int32_t, schema_util::PathToNoneNullValues> path_stats;
+    for (const auto& rowset : rowsets) {
+        auto st = schema_util::aggregate_path_to_stats(rowset, &path_stats);
+        EXPECT_TRUE(st.ok()) << st.msg();
+    }
+
+    for (const auto& [uid, path_stats] : path_stats) {
+        for (const auto& [path, size] : path_stats) {
+            EXPECT_EQ(all_path_stats[uid][path], size);
+        }
+    }
+
+    // 4. get compaction schema
+    TabletSchemaSPtr compaction_schema = tablet_schema;
+    auto st = schema_util::get_compaction_schema(rowsets, compaction_schema);
+
+    for (const auto& column : compaction_schema->columns()) {
+        if (column->is_extracted_column()) {
+            EXPECT_FALSE(column->is_variant_type());
+        }
+    }
+    EXPECT_TRUE(st.ok()) << st.msg();
+
+    // 5. check compaction schema
+    std::unordered_map<int32_t, std::vector<std::string>> compaction_schema_map;
+    for (const auto& column : compaction_schema->columns()) {
+        if (column->parent_unique_id() > 0) {
+            compaction_schema_map[column->parent_unique_id()].push_back(column->name());
+        }
+    }
+    for (auto& [uid, paths] : compaction_schema_map) {
+        EXPECT_EQ(paths.size(), 4);
+        std::sort(paths.begin(), paths.end());
+        EXPECT_TRUE(paths[0].ends_with("__DORIS_VARIANT_SPARSE__"));
+        EXPECT_TRUE(paths[1].ends_with("key0"));
+        EXPECT_TRUE(paths[2].ends_with("key1"));
+        EXPECT_TRUE(paths[3].ends_with("key2"));
+    }
+
+    // 6.compaction for output rs
+    // create input rowset reader
+    vector<RowsetReaderSharedPtr> input_rs_readers;
+    for (auto& rowset : rowsets) {
+        RowsetReaderSharedPtr rs_reader;
+        ASSERT_TRUE(rowset->create_reader(&rs_reader).ok());
+        input_rs_readers.push_back(std::move(rs_reader));
+    }
+
+    auto sc = schema_util::calculate_variant_extended_schema(rowsets, tablet_schema);
+    std::cout << sc->columns().size() << std::endl;
+
+    // create output rowset writer
+    auto create_rowset_writer_context = [this](TabletSchemaSPtr tablet_schema,
+                                               const SegmentsOverlapPB& overlap,
+                                               uint32_t max_rows_per_segment, Version version) {
+        static int64_t inc_id = 1000;
+        RowsetWriterContext rowset_writer_context;
+        RowsetId rowset_id;
+        rowset_id.init(inc_id);
+        rowset_writer_context.rowset_id = rowset_id;
+        rowset_writer_context.rowset_type = BETA_ROWSET;
+        rowset_writer_context.rowset_state = VISIBLE;
+        rowset_writer_context.tablet_schema = tablet_schema;
+        rowset_writer_context.tablet_path = _absolute_dir + "/../";
+        rowset_writer_context.version = version;
+        rowset_writer_context.segments_overlap = overlap;
+        rowset_writer_context.max_rows_per_segment = max_rows_per_segment;
+        inc_id++;
+        return rowset_writer_context;
+    };
+    auto writer_context = create_rowset_writer_context(tablet_schema, NONOVERLAPPING, 3456,
+                                                       {0, rowsets.back()->end_version()});
+    auto res_ = RowsetFactory::create_rowset_writer(*_engine_ref, writer_context, true);
+    ASSERT_TRUE(res_.has_value()) << res_.error();
+    auto output_rs_writer = std::move(res_).value();
+    Merger::Statistics stats;
+    RowIdConversion rowid_conversion;
+    stats.rowid_conversion = &rowid_conversion;
+    auto s = Merger::vertical_merge_rowsets(_tablet, ReaderType::READER_BASE_COMPACTION,
+                                            *tablet_schema, input_rs_readers,
+                                            output_rs_writer.get(), 100, 5, &stats);
+    ASSERT_TRUE(s.ok()) << s;
+    RowsetSharedPtr out_rowset;
+    EXPECT_EQ(Status::OK(), output_rs_writer->build(out_rowset));
+    ASSERT_TRUE(out_rowset);
+
+    // 7. check output rowset
+    EXPECT_TRUE(schema_util::check_path_stats(rowsets, out_rowset, _tablet).ok());
+}
diff --git a/be/test/vec/common/schema_util_test.cpp b/be/test/vec/common/schema_util_test.cpp
index 9214daa..1835d03 100644
--- a/be/test/vec/common/schema_util_test.cpp
+++ b/be/test/vec/common/schema_util_test.cpp
@@ -20,15 +20,17 @@
 #include <gmock/gmock-more-matchers.h>
 #include <gtest/gtest.h>
 
+#include "olap/rowset/beta_rowset.h"
 #include "olap/rowset/rowset_fwd.h"
 #include "olap/rowset/segment_v2/variant/variant_column_writer_impl.h"
 #include "testutil/variant_util.h"
 #include "vec/columns/column_nothing.h"
 #include "vec/columns/column_object.h"
-#include "vec/common/schema_util.cpp"
+#include "vec/common/schema_util.h"
 #include "vec/data_types/data_type_array.h"
 #include "vec/data_types/data_type_date_time.h"
 #include "vec/data_types/data_type_decimal.h"
+#include "vec/data_types/data_type_ipv4.h"
 #include "vec/data_types/data_type_nothing.h"
 #include "vec/data_types/data_type_time_v2.h"
 #include "vec/data_types/data_type_variant.h"
@@ -1791,3 +1793,99 @@
         EXPECT_EQ(column->type(), FieldType::OLAP_FIELD_TYPE_VARIANT);
     }
 }
+
+TEST_F(SchemaUtilTest, get_compaction_subcolumns_advanced) {
+    TabletColumn variant;
+    variant.set_unique_id(30);
+    variant.set_variant_max_subcolumns_count(3);
+    variant.set_aggregation_method(FieldAggregationMethod::OLAP_FIELD_AGGREGATION_NONE);
+    variant.set_variant_enable_typed_paths_to_sparse(true);
+    TabletColumn subcolumn;
+    subcolumn.set_name("c");
+    subcolumn.set_type(FieldType::OLAP_FIELD_TYPE_DATEV2);
+    variant.add_sub_column(subcolumn);
+    TabletColumn subcolumn2;
+    subcolumn2.set_name("d");
+    subcolumn2.set_type(FieldType::OLAP_FIELD_TYPE_DATEV2);
+    variant.add_sub_column(subcolumn2);
+
+    TabletSchemaSPtr schema = std::make_shared<TabletSchema>();
+    schema->append_column(variant);
+
+    TabletColumnPtr parent_column = std::make_shared<TabletColumn>(variant);
+
+    TabletSchema::PathsSetInfo paths_set_info;
+    paths_set_info.sub_path_set.insert("a");
+    paths_set_info.sub_path_set.insert("b");
+    paths_set_info.sub_path_set.insert("c");
+    paths_set_info.sub_path_set.insert("d");
+    doris::vectorized::schema_util::PathToDataTypes path_to_data_types;
+    std::unordered_set<std::string> sparse_paths;
+    TabletSchemaSPtr output_schema = std::make_shared<TabletSchema>();
+
+    schema_util::get_compaction_subcolumns(paths_set_info, parent_column, schema,
+                                           path_to_data_types, sparse_paths, output_schema);
+    EXPECT_EQ(output_schema->num_columns(), 4);
+    for (const auto& column : output_schema->columns()) {
+        if (column->name().ends_with("a") || column->name().ends_with("b")) {
+            EXPECT_EQ(column->type(), FieldType::OLAP_FIELD_TYPE_VARIANT);
+        } else if (column->name().ends_with("c") || column->name().ends_with("d")) {
+            EXPECT_EQ(column->type(), FieldType::OLAP_FIELD_TYPE_DATEV2);
+        }
+    }
+
+    output_schema = std::make_shared<TabletSchema>();
+    path_to_data_types.clear();
+    path_to_data_types[vectorized::PathInData("a")] = {
+            std::make_shared<vectorized::DataTypeInt32>()};
+    path_to_data_types[vectorized::PathInData("b")] = {
+            std::make_shared<vectorized::DataTypeString>()};
+    schema_util::get_compaction_subcolumns(paths_set_info, parent_column, schema,
+                                           path_to_data_types, sparse_paths, output_schema);
+    EXPECT_EQ(output_schema->num_columns(), 4);
+    bool found_int = false, found_str = false;
+    for (const auto& column : output_schema->columns()) {
+        if (column->name().ends_with("a")) {
+            EXPECT_EQ(column->type(), FieldType::OLAP_FIELD_TYPE_INT);
+            found_int = true;
+        } else if (column->name().ends_with("b")) {
+            EXPECT_EQ(column->type(), FieldType::OLAP_FIELD_TYPE_STRING);
+            found_str = true;
+        } else if (column->name().ends_with("c") || column->name().ends_with("d")) {
+            EXPECT_EQ(column->type(), FieldType::OLAP_FIELD_TYPE_DATEV2);
+        }
+    }
+    EXPECT_TRUE(found_int && found_str);
+
+    output_schema = std::make_shared<TabletSchema>();
+    sparse_paths.insert("a");
+    schema_util::get_compaction_subcolumns(paths_set_info, parent_column, schema,
+                                           path_to_data_types, sparse_paths, output_schema);
+    EXPECT_EQ(output_schema->num_columns(), 4);
+    for (const auto& column : output_schema->columns()) {
+        if (column->name().ends_with("a")) {
+            EXPECT_EQ(column->type(), FieldType::OLAP_FIELD_TYPE_VARIANT);
+        } else if (column->name().ends_with("b")) {
+            EXPECT_EQ(column->type(), FieldType::OLAP_FIELD_TYPE_STRING);
+        } else if (column->name().ends_with("c") || column->name().ends_with("d")) {
+            EXPECT_EQ(column->type(), FieldType::OLAP_FIELD_TYPE_DATEV2);
+        }
+    }
+
+    output_schema = std::make_shared<TabletSchema>();
+    sparse_paths.clear();
+
+    for (int i = 0; i < config::variant_max_sparse_column_statistics_size + 1; ++i) {
+        sparse_paths.insert("dummy" + std::to_string(i));
+    }
+    schema_util::get_compaction_subcolumns(paths_set_info, parent_column, schema,
+                                           path_to_data_types, sparse_paths, output_schema);
+    EXPECT_EQ(output_schema->num_columns(), 4);
+    for (const auto& column : output_schema->columns()) {
+        if (column->name().ends_with("a") || column->name().ends_with("b")) {
+            EXPECT_EQ(column->type(), FieldType::OLAP_FIELD_TYPE_VARIANT);
+        } else if (column->name().ends_with("c") || column->name().ends_with("d")) {
+            EXPECT_EQ(column->type(), FieldType::OLAP_FIELD_TYPE_DATEV2);
+        }
+    }
+}
diff --git a/fe/fe-common/src/main/java/org/apache/doris/catalog/ScalarType.java b/fe/fe-common/src/main/java/org/apache/doris/catalog/ScalarType.java
index 51f8f9c..7bd49d2 100644
--- a/fe/fe-common/src/main/java/org/apache/doris/catalog/ScalarType.java
+++ b/fe/fe-common/src/main/java/org/apache/doris/catalog/ScalarType.java
@@ -1213,4 +1213,18 @@
         result = 31 * result + scale;
         return result;
     }
+
+    public int getVariantMaxSubcolumnsCount() {
+        if (this instanceof VariantType) {
+            return ((VariantType) this).getVariantMaxSubcolumnsCount();
+        }
+        return 0;
+    }
+
+    public boolean getVariantEnableTypedPathsToSparse() {
+        if (this instanceof VariantType) {
+            return ((VariantType) this).getEnableTypedPathsToSparse();
+        }
+        return false;
+    }
 }
diff --git a/fe/fe-common/src/main/java/org/apache/doris/catalog/VariantField.java b/fe/fe-common/src/main/java/org/apache/doris/catalog/VariantField.java
index f300916..52d5e60 100644
--- a/fe/fe-common/src/main/java/org/apache/doris/catalog/VariantField.java
+++ b/fe/fe-common/src/main/java/org/apache/doris/catalog/VariantField.java
@@ -67,15 +67,15 @@
     }
 
     public String toSql(int depth) {
-        String typeSql;
-        if (depth < Type.MAX_NESTING_DEPTH) {
-            typeSql = type.toSql(depth + 1);
-        } else {
-            typeSql = "...";
+        StringBuilder sb = new StringBuilder();
+        if (patternType == TPatternType.MATCH_NAME) {
+            sb.append(patternType.toString()).append(" ");
         }
-        StringBuilder sb = new StringBuilder(patternType.toString() + " '");
-        if (type != null) {
-            sb.append(pattern).append("':").append(typeSql);
+
+        sb.append("'").append(pattern).append("'");
+        sb.append(":").append(type.toSql(depth + 1));
+        if (!comment.isEmpty()) {
+            sb.append(" COMMENT '").append(comment).append("'");
         }
         return sb.toString();
     }
diff --git a/fe/fe-common/src/main/java/org/apache/doris/catalog/VariantType.java b/fe/fe-common/src/main/java/org/apache/doris/catalog/VariantType.java
index a173cf8..29342d7 100644
--- a/fe/fe-common/src/main/java/org/apache/doris/catalog/VariantType.java
+++ b/fe/fe-common/src/main/java/org/apache/doris/catalog/VariantType.java
@@ -19,7 +19,6 @@
 
 import org.apache.doris.thrift.TTypeDesc;
 
-import com.google.common.base.Joiner;
 import com.google.common.base.Preconditions;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
@@ -29,7 +28,9 @@
 
 import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.Map;
 import java.util.Objects;
+import java.util.stream.Collectors;
 
 public class VariantType extends ScalarType {
     private static final Logger LOG = LogManager.getLogger(VariantType.class);
@@ -40,11 +41,18 @@
     private final ArrayList<VariantField> predefinedFields;
 
     @SerializedName(value = "variantMaxSubcolumnsCount")
-    private int variantMaxSubcolumnsCount;
+    private int variantMaxSubcolumnsCount = 0;
+
+    @SerializedName(value = "enableTypedPathsToSparse")
+    private boolean enableTypedPathsToSparse = false;
+
+    private Map<String, String> properties = Maps.newHashMap();
 
     public VariantType() {
         super(PrimitiveType.VARIANT);
         this.predefinedFields = Lists.newArrayList();
+        this.variantMaxSubcolumnsCount = 0;
+        this.enableTypedPathsToSparse = false;
     }
 
     public VariantType(ArrayList<VariantField> fields) {
@@ -56,19 +64,67 @@
         }
     }
 
+    public VariantType(Map<String, String> properties) {
+        super(PrimitiveType.VARIANT);
+        this.predefinedFields = Lists.newArrayList();
+        this.properties = properties;
+    }
+
+    public VariantType(ArrayList<VariantField> fields, Map<String, String> properties) {
+        super(PrimitiveType.VARIANT);
+        Preconditions.checkNotNull(fields);
+        this.predefinedFields = fields;
+        for (VariantField predefinedField : this.predefinedFields) {
+            fieldMap.put(predefinedField.getPattern(), predefinedField);
+        }
+        this.properties = properties;
+    }
+
+    public VariantType(ArrayList<VariantField> fields, int variantMaxSubcolumnsCount,
+                                                        boolean enableTypedPathsToSparse) {
+        super(PrimitiveType.VARIANT);
+        Preconditions.checkNotNull(fields);
+        this.predefinedFields = fields;
+        for (VariantField predefinedField : this.predefinedFields) {
+            fieldMap.put(predefinedField.getPattern(), predefinedField);
+        }
+        this.variantMaxSubcolumnsCount = variantMaxSubcolumnsCount;
+        this.enableTypedPathsToSparse = enableTypedPathsToSparse;
+    }
+
     @Override
     public String toSql(int depth) {
-        if (predefinedFields.isEmpty()) {
+        if (predefinedFields.isEmpty() && variantMaxSubcolumnsCount == 0) {
             return "variant";
         }
-        if (depth >= MAX_NESTING_DEPTH) {
-            return "variant<...>";
+        StringBuilder sb = new StringBuilder();
+        sb.append("variant");
+        sb.append("<");
+        if (!predefinedFields.isEmpty()) {
+            sb.append(predefinedFields.stream()
+                                .map(variantField -> variantField.toSql(depth)).collect(Collectors.joining(",")));
+            if (variantMaxSubcolumnsCount == 0 && !enableTypedPathsToSparse) {
+                sb.append(">");
+                return sb.toString();
+            } else {
+                sb.append(",");
+            }
         }
-        ArrayList<String> fieldsSql = Lists.newArrayList();
-        for (VariantField f : predefinedFields) {
-            fieldsSql.add(f.toSql(depth + 1));
+
+        sb.append("PROPERTIES (");
+        if (variantMaxSubcolumnsCount != 0) {
+            sb.append("\"variant_max_subcolumns_count\" = \"")
+                                    .append(String.valueOf(variantMaxSubcolumnsCount)).append("\"");
         }
-        return String.format("variant<%s>", Joiner.on(",").join(fieldsSql));
+        if (variantMaxSubcolumnsCount != 0 && enableTypedPathsToSparse) {
+            sb.append(",");
+        }
+        if (enableTypedPathsToSparse) {
+            sb.append("\"variant_enable_typed_paths_to_sparse\" = \"")
+                                    .append(String.valueOf(enableTypedPathsToSparse)).append("\"");
+        }
+        sb.append(")>");
+        return sb.toString();
     }
 
     public ArrayList<VariantField> getPredefinedFields() {
@@ -120,4 +176,16 @@
     public int getVariantMaxSubcolumnsCount() {
         return variantMaxSubcolumnsCount;
     }
+
+    public boolean getEnableTypedPathsToSparse() {
+        return enableTypedPathsToSparse;
+    }
+
+    public Map<String, String> getProperties() {
+        return properties;
+    }
+
+    public void setEnableTypedPathsToSparse(boolean enableTypedPathsToSparse) {
+        this.enableTypedPathsToSparse = enableTypedPathsToSparse;
+    }
 }
diff --git a/fe/fe-core/src/main/antlr4/org/apache/doris/nereids/DorisParser.g4 b/fe/fe-core/src/main/antlr4/org/apache/doris/nereids/DorisParser.g4
index db8843a..bf34640 100644
--- a/fe/fe-core/src/main/antlr4/org/apache/doris/nereids/DorisParser.g4
+++ b/fe/fe-core/src/main/antlr4/org/apache/doris/nereids/DorisParser.g4
@@ -1707,7 +1707,7 @@
     : complex=ARRAY LT dataType GT                                  #complexDataType
     | complex=MAP LT dataType COMMA dataType GT                     #complexDataType
     | complex=STRUCT LT complexColTypeList GT                       #complexDataType
-    | VARIANT LT variantSubColTypeList GT                           #variantPredefinedFields
+    | complex=variantTypeDefinitions                                #variantPredefinedFields
     | AGG_STATE LT functionNameIdentifier
         LEFT_PAREN dataTypes+=dataTypeWithNullable
         (COMMA dataTypes+=dataTypeWithNullable)* RIGHT_PAREN GT     #aggStateDataType
@@ -1746,7 +1746,6 @@
     | type=DECIMALV3
     | type=IPV4
     | type=IPV6
-    | type=VARIANT
     | type=ALL
     ;
 
@@ -1758,6 +1757,13 @@
     : identifier COLON dataType commentSpec?
     ;
 
+variantTypeDefinitions
+    : VARIANT LT variantSubColTypeList COMMA properties=propertyClause GT  #variantWithFieldsAndProps
+    | VARIANT LT variantSubColTypeList GT                                  #variantWithOnlyFields
+    | VARIANT LT properties=propertyClause GT                              #variantWithOnlyProps
+    | VARIANT                                                              #variant
+    ;
+
 variantSubColTypeList
     : variantSubColType (COMMA variantSubColType)*
     ;
diff --git a/fe/fe-core/src/main/cup/sql_parser.cup b/fe/fe-core/src/main/cup/sql_parser.cup
index 830f0e4..6d61c85 100644
--- a/fe/fe-core/src/main/cup/sql_parser.cup
+++ b/fe/fe-core/src/main/cup/sql_parser.cup
@@ -853,7 +853,7 @@
 nonterminal List<WorkloadActionMeta> workload_policy_action_list, opt_actions, actions;
 
 nonterminal Map<String, String> key_value_map, opt_key_value_map, opt_key_value_map_in_paren, opt_properties,
-            opt_ext_properties, opt_enable_feature_properties, properties;
+            opt_ext_properties, opt_enable_feature_properties, properties, type_opt_properties;
 nonterminal ColumnDef column_definition;
 nonterminal IndexDef index_definition;
 nonterminal ArrayList<ColumnDef> column_definition_list;
@@ -3135,6 +3135,13 @@
     :}
     ;
 
+type_opt_properties ::=
+      COMMA opt_properties:type_properties
+      {: RESULT = type_properties; :}
+    | /* empty */
+      {: RESULT = Maps.newHashMap(); :}
+    ;
+
 opt_properties ::=
     {:
     RESULT = Maps.newHashMap();
@@ -5273,8 +5280,10 @@
   {: RESULT = new MapType(key_type,value_type); :}
   | KW_STRUCT LESSTHAN struct_field_list:fields GREATERTHAN
   {: RESULT = new StructType(fields); :}
-  | KW_VARIANT LESSTHAN variant_field_list:fields GREATERTHAN
-  {: RESULT = new VariantType(fields); :}
+  | KW_VARIANT LESSTHAN variant_field_list:fields type_opt_properties:prop GREATERTHAN
+  {: RESULT = new VariantType(fields, prop); :}
+  | KW_VARIANT LESSTHAN properties:prop GREATERTHAN
+  {: RESULT = new VariantType(prop); :}
   | KW_CHAR LPAREN INTEGER_LITERAL:len RPAREN
   {: ScalarType type = ScalarType.createCharType(len.intValue());
      RESULT = type;
diff --git a/fe/fe-core/src/main/java/org/apache/doris/alter/SchemaChangeHandler.java b/fe/fe-core/src/main/java/org/apache/doris/alter/SchemaChangeHandler.java
index 024e7e1..140a0b5 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/alter/SchemaChangeHandler.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/alter/SchemaChangeHandler.java
@@ -66,7 +66,6 @@
 import org.apache.doris.catalog.Tablet;
 import org.apache.doris.catalog.TabletMeta;
 import org.apache.doris.catalog.Type;
-import org.apache.doris.catalog.VariantType;
 import org.apache.doris.common.AnalysisException;
 import org.apache.doris.common.Config;
 import org.apache.doris.common.DdlException;
@@ -688,8 +687,9 @@
             if (modColumn.getChildren().size() > 0 || oriColumn.getChildren().size() > 0) {
                 throw new DdlException("Can not modify variant column with children");
             }
-            VariantType scType = (VariantType) type;
-            scType.setVariantMaxSubcolumnsCount(olapTable.getVariantMaxSubcolumnsCount());
+            if (modColumn.getVariantMaxSubcolumnsCount() != oriColumn.getVariantMaxSubcolumnsCount()) {
+                throw new DdlException("Can not modify variant column property variant max subcolumns count");
+            }
         }
 
         if (!modColumn.equals(oriColumn) && oriColumn.isAutoInc() != modColumn.isAutoInc()) {
@@ -1037,11 +1037,6 @@
             lightSchemaChange = false;
         }
 
-        Type type = newColumn.getType();
-        if (type.isVariantType()) {
-            VariantType scType = (VariantType) type;
-            scType.setVariantMaxSubcolumnsCount(olapTable.getVariantMaxSubcolumnsCount());
-        }
         // check if the new column already exist in base schema.
         // do not support adding new column which already exist in base schema.
         List<Column> baseSchema = olapTable.getBaseSchema(true);
@@ -1074,6 +1069,16 @@
             throw new DdlException("Not supporting alter table add generated columns.");
         }
 
+        if (newColumn.getType().isVariantType() && olapTable.hasVariantColumns()) {
+            Pair<Integer, Integer> res = olapTable.getMinMaxVariantSubcolumnsCount();
+            int currentCount = newColumn.getVariantMaxSubcolumnsCount();
+            if ((currentCount == 0 && (res.key() != 0 || res.value() != 0))
+                                    || (currentCount > 0 && (res.key() == 0 && res.value() == 0))) {
+                throw new DdlException("The variant_max_subcolumns_count must either be 0 in all columns"
+                        + " or greater than 0 in all columns");
+            }
+        }
+
         /*
          * add new column to indexes.
          * UNIQUE:
@@ -2778,7 +2783,7 @@
                             .compareTo(TInvertedIndexFileStorageFormat.V2) >= 0) {
                     String columnName = indexDef.getColumns().get(0);
                     Column column = olapTable.getColumn(columnName);
-                    if (column != null && column.getType().isStringType()) {
+                    if (column != null && (column.getType().isStringType() || column.getType().isVariantType())) {
                         boolean isExistingIndexAnalyzer = index.isAnalyzedInvertedIndex();
                         boolean isNewIndexAnalyzer = indexDef.isAnalyzedInvertedIndex();
                         if (isExistingIndexAnalyzer == isNewIndexAnalyzer) {
diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/InvertedIndexUtil.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/InvertedIndexUtil.java
index c1c8a90..149e1e0 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/InvertedIndexUtil.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/InvertedIndexUtil.java
@@ -83,6 +83,16 @@
         return fieldPattern != null ? fieldPattern : "";
     }
 
+    public static boolean getInvertedIndexSupportPhrase(Map<String, String> properties) {
+        String supportPhrase = properties == null ? null : properties.get(INVERTED_INDEX_SUPPORT_PHRASE_KEY);
+        return supportPhrase != null ? Boolean.parseBoolean(supportPhrase) : true;
+    }
+
+    public static String getCustomAnalyzer(Map<String, String> properties) {
+        String customAnalyzer = properties == null ? null : properties.get(INVERTED_INDEX_CUSTOM_ANALYZER_KEY);
+        return customAnalyzer != null ? customAnalyzer : "";
+    }
+
     public static String getInvertedIndexParserMode(Map<String, String> properties) {
         String mode = properties == null ? null : properties.get(INVERTED_INDEX_PARSER_MODE_KEY);
         // default is "none" if not set
diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/MVColumnItem.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/MVColumnItem.java
index ee21e0d..d915d74 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/MVColumnItem.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/MVColumnItem.java
@@ -25,7 +25,6 @@
 import org.apache.doris.catalog.ScalarType;
 import org.apache.doris.catalog.Table;
 import org.apache.doris.catalog.Type;
-import org.apache.doris.catalog.VariantType;
 import org.apache.doris.common.AnalysisException;
 import org.apache.doris.common.DdlException;
 
@@ -195,12 +194,6 @@
                 result.setIsAllowNull(defineExpr.isNullable());
             }
         }
-        if (result.getType().isVariantType()) {
-            VariantType variantType = (VariantType) this.getType();
-            if (variantType.getVariantMaxSubcolumnsCount() != olapTable.getVariantMaxSubcolumnsCount()) {
-                throw new DdlException("MVColumnItem variantType is error");
-            }
-        }
         result.setName(name);
         result.setAggregationType(aggregationType, isAggregationTypeImplicit);
         result.setDefineExpr(defineExpr);
diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/TypeDef.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/TypeDef.java
index 9bde8ed..f77fc72 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/TypeDef.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/TypeDef.java
@@ -27,7 +27,10 @@
 import org.apache.doris.catalog.StructField;
 import org.apache.doris.catalog.StructType;
 import org.apache.doris.catalog.Type;
+import org.apache.doris.catalog.VariantType;
 import org.apache.doris.common.AnalysisException;
+import org.apache.doris.common.util.PropertyAnalyzer;
+import org.apache.doris.qe.ConnectContext;
 import org.apache.doris.qe.SessionVariable;
 import org.apache.doris.thrift.TColumnDesc;
 import org.apache.doris.thrift.TPrimitiveType;
@@ -333,6 +336,32 @@
                 }
                 break;
             }
+            case VARIANT: {
+                // Configure VariantType parameters by merging session variables with user-specified properties.
+                // Supported properties: variant_max_subcolumns_count, variant_enable_typed_paths_to_sparse
+                VariantType variantType = (VariantType) scalarType;
+                int variantMaxSubcolumnsCount = ConnectContext.get() == null ? 0 :
+                        ConnectContext.get().getSessionVariable().getGlobalVariantMaxSubcolumnsCount();
+                boolean enableTypedPathsToSparse = ConnectContext.get() == null ? false :
+                        ConnectContext.get().getSessionVariable().getGlobalEnableTypedPathsToSparse();
+                try {
+                    variantMaxSubcolumnsCount = PropertyAnalyzer
+                            .analyzeVariantMaxSubcolumnsCount(variantType.getProperties(), variantMaxSubcolumnsCount);
+                    enableTypedPathsToSparse = PropertyAnalyzer
+                            .analyzeEnableTypedPathsToSparse(variantType.getProperties(), enableTypedPathsToSparse);
+                } catch (org.apache.doris.common.AnalysisException e) {
+                    throw new AnalysisException(e.getMessage());
+                }
+                variantType.setVariantMaxSubcolumnsCount(variantMaxSubcolumnsCount);
+                variantType.setEnableTypedPathsToSparse(enableTypedPathsToSparse);
+
+                if (!variantType.getProperties().isEmpty()) {
+                    throw new AnalysisException("variant type only support for "
+                            + PropertyAnalyzer.PROPERTIES_VARIANT_ENABLE_TYPED_PATHS_TO_SPARSE
+                            + " and " + PropertyAnalyzer.PROPERTIES_VARIANT_MAX_SUBCOLUMNS_COUNT);
+                }
+                break;
+            }
             case INVALID_TYPE:
                 throw new AnalysisException("Invalid type.");
             default: break;
diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/Column.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/Column.java
index 82ad2dd..ffa2a78 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/Column.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/Column.java
@@ -348,7 +348,7 @@
                 c.setIsAllowNull(field.getContainsNull());
                 column.addChildrenColumn(c);
             }
-        } else if (type.isVariantType()) {
+        } else if (type.isVariantType() && type instanceof VariantType) {
             // variant may contain predefined structured fields
             ArrayList<VariantField> fields = ((VariantType) type).getPredefinedFields();
             for (VariantField field : fields) {
@@ -517,6 +517,14 @@
         return type instanceof ScalarType ? ((ScalarType) type).getScalarScale() : -1;
     }
 
+    public int getVariantMaxSubcolumnsCount() {
+        return type.isVariantType() ? ((ScalarType) type).getVariantMaxSubcolumnsCount() : -1;
+    }
+
+    public boolean getVariantEnableTypedPathsToSparse() {
+        return type.isVariantType() ? ((ScalarType) type).getVariantEnableTypedPathsToSparse() : false;
+    }
+
     public AggregateType getAggregationType() {
         return this.aggregationType;
     }
@@ -562,6 +570,10 @@
         fieldPatternType = type;
     }
 
+    public TPatternType getFieldPatternType() {
+        return fieldPatternType;
+    }
+
     public String getDefaultValue() {
         return this.defaultValue;
     }
@@ -632,12 +644,9 @@
         tColumnType.setLen(this.getStrLen());
         tColumnType.setPrecision(this.getPrecision());
         tColumnType.setScale(this.getScale());
+        tColumnType.setVariantMaxSubcolumnsCount(this.getVariantMaxSubcolumnsCount());
 
         tColumnType.setIndexLen(this.getOlapColumnIndexSize());
-        if (this.getType().isVariantType()) {
-            VariantType variantType = (VariantType) this.getType();
-            tColumnType.setVariantMaxSubcolumnsCount(variantType.getVariantMaxSubcolumnsCount());
-        }
 
         tColumn.setColumnType(tColumnType);
         if (null != this.aggregationType) {
@@ -667,6 +676,7 @@
             tColumn.setBeExecVersion(Config.be_exec_version);
         }
         tColumn.setClusterKeyId(this.clusterKeyId);
+        tColumn.setVariantEnableTypedPathsToSparse(this.getVariantEnableTypedPathsToSparse());
         // ATTN:
         // Currently, this `toThrift()` method is only used from CreateReplicaTask.
         // And CreateReplicaTask does not need `defineExpr` field.
@@ -881,8 +891,8 @@
                 builder.addChildrenColumns(c.toPb(Sets.newHashSet(), Lists.newArrayList()));
             }
         } else if (this.type.isVariantType()) {
-            VariantType variantType = (VariantType) this.getType();
-            builder.setVariantMaxSubcolumnsCount(variantType.getVariantMaxSubcolumnsCount());
+            builder.setVariantMaxSubcolumnsCount(this.getVariantMaxSubcolumnsCount());
+            builder.setVariantEnableTypedPathsToSparse(this.getVariantEnableTypedPathsToSparse());
             // variant may contain predefined structured fields
             addChildren(builder);
         }
diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java
index f1f70ad..fd01411 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java
@@ -3870,12 +3870,6 @@
             sb.append(olapTable.variantEnableFlattenNested()).append("\"");
         }
 
-        // variant max subcolumns count
-        if (olapTable.getVariantMaxSubcolumnsCount() != 0) {
-            sb.append(",\n\"").append(PropertyAnalyzer.PROPERTIES_VARIANT_MAX_SUBCOLUMNS_COUNT).append("\" = \"");
-            sb.append(olapTable.getVariantMaxSubcolumnsCount()).append("\"");
-        }
-
         // binlog
         if (Config.enable_feature_binlog) {
             BinlogConfig binlogConfig = olapTable.getBinlogConfig();
diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/Index.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/Index.java
index 8dd587c..f25eb2c 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/Index.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/Index.java
@@ -173,7 +173,14 @@
         return InvertedIndexUtil.getInvertedIndexParserStopwords(properties);
     }
 
-    // Whether the index can be changed in light mode
+    public String getInvertedIndexFieldPattern() {
+        return InvertedIndexUtil.getInvertedIndexFieldPattern(properties);
+    }
+
+    public boolean getInvertedIndexSupportPhrase() {
+        return InvertedIndexUtil.getInvertedIndexSupportPhrase(properties);
+    }
+
     public boolean isLightIndexChangeSupported() {
         return indexType == IndexDef.IndexType.INVERTED;
     }
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 457f1b9..957653d 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
@@ -84,6 +84,7 @@
 import org.apache.doris.thrift.TNodeInfo;
 import org.apache.doris.thrift.TOlapTable;
 import org.apache.doris.thrift.TPaloNodesInfo;
+import org.apache.doris.thrift.TPatternType;
 import org.apache.doris.thrift.TPrimitiveType;
 import org.apache.doris.thrift.TSortType;
 import org.apache.doris.thrift.TStorageFormat;
@@ -2504,26 +2505,6 @@
         return false;
     }
 
-    public void setVariantMaxSubcolumnsCount(int maxSubcoumnsCount) {
-        List<Column> columns = getBaseSchema(true);
-        boolean hasVariantType = false;
-        for (Column column : columns) {
-            Type type = column.getType();
-            if (type.isVariantType()) {
-                hasVariantType = true;
-                VariantType scType = (VariantType) type;
-                scType.setVariantMaxSubcolumnsCount(maxSubcoumnsCount);
-            }
-        }
-        if (hasVariantType) {
-            getOrCreatTableProperty().setVariantMaxSubcolumnsCount(maxSubcoumnsCount);
-        }
-    }
-
-    public int getVariantMaxSubcolumnsCount() {
-        return getOrCreatTableProperty().getVariantMaxSubcolumnsCount();
-    }
-
     public int getBaseSchemaVersion() {
         MaterializedIndexMeta baseIndexMeta = indexIdToMeta.get(baseIndexId);
         return baseIndexMeta.getSchemaVersion();
@@ -3602,4 +3583,76 @@
     protected void addIndexNameToIdForUnitTest(String name, long id) {
         indexNameToId.put(name, id);
     }
+
+    public Pair<Integer, Integer> getMinMaxVariantSubcolumnsCount() {
+        int minVariantSubcolumnsCount = Integer.MAX_VALUE;
+        int maxVariantSubcolumnsCount = -1;
+        for (Column column : getBaseSchema()) {
+            if (column.getType().isVariantType()) {
+                minVariantSubcolumnsCount =
+                                    Math.min(minVariantSubcolumnsCount, column.getVariantMaxSubcolumnsCount());
+                maxVariantSubcolumnsCount =
+                                    Math.max(maxVariantSubcolumnsCount, column.getVariantMaxSubcolumnsCount());
+            }
+        }
+        return Pair.of(minVariantSubcolumnsCount, maxVariantSubcolumnsCount);
+    }
+
+    public Index getInvertedIndex(Column column, List<String> subPath) {
+        List<Index> invertedIndexes = new ArrayList<>();
+        for (Index index : indexes.getIndexes()) {
+            if (index.getIndexType() == IndexDef.IndexType.INVERTED) {
+                List<String> columns = index.getColumns();
+                if (columns != null && !columns.isEmpty() && column.getName().equals(columns.get(0))) {
+                    invertedIndexes.add(index);
+                }
+            }
+        }
+
+        if (subPath == null || subPath.isEmpty()) {
+            return invertedIndexes.size() == 1 ? invertedIndexes.get(0)
+                : invertedIndexes.stream().filter(Index::isAnalyzedInvertedIndex).findFirst().orElse(null);
+        }
+
+        // subPath is not empty, means it is a variant column, find the field pattern from children
+        String subPathString = String.join(".", subPath);
+        String fieldPattern = "";
+        for (Column child : column.getChildren()) {
+            String childName = child.getName();
+            if (child.getFieldPatternType() == TPatternType.MATCH_NAME_GLOB) {
+                try {
+                    java.nio.file.PathMatcher matcher = java.nio.file.FileSystems.getDefault()
+                            .getPathMatcher("glob:" + childName);
+                    if (matcher.matches(java.nio.file.Paths.get(subPathString))) {
+                        fieldPattern = childName;
+                    }
+                } catch (Exception e) {
+                    continue;
+                }
+            } else if (child.getFieldPatternType() == TPatternType.MATCH_NAME) {
+                if (childName.equals(subPathString)) {
+                    fieldPattern = childName;
+                }
+            }
+        }
+
+        List<Index> invertedIndexesWithFieldPattern = new ArrayList<>();
+        for (Index index : indexes.getIndexes()) {
+            if (index.getIndexType() == IndexDef.IndexType.INVERTED) {
+                List<String> columns = index.getColumns();
+                if (columns != null && !columns.isEmpty() && column.getName().equals(columns.get(0))
+                                        && fieldPattern.equals(index.getInvertedIndexFieldPattern())) {
+                    invertedIndexesWithFieldPattern.add(index);
+                }
+            }
+        }
+        if (invertedIndexesWithFieldPattern.isEmpty()) {
+            return invertedIndexes.size() == 1 ? invertedIndexes.get(0)
+                : invertedIndexes.stream().filter(Index::isAnalyzedInvertedIndex).findFirst().orElse(null);
+        } else {
+            return invertedIndexesWithFieldPattern.size() == 1 ? invertedIndexesWithFieldPattern.get(0)
+                                        : invertedIndexesWithFieldPattern.stream()
+                                        .filter(Index::isAnalyzedInvertedIndex).findFirst().orElse(null);
+        }
+    }
 }
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 2ba7bdb..071916a 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
@@ -250,6 +250,8 @@
     public static final String PROPERTIES_VARIANT_MAX_SUBCOLUMNS_COUNT = "variant_max_subcolumns_count";
     public static final int VARIANT_MAX_SUBCOLUMNS_COUNT_DEFAULT_VALUE = 0;
 
+    public static final String PROPERTIES_VARIANT_ENABLE_TYPED_PATHS_TO_SPARSE = "variant_enable_typed_paths_to_sparse";
+
     public enum RewriteType {
         PUT,      // always put property
         REPLACE,  // replace if exists property
@@ -1852,4 +1854,19 @@
         }
         return maxSubcoumnsCount;
     }
+
+    public static boolean analyzeEnableTypedPathsToSparse(Map<String, String> properties,
+                        boolean defaultValue) throws AnalysisException {
+        boolean enableTypedPathsToSparse = defaultValue;
+        if (properties != null && properties.containsKey(PROPERTIES_VARIANT_ENABLE_TYPED_PATHS_TO_SPARSE)) {
+            String enableTypedPathsToSparseStr = properties.get(PROPERTIES_VARIANT_ENABLE_TYPED_PATHS_TO_SPARSE);
+            try {
+                enableTypedPathsToSparse = Boolean.parseBoolean(enableTypedPathsToSparseStr);
+            } catch (Exception e) {
+                throw new AnalysisException("variant_enable_typed_paths_to_sparse must be `true` or `false`");
+            }
+            properties.remove(PROPERTIES_VARIANT_ENABLE_TYPED_PATHS_TO_SPARSE);
+        }
+        return enableTypedPathsToSparse;
+    }
 }
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 fa05c15..b597912 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
@@ -1441,10 +1441,6 @@
                 properties.put(PropertyAnalyzer.PROPERTIES_VARIANT_ENABLE_FLATTEN_NESTED,
                         olapTable.variantEnableFlattenNested().toString());
             }
-            if (!properties.containsKey(PropertyAnalyzer.PROPERTIES_VARIANT_MAX_SUBCOLUMNS_COUNT)) {
-                properties.put(PropertyAnalyzer.PROPERTIES_VARIANT_MAX_SUBCOLUMNS_COUNT,
-                        Integer.toString(olapTable.getVariantMaxSubcolumnsCount()));
-            }
             if (!properties.containsKey(PropertyAnalyzer.PROPERTIES_ENABLE_SINGLE_REPLICA_COMPACTION)) {
                 properties.put(PropertyAnalyzer.PROPERTIES_ENABLE_SINGLE_REPLICA_COMPACTION,
                         olapTable.enableSingleReplicaCompaction().toString());
@@ -2879,16 +2875,6 @@
         }
         Preconditions.checkNotNull(versionInfo);
 
-        int variantMaxSubcolumnsCount = ConnectContext.get() == null ? 0 : ConnectContext.get()
-                                                .getSessionVariable().getGlobalVariantMaxSubcolumnsCount();
-        try {
-            variantMaxSubcolumnsCount = PropertyAnalyzer
-                                            .analyzeVariantMaxSubcolumnsCount(properties, variantMaxSubcolumnsCount);
-        } catch (AnalysisException e) {
-            throw new DdlException(e.getMessage());
-        }
-        olapTable.setVariantMaxSubcolumnsCount(variantMaxSubcolumnsCount);
-
         // a set to record every new tablet created when create table
         // if failed in any step, use this set to do clear things
         Set<Long> tabletIdSet = new HashSet<>();
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/ExpressionTranslator.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/ExpressionTranslator.java
index 0580cbc..6e35bc3 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/ExpressionTranslator.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/ExpressionTranslator.java
@@ -31,7 +31,6 @@
 import org.apache.doris.analysis.FunctionCallExpr;
 import org.apache.doris.analysis.FunctionName;
 import org.apache.doris.analysis.FunctionParams;
-import org.apache.doris.analysis.IndexDef;
 import org.apache.doris.analysis.IsNullPredicate;
 import org.apache.doris.analysis.LambdaFunctionCallExpr;
 import org.apache.doris.analysis.LambdaFunctionExpr;
@@ -211,7 +210,6 @@
 
     @Override
     public Expr visitMatch(Match match, PlanTranslatorContext context) {
-        Index invertedIndex = null;
         // Get the first slot from match's left expr
         SlotReference slot = match.getInputSlots().stream()
                         .findFirst()
@@ -229,20 +227,10 @@
             throw new AnalysisException("SlotReference in Match failed to get OlapTable, SQL is " + match.toSql());
         }
 
-        List<Index> indexes = olapTbl.getIndexes();
-        if (indexes != null) {
-            for (Index index : indexes) {
-                if (index.getIndexType() == IndexDef.IndexType.INVERTED) {
-                    List<String> columns = index.getColumns();
-                    if (columns != null && !columns.isEmpty() && column.getName().equals(columns.get(0))) {
-                        invertedIndex = index;
-                        break;
-                    }
-                }
-            }
-        }
+        Index invertedIndex = olapTbl.getInvertedIndex(column, slot.getSubPath());
 
         MatchPredicate.Operator op = match.op();
+
         MatchPredicate matchPredicate = new MatchPredicate(op, match.left().accept(this, context),
                 match.right().accept(this, context), match.getDataType().toCatalogDataType(),
                 NullableMode.DEPEND_ON_ARGUMENT, invertedIndex);
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java
index 695cc71..263b06d 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java
@@ -60,6 +60,7 @@
 import org.apache.doris.common.FeConstants;
 import org.apache.doris.common.Pair;
 import org.apache.doris.common.UserException;
+import org.apache.doris.common.util.PropertyAnalyzer;
 import org.apache.doris.datasource.InternalCatalog;
 import org.apache.doris.dictionary.LayoutType;
 import org.apache.doris.job.common.IntervalUnit;
@@ -451,9 +452,14 @@
 import org.apache.doris.nereids.DorisParser.UseDatabaseContext;
 import org.apache.doris.nereids.DorisParser.UserIdentifyContext;
 import org.apache.doris.nereids.DorisParser.UserVariableContext;
+import org.apache.doris.nereids.DorisParser.VariantContext;
 import org.apache.doris.nereids.DorisParser.VariantPredefinedFieldsContext;
 import org.apache.doris.nereids.DorisParser.VariantSubColTypeContext;
 import org.apache.doris.nereids.DorisParser.VariantSubColTypeListContext;
+import org.apache.doris.nereids.DorisParser.VariantTypeDefinitionsContext;
+import org.apache.doris.nereids.DorisParser.VariantWithFieldsAndPropsContext;
+import org.apache.doris.nereids.DorisParser.VariantWithOnlyFieldsContext;
+import org.apache.doris.nereids.DorisParser.VariantWithOnlyPropsContext;
 import org.apache.doris.nereids.DorisParser.WhereClauseContext;
 import org.apache.doris.nereids.DorisParser.WindowFrameContext;
 import org.apache.doris.nereids.DorisParser.WindowSpecContext;
@@ -1030,6 +1036,7 @@
 import org.apache.doris.statistics.AnalysisInfo;
 import org.apache.doris.system.NodeType;
 
+import com.google.common.base.Preconditions;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.ImmutableMap.Builder;
@@ -4597,7 +4604,46 @@
 
     @Override
     public DataType visitVariantPredefinedFields(VariantPredefinedFieldsContext ctx) {
-        return new VariantType(visitVariantSubColTypeList(ctx.variantSubColTypeList()));
+        VariantTypeDefinitionsContext variantDef = ctx.complex;
+
+        List<VariantField> fields = Lists.newArrayList();
+        Map<String, String> properties = Maps.newHashMap();
+        if (variantDef instanceof VariantWithFieldsAndPropsContext) {
+            VariantWithFieldsAndPropsContext withBoth = (VariantWithFieldsAndPropsContext) variantDef;
+            fields = visitVariantSubColTypeList(withBoth.variantSubColTypeList());
+            properties = Maps.newHashMap(visitPropertyClause(withBoth.properties));
+        } else if (variantDef instanceof VariantWithOnlyFieldsContext) {
+            VariantWithOnlyFieldsContext withFields = (VariantWithOnlyFieldsContext) variantDef;
+            fields = visitVariantSubColTypeList(withFields.variantSubColTypeList());
+        } else if (variantDef instanceof VariantWithOnlyPropsContext) {
+            VariantWithOnlyPropsContext withProps = (VariantWithOnlyPropsContext) variantDef;
+            properties = Maps.newHashMap(visitPropertyClause(withProps.properties));
+        } else {
+            Preconditions.checkState(variantDef instanceof VariantContext,
+                                        "Unsupported variant definition: " + variantDef.getText());
+        }
+
+        int variantMaxSubcolumnsCount = ConnectContext.get() == null ? 0 :
+                ConnectContext.get().getSessionVariable().getGlobalVariantMaxSubcolumnsCount();
+        boolean enableTypedPathsToSparse = ConnectContext.get() == null ? false :
+                ConnectContext.get().getSessionVariable().getGlobalEnableTypedPathsToSparse();
+
+        try {
+            variantMaxSubcolumnsCount = PropertyAnalyzer
+                                        .analyzeVariantMaxSubcolumnsCount(properties, variantMaxSubcolumnsCount);
+            enableTypedPathsToSparse = PropertyAnalyzer
+                                        .analyzeEnableTypedPathsToSparse(properties, enableTypedPathsToSparse);
+        } catch (org.apache.doris.common.AnalysisException e) {
+            throw new NotSupportedException(e.getMessage());
+        }
+
+        if (!properties.isEmpty()) {
+            throw new NotSupportedException("only support for "
+                    + PropertyAnalyzer.PROPERTIES_VARIANT_ENABLE_TYPED_PATHS_TO_SPARSE
+                    + " and " + PropertyAnalyzer.PROPERTIES_VARIANT_MAX_SUBCOLUMNS_COUNT);
+        }
+
+        return new VariantType(fields, variantMaxSubcolumnsCount, enableTypedPathsToSparse);
     }
 
     @Override
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/CreateTableInfo.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/CreateTableInfo.java
index c24a20c..989be8e 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/CreateTableInfo.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/CreateTableInfo.java
@@ -338,17 +338,35 @@
         Preconditions.checkState(!Strings.isNullOrEmpty(ctlName), "catalog name is null or empty");
         Preconditions.checkState(!Strings.isNullOrEmpty(dbName), "database name is null or empty");
 
-        //check datev1 and decimalv2
+        //check datatype: datev1, decimalv2, variant
+        boolean allZero = false;
+        boolean allPositive = false;
         for (ColumnDefinition columnDef : columns) {
             String columnNameUpperCase = columnDef.getName().toUpperCase();
             if (columnNameUpperCase.startsWith("__DORIS_")) {
                 throw new AnalysisException(
                         "Disable to create table column with name start with __DORIS_: " + columnNameUpperCase);
             }
-            if (columnDef.getType().isVariantType() && columnNameUpperCase.indexOf('.') != -1) {
-                throw new AnalysisException(
+            if (columnDef.getType().isVariantType()) {
+                if (columnNameUpperCase.indexOf('.') != -1) {
+                    throw new AnalysisException(
                         "Disable to create table of `VARIANT` type column named with a `.` character: "
                                 + columnNameUpperCase);
+                }
+                VariantType variantType = (VariantType) columnDef.getType();
+                if (variantType.getVariantMaxSubcolumnsCount() == 0) {
+                    allZero = true;
+                    if (allPositive) {
+                        throw new AnalysisException("The variant_max_subcolumns_count must either be 0"
+                            + " in all columns, or greater than 0 in all columns");
+                    }
+                } else {
+                    allPositive = true;
+                    if (allZero) {
+                        throw new AnalysisException("The variant_max_subcolumns_count must either be 0"
+                            + " in all columns, or greater than 0 in all columns");
+                    }
+                }
             }
             if (columnDef.getType().isDateType() && Config.disable_datev1) {
                 throw new AnalysisException(
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/types/DataType.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/types/DataType.java
index af78f40..83de55b 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/types/DataType.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/types/DataType.java
@@ -449,7 +449,8 @@
                                 cf.getComment() == null ? "" : cf.getComment(), cf.getPatternType().toString()))
                         .collect(ImmutableList.toImmutableList());
                 return new VariantType(variantFields,
-                        ((org.apache.doris.catalog.VariantType) type).getVariantMaxSubcolumnsCount());
+                        ((org.apache.doris.catalog.VariantType) type).getVariantMaxSubcolumnsCount(),
+                        ((org.apache.doris.catalog.VariantType) type).getEnableTypedPathsToSparse());
             }
             return new VariantType(0);
         } else {
@@ -1061,7 +1062,7 @@
                     validateNestedType(scalarType, fieldType);
                     if (!fieldPatterns.add(field.getPattern())) {
                         throw new AnalysisException("Duplicate field name " + field.getPattern()
-                                + " in struct " + scalarType.toSql());
+                                + " in variant " + scalarType.toSql());
                     }
                 }
                 break;
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/types/VariantField.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/types/VariantField.java
index 232e741..03909d8 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/types/VariantField.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/types/VariantField.java
@@ -72,9 +72,22 @@
                 pattern, dataType.toCatalogDataType(), comment, patternType);
     }
 
+    /**
+     * Convert this VariantField to SQL string representation.
+     * @return SQL string representation of this VariantField
+     */
     public String toSql() {
-        return pattern + ":" + dataType.toSql()
-                + (comment.isEmpty() ? "" : " COMMENT " + comment);
+        StringBuilder sb = new StringBuilder();
+        if (patternType == TPatternType.MATCH_NAME) {
+            sb.append(patternType.toString()).append(" ");
+        }
+
+        sb.append("'").append(pattern).append("'");
+        sb.append(":").append(dataType.toSql());
+        if (!comment.isEmpty()) {
+            sb.append(" COMMENT '").append(comment).append("'");
+        }
+        return sb.toString();
     }
 
     public VariantField conversion() {
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/types/VariantType.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/types/VariantType.java
index 951161a..f30a328 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/types/VariantType.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/types/VariantType.java
@@ -44,6 +44,8 @@
 
     private int variantMaxSubcolumnsCount = 0;
 
+    private boolean enableTypedPathsToSparse = false;
+
     private final List<VariantField> predefinedFields;
 
     // No predefined fields
@@ -59,23 +61,24 @@
         this.predefinedFields = ImmutableList.copyOf(Objects.requireNonNull(fields, "fields should not be null"));
     }
 
-    public VariantType(List<VariantField> fields, int variantMaxSubcolumnsCount) {
+    public VariantType(List<VariantField> fields, int variantMaxSubcolumnsCount, boolean enableTypedPathsToSparse) {
         this.predefinedFields = ImmutableList.copyOf(Objects.requireNonNull(fields, "fields should not be null"));
         this.variantMaxSubcolumnsCount = variantMaxSubcolumnsCount;
+        this.enableTypedPathsToSparse = enableTypedPathsToSparse;
     }
 
     @Override
     public DataType conversion() {
         return new VariantType(predefinedFields.stream().map(VariantField::conversion)
-                                            .collect(Collectors.toList()), variantMaxSubcolumnsCount);
+                                            .collect(Collectors.toList()), variantMaxSubcolumnsCount,
+                                                                                    enableTypedPathsToSparse);
     }
 
     @Override
     public Type toCatalogDataType() {
         org.apache.doris.catalog.VariantType type = new org.apache.doris.catalog.VariantType(predefinedFields.stream()
                 .map(VariantField::toCatalogDataType)
-                .collect(Collectors.toCollection(ArrayList::new)));
-        type.setVariantMaxSubcolumnsCount(variantMaxSubcolumnsCount);
+                .collect(Collectors.toCollection(ArrayList::new)), variantMaxSubcolumnsCount, enableTypedPathsToSparse);
         return type;
     }
 
@@ -86,10 +89,36 @@
 
     @Override
     public String toSql() {
-        if (predefinedFields.isEmpty()) {
-            return "VARIANT";
+        if (predefinedFields.isEmpty() && variantMaxSubcolumnsCount == 0) {
+            return "variant";
         }
-        return "VARIANT<" + predefinedFields.stream().map(VariantField::toSql).collect(Collectors.joining(",")) + ">";
+        StringBuilder sb = new StringBuilder();
+        sb.append("variant");
+        sb.append("<");
+        if (!predefinedFields.isEmpty()) {
+            sb.append(predefinedFields.stream().map(VariantField::toSql).collect(Collectors.joining(",")));
+            if (variantMaxSubcolumnsCount == 0 && !enableTypedPathsToSparse) {
+                sb.append(">");
+                return sb.toString();
+            } else {
+                sb.append(",");
+            }
+        }
+
+        sb.append("PROPERTIES (");
+        if (variantMaxSubcolumnsCount != 0) {
+            sb.append("\"variant_max_subcolumns_count\" = \"")
+                                    .append(String.valueOf(variantMaxSubcolumnsCount)).append("\",");
+        }
+        if (variantMaxSubcolumnsCount != 0 && enableTypedPathsToSparse) {
+            sb.append(",");
+        }
+        if (enableTypedPathsToSparse) {
+            sb.append("\"variant_enable_typed_paths_to_sparse\" = \"")
+                                    .append(String.valueOf(enableTypedPathsToSparse)).append("\"");
+        }
+        sb.append(")>");
+        return sb.toString();
     }
 
     @Override
@@ -102,6 +131,7 @@
         }
         VariantType other = (VariantType) o;
         return this.variantMaxSubcolumnsCount == other.variantMaxSubcolumnsCount
+                    && this.enableTypedPathsToSparse == other.enableTypedPathsToSparse
                     && Objects.equals(predefinedFields, other.predefinedFields);
     }
 
@@ -123,4 +153,8 @@
     public List<VariantField> getPredefinedFields() {
         return predefinedFields;
     }
+
+    public int getVariantMaxSubcolumnsCount() {
+        return variantMaxSubcolumnsCount;
+    }
 }
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 a02c19f..2dc1d59 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
@@ -741,6 +741,9 @@
 
     public static final String GLOBAL_VARIANT_SUBCOLUMNS_COUNT = "global_variant_max_subcolumns_count";
 
+    public static final String GLOBAL_VARIANT_ENABLE_TYPED_PATHS_TO_SPARSE =
+                                                            "global_variant_enable_typed_paths_to_sparse";
+
     public static final String ENABLE_TEXT_VALIDATE_UTF8 = "enable_text_validate_utf8";
 
     public static final String ENABLE_SQL_CONVERTOR_FEATURES = "enable_sql_convertor_features";
@@ -2698,6 +2701,21 @@
     })
     public boolean skipCheckingAcidVersionFile = false;
 
+    @VariableMgr.VarAttr(
+            name = GLOBAL_VARIANT_SUBCOLUMNS_COUNT,
+            needForward = true,
+            checker = "checkGlobalVariantMaxSubcolumnsCount",
+            fuzzy = true
+    )
+    public int globalVariantMaxSubcolumnsCount = 2048;
+
+    @VariableMgr.VarAttr(
+            name = GLOBAL_VARIANT_ENABLE_TYPED_PATHS_TO_SPARSE,
+            needForward = true,
+            fuzzy = true
+    )
+    public boolean globalEnableTypedPathsToSparse = false;
+
     @VariableMgr.VarAttr(name = ENABLE_SQL_CONVERTOR_FEATURES, needForward = true,
             checker = "checkSqlConvertorFeatures",
             description = {
@@ -2750,14 +2768,6 @@
     }, checker = "checkSkewRewriteJoinSaltExplodeFactor")
     public int skewRewriteJoinSaltExplodeFactor = 0;
 
-    @VariableMgr.VarAttr(
-            name = GLOBAL_VARIANT_SUBCOLUMNS_COUNT,
-            needForward = true,
-            checker = "checkGlobalVariantMaxSubcolumnsCount",
-            fuzzy = true
-    )
-    public int globalVariantMaxSubcolumnsCount = 2048;
-
     public void setEnableEsParallelScroll(boolean enableESParallelScroll) {
         this.enableESParallelScroll = enableESParallelScroll;
     }
@@ -2796,6 +2806,7 @@
         int maxBytes = 10 * 1024 * 1024;
         this.exchangeMultiBlocksByteSize = minBytes + (int) (random.nextDouble() * (maxBytes - minBytes));
         this.globalVariantMaxSubcolumnsCount = random.nextInt(10);
+        this.globalEnableTypedPathsToSparse = random.nextBoolean();
         int randomInt = random.nextInt(4);
         if (randomInt % 2 == 0) {
             this.rewriteOrToInPredicateThreshold = 100000;
@@ -5098,6 +5109,10 @@
         this.enableAddIndexForNewData = enableAddIndexForNewData;
     }
 
+    public boolean getGlobalEnableTypedPathsToSparse() {
+        return globalEnableTypedPathsToSparse;
+    }
+
     public static boolean enableStrictCast() {
         if (ConnectContext.get() != null) {
             return ConnectContext.get().getSessionVariable().enableStrictCast;
diff --git a/fe/fe-core/src/test/java/org/apache/doris/persist/ScalarTypeTest.java b/fe/fe-core/src/test/java/org/apache/doris/persist/ScalarTypeTest.java
new file mode 100644
index 0000000..b1f2039
--- /dev/null
+++ b/fe/fe-core/src/test/java/org/apache/doris/persist/ScalarTypeTest.java
@@ -0,0 +1,40 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+package org.apache.doris.persist;
+
+import org.apache.doris.catalog.PrimitiveType;
+import org.apache.doris.catalog.ScalarType;
+import org.apache.doris.catalog.VariantType;
+import org.apache.doris.persist.gson.GsonUtils;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+public class ScalarTypeTest {
+    @Test
+    public void testScalarType() {
+        ScalarType scalarType = new ScalarType(PrimitiveType.VARIANT);
+        String json = GsonUtils.GSON.toJson(scalarType);
+        System.out.println(json);
+        ScalarType scalarType2 = GsonUtils.GSON.fromJson(json, ScalarType.class);
+        Assert.assertFalse(scalarType2 instanceof VariantType);
+        Assert.assertEquals(scalarType.getPrimitiveType(), scalarType2.getPrimitiveType());
+        Assert.assertEquals(scalarType.getVariantMaxSubcolumnsCount(), 0);
+        Assert.assertEquals(scalarType.getVariantEnableTypedPathsToSparse(), false);
+    }
+}
diff --git a/gensrc/proto/olap_file.proto b/gensrc/proto/olap_file.proto
index 5040f5d..2c37581 100644
--- a/gensrc/proto/olap_file.proto
+++ b/gensrc/proto/olap_file.proto
@@ -351,6 +351,7 @@
     optional int32 be_exec_version = 24;
     optional int32 variant_max_subcolumns_count = 25 [default = 0];
     optional PatternTypePB pattern_type = 26;
+    optional bool variant_enable_typed_paths_to_sparse = 27 [default = false];
     // this field is only used during flexible partial update load
     optional bool is_on_update_current_timestamp = 28 [default = false];
 }
diff --git a/gensrc/thrift/Descriptors.thrift b/gensrc/thrift/Descriptors.thrift
index 08ba828..f5ef123 100644
--- a/gensrc/thrift/Descriptors.thrift
+++ b/gensrc/thrift/Descriptors.thrift
@@ -49,6 +49,7 @@
     19: optional i32 cluster_key_id = -1
     20: optional i32 be_exec_version = -1
     21: optional TPatternType pattern_type
+    22: optional bool variant_enable_typed_paths_to_sparse = false
     23: optional bool is_on_update_current_timestamp = false
 }
 
diff --git a/regression-test/data/variant_p0/load.out b/regression-test/data/variant_p0/load.out
index e7521c3..c4efac9 100644
--- a/regression-test/data/variant_p0/load.out
+++ b/regression-test/data/variant_p0/load.out
@@ -224,7 +224,7 @@
 [123]
 
 -- !sql_25 --
-50000	55000.000000010754	6150000
+50000	55000.00000000543	6150000
 
 -- !sql_26 --
 5000
diff --git a/regression-test/data/variant_p0/nested2.out b/regression-test/data/variant_p0/nested2.out
index 357f769..fcae06f 100644
--- a/regression-test/data/variant_p0/nested2.out
+++ b/regression-test/data/variant_p0/nested2.out
@@ -1,7 +1,7 @@
 -- This file is automatically generated. You should know what you did if you want to edit this
 -- !sql_desc_1 --
 k	bigint	Yes	true	\N	
-v	variant	Yes	false	\N	NONE
+v	variant<PROPERTIES ("variant_max_subcolumns_count" = "10")>	Yes	false	\N	NONE
 v.nested.a	array<tinyint>	Yes	false	\N	NONE
 v.nested.b	array<text>	Yes	false	\N	NONE
 v.nested.c	array<double>	Yes	false	\N	NONE
@@ -50,7 +50,7 @@
 
 -- !sql_desc_2 --
 k	bigint	Yes	true	\N	
-v	variant	Yes	false	\N	NONE
+v	variant<PROPERTIES ("variant_max_subcolumns_count" = "10")>	Yes	false	\N	NONE
 v.nested.a	array<double>	Yes	false	\N	NONE
 v.nested.b	array<json>	Yes	false	\N	NONE
 v.nested.c	array<double>	Yes	false	\N	NONE
@@ -169,7 +169,7 @@
 
 -- !sql_desc_4 --
 k	bigint	Yes	true	\N	
-v	variant	Yes	false	\N	NONE
+v	variant<PROPERTIES ("variant_max_subcolumns_count" = "10")>	Yes	false	\N	NONE
 v.nested.a	array<json>	Yes	false	\N	NONE
 v.nested.b	array<json>	Yes	false	\N	NONE
 v.nested.c	array<text>	Yes	false	\N	NONE
@@ -218,7 +218,7 @@
 
 -- !sql_desc_5 --
 k	bigint	Yes	true	\N	
-v	variant	Yes	false	\N	NONE
+v	variant<PROPERTIES ("variant_max_subcolumns_count" = "10")>	Yes	false	\N	NONE
 v.nested.a	array<json>	Yes	false	\N	NONE
 v.nested.b	array<json>	Yes	false	\N	NONE
 v.nested.c	array<json>	Yes	false	\N	NONE
diff --git a/regression-test/data/variant_p0/predefine/load.out b/regression-test/data/variant_p0/predefine/load.out
index ed7c3ad..794eb01 100644
--- a/regression-test/data/variant_p0/predefine/load.out
+++ b/regression-test/data/variant_p0/predefine/load.out
@@ -14,19 +14,6 @@
 12	3	{"dcm":789.123000000,"dt":"2025-01-01 11:11:11","ip":"127.0.0.1"}
 
 -- !sql --
-id	bigint	No	true	\N	
-type	varchar(30)	Yes	false	\N	NONE
-v1	variant<MATCH_NAME_GLOB 'a.b.c':int,MATCH_NAME_GLOB 'ss':text,MATCH_NAME_GLOB 'dcm':decimalv3(38,9),MATCH_NAME_GLOB 'dt':datetimev2(0),MATCH_NAME_GLOB 'ip':ipv4,MATCH_NAME_GLOB 'a.b.d':double>	Yes	false	\N	NONE
-v1.a.b.c	int	Yes	false	\N	NONE
-v1.a.b.d	double	Yes	false	\N	NONE
-v1.dcm	decimal(38,9)	Yes	false	\N	NONE
-v1.dt	datetime	Yes	false	\N	NONE
-v1.ip	ipv4	Yes	false	\N	NONE
-v1.ss	text	Yes	false	\N	NONE
-v1.xxx	smallint	Yes	false	\N	NONE
-v1.yyy	double	Yes	false	\N	NONE
-
--- !sql --
 127.0.0.1
 127.0.0.1
 127.0.0.1
@@ -73,18 +60,6 @@
 12	3	{"dcm":789.123000000,"dt":"2025-01-01 11:11:11","ip":"127.0.0.1"}
 
 -- !sql --
-id	bigint	No	true	\N	
-v1	variant	Yes	false	\N	NONE
-v1.PREDEFINE_COL1	smallint	Yes	false	\N	NONE
-v1.PREDEFINE_COL2	double	Yes	false	\N	NONE
-v1.PREDEFINE_COL3	text	Yes	false	\N	NONE
-v1.PREDEFINE_COL4	text	Yes	false	\N	NONE
-v1.predefine_col1	smallint	Yes	false	\N	NONE
-v1.predefine_col2	double	Yes	false	\N	NONE
-v1.predefine_col3	text	Yes	false	\N	NONE
-v1.predefine_col4	text	Yes	false	\N	NONE
-
--- !sql --
 1	{"predefine_col1":1024}
 2	{"predefine_col2":1.11111}
 3	{"predefine_col3":"11111.00000"}
@@ -101,59 +76,11 @@
 4	{"array_datetimev2":["2021-01-01 00:00:00", "2022-01-01 00:00:00", "2023-01-01 00:00:00"],"array_int":[1, 2, 3],"array_string":["a", "b", "c"],"ext_1":1.111111,"ext_2":"this is an extra field","ext_3":[1, 2, 3],"float_":1.111111111,"ipv4_":"127.0.0.1","varchar_":"world hello"}
 
 -- !sql --
-id	bigint	No	true	\N	
-v1	variant<MATCH_NAME_GLOB 'array_int':array<int>,MATCH_NAME_GLOB 'array_string':array<text>,MATCH_NAME_GLOB 'array_decimal':array<decimalv3(26,9)>,MATCH_NAME_GLOB 'array_datetime':array<datetimev2(0)>,MATCH_NAME_GLOB 'array_datetimev2':array<datetimev2(0)>,MATCH_NAME_GLOB 'array_date':array<datev2>,MATCH_NAME_GLOB 'array_datev2':array<datev2>,MATCH_NAME_GLOB 'array_ipv4':array<ipv4>,MATCH_NAME_GLOB 'array_ipv6':array<ipv6>,MATCH_NAME_GLOB 'array_float':array<decimalv3(26,9)>,MATCH_NAME_GLOB 'array_boolean':array<boolean>,MATCH_NAME_GLOB 'int_':int,MATCH_NAME_GLOB 'string_':text,MATCH_NAME_GLOB 'decimal_':decimalv3(26,9),MATCH_NAME_GLOB 'datetime_':datetimev2(0),MATCH_NAME_GLOB 'datetimev2_':datetimev2(6),MATCH_NAME_GLOB 'date_':datev2,MATCH_NAME_GLOB 'datev2_':datev2,MATCH_NAME_GLOB 'ipv4_':ipv4,MATCH_NAME_GLOB 'ipv6_':ipv6,MATCH_NAME_GLOB 'float_':decimalv3(26,9),MATCH_NAME_GLOB 'boolean_':boolean,MATCH_NAME_GLOB 'varchar_':text>	Yes	false	\N	NONE
-v1.array_boolean	array<boolean>	Yes	false	\N	NONE
-v1.array_date	array<date>	Yes	false	\N	NONE
-v1.array_datetime	array<datetime>	Yes	false	\N	NONE
-v1.array_datetimev2	array<datetime>	Yes	false	\N	NONE
-v1.array_datev2	array<date>	Yes	false	\N	NONE
-v1.array_decimal	array<decimal(26,9)>	Yes	false	\N	NONE
-v1.array_float	array<decimal(26,9)>	Yes	false	\N	NONE
-v1.array_int	array<int>	Yes	false	\N	NONE
-v1.array_ipv4	array<ipv4>	Yes	false	\N	NONE
-v1.array_ipv6	array<ipv6>	Yes	false	\N	NONE
-v1.array_string	array<text>	Yes	false	\N	NONE
-v1.boolean_	boolean	Yes	false	\N	NONE
-v1.date_	date	Yes	false	\N	NONE
-v1.datetime_	datetime	Yes	false	\N	NONE
-v1.datetimev2_	datetime	Yes	false	\N	NONE
-v1.datev2_	date	Yes	false	\N	NONE
-v1.decimal_	decimal(26,9)	Yes	false	\N	NONE
-v1.ext_1	double	Yes	false	\N	NONE
-v1.ext_2	text	Yes	false	\N	NONE
-v1.ext_3	array<tinyint>	Yes	false	\N	NONE
-v1.float_	decimal(26,9)	Yes	false	\N	NONE
-v1.int_	int	Yes	false	\N	NONE
-v1.ipv4_	ipv4	Yes	false	\N	NONE
-v1.ipv6_	ipv6	Yes	false	\N	NONE
-v1.string_	text	Yes	false	\N	NONE
-v1.varchar_	text	Yes	false	\N	NONE
-
--- !sql --
 101	{"a":1}	{"dcm":1111111.000000000}	\N
 102	{"a":1}	{"dcm":1111111.000000000}	{"dcm":1111111.000000000}
 103	{"a":1}	{"dcm":1111111.000000000}	{"dt":"2021-01-01 11:11:11"}
 
 -- !sql --
-id	bigint	No	true	\N	
-v1	variant	Yes	false	\N	NONE
-v2	variant<MATCH_NAME_GLOB 'dcm':decimalv3(38,9),MATCH_NAME_GLOB 'dt':datetimev2(0)>	Yes	false	\N	NONE
-v3	variant<MATCH_NAME_GLOB 'dcm':decimalv3(38,9),MATCH_NAME_GLOB 'dt':datetimev2(0),MATCH_NAME_GLOB 'ip':ipv6>	Yes	false	\N	NONE
-v1.PREDEFINE_COL1	smallint	Yes	false	\N	NONE
-v1.PREDEFINE_COL2	double	Yes	false	\N	NONE
-v1.PREDEFINE_COL3	text	Yes	false	\N	NONE
-v1.PREDEFINE_COL4	text	Yes	false	\N	NONE
-v1.a	tinyint	Yes	false	\N	NONE
-v1.predefine_col1	smallint	Yes	false	\N	NONE
-v1.predefine_col2	double	Yes	false	\N	NONE
-v1.predefine_col3	text	Yes	false	\N	NONE
-v1.predefine_col4	text	Yes	false	\N	NONE
-v2.dcm	decimal(38,9)	Yes	false	\N	NONE
-v3.dcm	decimal(38,9)	Yes	false	\N	NONE
-v3.dt	datetime	Yes	false	\N	NONE
-
--- !sql --
 1	{"nested":[{"a":123,"b":"456"}]}
 1	{"nested":[{"a":123,"b":"456"}]}
 1	{"nested":[{"a":123,"b":"456"}]}
@@ -168,16 +95,22 @@
 [{"a":123,"b":"456"}]
 
 -- !sql --
-[123]
-[123]
-[123]
-[123]
-[123]
+\N
+\N
+\N
+\N
+\N
 
 -- !sql --
-id	bigint	No	true	\N	
-v	variant<MATCH_NAME_GLOB 'nested.a':text>	Yes	false	\N	NONE
-v.auto_type	json	Yes	false	\N	NONE
+{"auto_type":"jsonb"}
+{"auto_type":"jsonb"}
+{"auto_type":"jsonb"}
+{"auto_type":"jsonb"}
+{"auto_type":"jsonb"}
+{"auto_type":"jsonb"}
+{"auto_type":"jsonb"}
+{"auto_type":"jsonb"}
+{"auto_type":"jsonb"}
 
 -- !sql_arr_null_1 --
 3	{"array_decimal":[null, 2.200000000, 3.300000000, 4.400000000]}
diff --git a/regression-test/data/variant_p0/predefine/predefined_typed_to_sparse.out b/regression-test/data/variant_p0/predefine/predefined_typed_to_sparse.out
new file mode 100644
index 0000000..9c681be
--- /dev/null
+++ b/regression-test/data/variant_p0/predefine/predefined_typed_to_sparse.out
@@ -0,0 +1,75 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !sql --
+1	{"array_decimal_1":[12345678901234567.123456789, 987.654321000],"array_ipv6_1":["2001:db8:85a3::8a2e:370:7334", "::1"],"char_1":"short text","date_1":"2023-10-27","datetime_1":"2023-10-27 10:30:00","datetimev2_1":"2023-10-27 10:30:00.123456","datev2_1":"2023-10-28","decimal_1":12345.678900000,"int_1":42,"int_nested":{"level1_num_1":1011111,"level1_num_2":102},"ipv4_1":"192.168.1.1","ipv6_1":"::1","largeint_1":12345678901234567890123456789012345678,"string_1":"This is a sample string.","string_1_nested":{"message":"Hello from nested object","metadata":{"source":"generator","timestamp":"2023-10-27T12:00:00Z"}}}
+52	{"array_decimal_2":[1217297.486087340, 366003851280257.752431218, 8973145984227.655768002],"array_ipv6_2":["f99b:f60a:9223:5049:8b1c:45d7:45f5:b4fd", "72d2:77aa:e0bb:d7f7:592b:f462:d72:c5be"],"char_1":"Generate it nested test.","date_1":"2025-12-14","datetime_1":"2024-01-22 13:11:14","datetimev2_1":"2026-02-03 02:27:24.073783","datev2_2":"2023-09-21","decimal_2":77374.884509513,"int_1":22039,"ipv4_2":"201.126.28.227","ipv6_1":"6cd7:b2f:737d:6caa:5727:33bb:ee5d:63d2","largeint_1":764894823616784426248703058599238663,"metadata":{"priority":3,"processed_by":"nqgjfwint","valid":0},"string_1":"Example field process data object.","string_1_nested":{"context":{"session_id":"gmugrfcxxkmw","source_ip":"227.97.148.155","timestamp":"2026-06-11 09:35:49.398754"},"message":"Is object log to process.","status_code":"30289"}}
+81	{"array_decimal_1":[6993835366877.197970529, 692486181822.904938989, 57800977.779873991],"array_ipv6_1":["3e5e::d3c6:9b00", "497c:a15f:93d4:6487:fb8a:922a:116:382c"],"char_1":"Of nested generate.","date_1":"2025-02-17","datetime_2":"2025-07-19 14:19:28","datetimev2_2":"2026-08-01 13:51:16.663655","datev2_2":"2023-07-01","decimal_1":71167668339089076.027343245,"int_2":-4330,"ipv4_1":"59.119.122.122","ipv6_1":"71:9f6f:498f:6114:4dbc:9317:d188:846a","largeint_1":999275976602,"string_1_nested":{"context":{"session_id":"csswaakndsqv","source_ip":"142.174.127.131","timestamp":"2026-05-28 18:37:16.559456"},"message":"Json code of code.","status_code":"56746"},"string_2":"Status key status example a short it."}
+186	{"array_decimal_2":[343096599140599.876400678, 7831434.851857885],"array_ipv6_2":["6628:ec19:f0fb:9c28::2108:e7c0", "d1e6:a9b1:960b:fb6a:2af9:5510:7ef7:4f28"],"char_2":"Process generate string log is.","date_2":"2026-01-17","datetime_2":"2025-06-24 10:18:55","datetimev2_1":"2025-01-11 15:17:37.482750","datev2_1":"2026-01-30","decimal_1":42741395319382677.318175638,"int_1":30470,"int_nested":{"level1_num_1":95377,"level1_num_2":74730},"ipv4_2":"14.45.131.14","ipv6_2":"6c40:ada4:83e7:4436::","largeint_2":1972321546770399093377808800275591213,"string_1":"The it code of to field.","string_2_nested":{"context":{"session_id":"opvsllcaalta","source_ip":"136.15.57.180","timestamp":"2023-05-13 15:40:32.911831"},"message":"In nested string.","status_code":"41918"}}
+475	{"array_decimal_2":[88211.795496743, 69626003842.211054548],"array_ipv6_2":["5284:d12a:d199:af4a:e22b:a147:dea5:ec29", "8d50:3ef:2583:17ab:ee3f:72af:e90a:ee54", "89b8:b2d5:6c9c:271f:6175::3d94"],"char_2":"Random generate key in sample.","date_2":"2026-11-29","datetime_2":"2025-03-02 23:14:03","datetimev2_1":"2026-08-02 18:57:45.077150","datev2_1":"2023-11-04","decimal_2":-4280.446032481,"int_1":69203,"int_nested":{"level1_num_1":42164,"level1_num_2":73701},"ipv4_2":"180.182.39.98","ipv6_1":"56dc:6910:4d3a:241:bdc9:7c63:54ac:957b","largeint_2":7116719144922,"string_1":"Object is data message nested.","string_2_nested":{"context":{"session_id":"zboqencwghbp","source_ip":"99.67.120.47","timestamp":"2025-08-13 21:26:42.588013"},"message":"And message in.","status_code":"87131"}}
+505	{"array_decimal_1":[601.234546799, 262143833.424900595],"array_ipv6_1":["5379:e655:ffb4:ff93:f993:1b00:5e9:f7bb", "dd6c:a85b:84da:1de9:2919:9e55:c9a0:aa26", "6e07:b5fc:c994:9a63:732f:41c9:8ca2:16d7"],"char_2":"Message random a code generate.","date_1":"2025-03-31","datetime_1":"2027-02-04 18:34:24","datetimev2_1":"2024-01-23 16:23:45.625302","datev2_1":"2025-05-28","decimal_2":80073776.516113260,"int_1":42447,"ipv4_1":"150.214.32.106","ipv6_2":"da18:1fbc:dadd:53f4:8e5b:25fc::","largeint_1":6381994961717802432931228,"string_1_nested":{"context":{"session_id":"wipdivqnpntk","source_ip":"10.52.81.99","timestamp":"2024-05-14 15:00:11.320701"},"message":"Key to message generate json.","status_code":"-4652"},"string_2":"Log it message and data value field log."}
+598	{"array_decimal_2":[-90235911041.078404692, 87024.785161188, 7.453107283],"array_ipv6_1":["749b:b007:43a7:bcaf:2ef2:bfe5:2b69:aea8", "b60:5636:2b04:70a3:d901:db26:7966:5cb0", "9d56:4380:83b0:17c:5840:aa25:f2f6:db95"],"char_2":"Field status generate generate short.","date_1":"2026-01-08","datetime_2":"2023-09-28 00:51:10","datetimev2_2":"2023-12-02 20:35:49.472295","datev2_1":"2026-01-04","decimal_2":26.144007845,"int_2":77401,"int_nested":{"level1_num_1":97684,"level1_num_2":86484},"ipv4_2":"72.138.200.25","ipv6_2":"d898:2c91:3541:8bfa:dfe4:fa22:f301:a92","largeint_2":4375114360934695506121925213,"string_2":"String data nested to example generate.","string_2_nested":{"context":{"session_id":"vkxemvohrpze","source_ip":"217.56.193.118","timestamp":"2025-12-03 03:27:28.639440"},"message":"Key status test json of in is a.","status_code":"73350"}}
+659	{"array_decimal_2":[676292444331501.791295286],"array_ipv6_2":["aa75:5e74:ae2:9d05:6320:bc1a:9fa8:c22", "ab6a:1d10:f690:1229:44e6:6724:7fc0:f4c3", "9add:9146:91fb:3af0:39fb:e8e0:50a:af54"],"char_1":"Level short data the.","date_1":"2026-04-18","datetime_2":"2027-03-24 07:05:37","datetimev2_1":"2024-03-09 21:58:53.536163","datev2_2":"2023-08-29","decimal_2":375096233442620.402021458,"int_1":49010,"ipv4_1":"76.205.28.41","ipv6_1":"3e38:7813:6474:60e1:c245:8391:5d3a:6bf3","largeint_2":8,"metadata":{"priority":4,"processed_by":"jovrgftdi","valid":1},"string_1_nested":{"context":{"session_id":"jiizftwrqbgo","source_ip":"106.142.112.230","timestamp":"2026-03-25 19:54:02.914284"},"message":"Key code in.","status_code":"89497"},"string_2":"Of string code example sample value in."}
+668	{"array_decimal_1":[345.581519531],"array_ipv6_2":["bd7c:4ea0:c3f2:8242:a917:b6f9:f1c4:81fc"],"char_1":"Message the field.","date_2":"2023-06-04","datetime_2":"2023-07-26 09:51:00","datetimev2_2":"2023-08-06 12:59:06.782257","datev2_2":"2026-02-10","decimal_1":71704608.366887325,"int_1":3839,"ipv4_1":"237.141.96.142","ipv6_2":"f65:d104:f442:90f8:962b:ac7f:70ef:47fc","largeint_1":73701028754393574400404888160807216,"string_2":"Test status status to a.","string_2_nested":{"context":{"session_id":"gzfrmskyhvgk","source_ip":"62.167.211.183","timestamp":"2026-10-08 06:36:46.788298"},"message":"And json data in key.","status_code":"86739"}}
+789	{"array_decimal_2":[461419171.666216999, 3746898066419.821429238, 742451.192408462],"array_ipv6_1":["6287:3753:3cc4:4759:4ff2:13ee:20aa:d7e7", "1cdf:2c95:a45a:b2aa:787b:bf1f:70c2:1121"],"char_1":"Key sample process.","date_2":"2024-11-17","datetime_1":"2026-04-22 16:03:35","datetimev2_2":"2024-06-21 13:12:07.539485","datev2_2":"2024-01-25","decimal_2":8933959111.376668859,"int_1":25966,"int_nested":{"level1_num_1":91219,"level1_num_2":4608},"ipv4_1":"121.174.189.99","ipv6_2":"8ab:accb:ad63:bc97:84f9:4c8b:137e:efaf","largeint_2":269951187241728368326988938317,"string_1":"In sample to.","string_2_nested":{"context":{"session_id":"jxxteoxxdrzu","source_ip":"100.16.34.59","timestamp":"2026-05-28 23:42:50.962876"},"message":"Data generate status and generate process sample example.","status_code":"37776"}}
+
+-- !sql --
+1	{"array_decimal_1":[12345678901234567.123456789, 987.654321000],"array_ipv6_1":["2001:db8:85a3::8a2e:370:7334", "::1"],"char_1":"short text","date_1":"2023-10-27","datetime_1":"2023-10-27 10:30:00","datetimev2_1":"2023-10-27 10:30:00.123456","datev2_1":"2023-10-28","decimal_1":12345.678900000,"int_1":42,"int_nested":{"level1_num_1":1011111,"level1_num_2":102},"ipv4_1":"192.168.1.1","ipv6_1":"::1","largeint_1":12345678901234567890123456789012345678,"string_1":"This is a sample string.","string_1_nested":{"message":"Hello from nested object","metadata":{"source":"generator","timestamp":"2023-10-27T12:00:00Z"}}}
+52	{"array_decimal_2":[1217297.486087340, 366003851280257.752431218, 8973145984227.655768002],"array_ipv6_2":["f99b:f60a:9223:5049:8b1c:45d7:45f5:b4fd", "72d2:77aa:e0bb:d7f7:592b:f462:d72:c5be"],"char_1":"Generate it nested test.","date_1":"2025-12-14","datetime_1":"2024-01-22 13:11:14","datetimev2_1":"2026-02-03 02:27:24.073783","datev2_2":"2023-09-21","decimal_2":77374.884509513,"int_1":22039,"ipv4_2":"201.126.28.227","ipv6_1":"6cd7:b2f:737d:6caa:5727:33bb:ee5d:63d2","largeint_1":764894823616784426248703058599238663,"metadata":{"priority":3,"processed_by":"nqgjfwint","valid":0},"string_1":"Example field process data object.","string_1_nested":{"context":{"session_id":"gmugrfcxxkmw","source_ip":"227.97.148.155","timestamp":"2026-06-11 09:35:49.398754"},"message":"Is object log to process.","status_code":"30289"}}
+81	{"array_decimal_1":[6993835366877.197970529, 692486181822.904938989, 57800977.779873991],"array_ipv6_1":["3e5e::d3c6:9b00", "497c:a15f:93d4:6487:fb8a:922a:116:382c"],"char_1":"Of nested generate.","date_1":"2025-02-17","datetime_2":"2025-07-19 14:19:28","datetimev2_2":"2026-08-01 13:51:16.663655","datev2_2":"2023-07-01","decimal_1":71167668339089076.027343245,"int_2":-4330,"ipv4_1":"59.119.122.122","ipv6_1":"71:9f6f:498f:6114:4dbc:9317:d188:846a","largeint_1":999275976602,"string_1_nested":{"context":{"session_id":"csswaakndsqv","source_ip":"142.174.127.131","timestamp":"2026-05-28 18:37:16.559456"},"message":"Json code of code.","status_code":"56746"},"string_2":"Status key status example a short it."}
+186	{"array_decimal_2":[343096599140599.876400678, 7831434.851857885],"array_ipv6_2":["6628:ec19:f0fb:9c28::2108:e7c0", "d1e6:a9b1:960b:fb6a:2af9:5510:7ef7:4f28"],"char_2":"Process generate string log is.","date_2":"2026-01-17","datetime_2":"2025-06-24 10:18:55","datetimev2_1":"2025-01-11 15:17:37.482750","datev2_1":"2026-01-30","decimal_1":42741395319382677.318175638,"int_1":30470,"int_nested":{"level1_num_1":95377,"level1_num_2":74730},"ipv4_2":"14.45.131.14","ipv6_2":"6c40:ada4:83e7:4436::","largeint_2":1972321546770399093377808800275591213,"string_1":"The it code of to field.","string_2_nested":{"context":{"session_id":"opvsllcaalta","source_ip":"136.15.57.180","timestamp":"2023-05-13 15:40:32.911831"},"message":"In nested string.","status_code":"41918"}}
+475	{"array_decimal_2":[88211.795496743, 69626003842.211054548],"array_ipv6_2":["5284:d12a:d199:af4a:e22b:a147:dea5:ec29", "8d50:3ef:2583:17ab:ee3f:72af:e90a:ee54", "89b8:b2d5:6c9c:271f:6175::3d94"],"char_2":"Random generate key in sample.","date_2":"2026-11-29","datetime_2":"2025-03-02 23:14:03","datetimev2_1":"2026-08-02 18:57:45.077150","datev2_1":"2023-11-04","decimal_2":-4280.446032481,"int_1":69203,"int_nested":{"level1_num_1":42164,"level1_num_2":73701},"ipv4_2":"180.182.39.98","ipv6_1":"56dc:6910:4d3a:241:bdc9:7c63:54ac:957b","largeint_2":7116719144922,"string_1":"Object is data message nested.","string_2_nested":{"context":{"session_id":"zboqencwghbp","source_ip":"99.67.120.47","timestamp":"2025-08-13 21:26:42.588013"},"message":"And message in.","status_code":"87131"}}
+505	{"array_decimal_1":[601.234546799, 262143833.424900595],"array_ipv6_1":["5379:e655:ffb4:ff93:f993:1b00:5e9:f7bb", "dd6c:a85b:84da:1de9:2919:9e55:c9a0:aa26", "6e07:b5fc:c994:9a63:732f:41c9:8ca2:16d7"],"char_2":"Message random a code generate.","date_1":"2025-03-31","datetime_1":"2027-02-04 18:34:24","datetimev2_1":"2024-01-23 16:23:45.625302","datev2_1":"2025-05-28","decimal_2":80073776.516113260,"int_1":42447,"ipv4_1":"150.214.32.106","ipv6_2":"da18:1fbc:dadd:53f4:8e5b:25fc::","largeint_1":6381994961717802432931228,"string_1_nested":{"context":{"session_id":"wipdivqnpntk","source_ip":"10.52.81.99","timestamp":"2024-05-14 15:00:11.320701"},"message":"Key to message generate json.","status_code":"-4652"},"string_2":"Log it message and data value field log."}
+598	{"array_decimal_2":[-90235911041.078404692, 87024.785161188, 7.453107283],"array_ipv6_1":["749b:b007:43a7:bcaf:2ef2:bfe5:2b69:aea8", "b60:5636:2b04:70a3:d901:db26:7966:5cb0", "9d56:4380:83b0:17c:5840:aa25:f2f6:db95"],"char_2":"Field status generate generate short.","date_1":"2026-01-08","datetime_2":"2023-09-28 00:51:10","datetimev2_2":"2023-12-02 20:35:49.472295","datev2_1":"2026-01-04","decimal_2":26.144007845,"int_2":77401,"int_nested":{"level1_num_1":97684,"level1_num_2":86484},"ipv4_2":"72.138.200.25","ipv6_2":"d898:2c91:3541:8bfa:dfe4:fa22:f301:a92","largeint_2":4375114360934695506121925213,"string_2":"String data nested to example generate.","string_2_nested":{"context":{"session_id":"vkxemvohrpze","source_ip":"217.56.193.118","timestamp":"2025-12-03 03:27:28.639440"},"message":"Key status test json of in is a.","status_code":"73350"}}
+659	{"array_decimal_2":[676292444331501.791295286],"array_ipv6_2":["aa75:5e74:ae2:9d05:6320:bc1a:9fa8:c22", "ab6a:1d10:f690:1229:44e6:6724:7fc0:f4c3", "9add:9146:91fb:3af0:39fb:e8e0:50a:af54"],"char_1":"Level short data the.","date_1":"2026-04-18","datetime_2":"2027-03-24 07:05:37","datetimev2_1":"2024-03-09 21:58:53.536163","datev2_2":"2023-08-29","decimal_2":375096233442620.402021458,"int_1":49010,"ipv4_1":"76.205.28.41","ipv6_1":"3e38:7813:6474:60e1:c245:8391:5d3a:6bf3","largeint_2":8,"metadata":{"priority":4,"processed_by":"jovrgftdi","valid":1},"string_1_nested":{"context":{"session_id":"jiizftwrqbgo","source_ip":"106.142.112.230","timestamp":"2026-03-25 19:54:02.914284"},"message":"Key code in.","status_code":"89497"},"string_2":"Of string code example sample value in."}
+668	{"array_decimal_1":[345.581519531],"array_ipv6_2":["bd7c:4ea0:c3f2:8242:a917:b6f9:f1c4:81fc"],"char_1":"Message the field.","date_2":"2023-06-04","datetime_2":"2023-07-26 09:51:00","datetimev2_2":"2023-08-06 12:59:06.782257","datev2_2":"2026-02-10","decimal_1":71704608.366887325,"int_1":3839,"ipv4_1":"237.141.96.142","ipv6_2":"f65:d104:f442:90f8:962b:ac7f:70ef:47fc","largeint_1":73701028754393574400404888160807216,"string_2":"Test status status to a.","string_2_nested":{"context":{"session_id":"gzfrmskyhvgk","source_ip":"62.167.211.183","timestamp":"2026-10-08 06:36:46.788298"},"message":"And json data in key.","status_code":"86739"}}
+789	{"array_decimal_2":[461419171.666216999, 3746898066419.821429238, 742451.192408462],"array_ipv6_1":["6287:3753:3cc4:4759:4ff2:13ee:20aa:d7e7", "1cdf:2c95:a45a:b2aa:787b:bf1f:70c2:1121"],"char_1":"Key sample process.","date_2":"2024-11-17","datetime_1":"2026-04-22 16:03:35","datetimev2_2":"2024-06-21 13:12:07.539485","datev2_2":"2024-01-25","decimal_2":8933959111.376668859,"int_1":25966,"int_nested":{"level1_num_1":91219,"level1_num_2":4608},"ipv4_1":"121.174.189.99","ipv6_2":"8ab:accb:ad63:bc97:84f9:4c8b:137e:efaf","largeint_2":269951187241728368326988938317,"string_1":"In sample to.","string_2_nested":{"context":{"session_id":"jxxteoxxdrzu","source_ip":"100.16.34.59","timestamp":"2026-05-28 23:42:50.962876"},"message":"Data generate status and generate process sample example.","status_code":"37776"}}
+
+-- !sql --
+{"array_decimal_1":"decimal128i","array_ipv6_1":"ipv6","char_1":"string","date_1":"datev2","datetime_1":"datetimev2","datetimev2_1":"datetimev2","datev2_1":"datev2","decimal_1":"decimal128i","int_1":"int","int_nested.level1_num_1":"int","int_nested.level1_num_2":"int","ipv4_1":"ipv4","ipv6_1":"ipv6","largeint_1":"largeint","string_1":"string","string_1_nested.message":"string","string_1_nested.metadata.source":"string","string_1_nested.metadata.timestamp":"string"}
+
+-- !sql --
+1	{"array_decimal_1":[12345678901234567.123456789, 987.654321000],"array_ipv6_1":["2001:db8:85a3::8a2e:370:7334", "::1"],"char_1":"short text","date_1":"2023-10-27","datetime_1":"2023-10-27 10:30:00","datetimev2_1":"2023-10-27 10:30:00.123456","datev2_1":"2023-10-28","decimal_1":12345.678900000,"int_1":42,"int_nested":{"level1_num_1":1011111,"level1_num_2":102},"ipv4_1":"192.168.1.1","ipv6_1":"::1","largeint_1":12345678901234567890123456789012345678,"string_1":"This is a sample string.","string_1_nested":{"message":"Hello from nested object","metadata":{"source":"generator","timestamp":"2023-10-27T12:00:00Z"}}}
+2	{"array_decimal_1":[12345678901234567.123456789, 987.654321000],"array_ipv6_1":["2001:db8:85a3::8a2e:370:7334", "::1"],"char_1":"short text","date_1":"2023-10-27","datetime_1":"2023-10-27 10:30:00","datetimev2_1":"2023-10-27 10:30:00.123456","datev2_1":"2023-10-28","decimal_1":12345.678900000,"int_1":42,"int_nested":{"level1_num_1":1011111,"level1_num_2":102},"ipv4_1":"192.168.1.1","ipv6_1":"::1","largeint_1":12345678901234567890123456789012345678,"string_1":"This is a sample string.","string_1_nested":{"message":"Hello from nested object","metadata":{"source":"generator","timestamp":"2023-10-27T12:00:00Z"}}}
+3	{"array_decimal_1":[12345678901234567.123456789, 987.654321000],"array_ipv6_1":["2001:db8:85a3::8a2e:370:7334", "::1"],"char_1":"short text","date_1":"2023-10-27","datetime_1":"2023-10-27 10:30:00","datetimev2_1":"2023-10-27 10:30:00.123456","datev2_1":"2023-10-28","decimal_1":12345.678900000,"int_1":42,"int_nested":{"level1_num_1":1011111,"level1_num_2":102},"ipv4_1":"192.168.1.1","ipv6_1":"::1","largeint_1":12345678901234567890123456789012345678,"string_1":"This is a sample string.","string_1_nested":{"message":"Hello from nested object","metadata":{"source":"generator","timestamp":"2023-10-27T12:00:00Z"}}}
+4	{"array_decimal_1":[12345678901234567.123456789, 987.654321000],"array_ipv6_1":["2001:db8:85a3::8a2e:370:7334", "::1"],"char_1":"short text","date_1":"2023-10-27","datetime_1":"2023-10-27 10:30:00","datetimev2_1":"2023-10-27 10:30:00.123456","datev2_1":"2023-10-28","decimal_1":12345.678900000,"int_1":42,"int_nested":{"level1_num_1":1011111,"level1_num_2":102},"ipv4_1":"192.168.1.1","ipv6_1":"::1","largeint_1":12345678901234567890123456789012345678,"string_1":"This is a sample string.","string_1_nested":{"message":"Hello from nested object","metadata":{"source":"generator","timestamp":"2023-10-27T12:00:00Z"}}}
+5	{"array_decimal_1":[12345678901234567.123456789, 987.654321000],"array_ipv6_1":["2001:db8:85a3::8a2e:370:7334", "::1"],"char_1":"short text","date_1":"2023-10-27","datetime_1":"2023-10-27 10:30:00","datetimev2_1":"2023-10-27 10:30:00.123456","datev2_1":"2023-10-28","decimal_1":12345.678900000,"int_1":42,"int_nested":{"level1_num_1":1011111,"level1_num_2":102},"ipv4_1":"192.168.1.1","ipv6_1":"::1","largeint_1":12345678901234567890123456789012345678,"string_1":"This is a sample string.","string_1_nested":{"message":"Hello from nested object","metadata":{"source":"generator","timestamp":"2023-10-27T12:00:00Z"}}}
+6	{"array_decimal_1":[12345678901234567.123456789, 987.654321000],"array_ipv6_1":["2001:db8:85a3::8a2e:370:7334", "::1"],"char_1":"short text","date_1":"2023-10-27","datetime_1":"2023-10-27 10:30:00","datetimev2_1":"2023-10-27 10:30:00.123456","datev2_1":"2023-10-28","decimal_1":12345.678900000,"int_1":42,"int_nested":{"level1_num_1":1011111,"level1_num_2":102},"ipv4_1":"192.168.1.1","ipv6_1":"::1","largeint_1":12345678901234567890123456789012345678,"string_1":"This is a sample string.","string_1_nested":{"message":"Hello from nested object","metadata":{"source":"generator","timestamp":"2023-10-27T12:00:00Z"}}}
+7	{"array_decimal_1":[12345678901234567.123456789, 987.654321000],"array_ipv6_1":["2001:db8:85a3::8a2e:370:7334", "::1"],"char_1":"short text","date_1":"2023-10-27","datetime_1":"2023-10-27 10:30:00","datetimev2_1":"2023-10-27 10:30:00.123456","datev2_1":"2023-10-28","decimal_1":12345.678900000,"int_1":42,"int_nested":{"level1_num_1":1011111,"level1_num_2":102},"ipv4_1":"192.168.1.1","ipv6_1":"::1","largeint_1":12345678901234567890123456789012345678,"string_1":"This is a sample string.","string_1_nested":{"message":"Hello from nested object","metadata":{"source":"generator","timestamp":"2023-10-27T12:00:00Z"}}}
+8	{"array_decimal_1":[12345678901234567.123456789, 987.654321000],"array_ipv6_1":["2001:db8:85a3::8a2e:370:7334", "::1"],"char_1":"short text","date_1":"2023-10-27","datetime_1":"2023-10-27 10:30:00","datetimev2_1":"2023-10-27 10:30:00.123456","datev2_1":"2023-10-28","decimal_1":12345.678900000,"int_1":42,"int_nested":{"level1_num_1":1011111,"level1_num_2":102},"ipv4_1":"192.168.1.1","ipv6_1":"::1","largeint_1":12345678901234567890123456789012345678,"string_1":"This is a sample string.","string_1_nested":{"message":"Hello from nested object","metadata":{"source":"generator","timestamp":"2023-10-27T12:00:00Z"}}}
+9	{"array_decimal_1":[12345678901234567.123456789, 987.654321000],"array_ipv6_1":["2001:db8:85a3::8a2e:370:7334", "::1"],"char_1":"short text","date_1":"2023-10-27","datetime_1":"2023-10-27 10:30:00","datetimev2_1":"2023-10-27 10:30:00.123456","datev2_1":"2023-10-28","decimal_1":12345.678900000,"int_1":42,"int_nested":{"level1_num_1":1011111,"level1_num_2":102},"ipv4_1":"192.168.1.1","ipv6_1":"::1","largeint_1":12345678901234567890123456789012345678,"string_1":"This is a sample string.","string_1_nested":{"message":"Hello from nested object","metadata":{"source":"generator","timestamp":"2023-10-27T12:00:00Z"}}}
+
+-- !sql --
+[12345678901234567.123456789, 987.654321000]	["2001:db8:85a3::8a2e:370:7334", "::1"]	42	{"level1_num_1":1011111,"level1_num_2":102}	This is a sample string.	{"message":"Hello from nested object","metadata":{"source":"generator","timestamp":"2023-10-27T12:00:00Z"}}	12345.678900000	2023-10-27 10:30:00	2023-10-27 10:30:00.123456	2023-10-27	2023-10-28	192.168.1.1	::1	12345678901234567890123456789012345678	short text
+[12345678901234567.123456789, 987.654321000]	["2001:db8:85a3::8a2e:370:7334", "::1"]	42	{"level1_num_1":1011111,"level1_num_2":102}	This is a sample string.	{"message":"Hello from nested object","metadata":{"source":"generator","timestamp":"2023-10-27T12:00:00Z"}}	12345.678900000	2023-10-27 10:30:00	2023-10-27 10:30:00.123456	2023-10-27	2023-10-28	192.168.1.1	::1	12345678901234567890123456789012345678	short text
+[12345678901234567.123456789, 987.654321000]	["2001:db8:85a3::8a2e:370:7334", "::1"]	42	{"level1_num_1":1011111,"level1_num_2":102}	This is a sample string.	{"message":"Hello from nested object","metadata":{"source":"generator","timestamp":"2023-10-27T12:00:00Z"}}	12345.678900000	2023-10-27 10:30:00	2023-10-27 10:30:00.123456	2023-10-27	2023-10-28	192.168.1.1	::1	12345678901234567890123456789012345678	short text
+[12345678901234567.123456789, 987.654321000]	["2001:db8:85a3::8a2e:370:7334", "::1"]	42	{"level1_num_1":1011111,"level1_num_2":102}	This is a sample string.	{"message":"Hello from nested object","metadata":{"source":"generator","timestamp":"2023-10-27T12:00:00Z"}}	12345.678900000	2023-10-27 10:30:00	2023-10-27 10:30:00.123456	2023-10-27	2023-10-28	192.168.1.1	::1	12345678901234567890123456789012345678	short text
+[12345678901234567.123456789, 987.654321000]	["2001:db8:85a3::8a2e:370:7334", "::1"]	42	{"level1_num_1":1011111,"level1_num_2":102}	This is a sample string.	{"message":"Hello from nested object","metadata":{"source":"generator","timestamp":"2023-10-27T12:00:00Z"}}	12345.678900000	2023-10-27 10:30:00	2023-10-27 10:30:00.123456	2023-10-27	2023-10-28	192.168.1.1	::1	12345678901234567890123456789012345678	short text
+[12345678901234567.123456789, 987.654321000]	["2001:db8:85a3::8a2e:370:7334", "::1"]	42	{"level1_num_1":1011111,"level1_num_2":102}	This is a sample string.	{"message":"Hello from nested object","metadata":{"source":"generator","timestamp":"2023-10-27T12:00:00Z"}}	12345.678900000	2023-10-27 10:30:00	2023-10-27 10:30:00.123456	2023-10-27	2023-10-28	192.168.1.1	::1	12345678901234567890123456789012345678	short text
+[12345678901234567.123456789, 987.654321000]	["2001:db8:85a3::8a2e:370:7334", "::1"]	42	{"level1_num_1":1011111,"level1_num_2":102}	This is a sample string.	{"message":"Hello from nested object","metadata":{"source":"generator","timestamp":"2023-10-27T12:00:00Z"}}	12345.678900000	2023-10-27 10:30:00	2023-10-27 10:30:00.123456	2023-10-27	2023-10-28	192.168.1.1	::1	12345678901234567890123456789012345678	short text
+[12345678901234567.123456789, 987.654321000]	["2001:db8:85a3::8a2e:370:7334", "::1"]	42	{"level1_num_1":1011111,"level1_num_2":102}	This is a sample string.	{"message":"Hello from nested object","metadata":{"source":"generator","timestamp":"2023-10-27T12:00:00Z"}}	12345.678900000	2023-10-27 10:30:00	2023-10-27 10:30:00.123456	2023-10-27	2023-10-28	192.168.1.1	::1	12345678901234567890123456789012345678	short text
+[12345678901234567.123456789, 987.654321000]	["2001:db8:85a3::8a2e:370:7334", "::1"]	42	{"level1_num_1":1011111,"level1_num_2":102}	This is a sample string.	{"message":"Hello from nested object","metadata":{"source":"generator","timestamp":"2023-10-27T12:00:00Z"}}	12345.678900000	2023-10-27 10:30:00	2023-10-27 10:30:00.123456	2023-10-27	2023-10-28	192.168.1.1	::1	12345678901234567890123456789012345678	short text
+
+-- !sql --
+{"array_decimal_1":"decimal128i","array_ipv6_1":"ipv6","char_1":"string","date_1":"datev2","datetime_1":"datetimev2","datetimev2_1":"datetimev2","datev2_1":"datev2","decimal_1":"decimal128i","int_1":"int","int_nested.level1_num_1":"int","int_nested.level1_num_2":"int","ipv4_1":"ipv4","ipv6_1":"ipv6","largeint_1":"largeint","string_1":"string","string_1_nested.message":"string","string_1_nested.metadata.source":"string","string_1_nested.metadata.timestamp":"string"}
+
+-- !sql --
+1	{"array_decimal_1":[12345678901234567.123456789, 987.654321000],"array_ipv6_1":["2001:db8:85a3::8a2e:370:7334", "::1"],"char_1":"short text","date_1":"2023-10-27","datetime_1":"2023-10-27 10:30:00","datetimev2_1":"2023-10-27 10:30:00.123456","datev2_1":"2023-10-28","decimal_1":12345.678900000,"int_1":42,"int_nested":{"level1_num_1":1011111,"level1_num_2":102},"ipv4_1":"192.168.1.1","ipv6_1":"::1","largeint_1":12345678901234567890123456789012345678,"string_1":"This is a sample string.","string_1_nested":{"message":"Hello from nested object","metadata":{"source":"generator","timestamp":"2023-10-27T12:00:00Z"}}}
+2	{"array_decimal_1":[12345678901234567.123456789, 987.654321000],"array_ipv6_1":["2001:db8:85a3::8a2e:370:7334", "::1"],"char_1":"short text","date_1":"2023-10-27","datetime_1":"2023-10-27 10:30:00","datetimev2_1":"2023-10-27 10:30:00.123456","datev2_1":"2023-10-28","decimal_1":12345.678900000,"int_1":42,"int_nested":{"level1_num_1":1011111,"level1_num_2":102},"ipv4_1":"192.168.1.1","ipv6_1":"::1","largeint_1":12345678901234567890123456789012345678,"string_1":"This is a sample string.","string_1_nested":{"message":"Hello from nested object","metadata":{"source":"generator","timestamp":"2023-10-27T12:00:00Z"}}}
+3	{"array_decimal_1":[12345678901234567.123456789, 987.654321000],"array_ipv6_1":["2001:db8:85a3::8a2e:370:7334", "::1"],"char_1":"short text","date_1":"2023-10-27","datetime_1":"2023-10-27 10:30:00","datetimev2_1":"2023-10-27 10:30:00.123456","datev2_1":"2023-10-28","decimal_1":12345.678900000,"int_1":42,"int_nested":{"level1_num_1":1011111,"level1_num_2":102},"ipv4_1":"192.168.1.1","ipv6_1":"::1","largeint_1":12345678901234567890123456789012345678,"string_1":"This is a sample string.","string_1_nested":{"message":"Hello from nested object","metadata":{"source":"generator","timestamp":"2023-10-27T12:00:00Z"}}}
+4	{"array_decimal_1":[12345678901234567.123456789, 987.654321000],"array_ipv6_1":["2001:db8:85a3::8a2e:370:7334", "::1"],"char_1":"short text","date_1":"2023-10-27","datetime_1":"2023-10-27 10:30:00","datetimev2_1":"2023-10-27 10:30:00.123456","datev2_1":"2023-10-28","decimal_1":12345.678900000,"int_1":42,"int_nested":{"level1_num_1":1011111,"level1_num_2":102},"ipv4_1":"192.168.1.1","ipv6_1":"::1","largeint_1":12345678901234567890123456789012345678,"string_1":"This is a sample string.","string_1_nested":{"message":"Hello from nested object","metadata":{"source":"generator","timestamp":"2023-10-27T12:00:00Z"}}}
+5	{"array_decimal_1":[12345678901234567.123456789, 987.654321000],"array_ipv6_1":["2001:db8:85a3::8a2e:370:7334", "::1"],"char_1":"short text","date_1":"2023-10-27","datetime_1":"2023-10-27 10:30:00","datetimev2_1":"2023-10-27 10:30:00.123456","datev2_1":"2023-10-28","decimal_1":12345.678900000,"int_1":42,"int_nested":{"level1_num_1":1011111,"level1_num_2":102},"ipv4_1":"192.168.1.1","ipv6_1":"::1","largeint_1":12345678901234567890123456789012345678,"string_1":"This is a sample string.","string_1_nested":{"message":"Hello from nested object","metadata":{"source":"generator","timestamp":"2023-10-27T12:00:00Z"}}}
+6	{"array_decimal_1":[12345678901234567.123456789, 987.654321000],"array_ipv6_1":["2001:db8:85a3::8a2e:370:7334", "::1"],"char_1":"short text","date_1":"2023-10-27","datetime_1":"2023-10-27 10:30:00","datetimev2_1":"2023-10-27 10:30:00.123456","datev2_1":"2023-10-28","decimal_1":12345.678900000,"int_1":42,"int_nested":{"level1_num_1":1011111,"level1_num_2":102},"ipv4_1":"192.168.1.1","ipv6_1":"::1","largeint_1":12345678901234567890123456789012345678,"string_1":"This is a sample string.","string_1_nested":{"message":"Hello from nested object","metadata":{"source":"generator","timestamp":"2023-10-27T12:00:00Z"}}}
+7	{"array_decimal_1":[12345678901234567.123456789, 987.654321000],"array_ipv6_1":["2001:db8:85a3::8a2e:370:7334", "::1"],"char_1":"short text","date_1":"2023-10-27","datetime_1":"2023-10-27 10:30:00","datetimev2_1":"2023-10-27 10:30:00.123456","datev2_1":"2023-10-28","decimal_1":12345.678900000,"int_1":42,"int_nested":{"level1_num_1":1011111,"level1_num_2":102},"ipv4_1":"192.168.1.1","ipv6_1":"::1","largeint_1":12345678901234567890123456789012345678,"string_1":"This is a sample string.","string_1_nested":{"message":"Hello from nested object","metadata":{"source":"generator","timestamp":"2023-10-27T12:00:00Z"}}}
+8	{"array_decimal_1":[12345678901234567.123456789, 987.654321000],"array_ipv6_1":["2001:db8:85a3::8a2e:370:7334", "::1"],"char_1":"short text","date_1":"2023-10-27","datetime_1":"2023-10-27 10:30:00","datetimev2_1":"2023-10-27 10:30:00.123456","datev2_1":"2023-10-28","decimal_1":12345.678900000,"int_1":42,"int_nested":{"level1_num_1":1011111,"level1_num_2":102},"ipv4_1":"192.168.1.1","ipv6_1":"::1","largeint_1":12345678901234567890123456789012345678,"string_1":"This is a sample string.","string_1_nested":{"message":"Hello from nested object","metadata":{"source":"generator","timestamp":"2023-10-27T12:00:00Z"}}}
+9	{"array_decimal_1":[12345678901234567.123456789, 987.654321000],"array_ipv6_1":["2001:db8:85a3::8a2e:370:7334", "::1"],"char_1":"short text","date_1":"2023-10-27","datetime_1":"2023-10-27 10:30:00","datetimev2_1":"2023-10-27 10:30:00.123456","datev2_1":"2023-10-28","decimal_1":12345.678900000,"int_1":42,"int_nested":{"level1_num_1":1011111,"level1_num_2":102},"ipv4_1":"192.168.1.1","ipv6_1":"::1","largeint_1":12345678901234567890123456789012345678,"string_1":"This is a sample string.","string_1_nested":{"message":"Hello from nested object","metadata":{"source":"generator","timestamp":"2023-10-27T12:00:00Z"}}}
+
+-- !sql --
+[12345678901234567.123456789, 987.654321000]	["2001:db8:85a3::8a2e:370:7334", "::1"]	42	{"level1_num_1":1011111,"level1_num_2":102}	This is a sample string.	{"message":"Hello from nested object","metadata":{"source":"generator","timestamp":"2023-10-27T12:00:00Z"}}	12345.678900000	2023-10-27 10:30:00	2023-10-27 10:30:00.123456	2023-10-27	2023-10-28	192.168.1.1	::1	12345678901234567890123456789012345678	short text
+[12345678901234567.123456789, 987.654321000]	["2001:db8:85a3::8a2e:370:7334", "::1"]	42	{"level1_num_1":1011111,"level1_num_2":102}	This is a sample string.	{"message":"Hello from nested object","metadata":{"source":"generator","timestamp":"2023-10-27T12:00:00Z"}}	12345.678900000	2023-10-27 10:30:00	2023-10-27 10:30:00.123456	2023-10-27	2023-10-28	192.168.1.1	::1	12345678901234567890123456789012345678	short text
+[12345678901234567.123456789, 987.654321000]	["2001:db8:85a3::8a2e:370:7334", "::1"]	42	{"level1_num_1":1011111,"level1_num_2":102}	This is a sample string.	{"message":"Hello from nested object","metadata":{"source":"generator","timestamp":"2023-10-27T12:00:00Z"}}	12345.678900000	2023-10-27 10:30:00	2023-10-27 10:30:00.123456	2023-10-27	2023-10-28	192.168.1.1	::1	12345678901234567890123456789012345678	short text
+[12345678901234567.123456789, 987.654321000]	["2001:db8:85a3::8a2e:370:7334", "::1"]	42	{"level1_num_1":1011111,"level1_num_2":102}	This is a sample string.	{"message":"Hello from nested object","metadata":{"source":"generator","timestamp":"2023-10-27T12:00:00Z"}}	12345.678900000	2023-10-27 10:30:00	2023-10-27 10:30:00.123456	2023-10-27	2023-10-28	192.168.1.1	::1	12345678901234567890123456789012345678	short text
+[12345678901234567.123456789, 987.654321000]	["2001:db8:85a3::8a2e:370:7334", "::1"]	42	{"level1_num_1":1011111,"level1_num_2":102}	This is a sample string.	{"message":"Hello from nested object","metadata":{"source":"generator","timestamp":"2023-10-27T12:00:00Z"}}	12345.678900000	2023-10-27 10:30:00	2023-10-27 10:30:00.123456	2023-10-27	2023-10-28	192.168.1.1	::1	12345678901234567890123456789012345678	short text
+[12345678901234567.123456789, 987.654321000]	["2001:db8:85a3::8a2e:370:7334", "::1"]	42	{"level1_num_1":1011111,"level1_num_2":102}	This is a sample string.	{"message":"Hello from nested object","metadata":{"source":"generator","timestamp":"2023-10-27T12:00:00Z"}}	12345.678900000	2023-10-27 10:30:00	2023-10-27 10:30:00.123456	2023-10-27	2023-10-28	192.168.1.1	::1	12345678901234567890123456789012345678	short text
+[12345678901234567.123456789, 987.654321000]	["2001:db8:85a3::8a2e:370:7334", "::1"]	42	{"level1_num_1":1011111,"level1_num_2":102}	This is a sample string.	{"message":"Hello from nested object","metadata":{"source":"generator","timestamp":"2023-10-27T12:00:00Z"}}	12345.678900000	2023-10-27 10:30:00	2023-10-27 10:30:00.123456	2023-10-27	2023-10-28	192.168.1.1	::1	12345678901234567890123456789012345678	short text
+[12345678901234567.123456789, 987.654321000]	["2001:db8:85a3::8a2e:370:7334", "::1"]	42	{"level1_num_1":1011111,"level1_num_2":102}	This is a sample string.	{"message":"Hello from nested object","metadata":{"source":"generator","timestamp":"2023-10-27T12:00:00Z"}}	12345.678900000	2023-10-27 10:30:00	2023-10-27 10:30:00.123456	2023-10-27	2023-10-28	192.168.1.1	::1	12345678901234567890123456789012345678	short text
+[12345678901234567.123456789, 987.654321000]	["2001:db8:85a3::8a2e:370:7334", "::1"]	42	{"level1_num_1":1011111,"level1_num_2":102}	This is a sample string.	{"message":"Hello from nested object","metadata":{"source":"generator","timestamp":"2023-10-27T12:00:00Z"}}	12345.678900000	2023-10-27 10:30:00	2023-10-27 10:30:00.123456	2023-10-27	2023-10-28	192.168.1.1	::1	12345678901234567890123456789012345678	short text
+
diff --git a/regression-test/data/variant_p0/predefine/sql/q01.out b/regression-test/data/variant_p0/predefine/sql/q01.out
index 26fd5d8..06bdeab 100644
--- a/regression-test/data/variant_p0/predefine/sql/q01.out
+++ b/regression-test/data/variant_p0/predefine/sql/q01.out
@@ -4,7 +4,7 @@
 
 -- !q01_2 --
 id	bigint	No	true	\N	
-v1	variant<MATCH_NAME_GLOB 'array_int':array<int>,MATCH_NAME_GLOB 'array_string':array<text>,MATCH_NAME_GLOB 'array_decimal':array<decimalv3(26,9)>,MATCH_NAME_GLOB 'array_datetime':array<datetimev2(0)>,MATCH_NAME_GLOB 'array_datetimev2':array<datetimev2(0)>,MATCH_NAME_GLOB 'array_date':array<datev2>,MATCH_NAME_GLOB 'array_datev2':array<datev2>,MATCH_NAME_GLOB 'array_ipv4':array<ipv4>,MATCH_NAME_GLOB 'array_ipv6':array<ipv6>,MATCH_NAME_GLOB 'array_float':array<decimalv3(26,9)>,MATCH_NAME_GLOB 'array_boolean':array<boolean>,MATCH_NAME_GLOB 'int_':int,MATCH_NAME_GLOB 'string_':text,MATCH_NAME_GLOB 'decimal_':decimalv3(26,9),MATCH_NAME_GLOB 'datetime_':datetimev2(0),MATCH_NAME_GLOB 'datetimev2_':datetimev2(6),MATCH_NAME_GLOB 'date_':datev2,MATCH_NAME_GLOB 'datev2_':datev2,MATCH_NAME_GLOB 'ipv4_':ipv4,MATCH_NAME_GLOB 'ipv6_':ipv6,MATCH_NAME_GLOB 'float_':decimalv3(26,9),MATCH_NAME_GLOB 'boolean_':boolean,MATCH_NAME_GLOB 'varchar_':text>	Yes	false	\N	NONE
+v1	variant<'array_int':array<int>,'array_string':array<text>,'array_decimal':array<decimalv3(26,9)>,'array_datetime':array<datetimev2(0)>,'array_datetimev2':array<datetimev2(0)>,'array_date':array<datev2>,'array_datev2':array<datev2>,'array_ipv4':array<ipv4>,'array_ipv6':array<ipv6>,'array_float':array<decimalv3(26,9)>,'array_boolean':array<boolean>,'int_':int,'string_':text,'decimal_':decimalv3(26,9),'datetime_':datetimev2(0),'datetimev2_':datetimev2(6),'date_':datev2,'datev2_':datev2,'ipv4_':ipv4,'ipv6_':ipv6,'float_':decimalv3(26,9),'boolean_':boolean,'varchar_':text,PROPERTIES ("variant_max_subcolumns_count" = "6")>	Yes	false	\N	NONE
 v1.array_boolean	array<boolean>	Yes	false	\N	NONE
 v1.array_date	array<date>	Yes	false	\N	NONE
 v1.array_datetime	array<datetime>	Yes	false	\N	NONE
diff --git a/regression-test/data/variant_p0/predefine/test_all_prdefine_type_to_sparse.out b/regression-test/data/variant_p0/predefine/test_all_prdefine_type_to_sparse.out
new file mode 100644
index 0000000..25d76de
--- /dev/null
+++ b/regression-test/data/variant_p0/predefine/test_all_prdefine_type_to_sparse.out
@@ -0,0 +1,8920 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !sql --
+{"array_bigint_1":"bigint","array_boolean_1":"bool","array_char_1":"string","array_date_1":"datev2","array_datetime_1":"datetimev2","array_decimal128_1":"decimal128i","array_decimal256_1":"null","array_decimal32_1":"decimal32","array_decimal64_1":"decimal64","array_double_1":"double","array_float_1":"float","array_int_1":"int","array_ipv4_1":"ipv4","array_ipv6_1":"ipv6","array_largeint_1":"largeint","array_smallint_1":"smallint","array_string_1":"string","array_tinyint_1":"tinyint","bigint_1":"bigint","boolean_1":"bool","char_1":"string","date_1":"datev2","datetime_1":"datetimev2","decimal128_1":"decimal128i","decimal32_1":"decimal32","decimal64_1":"decimal64","double_1":"double","float_1":"float","int_1":"int","ipv4_1":"ipv4","ipv6_1":"ipv6","largeint_1":"largeint","other_1":"string","smallint_1":"smallint","string_1":"string","tinyint_1":"tinyint"}
+
+-- !sql --
+{"array_bigint_1":[1, null],"array_boolean_1":[1],"array_char_1":["1"],"array_date_1":["2021-01-01"],"array_datetime_1":["2021-01-01 00:00:00"],"array_decimal128_1":[1.120000000],"array_decimal256_1":[null],"array_decimal32_1":[1.12],"array_decimal64_1":[1.120000000],"array_double_1":[1.12],"array_float_1":[1.12],"array_int_1":[1, null],"array_ipv4_1":["192.168.1.1"],"array_ipv6_1":["2001:db8:85a3::8a2e:370:7334"],"array_largeint_1":[1, null],"array_smallint_1":[1, null],"array_string_1":["1"],"array_tinyint_1":[1, null],"bigint_1":1,"boolean_1":1,"char_1":"1","date_1":"2021-01-01","datetime_1":"2021-01-01 00:00:00","decimal128_1":1.120000000,"decimal32_1":1.12,"decimal64_1":1.120000000,"double_1":1.12,"float_1":1.12,"int_1":1,"ipv4_1":"192.168.1.1","ipv6_1":"2001:db8:85a3::8a2e:370:7334","largeint_1":1,"other_1":"1","smallint_1":1,"string_1":"1","tinyint_1":1}
+{"other_1":"1"}
+
+-- !sql_compaction_before --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.other_1	text	Yes	false	\N	NONE
+var.tinyint_1	tinyint	Yes	false	\N	NONE
+
+-- !sql_compaction_after --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.tinyint_1	tinyint	Yes	false	\N	NONE
+
+-- !sql --
+{"array_bigint_1":[1, null],"array_boolean_1":[1],"array_char_1":["1"],"array_date_1":["2021-01-01"],"array_datetime_1":["2021-01-01 00:00:00"],"array_decimal128_1":[1.120000000],"array_decimal256_1":[null],"array_decimal32_1":[1.12],"array_decimal64_1":[1.120000000],"array_double_1":[1.12],"array_float_1":[1.12],"array_int_1":[1, null],"array_ipv4_1":["192.168.1.1"],"array_ipv6_1":["2001:db8:85a3::8a2e:370:7334"],"array_largeint_1":[1, null],"array_smallint_1":[1, null],"array_string_1":["1"],"array_tinyint_1":[1, null],"bigint_1":1,"boolean_1":1,"char_1":"1","date_1":"2021-01-01","datetime_1":"2021-01-01 00:00:00","decimal128_1":1.120000000,"decimal32_1":1.12,"decimal64_1":1.120000000,"double_1":1.12,"float_1":1.12,"int_1":1,"ipv4_1":"192.168.1.1","ipv6_1":"2001:db8:85a3::8a2e:370:7334","largeint_1":1,"other_1":"1","smallint_1":1,"string_1":"1","tinyint_1":1}
+{"other_1":"1"}
+{"tinyint_1":1}
+{"tinyint_1":2}
+
+-- !sql_compaction_before --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.smallint_1	smallint	Yes	false	\N	NONE
+var.tinyint_1	tinyint	Yes	false	\N	NONE
+
+-- !sql_compaction_after --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.smallint_1	smallint	Yes	false	\N	NONE
+
+-- !sql --
+{"array_bigint_1":[1, null],"array_boolean_1":[1],"array_char_1":["1"],"array_date_1":["2021-01-01"],"array_datetime_1":["2021-01-01 00:00:00"],"array_decimal128_1":[1.120000000],"array_decimal256_1":[null],"array_decimal32_1":[1.12],"array_decimal64_1":[1.120000000],"array_double_1":[1.12],"array_float_1":[1.12],"array_int_1":[1, null],"array_ipv4_1":["192.168.1.1"],"array_ipv6_1":["2001:db8:85a3::8a2e:370:7334"],"array_largeint_1":[1, null],"array_smallint_1":[1, null],"array_string_1":["1"],"array_tinyint_1":[1, null],"bigint_1":1,"boolean_1":1,"char_1":"1","date_1":"2021-01-01","datetime_1":"2021-01-01 00:00:00","decimal128_1":1.120000000,"decimal32_1":1.12,"decimal64_1":1.120000000,"double_1":1.12,"float_1":1.12,"int_1":1,"ipv4_1":"192.168.1.1","ipv6_1":"2001:db8:85a3::8a2e:370:7334","largeint_1":1,"other_1":"1","smallint_1":1,"string_1":"1","tinyint_1":1}
+{"other_1":"1"}
+{"tinyint_1":1}
+{"tinyint_1":2}
+{"smallint_1":1}
+{"smallint_1":2}
+{"smallint_1":3}
+
+-- !sql_compaction_before --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.int_1	int	Yes	false	\N	NONE
+var.smallint_1	smallint	Yes	false	\N	NONE
+
+-- !sql_compaction_after --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.int_1	int	Yes	false	\N	NONE
+
+-- !sql --
+{"array_bigint_1":[1, null],"array_boolean_1":[1],"array_char_1":["1"],"array_date_1":["2021-01-01"],"array_datetime_1":["2021-01-01 00:00:00"],"array_decimal128_1":[1.120000000],"array_decimal256_1":[null],"array_decimal32_1":[1.12],"array_decimal64_1":[1.120000000],"array_double_1":[1.12],"array_float_1":[1.12],"array_int_1":[1, null],"array_ipv4_1":["192.168.1.1"],"array_ipv6_1":["2001:db8:85a3::8a2e:370:7334"],"array_largeint_1":[1, null],"array_smallint_1":[1, null],"array_string_1":["1"],"array_tinyint_1":[1, null],"bigint_1":1,"boolean_1":1,"char_1":"1","date_1":"2021-01-01","datetime_1":"2021-01-01 00:00:00","decimal128_1":1.120000000,"decimal32_1":1.12,"decimal64_1":1.120000000,"double_1":1.12,"float_1":1.12,"int_1":1,"ipv4_1":"192.168.1.1","ipv6_1":"2001:db8:85a3::8a2e:370:7334","largeint_1":1,"other_1":"1","smallint_1":1,"string_1":"1","tinyint_1":1}
+{"other_1":"1"}
+{"tinyint_1":1}
+{"tinyint_1":2}
+{"smallint_1":1}
+{"smallint_1":2}
+{"smallint_1":3}
+{"int_1":1}
+{"int_1":2}
+{"int_1":3}
+{"int_1":4}
+
+-- !sql_compaction_before --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.bigint_1	bigint	Yes	false	\N	NONE
+var.int_1	int	Yes	false	\N	NONE
+
+-- !sql_compaction_after --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.bigint_1	bigint	Yes	false	\N	NONE
+
+-- !sql --
+{"array_bigint_1":[1, null],"array_boolean_1":[1],"array_char_1":["1"],"array_date_1":["2021-01-01"],"array_datetime_1":["2021-01-01 00:00:00"],"array_decimal128_1":[1.120000000],"array_decimal256_1":[null],"array_decimal32_1":[1.12],"array_decimal64_1":[1.120000000],"array_double_1":[1.12],"array_float_1":[1.12],"array_int_1":[1, null],"array_ipv4_1":["192.168.1.1"],"array_ipv6_1":["2001:db8:85a3::8a2e:370:7334"],"array_largeint_1":[1, null],"array_smallint_1":[1, null],"array_string_1":["1"],"array_tinyint_1":[1, null],"bigint_1":1,"boolean_1":1,"char_1":"1","date_1":"2021-01-01","datetime_1":"2021-01-01 00:00:00","decimal128_1":1.120000000,"decimal32_1":1.12,"decimal64_1":1.120000000,"double_1":1.12,"float_1":1.12,"int_1":1,"ipv4_1":"192.168.1.1","ipv6_1":"2001:db8:85a3::8a2e:370:7334","largeint_1":1,"other_1":"1","smallint_1":1,"string_1":"1","tinyint_1":1}
+{"other_1":"1"}
+{"tinyint_1":1}
+{"tinyint_1":2}
+{"smallint_1":1}
+{"smallint_1":2}
+{"smallint_1":3}
+{"int_1":1}
+{"int_1":2}
+{"int_1":3}
+{"int_1":4}
+{"bigint_1":1}
+{"bigint_1":2}
+{"bigint_1":3}
+{"bigint_1":4}
+{"bigint_1":5}
+
+-- !sql_compaction_before --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.bigint_1	bigint	Yes	false	\N	NONE
+var.largeint_1	largeint	Yes	false	\N	NONE
+
+-- !sql_compaction_after --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.largeint_1	largeint	Yes	false	\N	NONE
+
+-- !sql --
+{"array_bigint_1":[1, null],"array_boolean_1":[1],"array_char_1":["1"],"array_date_1":["2021-01-01"],"array_datetime_1":["2021-01-01 00:00:00"],"array_decimal128_1":[1.120000000],"array_decimal256_1":[null],"array_decimal32_1":[1.12],"array_decimal64_1":[1.120000000],"array_double_1":[1.12],"array_float_1":[1.12],"array_int_1":[1, null],"array_ipv4_1":["192.168.1.1"],"array_ipv6_1":["2001:db8:85a3::8a2e:370:7334"],"array_largeint_1":[1, null],"array_smallint_1":[1, null],"array_string_1":["1"],"array_tinyint_1":[1, null],"bigint_1":1,"boolean_1":1,"char_1":"1","date_1":"2021-01-01","datetime_1":"2021-01-01 00:00:00","decimal128_1":1.120000000,"decimal32_1":1.12,"decimal64_1":1.120000000,"double_1":1.12,"float_1":1.12,"int_1":1,"ipv4_1":"192.168.1.1","ipv6_1":"2001:db8:85a3::8a2e:370:7334","largeint_1":1,"other_1":"1","smallint_1":1,"string_1":"1","tinyint_1":1}
+{"other_1":"1"}
+{"tinyint_1":1}
+{"tinyint_1":2}
+{"smallint_1":1}
+{"smallint_1":2}
+{"smallint_1":3}
+{"int_1":1}
+{"int_1":2}
+{"int_1":3}
+{"int_1":4}
+{"bigint_1":1}
+{"bigint_1":2}
+{"bigint_1":3}
+{"bigint_1":4}
+{"bigint_1":5}
+{"largeint_1":1}
+{"largeint_1":2}
+{"largeint_1":3}
+{"largeint_1":4}
+{"largeint_1":5}
+{"largeint_1":6}
+
+-- !sql_compaction_before --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.char_1	text	Yes	false	\N	NONE
+var.largeint_1	largeint	Yes	false	\N	NONE
+
+-- !sql_compaction_after --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.char_1	text	Yes	false	\N	NONE
+
+-- !sql --
+{"array_bigint_1":[1, null],"array_boolean_1":[1],"array_char_1":["1"],"array_date_1":["2021-01-01"],"array_datetime_1":["2021-01-01 00:00:00"],"array_decimal128_1":[1.120000000],"array_decimal256_1":[null],"array_decimal32_1":[1.12],"array_decimal64_1":[1.120000000],"array_double_1":[1.12],"array_float_1":[1.12],"array_int_1":[1, null],"array_ipv4_1":["192.168.1.1"],"array_ipv6_1":["2001:db8:85a3::8a2e:370:7334"],"array_largeint_1":[1, null],"array_smallint_1":[1, null],"array_string_1":["1"],"array_tinyint_1":[1, null],"bigint_1":1,"boolean_1":1,"char_1":"1","date_1":"2021-01-01","datetime_1":"2021-01-01 00:00:00","decimal128_1":1.120000000,"decimal32_1":1.12,"decimal64_1":1.120000000,"double_1":1.12,"float_1":1.12,"int_1":1,"ipv4_1":"192.168.1.1","ipv6_1":"2001:db8:85a3::8a2e:370:7334","largeint_1":1,"other_1":"1","smallint_1":1,"string_1":"1","tinyint_1":1}
+{"other_1":"1"}
+{"tinyint_1":1}
+{"tinyint_1":2}
+{"smallint_1":1}
+{"smallint_1":2}
+{"smallint_1":3}
+{"int_1":1}
+{"int_1":2}
+{"int_1":3}
+{"int_1":4}
+{"bigint_1":1}
+{"bigint_1":2}
+{"bigint_1":3}
+{"bigint_1":4}
+{"bigint_1":5}
+{"largeint_1":1}
+{"largeint_1":2}
+{"largeint_1":3}
+{"largeint_1":4}
+{"largeint_1":5}
+{"largeint_1":6}
+{"char_1":"1"}
+{"char_1":"2"}
+{"char_1":"3"}
+{"char_1":"4"}
+{"char_1":"5"}
+{"char_1":"6"}
+{"char_1":"7"}
+
+-- !sql_compaction_before --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.char_1	text	Yes	false	\N	NONE
+var.string_1	text	Yes	false	\N	NONE
+
+-- !sql_compaction_after --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.string_1	text	Yes	false	\N	NONE
+
+-- !sql --
+{"array_bigint_1":[1, null],"array_boolean_1":[1],"array_char_1":["1"],"array_date_1":["2021-01-01"],"array_datetime_1":["2021-01-01 00:00:00"],"array_decimal128_1":[1.120000000],"array_decimal256_1":[null],"array_decimal32_1":[1.12],"array_decimal64_1":[1.120000000],"array_double_1":[1.12],"array_float_1":[1.12],"array_int_1":[1, null],"array_ipv4_1":["192.168.1.1"],"array_ipv6_1":["2001:db8:85a3::8a2e:370:7334"],"array_largeint_1":[1, null],"array_smallint_1":[1, null],"array_string_1":["1"],"array_tinyint_1":[1, null],"bigint_1":1,"boolean_1":1,"char_1":"1","date_1":"2021-01-01","datetime_1":"2021-01-01 00:00:00","decimal128_1":1.120000000,"decimal32_1":1.12,"decimal64_1":1.120000000,"double_1":1.12,"float_1":1.12,"int_1":1,"ipv4_1":"192.168.1.1","ipv6_1":"2001:db8:85a3::8a2e:370:7334","largeint_1":1,"other_1":"1","smallint_1":1,"string_1":"1","tinyint_1":1}
+{"other_1":"1"}
+{"tinyint_1":1}
+{"tinyint_1":2}
+{"smallint_1":1}
+{"smallint_1":2}
+{"smallint_1":3}
+{"int_1":1}
+{"int_1":2}
+{"int_1":3}
+{"int_1":4}
+{"bigint_1":1}
+{"bigint_1":2}
+{"bigint_1":3}
+{"bigint_1":4}
+{"bigint_1":5}
+{"largeint_1":1}
+{"largeint_1":2}
+{"largeint_1":3}
+{"largeint_1":4}
+{"largeint_1":5}
+{"largeint_1":6}
+{"char_1":"1"}
+{"char_1":"2"}
+{"char_1":"3"}
+{"char_1":"4"}
+{"char_1":"5"}
+{"char_1":"6"}
+{"char_1":"7"}
+{"string_1":"1"}
+{"string_1":"2"}
+{"string_1":"3"}
+{"string_1":"4"}
+{"string_1":"5"}
+{"string_1":"6"}
+{"string_1":"7"}
+{"string_1":"8"}
+
+-- !sql_compaction_before --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.float_1	float	Yes	false	\N	NONE
+var.string_1	text	Yes	false	\N	NONE
+
+-- !sql_compaction_after --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.string_1	text	Yes	false	\N	NONE
+
+-- !sql --
+{"array_bigint_1":[1, null],"array_boolean_1":[1],"array_char_1":["1"],"array_date_1":["2021-01-01"],"array_datetime_1":["2021-01-01 00:00:00"],"array_decimal128_1":[1.120000000],"array_decimal256_1":[null],"array_decimal32_1":[1.12],"array_decimal64_1":[1.120000000],"array_double_1":[1.12],"array_float_1":[1.12],"array_int_1":[1, null],"array_ipv4_1":["192.168.1.1"],"array_ipv6_1":["2001:db8:85a3::8a2e:370:7334"],"array_largeint_1":[1, null],"array_smallint_1":[1, null],"array_string_1":["1"],"array_tinyint_1":[1, null],"bigint_1":1,"boolean_1":1,"char_1":"1","date_1":"2021-01-01","datetime_1":"2021-01-01 00:00:00","decimal128_1":1.120000000,"decimal32_1":1.12,"decimal64_1":1.120000000,"double_1":1.12,"float_1":1.12,"int_1":1,"ipv4_1":"192.168.1.1","ipv6_1":"2001:db8:85a3::8a2e:370:7334","largeint_1":1,"other_1":"1","smallint_1":1,"string_1":"1","tinyint_1":1}
+{"other_1":"1"}
+{"tinyint_1":1}
+{"tinyint_1":2}
+{"smallint_1":1}
+{"smallint_1":2}
+{"smallint_1":3}
+{"int_1":1}
+{"int_1":2}
+{"int_1":3}
+{"int_1":4}
+{"bigint_1":1}
+{"bigint_1":2}
+{"bigint_1":3}
+{"bigint_1":4}
+{"bigint_1":5}
+{"largeint_1":1}
+{"largeint_1":2}
+{"largeint_1":3}
+{"largeint_1":4}
+{"largeint_1":5}
+{"largeint_1":6}
+{"char_1":"1"}
+{"char_1":"2"}
+{"char_1":"3"}
+{"char_1":"4"}
+{"char_1":"5"}
+{"char_1":"6"}
+{"char_1":"7"}
+{"string_1":"1"}
+{"string_1":"2"}
+{"string_1":"3"}
+{"string_1":"4"}
+{"string_1":"5"}
+{"string_1":"6"}
+{"string_1":"7"}
+{"string_1":"8"}
+{"float_1":1.12}
+{"float_1":2.12}
+{"float_1":3.12}
+{"float_1":4.12}
+{"float_1":5.12}
+{"float_1":6.12}
+{"float_1":7.12}
+{"float_1":8.12}
+
+-- !sql_compaction_before --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.double_1	double	Yes	false	\N	NONE
+var.string_1	text	Yes	false	\N	NONE
+
+-- !sql_compaction_after --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.double_1	double	Yes	false	\N	NONE
+
+-- !sql --
+{"array_bigint_1":[1, null],"array_boolean_1":[1],"array_char_1":["1"],"array_date_1":["2021-01-01"],"array_datetime_1":["2021-01-01 00:00:00"],"array_decimal128_1":[1.120000000],"array_decimal256_1":[null],"array_decimal32_1":[1.12],"array_decimal64_1":[1.120000000],"array_double_1":[1.12],"array_float_1":[1.12],"array_int_1":[1, null],"array_ipv4_1":["192.168.1.1"],"array_ipv6_1":["2001:db8:85a3::8a2e:370:7334"],"array_largeint_1":[1, null],"array_smallint_1":[1, null],"array_string_1":["1"],"array_tinyint_1":[1, null],"bigint_1":1,"boolean_1":1,"char_1":"1","date_1":"2021-01-01","datetime_1":"2021-01-01 00:00:00","decimal128_1":1.120000000,"decimal32_1":1.12,"decimal64_1":1.120000000,"double_1":1.12,"float_1":1.12,"int_1":1,"ipv4_1":"192.168.1.1","ipv6_1":"2001:db8:85a3::8a2e:370:7334","largeint_1":1,"other_1":"1","smallint_1":1,"string_1":"1","tinyint_1":1}
+{"other_1":"1"}
+{"tinyint_1":1}
+{"tinyint_1":2}
+{"smallint_1":1}
+{"smallint_1":2}
+{"smallint_1":3}
+{"int_1":1}
+{"int_1":2}
+{"int_1":3}
+{"int_1":4}
+{"bigint_1":1}
+{"bigint_1":2}
+{"bigint_1":3}
+{"bigint_1":4}
+{"bigint_1":5}
+{"largeint_1":1}
+{"largeint_1":2}
+{"largeint_1":3}
+{"largeint_1":4}
+{"largeint_1":5}
+{"largeint_1":6}
+{"char_1":"1"}
+{"char_1":"2"}
+{"char_1":"3"}
+{"char_1":"4"}
+{"char_1":"5"}
+{"char_1":"6"}
+{"char_1":"7"}
+{"string_1":"1"}
+{"string_1":"2"}
+{"string_1":"3"}
+{"string_1":"4"}
+{"string_1":"5"}
+{"string_1":"6"}
+{"string_1":"7"}
+{"string_1":"8"}
+{"float_1":1.12}
+{"float_1":2.12}
+{"float_1":3.12}
+{"float_1":4.12}
+{"float_1":5.12}
+{"float_1":6.12}
+{"float_1":7.12}
+{"float_1":8.12}
+{"double_1":1.12}
+{"double_1":2.12}
+{"double_1":3.12}
+{"double_1":4.12}
+{"double_1":5.12}
+{"double_1":6.12}
+{"double_1":7.12}
+{"double_1":8.12}
+{"double_1":9.12}
+
+-- !sql_compaction_before --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.decimal32_1	decimal(8,2)	Yes	false	\N	NONE
+var.double_1	double	Yes	false	\N	NONE
+
+-- !sql_compaction_after --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.decimal32_1	decimal(8,2)	Yes	false	\N	NONE
+
+-- !sql --
+{"array_bigint_1":[1, null],"array_boolean_1":[1],"array_char_1":["1"],"array_date_1":["2021-01-01"],"array_datetime_1":["2021-01-01 00:00:00"],"array_decimal128_1":[1.120000000],"array_decimal256_1":[null],"array_decimal32_1":[1.12],"array_decimal64_1":[1.120000000],"array_double_1":[1.12],"array_float_1":[1.12],"array_int_1":[1, null],"array_ipv4_1":["192.168.1.1"],"array_ipv6_1":["2001:db8:85a3::8a2e:370:7334"],"array_largeint_1":[1, null],"array_smallint_1":[1, null],"array_string_1":["1"],"array_tinyint_1":[1, null],"bigint_1":1,"boolean_1":1,"char_1":"1","date_1":"2021-01-01","datetime_1":"2021-01-01 00:00:00","decimal128_1":1.120000000,"decimal32_1":1.12,"decimal64_1":1.120000000,"double_1":1.12,"float_1":1.12,"int_1":1,"ipv4_1":"192.168.1.1","ipv6_1":"2001:db8:85a3::8a2e:370:7334","largeint_1":1,"other_1":"1","smallint_1":1,"string_1":"1","tinyint_1":1}
+{"other_1":"1"}
+{"tinyint_1":1}
+{"tinyint_1":2}
+{"smallint_1":1}
+{"smallint_1":2}
+{"smallint_1":3}
+{"int_1":1}
+{"int_1":2}
+{"int_1":3}
+{"int_1":4}
+{"bigint_1":1}
+{"bigint_1":2}
+{"bigint_1":3}
+{"bigint_1":4}
+{"bigint_1":5}
+{"largeint_1":1}
+{"largeint_1":2}
+{"largeint_1":3}
+{"largeint_1":4}
+{"largeint_1":5}
+{"largeint_1":6}
+{"char_1":"1"}
+{"char_1":"2"}
+{"char_1":"3"}
+{"char_1":"4"}
+{"char_1":"5"}
+{"char_1":"6"}
+{"char_1":"7"}
+{"string_1":"1"}
+{"string_1":"2"}
+{"string_1":"3"}
+{"string_1":"4"}
+{"string_1":"5"}
+{"string_1":"6"}
+{"string_1":"7"}
+{"string_1":"8"}
+{"float_1":1.12}
+{"float_1":2.12}
+{"float_1":3.12}
+{"float_1":4.12}
+{"float_1":5.12}
+{"float_1":6.12}
+{"float_1":7.12}
+{"float_1":8.12}
+{"double_1":1.12}
+{"double_1":2.12}
+{"double_1":3.12}
+{"double_1":4.12}
+{"double_1":5.12}
+{"double_1":6.12}
+{"double_1":7.12}
+{"double_1":8.12}
+{"double_1":9.12}
+{"decimal32_1":1.12}
+{"decimal32_1":2.12}
+{"decimal32_1":3.12}
+{"decimal32_1":4.12}
+{"decimal32_1":5.12}
+{"decimal32_1":6.12}
+{"decimal32_1":7.12}
+{"decimal32_1":8.12}
+{"decimal32_1":9.12}
+{"decimal32_1":10.12}
+
+-- !sql_compaction_before --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.decimal32_1	decimal(8,2)	Yes	false	\N	NONE
+var.decimal64_1	decimal(16,9)	Yes	false	\N	NONE
+
+-- !sql_compaction_after --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.decimal64_1	decimal(16,9)	Yes	false	\N	NONE
+
+-- !sql --
+{"array_bigint_1":[1, null],"array_boolean_1":[1],"array_char_1":["1"],"array_date_1":["2021-01-01"],"array_datetime_1":["2021-01-01 00:00:00"],"array_decimal128_1":[1.120000000],"array_decimal256_1":[null],"array_decimal32_1":[1.12],"array_decimal64_1":[1.120000000],"array_double_1":[1.12],"array_float_1":[1.12],"array_int_1":[1, null],"array_ipv4_1":["192.168.1.1"],"array_ipv6_1":["2001:db8:85a3::8a2e:370:7334"],"array_largeint_1":[1, null],"array_smallint_1":[1, null],"array_string_1":["1"],"array_tinyint_1":[1, null],"bigint_1":1,"boolean_1":1,"char_1":"1","date_1":"2021-01-01","datetime_1":"2021-01-01 00:00:00","decimal128_1":1.120000000,"decimal32_1":1.12,"decimal64_1":1.120000000,"double_1":1.12,"float_1":1.12,"int_1":1,"ipv4_1":"192.168.1.1","ipv6_1":"2001:db8:85a3::8a2e:370:7334","largeint_1":1,"other_1":"1","smallint_1":1,"string_1":"1","tinyint_1":1}
+{"other_1":"1"}
+{"tinyint_1":1}
+{"tinyint_1":2}
+{"smallint_1":1}
+{"smallint_1":2}
+{"smallint_1":3}
+{"int_1":1}
+{"int_1":2}
+{"int_1":3}
+{"int_1":4}
+{"bigint_1":1}
+{"bigint_1":2}
+{"bigint_1":3}
+{"bigint_1":4}
+{"bigint_1":5}
+{"largeint_1":1}
+{"largeint_1":2}
+{"largeint_1":3}
+{"largeint_1":4}
+{"largeint_1":5}
+{"largeint_1":6}
+{"char_1":"1"}
+{"char_1":"2"}
+{"char_1":"3"}
+{"char_1":"4"}
+{"char_1":"5"}
+{"char_1":"6"}
+{"char_1":"7"}
+{"string_1":"1"}
+{"string_1":"2"}
+{"string_1":"3"}
+{"string_1":"4"}
+{"string_1":"5"}
+{"string_1":"6"}
+{"string_1":"7"}
+{"string_1":"8"}
+{"float_1":1.12}
+{"float_1":2.12}
+{"float_1":3.12}
+{"float_1":4.12}
+{"float_1":5.12}
+{"float_1":6.12}
+{"float_1":7.12}
+{"float_1":8.12}
+{"double_1":1.12}
+{"double_1":2.12}
+{"double_1":3.12}
+{"double_1":4.12}
+{"double_1":5.12}
+{"double_1":6.12}
+{"double_1":7.12}
+{"double_1":8.12}
+{"double_1":9.12}
+{"decimal32_1":1.12}
+{"decimal32_1":2.12}
+{"decimal32_1":3.12}
+{"decimal32_1":4.12}
+{"decimal32_1":5.12}
+{"decimal32_1":6.12}
+{"decimal32_1":7.12}
+{"decimal32_1":8.12}
+{"decimal32_1":9.12}
+{"decimal32_1":10.12}
+{"decimal64_1":1.120000000}
+{"decimal64_1":2.120000000}
+{"decimal64_1":3.120000000}
+{"decimal64_1":4.120000000}
+{"decimal64_1":5.120000000}
+{"decimal64_1":6.120000000}
+{"decimal64_1":7.120000000}
+{"decimal64_1":8.120000000}
+{"decimal64_1":9.120000000}
+{"decimal64_1":10.120000000}
+{"decimal64_1":11.120000000}
+
+-- !sql_compaction_before --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.decimal128_1	decimal(36,9)	Yes	false	\N	NONE
+var.decimal64_1	decimal(16,9)	Yes	false	\N	NONE
+
+-- !sql_compaction_after --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.decimal128_1	decimal(36,9)	Yes	false	\N	NONE
+
+-- !sql --
+{"array_bigint_1":[1, null],"array_boolean_1":[1],"array_char_1":["1"],"array_date_1":["2021-01-01"],"array_datetime_1":["2021-01-01 00:00:00"],"array_decimal128_1":[1.120000000],"array_decimal256_1":[null],"array_decimal32_1":[1.12],"array_decimal64_1":[1.120000000],"array_double_1":[1.12],"array_float_1":[1.12],"array_int_1":[1, null],"array_ipv4_1":["192.168.1.1"],"array_ipv6_1":["2001:db8:85a3::8a2e:370:7334"],"array_largeint_1":[1, null],"array_smallint_1":[1, null],"array_string_1":["1"],"array_tinyint_1":[1, null],"bigint_1":1,"boolean_1":1,"char_1":"1","date_1":"2021-01-01","datetime_1":"2021-01-01 00:00:00","decimal128_1":1.120000000,"decimal32_1":1.12,"decimal64_1":1.120000000,"double_1":1.12,"float_1":1.12,"int_1":1,"ipv4_1":"192.168.1.1","ipv6_1":"2001:db8:85a3::8a2e:370:7334","largeint_1":1,"other_1":"1","smallint_1":1,"string_1":"1","tinyint_1":1}
+{"other_1":"1"}
+{"tinyint_1":1}
+{"tinyint_1":2}
+{"smallint_1":1}
+{"smallint_1":2}
+{"smallint_1":3}
+{"int_1":1}
+{"int_1":2}
+{"int_1":3}
+{"int_1":4}
+{"bigint_1":1}
+{"bigint_1":2}
+{"bigint_1":3}
+{"bigint_1":4}
+{"bigint_1":5}
+{"largeint_1":1}
+{"largeint_1":2}
+{"largeint_1":3}
+{"largeint_1":4}
+{"largeint_1":5}
+{"largeint_1":6}
+{"char_1":"1"}
+{"char_1":"2"}
+{"char_1":"3"}
+{"char_1":"4"}
+{"char_1":"5"}
+{"char_1":"6"}
+{"char_1":"7"}
+{"string_1":"1"}
+{"string_1":"2"}
+{"string_1":"3"}
+{"string_1":"4"}
+{"string_1":"5"}
+{"string_1":"6"}
+{"string_1":"7"}
+{"string_1":"8"}
+{"float_1":1.12}
+{"float_1":2.12}
+{"float_1":3.12}
+{"float_1":4.12}
+{"float_1":5.12}
+{"float_1":6.12}
+{"float_1":7.12}
+{"float_1":8.12}
+{"double_1":1.12}
+{"double_1":2.12}
+{"double_1":3.12}
+{"double_1":4.12}
+{"double_1":5.12}
+{"double_1":6.12}
+{"double_1":7.12}
+{"double_1":8.12}
+{"double_1":9.12}
+{"decimal32_1":1.12}
+{"decimal32_1":2.12}
+{"decimal32_1":3.12}
+{"decimal32_1":4.12}
+{"decimal32_1":5.12}
+{"decimal32_1":6.12}
+{"decimal32_1":7.12}
+{"decimal32_1":8.12}
+{"decimal32_1":9.12}
+{"decimal32_1":10.12}
+{"decimal64_1":1.120000000}
+{"decimal64_1":2.120000000}
+{"decimal64_1":3.120000000}
+{"decimal64_1":4.120000000}
+{"decimal64_1":5.120000000}
+{"decimal64_1":6.120000000}
+{"decimal64_1":7.120000000}
+{"decimal64_1":8.120000000}
+{"decimal64_1":9.120000000}
+{"decimal64_1":10.120000000}
+{"decimal64_1":11.120000000}
+{"decimal128_1":1.120000000}
+{"decimal128_1":2.120000000}
+{"decimal128_1":3.120000000}
+{"decimal128_1":4.120000000}
+{"decimal128_1":5.120000000}
+{"decimal128_1":6.120000000}
+{"decimal128_1":7.120000000}
+{"decimal128_1":8.120000000}
+{"decimal128_1":9.120000000}
+{"decimal128_1":10.120000000}
+{"decimal128_1":11.120000000}
+{"decimal128_1":12.120000000}
+
+-- !sql_compaction_before --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.decimal128_1	decimal(36,9)	Yes	false	\N	NONE
+var.decimal256_1	unknown type: UNSUPPORTED_TYPE	Yes	false	\N	NONE
+
+-- !sql_compaction_after --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.decimal128_1	decimal(36,9)	Yes	false	\N	NONE
+
+-- !sql --
+{"array_bigint_1":[1, null],"array_boolean_1":[1],"array_char_1":["1"],"array_date_1":["2021-01-01"],"array_datetime_1":["2021-01-01 00:00:00"],"array_decimal128_1":[1.120000000],"array_decimal256_1":[null],"array_decimal32_1":[1.12],"array_decimal64_1":[1.120000000],"array_double_1":[1.12],"array_float_1":[1.12],"array_int_1":[1, null],"array_ipv4_1":["192.168.1.1"],"array_ipv6_1":["2001:db8:85a3::8a2e:370:7334"],"array_largeint_1":[1, null],"array_smallint_1":[1, null],"array_string_1":["1"],"array_tinyint_1":[1, null],"bigint_1":1,"boolean_1":1,"char_1":"1","date_1":"2021-01-01","datetime_1":"2021-01-01 00:00:00","decimal128_1":1.120000000,"decimal32_1":1.12,"decimal64_1":1.120000000,"double_1":1.12,"float_1":1.12,"int_1":1,"ipv4_1":"192.168.1.1","ipv6_1":"2001:db8:85a3::8a2e:370:7334","largeint_1":1,"other_1":"1","smallint_1":1,"string_1":"1","tinyint_1":1}
+{"other_1":"1"}
+{"tinyint_1":1}
+{"tinyint_1":2}
+{"smallint_1":1}
+{"smallint_1":2}
+{"smallint_1":3}
+{"int_1":1}
+{"int_1":2}
+{"int_1":3}
+{"int_1":4}
+{"bigint_1":1}
+{"bigint_1":2}
+{"bigint_1":3}
+{"bigint_1":4}
+{"bigint_1":5}
+{"largeint_1":1}
+{"largeint_1":2}
+{"largeint_1":3}
+{"largeint_1":4}
+{"largeint_1":5}
+{"largeint_1":6}
+{"char_1":"1"}
+{"char_1":"2"}
+{"char_1":"3"}
+{"char_1":"4"}
+{"char_1":"5"}
+{"char_1":"6"}
+{"char_1":"7"}
+{"string_1":"1"}
+{"string_1":"2"}
+{"string_1":"3"}
+{"string_1":"4"}
+{"string_1":"5"}
+{"string_1":"6"}
+{"string_1":"7"}
+{"string_1":"8"}
+{"float_1":1.12}
+{"float_1":2.12}
+{"float_1":3.12}
+{"float_1":4.12}
+{"float_1":5.12}
+{"float_1":6.12}
+{"float_1":7.12}
+{"float_1":8.12}
+{"double_1":1.12}
+{"double_1":2.12}
+{"double_1":3.12}
+{"double_1":4.12}
+{"double_1":5.12}
+{"double_1":6.12}
+{"double_1":7.12}
+{"double_1":8.12}
+{"double_1":9.12}
+{"decimal32_1":1.12}
+{"decimal32_1":2.12}
+{"decimal32_1":3.12}
+{"decimal32_1":4.12}
+{"decimal32_1":5.12}
+{"decimal32_1":6.12}
+{"decimal32_1":7.12}
+{"decimal32_1":8.12}
+{"decimal32_1":9.12}
+{"decimal32_1":10.12}
+{"decimal64_1":1.120000000}
+{"decimal64_1":2.120000000}
+{"decimal64_1":3.120000000}
+{"decimal64_1":4.120000000}
+{"decimal64_1":5.120000000}
+{"decimal64_1":6.120000000}
+{"decimal64_1":7.120000000}
+{"decimal64_1":8.120000000}
+{"decimal64_1":9.120000000}
+{"decimal64_1":10.120000000}
+{"decimal64_1":11.120000000}
+{"decimal128_1":1.120000000}
+{"decimal128_1":2.120000000}
+{"decimal128_1":3.120000000}
+{"decimal128_1":4.120000000}
+{"decimal128_1":5.120000000}
+{"decimal128_1":6.120000000}
+{"decimal128_1":7.120000000}
+{"decimal128_1":8.120000000}
+{"decimal128_1":9.120000000}
+{"decimal128_1":10.120000000}
+{"decimal128_1":11.120000000}
+{"decimal128_1":12.120000000}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+
+-- !sql_compaction_before --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.datetime_1	datetime	Yes	false	\N	NONE
+var.decimal128_1	decimal(36,9)	Yes	false	\N	NONE
+
+-- !sql_compaction_after --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.datetime_1	datetime	Yes	false	\N	NONE
+
+-- !sql --
+{"array_bigint_1":[1, null],"array_boolean_1":[1],"array_char_1":["1"],"array_date_1":["2021-01-01"],"array_datetime_1":["2021-01-01 00:00:00"],"array_decimal128_1":[1.120000000],"array_decimal256_1":[null],"array_decimal32_1":[1.12],"array_decimal64_1":[1.120000000],"array_double_1":[1.12],"array_float_1":[1.12],"array_int_1":[1, null],"array_ipv4_1":["192.168.1.1"],"array_ipv6_1":["2001:db8:85a3::8a2e:370:7334"],"array_largeint_1":[1, null],"array_smallint_1":[1, null],"array_string_1":["1"],"array_tinyint_1":[1, null],"bigint_1":1,"boolean_1":1,"char_1":"1","date_1":"2021-01-01","datetime_1":"2021-01-01 00:00:00","decimal128_1":1.120000000,"decimal32_1":1.12,"decimal64_1":1.120000000,"double_1":1.12,"float_1":1.12,"int_1":1,"ipv4_1":"192.168.1.1","ipv6_1":"2001:db8:85a3::8a2e:370:7334","largeint_1":1,"other_1":"1","smallint_1":1,"string_1":"1","tinyint_1":1}
+{"other_1":"1"}
+{"tinyint_1":1}
+{"tinyint_1":2}
+{"smallint_1":1}
+{"smallint_1":2}
+{"smallint_1":3}
+{"int_1":1}
+{"int_1":2}
+{"int_1":3}
+{"int_1":4}
+{"bigint_1":1}
+{"bigint_1":2}
+{"bigint_1":3}
+{"bigint_1":4}
+{"bigint_1":5}
+{"largeint_1":1}
+{"largeint_1":2}
+{"largeint_1":3}
+{"largeint_1":4}
+{"largeint_1":5}
+{"largeint_1":6}
+{"char_1":"1"}
+{"char_1":"2"}
+{"char_1":"3"}
+{"char_1":"4"}
+{"char_1":"5"}
+{"char_1":"6"}
+{"char_1":"7"}
+{"string_1":"1"}
+{"string_1":"2"}
+{"string_1":"3"}
+{"string_1":"4"}
+{"string_1":"5"}
+{"string_1":"6"}
+{"string_1":"7"}
+{"string_1":"8"}
+{"float_1":1.12}
+{"float_1":2.12}
+{"float_1":3.12}
+{"float_1":4.12}
+{"float_1":5.12}
+{"float_1":6.12}
+{"float_1":7.12}
+{"float_1":8.12}
+{"double_1":1.12}
+{"double_1":2.12}
+{"double_1":3.12}
+{"double_1":4.12}
+{"double_1":5.12}
+{"double_1":6.12}
+{"double_1":7.12}
+{"double_1":8.12}
+{"double_1":9.12}
+{"decimal32_1":1.12}
+{"decimal32_1":2.12}
+{"decimal32_1":3.12}
+{"decimal32_1":4.12}
+{"decimal32_1":5.12}
+{"decimal32_1":6.12}
+{"decimal32_1":7.12}
+{"decimal32_1":8.12}
+{"decimal32_1":9.12}
+{"decimal32_1":10.12}
+{"decimal64_1":1.120000000}
+{"decimal64_1":2.120000000}
+{"decimal64_1":3.120000000}
+{"decimal64_1":4.120000000}
+{"decimal64_1":5.120000000}
+{"decimal64_1":6.120000000}
+{"decimal64_1":7.120000000}
+{"decimal64_1":8.120000000}
+{"decimal64_1":9.120000000}
+{"decimal64_1":10.120000000}
+{"decimal64_1":11.120000000}
+{"decimal128_1":1.120000000}
+{"decimal128_1":2.120000000}
+{"decimal128_1":3.120000000}
+{"decimal128_1":4.120000000}
+{"decimal128_1":5.120000000}
+{"decimal128_1":6.120000000}
+{"decimal128_1":7.120000000}
+{"decimal128_1":8.120000000}
+{"decimal128_1":9.120000000}
+{"decimal128_1":10.120000000}
+{"decimal128_1":11.120000000}
+{"decimal128_1":12.120000000}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{"datetime_1":"2021-01-01 00:00:00"}
+{"datetime_1":"2021-01-01 00:00:01"}
+{"datetime_1":"2021-01-01 00:00:02"}
+{"datetime_1":"2021-01-01 00:00:03"}
+{"datetime_1":"2021-01-01 00:00:04"}
+{"datetime_1":"2021-01-01 00:00:05"}
+{"datetime_1":"2021-01-01 00:00:06"}
+{"datetime_1":"2021-01-01 00:00:07"}
+{"datetime_1":"2021-01-01 00:00:08"}
+{"datetime_1":"2021-01-01 00:00:09"}
+{"datetime_1":"2021-01-01 00:00:10"}
+{"datetime_1":"2021-01-01 00:00:07"}
+{"datetime_1":"2021-01-01 00:00:08"}
+
+-- !sql_compaction_before --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.date_1	date	Yes	false	\N	NONE
+var.datetime_1	datetime	Yes	false	\N	NONE
+
+-- !sql_compaction_after --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.date_1	date	Yes	false	\N	NONE
+
+-- !sql --
+{"array_bigint_1":[1, null],"array_boolean_1":[1],"array_char_1":["1"],"array_date_1":["2021-01-01"],"array_datetime_1":["2021-01-01 00:00:00"],"array_decimal128_1":[1.120000000],"array_decimal256_1":[null],"array_decimal32_1":[1.12],"array_decimal64_1":[1.120000000],"array_double_1":[1.12],"array_float_1":[1.12],"array_int_1":[1, null],"array_ipv4_1":["192.168.1.1"],"array_ipv6_1":["2001:db8:85a3::8a2e:370:7334"],"array_largeint_1":[1, null],"array_smallint_1":[1, null],"array_string_1":["1"],"array_tinyint_1":[1, null],"bigint_1":1,"boolean_1":1,"char_1":"1","date_1":"2021-01-01","datetime_1":"2021-01-01 00:00:00","decimal128_1":1.120000000,"decimal32_1":1.12,"decimal64_1":1.120000000,"double_1":1.12,"float_1":1.12,"int_1":1,"ipv4_1":"192.168.1.1","ipv6_1":"2001:db8:85a3::8a2e:370:7334","largeint_1":1,"other_1":"1","smallint_1":1,"string_1":"1","tinyint_1":1}
+{"other_1":"1"}
+{"tinyint_1":1}
+{"tinyint_1":2}
+{"smallint_1":1}
+{"smallint_1":2}
+{"smallint_1":3}
+{"int_1":1}
+{"int_1":2}
+{"int_1":3}
+{"int_1":4}
+{"bigint_1":1}
+{"bigint_1":2}
+{"bigint_1":3}
+{"bigint_1":4}
+{"bigint_1":5}
+{"largeint_1":1}
+{"largeint_1":2}
+{"largeint_1":3}
+{"largeint_1":4}
+{"largeint_1":5}
+{"largeint_1":6}
+{"char_1":"1"}
+{"char_1":"2"}
+{"char_1":"3"}
+{"char_1":"4"}
+{"char_1":"5"}
+{"char_1":"6"}
+{"char_1":"7"}
+{"string_1":"1"}
+{"string_1":"2"}
+{"string_1":"3"}
+{"string_1":"4"}
+{"string_1":"5"}
+{"string_1":"6"}
+{"string_1":"7"}
+{"string_1":"8"}
+{"float_1":1.12}
+{"float_1":2.12}
+{"float_1":3.12}
+{"float_1":4.12}
+{"float_1":5.12}
+{"float_1":6.12}
+{"float_1":7.12}
+{"float_1":8.12}
+{"double_1":1.12}
+{"double_1":2.12}
+{"double_1":3.12}
+{"double_1":4.12}
+{"double_1":5.12}
+{"double_1":6.12}
+{"double_1":7.12}
+{"double_1":8.12}
+{"double_1":9.12}
+{"decimal32_1":1.12}
+{"decimal32_1":2.12}
+{"decimal32_1":3.12}
+{"decimal32_1":4.12}
+{"decimal32_1":5.12}
+{"decimal32_1":6.12}
+{"decimal32_1":7.12}
+{"decimal32_1":8.12}
+{"decimal32_1":9.12}
+{"decimal32_1":10.12}
+{"decimal64_1":1.120000000}
+{"decimal64_1":2.120000000}
+{"decimal64_1":3.120000000}
+{"decimal64_1":4.120000000}
+{"decimal64_1":5.120000000}
+{"decimal64_1":6.120000000}
+{"decimal64_1":7.120000000}
+{"decimal64_1":8.120000000}
+{"decimal64_1":9.120000000}
+{"decimal64_1":10.120000000}
+{"decimal64_1":11.120000000}
+{"decimal128_1":1.120000000}
+{"decimal128_1":2.120000000}
+{"decimal128_1":3.120000000}
+{"decimal128_1":4.120000000}
+{"decimal128_1":5.120000000}
+{"decimal128_1":6.120000000}
+{"decimal128_1":7.120000000}
+{"decimal128_1":8.120000000}
+{"decimal128_1":9.120000000}
+{"decimal128_1":10.120000000}
+{"decimal128_1":11.120000000}
+{"decimal128_1":12.120000000}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{"datetime_1":"2021-01-01 00:00:00"}
+{"datetime_1":"2021-01-01 00:00:01"}
+{"datetime_1":"2021-01-01 00:00:02"}
+{"datetime_1":"2021-01-01 00:00:03"}
+{"datetime_1":"2021-01-01 00:00:04"}
+{"datetime_1":"2021-01-01 00:00:05"}
+{"datetime_1":"2021-01-01 00:00:06"}
+{"datetime_1":"2021-01-01 00:00:07"}
+{"datetime_1":"2021-01-01 00:00:08"}
+{"datetime_1":"2021-01-01 00:00:09"}
+{"datetime_1":"2021-01-01 00:00:10"}
+{"datetime_1":"2021-01-01 00:00:07"}
+{"datetime_1":"2021-01-01 00:00:08"}
+{"date_1":"2021-01-01"}
+{"date_1":"2021-01-02"}
+{"date_1":"2021-01-03"}
+{"date_1":"2021-01-04"}
+{"date_1":"2021-01-05"}
+{"date_1":"2021-01-06"}
+{"date_1":"2021-01-07"}
+{"date_1":"2021-01-08"}
+{"date_1":"2021-01-09"}
+{"date_1":"2021-01-10"}
+{"date_1":"2021-01-07"}
+{"date_1":"2021-01-08"}
+{"date_1":"2021-01-09"}
+{"date_1":"2021-01-10"}
+
+-- !sql_compaction_before --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.date_1	date	Yes	false	\N	NONE
+var.ipv4_1	ipv4	Yes	false	\N	NONE
+
+-- !sql_compaction_after --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.ipv4_1	ipv4	Yes	false	\N	NONE
+
+-- !sql --
+{"array_bigint_1":[1, null],"array_boolean_1":[1],"array_char_1":["1"],"array_date_1":["2021-01-01"],"array_datetime_1":["2021-01-01 00:00:00"],"array_decimal128_1":[1.120000000],"array_decimal256_1":[null],"array_decimal32_1":[1.12],"array_decimal64_1":[1.120000000],"array_double_1":[1.12],"array_float_1":[1.12],"array_int_1":[1, null],"array_ipv4_1":["192.168.1.1"],"array_ipv6_1":["2001:db8:85a3::8a2e:370:7334"],"array_largeint_1":[1, null],"array_smallint_1":[1, null],"array_string_1":["1"],"array_tinyint_1":[1, null],"bigint_1":1,"boolean_1":1,"char_1":"1","date_1":"2021-01-01","datetime_1":"2021-01-01 00:00:00","decimal128_1":1.120000000,"decimal32_1":1.12,"decimal64_1":1.120000000,"double_1":1.12,"float_1":1.12,"int_1":1,"ipv4_1":"192.168.1.1","ipv6_1":"2001:db8:85a3::8a2e:370:7334","largeint_1":1,"other_1":"1","smallint_1":1,"string_1":"1","tinyint_1":1}
+{"other_1":"1"}
+{"tinyint_1":1}
+{"tinyint_1":2}
+{"smallint_1":1}
+{"smallint_1":2}
+{"smallint_1":3}
+{"int_1":1}
+{"int_1":2}
+{"int_1":3}
+{"int_1":4}
+{"bigint_1":1}
+{"bigint_1":2}
+{"bigint_1":3}
+{"bigint_1":4}
+{"bigint_1":5}
+{"largeint_1":1}
+{"largeint_1":2}
+{"largeint_1":3}
+{"largeint_1":4}
+{"largeint_1":5}
+{"largeint_1":6}
+{"char_1":"1"}
+{"char_1":"2"}
+{"char_1":"3"}
+{"char_1":"4"}
+{"char_1":"5"}
+{"char_1":"6"}
+{"char_1":"7"}
+{"string_1":"1"}
+{"string_1":"2"}
+{"string_1":"3"}
+{"string_1":"4"}
+{"string_1":"5"}
+{"string_1":"6"}
+{"string_1":"7"}
+{"string_1":"8"}
+{"float_1":1.12}
+{"float_1":2.12}
+{"float_1":3.12}
+{"float_1":4.12}
+{"float_1":5.12}
+{"float_1":6.12}
+{"float_1":7.12}
+{"float_1":8.12}
+{"double_1":1.12}
+{"double_1":2.12}
+{"double_1":3.12}
+{"double_1":4.12}
+{"double_1":5.12}
+{"double_1":6.12}
+{"double_1":7.12}
+{"double_1":8.12}
+{"double_1":9.12}
+{"decimal32_1":1.12}
+{"decimal32_1":2.12}
+{"decimal32_1":3.12}
+{"decimal32_1":4.12}
+{"decimal32_1":5.12}
+{"decimal32_1":6.12}
+{"decimal32_1":7.12}
+{"decimal32_1":8.12}
+{"decimal32_1":9.12}
+{"decimal32_1":10.12}
+{"decimal64_1":1.120000000}
+{"decimal64_1":2.120000000}
+{"decimal64_1":3.120000000}
+{"decimal64_1":4.120000000}
+{"decimal64_1":5.120000000}
+{"decimal64_1":6.120000000}
+{"decimal64_1":7.120000000}
+{"decimal64_1":8.120000000}
+{"decimal64_1":9.120000000}
+{"decimal64_1":10.120000000}
+{"decimal64_1":11.120000000}
+{"decimal128_1":1.120000000}
+{"decimal128_1":2.120000000}
+{"decimal128_1":3.120000000}
+{"decimal128_1":4.120000000}
+{"decimal128_1":5.120000000}
+{"decimal128_1":6.120000000}
+{"decimal128_1":7.120000000}
+{"decimal128_1":8.120000000}
+{"decimal128_1":9.120000000}
+{"decimal128_1":10.120000000}
+{"decimal128_1":11.120000000}
+{"decimal128_1":12.120000000}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{"datetime_1":"2021-01-01 00:00:00"}
+{"datetime_1":"2021-01-01 00:00:01"}
+{"datetime_1":"2021-01-01 00:00:02"}
+{"datetime_1":"2021-01-01 00:00:03"}
+{"datetime_1":"2021-01-01 00:00:04"}
+{"datetime_1":"2021-01-01 00:00:05"}
+{"datetime_1":"2021-01-01 00:00:06"}
+{"datetime_1":"2021-01-01 00:00:07"}
+{"datetime_1":"2021-01-01 00:00:08"}
+{"datetime_1":"2021-01-01 00:00:09"}
+{"datetime_1":"2021-01-01 00:00:10"}
+{"datetime_1":"2021-01-01 00:00:07"}
+{"datetime_1":"2021-01-01 00:00:08"}
+{"date_1":"2021-01-01"}
+{"date_1":"2021-01-02"}
+{"date_1":"2021-01-03"}
+{"date_1":"2021-01-04"}
+{"date_1":"2021-01-05"}
+{"date_1":"2021-01-06"}
+{"date_1":"2021-01-07"}
+{"date_1":"2021-01-08"}
+{"date_1":"2021-01-09"}
+{"date_1":"2021-01-10"}
+{"date_1":"2021-01-07"}
+{"date_1":"2021-01-08"}
+{"date_1":"2021-01-09"}
+{"date_1":"2021-01-10"}
+{"ipv4_1":"192.168.1.1"}
+{"ipv4_1":"192.168.1.2"}
+{"ipv4_1":"192.168.1.3"}
+{"ipv4_1":"192.168.1.4"}
+{"ipv4_1":"192.168.1.5"}
+{"ipv4_1":"192.168.1.6"}
+{"ipv4_1":"192.168.1.7"}
+{"ipv4_1":"192.168.1.8"}
+{"ipv4_1":"192.168.1.9"}
+{"ipv4_1":"192.168.1.10"}
+{"ipv4_1":"192.168.1.7"}
+{"ipv4_1":"192.168.1.8"}
+{"ipv4_1":"192.168.1.9"}
+{"ipv4_1":"192.168.1.10"}
+{"ipv4_1":"192.168.1.11"}
+
+-- !sql_compaction_before --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.ipv4_1	ipv4	Yes	false	\N	NONE
+var.ipv6_1	ipv6	Yes	false	\N	NONE
+
+-- !sql_compaction_after --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.ipv6_1	ipv6	Yes	false	\N	NONE
+
+-- !sql --
+{"array_bigint_1":[1, null],"array_boolean_1":[1],"array_char_1":["1"],"array_date_1":["2021-01-01"],"array_datetime_1":["2021-01-01 00:00:00"],"array_decimal128_1":[1.120000000],"array_decimal256_1":[null],"array_decimal32_1":[1.12],"array_decimal64_1":[1.120000000],"array_double_1":[1.12],"array_float_1":[1.12],"array_int_1":[1, null],"array_ipv4_1":["192.168.1.1"],"array_ipv6_1":["2001:db8:85a3::8a2e:370:7334"],"array_largeint_1":[1, null],"array_smallint_1":[1, null],"array_string_1":["1"],"array_tinyint_1":[1, null],"bigint_1":1,"boolean_1":1,"char_1":"1","date_1":"2021-01-01","datetime_1":"2021-01-01 00:00:00","decimal128_1":1.120000000,"decimal32_1":1.12,"decimal64_1":1.120000000,"double_1":1.12,"float_1":1.12,"int_1":1,"ipv4_1":"192.168.1.1","ipv6_1":"2001:db8:85a3::8a2e:370:7334","largeint_1":1,"other_1":"1","smallint_1":1,"string_1":"1","tinyint_1":1}
+{"other_1":"1"}
+{"tinyint_1":1}
+{"tinyint_1":2}
+{"smallint_1":1}
+{"smallint_1":2}
+{"smallint_1":3}
+{"int_1":1}
+{"int_1":2}
+{"int_1":3}
+{"int_1":4}
+{"bigint_1":1}
+{"bigint_1":2}
+{"bigint_1":3}
+{"bigint_1":4}
+{"bigint_1":5}
+{"largeint_1":1}
+{"largeint_1":2}
+{"largeint_1":3}
+{"largeint_1":4}
+{"largeint_1":5}
+{"largeint_1":6}
+{"char_1":"1"}
+{"char_1":"2"}
+{"char_1":"3"}
+{"char_1":"4"}
+{"char_1":"5"}
+{"char_1":"6"}
+{"char_1":"7"}
+{"string_1":"1"}
+{"string_1":"2"}
+{"string_1":"3"}
+{"string_1":"4"}
+{"string_1":"5"}
+{"string_1":"6"}
+{"string_1":"7"}
+{"string_1":"8"}
+{"float_1":1.12}
+{"float_1":2.12}
+{"float_1":3.12}
+{"float_1":4.12}
+{"float_1":5.12}
+{"float_1":6.12}
+{"float_1":7.12}
+{"float_1":8.12}
+{"double_1":1.12}
+{"double_1":2.12}
+{"double_1":3.12}
+{"double_1":4.12}
+{"double_1":5.12}
+{"double_1":6.12}
+{"double_1":7.12}
+{"double_1":8.12}
+{"double_1":9.12}
+{"decimal32_1":1.12}
+{"decimal32_1":2.12}
+{"decimal32_1":3.12}
+{"decimal32_1":4.12}
+{"decimal32_1":5.12}
+{"decimal32_1":6.12}
+{"decimal32_1":7.12}
+{"decimal32_1":8.12}
+{"decimal32_1":9.12}
+{"decimal32_1":10.12}
+{"decimal64_1":1.120000000}
+{"decimal64_1":2.120000000}
+{"decimal64_1":3.120000000}
+{"decimal64_1":4.120000000}
+{"decimal64_1":5.120000000}
+{"decimal64_1":6.120000000}
+{"decimal64_1":7.120000000}
+{"decimal64_1":8.120000000}
+{"decimal64_1":9.120000000}
+{"decimal64_1":10.120000000}
+{"decimal64_1":11.120000000}
+{"decimal128_1":1.120000000}
+{"decimal128_1":2.120000000}
+{"decimal128_1":3.120000000}
+{"decimal128_1":4.120000000}
+{"decimal128_1":5.120000000}
+{"decimal128_1":6.120000000}
+{"decimal128_1":7.120000000}
+{"decimal128_1":8.120000000}
+{"decimal128_1":9.120000000}
+{"decimal128_1":10.120000000}
+{"decimal128_1":11.120000000}
+{"decimal128_1":12.120000000}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{"datetime_1":"2021-01-01 00:00:00"}
+{"datetime_1":"2021-01-01 00:00:01"}
+{"datetime_1":"2021-01-01 00:00:02"}
+{"datetime_1":"2021-01-01 00:00:03"}
+{"datetime_1":"2021-01-01 00:00:04"}
+{"datetime_1":"2021-01-01 00:00:05"}
+{"datetime_1":"2021-01-01 00:00:06"}
+{"datetime_1":"2021-01-01 00:00:07"}
+{"datetime_1":"2021-01-01 00:00:08"}
+{"datetime_1":"2021-01-01 00:00:09"}
+{"datetime_1":"2021-01-01 00:00:10"}
+{"datetime_1":"2021-01-01 00:00:07"}
+{"datetime_1":"2021-01-01 00:00:08"}
+{"date_1":"2021-01-01"}
+{"date_1":"2021-01-02"}
+{"date_1":"2021-01-03"}
+{"date_1":"2021-01-04"}
+{"date_1":"2021-01-05"}
+{"date_1":"2021-01-06"}
+{"date_1":"2021-01-07"}
+{"date_1":"2021-01-08"}
+{"date_1":"2021-01-09"}
+{"date_1":"2021-01-10"}
+{"date_1":"2021-01-07"}
+{"date_1":"2021-01-08"}
+{"date_1":"2021-01-09"}
+{"date_1":"2021-01-10"}
+{"ipv4_1":"192.168.1.1"}
+{"ipv4_1":"192.168.1.2"}
+{"ipv4_1":"192.168.1.3"}
+{"ipv4_1":"192.168.1.4"}
+{"ipv4_1":"192.168.1.5"}
+{"ipv4_1":"192.168.1.6"}
+{"ipv4_1":"192.168.1.7"}
+{"ipv4_1":"192.168.1.8"}
+{"ipv4_1":"192.168.1.9"}
+{"ipv4_1":"192.168.1.10"}
+{"ipv4_1":"192.168.1.7"}
+{"ipv4_1":"192.168.1.8"}
+{"ipv4_1":"192.168.1.9"}
+{"ipv4_1":"192.168.1.10"}
+{"ipv4_1":"192.168.1.11"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7334"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7335"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7336"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7337"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7338"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7339"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733a"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733b"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733c"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733d"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733e"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733f"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7340"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7341"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733f"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7340"}
+
+-- !sql_compaction_before --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.array_boolean_1	array<boolean>	Yes	false	\N	NONE
+var.ipv6_1	ipv6	Yes	false	\N	NONE
+
+-- !sql_compaction_after --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.ipv6_1	ipv6	Yes	false	\N	NONE
+
+-- !sql --
+{"array_bigint_1":[1, null],"array_boolean_1":[1],"array_char_1":["1"],"array_date_1":["2021-01-01"],"array_datetime_1":["2021-01-01 00:00:00"],"array_decimal128_1":[1.120000000],"array_decimal256_1":[null],"array_decimal32_1":[1.12],"array_decimal64_1":[1.120000000],"array_double_1":[1.12],"array_float_1":[1.12],"array_int_1":[1, null],"array_ipv4_1":["192.168.1.1"],"array_ipv6_1":["2001:db8:85a3::8a2e:370:7334"],"array_largeint_1":[1, null],"array_smallint_1":[1, null],"array_string_1":["1"],"array_tinyint_1":[1, null],"bigint_1":1,"boolean_1":1,"char_1":"1","date_1":"2021-01-01","datetime_1":"2021-01-01 00:00:00","decimal128_1":1.120000000,"decimal32_1":1.12,"decimal64_1":1.120000000,"double_1":1.12,"float_1":1.12,"int_1":1,"ipv4_1":"192.168.1.1","ipv6_1":"2001:db8:85a3::8a2e:370:7334","largeint_1":1,"other_1":"1","smallint_1":1,"string_1":"1","tinyint_1":1}
+{"other_1":"1"}
+{"tinyint_1":1}
+{"tinyint_1":2}
+{"smallint_1":1}
+{"smallint_1":2}
+{"smallint_1":3}
+{"int_1":1}
+{"int_1":2}
+{"int_1":3}
+{"int_1":4}
+{"bigint_1":1}
+{"bigint_1":2}
+{"bigint_1":3}
+{"bigint_1":4}
+{"bigint_1":5}
+{"largeint_1":1}
+{"largeint_1":2}
+{"largeint_1":3}
+{"largeint_1":4}
+{"largeint_1":5}
+{"largeint_1":6}
+{"char_1":"1"}
+{"char_1":"2"}
+{"char_1":"3"}
+{"char_1":"4"}
+{"char_1":"5"}
+{"char_1":"6"}
+{"char_1":"7"}
+{"string_1":"1"}
+{"string_1":"2"}
+{"string_1":"3"}
+{"string_1":"4"}
+{"string_1":"5"}
+{"string_1":"6"}
+{"string_1":"7"}
+{"string_1":"8"}
+{"float_1":1.12}
+{"float_1":2.12}
+{"float_1":3.12}
+{"float_1":4.12}
+{"float_1":5.12}
+{"float_1":6.12}
+{"float_1":7.12}
+{"float_1":8.12}
+{"double_1":1.12}
+{"double_1":2.12}
+{"double_1":3.12}
+{"double_1":4.12}
+{"double_1":5.12}
+{"double_1":6.12}
+{"double_1":7.12}
+{"double_1":8.12}
+{"double_1":9.12}
+{"decimal32_1":1.12}
+{"decimal32_1":2.12}
+{"decimal32_1":3.12}
+{"decimal32_1":4.12}
+{"decimal32_1":5.12}
+{"decimal32_1":6.12}
+{"decimal32_1":7.12}
+{"decimal32_1":8.12}
+{"decimal32_1":9.12}
+{"decimal32_1":10.12}
+{"decimal64_1":1.120000000}
+{"decimal64_1":2.120000000}
+{"decimal64_1":3.120000000}
+{"decimal64_1":4.120000000}
+{"decimal64_1":5.120000000}
+{"decimal64_1":6.120000000}
+{"decimal64_1":7.120000000}
+{"decimal64_1":8.120000000}
+{"decimal64_1":9.120000000}
+{"decimal64_1":10.120000000}
+{"decimal64_1":11.120000000}
+{"decimal128_1":1.120000000}
+{"decimal128_1":2.120000000}
+{"decimal128_1":3.120000000}
+{"decimal128_1":4.120000000}
+{"decimal128_1":5.120000000}
+{"decimal128_1":6.120000000}
+{"decimal128_1":7.120000000}
+{"decimal128_1":8.120000000}
+{"decimal128_1":9.120000000}
+{"decimal128_1":10.120000000}
+{"decimal128_1":11.120000000}
+{"decimal128_1":12.120000000}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{"datetime_1":"2021-01-01 00:00:00"}
+{"datetime_1":"2021-01-01 00:00:01"}
+{"datetime_1":"2021-01-01 00:00:02"}
+{"datetime_1":"2021-01-01 00:00:03"}
+{"datetime_1":"2021-01-01 00:00:04"}
+{"datetime_1":"2021-01-01 00:00:05"}
+{"datetime_1":"2021-01-01 00:00:06"}
+{"datetime_1":"2021-01-01 00:00:07"}
+{"datetime_1":"2021-01-01 00:00:08"}
+{"datetime_1":"2021-01-01 00:00:09"}
+{"datetime_1":"2021-01-01 00:00:10"}
+{"datetime_1":"2021-01-01 00:00:07"}
+{"datetime_1":"2021-01-01 00:00:08"}
+{"date_1":"2021-01-01"}
+{"date_1":"2021-01-02"}
+{"date_1":"2021-01-03"}
+{"date_1":"2021-01-04"}
+{"date_1":"2021-01-05"}
+{"date_1":"2021-01-06"}
+{"date_1":"2021-01-07"}
+{"date_1":"2021-01-08"}
+{"date_1":"2021-01-09"}
+{"date_1":"2021-01-10"}
+{"date_1":"2021-01-07"}
+{"date_1":"2021-01-08"}
+{"date_1":"2021-01-09"}
+{"date_1":"2021-01-10"}
+{"ipv4_1":"192.168.1.1"}
+{"ipv4_1":"192.168.1.2"}
+{"ipv4_1":"192.168.1.3"}
+{"ipv4_1":"192.168.1.4"}
+{"ipv4_1":"192.168.1.5"}
+{"ipv4_1":"192.168.1.6"}
+{"ipv4_1":"192.168.1.7"}
+{"ipv4_1":"192.168.1.8"}
+{"ipv4_1":"192.168.1.9"}
+{"ipv4_1":"192.168.1.10"}
+{"ipv4_1":"192.168.1.7"}
+{"ipv4_1":"192.168.1.8"}
+{"ipv4_1":"192.168.1.9"}
+{"ipv4_1":"192.168.1.10"}
+{"ipv4_1":"192.168.1.11"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7334"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7335"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7336"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7337"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7338"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7339"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733a"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733b"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733c"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733d"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733e"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733f"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7340"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7341"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733f"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7340"}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+
+-- !sql_compaction_before --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.array_tinyint_1	array<tinyint>	Yes	false	\N	NONE
+var.ipv6_1	ipv6	Yes	false	\N	NONE
+
+-- !sql_compaction_after --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.array_tinyint_1	array<tinyint>	Yes	false	\N	NONE
+
+-- !sql --
+{"array_bigint_1":[1, null],"array_boolean_1":[1],"array_char_1":["1"],"array_date_1":["2021-01-01"],"array_datetime_1":["2021-01-01 00:00:00"],"array_decimal128_1":[1.120000000],"array_decimal256_1":[null],"array_decimal32_1":[1.12],"array_decimal64_1":[1.120000000],"array_double_1":[1.12],"array_float_1":[1.12],"array_int_1":[1, null],"array_ipv4_1":["192.168.1.1"],"array_ipv6_1":["2001:db8:85a3::8a2e:370:7334"],"array_largeint_1":[1, null],"array_smallint_1":[1, null],"array_string_1":["1"],"array_tinyint_1":[1, null],"bigint_1":1,"boolean_1":1,"char_1":"1","date_1":"2021-01-01","datetime_1":"2021-01-01 00:00:00","decimal128_1":1.120000000,"decimal32_1":1.12,"decimal64_1":1.120000000,"double_1":1.12,"float_1":1.12,"int_1":1,"ipv4_1":"192.168.1.1","ipv6_1":"2001:db8:85a3::8a2e:370:7334","largeint_1":1,"other_1":"1","smallint_1":1,"string_1":"1","tinyint_1":1}
+{"other_1":"1"}
+{"tinyint_1":1}
+{"tinyint_1":2}
+{"smallint_1":1}
+{"smallint_1":2}
+{"smallint_1":3}
+{"int_1":1}
+{"int_1":2}
+{"int_1":3}
+{"int_1":4}
+{"bigint_1":1}
+{"bigint_1":2}
+{"bigint_1":3}
+{"bigint_1":4}
+{"bigint_1":5}
+{"largeint_1":1}
+{"largeint_1":2}
+{"largeint_1":3}
+{"largeint_1":4}
+{"largeint_1":5}
+{"largeint_1":6}
+{"char_1":"1"}
+{"char_1":"2"}
+{"char_1":"3"}
+{"char_1":"4"}
+{"char_1":"5"}
+{"char_1":"6"}
+{"char_1":"7"}
+{"string_1":"1"}
+{"string_1":"2"}
+{"string_1":"3"}
+{"string_1":"4"}
+{"string_1":"5"}
+{"string_1":"6"}
+{"string_1":"7"}
+{"string_1":"8"}
+{"float_1":1.12}
+{"float_1":2.12}
+{"float_1":3.12}
+{"float_1":4.12}
+{"float_1":5.12}
+{"float_1":6.12}
+{"float_1":7.12}
+{"float_1":8.12}
+{"double_1":1.12}
+{"double_1":2.12}
+{"double_1":3.12}
+{"double_1":4.12}
+{"double_1":5.12}
+{"double_1":6.12}
+{"double_1":7.12}
+{"double_1":8.12}
+{"double_1":9.12}
+{"decimal32_1":1.12}
+{"decimal32_1":2.12}
+{"decimal32_1":3.12}
+{"decimal32_1":4.12}
+{"decimal32_1":5.12}
+{"decimal32_1":6.12}
+{"decimal32_1":7.12}
+{"decimal32_1":8.12}
+{"decimal32_1":9.12}
+{"decimal32_1":10.12}
+{"decimal64_1":1.120000000}
+{"decimal64_1":2.120000000}
+{"decimal64_1":3.120000000}
+{"decimal64_1":4.120000000}
+{"decimal64_1":5.120000000}
+{"decimal64_1":6.120000000}
+{"decimal64_1":7.120000000}
+{"decimal64_1":8.120000000}
+{"decimal64_1":9.120000000}
+{"decimal64_1":10.120000000}
+{"decimal64_1":11.120000000}
+{"decimal128_1":1.120000000}
+{"decimal128_1":2.120000000}
+{"decimal128_1":3.120000000}
+{"decimal128_1":4.120000000}
+{"decimal128_1":5.120000000}
+{"decimal128_1":6.120000000}
+{"decimal128_1":7.120000000}
+{"decimal128_1":8.120000000}
+{"decimal128_1":9.120000000}
+{"decimal128_1":10.120000000}
+{"decimal128_1":11.120000000}
+{"decimal128_1":12.120000000}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{"datetime_1":"2021-01-01 00:00:00"}
+{"datetime_1":"2021-01-01 00:00:01"}
+{"datetime_1":"2021-01-01 00:00:02"}
+{"datetime_1":"2021-01-01 00:00:03"}
+{"datetime_1":"2021-01-01 00:00:04"}
+{"datetime_1":"2021-01-01 00:00:05"}
+{"datetime_1":"2021-01-01 00:00:06"}
+{"datetime_1":"2021-01-01 00:00:07"}
+{"datetime_1":"2021-01-01 00:00:08"}
+{"datetime_1":"2021-01-01 00:00:09"}
+{"datetime_1":"2021-01-01 00:00:10"}
+{"datetime_1":"2021-01-01 00:00:07"}
+{"datetime_1":"2021-01-01 00:00:08"}
+{"date_1":"2021-01-01"}
+{"date_1":"2021-01-02"}
+{"date_1":"2021-01-03"}
+{"date_1":"2021-01-04"}
+{"date_1":"2021-01-05"}
+{"date_1":"2021-01-06"}
+{"date_1":"2021-01-07"}
+{"date_1":"2021-01-08"}
+{"date_1":"2021-01-09"}
+{"date_1":"2021-01-10"}
+{"date_1":"2021-01-07"}
+{"date_1":"2021-01-08"}
+{"date_1":"2021-01-09"}
+{"date_1":"2021-01-10"}
+{"ipv4_1":"192.168.1.1"}
+{"ipv4_1":"192.168.1.2"}
+{"ipv4_1":"192.168.1.3"}
+{"ipv4_1":"192.168.1.4"}
+{"ipv4_1":"192.168.1.5"}
+{"ipv4_1":"192.168.1.6"}
+{"ipv4_1":"192.168.1.7"}
+{"ipv4_1":"192.168.1.8"}
+{"ipv4_1":"192.168.1.9"}
+{"ipv4_1":"192.168.1.10"}
+{"ipv4_1":"192.168.1.7"}
+{"ipv4_1":"192.168.1.8"}
+{"ipv4_1":"192.168.1.9"}
+{"ipv4_1":"192.168.1.10"}
+{"ipv4_1":"192.168.1.11"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7334"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7335"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7336"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7337"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7338"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7339"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733a"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733b"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733c"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733d"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733e"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733f"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7340"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7341"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733f"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7340"}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_tinyint_1":[1]}
+{"array_tinyint_1":[2]}
+{"array_tinyint_1":[3]}
+{"array_tinyint_1":[4]}
+{"array_tinyint_1":[5]}
+{"array_tinyint_1":[6]}
+{"array_tinyint_1":[7]}
+{"array_tinyint_1":[8]}
+{"array_tinyint_1":[9]}
+{"array_tinyint_1":[10]}
+{"array_tinyint_1":[11]}
+{"array_tinyint_1":[12]}
+{"array_tinyint_1":[13]}
+{"array_tinyint_1":[14]}
+{"array_tinyint_1":[15]}
+{"array_tinyint_1":[16]}
+{"array_tinyint_1":[17]}
+{"array_tinyint_1":[18]}
+
+-- !sql_compaction_before --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.array_smallint_1	array<smallint>	Yes	false	\N	NONE
+var.array_tinyint_1	array<tinyint>	Yes	false	\N	NONE
+
+-- !sql_compaction_after --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.array_smallint_1	array<smallint>	Yes	false	\N	NONE
+
+-- !sql --
+{"array_bigint_1":[1, null],"array_boolean_1":[1],"array_char_1":["1"],"array_date_1":["2021-01-01"],"array_datetime_1":["2021-01-01 00:00:00"],"array_decimal128_1":[1.120000000],"array_decimal256_1":[null],"array_decimal32_1":[1.12],"array_decimal64_1":[1.120000000],"array_double_1":[1.12],"array_float_1":[1.12],"array_int_1":[1, null],"array_ipv4_1":["192.168.1.1"],"array_ipv6_1":["2001:db8:85a3::8a2e:370:7334"],"array_largeint_1":[1, null],"array_smallint_1":[1, null],"array_string_1":["1"],"array_tinyint_1":[1, null],"bigint_1":1,"boolean_1":1,"char_1":"1","date_1":"2021-01-01","datetime_1":"2021-01-01 00:00:00","decimal128_1":1.120000000,"decimal32_1":1.12,"decimal64_1":1.120000000,"double_1":1.12,"float_1":1.12,"int_1":1,"ipv4_1":"192.168.1.1","ipv6_1":"2001:db8:85a3::8a2e:370:7334","largeint_1":1,"other_1":"1","smallint_1":1,"string_1":"1","tinyint_1":1}
+{"other_1":"1"}
+{"tinyint_1":1}
+{"tinyint_1":2}
+{"smallint_1":1}
+{"smallint_1":2}
+{"smallint_1":3}
+{"int_1":1}
+{"int_1":2}
+{"int_1":3}
+{"int_1":4}
+{"bigint_1":1}
+{"bigint_1":2}
+{"bigint_1":3}
+{"bigint_1":4}
+{"bigint_1":5}
+{"largeint_1":1}
+{"largeint_1":2}
+{"largeint_1":3}
+{"largeint_1":4}
+{"largeint_1":5}
+{"largeint_1":6}
+{"char_1":"1"}
+{"char_1":"2"}
+{"char_1":"3"}
+{"char_1":"4"}
+{"char_1":"5"}
+{"char_1":"6"}
+{"char_1":"7"}
+{"string_1":"1"}
+{"string_1":"2"}
+{"string_1":"3"}
+{"string_1":"4"}
+{"string_1":"5"}
+{"string_1":"6"}
+{"string_1":"7"}
+{"string_1":"8"}
+{"float_1":1.12}
+{"float_1":2.12}
+{"float_1":3.12}
+{"float_1":4.12}
+{"float_1":5.12}
+{"float_1":6.12}
+{"float_1":7.12}
+{"float_1":8.12}
+{"double_1":1.12}
+{"double_1":2.12}
+{"double_1":3.12}
+{"double_1":4.12}
+{"double_1":5.12}
+{"double_1":6.12}
+{"double_1":7.12}
+{"double_1":8.12}
+{"double_1":9.12}
+{"decimal32_1":1.12}
+{"decimal32_1":2.12}
+{"decimal32_1":3.12}
+{"decimal32_1":4.12}
+{"decimal32_1":5.12}
+{"decimal32_1":6.12}
+{"decimal32_1":7.12}
+{"decimal32_1":8.12}
+{"decimal32_1":9.12}
+{"decimal32_1":10.12}
+{"decimal64_1":1.120000000}
+{"decimal64_1":2.120000000}
+{"decimal64_1":3.120000000}
+{"decimal64_1":4.120000000}
+{"decimal64_1":5.120000000}
+{"decimal64_1":6.120000000}
+{"decimal64_1":7.120000000}
+{"decimal64_1":8.120000000}
+{"decimal64_1":9.120000000}
+{"decimal64_1":10.120000000}
+{"decimal64_1":11.120000000}
+{"decimal128_1":1.120000000}
+{"decimal128_1":2.120000000}
+{"decimal128_1":3.120000000}
+{"decimal128_1":4.120000000}
+{"decimal128_1":5.120000000}
+{"decimal128_1":6.120000000}
+{"decimal128_1":7.120000000}
+{"decimal128_1":8.120000000}
+{"decimal128_1":9.120000000}
+{"decimal128_1":10.120000000}
+{"decimal128_1":11.120000000}
+{"decimal128_1":12.120000000}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{"datetime_1":"2021-01-01 00:00:00"}
+{"datetime_1":"2021-01-01 00:00:01"}
+{"datetime_1":"2021-01-01 00:00:02"}
+{"datetime_1":"2021-01-01 00:00:03"}
+{"datetime_1":"2021-01-01 00:00:04"}
+{"datetime_1":"2021-01-01 00:00:05"}
+{"datetime_1":"2021-01-01 00:00:06"}
+{"datetime_1":"2021-01-01 00:00:07"}
+{"datetime_1":"2021-01-01 00:00:08"}
+{"datetime_1":"2021-01-01 00:00:09"}
+{"datetime_1":"2021-01-01 00:00:10"}
+{"datetime_1":"2021-01-01 00:00:07"}
+{"datetime_1":"2021-01-01 00:00:08"}
+{"date_1":"2021-01-01"}
+{"date_1":"2021-01-02"}
+{"date_1":"2021-01-03"}
+{"date_1":"2021-01-04"}
+{"date_1":"2021-01-05"}
+{"date_1":"2021-01-06"}
+{"date_1":"2021-01-07"}
+{"date_1":"2021-01-08"}
+{"date_1":"2021-01-09"}
+{"date_1":"2021-01-10"}
+{"date_1":"2021-01-07"}
+{"date_1":"2021-01-08"}
+{"date_1":"2021-01-09"}
+{"date_1":"2021-01-10"}
+{"ipv4_1":"192.168.1.1"}
+{"ipv4_1":"192.168.1.2"}
+{"ipv4_1":"192.168.1.3"}
+{"ipv4_1":"192.168.1.4"}
+{"ipv4_1":"192.168.1.5"}
+{"ipv4_1":"192.168.1.6"}
+{"ipv4_1":"192.168.1.7"}
+{"ipv4_1":"192.168.1.8"}
+{"ipv4_1":"192.168.1.9"}
+{"ipv4_1":"192.168.1.10"}
+{"ipv4_1":"192.168.1.7"}
+{"ipv4_1":"192.168.1.8"}
+{"ipv4_1":"192.168.1.9"}
+{"ipv4_1":"192.168.1.10"}
+{"ipv4_1":"192.168.1.11"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7334"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7335"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7336"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7337"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7338"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7339"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733a"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733b"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733c"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733d"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733e"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733f"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7340"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7341"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733f"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7340"}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_tinyint_1":[1]}
+{"array_tinyint_1":[2]}
+{"array_tinyint_1":[3]}
+{"array_tinyint_1":[4]}
+{"array_tinyint_1":[5]}
+{"array_tinyint_1":[6]}
+{"array_tinyint_1":[7]}
+{"array_tinyint_1":[8]}
+{"array_tinyint_1":[9]}
+{"array_tinyint_1":[10]}
+{"array_tinyint_1":[11]}
+{"array_tinyint_1":[12]}
+{"array_tinyint_1":[13]}
+{"array_tinyint_1":[14]}
+{"array_tinyint_1":[15]}
+{"array_tinyint_1":[16]}
+{"array_tinyint_1":[17]}
+{"array_tinyint_1":[18]}
+{"array_smallint_1":[1]}
+{"array_smallint_1":[2, null]}
+{"array_smallint_1":[3]}
+{"array_smallint_1":[4]}
+{"array_smallint_1":[5]}
+{"array_smallint_1":[6]}
+{"array_smallint_1":[7]}
+{"array_smallint_1":[8]}
+{"array_smallint_1":[9]}
+{"array_smallint_1":[10]}
+{"array_smallint_1":[11]}
+{"array_smallint_1":[12]}
+{"array_smallint_1":[13]}
+{"array_smallint_1":[14]}
+{"array_smallint_1":[15]}
+{"array_smallint_1":[16]}
+{"array_smallint_1":[17]}
+{"array_smallint_1":[18]}
+{"array_smallint_1":[19]}
+
+-- !sql_compaction_before --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.array_int_1	array<int>	Yes	false	\N	NONE
+var.array_smallint_1	array<smallint>	Yes	false	\N	NONE
+
+-- !sql_compaction_after --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.array_int_1	array<int>	Yes	false	\N	NONE
+
+-- !sql --
+{"array_bigint_1":[1, null],"array_boolean_1":[1],"array_char_1":["1"],"array_date_1":["2021-01-01"],"array_datetime_1":["2021-01-01 00:00:00"],"array_decimal128_1":[1.120000000],"array_decimal256_1":[null],"array_decimal32_1":[1.12],"array_decimal64_1":[1.120000000],"array_double_1":[1.12],"array_float_1":[1.12],"array_int_1":[1, null],"array_ipv4_1":["192.168.1.1"],"array_ipv6_1":["2001:db8:85a3::8a2e:370:7334"],"array_largeint_1":[1, null],"array_smallint_1":[1, null],"array_string_1":["1"],"array_tinyint_1":[1, null],"bigint_1":1,"boolean_1":1,"char_1":"1","date_1":"2021-01-01","datetime_1":"2021-01-01 00:00:00","decimal128_1":1.120000000,"decimal32_1":1.12,"decimal64_1":1.120000000,"double_1":1.12,"float_1":1.12,"int_1":1,"ipv4_1":"192.168.1.1","ipv6_1":"2001:db8:85a3::8a2e:370:7334","largeint_1":1,"other_1":"1","smallint_1":1,"string_1":"1","tinyint_1":1}
+{"other_1":"1"}
+{"tinyint_1":1}
+{"tinyint_1":2}
+{"smallint_1":1}
+{"smallint_1":2}
+{"smallint_1":3}
+{"int_1":1}
+{"int_1":2}
+{"int_1":3}
+{"int_1":4}
+{"bigint_1":1}
+{"bigint_1":2}
+{"bigint_1":3}
+{"bigint_1":4}
+{"bigint_1":5}
+{"largeint_1":1}
+{"largeint_1":2}
+{"largeint_1":3}
+{"largeint_1":4}
+{"largeint_1":5}
+{"largeint_1":6}
+{"char_1":"1"}
+{"char_1":"2"}
+{"char_1":"3"}
+{"char_1":"4"}
+{"char_1":"5"}
+{"char_1":"6"}
+{"char_1":"7"}
+{"string_1":"1"}
+{"string_1":"2"}
+{"string_1":"3"}
+{"string_1":"4"}
+{"string_1":"5"}
+{"string_1":"6"}
+{"string_1":"7"}
+{"string_1":"8"}
+{"float_1":1.12}
+{"float_1":2.12}
+{"float_1":3.12}
+{"float_1":4.12}
+{"float_1":5.12}
+{"float_1":6.12}
+{"float_1":7.12}
+{"float_1":8.12}
+{"double_1":1.12}
+{"double_1":2.12}
+{"double_1":3.12}
+{"double_1":4.12}
+{"double_1":5.12}
+{"double_1":6.12}
+{"double_1":7.12}
+{"double_1":8.12}
+{"double_1":9.12}
+{"decimal32_1":1.12}
+{"decimal32_1":2.12}
+{"decimal32_1":3.12}
+{"decimal32_1":4.12}
+{"decimal32_1":5.12}
+{"decimal32_1":6.12}
+{"decimal32_1":7.12}
+{"decimal32_1":8.12}
+{"decimal32_1":9.12}
+{"decimal32_1":10.12}
+{"decimal64_1":1.120000000}
+{"decimal64_1":2.120000000}
+{"decimal64_1":3.120000000}
+{"decimal64_1":4.120000000}
+{"decimal64_1":5.120000000}
+{"decimal64_1":6.120000000}
+{"decimal64_1":7.120000000}
+{"decimal64_1":8.120000000}
+{"decimal64_1":9.120000000}
+{"decimal64_1":10.120000000}
+{"decimal64_1":11.120000000}
+{"decimal128_1":1.120000000}
+{"decimal128_1":2.120000000}
+{"decimal128_1":3.120000000}
+{"decimal128_1":4.120000000}
+{"decimal128_1":5.120000000}
+{"decimal128_1":6.120000000}
+{"decimal128_1":7.120000000}
+{"decimal128_1":8.120000000}
+{"decimal128_1":9.120000000}
+{"decimal128_1":10.120000000}
+{"decimal128_1":11.120000000}
+{"decimal128_1":12.120000000}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{"datetime_1":"2021-01-01 00:00:00"}
+{"datetime_1":"2021-01-01 00:00:01"}
+{"datetime_1":"2021-01-01 00:00:02"}
+{"datetime_1":"2021-01-01 00:00:03"}
+{"datetime_1":"2021-01-01 00:00:04"}
+{"datetime_1":"2021-01-01 00:00:05"}
+{"datetime_1":"2021-01-01 00:00:06"}
+{"datetime_1":"2021-01-01 00:00:07"}
+{"datetime_1":"2021-01-01 00:00:08"}
+{"datetime_1":"2021-01-01 00:00:09"}
+{"datetime_1":"2021-01-01 00:00:10"}
+{"datetime_1":"2021-01-01 00:00:07"}
+{"datetime_1":"2021-01-01 00:00:08"}
+{"date_1":"2021-01-01"}
+{"date_1":"2021-01-02"}
+{"date_1":"2021-01-03"}
+{"date_1":"2021-01-04"}
+{"date_1":"2021-01-05"}
+{"date_1":"2021-01-06"}
+{"date_1":"2021-01-07"}
+{"date_1":"2021-01-08"}
+{"date_1":"2021-01-09"}
+{"date_1":"2021-01-10"}
+{"date_1":"2021-01-07"}
+{"date_1":"2021-01-08"}
+{"date_1":"2021-01-09"}
+{"date_1":"2021-01-10"}
+{"ipv4_1":"192.168.1.1"}
+{"ipv4_1":"192.168.1.2"}
+{"ipv4_1":"192.168.1.3"}
+{"ipv4_1":"192.168.1.4"}
+{"ipv4_1":"192.168.1.5"}
+{"ipv4_1":"192.168.1.6"}
+{"ipv4_1":"192.168.1.7"}
+{"ipv4_1":"192.168.1.8"}
+{"ipv4_1":"192.168.1.9"}
+{"ipv4_1":"192.168.1.10"}
+{"ipv4_1":"192.168.1.7"}
+{"ipv4_1":"192.168.1.8"}
+{"ipv4_1":"192.168.1.9"}
+{"ipv4_1":"192.168.1.10"}
+{"ipv4_1":"192.168.1.11"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7334"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7335"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7336"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7337"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7338"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7339"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733a"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733b"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733c"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733d"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733e"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733f"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7340"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7341"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733f"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7340"}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_tinyint_1":[1]}
+{"array_tinyint_1":[2]}
+{"array_tinyint_1":[3]}
+{"array_tinyint_1":[4]}
+{"array_tinyint_1":[5]}
+{"array_tinyint_1":[6]}
+{"array_tinyint_1":[7]}
+{"array_tinyint_1":[8]}
+{"array_tinyint_1":[9]}
+{"array_tinyint_1":[10]}
+{"array_tinyint_1":[11]}
+{"array_tinyint_1":[12]}
+{"array_tinyint_1":[13]}
+{"array_tinyint_1":[14]}
+{"array_tinyint_1":[15]}
+{"array_tinyint_1":[16]}
+{"array_tinyint_1":[17]}
+{"array_tinyint_1":[18]}
+{"array_smallint_1":[1]}
+{"array_smallint_1":[2, null]}
+{"array_smallint_1":[3]}
+{"array_smallint_1":[4]}
+{"array_smallint_1":[5]}
+{"array_smallint_1":[6]}
+{"array_smallint_1":[7]}
+{"array_smallint_1":[8]}
+{"array_smallint_1":[9]}
+{"array_smallint_1":[10]}
+{"array_smallint_1":[11]}
+{"array_smallint_1":[12]}
+{"array_smallint_1":[13]}
+{"array_smallint_1":[14]}
+{"array_smallint_1":[15]}
+{"array_smallint_1":[16]}
+{"array_smallint_1":[17]}
+{"array_smallint_1":[18]}
+{"array_smallint_1":[19]}
+{"array_int_1":[1]}
+{"array_int_1":[2]}
+{"array_int_1":[3]}
+{"array_int_1":[4]}
+{"array_int_1":[5]}
+{"array_int_1":[6]}
+{"array_int_1":[7]}
+{"array_int_1":[8]}
+{"array_int_1":[9]}
+{"array_int_1":[10]}
+{"array_int_1":[11]}
+{"array_int_1":[12]}
+{"array_int_1":[13]}
+{"array_int_1":[14]}
+{"array_int_1":[15]}
+{"array_int_1":[16]}
+{"array_int_1":[17]}
+{"array_int_1":[18]}
+{"array_int_1":[19]}
+{"array_int_1":[20]}
+
+-- !sql_compaction_before --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.array_bigint_1	array<bigint>	Yes	false	\N	NONE
+var.array_int_1	array<int>	Yes	false	\N	NONE
+
+-- !sql_compaction_after --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.array_bigint_1	array<bigint>	Yes	false	\N	NONE
+
+-- !sql --
+{"array_bigint_1":[1, null],"array_boolean_1":[1],"array_char_1":["1"],"array_date_1":["2021-01-01"],"array_datetime_1":["2021-01-01 00:00:00"],"array_decimal128_1":[1.120000000],"array_decimal256_1":[null],"array_decimal32_1":[1.12],"array_decimal64_1":[1.120000000],"array_double_1":[1.12],"array_float_1":[1.12],"array_int_1":[1, null],"array_ipv4_1":["192.168.1.1"],"array_ipv6_1":["2001:db8:85a3::8a2e:370:7334"],"array_largeint_1":[1, null],"array_smallint_1":[1, null],"array_string_1":["1"],"array_tinyint_1":[1, null],"bigint_1":1,"boolean_1":1,"char_1":"1","date_1":"2021-01-01","datetime_1":"2021-01-01 00:00:00","decimal128_1":1.120000000,"decimal32_1":1.12,"decimal64_1":1.120000000,"double_1":1.12,"float_1":1.12,"int_1":1,"ipv4_1":"192.168.1.1","ipv6_1":"2001:db8:85a3::8a2e:370:7334","largeint_1":1,"other_1":"1","smallint_1":1,"string_1":"1","tinyint_1":1}
+{"other_1":"1"}
+{"tinyint_1":1}
+{"tinyint_1":2}
+{"smallint_1":1}
+{"smallint_1":2}
+{"smallint_1":3}
+{"int_1":1}
+{"int_1":2}
+{"int_1":3}
+{"int_1":4}
+{"bigint_1":1}
+{"bigint_1":2}
+{"bigint_1":3}
+{"bigint_1":4}
+{"bigint_1":5}
+{"largeint_1":1}
+{"largeint_1":2}
+{"largeint_1":3}
+{"largeint_1":4}
+{"largeint_1":5}
+{"largeint_1":6}
+{"char_1":"1"}
+{"char_1":"2"}
+{"char_1":"3"}
+{"char_1":"4"}
+{"char_1":"5"}
+{"char_1":"6"}
+{"char_1":"7"}
+{"string_1":"1"}
+{"string_1":"2"}
+{"string_1":"3"}
+{"string_1":"4"}
+{"string_1":"5"}
+{"string_1":"6"}
+{"string_1":"7"}
+{"string_1":"8"}
+{"float_1":1.12}
+{"float_1":2.12}
+{"float_1":3.12}
+{"float_1":4.12}
+{"float_1":5.12}
+{"float_1":6.12}
+{"float_1":7.12}
+{"float_1":8.12}
+{"double_1":1.12}
+{"double_1":2.12}
+{"double_1":3.12}
+{"double_1":4.12}
+{"double_1":5.12}
+{"double_1":6.12}
+{"double_1":7.12}
+{"double_1":8.12}
+{"double_1":9.12}
+{"decimal32_1":1.12}
+{"decimal32_1":2.12}
+{"decimal32_1":3.12}
+{"decimal32_1":4.12}
+{"decimal32_1":5.12}
+{"decimal32_1":6.12}
+{"decimal32_1":7.12}
+{"decimal32_1":8.12}
+{"decimal32_1":9.12}
+{"decimal32_1":10.12}
+{"decimal64_1":1.120000000}
+{"decimal64_1":2.120000000}
+{"decimal64_1":3.120000000}
+{"decimal64_1":4.120000000}
+{"decimal64_1":5.120000000}
+{"decimal64_1":6.120000000}
+{"decimal64_1":7.120000000}
+{"decimal64_1":8.120000000}
+{"decimal64_1":9.120000000}
+{"decimal64_1":10.120000000}
+{"decimal64_1":11.120000000}
+{"decimal128_1":1.120000000}
+{"decimal128_1":2.120000000}
+{"decimal128_1":3.120000000}
+{"decimal128_1":4.120000000}
+{"decimal128_1":5.120000000}
+{"decimal128_1":6.120000000}
+{"decimal128_1":7.120000000}
+{"decimal128_1":8.120000000}
+{"decimal128_1":9.120000000}
+{"decimal128_1":10.120000000}
+{"decimal128_1":11.120000000}
+{"decimal128_1":12.120000000}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{"datetime_1":"2021-01-01 00:00:00"}
+{"datetime_1":"2021-01-01 00:00:01"}
+{"datetime_1":"2021-01-01 00:00:02"}
+{"datetime_1":"2021-01-01 00:00:03"}
+{"datetime_1":"2021-01-01 00:00:04"}
+{"datetime_1":"2021-01-01 00:00:05"}
+{"datetime_1":"2021-01-01 00:00:06"}
+{"datetime_1":"2021-01-01 00:00:07"}
+{"datetime_1":"2021-01-01 00:00:08"}
+{"datetime_1":"2021-01-01 00:00:09"}
+{"datetime_1":"2021-01-01 00:00:10"}
+{"datetime_1":"2021-01-01 00:00:07"}
+{"datetime_1":"2021-01-01 00:00:08"}
+{"date_1":"2021-01-01"}
+{"date_1":"2021-01-02"}
+{"date_1":"2021-01-03"}
+{"date_1":"2021-01-04"}
+{"date_1":"2021-01-05"}
+{"date_1":"2021-01-06"}
+{"date_1":"2021-01-07"}
+{"date_1":"2021-01-08"}
+{"date_1":"2021-01-09"}
+{"date_1":"2021-01-10"}
+{"date_1":"2021-01-07"}
+{"date_1":"2021-01-08"}
+{"date_1":"2021-01-09"}
+{"date_1":"2021-01-10"}
+{"ipv4_1":"192.168.1.1"}
+{"ipv4_1":"192.168.1.2"}
+{"ipv4_1":"192.168.1.3"}
+{"ipv4_1":"192.168.1.4"}
+{"ipv4_1":"192.168.1.5"}
+{"ipv4_1":"192.168.1.6"}
+{"ipv4_1":"192.168.1.7"}
+{"ipv4_1":"192.168.1.8"}
+{"ipv4_1":"192.168.1.9"}
+{"ipv4_1":"192.168.1.10"}
+{"ipv4_1":"192.168.1.7"}
+{"ipv4_1":"192.168.1.8"}
+{"ipv4_1":"192.168.1.9"}
+{"ipv4_1":"192.168.1.10"}
+{"ipv4_1":"192.168.1.11"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7334"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7335"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7336"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7337"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7338"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7339"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733a"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733b"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733c"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733d"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733e"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733f"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7340"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7341"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733f"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7340"}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_tinyint_1":[1]}
+{"array_tinyint_1":[2]}
+{"array_tinyint_1":[3]}
+{"array_tinyint_1":[4]}
+{"array_tinyint_1":[5]}
+{"array_tinyint_1":[6]}
+{"array_tinyint_1":[7]}
+{"array_tinyint_1":[8]}
+{"array_tinyint_1":[9]}
+{"array_tinyint_1":[10]}
+{"array_tinyint_1":[11]}
+{"array_tinyint_1":[12]}
+{"array_tinyint_1":[13]}
+{"array_tinyint_1":[14]}
+{"array_tinyint_1":[15]}
+{"array_tinyint_1":[16]}
+{"array_tinyint_1":[17]}
+{"array_tinyint_1":[18]}
+{"array_smallint_1":[1]}
+{"array_smallint_1":[2, null]}
+{"array_smallint_1":[3]}
+{"array_smallint_1":[4]}
+{"array_smallint_1":[5]}
+{"array_smallint_1":[6]}
+{"array_smallint_1":[7]}
+{"array_smallint_1":[8]}
+{"array_smallint_1":[9]}
+{"array_smallint_1":[10]}
+{"array_smallint_1":[11]}
+{"array_smallint_1":[12]}
+{"array_smallint_1":[13]}
+{"array_smallint_1":[14]}
+{"array_smallint_1":[15]}
+{"array_smallint_1":[16]}
+{"array_smallint_1":[17]}
+{"array_smallint_1":[18]}
+{"array_smallint_1":[19]}
+{"array_int_1":[1]}
+{"array_int_1":[2]}
+{"array_int_1":[3]}
+{"array_int_1":[4]}
+{"array_int_1":[5]}
+{"array_int_1":[6]}
+{"array_int_1":[7]}
+{"array_int_1":[8]}
+{"array_int_1":[9]}
+{"array_int_1":[10]}
+{"array_int_1":[11]}
+{"array_int_1":[12]}
+{"array_int_1":[13]}
+{"array_int_1":[14]}
+{"array_int_1":[15]}
+{"array_int_1":[16]}
+{"array_int_1":[17]}
+{"array_int_1":[18]}
+{"array_int_1":[19]}
+{"array_int_1":[20]}
+{"array_bigint_1":[1]}
+{"array_bigint_1":[2]}
+{"array_bigint_1":[3]}
+{"array_bigint_1":[4]}
+{"array_bigint_1":[5]}
+{"array_bigint_1":[6]}
+{"array_bigint_1":[7]}
+{"array_bigint_1":[8]}
+{"array_bigint_1":[9]}
+{"array_bigint_1":[10]}
+{"array_bigint_1":[11]}
+{"array_bigint_1":[12]}
+{"array_bigint_1":[13]}
+{"array_bigint_1":[14]}
+{"array_bigint_1":[15]}
+{"array_bigint_1":[16]}
+{"array_bigint_1":[17]}
+{"array_bigint_1":[18]}
+{"array_bigint_1":[19]}
+{"array_bigint_1":[20]}
+{"array_bigint_1":[21]}
+
+-- !sql_compaction_before --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.array_bigint_1	array<bigint>	Yes	false	\N	NONE
+var.array_largeint_1	array<largeint>	Yes	false	\N	NONE
+
+-- !sql_compaction_after --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.array_largeint_1	array<largeint>	Yes	false	\N	NONE
+
+-- !sql --
+{"array_bigint_1":[1, null],"array_boolean_1":[1],"array_char_1":["1"],"array_date_1":["2021-01-01"],"array_datetime_1":["2021-01-01 00:00:00"],"array_decimal128_1":[1.120000000],"array_decimal256_1":[null],"array_decimal32_1":[1.12],"array_decimal64_1":[1.120000000],"array_double_1":[1.12],"array_float_1":[1.12],"array_int_1":[1, null],"array_ipv4_1":["192.168.1.1"],"array_ipv6_1":["2001:db8:85a3::8a2e:370:7334"],"array_largeint_1":[1, null],"array_smallint_1":[1, null],"array_string_1":["1"],"array_tinyint_1":[1, null],"bigint_1":1,"boolean_1":1,"char_1":"1","date_1":"2021-01-01","datetime_1":"2021-01-01 00:00:00","decimal128_1":1.120000000,"decimal32_1":1.12,"decimal64_1":1.120000000,"double_1":1.12,"float_1":1.12,"int_1":1,"ipv4_1":"192.168.1.1","ipv6_1":"2001:db8:85a3::8a2e:370:7334","largeint_1":1,"other_1":"1","smallint_1":1,"string_1":"1","tinyint_1":1}
+{"other_1":"1"}
+{"tinyint_1":1}
+{"tinyint_1":2}
+{"smallint_1":1}
+{"smallint_1":2}
+{"smallint_1":3}
+{"int_1":1}
+{"int_1":2}
+{"int_1":3}
+{"int_1":4}
+{"bigint_1":1}
+{"bigint_1":2}
+{"bigint_1":3}
+{"bigint_1":4}
+{"bigint_1":5}
+{"largeint_1":1}
+{"largeint_1":2}
+{"largeint_1":3}
+{"largeint_1":4}
+{"largeint_1":5}
+{"largeint_1":6}
+{"char_1":"1"}
+{"char_1":"2"}
+{"char_1":"3"}
+{"char_1":"4"}
+{"char_1":"5"}
+{"char_1":"6"}
+{"char_1":"7"}
+{"string_1":"1"}
+{"string_1":"2"}
+{"string_1":"3"}
+{"string_1":"4"}
+{"string_1":"5"}
+{"string_1":"6"}
+{"string_1":"7"}
+{"string_1":"8"}
+{"float_1":1.12}
+{"float_1":2.12}
+{"float_1":3.12}
+{"float_1":4.12}
+{"float_1":5.12}
+{"float_1":6.12}
+{"float_1":7.12}
+{"float_1":8.12}
+{"double_1":1.12}
+{"double_1":2.12}
+{"double_1":3.12}
+{"double_1":4.12}
+{"double_1":5.12}
+{"double_1":6.12}
+{"double_1":7.12}
+{"double_1":8.12}
+{"double_1":9.12}
+{"decimal32_1":1.12}
+{"decimal32_1":2.12}
+{"decimal32_1":3.12}
+{"decimal32_1":4.12}
+{"decimal32_1":5.12}
+{"decimal32_1":6.12}
+{"decimal32_1":7.12}
+{"decimal32_1":8.12}
+{"decimal32_1":9.12}
+{"decimal32_1":10.12}
+{"decimal64_1":1.120000000}
+{"decimal64_1":2.120000000}
+{"decimal64_1":3.120000000}
+{"decimal64_1":4.120000000}
+{"decimal64_1":5.120000000}
+{"decimal64_1":6.120000000}
+{"decimal64_1":7.120000000}
+{"decimal64_1":8.120000000}
+{"decimal64_1":9.120000000}
+{"decimal64_1":10.120000000}
+{"decimal64_1":11.120000000}
+{"decimal128_1":1.120000000}
+{"decimal128_1":2.120000000}
+{"decimal128_1":3.120000000}
+{"decimal128_1":4.120000000}
+{"decimal128_1":5.120000000}
+{"decimal128_1":6.120000000}
+{"decimal128_1":7.120000000}
+{"decimal128_1":8.120000000}
+{"decimal128_1":9.120000000}
+{"decimal128_1":10.120000000}
+{"decimal128_1":11.120000000}
+{"decimal128_1":12.120000000}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{"datetime_1":"2021-01-01 00:00:00"}
+{"datetime_1":"2021-01-01 00:00:01"}
+{"datetime_1":"2021-01-01 00:00:02"}
+{"datetime_1":"2021-01-01 00:00:03"}
+{"datetime_1":"2021-01-01 00:00:04"}
+{"datetime_1":"2021-01-01 00:00:05"}
+{"datetime_1":"2021-01-01 00:00:06"}
+{"datetime_1":"2021-01-01 00:00:07"}
+{"datetime_1":"2021-01-01 00:00:08"}
+{"datetime_1":"2021-01-01 00:00:09"}
+{"datetime_1":"2021-01-01 00:00:10"}
+{"datetime_1":"2021-01-01 00:00:07"}
+{"datetime_1":"2021-01-01 00:00:08"}
+{"date_1":"2021-01-01"}
+{"date_1":"2021-01-02"}
+{"date_1":"2021-01-03"}
+{"date_1":"2021-01-04"}
+{"date_1":"2021-01-05"}
+{"date_1":"2021-01-06"}
+{"date_1":"2021-01-07"}
+{"date_1":"2021-01-08"}
+{"date_1":"2021-01-09"}
+{"date_1":"2021-01-10"}
+{"date_1":"2021-01-07"}
+{"date_1":"2021-01-08"}
+{"date_1":"2021-01-09"}
+{"date_1":"2021-01-10"}
+{"ipv4_1":"192.168.1.1"}
+{"ipv4_1":"192.168.1.2"}
+{"ipv4_1":"192.168.1.3"}
+{"ipv4_1":"192.168.1.4"}
+{"ipv4_1":"192.168.1.5"}
+{"ipv4_1":"192.168.1.6"}
+{"ipv4_1":"192.168.1.7"}
+{"ipv4_1":"192.168.1.8"}
+{"ipv4_1":"192.168.1.9"}
+{"ipv4_1":"192.168.1.10"}
+{"ipv4_1":"192.168.1.7"}
+{"ipv4_1":"192.168.1.8"}
+{"ipv4_1":"192.168.1.9"}
+{"ipv4_1":"192.168.1.10"}
+{"ipv4_1":"192.168.1.11"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7334"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7335"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7336"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7337"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7338"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7339"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733a"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733b"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733c"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733d"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733e"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733f"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7340"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7341"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733f"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7340"}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_tinyint_1":[1]}
+{"array_tinyint_1":[2]}
+{"array_tinyint_1":[3]}
+{"array_tinyint_1":[4]}
+{"array_tinyint_1":[5]}
+{"array_tinyint_1":[6]}
+{"array_tinyint_1":[7]}
+{"array_tinyint_1":[8]}
+{"array_tinyint_1":[9]}
+{"array_tinyint_1":[10]}
+{"array_tinyint_1":[11]}
+{"array_tinyint_1":[12]}
+{"array_tinyint_1":[13]}
+{"array_tinyint_1":[14]}
+{"array_tinyint_1":[15]}
+{"array_tinyint_1":[16]}
+{"array_tinyint_1":[17]}
+{"array_tinyint_1":[18]}
+{"array_smallint_1":[1]}
+{"array_smallint_1":[2, null]}
+{"array_smallint_1":[3]}
+{"array_smallint_1":[4]}
+{"array_smallint_1":[5]}
+{"array_smallint_1":[6]}
+{"array_smallint_1":[7]}
+{"array_smallint_1":[8]}
+{"array_smallint_1":[9]}
+{"array_smallint_1":[10]}
+{"array_smallint_1":[11]}
+{"array_smallint_1":[12]}
+{"array_smallint_1":[13]}
+{"array_smallint_1":[14]}
+{"array_smallint_1":[15]}
+{"array_smallint_1":[16]}
+{"array_smallint_1":[17]}
+{"array_smallint_1":[18]}
+{"array_smallint_1":[19]}
+{"array_int_1":[1]}
+{"array_int_1":[2]}
+{"array_int_1":[3]}
+{"array_int_1":[4]}
+{"array_int_1":[5]}
+{"array_int_1":[6]}
+{"array_int_1":[7]}
+{"array_int_1":[8]}
+{"array_int_1":[9]}
+{"array_int_1":[10]}
+{"array_int_1":[11]}
+{"array_int_1":[12]}
+{"array_int_1":[13]}
+{"array_int_1":[14]}
+{"array_int_1":[15]}
+{"array_int_1":[16]}
+{"array_int_1":[17]}
+{"array_int_1":[18]}
+{"array_int_1":[19]}
+{"array_int_1":[20]}
+{"array_bigint_1":[1]}
+{"array_bigint_1":[2]}
+{"array_bigint_1":[3]}
+{"array_bigint_1":[4]}
+{"array_bigint_1":[5]}
+{"array_bigint_1":[6]}
+{"array_bigint_1":[7]}
+{"array_bigint_1":[8]}
+{"array_bigint_1":[9]}
+{"array_bigint_1":[10]}
+{"array_bigint_1":[11]}
+{"array_bigint_1":[12]}
+{"array_bigint_1":[13]}
+{"array_bigint_1":[14]}
+{"array_bigint_1":[15]}
+{"array_bigint_1":[16]}
+{"array_bigint_1":[17]}
+{"array_bigint_1":[18]}
+{"array_bigint_1":[19]}
+{"array_bigint_1":[20]}
+{"array_bigint_1":[21]}
+{"array_largeint_1":[1, null]}
+{"array_largeint_1":[2]}
+{"array_largeint_1":[3]}
+{"array_largeint_1":[4]}
+{"array_largeint_1":[5]}
+{"array_largeint_1":[6]}
+{"array_largeint_1":[7]}
+{"array_largeint_1":[8]}
+{"array_largeint_1":[9]}
+{"array_largeint_1":[10]}
+{"array_largeint_1":[11]}
+{"array_largeint_1":[12]}
+{"array_largeint_1":[13]}
+{"array_largeint_1":[14]}
+{"array_largeint_1":[15]}
+{"array_largeint_1":[16]}
+{"array_largeint_1":[17]}
+{"array_largeint_1":[18]}
+{"array_largeint_1":[19]}
+{"array_largeint_1":[20]}
+{"array_largeint_1":[21]}
+{"array_largeint_1":[22]}
+
+-- !sql_compaction_before --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.array_char_1	array<text>	Yes	false	\N	NONE
+var.array_largeint_1	array<largeint>	Yes	false	\N	NONE
+
+-- !sql_compaction_after --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.array_char_1	array<text>	Yes	false	\N	NONE
+
+-- !sql --
+{"array_bigint_1":[1, null],"array_boolean_1":[1],"array_char_1":["1"],"array_date_1":["2021-01-01"],"array_datetime_1":["2021-01-01 00:00:00"],"array_decimal128_1":[1.120000000],"array_decimal256_1":[null],"array_decimal32_1":[1.12],"array_decimal64_1":[1.120000000],"array_double_1":[1.12],"array_float_1":[1.12],"array_int_1":[1, null],"array_ipv4_1":["192.168.1.1"],"array_ipv6_1":["2001:db8:85a3::8a2e:370:7334"],"array_largeint_1":[1, null],"array_smallint_1":[1, null],"array_string_1":["1"],"array_tinyint_1":[1, null],"bigint_1":1,"boolean_1":1,"char_1":"1","date_1":"2021-01-01","datetime_1":"2021-01-01 00:00:00","decimal128_1":1.120000000,"decimal32_1":1.12,"decimal64_1":1.120000000,"double_1":1.12,"float_1":1.12,"int_1":1,"ipv4_1":"192.168.1.1","ipv6_1":"2001:db8:85a3::8a2e:370:7334","largeint_1":1,"other_1":"1","smallint_1":1,"string_1":"1","tinyint_1":1}
+{"other_1":"1"}
+{"tinyint_1":1}
+{"tinyint_1":2}
+{"smallint_1":1}
+{"smallint_1":2}
+{"smallint_1":3}
+{"int_1":1}
+{"int_1":2}
+{"int_1":3}
+{"int_1":4}
+{"bigint_1":1}
+{"bigint_1":2}
+{"bigint_1":3}
+{"bigint_1":4}
+{"bigint_1":5}
+{"largeint_1":1}
+{"largeint_1":2}
+{"largeint_1":3}
+{"largeint_1":4}
+{"largeint_1":5}
+{"largeint_1":6}
+{"char_1":"1"}
+{"char_1":"2"}
+{"char_1":"3"}
+{"char_1":"4"}
+{"char_1":"5"}
+{"char_1":"6"}
+{"char_1":"7"}
+{"string_1":"1"}
+{"string_1":"2"}
+{"string_1":"3"}
+{"string_1":"4"}
+{"string_1":"5"}
+{"string_1":"6"}
+{"string_1":"7"}
+{"string_1":"8"}
+{"float_1":1.12}
+{"float_1":2.12}
+{"float_1":3.12}
+{"float_1":4.12}
+{"float_1":5.12}
+{"float_1":6.12}
+{"float_1":7.12}
+{"float_1":8.12}
+{"double_1":1.12}
+{"double_1":2.12}
+{"double_1":3.12}
+{"double_1":4.12}
+{"double_1":5.12}
+{"double_1":6.12}
+{"double_1":7.12}
+{"double_1":8.12}
+{"double_1":9.12}
+{"decimal32_1":1.12}
+{"decimal32_1":2.12}
+{"decimal32_1":3.12}
+{"decimal32_1":4.12}
+{"decimal32_1":5.12}
+{"decimal32_1":6.12}
+{"decimal32_1":7.12}
+{"decimal32_1":8.12}
+{"decimal32_1":9.12}
+{"decimal32_1":10.12}
+{"decimal64_1":1.120000000}
+{"decimal64_1":2.120000000}
+{"decimal64_1":3.120000000}
+{"decimal64_1":4.120000000}
+{"decimal64_1":5.120000000}
+{"decimal64_1":6.120000000}
+{"decimal64_1":7.120000000}
+{"decimal64_1":8.120000000}
+{"decimal64_1":9.120000000}
+{"decimal64_1":10.120000000}
+{"decimal64_1":11.120000000}
+{"decimal128_1":1.120000000}
+{"decimal128_1":2.120000000}
+{"decimal128_1":3.120000000}
+{"decimal128_1":4.120000000}
+{"decimal128_1":5.120000000}
+{"decimal128_1":6.120000000}
+{"decimal128_1":7.120000000}
+{"decimal128_1":8.120000000}
+{"decimal128_1":9.120000000}
+{"decimal128_1":10.120000000}
+{"decimal128_1":11.120000000}
+{"decimal128_1":12.120000000}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{"datetime_1":"2021-01-01 00:00:00"}
+{"datetime_1":"2021-01-01 00:00:01"}
+{"datetime_1":"2021-01-01 00:00:02"}
+{"datetime_1":"2021-01-01 00:00:03"}
+{"datetime_1":"2021-01-01 00:00:04"}
+{"datetime_1":"2021-01-01 00:00:05"}
+{"datetime_1":"2021-01-01 00:00:06"}
+{"datetime_1":"2021-01-01 00:00:07"}
+{"datetime_1":"2021-01-01 00:00:08"}
+{"datetime_1":"2021-01-01 00:00:09"}
+{"datetime_1":"2021-01-01 00:00:10"}
+{"datetime_1":"2021-01-01 00:00:07"}
+{"datetime_1":"2021-01-01 00:00:08"}
+{"date_1":"2021-01-01"}
+{"date_1":"2021-01-02"}
+{"date_1":"2021-01-03"}
+{"date_1":"2021-01-04"}
+{"date_1":"2021-01-05"}
+{"date_1":"2021-01-06"}
+{"date_1":"2021-01-07"}
+{"date_1":"2021-01-08"}
+{"date_1":"2021-01-09"}
+{"date_1":"2021-01-10"}
+{"date_1":"2021-01-07"}
+{"date_1":"2021-01-08"}
+{"date_1":"2021-01-09"}
+{"date_1":"2021-01-10"}
+{"ipv4_1":"192.168.1.1"}
+{"ipv4_1":"192.168.1.2"}
+{"ipv4_1":"192.168.1.3"}
+{"ipv4_1":"192.168.1.4"}
+{"ipv4_1":"192.168.1.5"}
+{"ipv4_1":"192.168.1.6"}
+{"ipv4_1":"192.168.1.7"}
+{"ipv4_1":"192.168.1.8"}
+{"ipv4_1":"192.168.1.9"}
+{"ipv4_1":"192.168.1.10"}
+{"ipv4_1":"192.168.1.7"}
+{"ipv4_1":"192.168.1.8"}
+{"ipv4_1":"192.168.1.9"}
+{"ipv4_1":"192.168.1.10"}
+{"ipv4_1":"192.168.1.11"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7334"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7335"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7336"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7337"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7338"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7339"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733a"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733b"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733c"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733d"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733e"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733f"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7340"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7341"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733f"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7340"}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_tinyint_1":[1]}
+{"array_tinyint_1":[2]}
+{"array_tinyint_1":[3]}
+{"array_tinyint_1":[4]}
+{"array_tinyint_1":[5]}
+{"array_tinyint_1":[6]}
+{"array_tinyint_1":[7]}
+{"array_tinyint_1":[8]}
+{"array_tinyint_1":[9]}
+{"array_tinyint_1":[10]}
+{"array_tinyint_1":[11]}
+{"array_tinyint_1":[12]}
+{"array_tinyint_1":[13]}
+{"array_tinyint_1":[14]}
+{"array_tinyint_1":[15]}
+{"array_tinyint_1":[16]}
+{"array_tinyint_1":[17]}
+{"array_tinyint_1":[18]}
+{"array_smallint_1":[1]}
+{"array_smallint_1":[2, null]}
+{"array_smallint_1":[3]}
+{"array_smallint_1":[4]}
+{"array_smallint_1":[5]}
+{"array_smallint_1":[6]}
+{"array_smallint_1":[7]}
+{"array_smallint_1":[8]}
+{"array_smallint_1":[9]}
+{"array_smallint_1":[10]}
+{"array_smallint_1":[11]}
+{"array_smallint_1":[12]}
+{"array_smallint_1":[13]}
+{"array_smallint_1":[14]}
+{"array_smallint_1":[15]}
+{"array_smallint_1":[16]}
+{"array_smallint_1":[17]}
+{"array_smallint_1":[18]}
+{"array_smallint_1":[19]}
+{"array_int_1":[1]}
+{"array_int_1":[2]}
+{"array_int_1":[3]}
+{"array_int_1":[4]}
+{"array_int_1":[5]}
+{"array_int_1":[6]}
+{"array_int_1":[7]}
+{"array_int_1":[8]}
+{"array_int_1":[9]}
+{"array_int_1":[10]}
+{"array_int_1":[11]}
+{"array_int_1":[12]}
+{"array_int_1":[13]}
+{"array_int_1":[14]}
+{"array_int_1":[15]}
+{"array_int_1":[16]}
+{"array_int_1":[17]}
+{"array_int_1":[18]}
+{"array_int_1":[19]}
+{"array_int_1":[20]}
+{"array_bigint_1":[1]}
+{"array_bigint_1":[2]}
+{"array_bigint_1":[3]}
+{"array_bigint_1":[4]}
+{"array_bigint_1":[5]}
+{"array_bigint_1":[6]}
+{"array_bigint_1":[7]}
+{"array_bigint_1":[8]}
+{"array_bigint_1":[9]}
+{"array_bigint_1":[10]}
+{"array_bigint_1":[11]}
+{"array_bigint_1":[12]}
+{"array_bigint_1":[13]}
+{"array_bigint_1":[14]}
+{"array_bigint_1":[15]}
+{"array_bigint_1":[16]}
+{"array_bigint_1":[17]}
+{"array_bigint_1":[18]}
+{"array_bigint_1":[19]}
+{"array_bigint_1":[20]}
+{"array_bigint_1":[21]}
+{"array_largeint_1":[1, null]}
+{"array_largeint_1":[2]}
+{"array_largeint_1":[3]}
+{"array_largeint_1":[4]}
+{"array_largeint_1":[5]}
+{"array_largeint_1":[6]}
+{"array_largeint_1":[7]}
+{"array_largeint_1":[8]}
+{"array_largeint_1":[9]}
+{"array_largeint_1":[10]}
+{"array_largeint_1":[11]}
+{"array_largeint_1":[12]}
+{"array_largeint_1":[13]}
+{"array_largeint_1":[14]}
+{"array_largeint_1":[15]}
+{"array_largeint_1":[16]}
+{"array_largeint_1":[17]}
+{"array_largeint_1":[18]}
+{"array_largeint_1":[19]}
+{"array_largeint_1":[20]}
+{"array_largeint_1":[21]}
+{"array_largeint_1":[22]}
+{"array_char_1":["1"]}
+{"array_char_1":["2"]}
+{"array_char_1":["3"]}
+{"array_char_1":["4"]}
+{"array_char_1":["5"]}
+{"array_char_1":["6"]}
+{"array_char_1":["7"]}
+{"array_char_1":["8"]}
+{"array_char_1":["9"]}
+{"array_char_1":["10"]}
+{"array_char_1":["11"]}
+{"array_char_1":["12"]}
+{"array_char_1":["13"]}
+{"array_char_1":["14"]}
+{"array_char_1":["15"]}
+{"array_char_1":["16"]}
+{"array_char_1":["17"]}
+{"array_char_1":["18"]}
+{"array_char_1":["19"]}
+{"array_char_1":["20"]}
+{"array_char_1":["21"]}
+{"array_char_1":["22"]}
+{"array_char_1":["23"]}
+
+-- !sql_compaction_before --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.array_char_1	array<text>	Yes	false	\N	NONE
+var.array_string_1	array<text>	Yes	false	\N	NONE
+
+-- !sql_compaction_after --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.array_string_1	array<text>	Yes	false	\N	NONE
+
+-- !sql --
+{"array_bigint_1":[1, null],"array_boolean_1":[1],"array_char_1":["1"],"array_date_1":["2021-01-01"],"array_datetime_1":["2021-01-01 00:00:00"],"array_decimal128_1":[1.120000000],"array_decimal256_1":[null],"array_decimal32_1":[1.12],"array_decimal64_1":[1.120000000],"array_double_1":[1.12],"array_float_1":[1.12],"array_int_1":[1, null],"array_ipv4_1":["192.168.1.1"],"array_ipv6_1":["2001:db8:85a3::8a2e:370:7334"],"array_largeint_1":[1, null],"array_smallint_1":[1, null],"array_string_1":["1"],"array_tinyint_1":[1, null],"bigint_1":1,"boolean_1":1,"char_1":"1","date_1":"2021-01-01","datetime_1":"2021-01-01 00:00:00","decimal128_1":1.120000000,"decimal32_1":1.12,"decimal64_1":1.120000000,"double_1":1.12,"float_1":1.12,"int_1":1,"ipv4_1":"192.168.1.1","ipv6_1":"2001:db8:85a3::8a2e:370:7334","largeint_1":1,"other_1":"1","smallint_1":1,"string_1":"1","tinyint_1":1}
+{"other_1":"1"}
+{"tinyint_1":1}
+{"tinyint_1":2}
+{"smallint_1":1}
+{"smallint_1":2}
+{"smallint_1":3}
+{"int_1":1}
+{"int_1":2}
+{"int_1":3}
+{"int_1":4}
+{"bigint_1":1}
+{"bigint_1":2}
+{"bigint_1":3}
+{"bigint_1":4}
+{"bigint_1":5}
+{"largeint_1":1}
+{"largeint_1":2}
+{"largeint_1":3}
+{"largeint_1":4}
+{"largeint_1":5}
+{"largeint_1":6}
+{"char_1":"1"}
+{"char_1":"2"}
+{"char_1":"3"}
+{"char_1":"4"}
+{"char_1":"5"}
+{"char_1":"6"}
+{"char_1":"7"}
+{"string_1":"1"}
+{"string_1":"2"}
+{"string_1":"3"}
+{"string_1":"4"}
+{"string_1":"5"}
+{"string_1":"6"}
+{"string_1":"7"}
+{"string_1":"8"}
+{"float_1":1.12}
+{"float_1":2.12}
+{"float_1":3.12}
+{"float_1":4.12}
+{"float_1":5.12}
+{"float_1":6.12}
+{"float_1":7.12}
+{"float_1":8.12}
+{"double_1":1.12}
+{"double_1":2.12}
+{"double_1":3.12}
+{"double_1":4.12}
+{"double_1":5.12}
+{"double_1":6.12}
+{"double_1":7.12}
+{"double_1":8.12}
+{"double_1":9.12}
+{"decimal32_1":1.12}
+{"decimal32_1":2.12}
+{"decimal32_1":3.12}
+{"decimal32_1":4.12}
+{"decimal32_1":5.12}
+{"decimal32_1":6.12}
+{"decimal32_1":7.12}
+{"decimal32_1":8.12}
+{"decimal32_1":9.12}
+{"decimal32_1":10.12}
+{"decimal64_1":1.120000000}
+{"decimal64_1":2.120000000}
+{"decimal64_1":3.120000000}
+{"decimal64_1":4.120000000}
+{"decimal64_1":5.120000000}
+{"decimal64_1":6.120000000}
+{"decimal64_1":7.120000000}
+{"decimal64_1":8.120000000}
+{"decimal64_1":9.120000000}
+{"decimal64_1":10.120000000}
+{"decimal64_1":11.120000000}
+{"decimal128_1":1.120000000}
+{"decimal128_1":2.120000000}
+{"decimal128_1":3.120000000}
+{"decimal128_1":4.120000000}
+{"decimal128_1":5.120000000}
+{"decimal128_1":6.120000000}
+{"decimal128_1":7.120000000}
+{"decimal128_1":8.120000000}
+{"decimal128_1":9.120000000}
+{"decimal128_1":10.120000000}
+{"decimal128_1":11.120000000}
+{"decimal128_1":12.120000000}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{"datetime_1":"2021-01-01 00:00:00"}
+{"datetime_1":"2021-01-01 00:00:01"}
+{"datetime_1":"2021-01-01 00:00:02"}
+{"datetime_1":"2021-01-01 00:00:03"}
+{"datetime_1":"2021-01-01 00:00:04"}
+{"datetime_1":"2021-01-01 00:00:05"}
+{"datetime_1":"2021-01-01 00:00:06"}
+{"datetime_1":"2021-01-01 00:00:07"}
+{"datetime_1":"2021-01-01 00:00:08"}
+{"datetime_1":"2021-01-01 00:00:09"}
+{"datetime_1":"2021-01-01 00:00:10"}
+{"datetime_1":"2021-01-01 00:00:07"}
+{"datetime_1":"2021-01-01 00:00:08"}
+{"date_1":"2021-01-01"}
+{"date_1":"2021-01-02"}
+{"date_1":"2021-01-03"}
+{"date_1":"2021-01-04"}
+{"date_1":"2021-01-05"}
+{"date_1":"2021-01-06"}
+{"date_1":"2021-01-07"}
+{"date_1":"2021-01-08"}
+{"date_1":"2021-01-09"}
+{"date_1":"2021-01-10"}
+{"date_1":"2021-01-07"}
+{"date_1":"2021-01-08"}
+{"date_1":"2021-01-09"}
+{"date_1":"2021-01-10"}
+{"ipv4_1":"192.168.1.1"}
+{"ipv4_1":"192.168.1.2"}
+{"ipv4_1":"192.168.1.3"}
+{"ipv4_1":"192.168.1.4"}
+{"ipv4_1":"192.168.1.5"}
+{"ipv4_1":"192.168.1.6"}
+{"ipv4_1":"192.168.1.7"}
+{"ipv4_1":"192.168.1.8"}
+{"ipv4_1":"192.168.1.9"}
+{"ipv4_1":"192.168.1.10"}
+{"ipv4_1":"192.168.1.7"}
+{"ipv4_1":"192.168.1.8"}
+{"ipv4_1":"192.168.1.9"}
+{"ipv4_1":"192.168.1.10"}
+{"ipv4_1":"192.168.1.11"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7334"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7335"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7336"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7337"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7338"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7339"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733a"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733b"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733c"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733d"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733e"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733f"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7340"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7341"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733f"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7340"}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_tinyint_1":[1]}
+{"array_tinyint_1":[2]}
+{"array_tinyint_1":[3]}
+{"array_tinyint_1":[4]}
+{"array_tinyint_1":[5]}
+{"array_tinyint_1":[6]}
+{"array_tinyint_1":[7]}
+{"array_tinyint_1":[8]}
+{"array_tinyint_1":[9]}
+{"array_tinyint_1":[10]}
+{"array_tinyint_1":[11]}
+{"array_tinyint_1":[12]}
+{"array_tinyint_1":[13]}
+{"array_tinyint_1":[14]}
+{"array_tinyint_1":[15]}
+{"array_tinyint_1":[16]}
+{"array_tinyint_1":[17]}
+{"array_tinyint_1":[18]}
+{"array_smallint_1":[1]}
+{"array_smallint_1":[2, null]}
+{"array_smallint_1":[3]}
+{"array_smallint_1":[4]}
+{"array_smallint_1":[5]}
+{"array_smallint_1":[6]}
+{"array_smallint_1":[7]}
+{"array_smallint_1":[8]}
+{"array_smallint_1":[9]}
+{"array_smallint_1":[10]}
+{"array_smallint_1":[11]}
+{"array_smallint_1":[12]}
+{"array_smallint_1":[13]}
+{"array_smallint_1":[14]}
+{"array_smallint_1":[15]}
+{"array_smallint_1":[16]}
+{"array_smallint_1":[17]}
+{"array_smallint_1":[18]}
+{"array_smallint_1":[19]}
+{"array_int_1":[1]}
+{"array_int_1":[2]}
+{"array_int_1":[3]}
+{"array_int_1":[4]}
+{"array_int_1":[5]}
+{"array_int_1":[6]}
+{"array_int_1":[7]}
+{"array_int_1":[8]}
+{"array_int_1":[9]}
+{"array_int_1":[10]}
+{"array_int_1":[11]}
+{"array_int_1":[12]}
+{"array_int_1":[13]}
+{"array_int_1":[14]}
+{"array_int_1":[15]}
+{"array_int_1":[16]}
+{"array_int_1":[17]}
+{"array_int_1":[18]}
+{"array_int_1":[19]}
+{"array_int_1":[20]}
+{"array_bigint_1":[1]}
+{"array_bigint_1":[2]}
+{"array_bigint_1":[3]}
+{"array_bigint_1":[4]}
+{"array_bigint_1":[5]}
+{"array_bigint_1":[6]}
+{"array_bigint_1":[7]}
+{"array_bigint_1":[8]}
+{"array_bigint_1":[9]}
+{"array_bigint_1":[10]}
+{"array_bigint_1":[11]}
+{"array_bigint_1":[12]}
+{"array_bigint_1":[13]}
+{"array_bigint_1":[14]}
+{"array_bigint_1":[15]}
+{"array_bigint_1":[16]}
+{"array_bigint_1":[17]}
+{"array_bigint_1":[18]}
+{"array_bigint_1":[19]}
+{"array_bigint_1":[20]}
+{"array_bigint_1":[21]}
+{"array_largeint_1":[1, null]}
+{"array_largeint_1":[2]}
+{"array_largeint_1":[3]}
+{"array_largeint_1":[4]}
+{"array_largeint_1":[5]}
+{"array_largeint_1":[6]}
+{"array_largeint_1":[7]}
+{"array_largeint_1":[8]}
+{"array_largeint_1":[9]}
+{"array_largeint_1":[10]}
+{"array_largeint_1":[11]}
+{"array_largeint_1":[12]}
+{"array_largeint_1":[13]}
+{"array_largeint_1":[14]}
+{"array_largeint_1":[15]}
+{"array_largeint_1":[16]}
+{"array_largeint_1":[17]}
+{"array_largeint_1":[18]}
+{"array_largeint_1":[19]}
+{"array_largeint_1":[20]}
+{"array_largeint_1":[21]}
+{"array_largeint_1":[22]}
+{"array_char_1":["1"]}
+{"array_char_1":["2"]}
+{"array_char_1":["3"]}
+{"array_char_1":["4"]}
+{"array_char_1":["5"]}
+{"array_char_1":["6"]}
+{"array_char_1":["7"]}
+{"array_char_1":["8"]}
+{"array_char_1":["9"]}
+{"array_char_1":["10"]}
+{"array_char_1":["11"]}
+{"array_char_1":["12"]}
+{"array_char_1":["13"]}
+{"array_char_1":["14"]}
+{"array_char_1":["15"]}
+{"array_char_1":["16"]}
+{"array_char_1":["17"]}
+{"array_char_1":["18"]}
+{"array_char_1":["19"]}
+{"array_char_1":["20"]}
+{"array_char_1":["21"]}
+{"array_char_1":["22"]}
+{"array_char_1":["23"]}
+{"array_string_1":["1"]}
+{"array_string_1":["2"]}
+{"array_string_1":["3"]}
+{"array_string_1":["4"]}
+{"array_string_1":["5"]}
+{"array_string_1":["6"]}
+{"array_string_1":["7"]}
+{"array_string_1":["8"]}
+{"array_string_1":["9"]}
+{"array_string_1":["10"]}
+{"array_string_1":["11"]}
+{"array_string_1":["12"]}
+{"array_string_1":["13"]}
+{"array_string_1":["14"]}
+{"array_string_1":["15"]}
+{"array_string_1":["16"]}
+{"array_string_1":["17"]}
+{"array_string_1":["18"]}
+{"array_string_1":["19"]}
+{"array_string_1":["20"]}
+{"array_string_1":["21"]}
+{"array_string_1":["22"]}
+{"array_string_1":["23"]}
+{"array_string_1":["24"]}
+
+-- !sql_compaction_before --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.array_float_1	array<float>	Yes	false	\N	NONE
+var.array_string_1	array<text>	Yes	false	\N	NONE
+
+-- !sql_compaction_after --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.array_float_1	array<float>	Yes	false	\N	NONE
+
+-- !sql --
+{"array_bigint_1":[1, null],"array_boolean_1":[1],"array_char_1":["1"],"array_date_1":["2021-01-01"],"array_datetime_1":["2021-01-01 00:00:00"],"array_decimal128_1":[1.120000000],"array_decimal256_1":[null],"array_decimal32_1":[1.12],"array_decimal64_1":[1.120000000],"array_double_1":[1.12],"array_float_1":[1.12],"array_int_1":[1, null],"array_ipv4_1":["192.168.1.1"],"array_ipv6_1":["2001:db8:85a3::8a2e:370:7334"],"array_largeint_1":[1, null],"array_smallint_1":[1, null],"array_string_1":["1"],"array_tinyint_1":[1, null],"bigint_1":1,"boolean_1":1,"char_1":"1","date_1":"2021-01-01","datetime_1":"2021-01-01 00:00:00","decimal128_1":1.120000000,"decimal32_1":1.12,"decimal64_1":1.120000000,"double_1":1.12,"float_1":1.12,"int_1":1,"ipv4_1":"192.168.1.1","ipv6_1":"2001:db8:85a3::8a2e:370:7334","largeint_1":1,"other_1":"1","smallint_1":1,"string_1":"1","tinyint_1":1}
+{"other_1":"1"}
+{"tinyint_1":1}
+{"tinyint_1":2}
+{"smallint_1":1}
+{"smallint_1":2}
+{"smallint_1":3}
+{"int_1":1}
+{"int_1":2}
+{"int_1":3}
+{"int_1":4}
+{"bigint_1":1}
+{"bigint_1":2}
+{"bigint_1":3}
+{"bigint_1":4}
+{"bigint_1":5}
+{"largeint_1":1}
+{"largeint_1":2}
+{"largeint_1":3}
+{"largeint_1":4}
+{"largeint_1":5}
+{"largeint_1":6}
+{"char_1":"1"}
+{"char_1":"2"}
+{"char_1":"3"}
+{"char_1":"4"}
+{"char_1":"5"}
+{"char_1":"6"}
+{"char_1":"7"}
+{"string_1":"1"}
+{"string_1":"2"}
+{"string_1":"3"}
+{"string_1":"4"}
+{"string_1":"5"}
+{"string_1":"6"}
+{"string_1":"7"}
+{"string_1":"8"}
+{"float_1":1.12}
+{"float_1":2.12}
+{"float_1":3.12}
+{"float_1":4.12}
+{"float_1":5.12}
+{"float_1":6.12}
+{"float_1":7.12}
+{"float_1":8.12}
+{"double_1":1.12}
+{"double_1":2.12}
+{"double_1":3.12}
+{"double_1":4.12}
+{"double_1":5.12}
+{"double_1":6.12}
+{"double_1":7.12}
+{"double_1":8.12}
+{"double_1":9.12}
+{"decimal32_1":1.12}
+{"decimal32_1":2.12}
+{"decimal32_1":3.12}
+{"decimal32_1":4.12}
+{"decimal32_1":5.12}
+{"decimal32_1":6.12}
+{"decimal32_1":7.12}
+{"decimal32_1":8.12}
+{"decimal32_1":9.12}
+{"decimal32_1":10.12}
+{"decimal64_1":1.120000000}
+{"decimal64_1":2.120000000}
+{"decimal64_1":3.120000000}
+{"decimal64_1":4.120000000}
+{"decimal64_1":5.120000000}
+{"decimal64_1":6.120000000}
+{"decimal64_1":7.120000000}
+{"decimal64_1":8.120000000}
+{"decimal64_1":9.120000000}
+{"decimal64_1":10.120000000}
+{"decimal64_1":11.120000000}
+{"decimal128_1":1.120000000}
+{"decimal128_1":2.120000000}
+{"decimal128_1":3.120000000}
+{"decimal128_1":4.120000000}
+{"decimal128_1":5.120000000}
+{"decimal128_1":6.120000000}
+{"decimal128_1":7.120000000}
+{"decimal128_1":8.120000000}
+{"decimal128_1":9.120000000}
+{"decimal128_1":10.120000000}
+{"decimal128_1":11.120000000}
+{"decimal128_1":12.120000000}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{"datetime_1":"2021-01-01 00:00:00"}
+{"datetime_1":"2021-01-01 00:00:01"}
+{"datetime_1":"2021-01-01 00:00:02"}
+{"datetime_1":"2021-01-01 00:00:03"}
+{"datetime_1":"2021-01-01 00:00:04"}
+{"datetime_1":"2021-01-01 00:00:05"}
+{"datetime_1":"2021-01-01 00:00:06"}
+{"datetime_1":"2021-01-01 00:00:07"}
+{"datetime_1":"2021-01-01 00:00:08"}
+{"datetime_1":"2021-01-01 00:00:09"}
+{"datetime_1":"2021-01-01 00:00:10"}
+{"datetime_1":"2021-01-01 00:00:07"}
+{"datetime_1":"2021-01-01 00:00:08"}
+{"date_1":"2021-01-01"}
+{"date_1":"2021-01-02"}
+{"date_1":"2021-01-03"}
+{"date_1":"2021-01-04"}
+{"date_1":"2021-01-05"}
+{"date_1":"2021-01-06"}
+{"date_1":"2021-01-07"}
+{"date_1":"2021-01-08"}
+{"date_1":"2021-01-09"}
+{"date_1":"2021-01-10"}
+{"date_1":"2021-01-07"}
+{"date_1":"2021-01-08"}
+{"date_1":"2021-01-09"}
+{"date_1":"2021-01-10"}
+{"ipv4_1":"192.168.1.1"}
+{"ipv4_1":"192.168.1.2"}
+{"ipv4_1":"192.168.1.3"}
+{"ipv4_1":"192.168.1.4"}
+{"ipv4_1":"192.168.1.5"}
+{"ipv4_1":"192.168.1.6"}
+{"ipv4_1":"192.168.1.7"}
+{"ipv4_1":"192.168.1.8"}
+{"ipv4_1":"192.168.1.9"}
+{"ipv4_1":"192.168.1.10"}
+{"ipv4_1":"192.168.1.7"}
+{"ipv4_1":"192.168.1.8"}
+{"ipv4_1":"192.168.1.9"}
+{"ipv4_1":"192.168.1.10"}
+{"ipv4_1":"192.168.1.11"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7334"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7335"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7336"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7337"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7338"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7339"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733a"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733b"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733c"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733d"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733e"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733f"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7340"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7341"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733f"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7340"}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_tinyint_1":[1]}
+{"array_tinyint_1":[2]}
+{"array_tinyint_1":[3]}
+{"array_tinyint_1":[4]}
+{"array_tinyint_1":[5]}
+{"array_tinyint_1":[6]}
+{"array_tinyint_1":[7]}
+{"array_tinyint_1":[8]}
+{"array_tinyint_1":[9]}
+{"array_tinyint_1":[10]}
+{"array_tinyint_1":[11]}
+{"array_tinyint_1":[12]}
+{"array_tinyint_1":[13]}
+{"array_tinyint_1":[14]}
+{"array_tinyint_1":[15]}
+{"array_tinyint_1":[16]}
+{"array_tinyint_1":[17]}
+{"array_tinyint_1":[18]}
+{"array_smallint_1":[1]}
+{"array_smallint_1":[2, null]}
+{"array_smallint_1":[3]}
+{"array_smallint_1":[4]}
+{"array_smallint_1":[5]}
+{"array_smallint_1":[6]}
+{"array_smallint_1":[7]}
+{"array_smallint_1":[8]}
+{"array_smallint_1":[9]}
+{"array_smallint_1":[10]}
+{"array_smallint_1":[11]}
+{"array_smallint_1":[12]}
+{"array_smallint_1":[13]}
+{"array_smallint_1":[14]}
+{"array_smallint_1":[15]}
+{"array_smallint_1":[16]}
+{"array_smallint_1":[17]}
+{"array_smallint_1":[18]}
+{"array_smallint_1":[19]}
+{"array_int_1":[1]}
+{"array_int_1":[2]}
+{"array_int_1":[3]}
+{"array_int_1":[4]}
+{"array_int_1":[5]}
+{"array_int_1":[6]}
+{"array_int_1":[7]}
+{"array_int_1":[8]}
+{"array_int_1":[9]}
+{"array_int_1":[10]}
+{"array_int_1":[11]}
+{"array_int_1":[12]}
+{"array_int_1":[13]}
+{"array_int_1":[14]}
+{"array_int_1":[15]}
+{"array_int_1":[16]}
+{"array_int_1":[17]}
+{"array_int_1":[18]}
+{"array_int_1":[19]}
+{"array_int_1":[20]}
+{"array_bigint_1":[1]}
+{"array_bigint_1":[2]}
+{"array_bigint_1":[3]}
+{"array_bigint_1":[4]}
+{"array_bigint_1":[5]}
+{"array_bigint_1":[6]}
+{"array_bigint_1":[7]}
+{"array_bigint_1":[8]}
+{"array_bigint_1":[9]}
+{"array_bigint_1":[10]}
+{"array_bigint_1":[11]}
+{"array_bigint_1":[12]}
+{"array_bigint_1":[13]}
+{"array_bigint_1":[14]}
+{"array_bigint_1":[15]}
+{"array_bigint_1":[16]}
+{"array_bigint_1":[17]}
+{"array_bigint_1":[18]}
+{"array_bigint_1":[19]}
+{"array_bigint_1":[20]}
+{"array_bigint_1":[21]}
+{"array_largeint_1":[1, null]}
+{"array_largeint_1":[2]}
+{"array_largeint_1":[3]}
+{"array_largeint_1":[4]}
+{"array_largeint_1":[5]}
+{"array_largeint_1":[6]}
+{"array_largeint_1":[7]}
+{"array_largeint_1":[8]}
+{"array_largeint_1":[9]}
+{"array_largeint_1":[10]}
+{"array_largeint_1":[11]}
+{"array_largeint_1":[12]}
+{"array_largeint_1":[13]}
+{"array_largeint_1":[14]}
+{"array_largeint_1":[15]}
+{"array_largeint_1":[16]}
+{"array_largeint_1":[17]}
+{"array_largeint_1":[18]}
+{"array_largeint_1":[19]}
+{"array_largeint_1":[20]}
+{"array_largeint_1":[21]}
+{"array_largeint_1":[22]}
+{"array_char_1":["1"]}
+{"array_char_1":["2"]}
+{"array_char_1":["3"]}
+{"array_char_1":["4"]}
+{"array_char_1":["5"]}
+{"array_char_1":["6"]}
+{"array_char_1":["7"]}
+{"array_char_1":["8"]}
+{"array_char_1":["9"]}
+{"array_char_1":["10"]}
+{"array_char_1":["11"]}
+{"array_char_1":["12"]}
+{"array_char_1":["13"]}
+{"array_char_1":["14"]}
+{"array_char_1":["15"]}
+{"array_char_1":["16"]}
+{"array_char_1":["17"]}
+{"array_char_1":["18"]}
+{"array_char_1":["19"]}
+{"array_char_1":["20"]}
+{"array_char_1":["21"]}
+{"array_char_1":["22"]}
+{"array_char_1":["23"]}
+{"array_string_1":["1"]}
+{"array_string_1":["2"]}
+{"array_string_1":["3"]}
+{"array_string_1":["4"]}
+{"array_string_1":["5"]}
+{"array_string_1":["6"]}
+{"array_string_1":["7"]}
+{"array_string_1":["8"]}
+{"array_string_1":["9"]}
+{"array_string_1":["10"]}
+{"array_string_1":["11"]}
+{"array_string_1":["12"]}
+{"array_string_1":["13"]}
+{"array_string_1":["14"]}
+{"array_string_1":["15"]}
+{"array_string_1":["16"]}
+{"array_string_1":["17"]}
+{"array_string_1":["18"]}
+{"array_string_1":["19"]}
+{"array_string_1":["20"]}
+{"array_string_1":["21"]}
+{"array_string_1":["22"]}
+{"array_string_1":["23"]}
+{"array_string_1":["24"]}
+{"array_float_1":[1.12]}
+{"array_float_1":[2.12]}
+{"array_float_1":[3.12]}
+{"array_float_1":[4.12]}
+{"array_float_1":[5.12]}
+{"array_float_1":[6.12]}
+{"array_float_1":[7.12]}
+{"array_float_1":[8.12]}
+{"array_float_1":[9.12]}
+{"array_float_1":[10.12]}
+{"array_float_1":[11.12]}
+{"array_float_1":[12.12]}
+{"array_float_1":[13.12]}
+{"array_float_1":[14.12]}
+{"array_float_1":[15.12]}
+{"array_float_1":[16.12]}
+{"array_float_1":[17.12]}
+{"array_float_1":[18.12]}
+{"array_float_1":[19.12]}
+{"array_float_1":[20.12]}
+{"array_float_1":[21.12]}
+{"array_float_1":[22.12]}
+{"array_float_1":[23.12]}
+{"array_float_1":[24.12]}
+{"array_float_1":[25.12]}
+
+-- !sql_compaction_before --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.array_double_1	array<double>	Yes	false	\N	NONE
+var.array_float_1	array<float>	Yes	false	\N	NONE
+
+-- !sql_compaction_after --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.array_double_1	array<double>	Yes	false	\N	NONE
+
+-- !sql --
+{"array_bigint_1":[1, null],"array_boolean_1":[1],"array_char_1":["1"],"array_date_1":["2021-01-01"],"array_datetime_1":["2021-01-01 00:00:00"],"array_decimal128_1":[1.120000000],"array_decimal256_1":[null],"array_decimal32_1":[1.12],"array_decimal64_1":[1.120000000],"array_double_1":[1.12],"array_float_1":[1.12],"array_int_1":[1, null],"array_ipv4_1":["192.168.1.1"],"array_ipv6_1":["2001:db8:85a3::8a2e:370:7334"],"array_largeint_1":[1, null],"array_smallint_1":[1, null],"array_string_1":["1"],"array_tinyint_1":[1, null],"bigint_1":1,"boolean_1":1,"char_1":"1","date_1":"2021-01-01","datetime_1":"2021-01-01 00:00:00","decimal128_1":1.120000000,"decimal32_1":1.12,"decimal64_1":1.120000000,"double_1":1.12,"float_1":1.12,"int_1":1,"ipv4_1":"192.168.1.1","ipv6_1":"2001:db8:85a3::8a2e:370:7334","largeint_1":1,"other_1":"1","smallint_1":1,"string_1":"1","tinyint_1":1}
+{"other_1":"1"}
+{"tinyint_1":1}
+{"tinyint_1":2}
+{"smallint_1":1}
+{"smallint_1":2}
+{"smallint_1":3}
+{"int_1":1}
+{"int_1":2}
+{"int_1":3}
+{"int_1":4}
+{"bigint_1":1}
+{"bigint_1":2}
+{"bigint_1":3}
+{"bigint_1":4}
+{"bigint_1":5}
+{"largeint_1":1}
+{"largeint_1":2}
+{"largeint_1":3}
+{"largeint_1":4}
+{"largeint_1":5}
+{"largeint_1":6}
+{"char_1":"1"}
+{"char_1":"2"}
+{"char_1":"3"}
+{"char_1":"4"}
+{"char_1":"5"}
+{"char_1":"6"}
+{"char_1":"7"}
+{"string_1":"1"}
+{"string_1":"2"}
+{"string_1":"3"}
+{"string_1":"4"}
+{"string_1":"5"}
+{"string_1":"6"}
+{"string_1":"7"}
+{"string_1":"8"}
+{"float_1":1.12}
+{"float_1":2.12}
+{"float_1":3.12}
+{"float_1":4.12}
+{"float_1":5.12}
+{"float_1":6.12}
+{"float_1":7.12}
+{"float_1":8.12}
+{"double_1":1.12}
+{"double_1":2.12}
+{"double_1":3.12}
+{"double_1":4.12}
+{"double_1":5.12}
+{"double_1":6.12}
+{"double_1":7.12}
+{"double_1":8.12}
+{"double_1":9.12}
+{"decimal32_1":1.12}
+{"decimal32_1":2.12}
+{"decimal32_1":3.12}
+{"decimal32_1":4.12}
+{"decimal32_1":5.12}
+{"decimal32_1":6.12}
+{"decimal32_1":7.12}
+{"decimal32_1":8.12}
+{"decimal32_1":9.12}
+{"decimal32_1":10.12}
+{"decimal64_1":1.120000000}
+{"decimal64_1":2.120000000}
+{"decimal64_1":3.120000000}
+{"decimal64_1":4.120000000}
+{"decimal64_1":5.120000000}
+{"decimal64_1":6.120000000}
+{"decimal64_1":7.120000000}
+{"decimal64_1":8.120000000}
+{"decimal64_1":9.120000000}
+{"decimal64_1":10.120000000}
+{"decimal64_1":11.120000000}
+{"decimal128_1":1.120000000}
+{"decimal128_1":2.120000000}
+{"decimal128_1":3.120000000}
+{"decimal128_1":4.120000000}
+{"decimal128_1":5.120000000}
+{"decimal128_1":6.120000000}
+{"decimal128_1":7.120000000}
+{"decimal128_1":8.120000000}
+{"decimal128_1":9.120000000}
+{"decimal128_1":10.120000000}
+{"decimal128_1":11.120000000}
+{"decimal128_1":12.120000000}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{"datetime_1":"2021-01-01 00:00:00"}
+{"datetime_1":"2021-01-01 00:00:01"}
+{"datetime_1":"2021-01-01 00:00:02"}
+{"datetime_1":"2021-01-01 00:00:03"}
+{"datetime_1":"2021-01-01 00:00:04"}
+{"datetime_1":"2021-01-01 00:00:05"}
+{"datetime_1":"2021-01-01 00:00:06"}
+{"datetime_1":"2021-01-01 00:00:07"}
+{"datetime_1":"2021-01-01 00:00:08"}
+{"datetime_1":"2021-01-01 00:00:09"}
+{"datetime_1":"2021-01-01 00:00:10"}
+{"datetime_1":"2021-01-01 00:00:07"}
+{"datetime_1":"2021-01-01 00:00:08"}
+{"date_1":"2021-01-01"}
+{"date_1":"2021-01-02"}
+{"date_1":"2021-01-03"}
+{"date_1":"2021-01-04"}
+{"date_1":"2021-01-05"}
+{"date_1":"2021-01-06"}
+{"date_1":"2021-01-07"}
+{"date_1":"2021-01-08"}
+{"date_1":"2021-01-09"}
+{"date_1":"2021-01-10"}
+{"date_1":"2021-01-07"}
+{"date_1":"2021-01-08"}
+{"date_1":"2021-01-09"}
+{"date_1":"2021-01-10"}
+{"ipv4_1":"192.168.1.1"}
+{"ipv4_1":"192.168.1.2"}
+{"ipv4_1":"192.168.1.3"}
+{"ipv4_1":"192.168.1.4"}
+{"ipv4_1":"192.168.1.5"}
+{"ipv4_1":"192.168.1.6"}
+{"ipv4_1":"192.168.1.7"}
+{"ipv4_1":"192.168.1.8"}
+{"ipv4_1":"192.168.1.9"}
+{"ipv4_1":"192.168.1.10"}
+{"ipv4_1":"192.168.1.7"}
+{"ipv4_1":"192.168.1.8"}
+{"ipv4_1":"192.168.1.9"}
+{"ipv4_1":"192.168.1.10"}
+{"ipv4_1":"192.168.1.11"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7334"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7335"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7336"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7337"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7338"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7339"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733a"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733b"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733c"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733d"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733e"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733f"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7340"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7341"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733f"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7340"}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_tinyint_1":[1]}
+{"array_tinyint_1":[2]}
+{"array_tinyint_1":[3]}
+{"array_tinyint_1":[4]}
+{"array_tinyint_1":[5]}
+{"array_tinyint_1":[6]}
+{"array_tinyint_1":[7]}
+{"array_tinyint_1":[8]}
+{"array_tinyint_1":[9]}
+{"array_tinyint_1":[10]}
+{"array_tinyint_1":[11]}
+{"array_tinyint_1":[12]}
+{"array_tinyint_1":[13]}
+{"array_tinyint_1":[14]}
+{"array_tinyint_1":[15]}
+{"array_tinyint_1":[16]}
+{"array_tinyint_1":[17]}
+{"array_tinyint_1":[18]}
+{"array_smallint_1":[1]}
+{"array_smallint_1":[2, null]}
+{"array_smallint_1":[3]}
+{"array_smallint_1":[4]}
+{"array_smallint_1":[5]}
+{"array_smallint_1":[6]}
+{"array_smallint_1":[7]}
+{"array_smallint_1":[8]}
+{"array_smallint_1":[9]}
+{"array_smallint_1":[10]}
+{"array_smallint_1":[11]}
+{"array_smallint_1":[12]}
+{"array_smallint_1":[13]}
+{"array_smallint_1":[14]}
+{"array_smallint_1":[15]}
+{"array_smallint_1":[16]}
+{"array_smallint_1":[17]}
+{"array_smallint_1":[18]}
+{"array_smallint_1":[19]}
+{"array_int_1":[1]}
+{"array_int_1":[2]}
+{"array_int_1":[3]}
+{"array_int_1":[4]}
+{"array_int_1":[5]}
+{"array_int_1":[6]}
+{"array_int_1":[7]}
+{"array_int_1":[8]}
+{"array_int_1":[9]}
+{"array_int_1":[10]}
+{"array_int_1":[11]}
+{"array_int_1":[12]}
+{"array_int_1":[13]}
+{"array_int_1":[14]}
+{"array_int_1":[15]}
+{"array_int_1":[16]}
+{"array_int_1":[17]}
+{"array_int_1":[18]}
+{"array_int_1":[19]}
+{"array_int_1":[20]}
+{"array_bigint_1":[1]}
+{"array_bigint_1":[2]}
+{"array_bigint_1":[3]}
+{"array_bigint_1":[4]}
+{"array_bigint_1":[5]}
+{"array_bigint_1":[6]}
+{"array_bigint_1":[7]}
+{"array_bigint_1":[8]}
+{"array_bigint_1":[9]}
+{"array_bigint_1":[10]}
+{"array_bigint_1":[11]}
+{"array_bigint_1":[12]}
+{"array_bigint_1":[13]}
+{"array_bigint_1":[14]}
+{"array_bigint_1":[15]}
+{"array_bigint_1":[16]}
+{"array_bigint_1":[17]}
+{"array_bigint_1":[18]}
+{"array_bigint_1":[19]}
+{"array_bigint_1":[20]}
+{"array_bigint_1":[21]}
+{"array_largeint_1":[1, null]}
+{"array_largeint_1":[2]}
+{"array_largeint_1":[3]}
+{"array_largeint_1":[4]}
+{"array_largeint_1":[5]}
+{"array_largeint_1":[6]}
+{"array_largeint_1":[7]}
+{"array_largeint_1":[8]}
+{"array_largeint_1":[9]}
+{"array_largeint_1":[10]}
+{"array_largeint_1":[11]}
+{"array_largeint_1":[12]}
+{"array_largeint_1":[13]}
+{"array_largeint_1":[14]}
+{"array_largeint_1":[15]}
+{"array_largeint_1":[16]}
+{"array_largeint_1":[17]}
+{"array_largeint_1":[18]}
+{"array_largeint_1":[19]}
+{"array_largeint_1":[20]}
+{"array_largeint_1":[21]}
+{"array_largeint_1":[22]}
+{"array_char_1":["1"]}
+{"array_char_1":["2"]}
+{"array_char_1":["3"]}
+{"array_char_1":["4"]}
+{"array_char_1":["5"]}
+{"array_char_1":["6"]}
+{"array_char_1":["7"]}
+{"array_char_1":["8"]}
+{"array_char_1":["9"]}
+{"array_char_1":["10"]}
+{"array_char_1":["11"]}
+{"array_char_1":["12"]}
+{"array_char_1":["13"]}
+{"array_char_1":["14"]}
+{"array_char_1":["15"]}
+{"array_char_1":["16"]}
+{"array_char_1":["17"]}
+{"array_char_1":["18"]}
+{"array_char_1":["19"]}
+{"array_char_1":["20"]}
+{"array_char_1":["21"]}
+{"array_char_1":["22"]}
+{"array_char_1":["23"]}
+{"array_string_1":["1"]}
+{"array_string_1":["2"]}
+{"array_string_1":["3"]}
+{"array_string_1":["4"]}
+{"array_string_1":["5"]}
+{"array_string_1":["6"]}
+{"array_string_1":["7"]}
+{"array_string_1":["8"]}
+{"array_string_1":["9"]}
+{"array_string_1":["10"]}
+{"array_string_1":["11"]}
+{"array_string_1":["12"]}
+{"array_string_1":["13"]}
+{"array_string_1":["14"]}
+{"array_string_1":["15"]}
+{"array_string_1":["16"]}
+{"array_string_1":["17"]}
+{"array_string_1":["18"]}
+{"array_string_1":["19"]}
+{"array_string_1":["20"]}
+{"array_string_1":["21"]}
+{"array_string_1":["22"]}
+{"array_string_1":["23"]}
+{"array_string_1":["24"]}
+{"array_float_1":[1.12]}
+{"array_float_1":[2.12]}
+{"array_float_1":[3.12]}
+{"array_float_1":[4.12]}
+{"array_float_1":[5.12]}
+{"array_float_1":[6.12]}
+{"array_float_1":[7.12]}
+{"array_float_1":[8.12]}
+{"array_float_1":[9.12]}
+{"array_float_1":[10.12]}
+{"array_float_1":[11.12]}
+{"array_float_1":[12.12]}
+{"array_float_1":[13.12]}
+{"array_float_1":[14.12]}
+{"array_float_1":[15.12]}
+{"array_float_1":[16.12]}
+{"array_float_1":[17.12]}
+{"array_float_1":[18.12]}
+{"array_float_1":[19.12]}
+{"array_float_1":[20.12]}
+{"array_float_1":[21.12]}
+{"array_float_1":[22.12]}
+{"array_float_1":[23.12]}
+{"array_float_1":[24.12]}
+{"array_float_1":[25.12]}
+{"array_double_1":[1.12]}
+{"array_double_1":[2.12]}
+{"array_double_1":[3.12]}
+{"array_double_1":[4.12]}
+{"array_double_1":[5.12]}
+{"array_double_1":[6.12]}
+{"array_double_1":[7.12]}
+{"array_double_1":[8.12]}
+{"array_double_1":[9.12]}
+{"array_double_1":[10.12]}
+{"array_double_1":[11.12]}
+{"array_double_1":[12.12]}
+{"array_double_1":[13.12]}
+{"array_double_1":[14.12]}
+{"array_double_1":[15.12]}
+{"array_double_1":[16.12]}
+{"array_double_1":[17.12]}
+{"array_double_1":[18.12]}
+{"array_double_1":[19.12]}
+{"array_double_1":[20.12]}
+{"array_double_1":[21.12]}
+{"array_double_1":[22.12]}
+{"array_double_1":[23.12]}
+{"array_double_1":[24.12]}
+{"array_double_1":[25.12]}
+{"array_double_1":[26.12]}
+
+-- !sql_compaction_before --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.array_decimal32_1	array<decimal(8,2)>	Yes	false	\N	NONE
+var.array_double_1	array<double>	Yes	false	\N	NONE
+
+-- !sql_compaction_after --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.array_decimal32_1	array<decimal(8,2)>	Yes	false	\N	NONE
+
+-- !sql --
+{"array_bigint_1":[1, null],"array_boolean_1":[1],"array_char_1":["1"],"array_date_1":["2021-01-01"],"array_datetime_1":["2021-01-01 00:00:00"],"array_decimal128_1":[1.120000000],"array_decimal256_1":[null],"array_decimal32_1":[1.12],"array_decimal64_1":[1.120000000],"array_double_1":[1.12],"array_float_1":[1.12],"array_int_1":[1, null],"array_ipv4_1":["192.168.1.1"],"array_ipv6_1":["2001:db8:85a3::8a2e:370:7334"],"array_largeint_1":[1, null],"array_smallint_1":[1, null],"array_string_1":["1"],"array_tinyint_1":[1, null],"bigint_1":1,"boolean_1":1,"char_1":"1","date_1":"2021-01-01","datetime_1":"2021-01-01 00:00:00","decimal128_1":1.120000000,"decimal32_1":1.12,"decimal64_1":1.120000000,"double_1":1.12,"float_1":1.12,"int_1":1,"ipv4_1":"192.168.1.1","ipv6_1":"2001:db8:85a3::8a2e:370:7334","largeint_1":1,"other_1":"1","smallint_1":1,"string_1":"1","tinyint_1":1}
+{"other_1":"1"}
+{"tinyint_1":1}
+{"tinyint_1":2}
+{"smallint_1":1}
+{"smallint_1":2}
+{"smallint_1":3}
+{"int_1":1}
+{"int_1":2}
+{"int_1":3}
+{"int_1":4}
+{"bigint_1":1}
+{"bigint_1":2}
+{"bigint_1":3}
+{"bigint_1":4}
+{"bigint_1":5}
+{"largeint_1":1}
+{"largeint_1":2}
+{"largeint_1":3}
+{"largeint_1":4}
+{"largeint_1":5}
+{"largeint_1":6}
+{"char_1":"1"}
+{"char_1":"2"}
+{"char_1":"3"}
+{"char_1":"4"}
+{"char_1":"5"}
+{"char_1":"6"}
+{"char_1":"7"}
+{"string_1":"1"}
+{"string_1":"2"}
+{"string_1":"3"}
+{"string_1":"4"}
+{"string_1":"5"}
+{"string_1":"6"}
+{"string_1":"7"}
+{"string_1":"8"}
+{"float_1":1.12}
+{"float_1":2.12}
+{"float_1":3.12}
+{"float_1":4.12}
+{"float_1":5.12}
+{"float_1":6.12}
+{"float_1":7.12}
+{"float_1":8.12}
+{"double_1":1.12}
+{"double_1":2.12}
+{"double_1":3.12}
+{"double_1":4.12}
+{"double_1":5.12}
+{"double_1":6.12}
+{"double_1":7.12}
+{"double_1":8.12}
+{"double_1":9.12}
+{"decimal32_1":1.12}
+{"decimal32_1":2.12}
+{"decimal32_1":3.12}
+{"decimal32_1":4.12}
+{"decimal32_1":5.12}
+{"decimal32_1":6.12}
+{"decimal32_1":7.12}
+{"decimal32_1":8.12}
+{"decimal32_1":9.12}
+{"decimal32_1":10.12}
+{"decimal64_1":1.120000000}
+{"decimal64_1":2.120000000}
+{"decimal64_1":3.120000000}
+{"decimal64_1":4.120000000}
+{"decimal64_1":5.120000000}
+{"decimal64_1":6.120000000}
+{"decimal64_1":7.120000000}
+{"decimal64_1":8.120000000}
+{"decimal64_1":9.120000000}
+{"decimal64_1":10.120000000}
+{"decimal64_1":11.120000000}
+{"decimal128_1":1.120000000}
+{"decimal128_1":2.120000000}
+{"decimal128_1":3.120000000}
+{"decimal128_1":4.120000000}
+{"decimal128_1":5.120000000}
+{"decimal128_1":6.120000000}
+{"decimal128_1":7.120000000}
+{"decimal128_1":8.120000000}
+{"decimal128_1":9.120000000}
+{"decimal128_1":10.120000000}
+{"decimal128_1":11.120000000}
+{"decimal128_1":12.120000000}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{"datetime_1":"2021-01-01 00:00:00"}
+{"datetime_1":"2021-01-01 00:00:01"}
+{"datetime_1":"2021-01-01 00:00:02"}
+{"datetime_1":"2021-01-01 00:00:03"}
+{"datetime_1":"2021-01-01 00:00:04"}
+{"datetime_1":"2021-01-01 00:00:05"}
+{"datetime_1":"2021-01-01 00:00:06"}
+{"datetime_1":"2021-01-01 00:00:07"}
+{"datetime_1":"2021-01-01 00:00:08"}
+{"datetime_1":"2021-01-01 00:00:09"}
+{"datetime_1":"2021-01-01 00:00:10"}
+{"datetime_1":"2021-01-01 00:00:07"}
+{"datetime_1":"2021-01-01 00:00:08"}
+{"date_1":"2021-01-01"}
+{"date_1":"2021-01-02"}
+{"date_1":"2021-01-03"}
+{"date_1":"2021-01-04"}
+{"date_1":"2021-01-05"}
+{"date_1":"2021-01-06"}
+{"date_1":"2021-01-07"}
+{"date_1":"2021-01-08"}
+{"date_1":"2021-01-09"}
+{"date_1":"2021-01-10"}
+{"date_1":"2021-01-07"}
+{"date_1":"2021-01-08"}
+{"date_1":"2021-01-09"}
+{"date_1":"2021-01-10"}
+{"ipv4_1":"192.168.1.1"}
+{"ipv4_1":"192.168.1.2"}
+{"ipv4_1":"192.168.1.3"}
+{"ipv4_1":"192.168.1.4"}
+{"ipv4_1":"192.168.1.5"}
+{"ipv4_1":"192.168.1.6"}
+{"ipv4_1":"192.168.1.7"}
+{"ipv4_1":"192.168.1.8"}
+{"ipv4_1":"192.168.1.9"}
+{"ipv4_1":"192.168.1.10"}
+{"ipv4_1":"192.168.1.7"}
+{"ipv4_1":"192.168.1.8"}
+{"ipv4_1":"192.168.1.9"}
+{"ipv4_1":"192.168.1.10"}
+{"ipv4_1":"192.168.1.11"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7334"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7335"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7336"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7337"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7338"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7339"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733a"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733b"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733c"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733d"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733e"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733f"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7340"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7341"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733f"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7340"}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_tinyint_1":[1]}
+{"array_tinyint_1":[2]}
+{"array_tinyint_1":[3]}
+{"array_tinyint_1":[4]}
+{"array_tinyint_1":[5]}
+{"array_tinyint_1":[6]}
+{"array_tinyint_1":[7]}
+{"array_tinyint_1":[8]}
+{"array_tinyint_1":[9]}
+{"array_tinyint_1":[10]}
+{"array_tinyint_1":[11]}
+{"array_tinyint_1":[12]}
+{"array_tinyint_1":[13]}
+{"array_tinyint_1":[14]}
+{"array_tinyint_1":[15]}
+{"array_tinyint_1":[16]}
+{"array_tinyint_1":[17]}
+{"array_tinyint_1":[18]}
+{"array_smallint_1":[1]}
+{"array_smallint_1":[2, null]}
+{"array_smallint_1":[3]}
+{"array_smallint_1":[4]}
+{"array_smallint_1":[5]}
+{"array_smallint_1":[6]}
+{"array_smallint_1":[7]}
+{"array_smallint_1":[8]}
+{"array_smallint_1":[9]}
+{"array_smallint_1":[10]}
+{"array_smallint_1":[11]}
+{"array_smallint_1":[12]}
+{"array_smallint_1":[13]}
+{"array_smallint_1":[14]}
+{"array_smallint_1":[15]}
+{"array_smallint_1":[16]}
+{"array_smallint_1":[17]}
+{"array_smallint_1":[18]}
+{"array_smallint_1":[19]}
+{"array_int_1":[1]}
+{"array_int_1":[2]}
+{"array_int_1":[3]}
+{"array_int_1":[4]}
+{"array_int_1":[5]}
+{"array_int_1":[6]}
+{"array_int_1":[7]}
+{"array_int_1":[8]}
+{"array_int_1":[9]}
+{"array_int_1":[10]}
+{"array_int_1":[11]}
+{"array_int_1":[12]}
+{"array_int_1":[13]}
+{"array_int_1":[14]}
+{"array_int_1":[15]}
+{"array_int_1":[16]}
+{"array_int_1":[17]}
+{"array_int_1":[18]}
+{"array_int_1":[19]}
+{"array_int_1":[20]}
+{"array_bigint_1":[1]}
+{"array_bigint_1":[2]}
+{"array_bigint_1":[3]}
+{"array_bigint_1":[4]}
+{"array_bigint_1":[5]}
+{"array_bigint_1":[6]}
+{"array_bigint_1":[7]}
+{"array_bigint_1":[8]}
+{"array_bigint_1":[9]}
+{"array_bigint_1":[10]}
+{"array_bigint_1":[11]}
+{"array_bigint_1":[12]}
+{"array_bigint_1":[13]}
+{"array_bigint_1":[14]}
+{"array_bigint_1":[15]}
+{"array_bigint_1":[16]}
+{"array_bigint_1":[17]}
+{"array_bigint_1":[18]}
+{"array_bigint_1":[19]}
+{"array_bigint_1":[20]}
+{"array_bigint_1":[21]}
+{"array_largeint_1":[1, null]}
+{"array_largeint_1":[2]}
+{"array_largeint_1":[3]}
+{"array_largeint_1":[4]}
+{"array_largeint_1":[5]}
+{"array_largeint_1":[6]}
+{"array_largeint_1":[7]}
+{"array_largeint_1":[8]}
+{"array_largeint_1":[9]}
+{"array_largeint_1":[10]}
+{"array_largeint_1":[11]}
+{"array_largeint_1":[12]}
+{"array_largeint_1":[13]}
+{"array_largeint_1":[14]}
+{"array_largeint_1":[15]}
+{"array_largeint_1":[16]}
+{"array_largeint_1":[17]}
+{"array_largeint_1":[18]}
+{"array_largeint_1":[19]}
+{"array_largeint_1":[20]}
+{"array_largeint_1":[21]}
+{"array_largeint_1":[22]}
+{"array_char_1":["1"]}
+{"array_char_1":["2"]}
+{"array_char_1":["3"]}
+{"array_char_1":["4"]}
+{"array_char_1":["5"]}
+{"array_char_1":["6"]}
+{"array_char_1":["7"]}
+{"array_char_1":["8"]}
+{"array_char_1":["9"]}
+{"array_char_1":["10"]}
+{"array_char_1":["11"]}
+{"array_char_1":["12"]}
+{"array_char_1":["13"]}
+{"array_char_1":["14"]}
+{"array_char_1":["15"]}
+{"array_char_1":["16"]}
+{"array_char_1":["17"]}
+{"array_char_1":["18"]}
+{"array_char_1":["19"]}
+{"array_char_1":["20"]}
+{"array_char_1":["21"]}
+{"array_char_1":["22"]}
+{"array_char_1":["23"]}
+{"array_string_1":["1"]}
+{"array_string_1":["2"]}
+{"array_string_1":["3"]}
+{"array_string_1":["4"]}
+{"array_string_1":["5"]}
+{"array_string_1":["6"]}
+{"array_string_1":["7"]}
+{"array_string_1":["8"]}
+{"array_string_1":["9"]}
+{"array_string_1":["10"]}
+{"array_string_1":["11"]}
+{"array_string_1":["12"]}
+{"array_string_1":["13"]}
+{"array_string_1":["14"]}
+{"array_string_1":["15"]}
+{"array_string_1":["16"]}
+{"array_string_1":["17"]}
+{"array_string_1":["18"]}
+{"array_string_1":["19"]}
+{"array_string_1":["20"]}
+{"array_string_1":["21"]}
+{"array_string_1":["22"]}
+{"array_string_1":["23"]}
+{"array_string_1":["24"]}
+{"array_float_1":[1.12]}
+{"array_float_1":[2.12]}
+{"array_float_1":[3.12]}
+{"array_float_1":[4.12]}
+{"array_float_1":[5.12]}
+{"array_float_1":[6.12]}
+{"array_float_1":[7.12]}
+{"array_float_1":[8.12]}
+{"array_float_1":[9.12]}
+{"array_float_1":[10.12]}
+{"array_float_1":[11.12]}
+{"array_float_1":[12.12]}
+{"array_float_1":[13.12]}
+{"array_float_1":[14.12]}
+{"array_float_1":[15.12]}
+{"array_float_1":[16.12]}
+{"array_float_1":[17.12]}
+{"array_float_1":[18.12]}
+{"array_float_1":[19.12]}
+{"array_float_1":[20.12]}
+{"array_float_1":[21.12]}
+{"array_float_1":[22.12]}
+{"array_float_1":[23.12]}
+{"array_float_1":[24.12]}
+{"array_float_1":[25.12]}
+{"array_double_1":[1.12]}
+{"array_double_1":[2.12]}
+{"array_double_1":[3.12]}
+{"array_double_1":[4.12]}
+{"array_double_1":[5.12]}
+{"array_double_1":[6.12]}
+{"array_double_1":[7.12]}
+{"array_double_1":[8.12]}
+{"array_double_1":[9.12]}
+{"array_double_1":[10.12]}
+{"array_double_1":[11.12]}
+{"array_double_1":[12.12]}
+{"array_double_1":[13.12]}
+{"array_double_1":[14.12]}
+{"array_double_1":[15.12]}
+{"array_double_1":[16.12]}
+{"array_double_1":[17.12]}
+{"array_double_1":[18.12]}
+{"array_double_1":[19.12]}
+{"array_double_1":[20.12]}
+{"array_double_1":[21.12]}
+{"array_double_1":[22.12]}
+{"array_double_1":[23.12]}
+{"array_double_1":[24.12]}
+{"array_double_1":[25.12]}
+{"array_double_1":[26.12]}
+{"array_decimal32_1":[1.12]}
+{"array_decimal32_1":[2.12]}
+{"array_decimal32_1":[3.12]}
+{"array_decimal32_1":[4.12]}
+{"array_decimal32_1":[5.12]}
+{"array_decimal32_1":[6.12]}
+{"array_decimal32_1":[7.12]}
+{"array_decimal32_1":[8.12]}
+{"array_decimal32_1":[9.12]}
+{"array_decimal32_1":[10.12]}
+{"array_decimal32_1":[11.12]}
+{"array_decimal32_1":[12.12]}
+{"array_decimal32_1":[13.12]}
+{"array_decimal32_1":[14.12]}
+{"array_decimal32_1":[15.12]}
+{"array_decimal32_1":[16.12]}
+{"array_decimal32_1":[17.12]}
+{"array_decimal32_1":[18.12]}
+{"array_decimal32_1":[19.12]}
+{"array_decimal32_1":[20.12]}
+{"array_decimal32_1":[21.12]}
+{"array_decimal32_1":[22.12]}
+{"array_decimal32_1":[23.12]}
+{"array_decimal32_1":[24.12]}
+{"array_decimal32_1":[25.12]}
+{"array_decimal32_1":[26.12]}
+{"array_decimal32_1":[27.12]}
+
+-- !sql_compaction_before --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.array_decimal32_1	array<decimal(8,2)>	Yes	false	\N	NONE
+var.array_decimal64_1	array<decimal(16,9)>	Yes	false	\N	NONE
+
+-- !sql_compaction_after --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.array_decimal64_1	array<decimal(16,9)>	Yes	false	\N	NONE
+
+-- !sql --
+{"array_bigint_1":[1, null],"array_boolean_1":[1],"array_char_1":["1"],"array_date_1":["2021-01-01"],"array_datetime_1":["2021-01-01 00:00:00"],"array_decimal128_1":[1.120000000],"array_decimal256_1":[null],"array_decimal32_1":[1.12],"array_decimal64_1":[1.120000000],"array_double_1":[1.12],"array_float_1":[1.12],"array_int_1":[1, null],"array_ipv4_1":["192.168.1.1"],"array_ipv6_1":["2001:db8:85a3::8a2e:370:7334"],"array_largeint_1":[1, null],"array_smallint_1":[1, null],"array_string_1":["1"],"array_tinyint_1":[1, null],"bigint_1":1,"boolean_1":1,"char_1":"1","date_1":"2021-01-01","datetime_1":"2021-01-01 00:00:00","decimal128_1":1.120000000,"decimal32_1":1.12,"decimal64_1":1.120000000,"double_1":1.12,"float_1":1.12,"int_1":1,"ipv4_1":"192.168.1.1","ipv6_1":"2001:db8:85a3::8a2e:370:7334","largeint_1":1,"other_1":"1","smallint_1":1,"string_1":"1","tinyint_1":1}
+{"other_1":"1"}
+{"tinyint_1":1}
+{"tinyint_1":2}
+{"smallint_1":1}
+{"smallint_1":2}
+{"smallint_1":3}
+{"int_1":1}
+{"int_1":2}
+{"int_1":3}
+{"int_1":4}
+{"bigint_1":1}
+{"bigint_1":2}
+{"bigint_1":3}
+{"bigint_1":4}
+{"bigint_1":5}
+{"largeint_1":1}
+{"largeint_1":2}
+{"largeint_1":3}
+{"largeint_1":4}
+{"largeint_1":5}
+{"largeint_1":6}
+{"char_1":"1"}
+{"char_1":"2"}
+{"char_1":"3"}
+{"char_1":"4"}
+{"char_1":"5"}
+{"char_1":"6"}
+{"char_1":"7"}
+{"string_1":"1"}
+{"string_1":"2"}
+{"string_1":"3"}
+{"string_1":"4"}
+{"string_1":"5"}
+{"string_1":"6"}
+{"string_1":"7"}
+{"string_1":"8"}
+{"float_1":1.12}
+{"float_1":2.12}
+{"float_1":3.12}
+{"float_1":4.12}
+{"float_1":5.12}
+{"float_1":6.12}
+{"float_1":7.12}
+{"float_1":8.12}
+{"double_1":1.12}
+{"double_1":2.12}
+{"double_1":3.12}
+{"double_1":4.12}
+{"double_1":5.12}
+{"double_1":6.12}
+{"double_1":7.12}
+{"double_1":8.12}
+{"double_1":9.12}
+{"decimal32_1":1.12}
+{"decimal32_1":2.12}
+{"decimal32_1":3.12}
+{"decimal32_1":4.12}
+{"decimal32_1":5.12}
+{"decimal32_1":6.12}
+{"decimal32_1":7.12}
+{"decimal32_1":8.12}
+{"decimal32_1":9.12}
+{"decimal32_1":10.12}
+{"decimal64_1":1.120000000}
+{"decimal64_1":2.120000000}
+{"decimal64_1":3.120000000}
+{"decimal64_1":4.120000000}
+{"decimal64_1":5.120000000}
+{"decimal64_1":6.120000000}
+{"decimal64_1":7.120000000}
+{"decimal64_1":8.120000000}
+{"decimal64_1":9.120000000}
+{"decimal64_1":10.120000000}
+{"decimal64_1":11.120000000}
+{"decimal128_1":1.120000000}
+{"decimal128_1":2.120000000}
+{"decimal128_1":3.120000000}
+{"decimal128_1":4.120000000}
+{"decimal128_1":5.120000000}
+{"decimal128_1":6.120000000}
+{"decimal128_1":7.120000000}
+{"decimal128_1":8.120000000}
+{"decimal128_1":9.120000000}
+{"decimal128_1":10.120000000}
+{"decimal128_1":11.120000000}
+{"decimal128_1":12.120000000}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{"datetime_1":"2021-01-01 00:00:00"}
+{"datetime_1":"2021-01-01 00:00:01"}
+{"datetime_1":"2021-01-01 00:00:02"}
+{"datetime_1":"2021-01-01 00:00:03"}
+{"datetime_1":"2021-01-01 00:00:04"}
+{"datetime_1":"2021-01-01 00:00:05"}
+{"datetime_1":"2021-01-01 00:00:06"}
+{"datetime_1":"2021-01-01 00:00:07"}
+{"datetime_1":"2021-01-01 00:00:08"}
+{"datetime_1":"2021-01-01 00:00:09"}
+{"datetime_1":"2021-01-01 00:00:10"}
+{"datetime_1":"2021-01-01 00:00:07"}
+{"datetime_1":"2021-01-01 00:00:08"}
+{"date_1":"2021-01-01"}
+{"date_1":"2021-01-02"}
+{"date_1":"2021-01-03"}
+{"date_1":"2021-01-04"}
+{"date_1":"2021-01-05"}
+{"date_1":"2021-01-06"}
+{"date_1":"2021-01-07"}
+{"date_1":"2021-01-08"}
+{"date_1":"2021-01-09"}
+{"date_1":"2021-01-10"}
+{"date_1":"2021-01-07"}
+{"date_1":"2021-01-08"}
+{"date_1":"2021-01-09"}
+{"date_1":"2021-01-10"}
+{"ipv4_1":"192.168.1.1"}
+{"ipv4_1":"192.168.1.2"}
+{"ipv4_1":"192.168.1.3"}
+{"ipv4_1":"192.168.1.4"}
+{"ipv4_1":"192.168.1.5"}
+{"ipv4_1":"192.168.1.6"}
+{"ipv4_1":"192.168.1.7"}
+{"ipv4_1":"192.168.1.8"}
+{"ipv4_1":"192.168.1.9"}
+{"ipv4_1":"192.168.1.10"}
+{"ipv4_1":"192.168.1.7"}
+{"ipv4_1":"192.168.1.8"}
+{"ipv4_1":"192.168.1.9"}
+{"ipv4_1":"192.168.1.10"}
+{"ipv4_1":"192.168.1.11"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7334"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7335"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7336"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7337"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7338"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7339"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733a"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733b"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733c"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733d"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733e"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733f"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7340"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7341"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733f"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7340"}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_tinyint_1":[1]}
+{"array_tinyint_1":[2]}
+{"array_tinyint_1":[3]}
+{"array_tinyint_1":[4]}
+{"array_tinyint_1":[5]}
+{"array_tinyint_1":[6]}
+{"array_tinyint_1":[7]}
+{"array_tinyint_1":[8]}
+{"array_tinyint_1":[9]}
+{"array_tinyint_1":[10]}
+{"array_tinyint_1":[11]}
+{"array_tinyint_1":[12]}
+{"array_tinyint_1":[13]}
+{"array_tinyint_1":[14]}
+{"array_tinyint_1":[15]}
+{"array_tinyint_1":[16]}
+{"array_tinyint_1":[17]}
+{"array_tinyint_1":[18]}
+{"array_smallint_1":[1]}
+{"array_smallint_1":[2, null]}
+{"array_smallint_1":[3]}
+{"array_smallint_1":[4]}
+{"array_smallint_1":[5]}
+{"array_smallint_1":[6]}
+{"array_smallint_1":[7]}
+{"array_smallint_1":[8]}
+{"array_smallint_1":[9]}
+{"array_smallint_1":[10]}
+{"array_smallint_1":[11]}
+{"array_smallint_1":[12]}
+{"array_smallint_1":[13]}
+{"array_smallint_1":[14]}
+{"array_smallint_1":[15]}
+{"array_smallint_1":[16]}
+{"array_smallint_1":[17]}
+{"array_smallint_1":[18]}
+{"array_smallint_1":[19]}
+{"array_int_1":[1]}
+{"array_int_1":[2]}
+{"array_int_1":[3]}
+{"array_int_1":[4]}
+{"array_int_1":[5]}
+{"array_int_1":[6]}
+{"array_int_1":[7]}
+{"array_int_1":[8]}
+{"array_int_1":[9]}
+{"array_int_1":[10]}
+{"array_int_1":[11]}
+{"array_int_1":[12]}
+{"array_int_1":[13]}
+{"array_int_1":[14]}
+{"array_int_1":[15]}
+{"array_int_1":[16]}
+{"array_int_1":[17]}
+{"array_int_1":[18]}
+{"array_int_1":[19]}
+{"array_int_1":[20]}
+{"array_bigint_1":[1]}
+{"array_bigint_1":[2]}
+{"array_bigint_1":[3]}
+{"array_bigint_1":[4]}
+{"array_bigint_1":[5]}
+{"array_bigint_1":[6]}
+{"array_bigint_1":[7]}
+{"array_bigint_1":[8]}
+{"array_bigint_1":[9]}
+{"array_bigint_1":[10]}
+{"array_bigint_1":[11]}
+{"array_bigint_1":[12]}
+{"array_bigint_1":[13]}
+{"array_bigint_1":[14]}
+{"array_bigint_1":[15]}
+{"array_bigint_1":[16]}
+{"array_bigint_1":[17]}
+{"array_bigint_1":[18]}
+{"array_bigint_1":[19]}
+{"array_bigint_1":[20]}
+{"array_bigint_1":[21]}
+{"array_largeint_1":[1, null]}
+{"array_largeint_1":[2]}
+{"array_largeint_1":[3]}
+{"array_largeint_1":[4]}
+{"array_largeint_1":[5]}
+{"array_largeint_1":[6]}
+{"array_largeint_1":[7]}
+{"array_largeint_1":[8]}
+{"array_largeint_1":[9]}
+{"array_largeint_1":[10]}
+{"array_largeint_1":[11]}
+{"array_largeint_1":[12]}
+{"array_largeint_1":[13]}
+{"array_largeint_1":[14]}
+{"array_largeint_1":[15]}
+{"array_largeint_1":[16]}
+{"array_largeint_1":[17]}
+{"array_largeint_1":[18]}
+{"array_largeint_1":[19]}
+{"array_largeint_1":[20]}
+{"array_largeint_1":[21]}
+{"array_largeint_1":[22]}
+{"array_char_1":["1"]}
+{"array_char_1":["2"]}
+{"array_char_1":["3"]}
+{"array_char_1":["4"]}
+{"array_char_1":["5"]}
+{"array_char_1":["6"]}
+{"array_char_1":["7"]}
+{"array_char_1":["8"]}
+{"array_char_1":["9"]}
+{"array_char_1":["10"]}
+{"array_char_1":["11"]}
+{"array_char_1":["12"]}
+{"array_char_1":["13"]}
+{"array_char_1":["14"]}
+{"array_char_1":["15"]}
+{"array_char_1":["16"]}
+{"array_char_1":["17"]}
+{"array_char_1":["18"]}
+{"array_char_1":["19"]}
+{"array_char_1":["20"]}
+{"array_char_1":["21"]}
+{"array_char_1":["22"]}
+{"array_char_1":["23"]}
+{"array_string_1":["1"]}
+{"array_string_1":["2"]}
+{"array_string_1":["3"]}
+{"array_string_1":["4"]}
+{"array_string_1":["5"]}
+{"array_string_1":["6"]}
+{"array_string_1":["7"]}
+{"array_string_1":["8"]}
+{"array_string_1":["9"]}
+{"array_string_1":["10"]}
+{"array_string_1":["11"]}
+{"array_string_1":["12"]}
+{"array_string_1":["13"]}
+{"array_string_1":["14"]}
+{"array_string_1":["15"]}
+{"array_string_1":["16"]}
+{"array_string_1":["17"]}
+{"array_string_1":["18"]}
+{"array_string_1":["19"]}
+{"array_string_1":["20"]}
+{"array_string_1":["21"]}
+{"array_string_1":["22"]}
+{"array_string_1":["23"]}
+{"array_string_1":["24"]}
+{"array_float_1":[1.12]}
+{"array_float_1":[2.12]}
+{"array_float_1":[3.12]}
+{"array_float_1":[4.12]}
+{"array_float_1":[5.12]}
+{"array_float_1":[6.12]}
+{"array_float_1":[7.12]}
+{"array_float_1":[8.12]}
+{"array_float_1":[9.12]}
+{"array_float_1":[10.12]}
+{"array_float_1":[11.12]}
+{"array_float_1":[12.12]}
+{"array_float_1":[13.12]}
+{"array_float_1":[14.12]}
+{"array_float_1":[15.12]}
+{"array_float_1":[16.12]}
+{"array_float_1":[17.12]}
+{"array_float_1":[18.12]}
+{"array_float_1":[19.12]}
+{"array_float_1":[20.12]}
+{"array_float_1":[21.12]}
+{"array_float_1":[22.12]}
+{"array_float_1":[23.12]}
+{"array_float_1":[24.12]}
+{"array_float_1":[25.12]}
+{"array_double_1":[1.12]}
+{"array_double_1":[2.12]}
+{"array_double_1":[3.12]}
+{"array_double_1":[4.12]}
+{"array_double_1":[5.12]}
+{"array_double_1":[6.12]}
+{"array_double_1":[7.12]}
+{"array_double_1":[8.12]}
+{"array_double_1":[9.12]}
+{"array_double_1":[10.12]}
+{"array_double_1":[11.12]}
+{"array_double_1":[12.12]}
+{"array_double_1":[13.12]}
+{"array_double_1":[14.12]}
+{"array_double_1":[15.12]}
+{"array_double_1":[16.12]}
+{"array_double_1":[17.12]}
+{"array_double_1":[18.12]}
+{"array_double_1":[19.12]}
+{"array_double_1":[20.12]}
+{"array_double_1":[21.12]}
+{"array_double_1":[22.12]}
+{"array_double_1":[23.12]}
+{"array_double_1":[24.12]}
+{"array_double_1":[25.12]}
+{"array_double_1":[26.12]}
+{"array_decimal32_1":[1.12]}
+{"array_decimal32_1":[2.12]}
+{"array_decimal32_1":[3.12]}
+{"array_decimal32_1":[4.12]}
+{"array_decimal32_1":[5.12]}
+{"array_decimal32_1":[6.12]}
+{"array_decimal32_1":[7.12]}
+{"array_decimal32_1":[8.12]}
+{"array_decimal32_1":[9.12]}
+{"array_decimal32_1":[10.12]}
+{"array_decimal32_1":[11.12]}
+{"array_decimal32_1":[12.12]}
+{"array_decimal32_1":[13.12]}
+{"array_decimal32_1":[14.12]}
+{"array_decimal32_1":[15.12]}
+{"array_decimal32_1":[16.12]}
+{"array_decimal32_1":[17.12]}
+{"array_decimal32_1":[18.12]}
+{"array_decimal32_1":[19.12]}
+{"array_decimal32_1":[20.12]}
+{"array_decimal32_1":[21.12]}
+{"array_decimal32_1":[22.12]}
+{"array_decimal32_1":[23.12]}
+{"array_decimal32_1":[24.12]}
+{"array_decimal32_1":[25.12]}
+{"array_decimal32_1":[26.12]}
+{"array_decimal32_1":[27.12]}
+{"array_decimal64_1":[1.120000000]}
+{"array_decimal64_1":[2.120000000]}
+{"array_decimal64_1":[3.120000000]}
+{"array_decimal64_1":[4.120000000]}
+{"array_decimal64_1":[5.120000000]}
+{"array_decimal64_1":[6.120000000]}
+{"array_decimal64_1":[7.120000000]}
+{"array_decimal64_1":[8.120000000]}
+{"array_decimal64_1":[9.120000000]}
+{"array_decimal64_1":[10.120000000]}
+{"array_decimal64_1":[11.120000000]}
+{"array_decimal64_1":[12.120000000]}
+{"array_decimal64_1":[13.120000000]}
+{"array_decimal64_1":[14.120000000]}
+{"array_decimal64_1":[15.120000000]}
+{"array_decimal64_1":[16.120000000]}
+{"array_decimal64_1":[17.120000000]}
+{"array_decimal64_1":[18.120000000]}
+{"array_decimal64_1":[19.120000000]}
+{"array_decimal64_1":[20.120000000]}
+{"array_decimal64_1":[21.120000000]}
+{"array_decimal64_1":[22.120000000]}
+{"array_decimal64_1":[23.120000000]}
+{"array_decimal64_1":[24.120000000]}
+{"array_decimal64_1":[25.120000000]}
+{"array_decimal64_1":[26.120000000]}
+{"array_decimal64_1":[27.120000000]}
+{"array_decimal64_1":[28.120000000]}
+
+-- !sql_compaction_before --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.array_decimal128_1	array<decimal(36,9)>	Yes	false	\N	NONE
+var.array_decimal64_1	array<decimal(16,9)>	Yes	false	\N	NONE
+
+-- !sql_compaction_after --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.array_decimal128_1	array<decimal(36,9)>	Yes	false	\N	NONE
+
+-- !sql --
+{"array_bigint_1":[1, null],"array_boolean_1":[1],"array_char_1":["1"],"array_date_1":["2021-01-01"],"array_datetime_1":["2021-01-01 00:00:00"],"array_decimal128_1":[1.120000000],"array_decimal256_1":[null],"array_decimal32_1":[1.12],"array_decimal64_1":[1.120000000],"array_double_1":[1.12],"array_float_1":[1.12],"array_int_1":[1, null],"array_ipv4_1":["192.168.1.1"],"array_ipv6_1":["2001:db8:85a3::8a2e:370:7334"],"array_largeint_1":[1, null],"array_smallint_1":[1, null],"array_string_1":["1"],"array_tinyint_1":[1, null],"bigint_1":1,"boolean_1":1,"char_1":"1","date_1":"2021-01-01","datetime_1":"2021-01-01 00:00:00","decimal128_1":1.120000000,"decimal32_1":1.12,"decimal64_1":1.120000000,"double_1":1.12,"float_1":1.12,"int_1":1,"ipv4_1":"192.168.1.1","ipv6_1":"2001:db8:85a3::8a2e:370:7334","largeint_1":1,"other_1":"1","smallint_1":1,"string_1":"1","tinyint_1":1}
+{"other_1":"1"}
+{"tinyint_1":1}
+{"tinyint_1":2}
+{"smallint_1":1}
+{"smallint_1":2}
+{"smallint_1":3}
+{"int_1":1}
+{"int_1":2}
+{"int_1":3}
+{"int_1":4}
+{"bigint_1":1}
+{"bigint_1":2}
+{"bigint_1":3}
+{"bigint_1":4}
+{"bigint_1":5}
+{"largeint_1":1}
+{"largeint_1":2}
+{"largeint_1":3}
+{"largeint_1":4}
+{"largeint_1":5}
+{"largeint_1":6}
+{"char_1":"1"}
+{"char_1":"2"}
+{"char_1":"3"}
+{"char_1":"4"}
+{"char_1":"5"}
+{"char_1":"6"}
+{"char_1":"7"}
+{"string_1":"1"}
+{"string_1":"2"}
+{"string_1":"3"}
+{"string_1":"4"}
+{"string_1":"5"}
+{"string_1":"6"}
+{"string_1":"7"}
+{"string_1":"8"}
+{"float_1":1.12}
+{"float_1":2.12}
+{"float_1":3.12}
+{"float_1":4.12}
+{"float_1":5.12}
+{"float_1":6.12}
+{"float_1":7.12}
+{"float_1":8.12}
+{"double_1":1.12}
+{"double_1":2.12}
+{"double_1":3.12}
+{"double_1":4.12}
+{"double_1":5.12}
+{"double_1":6.12}
+{"double_1":7.12}
+{"double_1":8.12}
+{"double_1":9.12}
+{"decimal32_1":1.12}
+{"decimal32_1":2.12}
+{"decimal32_1":3.12}
+{"decimal32_1":4.12}
+{"decimal32_1":5.12}
+{"decimal32_1":6.12}
+{"decimal32_1":7.12}
+{"decimal32_1":8.12}
+{"decimal32_1":9.12}
+{"decimal32_1":10.12}
+{"decimal64_1":1.120000000}
+{"decimal64_1":2.120000000}
+{"decimal64_1":3.120000000}
+{"decimal64_1":4.120000000}
+{"decimal64_1":5.120000000}
+{"decimal64_1":6.120000000}
+{"decimal64_1":7.120000000}
+{"decimal64_1":8.120000000}
+{"decimal64_1":9.120000000}
+{"decimal64_1":10.120000000}
+{"decimal64_1":11.120000000}
+{"decimal128_1":1.120000000}
+{"decimal128_1":2.120000000}
+{"decimal128_1":3.120000000}
+{"decimal128_1":4.120000000}
+{"decimal128_1":5.120000000}
+{"decimal128_1":6.120000000}
+{"decimal128_1":7.120000000}
+{"decimal128_1":8.120000000}
+{"decimal128_1":9.120000000}
+{"decimal128_1":10.120000000}
+{"decimal128_1":11.120000000}
+{"decimal128_1":12.120000000}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{"datetime_1":"2021-01-01 00:00:00"}
+{"datetime_1":"2021-01-01 00:00:01"}
+{"datetime_1":"2021-01-01 00:00:02"}
+{"datetime_1":"2021-01-01 00:00:03"}
+{"datetime_1":"2021-01-01 00:00:04"}
+{"datetime_1":"2021-01-01 00:00:05"}
+{"datetime_1":"2021-01-01 00:00:06"}
+{"datetime_1":"2021-01-01 00:00:07"}
+{"datetime_1":"2021-01-01 00:00:08"}
+{"datetime_1":"2021-01-01 00:00:09"}
+{"datetime_1":"2021-01-01 00:00:10"}
+{"datetime_1":"2021-01-01 00:00:07"}
+{"datetime_1":"2021-01-01 00:00:08"}
+{"date_1":"2021-01-01"}
+{"date_1":"2021-01-02"}
+{"date_1":"2021-01-03"}
+{"date_1":"2021-01-04"}
+{"date_1":"2021-01-05"}
+{"date_1":"2021-01-06"}
+{"date_1":"2021-01-07"}
+{"date_1":"2021-01-08"}
+{"date_1":"2021-01-09"}
+{"date_1":"2021-01-10"}
+{"date_1":"2021-01-07"}
+{"date_1":"2021-01-08"}
+{"date_1":"2021-01-09"}
+{"date_1":"2021-01-10"}
+{"ipv4_1":"192.168.1.1"}
+{"ipv4_1":"192.168.1.2"}
+{"ipv4_1":"192.168.1.3"}
+{"ipv4_1":"192.168.1.4"}
+{"ipv4_1":"192.168.1.5"}
+{"ipv4_1":"192.168.1.6"}
+{"ipv4_1":"192.168.1.7"}
+{"ipv4_1":"192.168.1.8"}
+{"ipv4_1":"192.168.1.9"}
+{"ipv4_1":"192.168.1.10"}
+{"ipv4_1":"192.168.1.7"}
+{"ipv4_1":"192.168.1.8"}
+{"ipv4_1":"192.168.1.9"}
+{"ipv4_1":"192.168.1.10"}
+{"ipv4_1":"192.168.1.11"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7334"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7335"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7336"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7337"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7338"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7339"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733a"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733b"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733c"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733d"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733e"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733f"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7340"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7341"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733f"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7340"}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_tinyint_1":[1]}
+{"array_tinyint_1":[2]}
+{"array_tinyint_1":[3]}
+{"array_tinyint_1":[4]}
+{"array_tinyint_1":[5]}
+{"array_tinyint_1":[6]}
+{"array_tinyint_1":[7]}
+{"array_tinyint_1":[8]}
+{"array_tinyint_1":[9]}
+{"array_tinyint_1":[10]}
+{"array_tinyint_1":[11]}
+{"array_tinyint_1":[12]}
+{"array_tinyint_1":[13]}
+{"array_tinyint_1":[14]}
+{"array_tinyint_1":[15]}
+{"array_tinyint_1":[16]}
+{"array_tinyint_1":[17]}
+{"array_tinyint_1":[18]}
+{"array_smallint_1":[1]}
+{"array_smallint_1":[2, null]}
+{"array_smallint_1":[3]}
+{"array_smallint_1":[4]}
+{"array_smallint_1":[5]}
+{"array_smallint_1":[6]}
+{"array_smallint_1":[7]}
+{"array_smallint_1":[8]}
+{"array_smallint_1":[9]}
+{"array_smallint_1":[10]}
+{"array_smallint_1":[11]}
+{"array_smallint_1":[12]}
+{"array_smallint_1":[13]}
+{"array_smallint_1":[14]}
+{"array_smallint_1":[15]}
+{"array_smallint_1":[16]}
+{"array_smallint_1":[17]}
+{"array_smallint_1":[18]}
+{"array_smallint_1":[19]}
+{"array_int_1":[1]}
+{"array_int_1":[2]}
+{"array_int_1":[3]}
+{"array_int_1":[4]}
+{"array_int_1":[5]}
+{"array_int_1":[6]}
+{"array_int_1":[7]}
+{"array_int_1":[8]}
+{"array_int_1":[9]}
+{"array_int_1":[10]}
+{"array_int_1":[11]}
+{"array_int_1":[12]}
+{"array_int_1":[13]}
+{"array_int_1":[14]}
+{"array_int_1":[15]}
+{"array_int_1":[16]}
+{"array_int_1":[17]}
+{"array_int_1":[18]}
+{"array_int_1":[19]}
+{"array_int_1":[20]}
+{"array_bigint_1":[1]}
+{"array_bigint_1":[2]}
+{"array_bigint_1":[3]}
+{"array_bigint_1":[4]}
+{"array_bigint_1":[5]}
+{"array_bigint_1":[6]}
+{"array_bigint_1":[7]}
+{"array_bigint_1":[8]}
+{"array_bigint_1":[9]}
+{"array_bigint_1":[10]}
+{"array_bigint_1":[11]}
+{"array_bigint_1":[12]}
+{"array_bigint_1":[13]}
+{"array_bigint_1":[14]}
+{"array_bigint_1":[15]}
+{"array_bigint_1":[16]}
+{"array_bigint_1":[17]}
+{"array_bigint_1":[18]}
+{"array_bigint_1":[19]}
+{"array_bigint_1":[20]}
+{"array_bigint_1":[21]}
+{"array_largeint_1":[1, null]}
+{"array_largeint_1":[2]}
+{"array_largeint_1":[3]}
+{"array_largeint_1":[4]}
+{"array_largeint_1":[5]}
+{"array_largeint_1":[6]}
+{"array_largeint_1":[7]}
+{"array_largeint_1":[8]}
+{"array_largeint_1":[9]}
+{"array_largeint_1":[10]}
+{"array_largeint_1":[11]}
+{"array_largeint_1":[12]}
+{"array_largeint_1":[13]}
+{"array_largeint_1":[14]}
+{"array_largeint_1":[15]}
+{"array_largeint_1":[16]}
+{"array_largeint_1":[17]}
+{"array_largeint_1":[18]}
+{"array_largeint_1":[19]}
+{"array_largeint_1":[20]}
+{"array_largeint_1":[21]}
+{"array_largeint_1":[22]}
+{"array_char_1":["1"]}
+{"array_char_1":["2"]}
+{"array_char_1":["3"]}
+{"array_char_1":["4"]}
+{"array_char_1":["5"]}
+{"array_char_1":["6"]}
+{"array_char_1":["7"]}
+{"array_char_1":["8"]}
+{"array_char_1":["9"]}
+{"array_char_1":["10"]}
+{"array_char_1":["11"]}
+{"array_char_1":["12"]}
+{"array_char_1":["13"]}
+{"array_char_1":["14"]}
+{"array_char_1":["15"]}
+{"array_char_1":["16"]}
+{"array_char_1":["17"]}
+{"array_char_1":["18"]}
+{"array_char_1":["19"]}
+{"array_char_1":["20"]}
+{"array_char_1":["21"]}
+{"array_char_1":["22"]}
+{"array_char_1":["23"]}
+{"array_string_1":["1"]}
+{"array_string_1":["2"]}
+{"array_string_1":["3"]}
+{"array_string_1":["4"]}
+{"array_string_1":["5"]}
+{"array_string_1":["6"]}
+{"array_string_1":["7"]}
+{"array_string_1":["8"]}
+{"array_string_1":["9"]}
+{"array_string_1":["10"]}
+{"array_string_1":["11"]}
+{"array_string_1":["12"]}
+{"array_string_1":["13"]}
+{"array_string_1":["14"]}
+{"array_string_1":["15"]}
+{"array_string_1":["16"]}
+{"array_string_1":["17"]}
+{"array_string_1":["18"]}
+{"array_string_1":["19"]}
+{"array_string_1":["20"]}
+{"array_string_1":["21"]}
+{"array_string_1":["22"]}
+{"array_string_1":["23"]}
+{"array_string_1":["24"]}
+{"array_float_1":[1.12]}
+{"array_float_1":[2.12]}
+{"array_float_1":[3.12]}
+{"array_float_1":[4.12]}
+{"array_float_1":[5.12]}
+{"array_float_1":[6.12]}
+{"array_float_1":[7.12]}
+{"array_float_1":[8.12]}
+{"array_float_1":[9.12]}
+{"array_float_1":[10.12]}
+{"array_float_1":[11.12]}
+{"array_float_1":[12.12]}
+{"array_float_1":[13.12]}
+{"array_float_1":[14.12]}
+{"array_float_1":[15.12]}
+{"array_float_1":[16.12]}
+{"array_float_1":[17.12]}
+{"array_float_1":[18.12]}
+{"array_float_1":[19.12]}
+{"array_float_1":[20.12]}
+{"array_float_1":[21.12]}
+{"array_float_1":[22.12]}
+{"array_float_1":[23.12]}
+{"array_float_1":[24.12]}
+{"array_float_1":[25.12]}
+{"array_double_1":[1.12]}
+{"array_double_1":[2.12]}
+{"array_double_1":[3.12]}
+{"array_double_1":[4.12]}
+{"array_double_1":[5.12]}
+{"array_double_1":[6.12]}
+{"array_double_1":[7.12]}
+{"array_double_1":[8.12]}
+{"array_double_1":[9.12]}
+{"array_double_1":[10.12]}
+{"array_double_1":[11.12]}
+{"array_double_1":[12.12]}
+{"array_double_1":[13.12]}
+{"array_double_1":[14.12]}
+{"array_double_1":[15.12]}
+{"array_double_1":[16.12]}
+{"array_double_1":[17.12]}
+{"array_double_1":[18.12]}
+{"array_double_1":[19.12]}
+{"array_double_1":[20.12]}
+{"array_double_1":[21.12]}
+{"array_double_1":[22.12]}
+{"array_double_1":[23.12]}
+{"array_double_1":[24.12]}
+{"array_double_1":[25.12]}
+{"array_double_1":[26.12]}
+{"array_decimal32_1":[1.12]}
+{"array_decimal32_1":[2.12]}
+{"array_decimal32_1":[3.12]}
+{"array_decimal32_1":[4.12]}
+{"array_decimal32_1":[5.12]}
+{"array_decimal32_1":[6.12]}
+{"array_decimal32_1":[7.12]}
+{"array_decimal32_1":[8.12]}
+{"array_decimal32_1":[9.12]}
+{"array_decimal32_1":[10.12]}
+{"array_decimal32_1":[11.12]}
+{"array_decimal32_1":[12.12]}
+{"array_decimal32_1":[13.12]}
+{"array_decimal32_1":[14.12]}
+{"array_decimal32_1":[15.12]}
+{"array_decimal32_1":[16.12]}
+{"array_decimal32_1":[17.12]}
+{"array_decimal32_1":[18.12]}
+{"array_decimal32_1":[19.12]}
+{"array_decimal32_1":[20.12]}
+{"array_decimal32_1":[21.12]}
+{"array_decimal32_1":[22.12]}
+{"array_decimal32_1":[23.12]}
+{"array_decimal32_1":[24.12]}
+{"array_decimal32_1":[25.12]}
+{"array_decimal32_1":[26.12]}
+{"array_decimal32_1":[27.12]}
+{"array_decimal64_1":[1.120000000]}
+{"array_decimal64_1":[2.120000000]}
+{"array_decimal64_1":[3.120000000]}
+{"array_decimal64_1":[4.120000000]}
+{"array_decimal64_1":[5.120000000]}
+{"array_decimal64_1":[6.120000000]}
+{"array_decimal64_1":[7.120000000]}
+{"array_decimal64_1":[8.120000000]}
+{"array_decimal64_1":[9.120000000]}
+{"array_decimal64_1":[10.120000000]}
+{"array_decimal64_1":[11.120000000]}
+{"array_decimal64_1":[12.120000000]}
+{"array_decimal64_1":[13.120000000]}
+{"array_decimal64_1":[14.120000000]}
+{"array_decimal64_1":[15.120000000]}
+{"array_decimal64_1":[16.120000000]}
+{"array_decimal64_1":[17.120000000]}
+{"array_decimal64_1":[18.120000000]}
+{"array_decimal64_1":[19.120000000]}
+{"array_decimal64_1":[20.120000000]}
+{"array_decimal64_1":[21.120000000]}
+{"array_decimal64_1":[22.120000000]}
+{"array_decimal64_1":[23.120000000]}
+{"array_decimal64_1":[24.120000000]}
+{"array_decimal64_1":[25.120000000]}
+{"array_decimal64_1":[26.120000000]}
+{"array_decimal64_1":[27.120000000]}
+{"array_decimal64_1":[28.120000000]}
+{"array_decimal128_1":[1.120000000]}
+{"array_decimal128_1":[2.120000000]}
+{"array_decimal128_1":[3.120000000]}
+{"array_decimal128_1":[4.120000000]}
+{"array_decimal128_1":[5.120000000]}
+{"array_decimal128_1":[6.120000000]}
+{"array_decimal128_1":[7.120000000]}
+{"array_decimal128_1":[8.120000000]}
+{"array_decimal128_1":[9.120000000]}
+{"array_decimal128_1":[10.120000000]}
+{"array_decimal128_1":[11.120000000]}
+{"array_decimal128_1":[12.120000000]}
+{"array_decimal128_1":[13.120000000]}
+{"array_decimal128_1":[14.120000000]}
+{"array_decimal128_1":[15.120000000]}
+{"array_decimal128_1":[16.120000000]}
+{"array_decimal128_1":[17.120000000]}
+{"array_decimal128_1":[18.120000000]}
+{"array_decimal128_1":[19.120000000]}
+{"array_decimal128_1":[20.120000000]}
+{"array_decimal128_1":[21.120000000]}
+{"array_decimal128_1":[22.120000000]}
+{"array_decimal128_1":[23.120000000]}
+{"array_decimal128_1":[24.120000000]}
+{"array_decimal128_1":[25.120000000]}
+{"array_decimal128_1":[26.120000000]}
+{"array_decimal128_1":[27.120000000]}
+{"array_decimal128_1":[28.120000000]}
+{"array_decimal128_1":[29.120000000]}
+
+-- !sql_compaction_before --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.array_decimal128_1	array<decimal(36,9)>	Yes	false	\N	NONE
+var.array_decimal256_1	array<unknown type: UNSUPPORTED_TYPE>	Yes	false	\N	NONE
+
+-- !sql_compaction_after --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.array_decimal256_1	array<unknown type: UNSUPPORTED_TYPE>	Yes	false	\N	NONE
+
+-- !sql --
+{"array_bigint_1":[1, null],"array_boolean_1":[1],"array_char_1":["1"],"array_date_1":["2021-01-01"],"array_datetime_1":["2021-01-01 00:00:00"],"array_decimal128_1":[1.120000000],"array_decimal256_1":[null],"array_decimal32_1":[1.12],"array_decimal64_1":[1.120000000],"array_double_1":[1.12],"array_float_1":[1.12],"array_int_1":[1, null],"array_ipv4_1":["192.168.1.1"],"array_ipv6_1":["2001:db8:85a3::8a2e:370:7334"],"array_largeint_1":[1, null],"array_smallint_1":[1, null],"array_string_1":["1"],"array_tinyint_1":[1, null],"bigint_1":1,"boolean_1":1,"char_1":"1","date_1":"2021-01-01","datetime_1":"2021-01-01 00:00:00","decimal128_1":1.120000000,"decimal32_1":1.12,"decimal64_1":1.120000000,"double_1":1.12,"float_1":1.12,"int_1":1,"ipv4_1":"192.168.1.1","ipv6_1":"2001:db8:85a3::8a2e:370:7334","largeint_1":1,"other_1":"1","smallint_1":1,"string_1":"1","tinyint_1":1}
+{"other_1":"1"}
+{"tinyint_1":1}
+{"tinyint_1":2}
+{"smallint_1":1}
+{"smallint_1":2}
+{"smallint_1":3}
+{"int_1":1}
+{"int_1":2}
+{"int_1":3}
+{"int_1":4}
+{"bigint_1":1}
+{"bigint_1":2}
+{"bigint_1":3}
+{"bigint_1":4}
+{"bigint_1":5}
+{"largeint_1":1}
+{"largeint_1":2}
+{"largeint_1":3}
+{"largeint_1":4}
+{"largeint_1":5}
+{"largeint_1":6}
+{"char_1":"1"}
+{"char_1":"2"}
+{"char_1":"3"}
+{"char_1":"4"}
+{"char_1":"5"}
+{"char_1":"6"}
+{"char_1":"7"}
+{"string_1":"1"}
+{"string_1":"2"}
+{"string_1":"3"}
+{"string_1":"4"}
+{"string_1":"5"}
+{"string_1":"6"}
+{"string_1":"7"}
+{"string_1":"8"}
+{"float_1":1.12}
+{"float_1":2.12}
+{"float_1":3.12}
+{"float_1":4.12}
+{"float_1":5.12}
+{"float_1":6.12}
+{"float_1":7.12}
+{"float_1":8.12}
+{"double_1":1.12}
+{"double_1":2.12}
+{"double_1":3.12}
+{"double_1":4.12}
+{"double_1":5.12}
+{"double_1":6.12}
+{"double_1":7.12}
+{"double_1":8.12}
+{"double_1":9.12}
+{"decimal32_1":1.12}
+{"decimal32_1":2.12}
+{"decimal32_1":3.12}
+{"decimal32_1":4.12}
+{"decimal32_1":5.12}
+{"decimal32_1":6.12}
+{"decimal32_1":7.12}
+{"decimal32_1":8.12}
+{"decimal32_1":9.12}
+{"decimal32_1":10.12}
+{"decimal64_1":1.120000000}
+{"decimal64_1":2.120000000}
+{"decimal64_1":3.120000000}
+{"decimal64_1":4.120000000}
+{"decimal64_1":5.120000000}
+{"decimal64_1":6.120000000}
+{"decimal64_1":7.120000000}
+{"decimal64_1":8.120000000}
+{"decimal64_1":9.120000000}
+{"decimal64_1":10.120000000}
+{"decimal64_1":11.120000000}
+{"decimal128_1":1.120000000}
+{"decimal128_1":2.120000000}
+{"decimal128_1":3.120000000}
+{"decimal128_1":4.120000000}
+{"decimal128_1":5.120000000}
+{"decimal128_1":6.120000000}
+{"decimal128_1":7.120000000}
+{"decimal128_1":8.120000000}
+{"decimal128_1":9.120000000}
+{"decimal128_1":10.120000000}
+{"decimal128_1":11.120000000}
+{"decimal128_1":12.120000000}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{"datetime_1":"2021-01-01 00:00:00"}
+{"datetime_1":"2021-01-01 00:00:01"}
+{"datetime_1":"2021-01-01 00:00:02"}
+{"datetime_1":"2021-01-01 00:00:03"}
+{"datetime_1":"2021-01-01 00:00:04"}
+{"datetime_1":"2021-01-01 00:00:05"}
+{"datetime_1":"2021-01-01 00:00:06"}
+{"datetime_1":"2021-01-01 00:00:07"}
+{"datetime_1":"2021-01-01 00:00:08"}
+{"datetime_1":"2021-01-01 00:00:09"}
+{"datetime_1":"2021-01-01 00:00:10"}
+{"datetime_1":"2021-01-01 00:00:07"}
+{"datetime_1":"2021-01-01 00:00:08"}
+{"date_1":"2021-01-01"}
+{"date_1":"2021-01-02"}
+{"date_1":"2021-01-03"}
+{"date_1":"2021-01-04"}
+{"date_1":"2021-01-05"}
+{"date_1":"2021-01-06"}
+{"date_1":"2021-01-07"}
+{"date_1":"2021-01-08"}
+{"date_1":"2021-01-09"}
+{"date_1":"2021-01-10"}
+{"date_1":"2021-01-07"}
+{"date_1":"2021-01-08"}
+{"date_1":"2021-01-09"}
+{"date_1":"2021-01-10"}
+{"ipv4_1":"192.168.1.1"}
+{"ipv4_1":"192.168.1.2"}
+{"ipv4_1":"192.168.1.3"}
+{"ipv4_1":"192.168.1.4"}
+{"ipv4_1":"192.168.1.5"}
+{"ipv4_1":"192.168.1.6"}
+{"ipv4_1":"192.168.1.7"}
+{"ipv4_1":"192.168.1.8"}
+{"ipv4_1":"192.168.1.9"}
+{"ipv4_1":"192.168.1.10"}
+{"ipv4_1":"192.168.1.7"}
+{"ipv4_1":"192.168.1.8"}
+{"ipv4_1":"192.168.1.9"}
+{"ipv4_1":"192.168.1.10"}
+{"ipv4_1":"192.168.1.11"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7334"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7335"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7336"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7337"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7338"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7339"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733a"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733b"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733c"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733d"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733e"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733f"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7340"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7341"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733f"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7340"}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_tinyint_1":[1]}
+{"array_tinyint_1":[2]}
+{"array_tinyint_1":[3]}
+{"array_tinyint_1":[4]}
+{"array_tinyint_1":[5]}
+{"array_tinyint_1":[6]}
+{"array_tinyint_1":[7]}
+{"array_tinyint_1":[8]}
+{"array_tinyint_1":[9]}
+{"array_tinyint_1":[10]}
+{"array_tinyint_1":[11]}
+{"array_tinyint_1":[12]}
+{"array_tinyint_1":[13]}
+{"array_tinyint_1":[14]}
+{"array_tinyint_1":[15]}
+{"array_tinyint_1":[16]}
+{"array_tinyint_1":[17]}
+{"array_tinyint_1":[18]}
+{"array_smallint_1":[1]}
+{"array_smallint_1":[2, null]}
+{"array_smallint_1":[3]}
+{"array_smallint_1":[4]}
+{"array_smallint_1":[5]}
+{"array_smallint_1":[6]}
+{"array_smallint_1":[7]}
+{"array_smallint_1":[8]}
+{"array_smallint_1":[9]}
+{"array_smallint_1":[10]}
+{"array_smallint_1":[11]}
+{"array_smallint_1":[12]}
+{"array_smallint_1":[13]}
+{"array_smallint_1":[14]}
+{"array_smallint_1":[15]}
+{"array_smallint_1":[16]}
+{"array_smallint_1":[17]}
+{"array_smallint_1":[18]}
+{"array_smallint_1":[19]}
+{"array_int_1":[1]}
+{"array_int_1":[2]}
+{"array_int_1":[3]}
+{"array_int_1":[4]}
+{"array_int_1":[5]}
+{"array_int_1":[6]}
+{"array_int_1":[7]}
+{"array_int_1":[8]}
+{"array_int_1":[9]}
+{"array_int_1":[10]}
+{"array_int_1":[11]}
+{"array_int_1":[12]}
+{"array_int_1":[13]}
+{"array_int_1":[14]}
+{"array_int_1":[15]}
+{"array_int_1":[16]}
+{"array_int_1":[17]}
+{"array_int_1":[18]}
+{"array_int_1":[19]}
+{"array_int_1":[20]}
+{"array_bigint_1":[1]}
+{"array_bigint_1":[2]}
+{"array_bigint_1":[3]}
+{"array_bigint_1":[4]}
+{"array_bigint_1":[5]}
+{"array_bigint_1":[6]}
+{"array_bigint_1":[7]}
+{"array_bigint_1":[8]}
+{"array_bigint_1":[9]}
+{"array_bigint_1":[10]}
+{"array_bigint_1":[11]}
+{"array_bigint_1":[12]}
+{"array_bigint_1":[13]}
+{"array_bigint_1":[14]}
+{"array_bigint_1":[15]}
+{"array_bigint_1":[16]}
+{"array_bigint_1":[17]}
+{"array_bigint_1":[18]}
+{"array_bigint_1":[19]}
+{"array_bigint_1":[20]}
+{"array_bigint_1":[21]}
+{"array_largeint_1":[1, null]}
+{"array_largeint_1":[2]}
+{"array_largeint_1":[3]}
+{"array_largeint_1":[4]}
+{"array_largeint_1":[5]}
+{"array_largeint_1":[6]}
+{"array_largeint_1":[7]}
+{"array_largeint_1":[8]}
+{"array_largeint_1":[9]}
+{"array_largeint_1":[10]}
+{"array_largeint_1":[11]}
+{"array_largeint_1":[12]}
+{"array_largeint_1":[13]}
+{"array_largeint_1":[14]}
+{"array_largeint_1":[15]}
+{"array_largeint_1":[16]}
+{"array_largeint_1":[17]}
+{"array_largeint_1":[18]}
+{"array_largeint_1":[19]}
+{"array_largeint_1":[20]}
+{"array_largeint_1":[21]}
+{"array_largeint_1":[22]}
+{"array_char_1":["1"]}
+{"array_char_1":["2"]}
+{"array_char_1":["3"]}
+{"array_char_1":["4"]}
+{"array_char_1":["5"]}
+{"array_char_1":["6"]}
+{"array_char_1":["7"]}
+{"array_char_1":["8"]}
+{"array_char_1":["9"]}
+{"array_char_1":["10"]}
+{"array_char_1":["11"]}
+{"array_char_1":["12"]}
+{"array_char_1":["13"]}
+{"array_char_1":["14"]}
+{"array_char_1":["15"]}
+{"array_char_1":["16"]}
+{"array_char_1":["17"]}
+{"array_char_1":["18"]}
+{"array_char_1":["19"]}
+{"array_char_1":["20"]}
+{"array_char_1":["21"]}
+{"array_char_1":["22"]}
+{"array_char_1":["23"]}
+{"array_string_1":["1"]}
+{"array_string_1":["2"]}
+{"array_string_1":["3"]}
+{"array_string_1":["4"]}
+{"array_string_1":["5"]}
+{"array_string_1":["6"]}
+{"array_string_1":["7"]}
+{"array_string_1":["8"]}
+{"array_string_1":["9"]}
+{"array_string_1":["10"]}
+{"array_string_1":["11"]}
+{"array_string_1":["12"]}
+{"array_string_1":["13"]}
+{"array_string_1":["14"]}
+{"array_string_1":["15"]}
+{"array_string_1":["16"]}
+{"array_string_1":["17"]}
+{"array_string_1":["18"]}
+{"array_string_1":["19"]}
+{"array_string_1":["20"]}
+{"array_string_1":["21"]}
+{"array_string_1":["22"]}
+{"array_string_1":["23"]}
+{"array_string_1":["24"]}
+{"array_float_1":[1.12]}
+{"array_float_1":[2.12]}
+{"array_float_1":[3.12]}
+{"array_float_1":[4.12]}
+{"array_float_1":[5.12]}
+{"array_float_1":[6.12]}
+{"array_float_1":[7.12]}
+{"array_float_1":[8.12]}
+{"array_float_1":[9.12]}
+{"array_float_1":[10.12]}
+{"array_float_1":[11.12]}
+{"array_float_1":[12.12]}
+{"array_float_1":[13.12]}
+{"array_float_1":[14.12]}
+{"array_float_1":[15.12]}
+{"array_float_1":[16.12]}
+{"array_float_1":[17.12]}
+{"array_float_1":[18.12]}
+{"array_float_1":[19.12]}
+{"array_float_1":[20.12]}
+{"array_float_1":[21.12]}
+{"array_float_1":[22.12]}
+{"array_float_1":[23.12]}
+{"array_float_1":[24.12]}
+{"array_float_1":[25.12]}
+{"array_double_1":[1.12]}
+{"array_double_1":[2.12]}
+{"array_double_1":[3.12]}
+{"array_double_1":[4.12]}
+{"array_double_1":[5.12]}
+{"array_double_1":[6.12]}
+{"array_double_1":[7.12]}
+{"array_double_1":[8.12]}
+{"array_double_1":[9.12]}
+{"array_double_1":[10.12]}
+{"array_double_1":[11.12]}
+{"array_double_1":[12.12]}
+{"array_double_1":[13.12]}
+{"array_double_1":[14.12]}
+{"array_double_1":[15.12]}
+{"array_double_1":[16.12]}
+{"array_double_1":[17.12]}
+{"array_double_1":[18.12]}
+{"array_double_1":[19.12]}
+{"array_double_1":[20.12]}
+{"array_double_1":[21.12]}
+{"array_double_1":[22.12]}
+{"array_double_1":[23.12]}
+{"array_double_1":[24.12]}
+{"array_double_1":[25.12]}
+{"array_double_1":[26.12]}
+{"array_decimal32_1":[1.12]}
+{"array_decimal32_1":[2.12]}
+{"array_decimal32_1":[3.12]}
+{"array_decimal32_1":[4.12]}
+{"array_decimal32_1":[5.12]}
+{"array_decimal32_1":[6.12]}
+{"array_decimal32_1":[7.12]}
+{"array_decimal32_1":[8.12]}
+{"array_decimal32_1":[9.12]}
+{"array_decimal32_1":[10.12]}
+{"array_decimal32_1":[11.12]}
+{"array_decimal32_1":[12.12]}
+{"array_decimal32_1":[13.12]}
+{"array_decimal32_1":[14.12]}
+{"array_decimal32_1":[15.12]}
+{"array_decimal32_1":[16.12]}
+{"array_decimal32_1":[17.12]}
+{"array_decimal32_1":[18.12]}
+{"array_decimal32_1":[19.12]}
+{"array_decimal32_1":[20.12]}
+{"array_decimal32_1":[21.12]}
+{"array_decimal32_1":[22.12]}
+{"array_decimal32_1":[23.12]}
+{"array_decimal32_1":[24.12]}
+{"array_decimal32_1":[25.12]}
+{"array_decimal32_1":[26.12]}
+{"array_decimal32_1":[27.12]}
+{"array_decimal64_1":[1.120000000]}
+{"array_decimal64_1":[2.120000000]}
+{"array_decimal64_1":[3.120000000]}
+{"array_decimal64_1":[4.120000000]}
+{"array_decimal64_1":[5.120000000]}
+{"array_decimal64_1":[6.120000000]}
+{"array_decimal64_1":[7.120000000]}
+{"array_decimal64_1":[8.120000000]}
+{"array_decimal64_1":[9.120000000]}
+{"array_decimal64_1":[10.120000000]}
+{"array_decimal64_1":[11.120000000]}
+{"array_decimal64_1":[12.120000000]}
+{"array_decimal64_1":[13.120000000]}
+{"array_decimal64_1":[14.120000000]}
+{"array_decimal64_1":[15.120000000]}
+{"array_decimal64_1":[16.120000000]}
+{"array_decimal64_1":[17.120000000]}
+{"array_decimal64_1":[18.120000000]}
+{"array_decimal64_1":[19.120000000]}
+{"array_decimal64_1":[20.120000000]}
+{"array_decimal64_1":[21.120000000]}
+{"array_decimal64_1":[22.120000000]}
+{"array_decimal64_1":[23.120000000]}
+{"array_decimal64_1":[24.120000000]}
+{"array_decimal64_1":[25.120000000]}
+{"array_decimal64_1":[26.120000000]}
+{"array_decimal64_1":[27.120000000]}
+{"array_decimal64_1":[28.120000000]}
+{"array_decimal128_1":[1.120000000]}
+{"array_decimal128_1":[2.120000000]}
+{"array_decimal128_1":[3.120000000]}
+{"array_decimal128_1":[4.120000000]}
+{"array_decimal128_1":[5.120000000]}
+{"array_decimal128_1":[6.120000000]}
+{"array_decimal128_1":[7.120000000]}
+{"array_decimal128_1":[8.120000000]}
+{"array_decimal128_1":[9.120000000]}
+{"array_decimal128_1":[10.120000000]}
+{"array_decimal128_1":[11.120000000]}
+{"array_decimal128_1":[12.120000000]}
+{"array_decimal128_1":[13.120000000]}
+{"array_decimal128_1":[14.120000000]}
+{"array_decimal128_1":[15.120000000]}
+{"array_decimal128_1":[16.120000000]}
+{"array_decimal128_1":[17.120000000]}
+{"array_decimal128_1":[18.120000000]}
+{"array_decimal128_1":[19.120000000]}
+{"array_decimal128_1":[20.120000000]}
+{"array_decimal128_1":[21.120000000]}
+{"array_decimal128_1":[22.120000000]}
+{"array_decimal128_1":[23.120000000]}
+{"array_decimal128_1":[24.120000000]}
+{"array_decimal128_1":[25.120000000]}
+{"array_decimal128_1":[26.120000000]}
+{"array_decimal128_1":[27.120000000]}
+{"array_decimal128_1":[28.120000000]}
+{"array_decimal128_1":[29.120000000]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+
+-- !sql_compaction_before --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.array_datetime_1	array<datetime>	Yes	false	\N	NONE
+var.array_decimal256_1	array<unknown type: UNSUPPORTED_TYPE>	Yes	false	\N	NONE
+
+-- !sql_compaction_after --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.array_datetime_1	array<datetime>	Yes	false	\N	NONE
+
+-- !sql --
+{"array_bigint_1":[1, null],"array_boolean_1":[1],"array_char_1":["1"],"array_date_1":["2021-01-01"],"array_datetime_1":["2021-01-01 00:00:00"],"array_decimal128_1":[1.120000000],"array_decimal256_1":[null],"array_decimal32_1":[1.12],"array_decimal64_1":[1.120000000],"array_double_1":[1.12],"array_float_1":[1.12],"array_int_1":[1, null],"array_ipv4_1":["192.168.1.1"],"array_ipv6_1":["2001:db8:85a3::8a2e:370:7334"],"array_largeint_1":[1, null],"array_smallint_1":[1, null],"array_string_1":["1"],"array_tinyint_1":[1, null],"bigint_1":1,"boolean_1":1,"char_1":"1","date_1":"2021-01-01","datetime_1":"2021-01-01 00:00:00","decimal128_1":1.120000000,"decimal32_1":1.12,"decimal64_1":1.120000000,"double_1":1.12,"float_1":1.12,"int_1":1,"ipv4_1":"192.168.1.1","ipv6_1":"2001:db8:85a3::8a2e:370:7334","largeint_1":1,"other_1":"1","smallint_1":1,"string_1":"1","tinyint_1":1}
+{"other_1":"1"}
+{"tinyint_1":1}
+{"tinyint_1":2}
+{"smallint_1":1}
+{"smallint_1":2}
+{"smallint_1":3}
+{"int_1":1}
+{"int_1":2}
+{"int_1":3}
+{"int_1":4}
+{"bigint_1":1}
+{"bigint_1":2}
+{"bigint_1":3}
+{"bigint_1":4}
+{"bigint_1":5}
+{"largeint_1":1}
+{"largeint_1":2}
+{"largeint_1":3}
+{"largeint_1":4}
+{"largeint_1":5}
+{"largeint_1":6}
+{"char_1":"1"}
+{"char_1":"2"}
+{"char_1":"3"}
+{"char_1":"4"}
+{"char_1":"5"}
+{"char_1":"6"}
+{"char_1":"7"}
+{"string_1":"1"}
+{"string_1":"2"}
+{"string_1":"3"}
+{"string_1":"4"}
+{"string_1":"5"}
+{"string_1":"6"}
+{"string_1":"7"}
+{"string_1":"8"}
+{"float_1":1.12}
+{"float_1":2.12}
+{"float_1":3.12}
+{"float_1":4.12}
+{"float_1":5.12}
+{"float_1":6.12}
+{"float_1":7.12}
+{"float_1":8.12}
+{"double_1":1.12}
+{"double_1":2.12}
+{"double_1":3.12}
+{"double_1":4.12}
+{"double_1":5.12}
+{"double_1":6.12}
+{"double_1":7.12}
+{"double_1":8.12}
+{"double_1":9.12}
+{"decimal32_1":1.12}
+{"decimal32_1":2.12}
+{"decimal32_1":3.12}
+{"decimal32_1":4.12}
+{"decimal32_1":5.12}
+{"decimal32_1":6.12}
+{"decimal32_1":7.12}
+{"decimal32_1":8.12}
+{"decimal32_1":9.12}
+{"decimal32_1":10.12}
+{"decimal64_1":1.120000000}
+{"decimal64_1":2.120000000}
+{"decimal64_1":3.120000000}
+{"decimal64_1":4.120000000}
+{"decimal64_1":5.120000000}
+{"decimal64_1":6.120000000}
+{"decimal64_1":7.120000000}
+{"decimal64_1":8.120000000}
+{"decimal64_1":9.120000000}
+{"decimal64_1":10.120000000}
+{"decimal64_1":11.120000000}
+{"decimal128_1":1.120000000}
+{"decimal128_1":2.120000000}
+{"decimal128_1":3.120000000}
+{"decimal128_1":4.120000000}
+{"decimal128_1":5.120000000}
+{"decimal128_1":6.120000000}
+{"decimal128_1":7.120000000}
+{"decimal128_1":8.120000000}
+{"decimal128_1":9.120000000}
+{"decimal128_1":10.120000000}
+{"decimal128_1":11.120000000}
+{"decimal128_1":12.120000000}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{"datetime_1":"2021-01-01 00:00:00"}
+{"datetime_1":"2021-01-01 00:00:01"}
+{"datetime_1":"2021-01-01 00:00:02"}
+{"datetime_1":"2021-01-01 00:00:03"}
+{"datetime_1":"2021-01-01 00:00:04"}
+{"datetime_1":"2021-01-01 00:00:05"}
+{"datetime_1":"2021-01-01 00:00:06"}
+{"datetime_1":"2021-01-01 00:00:07"}
+{"datetime_1":"2021-01-01 00:00:08"}
+{"datetime_1":"2021-01-01 00:00:09"}
+{"datetime_1":"2021-01-01 00:00:10"}
+{"datetime_1":"2021-01-01 00:00:07"}
+{"datetime_1":"2021-01-01 00:00:08"}
+{"date_1":"2021-01-01"}
+{"date_1":"2021-01-02"}
+{"date_1":"2021-01-03"}
+{"date_1":"2021-01-04"}
+{"date_1":"2021-01-05"}
+{"date_1":"2021-01-06"}
+{"date_1":"2021-01-07"}
+{"date_1":"2021-01-08"}
+{"date_1":"2021-01-09"}
+{"date_1":"2021-01-10"}
+{"date_1":"2021-01-07"}
+{"date_1":"2021-01-08"}
+{"date_1":"2021-01-09"}
+{"date_1":"2021-01-10"}
+{"ipv4_1":"192.168.1.1"}
+{"ipv4_1":"192.168.1.2"}
+{"ipv4_1":"192.168.1.3"}
+{"ipv4_1":"192.168.1.4"}
+{"ipv4_1":"192.168.1.5"}
+{"ipv4_1":"192.168.1.6"}
+{"ipv4_1":"192.168.1.7"}
+{"ipv4_1":"192.168.1.8"}
+{"ipv4_1":"192.168.1.9"}
+{"ipv4_1":"192.168.1.10"}
+{"ipv4_1":"192.168.1.7"}
+{"ipv4_1":"192.168.1.8"}
+{"ipv4_1":"192.168.1.9"}
+{"ipv4_1":"192.168.1.10"}
+{"ipv4_1":"192.168.1.11"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7334"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7335"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7336"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7337"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7338"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7339"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733a"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733b"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733c"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733d"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733e"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733f"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7340"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7341"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733f"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7340"}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_tinyint_1":[1]}
+{"array_tinyint_1":[2]}
+{"array_tinyint_1":[3]}
+{"array_tinyint_1":[4]}
+{"array_tinyint_1":[5]}
+{"array_tinyint_1":[6]}
+{"array_tinyint_1":[7]}
+{"array_tinyint_1":[8]}
+{"array_tinyint_1":[9]}
+{"array_tinyint_1":[10]}
+{"array_tinyint_1":[11]}
+{"array_tinyint_1":[12]}
+{"array_tinyint_1":[13]}
+{"array_tinyint_1":[14]}
+{"array_tinyint_1":[15]}
+{"array_tinyint_1":[16]}
+{"array_tinyint_1":[17]}
+{"array_tinyint_1":[18]}
+{"array_smallint_1":[1]}
+{"array_smallint_1":[2, null]}
+{"array_smallint_1":[3]}
+{"array_smallint_1":[4]}
+{"array_smallint_1":[5]}
+{"array_smallint_1":[6]}
+{"array_smallint_1":[7]}
+{"array_smallint_1":[8]}
+{"array_smallint_1":[9]}
+{"array_smallint_1":[10]}
+{"array_smallint_1":[11]}
+{"array_smallint_1":[12]}
+{"array_smallint_1":[13]}
+{"array_smallint_1":[14]}
+{"array_smallint_1":[15]}
+{"array_smallint_1":[16]}
+{"array_smallint_1":[17]}
+{"array_smallint_1":[18]}
+{"array_smallint_1":[19]}
+{"array_int_1":[1]}
+{"array_int_1":[2]}
+{"array_int_1":[3]}
+{"array_int_1":[4]}
+{"array_int_1":[5]}
+{"array_int_1":[6]}
+{"array_int_1":[7]}
+{"array_int_1":[8]}
+{"array_int_1":[9]}
+{"array_int_1":[10]}
+{"array_int_1":[11]}
+{"array_int_1":[12]}
+{"array_int_1":[13]}
+{"array_int_1":[14]}
+{"array_int_1":[15]}
+{"array_int_1":[16]}
+{"array_int_1":[17]}
+{"array_int_1":[18]}
+{"array_int_1":[19]}
+{"array_int_1":[20]}
+{"array_bigint_1":[1]}
+{"array_bigint_1":[2]}
+{"array_bigint_1":[3]}
+{"array_bigint_1":[4]}
+{"array_bigint_1":[5]}
+{"array_bigint_1":[6]}
+{"array_bigint_1":[7]}
+{"array_bigint_1":[8]}
+{"array_bigint_1":[9]}
+{"array_bigint_1":[10]}
+{"array_bigint_1":[11]}
+{"array_bigint_1":[12]}
+{"array_bigint_1":[13]}
+{"array_bigint_1":[14]}
+{"array_bigint_1":[15]}
+{"array_bigint_1":[16]}
+{"array_bigint_1":[17]}
+{"array_bigint_1":[18]}
+{"array_bigint_1":[19]}
+{"array_bigint_1":[20]}
+{"array_bigint_1":[21]}
+{"array_largeint_1":[1, null]}
+{"array_largeint_1":[2]}
+{"array_largeint_1":[3]}
+{"array_largeint_1":[4]}
+{"array_largeint_1":[5]}
+{"array_largeint_1":[6]}
+{"array_largeint_1":[7]}
+{"array_largeint_1":[8]}
+{"array_largeint_1":[9]}
+{"array_largeint_1":[10]}
+{"array_largeint_1":[11]}
+{"array_largeint_1":[12]}
+{"array_largeint_1":[13]}
+{"array_largeint_1":[14]}
+{"array_largeint_1":[15]}
+{"array_largeint_1":[16]}
+{"array_largeint_1":[17]}
+{"array_largeint_1":[18]}
+{"array_largeint_1":[19]}
+{"array_largeint_1":[20]}
+{"array_largeint_1":[21]}
+{"array_largeint_1":[22]}
+{"array_char_1":["1"]}
+{"array_char_1":["2"]}
+{"array_char_1":["3"]}
+{"array_char_1":["4"]}
+{"array_char_1":["5"]}
+{"array_char_1":["6"]}
+{"array_char_1":["7"]}
+{"array_char_1":["8"]}
+{"array_char_1":["9"]}
+{"array_char_1":["10"]}
+{"array_char_1":["11"]}
+{"array_char_1":["12"]}
+{"array_char_1":["13"]}
+{"array_char_1":["14"]}
+{"array_char_1":["15"]}
+{"array_char_1":["16"]}
+{"array_char_1":["17"]}
+{"array_char_1":["18"]}
+{"array_char_1":["19"]}
+{"array_char_1":["20"]}
+{"array_char_1":["21"]}
+{"array_char_1":["22"]}
+{"array_char_1":["23"]}
+{"array_string_1":["1"]}
+{"array_string_1":["2"]}
+{"array_string_1":["3"]}
+{"array_string_1":["4"]}
+{"array_string_1":["5"]}
+{"array_string_1":["6"]}
+{"array_string_1":["7"]}
+{"array_string_1":["8"]}
+{"array_string_1":["9"]}
+{"array_string_1":["10"]}
+{"array_string_1":["11"]}
+{"array_string_1":["12"]}
+{"array_string_1":["13"]}
+{"array_string_1":["14"]}
+{"array_string_1":["15"]}
+{"array_string_1":["16"]}
+{"array_string_1":["17"]}
+{"array_string_1":["18"]}
+{"array_string_1":["19"]}
+{"array_string_1":["20"]}
+{"array_string_1":["21"]}
+{"array_string_1":["22"]}
+{"array_string_1":["23"]}
+{"array_string_1":["24"]}
+{"array_float_1":[1.12]}
+{"array_float_1":[2.12]}
+{"array_float_1":[3.12]}
+{"array_float_1":[4.12]}
+{"array_float_1":[5.12]}
+{"array_float_1":[6.12]}
+{"array_float_1":[7.12]}
+{"array_float_1":[8.12]}
+{"array_float_1":[9.12]}
+{"array_float_1":[10.12]}
+{"array_float_1":[11.12]}
+{"array_float_1":[12.12]}
+{"array_float_1":[13.12]}
+{"array_float_1":[14.12]}
+{"array_float_1":[15.12]}
+{"array_float_1":[16.12]}
+{"array_float_1":[17.12]}
+{"array_float_1":[18.12]}
+{"array_float_1":[19.12]}
+{"array_float_1":[20.12]}
+{"array_float_1":[21.12]}
+{"array_float_1":[22.12]}
+{"array_float_1":[23.12]}
+{"array_float_1":[24.12]}
+{"array_float_1":[25.12]}
+{"array_double_1":[1.12]}
+{"array_double_1":[2.12]}
+{"array_double_1":[3.12]}
+{"array_double_1":[4.12]}
+{"array_double_1":[5.12]}
+{"array_double_1":[6.12]}
+{"array_double_1":[7.12]}
+{"array_double_1":[8.12]}
+{"array_double_1":[9.12]}
+{"array_double_1":[10.12]}
+{"array_double_1":[11.12]}
+{"array_double_1":[12.12]}
+{"array_double_1":[13.12]}
+{"array_double_1":[14.12]}
+{"array_double_1":[15.12]}
+{"array_double_1":[16.12]}
+{"array_double_1":[17.12]}
+{"array_double_1":[18.12]}
+{"array_double_1":[19.12]}
+{"array_double_1":[20.12]}
+{"array_double_1":[21.12]}
+{"array_double_1":[22.12]}
+{"array_double_1":[23.12]}
+{"array_double_1":[24.12]}
+{"array_double_1":[25.12]}
+{"array_double_1":[26.12]}
+{"array_decimal32_1":[1.12]}
+{"array_decimal32_1":[2.12]}
+{"array_decimal32_1":[3.12]}
+{"array_decimal32_1":[4.12]}
+{"array_decimal32_1":[5.12]}
+{"array_decimal32_1":[6.12]}
+{"array_decimal32_1":[7.12]}
+{"array_decimal32_1":[8.12]}
+{"array_decimal32_1":[9.12]}
+{"array_decimal32_1":[10.12]}
+{"array_decimal32_1":[11.12]}
+{"array_decimal32_1":[12.12]}
+{"array_decimal32_1":[13.12]}
+{"array_decimal32_1":[14.12]}
+{"array_decimal32_1":[15.12]}
+{"array_decimal32_1":[16.12]}
+{"array_decimal32_1":[17.12]}
+{"array_decimal32_1":[18.12]}
+{"array_decimal32_1":[19.12]}
+{"array_decimal32_1":[20.12]}
+{"array_decimal32_1":[21.12]}
+{"array_decimal32_1":[22.12]}
+{"array_decimal32_1":[23.12]}
+{"array_decimal32_1":[24.12]}
+{"array_decimal32_1":[25.12]}
+{"array_decimal32_1":[26.12]}
+{"array_decimal32_1":[27.12]}
+{"array_decimal64_1":[1.120000000]}
+{"array_decimal64_1":[2.120000000]}
+{"array_decimal64_1":[3.120000000]}
+{"array_decimal64_1":[4.120000000]}
+{"array_decimal64_1":[5.120000000]}
+{"array_decimal64_1":[6.120000000]}
+{"array_decimal64_1":[7.120000000]}
+{"array_decimal64_1":[8.120000000]}
+{"array_decimal64_1":[9.120000000]}
+{"array_decimal64_1":[10.120000000]}
+{"array_decimal64_1":[11.120000000]}
+{"array_decimal64_1":[12.120000000]}
+{"array_decimal64_1":[13.120000000]}
+{"array_decimal64_1":[14.120000000]}
+{"array_decimal64_1":[15.120000000]}
+{"array_decimal64_1":[16.120000000]}
+{"array_decimal64_1":[17.120000000]}
+{"array_decimal64_1":[18.120000000]}
+{"array_decimal64_1":[19.120000000]}
+{"array_decimal64_1":[20.120000000]}
+{"array_decimal64_1":[21.120000000]}
+{"array_decimal64_1":[22.120000000]}
+{"array_decimal64_1":[23.120000000]}
+{"array_decimal64_1":[24.120000000]}
+{"array_decimal64_1":[25.120000000]}
+{"array_decimal64_1":[26.120000000]}
+{"array_decimal64_1":[27.120000000]}
+{"array_decimal64_1":[28.120000000]}
+{"array_decimal128_1":[1.120000000]}
+{"array_decimal128_1":[2.120000000]}
+{"array_decimal128_1":[3.120000000]}
+{"array_decimal128_1":[4.120000000]}
+{"array_decimal128_1":[5.120000000]}
+{"array_decimal128_1":[6.120000000]}
+{"array_decimal128_1":[7.120000000]}
+{"array_decimal128_1":[8.120000000]}
+{"array_decimal128_1":[9.120000000]}
+{"array_decimal128_1":[10.120000000]}
+{"array_decimal128_1":[11.120000000]}
+{"array_decimal128_1":[12.120000000]}
+{"array_decimal128_1":[13.120000000]}
+{"array_decimal128_1":[14.120000000]}
+{"array_decimal128_1":[15.120000000]}
+{"array_decimal128_1":[16.120000000]}
+{"array_decimal128_1":[17.120000000]}
+{"array_decimal128_1":[18.120000000]}
+{"array_decimal128_1":[19.120000000]}
+{"array_decimal128_1":[20.120000000]}
+{"array_decimal128_1":[21.120000000]}
+{"array_decimal128_1":[22.120000000]}
+{"array_decimal128_1":[23.120000000]}
+{"array_decimal128_1":[24.120000000]}
+{"array_decimal128_1":[25.120000000]}
+{"array_decimal128_1":[26.120000000]}
+{"array_decimal128_1":[27.120000000]}
+{"array_decimal128_1":[28.120000000]}
+{"array_decimal128_1":[29.120000000]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_datetime_1":["2021-01-01 00:00:00"]}
+{"array_datetime_1":["2021-01-01 00:00:01"]}
+{"array_datetime_1":["2021-01-01 00:00:02"]}
+{"array_datetime_1":["2021-01-01 00:00:03"]}
+{"array_datetime_1":["2021-01-01 00:00:04"]}
+{"array_datetime_1":["2021-01-01 00:00:05"]}
+{"array_datetime_1":["2021-01-01 00:00:06"]}
+{"array_datetime_1":["2021-01-01 00:00:07"]}
+{"array_datetime_1":["2021-01-01 00:00:08"]}
+{"array_datetime_1":["2021-01-01 00:00:09"]}
+{"array_datetime_1":["2021-01-01 00:00:10"]}
+{"array_datetime_1":["2021-01-01 00:00:07"]}
+{"array_datetime_1":["2021-01-01 00:00:08"]}
+{"array_datetime_1":["2021-01-01 00:00:09"]}
+{"array_datetime_1":["2021-01-01 00:00:10"]}
+{"array_datetime_1":["2021-01-01 00:00:07"]}
+{"array_datetime_1":["2021-01-01 00:00:08"]}
+{"array_datetime_1":["2021-01-01 00:00:09"]}
+{"array_datetime_1":["2021-01-01 00:00:10"]}
+{"array_datetime_1":["2021-01-01 00:00:07"]}
+{"array_datetime_1":["2021-01-01 00:00:08"]}
+{"array_datetime_1":["2021-01-01 00:00:09"]}
+{"array_datetime_1":["2021-01-01 00:00:10"]}
+{"array_datetime_1":["2021-01-01 00:00:07"]}
+{"array_datetime_1":["2021-01-01 00:00:08"]}
+{"array_datetime_1":["2021-01-01 00:00:09"]}
+{"array_datetime_1":["2021-01-01 00:00:10"]}
+{"array_datetime_1":["2021-01-01 00:00:07"]}
+{"array_datetime_1":["2021-01-01 00:00:08"]}
+{"array_datetime_1":["2021-01-01 00:00:09"]}
+{"array_datetime_1":["2021-01-01 00:00:10"]}
+
+-- !sql_compaction_before --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.array_date_1	array<date>	Yes	false	\N	NONE
+var.array_datetime_1	array<datetime>	Yes	false	\N	NONE
+
+-- !sql_compaction_after --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.array_date_1	array<date>	Yes	false	\N	NONE
+
+-- !sql --
+{"array_bigint_1":[1, null],"array_boolean_1":[1],"array_char_1":["1"],"array_date_1":["2021-01-01"],"array_datetime_1":["2021-01-01 00:00:00"],"array_decimal128_1":[1.120000000],"array_decimal256_1":[null],"array_decimal32_1":[1.12],"array_decimal64_1":[1.120000000],"array_double_1":[1.12],"array_float_1":[1.12],"array_int_1":[1, null],"array_ipv4_1":["192.168.1.1"],"array_ipv6_1":["2001:db8:85a3::8a2e:370:7334"],"array_largeint_1":[1, null],"array_smallint_1":[1, null],"array_string_1":["1"],"array_tinyint_1":[1, null],"bigint_1":1,"boolean_1":1,"char_1":"1","date_1":"2021-01-01","datetime_1":"2021-01-01 00:00:00","decimal128_1":1.120000000,"decimal32_1":1.12,"decimal64_1":1.120000000,"double_1":1.12,"float_1":1.12,"int_1":1,"ipv4_1":"192.168.1.1","ipv6_1":"2001:db8:85a3::8a2e:370:7334","largeint_1":1,"other_1":"1","smallint_1":1,"string_1":"1","tinyint_1":1}
+{"other_1":"1"}
+{"tinyint_1":1}
+{"tinyint_1":2}
+{"smallint_1":1}
+{"smallint_1":2}
+{"smallint_1":3}
+{"int_1":1}
+{"int_1":2}
+{"int_1":3}
+{"int_1":4}
+{"bigint_1":1}
+{"bigint_1":2}
+{"bigint_1":3}
+{"bigint_1":4}
+{"bigint_1":5}
+{"largeint_1":1}
+{"largeint_1":2}
+{"largeint_1":3}
+{"largeint_1":4}
+{"largeint_1":5}
+{"largeint_1":6}
+{"char_1":"1"}
+{"char_1":"2"}
+{"char_1":"3"}
+{"char_1":"4"}
+{"char_1":"5"}
+{"char_1":"6"}
+{"char_1":"7"}
+{"string_1":"1"}
+{"string_1":"2"}
+{"string_1":"3"}
+{"string_1":"4"}
+{"string_1":"5"}
+{"string_1":"6"}
+{"string_1":"7"}
+{"string_1":"8"}
+{"float_1":1.12}
+{"float_1":2.12}
+{"float_1":3.12}
+{"float_1":4.12}
+{"float_1":5.12}
+{"float_1":6.12}
+{"float_1":7.12}
+{"float_1":8.12}
+{"double_1":1.12}
+{"double_1":2.12}
+{"double_1":3.12}
+{"double_1":4.12}
+{"double_1":5.12}
+{"double_1":6.12}
+{"double_1":7.12}
+{"double_1":8.12}
+{"double_1":9.12}
+{"decimal32_1":1.12}
+{"decimal32_1":2.12}
+{"decimal32_1":3.12}
+{"decimal32_1":4.12}
+{"decimal32_1":5.12}
+{"decimal32_1":6.12}
+{"decimal32_1":7.12}
+{"decimal32_1":8.12}
+{"decimal32_1":9.12}
+{"decimal32_1":10.12}
+{"decimal64_1":1.120000000}
+{"decimal64_1":2.120000000}
+{"decimal64_1":3.120000000}
+{"decimal64_1":4.120000000}
+{"decimal64_1":5.120000000}
+{"decimal64_1":6.120000000}
+{"decimal64_1":7.120000000}
+{"decimal64_1":8.120000000}
+{"decimal64_1":9.120000000}
+{"decimal64_1":10.120000000}
+{"decimal64_1":11.120000000}
+{"decimal128_1":1.120000000}
+{"decimal128_1":2.120000000}
+{"decimal128_1":3.120000000}
+{"decimal128_1":4.120000000}
+{"decimal128_1":5.120000000}
+{"decimal128_1":6.120000000}
+{"decimal128_1":7.120000000}
+{"decimal128_1":8.120000000}
+{"decimal128_1":9.120000000}
+{"decimal128_1":10.120000000}
+{"decimal128_1":11.120000000}
+{"decimal128_1":12.120000000}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{"datetime_1":"2021-01-01 00:00:00"}
+{"datetime_1":"2021-01-01 00:00:01"}
+{"datetime_1":"2021-01-01 00:00:02"}
+{"datetime_1":"2021-01-01 00:00:03"}
+{"datetime_1":"2021-01-01 00:00:04"}
+{"datetime_1":"2021-01-01 00:00:05"}
+{"datetime_1":"2021-01-01 00:00:06"}
+{"datetime_1":"2021-01-01 00:00:07"}
+{"datetime_1":"2021-01-01 00:00:08"}
+{"datetime_1":"2021-01-01 00:00:09"}
+{"datetime_1":"2021-01-01 00:00:10"}
+{"datetime_1":"2021-01-01 00:00:07"}
+{"datetime_1":"2021-01-01 00:00:08"}
+{"date_1":"2021-01-01"}
+{"date_1":"2021-01-02"}
+{"date_1":"2021-01-03"}
+{"date_1":"2021-01-04"}
+{"date_1":"2021-01-05"}
+{"date_1":"2021-01-06"}
+{"date_1":"2021-01-07"}
+{"date_1":"2021-01-08"}
+{"date_1":"2021-01-09"}
+{"date_1":"2021-01-10"}
+{"date_1":"2021-01-07"}
+{"date_1":"2021-01-08"}
+{"date_1":"2021-01-09"}
+{"date_1":"2021-01-10"}
+{"ipv4_1":"192.168.1.1"}
+{"ipv4_1":"192.168.1.2"}
+{"ipv4_1":"192.168.1.3"}
+{"ipv4_1":"192.168.1.4"}
+{"ipv4_1":"192.168.1.5"}
+{"ipv4_1":"192.168.1.6"}
+{"ipv4_1":"192.168.1.7"}
+{"ipv4_1":"192.168.1.8"}
+{"ipv4_1":"192.168.1.9"}
+{"ipv4_1":"192.168.1.10"}
+{"ipv4_1":"192.168.1.7"}
+{"ipv4_1":"192.168.1.8"}
+{"ipv4_1":"192.168.1.9"}
+{"ipv4_1":"192.168.1.10"}
+{"ipv4_1":"192.168.1.11"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7334"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7335"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7336"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7337"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7338"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7339"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733a"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733b"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733c"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733d"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733e"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733f"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7340"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7341"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733f"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7340"}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_tinyint_1":[1]}
+{"array_tinyint_1":[2]}
+{"array_tinyint_1":[3]}
+{"array_tinyint_1":[4]}
+{"array_tinyint_1":[5]}
+{"array_tinyint_1":[6]}
+{"array_tinyint_1":[7]}
+{"array_tinyint_1":[8]}
+{"array_tinyint_1":[9]}
+{"array_tinyint_1":[10]}
+{"array_tinyint_1":[11]}
+{"array_tinyint_1":[12]}
+{"array_tinyint_1":[13]}
+{"array_tinyint_1":[14]}
+{"array_tinyint_1":[15]}
+{"array_tinyint_1":[16]}
+{"array_tinyint_1":[17]}
+{"array_tinyint_1":[18]}
+{"array_smallint_1":[1]}
+{"array_smallint_1":[2, null]}
+{"array_smallint_1":[3]}
+{"array_smallint_1":[4]}
+{"array_smallint_1":[5]}
+{"array_smallint_1":[6]}
+{"array_smallint_1":[7]}
+{"array_smallint_1":[8]}
+{"array_smallint_1":[9]}
+{"array_smallint_1":[10]}
+{"array_smallint_1":[11]}
+{"array_smallint_1":[12]}
+{"array_smallint_1":[13]}
+{"array_smallint_1":[14]}
+{"array_smallint_1":[15]}
+{"array_smallint_1":[16]}
+{"array_smallint_1":[17]}
+{"array_smallint_1":[18]}
+{"array_smallint_1":[19]}
+{"array_int_1":[1]}
+{"array_int_1":[2]}
+{"array_int_1":[3]}
+{"array_int_1":[4]}
+{"array_int_1":[5]}
+{"array_int_1":[6]}
+{"array_int_1":[7]}
+{"array_int_1":[8]}
+{"array_int_1":[9]}
+{"array_int_1":[10]}
+{"array_int_1":[11]}
+{"array_int_1":[12]}
+{"array_int_1":[13]}
+{"array_int_1":[14]}
+{"array_int_1":[15]}
+{"array_int_1":[16]}
+{"array_int_1":[17]}
+{"array_int_1":[18]}
+{"array_int_1":[19]}
+{"array_int_1":[20]}
+{"array_bigint_1":[1]}
+{"array_bigint_1":[2]}
+{"array_bigint_1":[3]}
+{"array_bigint_1":[4]}
+{"array_bigint_1":[5]}
+{"array_bigint_1":[6]}
+{"array_bigint_1":[7]}
+{"array_bigint_1":[8]}
+{"array_bigint_1":[9]}
+{"array_bigint_1":[10]}
+{"array_bigint_1":[11]}
+{"array_bigint_1":[12]}
+{"array_bigint_1":[13]}
+{"array_bigint_1":[14]}
+{"array_bigint_1":[15]}
+{"array_bigint_1":[16]}
+{"array_bigint_1":[17]}
+{"array_bigint_1":[18]}
+{"array_bigint_1":[19]}
+{"array_bigint_1":[20]}
+{"array_bigint_1":[21]}
+{"array_largeint_1":[1, null]}
+{"array_largeint_1":[2]}
+{"array_largeint_1":[3]}
+{"array_largeint_1":[4]}
+{"array_largeint_1":[5]}
+{"array_largeint_1":[6]}
+{"array_largeint_1":[7]}
+{"array_largeint_1":[8]}
+{"array_largeint_1":[9]}
+{"array_largeint_1":[10]}
+{"array_largeint_1":[11]}
+{"array_largeint_1":[12]}
+{"array_largeint_1":[13]}
+{"array_largeint_1":[14]}
+{"array_largeint_1":[15]}
+{"array_largeint_1":[16]}
+{"array_largeint_1":[17]}
+{"array_largeint_1":[18]}
+{"array_largeint_1":[19]}
+{"array_largeint_1":[20]}
+{"array_largeint_1":[21]}
+{"array_largeint_1":[22]}
+{"array_char_1":["1"]}
+{"array_char_1":["2"]}
+{"array_char_1":["3"]}
+{"array_char_1":["4"]}
+{"array_char_1":["5"]}
+{"array_char_1":["6"]}
+{"array_char_1":["7"]}
+{"array_char_1":["8"]}
+{"array_char_1":["9"]}
+{"array_char_1":["10"]}
+{"array_char_1":["11"]}
+{"array_char_1":["12"]}
+{"array_char_1":["13"]}
+{"array_char_1":["14"]}
+{"array_char_1":["15"]}
+{"array_char_1":["16"]}
+{"array_char_1":["17"]}
+{"array_char_1":["18"]}
+{"array_char_1":["19"]}
+{"array_char_1":["20"]}
+{"array_char_1":["21"]}
+{"array_char_1":["22"]}
+{"array_char_1":["23"]}
+{"array_string_1":["1"]}
+{"array_string_1":["2"]}
+{"array_string_1":["3"]}
+{"array_string_1":["4"]}
+{"array_string_1":["5"]}
+{"array_string_1":["6"]}
+{"array_string_1":["7"]}
+{"array_string_1":["8"]}
+{"array_string_1":["9"]}
+{"array_string_1":["10"]}
+{"array_string_1":["11"]}
+{"array_string_1":["12"]}
+{"array_string_1":["13"]}
+{"array_string_1":["14"]}
+{"array_string_1":["15"]}
+{"array_string_1":["16"]}
+{"array_string_1":["17"]}
+{"array_string_1":["18"]}
+{"array_string_1":["19"]}
+{"array_string_1":["20"]}
+{"array_string_1":["21"]}
+{"array_string_1":["22"]}
+{"array_string_1":["23"]}
+{"array_string_1":["24"]}
+{"array_float_1":[1.12]}
+{"array_float_1":[2.12]}
+{"array_float_1":[3.12]}
+{"array_float_1":[4.12]}
+{"array_float_1":[5.12]}
+{"array_float_1":[6.12]}
+{"array_float_1":[7.12]}
+{"array_float_1":[8.12]}
+{"array_float_1":[9.12]}
+{"array_float_1":[10.12]}
+{"array_float_1":[11.12]}
+{"array_float_1":[12.12]}
+{"array_float_1":[13.12]}
+{"array_float_1":[14.12]}
+{"array_float_1":[15.12]}
+{"array_float_1":[16.12]}
+{"array_float_1":[17.12]}
+{"array_float_1":[18.12]}
+{"array_float_1":[19.12]}
+{"array_float_1":[20.12]}
+{"array_float_1":[21.12]}
+{"array_float_1":[22.12]}
+{"array_float_1":[23.12]}
+{"array_float_1":[24.12]}
+{"array_float_1":[25.12]}
+{"array_double_1":[1.12]}
+{"array_double_1":[2.12]}
+{"array_double_1":[3.12]}
+{"array_double_1":[4.12]}
+{"array_double_1":[5.12]}
+{"array_double_1":[6.12]}
+{"array_double_1":[7.12]}
+{"array_double_1":[8.12]}
+{"array_double_1":[9.12]}
+{"array_double_1":[10.12]}
+{"array_double_1":[11.12]}
+{"array_double_1":[12.12]}
+{"array_double_1":[13.12]}
+{"array_double_1":[14.12]}
+{"array_double_1":[15.12]}
+{"array_double_1":[16.12]}
+{"array_double_1":[17.12]}
+{"array_double_1":[18.12]}
+{"array_double_1":[19.12]}
+{"array_double_1":[20.12]}
+{"array_double_1":[21.12]}
+{"array_double_1":[22.12]}
+{"array_double_1":[23.12]}
+{"array_double_1":[24.12]}
+{"array_double_1":[25.12]}
+{"array_double_1":[26.12]}
+{"array_decimal32_1":[1.12]}
+{"array_decimal32_1":[2.12]}
+{"array_decimal32_1":[3.12]}
+{"array_decimal32_1":[4.12]}
+{"array_decimal32_1":[5.12]}
+{"array_decimal32_1":[6.12]}
+{"array_decimal32_1":[7.12]}
+{"array_decimal32_1":[8.12]}
+{"array_decimal32_1":[9.12]}
+{"array_decimal32_1":[10.12]}
+{"array_decimal32_1":[11.12]}
+{"array_decimal32_1":[12.12]}
+{"array_decimal32_1":[13.12]}
+{"array_decimal32_1":[14.12]}
+{"array_decimal32_1":[15.12]}
+{"array_decimal32_1":[16.12]}
+{"array_decimal32_1":[17.12]}
+{"array_decimal32_1":[18.12]}
+{"array_decimal32_1":[19.12]}
+{"array_decimal32_1":[20.12]}
+{"array_decimal32_1":[21.12]}
+{"array_decimal32_1":[22.12]}
+{"array_decimal32_1":[23.12]}
+{"array_decimal32_1":[24.12]}
+{"array_decimal32_1":[25.12]}
+{"array_decimal32_1":[26.12]}
+{"array_decimal32_1":[27.12]}
+{"array_decimal64_1":[1.120000000]}
+{"array_decimal64_1":[2.120000000]}
+{"array_decimal64_1":[3.120000000]}
+{"array_decimal64_1":[4.120000000]}
+{"array_decimal64_1":[5.120000000]}
+{"array_decimal64_1":[6.120000000]}
+{"array_decimal64_1":[7.120000000]}
+{"array_decimal64_1":[8.120000000]}
+{"array_decimal64_1":[9.120000000]}
+{"array_decimal64_1":[10.120000000]}
+{"array_decimal64_1":[11.120000000]}
+{"array_decimal64_1":[12.120000000]}
+{"array_decimal64_1":[13.120000000]}
+{"array_decimal64_1":[14.120000000]}
+{"array_decimal64_1":[15.120000000]}
+{"array_decimal64_1":[16.120000000]}
+{"array_decimal64_1":[17.120000000]}
+{"array_decimal64_1":[18.120000000]}
+{"array_decimal64_1":[19.120000000]}
+{"array_decimal64_1":[20.120000000]}
+{"array_decimal64_1":[21.120000000]}
+{"array_decimal64_1":[22.120000000]}
+{"array_decimal64_1":[23.120000000]}
+{"array_decimal64_1":[24.120000000]}
+{"array_decimal64_1":[25.120000000]}
+{"array_decimal64_1":[26.120000000]}
+{"array_decimal64_1":[27.120000000]}
+{"array_decimal64_1":[28.120000000]}
+{"array_decimal128_1":[1.120000000]}
+{"array_decimal128_1":[2.120000000]}
+{"array_decimal128_1":[3.120000000]}
+{"array_decimal128_1":[4.120000000]}
+{"array_decimal128_1":[5.120000000]}
+{"array_decimal128_1":[6.120000000]}
+{"array_decimal128_1":[7.120000000]}
+{"array_decimal128_1":[8.120000000]}
+{"array_decimal128_1":[9.120000000]}
+{"array_decimal128_1":[10.120000000]}
+{"array_decimal128_1":[11.120000000]}
+{"array_decimal128_1":[12.120000000]}
+{"array_decimal128_1":[13.120000000]}
+{"array_decimal128_1":[14.120000000]}
+{"array_decimal128_1":[15.120000000]}
+{"array_decimal128_1":[16.120000000]}
+{"array_decimal128_1":[17.120000000]}
+{"array_decimal128_1":[18.120000000]}
+{"array_decimal128_1":[19.120000000]}
+{"array_decimal128_1":[20.120000000]}
+{"array_decimal128_1":[21.120000000]}
+{"array_decimal128_1":[22.120000000]}
+{"array_decimal128_1":[23.120000000]}
+{"array_decimal128_1":[24.120000000]}
+{"array_decimal128_1":[25.120000000]}
+{"array_decimal128_1":[26.120000000]}
+{"array_decimal128_1":[27.120000000]}
+{"array_decimal128_1":[28.120000000]}
+{"array_decimal128_1":[29.120000000]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_datetime_1":["2021-01-01 00:00:00"]}
+{"array_datetime_1":["2021-01-01 00:00:01"]}
+{"array_datetime_1":["2021-01-01 00:00:02"]}
+{"array_datetime_1":["2021-01-01 00:00:03"]}
+{"array_datetime_1":["2021-01-01 00:00:04"]}
+{"array_datetime_1":["2021-01-01 00:00:05"]}
+{"array_datetime_1":["2021-01-01 00:00:06"]}
+{"array_datetime_1":["2021-01-01 00:00:07"]}
+{"array_datetime_1":["2021-01-01 00:00:08"]}
+{"array_datetime_1":["2021-01-01 00:00:09"]}
+{"array_datetime_1":["2021-01-01 00:00:10"]}
+{"array_datetime_1":["2021-01-01 00:00:07"]}
+{"array_datetime_1":["2021-01-01 00:00:08"]}
+{"array_datetime_1":["2021-01-01 00:00:09"]}
+{"array_datetime_1":["2021-01-01 00:00:10"]}
+{"array_datetime_1":["2021-01-01 00:00:07"]}
+{"array_datetime_1":["2021-01-01 00:00:08"]}
+{"array_datetime_1":["2021-01-01 00:00:09"]}
+{"array_datetime_1":["2021-01-01 00:00:10"]}
+{"array_datetime_1":["2021-01-01 00:00:07"]}
+{"array_datetime_1":["2021-01-01 00:00:08"]}
+{"array_datetime_1":["2021-01-01 00:00:09"]}
+{"array_datetime_1":["2021-01-01 00:00:10"]}
+{"array_datetime_1":["2021-01-01 00:00:07"]}
+{"array_datetime_1":["2021-01-01 00:00:08"]}
+{"array_datetime_1":["2021-01-01 00:00:09"]}
+{"array_datetime_1":["2021-01-01 00:00:10"]}
+{"array_datetime_1":["2021-01-01 00:00:07"]}
+{"array_datetime_1":["2021-01-01 00:00:08"]}
+{"array_datetime_1":["2021-01-01 00:00:09"]}
+{"array_datetime_1":["2021-01-01 00:00:10"]}
+{"array_date_1":["2021-01-01"]}
+{"array_date_1":["2021-01-02"]}
+{"array_date_1":["2021-01-03"]}
+{"array_date_1":["2021-01-04"]}
+{"array_date_1":["2021-01-05"]}
+{"array_date_1":["2021-01-06"]}
+{"array_date_1":["2021-01-07"]}
+{"array_date_1":["2021-01-08"]}
+{"array_date_1":["2021-01-09"]}
+{"array_date_1":["2021-01-10"]}
+{"array_date_1":["2021-01-07"]}
+{"array_date_1":["2021-01-08"]}
+{"array_date_1":["2021-01-09"]}
+{"array_date_1":["2021-01-10"]}
+{"array_date_1":["2021-01-07"]}
+{"array_date_1":["2021-01-08"]}
+{"array_date_1":["2021-01-09"]}
+{"array_date_1":["2021-01-10"]}
+{"array_date_1":["2021-01-07"]}
+{"array_date_1":["2021-01-08"]}
+{"array_date_1":["2021-01-09"]}
+{"array_date_1":["2021-01-10"]}
+{"array_date_1":["2021-01-07"]}
+{"array_date_1":["2021-01-08"]}
+{"array_date_1":["2021-01-09"]}
+{"array_date_1":["2021-01-10"]}
+{"array_date_1":["2021-01-07"]}
+{"array_date_1":["2021-01-08"]}
+{"array_date_1":["2021-01-09"]}
+{"array_date_1":["2021-01-10"]}
+{"array_date_1":["2021-01-07"]}
+{"array_date_1":["2021-01-08"]}
+
+-- !sql_compaction_before --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.array_date_1	array<date>	Yes	false	\N	NONE
+var.array_ipv4_1	array<ipv4>	Yes	false	\N	NONE
+
+-- !sql_compaction_after --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.array_ipv4_1	array<ipv4>	Yes	false	\N	NONE
+
+-- !sql --
+{"array_bigint_1":[1, null],"array_boolean_1":[1],"array_char_1":["1"],"array_date_1":["2021-01-01"],"array_datetime_1":["2021-01-01 00:00:00"],"array_decimal128_1":[1.120000000],"array_decimal256_1":[null],"array_decimal32_1":[1.12],"array_decimal64_1":[1.120000000],"array_double_1":[1.12],"array_float_1":[1.12],"array_int_1":[1, null],"array_ipv4_1":["192.168.1.1"],"array_ipv6_1":["2001:db8:85a3::8a2e:370:7334"],"array_largeint_1":[1, null],"array_smallint_1":[1, null],"array_string_1":["1"],"array_tinyint_1":[1, null],"bigint_1":1,"boolean_1":1,"char_1":"1","date_1":"2021-01-01","datetime_1":"2021-01-01 00:00:00","decimal128_1":1.120000000,"decimal32_1":1.12,"decimal64_1":1.120000000,"double_1":1.12,"float_1":1.12,"int_1":1,"ipv4_1":"192.168.1.1","ipv6_1":"2001:db8:85a3::8a2e:370:7334","largeint_1":1,"other_1":"1","smallint_1":1,"string_1":"1","tinyint_1":1}
+{"other_1":"1"}
+{"tinyint_1":1}
+{"tinyint_1":2}
+{"smallint_1":1}
+{"smallint_1":2}
+{"smallint_1":3}
+{"int_1":1}
+{"int_1":2}
+{"int_1":3}
+{"int_1":4}
+{"bigint_1":1}
+{"bigint_1":2}
+{"bigint_1":3}
+{"bigint_1":4}
+{"bigint_1":5}
+{"largeint_1":1}
+{"largeint_1":2}
+{"largeint_1":3}
+{"largeint_1":4}
+{"largeint_1":5}
+{"largeint_1":6}
+{"char_1":"1"}
+{"char_1":"2"}
+{"char_1":"3"}
+{"char_1":"4"}
+{"char_1":"5"}
+{"char_1":"6"}
+{"char_1":"7"}
+{"string_1":"1"}
+{"string_1":"2"}
+{"string_1":"3"}
+{"string_1":"4"}
+{"string_1":"5"}
+{"string_1":"6"}
+{"string_1":"7"}
+{"string_1":"8"}
+{"float_1":1.12}
+{"float_1":2.12}
+{"float_1":3.12}
+{"float_1":4.12}
+{"float_1":5.12}
+{"float_1":6.12}
+{"float_1":7.12}
+{"float_1":8.12}
+{"double_1":1.12}
+{"double_1":2.12}
+{"double_1":3.12}
+{"double_1":4.12}
+{"double_1":5.12}
+{"double_1":6.12}
+{"double_1":7.12}
+{"double_1":8.12}
+{"double_1":9.12}
+{"decimal32_1":1.12}
+{"decimal32_1":2.12}
+{"decimal32_1":3.12}
+{"decimal32_1":4.12}
+{"decimal32_1":5.12}
+{"decimal32_1":6.12}
+{"decimal32_1":7.12}
+{"decimal32_1":8.12}
+{"decimal32_1":9.12}
+{"decimal32_1":10.12}
+{"decimal64_1":1.120000000}
+{"decimal64_1":2.120000000}
+{"decimal64_1":3.120000000}
+{"decimal64_1":4.120000000}
+{"decimal64_1":5.120000000}
+{"decimal64_1":6.120000000}
+{"decimal64_1":7.120000000}
+{"decimal64_1":8.120000000}
+{"decimal64_1":9.120000000}
+{"decimal64_1":10.120000000}
+{"decimal64_1":11.120000000}
+{"decimal128_1":1.120000000}
+{"decimal128_1":2.120000000}
+{"decimal128_1":3.120000000}
+{"decimal128_1":4.120000000}
+{"decimal128_1":5.120000000}
+{"decimal128_1":6.120000000}
+{"decimal128_1":7.120000000}
+{"decimal128_1":8.120000000}
+{"decimal128_1":9.120000000}
+{"decimal128_1":10.120000000}
+{"decimal128_1":11.120000000}
+{"decimal128_1":12.120000000}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{"datetime_1":"2021-01-01 00:00:00"}
+{"datetime_1":"2021-01-01 00:00:01"}
+{"datetime_1":"2021-01-01 00:00:02"}
+{"datetime_1":"2021-01-01 00:00:03"}
+{"datetime_1":"2021-01-01 00:00:04"}
+{"datetime_1":"2021-01-01 00:00:05"}
+{"datetime_1":"2021-01-01 00:00:06"}
+{"datetime_1":"2021-01-01 00:00:07"}
+{"datetime_1":"2021-01-01 00:00:08"}
+{"datetime_1":"2021-01-01 00:00:09"}
+{"datetime_1":"2021-01-01 00:00:10"}
+{"datetime_1":"2021-01-01 00:00:07"}
+{"datetime_1":"2021-01-01 00:00:08"}
+{"date_1":"2021-01-01"}
+{"date_1":"2021-01-02"}
+{"date_1":"2021-01-03"}
+{"date_1":"2021-01-04"}
+{"date_1":"2021-01-05"}
+{"date_1":"2021-01-06"}
+{"date_1":"2021-01-07"}
+{"date_1":"2021-01-08"}
+{"date_1":"2021-01-09"}
+{"date_1":"2021-01-10"}
+{"date_1":"2021-01-07"}
+{"date_1":"2021-01-08"}
+{"date_1":"2021-01-09"}
+{"date_1":"2021-01-10"}
+{"ipv4_1":"192.168.1.1"}
+{"ipv4_1":"192.168.1.2"}
+{"ipv4_1":"192.168.1.3"}
+{"ipv4_1":"192.168.1.4"}
+{"ipv4_1":"192.168.1.5"}
+{"ipv4_1":"192.168.1.6"}
+{"ipv4_1":"192.168.1.7"}
+{"ipv4_1":"192.168.1.8"}
+{"ipv4_1":"192.168.1.9"}
+{"ipv4_1":"192.168.1.10"}
+{"ipv4_1":"192.168.1.7"}
+{"ipv4_1":"192.168.1.8"}
+{"ipv4_1":"192.168.1.9"}
+{"ipv4_1":"192.168.1.10"}
+{"ipv4_1":"192.168.1.11"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7334"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7335"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7336"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7337"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7338"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7339"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733a"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733b"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733c"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733d"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733e"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733f"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7340"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7341"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733f"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7340"}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_tinyint_1":[1]}
+{"array_tinyint_1":[2]}
+{"array_tinyint_1":[3]}
+{"array_tinyint_1":[4]}
+{"array_tinyint_1":[5]}
+{"array_tinyint_1":[6]}
+{"array_tinyint_1":[7]}
+{"array_tinyint_1":[8]}
+{"array_tinyint_1":[9]}
+{"array_tinyint_1":[10]}
+{"array_tinyint_1":[11]}
+{"array_tinyint_1":[12]}
+{"array_tinyint_1":[13]}
+{"array_tinyint_1":[14]}
+{"array_tinyint_1":[15]}
+{"array_tinyint_1":[16]}
+{"array_tinyint_1":[17]}
+{"array_tinyint_1":[18]}
+{"array_smallint_1":[1]}
+{"array_smallint_1":[2, null]}
+{"array_smallint_1":[3]}
+{"array_smallint_1":[4]}
+{"array_smallint_1":[5]}
+{"array_smallint_1":[6]}
+{"array_smallint_1":[7]}
+{"array_smallint_1":[8]}
+{"array_smallint_1":[9]}
+{"array_smallint_1":[10]}
+{"array_smallint_1":[11]}
+{"array_smallint_1":[12]}
+{"array_smallint_1":[13]}
+{"array_smallint_1":[14]}
+{"array_smallint_1":[15]}
+{"array_smallint_1":[16]}
+{"array_smallint_1":[17]}
+{"array_smallint_1":[18]}
+{"array_smallint_1":[19]}
+{"array_int_1":[1]}
+{"array_int_1":[2]}
+{"array_int_1":[3]}
+{"array_int_1":[4]}
+{"array_int_1":[5]}
+{"array_int_1":[6]}
+{"array_int_1":[7]}
+{"array_int_1":[8]}
+{"array_int_1":[9]}
+{"array_int_1":[10]}
+{"array_int_1":[11]}
+{"array_int_1":[12]}
+{"array_int_1":[13]}
+{"array_int_1":[14]}
+{"array_int_1":[15]}
+{"array_int_1":[16]}
+{"array_int_1":[17]}
+{"array_int_1":[18]}
+{"array_int_1":[19]}
+{"array_int_1":[20]}
+{"array_bigint_1":[1]}
+{"array_bigint_1":[2]}
+{"array_bigint_1":[3]}
+{"array_bigint_1":[4]}
+{"array_bigint_1":[5]}
+{"array_bigint_1":[6]}
+{"array_bigint_1":[7]}
+{"array_bigint_1":[8]}
+{"array_bigint_1":[9]}
+{"array_bigint_1":[10]}
+{"array_bigint_1":[11]}
+{"array_bigint_1":[12]}
+{"array_bigint_1":[13]}
+{"array_bigint_1":[14]}
+{"array_bigint_1":[15]}
+{"array_bigint_1":[16]}
+{"array_bigint_1":[17]}
+{"array_bigint_1":[18]}
+{"array_bigint_1":[19]}
+{"array_bigint_1":[20]}
+{"array_bigint_1":[21]}
+{"array_largeint_1":[1, null]}
+{"array_largeint_1":[2]}
+{"array_largeint_1":[3]}
+{"array_largeint_1":[4]}
+{"array_largeint_1":[5]}
+{"array_largeint_1":[6]}
+{"array_largeint_1":[7]}
+{"array_largeint_1":[8]}
+{"array_largeint_1":[9]}
+{"array_largeint_1":[10]}
+{"array_largeint_1":[11]}
+{"array_largeint_1":[12]}
+{"array_largeint_1":[13]}
+{"array_largeint_1":[14]}
+{"array_largeint_1":[15]}
+{"array_largeint_1":[16]}
+{"array_largeint_1":[17]}
+{"array_largeint_1":[18]}
+{"array_largeint_1":[19]}
+{"array_largeint_1":[20]}
+{"array_largeint_1":[21]}
+{"array_largeint_1":[22]}
+{"array_char_1":["1"]}
+{"array_char_1":["2"]}
+{"array_char_1":["3"]}
+{"array_char_1":["4"]}
+{"array_char_1":["5"]}
+{"array_char_1":["6"]}
+{"array_char_1":["7"]}
+{"array_char_1":["8"]}
+{"array_char_1":["9"]}
+{"array_char_1":["10"]}
+{"array_char_1":["11"]}
+{"array_char_1":["12"]}
+{"array_char_1":["13"]}
+{"array_char_1":["14"]}
+{"array_char_1":["15"]}
+{"array_char_1":["16"]}
+{"array_char_1":["17"]}
+{"array_char_1":["18"]}
+{"array_char_1":["19"]}
+{"array_char_1":["20"]}
+{"array_char_1":["21"]}
+{"array_char_1":["22"]}
+{"array_char_1":["23"]}
+{"array_string_1":["1"]}
+{"array_string_1":["2"]}
+{"array_string_1":["3"]}
+{"array_string_1":["4"]}
+{"array_string_1":["5"]}
+{"array_string_1":["6"]}
+{"array_string_1":["7"]}
+{"array_string_1":["8"]}
+{"array_string_1":["9"]}
+{"array_string_1":["10"]}
+{"array_string_1":["11"]}
+{"array_string_1":["12"]}
+{"array_string_1":["13"]}
+{"array_string_1":["14"]}
+{"array_string_1":["15"]}
+{"array_string_1":["16"]}
+{"array_string_1":["17"]}
+{"array_string_1":["18"]}
+{"array_string_1":["19"]}
+{"array_string_1":["20"]}
+{"array_string_1":["21"]}
+{"array_string_1":["22"]}
+{"array_string_1":["23"]}
+{"array_string_1":["24"]}
+{"array_float_1":[1.12]}
+{"array_float_1":[2.12]}
+{"array_float_1":[3.12]}
+{"array_float_1":[4.12]}
+{"array_float_1":[5.12]}
+{"array_float_1":[6.12]}
+{"array_float_1":[7.12]}
+{"array_float_1":[8.12]}
+{"array_float_1":[9.12]}
+{"array_float_1":[10.12]}
+{"array_float_1":[11.12]}
+{"array_float_1":[12.12]}
+{"array_float_1":[13.12]}
+{"array_float_1":[14.12]}
+{"array_float_1":[15.12]}
+{"array_float_1":[16.12]}
+{"array_float_1":[17.12]}
+{"array_float_1":[18.12]}
+{"array_float_1":[19.12]}
+{"array_float_1":[20.12]}
+{"array_float_1":[21.12]}
+{"array_float_1":[22.12]}
+{"array_float_1":[23.12]}
+{"array_float_1":[24.12]}
+{"array_float_1":[25.12]}
+{"array_double_1":[1.12]}
+{"array_double_1":[2.12]}
+{"array_double_1":[3.12]}
+{"array_double_1":[4.12]}
+{"array_double_1":[5.12]}
+{"array_double_1":[6.12]}
+{"array_double_1":[7.12]}
+{"array_double_1":[8.12]}
+{"array_double_1":[9.12]}
+{"array_double_1":[10.12]}
+{"array_double_1":[11.12]}
+{"array_double_1":[12.12]}
+{"array_double_1":[13.12]}
+{"array_double_1":[14.12]}
+{"array_double_1":[15.12]}
+{"array_double_1":[16.12]}
+{"array_double_1":[17.12]}
+{"array_double_1":[18.12]}
+{"array_double_1":[19.12]}
+{"array_double_1":[20.12]}
+{"array_double_1":[21.12]}
+{"array_double_1":[22.12]}
+{"array_double_1":[23.12]}
+{"array_double_1":[24.12]}
+{"array_double_1":[25.12]}
+{"array_double_1":[26.12]}
+{"array_decimal32_1":[1.12]}
+{"array_decimal32_1":[2.12]}
+{"array_decimal32_1":[3.12]}
+{"array_decimal32_1":[4.12]}
+{"array_decimal32_1":[5.12]}
+{"array_decimal32_1":[6.12]}
+{"array_decimal32_1":[7.12]}
+{"array_decimal32_1":[8.12]}
+{"array_decimal32_1":[9.12]}
+{"array_decimal32_1":[10.12]}
+{"array_decimal32_1":[11.12]}
+{"array_decimal32_1":[12.12]}
+{"array_decimal32_1":[13.12]}
+{"array_decimal32_1":[14.12]}
+{"array_decimal32_1":[15.12]}
+{"array_decimal32_1":[16.12]}
+{"array_decimal32_1":[17.12]}
+{"array_decimal32_1":[18.12]}
+{"array_decimal32_1":[19.12]}
+{"array_decimal32_1":[20.12]}
+{"array_decimal32_1":[21.12]}
+{"array_decimal32_1":[22.12]}
+{"array_decimal32_1":[23.12]}
+{"array_decimal32_1":[24.12]}
+{"array_decimal32_1":[25.12]}
+{"array_decimal32_1":[26.12]}
+{"array_decimal32_1":[27.12]}
+{"array_decimal64_1":[1.120000000]}
+{"array_decimal64_1":[2.120000000]}
+{"array_decimal64_1":[3.120000000]}
+{"array_decimal64_1":[4.120000000]}
+{"array_decimal64_1":[5.120000000]}
+{"array_decimal64_1":[6.120000000]}
+{"array_decimal64_1":[7.120000000]}
+{"array_decimal64_1":[8.120000000]}
+{"array_decimal64_1":[9.120000000]}
+{"array_decimal64_1":[10.120000000]}
+{"array_decimal64_1":[11.120000000]}
+{"array_decimal64_1":[12.120000000]}
+{"array_decimal64_1":[13.120000000]}
+{"array_decimal64_1":[14.120000000]}
+{"array_decimal64_1":[15.120000000]}
+{"array_decimal64_1":[16.120000000]}
+{"array_decimal64_1":[17.120000000]}
+{"array_decimal64_1":[18.120000000]}
+{"array_decimal64_1":[19.120000000]}
+{"array_decimal64_1":[20.120000000]}
+{"array_decimal64_1":[21.120000000]}
+{"array_decimal64_1":[22.120000000]}
+{"array_decimal64_1":[23.120000000]}
+{"array_decimal64_1":[24.120000000]}
+{"array_decimal64_1":[25.120000000]}
+{"array_decimal64_1":[26.120000000]}
+{"array_decimal64_1":[27.120000000]}
+{"array_decimal64_1":[28.120000000]}
+{"array_decimal128_1":[1.120000000]}
+{"array_decimal128_1":[2.120000000]}
+{"array_decimal128_1":[3.120000000]}
+{"array_decimal128_1":[4.120000000]}
+{"array_decimal128_1":[5.120000000]}
+{"array_decimal128_1":[6.120000000]}
+{"array_decimal128_1":[7.120000000]}
+{"array_decimal128_1":[8.120000000]}
+{"array_decimal128_1":[9.120000000]}
+{"array_decimal128_1":[10.120000000]}
+{"array_decimal128_1":[11.120000000]}
+{"array_decimal128_1":[12.120000000]}
+{"array_decimal128_1":[13.120000000]}
+{"array_decimal128_1":[14.120000000]}
+{"array_decimal128_1":[15.120000000]}
+{"array_decimal128_1":[16.120000000]}
+{"array_decimal128_1":[17.120000000]}
+{"array_decimal128_1":[18.120000000]}
+{"array_decimal128_1":[19.120000000]}
+{"array_decimal128_1":[20.120000000]}
+{"array_decimal128_1":[21.120000000]}
+{"array_decimal128_1":[22.120000000]}
+{"array_decimal128_1":[23.120000000]}
+{"array_decimal128_1":[24.120000000]}
+{"array_decimal128_1":[25.120000000]}
+{"array_decimal128_1":[26.120000000]}
+{"array_decimal128_1":[27.120000000]}
+{"array_decimal128_1":[28.120000000]}
+{"array_decimal128_1":[29.120000000]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_datetime_1":["2021-01-01 00:00:00"]}
+{"array_datetime_1":["2021-01-01 00:00:01"]}
+{"array_datetime_1":["2021-01-01 00:00:02"]}
+{"array_datetime_1":["2021-01-01 00:00:03"]}
+{"array_datetime_1":["2021-01-01 00:00:04"]}
+{"array_datetime_1":["2021-01-01 00:00:05"]}
+{"array_datetime_1":["2021-01-01 00:00:06"]}
+{"array_datetime_1":["2021-01-01 00:00:07"]}
+{"array_datetime_1":["2021-01-01 00:00:08"]}
+{"array_datetime_1":["2021-01-01 00:00:09"]}
+{"array_datetime_1":["2021-01-01 00:00:10"]}
+{"array_datetime_1":["2021-01-01 00:00:07"]}
+{"array_datetime_1":["2021-01-01 00:00:08"]}
+{"array_datetime_1":["2021-01-01 00:00:09"]}
+{"array_datetime_1":["2021-01-01 00:00:10"]}
+{"array_datetime_1":["2021-01-01 00:00:07"]}
+{"array_datetime_1":["2021-01-01 00:00:08"]}
+{"array_datetime_1":["2021-01-01 00:00:09"]}
+{"array_datetime_1":["2021-01-01 00:00:10"]}
+{"array_datetime_1":["2021-01-01 00:00:07"]}
+{"array_datetime_1":["2021-01-01 00:00:08"]}
+{"array_datetime_1":["2021-01-01 00:00:09"]}
+{"array_datetime_1":["2021-01-01 00:00:10"]}
+{"array_datetime_1":["2021-01-01 00:00:07"]}
+{"array_datetime_1":["2021-01-01 00:00:08"]}
+{"array_datetime_1":["2021-01-01 00:00:09"]}
+{"array_datetime_1":["2021-01-01 00:00:10"]}
+{"array_datetime_1":["2021-01-01 00:00:07"]}
+{"array_datetime_1":["2021-01-01 00:00:08"]}
+{"array_datetime_1":["2021-01-01 00:00:09"]}
+{"array_datetime_1":["2021-01-01 00:00:10"]}
+{"array_date_1":["2021-01-01"]}
+{"array_date_1":["2021-01-02"]}
+{"array_date_1":["2021-01-03"]}
+{"array_date_1":["2021-01-04"]}
+{"array_date_1":["2021-01-05"]}
+{"array_date_1":["2021-01-06"]}
+{"array_date_1":["2021-01-07"]}
+{"array_date_1":["2021-01-08"]}
+{"array_date_1":["2021-01-09"]}
+{"array_date_1":["2021-01-10"]}
+{"array_date_1":["2021-01-07"]}
+{"array_date_1":["2021-01-08"]}
+{"array_date_1":["2021-01-09"]}
+{"array_date_1":["2021-01-10"]}
+{"array_date_1":["2021-01-07"]}
+{"array_date_1":["2021-01-08"]}
+{"array_date_1":["2021-01-09"]}
+{"array_date_1":["2021-01-10"]}
+{"array_date_1":["2021-01-07"]}
+{"array_date_1":["2021-01-08"]}
+{"array_date_1":["2021-01-09"]}
+{"array_date_1":["2021-01-10"]}
+{"array_date_1":["2021-01-07"]}
+{"array_date_1":["2021-01-08"]}
+{"array_date_1":["2021-01-09"]}
+{"array_date_1":["2021-01-10"]}
+{"array_date_1":["2021-01-07"]}
+{"array_date_1":["2021-01-08"]}
+{"array_date_1":["2021-01-09"]}
+{"array_date_1":["2021-01-10"]}
+{"array_date_1":["2021-01-07"]}
+{"array_date_1":["2021-01-08"]}
+{"array_ipv4_1":["192.168.1.1"]}
+{"array_ipv4_1":["192.168.1.2"]}
+{"array_ipv4_1":["192.168.1.3"]}
+{"array_ipv4_1":["192.168.1.4"]}
+{"array_ipv4_1":["192.168.1.5"]}
+{"array_ipv4_1":["192.168.1.6"]}
+{"array_ipv4_1":["192.168.1.7"]}
+{"array_ipv4_1":["192.168.1.8"]}
+{"array_ipv4_1":["192.168.1.9"]}
+{"array_ipv4_1":["192.168.1.10"]}
+{"array_ipv4_1":["192.168.1.7"]}
+{"array_ipv4_1":["192.168.1.8"]}
+{"array_ipv4_1":["192.168.1.9"]}
+{"array_ipv4_1":["192.168.1.10"]}
+{"array_ipv4_1":["192.168.1.7"]}
+{"array_ipv4_1":["192.168.1.8"]}
+{"array_ipv4_1":["192.168.1.9"]}
+{"array_ipv4_1":["192.168.1.10"]}
+{"array_ipv4_1":["192.168.1.7"]}
+{"array_ipv4_1":["192.168.1.8"]}
+{"array_ipv4_1":["192.168.1.9"]}
+{"array_ipv4_1":["192.168.1.10"]}
+{"array_ipv4_1":["192.168.1.7"]}
+{"array_ipv4_1":["192.168.1.8"]}
+{"array_ipv4_1":["192.168.1.9"]}
+{"array_ipv4_1":["192.168.1.10"]}
+{"array_ipv4_1":["192.168.1.7"]}
+{"array_ipv4_1":["192.168.1.8"]}
+{"array_ipv4_1":["192.168.1.9"]}
+{"array_ipv4_1":["192.168.1.10"]}
+{"array_ipv4_1":["192.168.1.7"]}
+{"array_ipv4_1":["192.168.1.8"]}
+{"array_ipv4_1":["192.168.1.9"]}
+
+-- !sql_compaction_before --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.array_ipv4_1	array<ipv4>	Yes	false	\N	NONE
+var.array_ipv6_1	array<ipv6>	Yes	false	\N	NONE
+
+-- !sql_compaction_after --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.array_ipv6_1	array<ipv6>	Yes	false	\N	NONE
+
+-- !sql --
+{"array_bigint_1":[1, null],"array_boolean_1":[1],"array_char_1":["1"],"array_date_1":["2021-01-01"],"array_datetime_1":["2021-01-01 00:00:00"],"array_decimal128_1":[1.120000000],"array_decimal256_1":[null],"array_decimal32_1":[1.12],"array_decimal64_1":[1.120000000],"array_double_1":[1.12],"array_float_1":[1.12],"array_int_1":[1, null],"array_ipv4_1":["192.168.1.1"],"array_ipv6_1":["2001:db8:85a3::8a2e:370:7334"],"array_largeint_1":[1, null],"array_smallint_1":[1, null],"array_string_1":["1"],"array_tinyint_1":[1, null],"bigint_1":1,"boolean_1":1,"char_1":"1","date_1":"2021-01-01","datetime_1":"2021-01-01 00:00:00","decimal128_1":1.120000000,"decimal32_1":1.12,"decimal64_1":1.120000000,"double_1":1.12,"float_1":1.12,"int_1":1,"ipv4_1":"192.168.1.1","ipv6_1":"2001:db8:85a3::8a2e:370:7334","largeint_1":1,"other_1":"1","smallint_1":1,"string_1":"1","tinyint_1":1}
+{"other_1":"1"}
+{"tinyint_1":1}
+{"tinyint_1":2}
+{"smallint_1":1}
+{"smallint_1":2}
+{"smallint_1":3}
+{"int_1":1}
+{"int_1":2}
+{"int_1":3}
+{"int_1":4}
+{"bigint_1":1}
+{"bigint_1":2}
+{"bigint_1":3}
+{"bigint_1":4}
+{"bigint_1":5}
+{"largeint_1":1}
+{"largeint_1":2}
+{"largeint_1":3}
+{"largeint_1":4}
+{"largeint_1":5}
+{"largeint_1":6}
+{"char_1":"1"}
+{"char_1":"2"}
+{"char_1":"3"}
+{"char_1":"4"}
+{"char_1":"5"}
+{"char_1":"6"}
+{"char_1":"7"}
+{"string_1":"1"}
+{"string_1":"2"}
+{"string_1":"3"}
+{"string_1":"4"}
+{"string_1":"5"}
+{"string_1":"6"}
+{"string_1":"7"}
+{"string_1":"8"}
+{"float_1":1.12}
+{"float_1":2.12}
+{"float_1":3.12}
+{"float_1":4.12}
+{"float_1":5.12}
+{"float_1":6.12}
+{"float_1":7.12}
+{"float_1":8.12}
+{"double_1":1.12}
+{"double_1":2.12}
+{"double_1":3.12}
+{"double_1":4.12}
+{"double_1":5.12}
+{"double_1":6.12}
+{"double_1":7.12}
+{"double_1":8.12}
+{"double_1":9.12}
+{"decimal32_1":1.12}
+{"decimal32_1":2.12}
+{"decimal32_1":3.12}
+{"decimal32_1":4.12}
+{"decimal32_1":5.12}
+{"decimal32_1":6.12}
+{"decimal32_1":7.12}
+{"decimal32_1":8.12}
+{"decimal32_1":9.12}
+{"decimal32_1":10.12}
+{"decimal64_1":1.120000000}
+{"decimal64_1":2.120000000}
+{"decimal64_1":3.120000000}
+{"decimal64_1":4.120000000}
+{"decimal64_1":5.120000000}
+{"decimal64_1":6.120000000}
+{"decimal64_1":7.120000000}
+{"decimal64_1":8.120000000}
+{"decimal64_1":9.120000000}
+{"decimal64_1":10.120000000}
+{"decimal64_1":11.120000000}
+{"decimal128_1":1.120000000}
+{"decimal128_1":2.120000000}
+{"decimal128_1":3.120000000}
+{"decimal128_1":4.120000000}
+{"decimal128_1":5.120000000}
+{"decimal128_1":6.120000000}
+{"decimal128_1":7.120000000}
+{"decimal128_1":8.120000000}
+{"decimal128_1":9.120000000}
+{"decimal128_1":10.120000000}
+{"decimal128_1":11.120000000}
+{"decimal128_1":12.120000000}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{"datetime_1":"2021-01-01 00:00:00"}
+{"datetime_1":"2021-01-01 00:00:01"}
+{"datetime_1":"2021-01-01 00:00:02"}
+{"datetime_1":"2021-01-01 00:00:03"}
+{"datetime_1":"2021-01-01 00:00:04"}
+{"datetime_1":"2021-01-01 00:00:05"}
+{"datetime_1":"2021-01-01 00:00:06"}
+{"datetime_1":"2021-01-01 00:00:07"}
+{"datetime_1":"2021-01-01 00:00:08"}
+{"datetime_1":"2021-01-01 00:00:09"}
+{"datetime_1":"2021-01-01 00:00:10"}
+{"datetime_1":"2021-01-01 00:00:07"}
+{"datetime_1":"2021-01-01 00:00:08"}
+{"date_1":"2021-01-01"}
+{"date_1":"2021-01-02"}
+{"date_1":"2021-01-03"}
+{"date_1":"2021-01-04"}
+{"date_1":"2021-01-05"}
+{"date_1":"2021-01-06"}
+{"date_1":"2021-01-07"}
+{"date_1":"2021-01-08"}
+{"date_1":"2021-01-09"}
+{"date_1":"2021-01-10"}
+{"date_1":"2021-01-07"}
+{"date_1":"2021-01-08"}
+{"date_1":"2021-01-09"}
+{"date_1":"2021-01-10"}
+{"ipv4_1":"192.168.1.1"}
+{"ipv4_1":"192.168.1.2"}
+{"ipv4_1":"192.168.1.3"}
+{"ipv4_1":"192.168.1.4"}
+{"ipv4_1":"192.168.1.5"}
+{"ipv4_1":"192.168.1.6"}
+{"ipv4_1":"192.168.1.7"}
+{"ipv4_1":"192.168.1.8"}
+{"ipv4_1":"192.168.1.9"}
+{"ipv4_1":"192.168.1.10"}
+{"ipv4_1":"192.168.1.7"}
+{"ipv4_1":"192.168.1.8"}
+{"ipv4_1":"192.168.1.9"}
+{"ipv4_1":"192.168.1.10"}
+{"ipv4_1":"192.168.1.11"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7334"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7335"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7336"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7337"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7338"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7339"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733a"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733b"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733c"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733d"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733e"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733f"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7340"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7341"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733f"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7340"}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_tinyint_1":[1]}
+{"array_tinyint_1":[2]}
+{"array_tinyint_1":[3]}
+{"array_tinyint_1":[4]}
+{"array_tinyint_1":[5]}
+{"array_tinyint_1":[6]}
+{"array_tinyint_1":[7]}
+{"array_tinyint_1":[8]}
+{"array_tinyint_1":[9]}
+{"array_tinyint_1":[10]}
+{"array_tinyint_1":[11]}
+{"array_tinyint_1":[12]}
+{"array_tinyint_1":[13]}
+{"array_tinyint_1":[14]}
+{"array_tinyint_1":[15]}
+{"array_tinyint_1":[16]}
+{"array_tinyint_1":[17]}
+{"array_tinyint_1":[18]}
+{"array_smallint_1":[1]}
+{"array_smallint_1":[2, null]}
+{"array_smallint_1":[3]}
+{"array_smallint_1":[4]}
+{"array_smallint_1":[5]}
+{"array_smallint_1":[6]}
+{"array_smallint_1":[7]}
+{"array_smallint_1":[8]}
+{"array_smallint_1":[9]}
+{"array_smallint_1":[10]}
+{"array_smallint_1":[11]}
+{"array_smallint_1":[12]}
+{"array_smallint_1":[13]}
+{"array_smallint_1":[14]}
+{"array_smallint_1":[15]}
+{"array_smallint_1":[16]}
+{"array_smallint_1":[17]}
+{"array_smallint_1":[18]}
+{"array_smallint_1":[19]}
+{"array_int_1":[1]}
+{"array_int_1":[2]}
+{"array_int_1":[3]}
+{"array_int_1":[4]}
+{"array_int_1":[5]}
+{"array_int_1":[6]}
+{"array_int_1":[7]}
+{"array_int_1":[8]}
+{"array_int_1":[9]}
+{"array_int_1":[10]}
+{"array_int_1":[11]}
+{"array_int_1":[12]}
+{"array_int_1":[13]}
+{"array_int_1":[14]}
+{"array_int_1":[15]}
+{"array_int_1":[16]}
+{"array_int_1":[17]}
+{"array_int_1":[18]}
+{"array_int_1":[19]}
+{"array_int_1":[20]}
+{"array_bigint_1":[1]}
+{"array_bigint_1":[2]}
+{"array_bigint_1":[3]}
+{"array_bigint_1":[4]}
+{"array_bigint_1":[5]}
+{"array_bigint_1":[6]}
+{"array_bigint_1":[7]}
+{"array_bigint_1":[8]}
+{"array_bigint_1":[9]}
+{"array_bigint_1":[10]}
+{"array_bigint_1":[11]}
+{"array_bigint_1":[12]}
+{"array_bigint_1":[13]}
+{"array_bigint_1":[14]}
+{"array_bigint_1":[15]}
+{"array_bigint_1":[16]}
+{"array_bigint_1":[17]}
+{"array_bigint_1":[18]}
+{"array_bigint_1":[19]}
+{"array_bigint_1":[20]}
+{"array_bigint_1":[21]}
+{"array_largeint_1":[1, null]}
+{"array_largeint_1":[2]}
+{"array_largeint_1":[3]}
+{"array_largeint_1":[4]}
+{"array_largeint_1":[5]}
+{"array_largeint_1":[6]}
+{"array_largeint_1":[7]}
+{"array_largeint_1":[8]}
+{"array_largeint_1":[9]}
+{"array_largeint_1":[10]}
+{"array_largeint_1":[11]}
+{"array_largeint_1":[12]}
+{"array_largeint_1":[13]}
+{"array_largeint_1":[14]}
+{"array_largeint_1":[15]}
+{"array_largeint_1":[16]}
+{"array_largeint_1":[17]}
+{"array_largeint_1":[18]}
+{"array_largeint_1":[19]}
+{"array_largeint_1":[20]}
+{"array_largeint_1":[21]}
+{"array_largeint_1":[22]}
+{"array_char_1":["1"]}
+{"array_char_1":["2"]}
+{"array_char_1":["3"]}
+{"array_char_1":["4"]}
+{"array_char_1":["5"]}
+{"array_char_1":["6"]}
+{"array_char_1":["7"]}
+{"array_char_1":["8"]}
+{"array_char_1":["9"]}
+{"array_char_1":["10"]}
+{"array_char_1":["11"]}
+{"array_char_1":["12"]}
+{"array_char_1":["13"]}
+{"array_char_1":["14"]}
+{"array_char_1":["15"]}
+{"array_char_1":["16"]}
+{"array_char_1":["17"]}
+{"array_char_1":["18"]}
+{"array_char_1":["19"]}
+{"array_char_1":["20"]}
+{"array_char_1":["21"]}
+{"array_char_1":["22"]}
+{"array_char_1":["23"]}
+{"array_string_1":["1"]}
+{"array_string_1":["2"]}
+{"array_string_1":["3"]}
+{"array_string_1":["4"]}
+{"array_string_1":["5"]}
+{"array_string_1":["6"]}
+{"array_string_1":["7"]}
+{"array_string_1":["8"]}
+{"array_string_1":["9"]}
+{"array_string_1":["10"]}
+{"array_string_1":["11"]}
+{"array_string_1":["12"]}
+{"array_string_1":["13"]}
+{"array_string_1":["14"]}
+{"array_string_1":["15"]}
+{"array_string_1":["16"]}
+{"array_string_1":["17"]}
+{"array_string_1":["18"]}
+{"array_string_1":["19"]}
+{"array_string_1":["20"]}
+{"array_string_1":["21"]}
+{"array_string_1":["22"]}
+{"array_string_1":["23"]}
+{"array_string_1":["24"]}
+{"array_float_1":[1.12]}
+{"array_float_1":[2.12]}
+{"array_float_1":[3.12]}
+{"array_float_1":[4.12]}
+{"array_float_1":[5.12]}
+{"array_float_1":[6.12]}
+{"array_float_1":[7.12]}
+{"array_float_1":[8.12]}
+{"array_float_1":[9.12]}
+{"array_float_1":[10.12]}
+{"array_float_1":[11.12]}
+{"array_float_1":[12.12]}
+{"array_float_1":[13.12]}
+{"array_float_1":[14.12]}
+{"array_float_1":[15.12]}
+{"array_float_1":[16.12]}
+{"array_float_1":[17.12]}
+{"array_float_1":[18.12]}
+{"array_float_1":[19.12]}
+{"array_float_1":[20.12]}
+{"array_float_1":[21.12]}
+{"array_float_1":[22.12]}
+{"array_float_1":[23.12]}
+{"array_float_1":[24.12]}
+{"array_float_1":[25.12]}
+{"array_double_1":[1.12]}
+{"array_double_1":[2.12]}
+{"array_double_1":[3.12]}
+{"array_double_1":[4.12]}
+{"array_double_1":[5.12]}
+{"array_double_1":[6.12]}
+{"array_double_1":[7.12]}
+{"array_double_1":[8.12]}
+{"array_double_1":[9.12]}
+{"array_double_1":[10.12]}
+{"array_double_1":[11.12]}
+{"array_double_1":[12.12]}
+{"array_double_1":[13.12]}
+{"array_double_1":[14.12]}
+{"array_double_1":[15.12]}
+{"array_double_1":[16.12]}
+{"array_double_1":[17.12]}
+{"array_double_1":[18.12]}
+{"array_double_1":[19.12]}
+{"array_double_1":[20.12]}
+{"array_double_1":[21.12]}
+{"array_double_1":[22.12]}
+{"array_double_1":[23.12]}
+{"array_double_1":[24.12]}
+{"array_double_1":[25.12]}
+{"array_double_1":[26.12]}
+{"array_decimal32_1":[1.12]}
+{"array_decimal32_1":[2.12]}
+{"array_decimal32_1":[3.12]}
+{"array_decimal32_1":[4.12]}
+{"array_decimal32_1":[5.12]}
+{"array_decimal32_1":[6.12]}
+{"array_decimal32_1":[7.12]}
+{"array_decimal32_1":[8.12]}
+{"array_decimal32_1":[9.12]}
+{"array_decimal32_1":[10.12]}
+{"array_decimal32_1":[11.12]}
+{"array_decimal32_1":[12.12]}
+{"array_decimal32_1":[13.12]}
+{"array_decimal32_1":[14.12]}
+{"array_decimal32_1":[15.12]}
+{"array_decimal32_1":[16.12]}
+{"array_decimal32_1":[17.12]}
+{"array_decimal32_1":[18.12]}
+{"array_decimal32_1":[19.12]}
+{"array_decimal32_1":[20.12]}
+{"array_decimal32_1":[21.12]}
+{"array_decimal32_1":[22.12]}
+{"array_decimal32_1":[23.12]}
+{"array_decimal32_1":[24.12]}
+{"array_decimal32_1":[25.12]}
+{"array_decimal32_1":[26.12]}
+{"array_decimal32_1":[27.12]}
+{"array_decimal64_1":[1.120000000]}
+{"array_decimal64_1":[2.120000000]}
+{"array_decimal64_1":[3.120000000]}
+{"array_decimal64_1":[4.120000000]}
+{"array_decimal64_1":[5.120000000]}
+{"array_decimal64_1":[6.120000000]}
+{"array_decimal64_1":[7.120000000]}
+{"array_decimal64_1":[8.120000000]}
+{"array_decimal64_1":[9.120000000]}
+{"array_decimal64_1":[10.120000000]}
+{"array_decimal64_1":[11.120000000]}
+{"array_decimal64_1":[12.120000000]}
+{"array_decimal64_1":[13.120000000]}
+{"array_decimal64_1":[14.120000000]}
+{"array_decimal64_1":[15.120000000]}
+{"array_decimal64_1":[16.120000000]}
+{"array_decimal64_1":[17.120000000]}
+{"array_decimal64_1":[18.120000000]}
+{"array_decimal64_1":[19.120000000]}
+{"array_decimal64_1":[20.120000000]}
+{"array_decimal64_1":[21.120000000]}
+{"array_decimal64_1":[22.120000000]}
+{"array_decimal64_1":[23.120000000]}
+{"array_decimal64_1":[24.120000000]}
+{"array_decimal64_1":[25.120000000]}
+{"array_decimal64_1":[26.120000000]}
+{"array_decimal64_1":[27.120000000]}
+{"array_decimal64_1":[28.120000000]}
+{"array_decimal128_1":[1.120000000]}
+{"array_decimal128_1":[2.120000000]}
+{"array_decimal128_1":[3.120000000]}
+{"array_decimal128_1":[4.120000000]}
+{"array_decimal128_1":[5.120000000]}
+{"array_decimal128_1":[6.120000000]}
+{"array_decimal128_1":[7.120000000]}
+{"array_decimal128_1":[8.120000000]}
+{"array_decimal128_1":[9.120000000]}
+{"array_decimal128_1":[10.120000000]}
+{"array_decimal128_1":[11.120000000]}
+{"array_decimal128_1":[12.120000000]}
+{"array_decimal128_1":[13.120000000]}
+{"array_decimal128_1":[14.120000000]}
+{"array_decimal128_1":[15.120000000]}
+{"array_decimal128_1":[16.120000000]}
+{"array_decimal128_1":[17.120000000]}
+{"array_decimal128_1":[18.120000000]}
+{"array_decimal128_1":[19.120000000]}
+{"array_decimal128_1":[20.120000000]}
+{"array_decimal128_1":[21.120000000]}
+{"array_decimal128_1":[22.120000000]}
+{"array_decimal128_1":[23.120000000]}
+{"array_decimal128_1":[24.120000000]}
+{"array_decimal128_1":[25.120000000]}
+{"array_decimal128_1":[26.120000000]}
+{"array_decimal128_1":[27.120000000]}
+{"array_decimal128_1":[28.120000000]}
+{"array_decimal128_1":[29.120000000]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_datetime_1":["2021-01-01 00:00:00"]}
+{"array_datetime_1":["2021-01-01 00:00:01"]}
+{"array_datetime_1":["2021-01-01 00:00:02"]}
+{"array_datetime_1":["2021-01-01 00:00:03"]}
+{"array_datetime_1":["2021-01-01 00:00:04"]}
+{"array_datetime_1":["2021-01-01 00:00:05"]}
+{"array_datetime_1":["2021-01-01 00:00:06"]}
+{"array_datetime_1":["2021-01-01 00:00:07"]}
+{"array_datetime_1":["2021-01-01 00:00:08"]}
+{"array_datetime_1":["2021-01-01 00:00:09"]}
+{"array_datetime_1":["2021-01-01 00:00:10"]}
+{"array_datetime_1":["2021-01-01 00:00:07"]}
+{"array_datetime_1":["2021-01-01 00:00:08"]}
+{"array_datetime_1":["2021-01-01 00:00:09"]}
+{"array_datetime_1":["2021-01-01 00:00:10"]}
+{"array_datetime_1":["2021-01-01 00:00:07"]}
+{"array_datetime_1":["2021-01-01 00:00:08"]}
+{"array_datetime_1":["2021-01-01 00:00:09"]}
+{"array_datetime_1":["2021-01-01 00:00:10"]}
+{"array_datetime_1":["2021-01-01 00:00:07"]}
+{"array_datetime_1":["2021-01-01 00:00:08"]}
+{"array_datetime_1":["2021-01-01 00:00:09"]}
+{"array_datetime_1":["2021-01-01 00:00:10"]}
+{"array_datetime_1":["2021-01-01 00:00:07"]}
+{"array_datetime_1":["2021-01-01 00:00:08"]}
+{"array_datetime_1":["2021-01-01 00:00:09"]}
+{"array_datetime_1":["2021-01-01 00:00:10"]}
+{"array_datetime_1":["2021-01-01 00:00:07"]}
+{"array_datetime_1":["2021-01-01 00:00:08"]}
+{"array_datetime_1":["2021-01-01 00:00:09"]}
+{"array_datetime_1":["2021-01-01 00:00:10"]}
+{"array_date_1":["2021-01-01"]}
+{"array_date_1":["2021-01-02"]}
+{"array_date_1":["2021-01-03"]}
+{"array_date_1":["2021-01-04"]}
+{"array_date_1":["2021-01-05"]}
+{"array_date_1":["2021-01-06"]}
+{"array_date_1":["2021-01-07"]}
+{"array_date_1":["2021-01-08"]}
+{"array_date_1":["2021-01-09"]}
+{"array_date_1":["2021-01-10"]}
+{"array_date_1":["2021-01-07"]}
+{"array_date_1":["2021-01-08"]}
+{"array_date_1":["2021-01-09"]}
+{"array_date_1":["2021-01-10"]}
+{"array_date_1":["2021-01-07"]}
+{"array_date_1":["2021-01-08"]}
+{"array_date_1":["2021-01-09"]}
+{"array_date_1":["2021-01-10"]}
+{"array_date_1":["2021-01-07"]}
+{"array_date_1":["2021-01-08"]}
+{"array_date_1":["2021-01-09"]}
+{"array_date_1":["2021-01-10"]}
+{"array_date_1":["2021-01-07"]}
+{"array_date_1":["2021-01-08"]}
+{"array_date_1":["2021-01-09"]}
+{"array_date_1":["2021-01-10"]}
+{"array_date_1":["2021-01-07"]}
+{"array_date_1":["2021-01-08"]}
+{"array_date_1":["2021-01-09"]}
+{"array_date_1":["2021-01-10"]}
+{"array_date_1":["2021-01-07"]}
+{"array_date_1":["2021-01-08"]}
+{"array_ipv4_1":["192.168.1.1"]}
+{"array_ipv4_1":["192.168.1.2"]}
+{"array_ipv4_1":["192.168.1.3"]}
+{"array_ipv4_1":["192.168.1.4"]}
+{"array_ipv4_1":["192.168.1.5"]}
+{"array_ipv4_1":["192.168.1.6"]}
+{"array_ipv4_1":["192.168.1.7"]}
+{"array_ipv4_1":["192.168.1.8"]}
+{"array_ipv4_1":["192.168.1.9"]}
+{"array_ipv4_1":["192.168.1.10"]}
+{"array_ipv4_1":["192.168.1.7"]}
+{"array_ipv4_1":["192.168.1.8"]}
+{"array_ipv4_1":["192.168.1.9"]}
+{"array_ipv4_1":["192.168.1.10"]}
+{"array_ipv4_1":["192.168.1.7"]}
+{"array_ipv4_1":["192.168.1.8"]}
+{"array_ipv4_1":["192.168.1.9"]}
+{"array_ipv4_1":["192.168.1.10"]}
+{"array_ipv4_1":["192.168.1.7"]}
+{"array_ipv4_1":["192.168.1.8"]}
+{"array_ipv4_1":["192.168.1.9"]}
+{"array_ipv4_1":["192.168.1.10"]}
+{"array_ipv4_1":["192.168.1.7"]}
+{"array_ipv4_1":["192.168.1.8"]}
+{"array_ipv4_1":["192.168.1.9"]}
+{"array_ipv4_1":["192.168.1.10"]}
+{"array_ipv4_1":["192.168.1.7"]}
+{"array_ipv4_1":["192.168.1.8"]}
+{"array_ipv4_1":["192.168.1.9"]}
+{"array_ipv4_1":["192.168.1.10"]}
+{"array_ipv4_1":["192.168.1.7"]}
+{"array_ipv4_1":["192.168.1.8"]}
+{"array_ipv4_1":["192.168.1.9"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:7334"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:7335"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:7336"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:7337"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:7338"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:7339"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:733a"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:733b"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:733c"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:733d"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:733e"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:733f"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:7340"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:7341"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:733f"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:7340"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:7341"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:733f"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:7340"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:7341"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:733f"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:7340"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:7341"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:733f"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:7340"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:7341"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:733f"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:7340"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:7341"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:733f"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:7340"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:7341"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:733f"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:7340"]}
+
+-- !sql_compaction_before --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.array_ipv6_1	array<ipv6>	Yes	false	\N	NONE
+var.other_1	text	Yes	false	\N	NONE
+
+-- !sql_compaction_after --
+id	bigint	No	true	\N	
+var	variant<'boolean_*':boolean,'tinyint_*':tinyint,'smallint_*':smallint,'int_*':int,'bigint_*':bigint,'largeint_*':largeint,'char_*':text,'string_*':text,'float_*':float,'double_*':double,'decimal32_*':decimalv3(8,2),'decimal64_*':decimalv3(16,9),'decimal128_*':decimalv3(36,9),'decimal256_*':decimalv3(70,60),'datetime_*':datetimev2(0),'date_*':datev2,'ipv4_*':ipv4,'ipv6_*':ipv6,'array_boolean_*':array<boolean>,'array_tinyint_*':array<tinyint>,'array_smallint_*':array<smallint>,'array_int_*':array<int>,'array_bigint_*':array<bigint>,'array_largeint_*':array<largeint>,'array_char_*':array<text>,'array_string_*':array<text>,'array_float_*':array<float>,'array_double_*':array<double>,'array_decimal32_*':array<decimalv3(8,2)>,'array_decimal64_*':array<decimalv3(16,9)>,'array_decimal128_*':array<decimalv3(36,9)>,'array_decimal256_*':array<decimalv3(70,60)>,'array_datetime_*':array<datetimev2(0)>,'array_date_*':array<datev2>,'array_ipv4_*':array<ipv4>,'array_ipv6_*':array<ipv6>,PROPERTIES ("variant_max_subcolumns_count" = "1","variant_enable_typed_paths_to_sparse" = "true")>	No	false	\N	NONE
+var.other_1	text	Yes	false	\N	NONE
+
+-- !sql --
+{"array_bigint_1":[1, null],"array_boolean_1":[1],"array_char_1":["1"],"array_date_1":["2021-01-01"],"array_datetime_1":["2021-01-01 00:00:00"],"array_decimal128_1":[1.120000000],"array_decimal256_1":[null],"array_decimal32_1":[1.12],"array_decimal64_1":[1.120000000],"array_double_1":[1.12],"array_float_1":[1.12],"array_int_1":[1, null],"array_ipv4_1":["192.168.1.1"],"array_ipv6_1":["2001:db8:85a3::8a2e:370:7334"],"array_largeint_1":[1, null],"array_smallint_1":[1, null],"array_string_1":["1"],"array_tinyint_1":[1, null],"bigint_1":1,"boolean_1":1,"char_1":"1","date_1":"2021-01-01","datetime_1":"2021-01-01 00:00:00","decimal128_1":1.120000000,"decimal32_1":1.12,"decimal64_1":1.120000000,"double_1":1.12,"float_1":1.12,"int_1":1,"ipv4_1":"192.168.1.1","ipv6_1":"2001:db8:85a3::8a2e:370:7334","largeint_1":1,"other_1":"1","smallint_1":1,"string_1":"1","tinyint_1":1}
+{"other_1":"1"}
+{"tinyint_1":1}
+{"tinyint_1":2}
+{"smallint_1":1}
+{"smallint_1":2}
+{"smallint_1":3}
+{"int_1":1}
+{"int_1":2}
+{"int_1":3}
+{"int_1":4}
+{"bigint_1":1}
+{"bigint_1":2}
+{"bigint_1":3}
+{"bigint_1":4}
+{"bigint_1":5}
+{"largeint_1":1}
+{"largeint_1":2}
+{"largeint_1":3}
+{"largeint_1":4}
+{"largeint_1":5}
+{"largeint_1":6}
+{"char_1":"1"}
+{"char_1":"2"}
+{"char_1":"3"}
+{"char_1":"4"}
+{"char_1":"5"}
+{"char_1":"6"}
+{"char_1":"7"}
+{"string_1":"1"}
+{"string_1":"2"}
+{"string_1":"3"}
+{"string_1":"4"}
+{"string_1":"5"}
+{"string_1":"6"}
+{"string_1":"7"}
+{"string_1":"8"}
+{"float_1":1.12}
+{"float_1":2.12}
+{"float_1":3.12}
+{"float_1":4.12}
+{"float_1":5.12}
+{"float_1":6.12}
+{"float_1":7.12}
+{"float_1":8.12}
+{"double_1":1.12}
+{"double_1":2.12}
+{"double_1":3.12}
+{"double_1":4.12}
+{"double_1":5.12}
+{"double_1":6.12}
+{"double_1":7.12}
+{"double_1":8.12}
+{"double_1":9.12}
+{"decimal32_1":1.12}
+{"decimal32_1":2.12}
+{"decimal32_1":3.12}
+{"decimal32_1":4.12}
+{"decimal32_1":5.12}
+{"decimal32_1":6.12}
+{"decimal32_1":7.12}
+{"decimal32_1":8.12}
+{"decimal32_1":9.12}
+{"decimal32_1":10.12}
+{"decimal64_1":1.120000000}
+{"decimal64_1":2.120000000}
+{"decimal64_1":3.120000000}
+{"decimal64_1":4.120000000}
+{"decimal64_1":5.120000000}
+{"decimal64_1":6.120000000}
+{"decimal64_1":7.120000000}
+{"decimal64_1":8.120000000}
+{"decimal64_1":9.120000000}
+{"decimal64_1":10.120000000}
+{"decimal64_1":11.120000000}
+{"decimal128_1":1.120000000}
+{"decimal128_1":2.120000000}
+{"decimal128_1":3.120000000}
+{"decimal128_1":4.120000000}
+{"decimal128_1":5.120000000}
+{"decimal128_1":6.120000000}
+{"decimal128_1":7.120000000}
+{"decimal128_1":8.120000000}
+{"decimal128_1":9.120000000}
+{"decimal128_1":10.120000000}
+{"decimal128_1":11.120000000}
+{"decimal128_1":12.120000000}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{}
+{"datetime_1":"2021-01-01 00:00:00"}
+{"datetime_1":"2021-01-01 00:00:01"}
+{"datetime_1":"2021-01-01 00:00:02"}
+{"datetime_1":"2021-01-01 00:00:03"}
+{"datetime_1":"2021-01-01 00:00:04"}
+{"datetime_1":"2021-01-01 00:00:05"}
+{"datetime_1":"2021-01-01 00:00:06"}
+{"datetime_1":"2021-01-01 00:00:07"}
+{"datetime_1":"2021-01-01 00:00:08"}
+{"datetime_1":"2021-01-01 00:00:09"}
+{"datetime_1":"2021-01-01 00:00:10"}
+{"datetime_1":"2021-01-01 00:00:07"}
+{"datetime_1":"2021-01-01 00:00:08"}
+{"date_1":"2021-01-01"}
+{"date_1":"2021-01-02"}
+{"date_1":"2021-01-03"}
+{"date_1":"2021-01-04"}
+{"date_1":"2021-01-05"}
+{"date_1":"2021-01-06"}
+{"date_1":"2021-01-07"}
+{"date_1":"2021-01-08"}
+{"date_1":"2021-01-09"}
+{"date_1":"2021-01-10"}
+{"date_1":"2021-01-07"}
+{"date_1":"2021-01-08"}
+{"date_1":"2021-01-09"}
+{"date_1":"2021-01-10"}
+{"ipv4_1":"192.168.1.1"}
+{"ipv4_1":"192.168.1.2"}
+{"ipv4_1":"192.168.1.3"}
+{"ipv4_1":"192.168.1.4"}
+{"ipv4_1":"192.168.1.5"}
+{"ipv4_1":"192.168.1.6"}
+{"ipv4_1":"192.168.1.7"}
+{"ipv4_1":"192.168.1.8"}
+{"ipv4_1":"192.168.1.9"}
+{"ipv4_1":"192.168.1.10"}
+{"ipv4_1":"192.168.1.7"}
+{"ipv4_1":"192.168.1.8"}
+{"ipv4_1":"192.168.1.9"}
+{"ipv4_1":"192.168.1.10"}
+{"ipv4_1":"192.168.1.11"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7334"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7335"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7336"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7337"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7338"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7339"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733a"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733b"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733c"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733d"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733e"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733f"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7340"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7341"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:733f"}
+{"ipv6_1":"2001:db8:85a3::8a2e:370:7340"}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_boolean_1":[1]}
+{"array_boolean_1":[0]}
+{"array_tinyint_1":[1]}
+{"array_tinyint_1":[2]}
+{"array_tinyint_1":[3]}
+{"array_tinyint_1":[4]}
+{"array_tinyint_1":[5]}
+{"array_tinyint_1":[6]}
+{"array_tinyint_1":[7]}
+{"array_tinyint_1":[8]}
+{"array_tinyint_1":[9]}
+{"array_tinyint_1":[10]}
+{"array_tinyint_1":[11]}
+{"array_tinyint_1":[12]}
+{"array_tinyint_1":[13]}
+{"array_tinyint_1":[14]}
+{"array_tinyint_1":[15]}
+{"array_tinyint_1":[16]}
+{"array_tinyint_1":[17]}
+{"array_tinyint_1":[18]}
+{"array_smallint_1":[1]}
+{"array_smallint_1":[2, null]}
+{"array_smallint_1":[3]}
+{"array_smallint_1":[4]}
+{"array_smallint_1":[5]}
+{"array_smallint_1":[6]}
+{"array_smallint_1":[7]}
+{"array_smallint_1":[8]}
+{"array_smallint_1":[9]}
+{"array_smallint_1":[10]}
+{"array_smallint_1":[11]}
+{"array_smallint_1":[12]}
+{"array_smallint_1":[13]}
+{"array_smallint_1":[14]}
+{"array_smallint_1":[15]}
+{"array_smallint_1":[16]}
+{"array_smallint_1":[17]}
+{"array_smallint_1":[18]}
+{"array_smallint_1":[19]}
+{"array_int_1":[1]}
+{"array_int_1":[2]}
+{"array_int_1":[3]}
+{"array_int_1":[4]}
+{"array_int_1":[5]}
+{"array_int_1":[6]}
+{"array_int_1":[7]}
+{"array_int_1":[8]}
+{"array_int_1":[9]}
+{"array_int_1":[10]}
+{"array_int_1":[11]}
+{"array_int_1":[12]}
+{"array_int_1":[13]}
+{"array_int_1":[14]}
+{"array_int_1":[15]}
+{"array_int_1":[16]}
+{"array_int_1":[17]}
+{"array_int_1":[18]}
+{"array_int_1":[19]}
+{"array_int_1":[20]}
+{"array_bigint_1":[1]}
+{"array_bigint_1":[2]}
+{"array_bigint_1":[3]}
+{"array_bigint_1":[4]}
+{"array_bigint_1":[5]}
+{"array_bigint_1":[6]}
+{"array_bigint_1":[7]}
+{"array_bigint_1":[8]}
+{"array_bigint_1":[9]}
+{"array_bigint_1":[10]}
+{"array_bigint_1":[11]}
+{"array_bigint_1":[12]}
+{"array_bigint_1":[13]}
+{"array_bigint_1":[14]}
+{"array_bigint_1":[15]}
+{"array_bigint_1":[16]}
+{"array_bigint_1":[17]}
+{"array_bigint_1":[18]}
+{"array_bigint_1":[19]}
+{"array_bigint_1":[20]}
+{"array_bigint_1":[21]}
+{"array_largeint_1":[1, null]}
+{"array_largeint_1":[2]}
+{"array_largeint_1":[3]}
+{"array_largeint_1":[4]}
+{"array_largeint_1":[5]}
+{"array_largeint_1":[6]}
+{"array_largeint_1":[7]}
+{"array_largeint_1":[8]}
+{"array_largeint_1":[9]}
+{"array_largeint_1":[10]}
+{"array_largeint_1":[11]}
+{"array_largeint_1":[12]}
+{"array_largeint_1":[13]}
+{"array_largeint_1":[14]}
+{"array_largeint_1":[15]}
+{"array_largeint_1":[16]}
+{"array_largeint_1":[17]}
+{"array_largeint_1":[18]}
+{"array_largeint_1":[19]}
+{"array_largeint_1":[20]}
+{"array_largeint_1":[21]}
+{"array_largeint_1":[22]}
+{"array_char_1":["1"]}
+{"array_char_1":["2"]}
+{"array_char_1":["3"]}
+{"array_char_1":["4"]}
+{"array_char_1":["5"]}
+{"array_char_1":["6"]}
+{"array_char_1":["7"]}
+{"array_char_1":["8"]}
+{"array_char_1":["9"]}
+{"array_char_1":["10"]}
+{"array_char_1":["11"]}
+{"array_char_1":["12"]}
+{"array_char_1":["13"]}
+{"array_char_1":["14"]}
+{"array_char_1":["15"]}
+{"array_char_1":["16"]}
+{"array_char_1":["17"]}
+{"array_char_1":["18"]}
+{"array_char_1":["19"]}
+{"array_char_1":["20"]}
+{"array_char_1":["21"]}
+{"array_char_1":["22"]}
+{"array_char_1":["23"]}
+{"array_string_1":["1"]}
+{"array_string_1":["2"]}
+{"array_string_1":["3"]}
+{"array_string_1":["4"]}
+{"array_string_1":["5"]}
+{"array_string_1":["6"]}
+{"array_string_1":["7"]}
+{"array_string_1":["8"]}
+{"array_string_1":["9"]}
+{"array_string_1":["10"]}
+{"array_string_1":["11"]}
+{"array_string_1":["12"]}
+{"array_string_1":["13"]}
+{"array_string_1":["14"]}
+{"array_string_1":["15"]}
+{"array_string_1":["16"]}
+{"array_string_1":["17"]}
+{"array_string_1":["18"]}
+{"array_string_1":["19"]}
+{"array_string_1":["20"]}
+{"array_string_1":["21"]}
+{"array_string_1":["22"]}
+{"array_string_1":["23"]}
+{"array_string_1":["24"]}
+{"array_float_1":[1.12]}
+{"array_float_1":[2.12]}
+{"array_float_1":[3.12]}
+{"array_float_1":[4.12]}
+{"array_float_1":[5.12]}
+{"array_float_1":[6.12]}
+{"array_float_1":[7.12]}
+{"array_float_1":[8.12]}
+{"array_float_1":[9.12]}
+{"array_float_1":[10.12]}
+{"array_float_1":[11.12]}
+{"array_float_1":[12.12]}
+{"array_float_1":[13.12]}
+{"array_float_1":[14.12]}
+{"array_float_1":[15.12]}
+{"array_float_1":[16.12]}
+{"array_float_1":[17.12]}
+{"array_float_1":[18.12]}
+{"array_float_1":[19.12]}
+{"array_float_1":[20.12]}
+{"array_float_1":[21.12]}
+{"array_float_1":[22.12]}
+{"array_float_1":[23.12]}
+{"array_float_1":[24.12]}
+{"array_float_1":[25.12]}
+{"array_double_1":[1.12]}
+{"array_double_1":[2.12]}
+{"array_double_1":[3.12]}
+{"array_double_1":[4.12]}
+{"array_double_1":[5.12]}
+{"array_double_1":[6.12]}
+{"array_double_1":[7.12]}
+{"array_double_1":[8.12]}
+{"array_double_1":[9.12]}
+{"array_double_1":[10.12]}
+{"array_double_1":[11.12]}
+{"array_double_1":[12.12]}
+{"array_double_1":[13.12]}
+{"array_double_1":[14.12]}
+{"array_double_1":[15.12]}
+{"array_double_1":[16.12]}
+{"array_double_1":[17.12]}
+{"array_double_1":[18.12]}
+{"array_double_1":[19.12]}
+{"array_double_1":[20.12]}
+{"array_double_1":[21.12]}
+{"array_double_1":[22.12]}
+{"array_double_1":[23.12]}
+{"array_double_1":[24.12]}
+{"array_double_1":[25.12]}
+{"array_double_1":[26.12]}
+{"array_decimal32_1":[1.12]}
+{"array_decimal32_1":[2.12]}
+{"array_decimal32_1":[3.12]}
+{"array_decimal32_1":[4.12]}
+{"array_decimal32_1":[5.12]}
+{"array_decimal32_1":[6.12]}
+{"array_decimal32_1":[7.12]}
+{"array_decimal32_1":[8.12]}
+{"array_decimal32_1":[9.12]}
+{"array_decimal32_1":[10.12]}
+{"array_decimal32_1":[11.12]}
+{"array_decimal32_1":[12.12]}
+{"array_decimal32_1":[13.12]}
+{"array_decimal32_1":[14.12]}
+{"array_decimal32_1":[15.12]}
+{"array_decimal32_1":[16.12]}
+{"array_decimal32_1":[17.12]}
+{"array_decimal32_1":[18.12]}
+{"array_decimal32_1":[19.12]}
+{"array_decimal32_1":[20.12]}
+{"array_decimal32_1":[21.12]}
+{"array_decimal32_1":[22.12]}
+{"array_decimal32_1":[23.12]}
+{"array_decimal32_1":[24.12]}
+{"array_decimal32_1":[25.12]}
+{"array_decimal32_1":[26.12]}
+{"array_decimal32_1":[27.12]}
+{"array_decimal64_1":[1.120000000]}
+{"array_decimal64_1":[2.120000000]}
+{"array_decimal64_1":[3.120000000]}
+{"array_decimal64_1":[4.120000000]}
+{"array_decimal64_1":[5.120000000]}
+{"array_decimal64_1":[6.120000000]}
+{"array_decimal64_1":[7.120000000]}
+{"array_decimal64_1":[8.120000000]}
+{"array_decimal64_1":[9.120000000]}
+{"array_decimal64_1":[10.120000000]}
+{"array_decimal64_1":[11.120000000]}
+{"array_decimal64_1":[12.120000000]}
+{"array_decimal64_1":[13.120000000]}
+{"array_decimal64_1":[14.120000000]}
+{"array_decimal64_1":[15.120000000]}
+{"array_decimal64_1":[16.120000000]}
+{"array_decimal64_1":[17.120000000]}
+{"array_decimal64_1":[18.120000000]}
+{"array_decimal64_1":[19.120000000]}
+{"array_decimal64_1":[20.120000000]}
+{"array_decimal64_1":[21.120000000]}
+{"array_decimal64_1":[22.120000000]}
+{"array_decimal64_1":[23.120000000]}
+{"array_decimal64_1":[24.120000000]}
+{"array_decimal64_1":[25.120000000]}
+{"array_decimal64_1":[26.120000000]}
+{"array_decimal64_1":[27.120000000]}
+{"array_decimal64_1":[28.120000000]}
+{"array_decimal128_1":[1.120000000]}
+{"array_decimal128_1":[2.120000000]}
+{"array_decimal128_1":[3.120000000]}
+{"array_decimal128_1":[4.120000000]}
+{"array_decimal128_1":[5.120000000]}
+{"array_decimal128_1":[6.120000000]}
+{"array_decimal128_1":[7.120000000]}
+{"array_decimal128_1":[8.120000000]}
+{"array_decimal128_1":[9.120000000]}
+{"array_decimal128_1":[10.120000000]}
+{"array_decimal128_1":[11.120000000]}
+{"array_decimal128_1":[12.120000000]}
+{"array_decimal128_1":[13.120000000]}
+{"array_decimal128_1":[14.120000000]}
+{"array_decimal128_1":[15.120000000]}
+{"array_decimal128_1":[16.120000000]}
+{"array_decimal128_1":[17.120000000]}
+{"array_decimal128_1":[18.120000000]}
+{"array_decimal128_1":[19.120000000]}
+{"array_decimal128_1":[20.120000000]}
+{"array_decimal128_1":[21.120000000]}
+{"array_decimal128_1":[22.120000000]}
+{"array_decimal128_1":[23.120000000]}
+{"array_decimal128_1":[24.120000000]}
+{"array_decimal128_1":[25.120000000]}
+{"array_decimal128_1":[26.120000000]}
+{"array_decimal128_1":[27.120000000]}
+{"array_decimal128_1":[28.120000000]}
+{"array_decimal128_1":[29.120000000]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_decimal256_1":[null]}
+{"array_datetime_1":["2021-01-01 00:00:00"]}
+{"array_datetime_1":["2021-01-01 00:00:01"]}
+{"array_datetime_1":["2021-01-01 00:00:02"]}
+{"array_datetime_1":["2021-01-01 00:00:03"]}
+{"array_datetime_1":["2021-01-01 00:00:04"]}
+{"array_datetime_1":["2021-01-01 00:00:05"]}
+{"array_datetime_1":["2021-01-01 00:00:06"]}
+{"array_datetime_1":["2021-01-01 00:00:07"]}
+{"array_datetime_1":["2021-01-01 00:00:08"]}
+{"array_datetime_1":["2021-01-01 00:00:09"]}
+{"array_datetime_1":["2021-01-01 00:00:10"]}
+{"array_datetime_1":["2021-01-01 00:00:07"]}
+{"array_datetime_1":["2021-01-01 00:00:08"]}
+{"array_datetime_1":["2021-01-01 00:00:09"]}
+{"array_datetime_1":["2021-01-01 00:00:10"]}
+{"array_datetime_1":["2021-01-01 00:00:07"]}
+{"array_datetime_1":["2021-01-01 00:00:08"]}
+{"array_datetime_1":["2021-01-01 00:00:09"]}
+{"array_datetime_1":["2021-01-01 00:00:10"]}
+{"array_datetime_1":["2021-01-01 00:00:07"]}
+{"array_datetime_1":["2021-01-01 00:00:08"]}
+{"array_datetime_1":["2021-01-01 00:00:09"]}
+{"array_datetime_1":["2021-01-01 00:00:10"]}
+{"array_datetime_1":["2021-01-01 00:00:07"]}
+{"array_datetime_1":["2021-01-01 00:00:08"]}
+{"array_datetime_1":["2021-01-01 00:00:09"]}
+{"array_datetime_1":["2021-01-01 00:00:10"]}
+{"array_datetime_1":["2021-01-01 00:00:07"]}
+{"array_datetime_1":["2021-01-01 00:00:08"]}
+{"array_datetime_1":["2021-01-01 00:00:09"]}
+{"array_datetime_1":["2021-01-01 00:00:10"]}
+{"array_date_1":["2021-01-01"]}
+{"array_date_1":["2021-01-02"]}
+{"array_date_1":["2021-01-03"]}
+{"array_date_1":["2021-01-04"]}
+{"array_date_1":["2021-01-05"]}
+{"array_date_1":["2021-01-06"]}
+{"array_date_1":["2021-01-07"]}
+{"array_date_1":["2021-01-08"]}
+{"array_date_1":["2021-01-09"]}
+{"array_date_1":["2021-01-10"]}
+{"array_date_1":["2021-01-07"]}
+{"array_date_1":["2021-01-08"]}
+{"array_date_1":["2021-01-09"]}
+{"array_date_1":["2021-01-10"]}
+{"array_date_1":["2021-01-07"]}
+{"array_date_1":["2021-01-08"]}
+{"array_date_1":["2021-01-09"]}
+{"array_date_1":["2021-01-10"]}
+{"array_date_1":["2021-01-07"]}
+{"array_date_1":["2021-01-08"]}
+{"array_date_1":["2021-01-09"]}
+{"array_date_1":["2021-01-10"]}
+{"array_date_1":["2021-01-07"]}
+{"array_date_1":["2021-01-08"]}
+{"array_date_1":["2021-01-09"]}
+{"array_date_1":["2021-01-10"]}
+{"array_date_1":["2021-01-07"]}
+{"array_date_1":["2021-01-08"]}
+{"array_date_1":["2021-01-09"]}
+{"array_date_1":["2021-01-10"]}
+{"array_date_1":["2021-01-07"]}
+{"array_date_1":["2021-01-08"]}
+{"array_ipv4_1":["192.168.1.1"]}
+{"array_ipv4_1":["192.168.1.2"]}
+{"array_ipv4_1":["192.168.1.3"]}
+{"array_ipv4_1":["192.168.1.4"]}
+{"array_ipv4_1":["192.168.1.5"]}
+{"array_ipv4_1":["192.168.1.6"]}
+{"array_ipv4_1":["192.168.1.7"]}
+{"array_ipv4_1":["192.168.1.8"]}
+{"array_ipv4_1":["192.168.1.9"]}
+{"array_ipv4_1":["192.168.1.10"]}
+{"array_ipv4_1":["192.168.1.7"]}
+{"array_ipv4_1":["192.168.1.8"]}
+{"array_ipv4_1":["192.168.1.9"]}
+{"array_ipv4_1":["192.168.1.10"]}
+{"array_ipv4_1":["192.168.1.7"]}
+{"array_ipv4_1":["192.168.1.8"]}
+{"array_ipv4_1":["192.168.1.9"]}
+{"array_ipv4_1":["192.168.1.10"]}
+{"array_ipv4_1":["192.168.1.7"]}
+{"array_ipv4_1":["192.168.1.8"]}
+{"array_ipv4_1":["192.168.1.9"]}
+{"array_ipv4_1":["192.168.1.10"]}
+{"array_ipv4_1":["192.168.1.7"]}
+{"array_ipv4_1":["192.168.1.8"]}
+{"array_ipv4_1":["192.168.1.9"]}
+{"array_ipv4_1":["192.168.1.10"]}
+{"array_ipv4_1":["192.168.1.7"]}
+{"array_ipv4_1":["192.168.1.8"]}
+{"array_ipv4_1":["192.168.1.9"]}
+{"array_ipv4_1":["192.168.1.10"]}
+{"array_ipv4_1":["192.168.1.7"]}
+{"array_ipv4_1":["192.168.1.8"]}
+{"array_ipv4_1":["192.168.1.9"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:7334"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:7335"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:7336"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:7337"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:7338"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:7339"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:733a"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:733b"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:733c"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:733d"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:733e"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:733f"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:7340"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:7341"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:733f"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:7340"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:7341"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:733f"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:7340"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:7341"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:733f"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:7340"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:7341"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:733f"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:7340"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:7341"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:733f"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:7340"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:7341"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:733f"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:7340"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:7341"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:733f"]}
+{"array_ipv6_1":["2001:db8:85a3::8a2e:370:7340"]}
+{"other_1":"1"}
+{"other_1":"2"}
+{"other_1":"3"}
+{"other_1":"4"}
+{"other_1":"5"}
+{"other_1":"6"}
+{"other_1":"7"}
+{"other_1":"8"}
+{"other_1":"9"}
+{"other_1":"10"}
+{"other_1":"11"}
+{"other_1":"12"}
+{"other_1":"13"}
+{"other_1":"14"}
+{"other_1":"15"}
+{"other_1":"16"}
+{"other_1":"17"}
+{"other_1":"18"}
+{"other_1":"19"}
+{"other_1":"20"}
+{"other_1":"21"}
+{"other_1":"22"}
+{"other_1":"23"}
+{"other_1":"24"}
+{"other_1":"25"}
+{"other_1":"26"}
+{"other_1":"27"}
+{"other_1":"28"}
+{"other_1":"29"}
+{"other_1":"30"}
+{"other_1":"31"}
+{"other_1":"32"}
+{"other_1":"33"}
+{"other_1":"34"}
+{"other_1":"35"}
+
diff --git a/regression-test/data/variant_p0/predefine/test_custom_analyzer.out b/regression-test/data/variant_p0/predefine/test_custom_analyzer.out
new file mode 100644
index 0000000..0698c95
--- /dev/null
+++ b/regression-test/data/variant_p0/predefine/test_custom_analyzer.out
@@ -0,0 +1,43 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !tokenize_sql --
+[{\n        "token": "србија херцеговина щучин гурзуф  ψ4  босна"\n    }]
+
+-- !tokenize_sql --
+[{\n        "token": "wasted…again"\n    }]
+
+-- !tokenize_sql --
+[{\n        "token": "♯p-complete"\n    }]
+
+-- !tokenize_sql --
+[{\n        "token": "a∴a∴"\n    }]
+
+-- !tokenize_sql --
+[{\n        "token": "rx j1242−11"\n    }]
+
+-- !tokenize_sql --
+[{\n        "token": "1080º avalanche"\n    }]
+
+-- !tokenize_sql --
+[{\n        "token": "clayfighter"\n    }, {\n        "token": "63"\n    }]
+
+-- !tokenize_sql --
+[{\n        "token": "β"\n    }, {\n        "token": "carbon"\n    }, {\n        "token": "nitride"\n    }]
+
+-- !tokenize_sql --
+[{\n        "token": "ǁuǁe"\n    }, {\n        "token": "language"\n    }]
+
+-- !sql --
+1	abcDEF
+
+-- !sql --
+2	中国人民
+
+-- !sql --
+3	ǁŨǁe Language
+
+-- !sql --
+3	Wikipedia;Miscellaneous-Jj102786 / 3tle Born Oct 27th 1986 @ Blytheville, Arkansas @ 9:14pm 23 yrs of age male,white Cucassion American raised Religion:Pentocostal,Church of God
+
+-- !sql --
+4	1080º Avalanche
+
diff --git a/regression-test/data/variant_p0/predefine/test_predefine_ddl.out b/regression-test/data/variant_p0/predefine/test_predefine_ddl.out
new file mode 100644
index 0000000..617122a
--- /dev/null
+++ b/regression-test/data/variant_p0/predefine/test_predefine_ddl.out
@@ -0,0 +1,11 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !sql --
+id	bigint	Yes	true	\N	
+var	variant<PROPERTIES ("variant_max_subcolumns_count" = "10")>	Yes	false	\N	NONE
+
+-- !sql --
+id	bigint	Yes	true	\N	
+var	variant<PROPERTIES ("variant_max_subcolumns_count" = "10")>	Yes	false	\N	NONE
+var2	variant<PROPERTIES ("variant_max_subcolumns_count" = "15")>	Yes	false	\N	NONE
+var3	variant<PROPERTIES ("variant_max_subcolumns_count" = "10")>	Yes	false	\N	NONE
+
diff --git a/regression-test/data/variant_p0/schema_change/test_add_multi_var_mulit_indexes.out b/regression-test/data/variant_p0/schema_change/test_add_multi_var_mulit_indexes.out
new file mode 100644
index 0000000..b13717a
--- /dev/null
+++ b/regression-test/data/variant_p0/schema_change/test_add_multi_var_mulit_indexes.out
@@ -0,0 +1,20 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !sql --
+0	{"a":12345,"b":2}	\N	\N
+1	{"a":12345,"b":2}	{"a":"12345","b":"3"}	\N
+2	{"a":12345,"b":2}	{"a":"56789","b":"3"}	{"a":12345,"b":2}
+3	{"a":12345,"b":2}	{"a":"12345","b":"2"}	{"a":56789,"b":2}
+4	{"a":12345,"b":2}	{"a":"56789","b":"2"}	{"a":12345,"b":3}
+
+-- !sql --
+1	{"a":12345,"b":2}	{"a":"12345","b":"3"}	\N
+3	{"a":12345,"b":2}	{"a":"12345","b":"2"}	{"a":56789,"b":2}
+
+-- !sql --
+3	{"a":12345,"b":2}	{"a":"12345","b":"2"}	{"a":56789,"b":2}
+4	{"a":12345,"b":2}	{"a":"56789","b":"2"}	{"a":12345,"b":3}
+
+-- !sql --
+2	{"a":12345,"b":2}	{"a":"56789","b":"3"}	{"a":12345,"b":2}
+3	{"a":12345,"b":2}	{"a":"12345","b":"2"}	{"a":56789,"b":2}
+
diff --git a/regression-test/data/variant_p0/tpch/sql/q01_trans.out b/regression-test/data/variant_p0/tpch/sql/q01_trans.out
index c5d260ca..f0672f2 100644
--- a/regression-test/data/variant_p0/tpch/sql/q01_trans.out
+++ b/regression-test/data/variant_p0/tpch/sql/q01_trans.out
@@ -1,7 +1,7 @@
 -- This file is automatically generated. You should know what you did if you want to edit this
 -- !q01_trans --
-A	F	3774200.0	5.320753880689995E9	5.054096266682795E9	5.256751331449231E9	25.537587116854997	36002.123829014105	0.05014459706338475	147790
-N	F	95257.0	1.3373779584000006E8	1.2713237265119994E8	1.3228629122944497E8	25.30066401062417	35521.32691633468	0.04939442231075703	3765
-N	O	7459297.0	1.0512270008900036E10	9.986238338384706E9	1.0385578376585476E10	25.545537671232875	36000.92468801382	0.05009595890410998	292000
-R	F	3785523.0	5.337950526470003E9	5.071818532942003E9	5.274405503049376E9	25.5259438574251	35994.02921403095	0.04998927856182775	148301
+A	F	3774200.0	5.32075388069E9	5.054096266682786E9	5.256751331449226E9	25.537587116854997	36002.12382901414	0.0501445970633986	147790
+N	F	95257.0	1.3373779584E8	1.2713237265120004E8	1.3228629122944503E8	25.30066401062417	35521.32691633466	0.04939442231075693	3765
+N	O	7459297.0	1.0512270008900019E10	9.986238338384691E9	1.0385578376585459E10	25.545537671232875	36000.924688013765	0.050095958904099	292000
+R	F	3785523.0	5.33795052647E9	5.071818532941994E9	5.274405503049363E9	25.5259438574251	35994.029214030925	0.04998927856184158	148301
 
diff --git a/regression-test/data/variant_p0/tpch/sql/q05_trans.out b/regression-test/data/variant_p0/tpch/sql/q05_trans.out
index 7eb16fd..49b518c 100644
--- a/regression-test/data/variant_p0/tpch/sql/q05_trans.out
+++ b/regression-test/data/variant_p0/tpch/sql/q05_trans.out
@@ -3,6 +3,6 @@
 CHINA	7822103.0
 INDIA	6376121.508500004
 JAPAN	6000077.218400001
-INDONESIA	5580475.402700002
-VIETNAM	4497840.546600001
+INDONESIA	5580475.402700004
+VIETNAM	4497840.5466
 
diff --git a/regression-test/data/variant_p0/tpch/sql/q06_trans.out b/regression-test/data/variant_p0/tpch/sql/q06_trans.out
index 174241a..3eca67a 100644
--- a/regression-test/data/variant_p0/tpch/sql/q06_trans.out
+++ b/regression-test/data/variant_p0/tpch/sql/q06_trans.out
@@ -1,4 +1,4 @@
 -- This file is automatically generated. You should know what you did if you want to edit this
 -- !q06_trans --
-1.1803420253399998E7
+1.1803420253400007E7
 
diff --git a/regression-test/data/variant_p0/tpch/sql/q08_trans.out b/regression-test/data/variant_p0/tpch/sql/q08_trans.out
index b248362..b303017 100644
--- a/regression-test/data/variant_p0/tpch/sql/q08_trans.out
+++ b/regression-test/data/variant_p0/tpch/sql/q08_trans.out
@@ -1,5 +1,5 @@
 -- This file is automatically generated. You should know what you did if you want to edit this
 -- !q08_trans --
-1995	0.028648741305617544
-1996	0.01825027910796215
+1995	0.028648741305617547
+1996	0.018250279107962147
 
diff --git a/regression-test/data/variant_p0/tpch/sql/q09_trans.out b/regression-test/data/variant_p0/tpch/sql/q09_trans.out
index 807b50e..ba5905b 100644
--- a/regression-test/data/variant_p0/tpch/sql/q09_trans.out
+++ b/regression-test/data/variant_p0/tpch/sql/q09_trans.out
@@ -1,178 +1,178 @@
 -- This file is automatically generated. You should know what you did if you want to edit this
 -- !q09_trans --
-ALGERIA	1998	2321785.3682000004
+ALGERIA	1998	2321785.3681999994
 ALGERIA	1997	3685016.8589
-ALGERIA	1996	4276597.4252999965
-ALGERIA	1995	4418370.4153999975
-ALGERIA	1994	3864849.952099998
-ALGERIA	1993	3541051.386499998
+ALGERIA	1996	4276597.4253
+ALGERIA	1995	4418370.415399999
+ALGERIA	1994	3864849.952100001
+ALGERIA	1993	3541051.3865
 ALGERIA	1992	4310013.348199998
-ARGENTINA	1998	2685983.8005
+ARGENTINA	1998	2685983.800500001
 ARGENTINA	1997	4242147.8124
-ARGENTINA	1996	3907867.0103000016
-ARGENTINA	1995	4605921.501099999
-ARGENTINA	1994	3542096.1564
-ARGENTINA	1993	3949965.9387999987
-ARGENTINA	1992	4521180.4695
-BRAZIL	1998	2778730.393099999
-BRAZIL	1997	4642037.468700003
-BRAZIL	1996	4530304.603400001
-BRAZIL	1995	4502344.865700001
-BRAZIL	1994	4875806.501500003
-BRAZIL	1993	4687478.6531
+ARGENTINA	1996	3907867.0102999993
+ARGENTINA	1995	4605921.5011
+ARGENTINA	1994	3542096.1563999997
+ARGENTINA	1993	3949965.938799999
+ARGENTINA	1992	4521180.469500001
+BRAZIL	1998	2778730.3931
+BRAZIL	1997	4642037.4687
+BRAZIL	1996	4530304.603399999
+BRAZIL	1995	4502344.865699999
+BRAZIL	1994	4875806.5015
+BRAZIL	1993	4687478.653100001
 BRAZIL	1992	5035200.046399999
 CANADA	1998	2194509.0465
-CANADA	1997	3482197.9520999985
-CANADA	1996	3712231.281399999
-CANADA	1995	4014814.847599998
-CANADA	1994	4145304.485499999
-CANADA	1993	3787069.604499998
-CANADA	1992	4168009.420099999
-CHINA	1998	3398578.0001000008
-CHINA	1997	6358959.3338
-CHINA	1996	6435158.322900003
-CHINA	1995	6174776.211300001
+CANADA	1997	3482197.9521000003
+CANADA	1996	3712231.2814
+CANADA	1995	4014814.8476000004
+CANADA	1994	4145304.4854999995
+CANADA	1993	3787069.6044999994
+CANADA	1992	4168009.4200999993
+CHINA	1998	3398578.000099999
+CHINA	1997	6358959.333799998
+CHINA	1996	6435158.322899998
+CHINA	1995	6174776.211299999
 CHINA	1994	6385751.081199998
-CHINA	1993	5765034.119399997
-CHINA	1992	6324034.237900005
-EGYPT	1998	2333148.3334000004
-EGYPT	1997	3661244.2730999994
-EGYPT	1996	3765371.2367999996
-EGYPT	1995	4094744.292499998
-EGYPT	1994	3566508.081800001
-EGYPT	1993	3725283.7747000013
-EGYPT	1992	3373762.333499999
+CHINA	1993	5765034.1194
+CHINA	1992	6324034.237900001
+EGYPT	1998	2333148.3334
+EGYPT	1997	3661244.2731
+EGYPT	1996	3765371.2368000015
+EGYPT	1995	4094744.2925000004
+EGYPT	1994	3566508.0818
+EGYPT	1993	3725283.7747
+EGYPT	1992	3373762.3335000006
 ETHIOPIA	1998	1953927.2682
-ETHIOPIA	1997	3285786.3266000007
-ETHIOPIA	1996	3525028.7952
-ETHIOPIA	1995	3781674.8910999987
-ETHIOPIA	1994	3037409.435999999
+ETHIOPIA	1997	3285786.3266000003
+ETHIOPIA	1996	3525028.7951999996
+ETHIOPIA	1995	3781674.8910999997
+ETHIOPIA	1994	3037409.4359999998
 ETHIOPIA	1993	3008978.2677000007
-ETHIOPIA	1992	2721203.235500001
-FRANCE	1998	2604373.8804999986
-FRANCE	1997	3982872.0488000023
-FRANCE	1996	3622479.2412999994
-FRANCE	1995	4479939.702
-FRANCE	1994	3531013.1981000025
-FRANCE	1993	4086437.3101999997
-FRANCE	1992	3637792.1333
-GERMANY	1998	3291023.2964999974
-GERMANY	1997	5139337.344300003
-GERMANY	1996	4799810.457699999
-GERMANY	1995	5405785.797800004
-GERMANY	1994	4555556.459199997
-GERMANY	1993	4428195.101900002
+ETHIOPIA	1992	2721203.235499999
+FRANCE	1998	2604373.8805
+FRANCE	1997	3982872.0488
+FRANCE	1996	3622479.2413
+FRANCE	1995	4479939.7020000005
+FRANCE	1994	3531013.198099999
+FRANCE	1993	4086437.310200001
+FRANCE	1992	3637792.133300001
+GERMANY	1998	3291023.2965
+GERMANY	1997	5139337.344300002
+GERMANY	1996	4799810.457700001
+GERMANY	1995	5405785.797800001
+GERMANY	1994	4555556.459199998
+GERMANY	1993	4428195.1019
 GERMANY	1992	4656148.420400001
-INDIA	1998	2591288.187399999
-INDIA	1997	5159562.7033
-INDIA	1996	5307258.304900003
-INDIA	1995	5148208.790199999
-INDIA	1994	5164001.958200001
-INDIA	1993	4321398.438800003
-INDIA	1992	5297703.693499999
-INDONESIA	1998	3094900.159700001
-INDONESIA	1997	5719773.035799999
-INDONESIA	1996	6037238.599300002
-INDONESIA	1995	5266783.489899999
-INDONESIA	1994	5470762.872900001
-INDONESIA	1993	6189826.661299997
-INDONESIA	1992	4414623.154899998
-IRAN	1998	3214864.120900001
-IRAN	1997	3688049.0690999986
-IRAN	1996	3621649.2246999983
-IRAN	1995	4420783.4205
-IRAN	1994	4373984.652300001
-IRAN	1993	3731301.7814000007
+INDIA	1998	2591288.1874
+INDIA	1997	5159562.703300001
+INDIA	1996	5307258.304900002
+INDIA	1995	5148208.790200002
+INDIA	1994	5164001.9582
+INDIA	1993	4321398.4388
+INDIA	1992	5297703.6935
+INDONESIA	1998	3094900.1596999997
+INDONESIA	1997	5719773.035800001
+INDONESIA	1996	6037238.599300001
+INDONESIA	1995	5266783.489900001
+INDONESIA	1994	5470762.8729
+INDONESIA	1993	6189826.661299999
+INDONESIA	1992	4414623.154899999
+IRAN	1998	3214864.1208999995
+IRAN	1997	3688049.0691
+IRAN	1996	3621649.224699999
+IRAN	1995	4420783.420499999
+IRAN	1994	4373984.6523
+IRAN	1993	3731301.7813999997
 IRAN	1992	4417133.366199998
-IRAQ	1998	2338859.4098999994
-IRAQ	1997	3622681.5642999993
-IRAQ	1996	4762291.872199997
-IRAQ	1995	4558092.735900002
-IRAQ	1994	4951604.169899996
-IRAQ	1993	3830077.991100002
-IRAQ	1992	3938636.4873999986
-JAPAN	1998	1849535.0802000004
-JAPAN	1997	4068688.8536999994
-JAPAN	1996	4044774.7597000017
-JAPAN	1995	4793005.802699999
-JAPAN	1994	4114717.056800001
+IRAQ	1998	2338859.4099000003
+IRAQ	1997	3622681.5643
+IRAQ	1996	4762291.8722
+IRAQ	1995	4558092.735899999
+IRAQ	1994	4951604.1699
+IRAQ	1993	3830077.9910999993
+IRAQ	1992	3938636.487399999
+JAPAN	1998	1849535.0801999997
+JAPAN	1997	4068688.853700001
+JAPAN	1996	4044774.759699999
+JAPAN	1995	4793005.8027
+JAPAN	1994	4114717.056799999
 JAPAN	1993	3614468.7485000007
-JAPAN	1992	4266694.470000001
-JORDAN	1998	1811488.0718999994
-JORDAN	1997	2951297.867800001
-JORDAN	1996	3302528.3067000005
-JORDAN	1995	3221813.9990000012
-JORDAN	1994	2417892.092100001
-JORDAN	1993	3107641.7661000015
-JORDAN	1992	3316379.0585000003
-KENYA	1998	2579075.4189999984
-KENYA	1997	2929194.231699999
-KENYA	1996	3569129.5618999996
-KENYA	1995	3542889.108699999
-KENYA	1994	3983095.399400002
-KENYA	1993	3713988.970799999
+JAPAN	1992	4266694.469999999
+JORDAN	1998	1811488.0718999999
+JORDAN	1997	2951297.867799999
+JORDAN	1996	3302528.3067
+JORDAN	1995	3221813.999
+JORDAN	1994	2417892.0921
+JORDAN	1993	3107641.7660999987
+JORDAN	1992	3316379.0584999993
+KENYA	1998	2579075.4189999993
+KENYA	1997	2929194.2316999994
+KENYA	1996	3569129.5619
+KENYA	1995	3542889.1086999993
+KENYA	1994	3983095.3993999995
+KENYA	1993	3713988.9708000002
 KENYA	1992	3304641.8340000007
-MOROCCO	1998	1815334.818000001
+MOROCCO	1998	1815334.818
 MOROCCO	1997	3693214.8447000002
-MOROCCO	1996	4116175.923
-MOROCCO	1995	3515127.140199998
-MOROCCO	1994	4003072.111999998
-MOROCCO	1993	3599199.6679000016
+MOROCCO	1996	4116175.923000001
+MOROCCO	1995	3515127.1401999984
+MOROCCO	1994	4003072.111999999
+MOROCCO	1993	3599199.6679000007
 MOROCCO	1992	3958335.4223999996
 MOZAMBIQUE	1998	1620428.7346
-MOZAMBIQUE	1997	2802166.647299999
-MOZAMBIQUE	1996	2409955.1754999985
+MOZAMBIQUE	1997	2802166.6472999994
+MOZAMBIQUE	1996	2409955.1755
 MOZAMBIQUE	1995	2771602.6274
-MOZAMBIQUE	1994	2548226.215799999
-MOZAMBIQUE	1993	2843748.905299998
+MOZAMBIQUE	1994	2548226.2157999994
+MOZAMBIQUE	1993	2843748.9053
 MOZAMBIQUE	1992	2556501.0943000014
-PERU	1998	2036430.3602
-PERU	1997	4064142.409099999
-PERU	1996	4068678.5671000006
-PERU	1995	4657694.841199998
-PERU	1994	4731959.465500002
-PERU	1993	4144006.660999999
-PERU	1992	3754635.007800001
-ROMANIA	1998	1992773.6811
+PERU	1998	2036430.3601999995
+PERU	1997	4064142.4091
+PERU	1996	4068678.5670999996
+PERU	1995	4657694.8412
+PERU	1994	4731959.465500001
+PERU	1993	4144006.6610000012
+PERU	1992	3754635.0078
+ROMANIA	1998	1992773.6811000002
 ROMANIA	1997	2854639.868
-ROMANIA	1996	3139337.3029000005
+ROMANIA	1996	3139337.3028999986
 ROMANIA	1995	3222153.3776
-ROMANIA	1994	3222844.319000001
-ROMANIA	1993	3488994.0287999976
-ROMANIA	1992	3029274.4420000007
-RUSSIA	1998	2339865.6635000003
+ROMANIA	1994	3222844.319
+ROMANIA	1993	3488994.028800001
+ROMANIA	1992	3029274.442
+RUSSIA	1998	2339865.6634999993
 RUSSIA	1997	4153619.5424000006
-RUSSIA	1996	3772067.4041000023
-RUSSIA	1995	4704988.860700001
+RUSSIA	1996	3772067.4040999995
+RUSSIA	1995	4704988.8607
 RUSSIA	1994	4479082.8694
-RUSSIA	1993	4767719.979100001
+RUSSIA	1993	4767719.979099998
 RUSSIA	1992	4533465.559
-SAUDI ARABIA	1998	3386948.9564000014
-SAUDI ARABIA	1997	5425980.3373
-SAUDI ARABIA	1996	5227607.167700001
-SAUDI ARABIA	1995	4506731.641100001
-SAUDI ARABIA	1994	4698658.742499998
-SAUDI ARABIA	1993	5493626.528499995
-SAUDI ARABIA	1992	4573560.014999997
-UNITED KINGDOM	1998	2252021.5136999995
-UNITED KINGDOM	1997	4343926.802599999
-UNITED KINGDOM	1996	4189476.3064999986
-UNITED KINGDOM	1995	4469569.8829
-UNITED KINGDOM	1994	4410094.626399997
-UNITED KINGDOM	1993	4054677.104999997
-UNITED KINGDOM	1992	3978688.8831000007
-UNITED STATES	1998	2238771.558099999
-UNITED STATES	1997	4135581.5733999996
-UNITED STATES	1996	3624013.266
-UNITED STATES	1995	3892244.517199999
-UNITED STATES	1994	3289224.113800001
-UNITED STATES	1993	3626170.2027999996
-UNITED STATES	1992	3993973.499699999
-VIETNAM	1998	1924313.4862000004
-VIETNAM	1997	3436195.370900001
+SAUDI ARABIA	1998	3386948.9563999986
+SAUDI ARABIA	1997	5425980.337300001
+SAUDI ARABIA	1996	5227607.167700002
+SAUDI ARABIA	1995	4506731.6411000015
+SAUDI ARABIA	1994	4698658.742499999
+SAUDI ARABIA	1993	5493626.528499998
+SAUDI ARABIA	1992	4573560.015000001
+UNITED KINGDOM	1998	2252021.5137000005
+UNITED KINGDOM	1997	4343926.802599998
+UNITED KINGDOM	1996	4189476.3065000013
+UNITED KINGDOM	1995	4469569.882899999
+UNITED KINGDOM	1994	4410094.6263999995
+UNITED KINGDOM	1993	4054677.1050000014
+UNITED KINGDOM	1992	3978688.8830999993
+UNITED STATES	1998	2238771.5580999996
+UNITED STATES	1997	4135581.5734000015
+UNITED STATES	1996	3624013.2660000008
+UNITED STATES	1995	3892244.5171999983
+UNITED STATES	1994	3289224.1138000013
+UNITED STATES	1993	3626170.2028000006
+UNITED STATES	1992	3993973.4997000014
+VIETNAM	1998	1924313.4862000002
+VIETNAM	1997	3436195.3708999995
 VIETNAM	1996	4017288.8926999997
-VIETNAM	1995	3644054.137200001
-VIETNAM	1994	4141277.6664999984
-VIETNAM	1993	2556114.1693
-VIETNAM	1992	4090524.4905000003
+VIETNAM	1995	3644054.137199999
+VIETNAM	1994	4141277.6665000003
+VIETNAM	1993	2556114.1692999993
+VIETNAM	1992	4090524.4904999994
 
diff --git a/regression-test/data/variant_p0/tpch/sql/q10_trans.out b/regression-test/data/variant_p0/tpch/sql/q10_trans.out
index d99b595..f8559914 100644
--- a/regression-test/data/variant_p0/tpch/sql/q10_trans.out
+++ b/regression-test/data/variant_p0/tpch/sql/q10_trans.out
@@ -1,23 +1,23 @@
 -- This file is automatically generated. You should know what you did if you want to edit this
 -- !q10_trans --
-8242	Customer#000008242	622786.7296999999	6322.09	ETHIOPIA	P2n4nJhy,UqSo2s43YfSvYJDZ6lk	15-792-676-1184	slyly regular packages haggle carefully ironic ideas. courts are furiously. furiously unusual theodolites cajole. i
+8242	Customer#000008242	622786.7297	6322.09	ETHIOPIA	P2n4nJhy,UqSo2s43YfSvYJDZ6lk	15-792-676-1184	slyly regular packages haggle carefully ironic ideas. courts are furiously. furiously unusual theodolites cajole. i
 7714	Customer#000007714	557400.3053	9799.98	IRAN	SnnIGB,SkmnWpX3	20-922-418-6024	arhorses according to the blithely express re
-11032	Customer#000011032	512500.9641	8496.93	UNITED KINGDOM	WIKHC7K3Cn7156iNOyfVG3cZ7YqkgsR,Ly	33-102-772-3533	posits-- furiously ironic accounts are again
-2455	Customer#000002455	481592.40530000004	2070.99	GERMANY	RVn1ZSRtLqPlJLIZxvpmsbgC02	17-946-225-9977	al asymptotes. finally ironic accounts cajole furiously. permanently unusual theodolites aro
-12106	Customer#000012106	479414.21330000006	5342.11	UNITED STATES	wth3twOmu6vy	34-905-346-4472	ly after the blithely regular foxes. accounts haggle carefully alongside of the blithely even ideas.
-8530	Customer#000008530	457855.9467	9734.95	MOROCCO	GMQyte94oDM7eD7exnkj 4hH9yq3	25-736-932-5850	slyly asymptotes. quickly final deposits in
-13984	Customer#000013984	446316.5104000001	3482.28	IRAN	qZXwuapCHvxbX	20-981-264-2952	y unusual courts could wake furiously
-1966	Customer#000001966	444059.03819999995	1937.72	ALGERIA	jPv1 UHra5JLALR5Isci5u0636RoAu7t vH	10-973-269-8886	the blithely even accounts. final deposits cajole around the blithely final packages. 
+11032	Customer#000011032	512500.9640999999	8496.93	UNITED KINGDOM	WIKHC7K3Cn7156iNOyfVG3cZ7YqkgsR,Ly	33-102-772-3533	posits-- furiously ironic accounts are again
+2455	Customer#000002455	481592.4053	2070.99	GERMANY	RVn1ZSRtLqPlJLIZxvpmsbgC02	17-946-225-9977	al asymptotes. finally ironic accounts cajole furiously. permanently unusual theodolites aro
+12106	Customer#000012106	479414.21329999994	5342.11	UNITED STATES	wth3twOmu6vy	34-905-346-4472	ly after the blithely regular foxes. accounts haggle carefully alongside of the blithely even ideas.
+8530	Customer#000008530	457855.94670000003	9734.95	MOROCCO	GMQyte94oDM7eD7exnkj 4hH9yq3	25-736-932-5850	slyly asymptotes. quickly final deposits in
+13984	Customer#000013984	446316.5104	3482.28	IRAN	qZXwuapCHvxbX	20-981-264-2952	y unusual courts could wake furiously
+1966	Customer#000001966	444059.0382	1937.72	ALGERIA	jPv1 UHra5JLALR5Isci5u0636RoAu7t vH	10-973-269-8886	the blithely even accounts. final deposits cajole around the blithely final packages. 
 11026	Customer#000011026	417913.4142	7738.76	ALGERIA	XorIktoJOAEJkpNNMx	10-184-163-4632	ly even dolphins eat along the blithely even instructions. express attainments cajole slyly. busy dolphins in
-8501	Customer#000008501	412797.51	6906.7	ARGENTINA	776af4rOa mZ66hczs	11-317-552-5840	y final deposits after the fluffily even accounts are slyly final, regular
+8501	Customer#000008501	412797.51000000007	6906.7	ARGENTINA	776af4rOa mZ66hczs	11-317-552-5840	y final deposits after the fluffily even accounts are slyly final, regular
 1565	Customer#000001565	412506.0062	1820.03	BRAZIL	EWQO5Ck,nMuHVQimqL8dLrixRP6QKveXcz9QgorW	12-402-178-2007	ously regular accounts wake slyly ironic idea
-14398	Customer#000014398	408575.36000000004	-602.24	UNITED STATES	GWRCgIPHajtU21vICVvbJJerFu2cUk	34-814-111-5424	s. blithely even accounts cajole blithely. even foxes doubt-- 
+14398	Customer#000014398	408575.36	-602.24	UNITED STATES	GWRCgIPHajtU21vICVvbJJerFu2cUk	34-814-111-5424	s. blithely even accounts cajole blithely. even foxes doubt-- 
 1465	Customer#000001465	405055.34569999995	9365.93	INDIA	tDRaTC7UgFbBX7VF6cVXYQA0	18-807-487-1074	s lose blithely ironic, regular packages. regular, final foxes haggle c
-12595	Customer#000012595	401402.23909999995	-6.92	INDIA	LmeaX5cR,w9NqKugl yRm98	18-186-132-3352	o the busy accounts. blithely special gifts maintain a
-961	Customer#000000961	401198.17370000004	6963.68	JAPAN	5,81YDLFuRR47KKzv8GXdmi3zyP37PlPn	22-989-463-6089	e final requests: busily final accounts believe a
+12595	Customer#000012595	401402.2391	-6.92	INDIA	LmeaX5cR,w9NqKugl yRm98	18-186-132-3352	o the busy accounts. blithely special gifts maintain a
+961	Customer#000000961	401198.1737	6963.68	JAPAN	5,81YDLFuRR47KKzv8GXdmi3zyP37PlPn	22-989-463-6089	e final requests: busily final accounts believe a
 14299	Customer#000014299	400968.3751	6595.97	RUSSIA	7lFczTya0iM1bhEWT	32-156-618-1224	 carefully regular requests. quickly ironic accounts against the ru
 623	Customer#000000623	399883.42569999996	7887.6	INDONESIA	HXiFb9oWlgqZXrJPUCEJ6zZIPxAM4m6	19-113-202-7085	 requests. dolphins above the busily regular dependencies cajole after
 9151	Customer#000009151	396562.0295	5691.95	IRAQ	7gIdRdaxB91EVdyx8DyPjShpMD	21-834-147-4906	ajole fluffily. furiously regular accounts are special, silent account
 14819	Customer#000014819	396271.10360000003	7308.39	FRANCE	w8StIbymUXmLCcUag6sx6LUIp8E3pA,Ux	16-769-398-7926	ss, final asymptotes use furiously slyly ironic dependencies. special, express dugouts according to the dep
-13478	Customer#000013478	395513.13580000005	-778.11	KENYA	9VIsvIeZrJpC6OOdYheMC2vdtq8Ai0Rt	24-983-202-8240	r theodolites. slyly unusual pinto beans sleep fluffily against the asymptotes. quickly r
+13478	Customer#000013478	395513.1358	-778.11	KENYA	9VIsvIeZrJpC6OOdYheMC2vdtq8Ai0Rt	24-983-202-8240	r theodolites. slyly unusual pinto beans sleep fluffily against the asymptotes. quickly r
 
diff --git a/regression-test/data/variant_p0/tpch/sql/q14_trans.out b/regression-test/data/variant_p0/tpch/sql/q14_trans.out
index 24dca0a..a8212ce 100644
--- a/regression-test/data/variant_p0/tpch/sql/q14_trans.out
+++ b/regression-test/data/variant_p0/tpch/sql/q14_trans.out
@@ -1,4 +1,4 @@
 -- This file is automatically generated. You should know what you did if you want to edit this
 -- !q14_trans --
-16.28385568900598
+16.28385568900597
 
diff --git a/regression-test/data/variant_p0/with_index/test_array_inverted_index_profile.out b/regression-test/data/variant_p0/with_index/test_array_inverted_index_profile.out
index d2e04cd..5b2b843 100644
--- a/regression-test/data/variant_p0/with_index/test_array_inverted_index_profile.out
+++ b/regression-test/data/variant_p0/with_index/test_array_inverted_index_profile.out
@@ -5,15 +5,9 @@
 -- !sql2 --
 2019-01-01	d93d942d985a8fb7547c72dada8d332f	["v", "w", "x", "y", "z"]
 
--- !sql --
-2019-01-01	d93d942d985a8fb7547c72dada8d332f	["v", "w", "x", "y", "z"]
-
 -- !sql3 --
 2017-01-01	d93d942d985a8fb7547c72dada8d332e	["m", "n", "o", "p", "q", "r", "s", "t", "u"]
 
--- !sql --
-2017-01-01	d93d942d985a8fb7547c72dada8d332e	["m", "n", "o", "p", "q", "r", "s", "t", "u"]
-
 -- !sql4 --
 
 -- !sql5 --
diff --git a/regression-test/data/variant_p1/compaction/compaction_sparse_column.out b/regression-test/data/variant_p1/compaction/compaction_sparse_column.out
index b060cb9..014f134 100644
--- a/regression-test/data/variant_p1/compaction/compaction_sparse_column.out
+++ b/regression-test/data/variant_p1/compaction/compaction_sparse_column.out
@@ -1,21 +1,21 @@
 -- This file is automatically generated. You should know what you did if you want to edit this
 -- !select_b_bfcompact --
-12292
+12286
 
 -- !select_xxxx_bfcompact --
-12291
+12285
 
 -- !select_point_bfcompact --
 3
 
 -- !select_1_bfcompact --
-4096
+4094
 
 -- !select_2_bfcompact --
-4096
+4094
 
 -- !select_3_bfcompact --
-4096
+4094
 
 -- !select_4_bfcompact --
 1
@@ -36,34 +36,34 @@
 1
 
 -- !select_4_1_bfcompact --
-4096
+4094
 
 -- !select_5_1_bfcompact --
-4096
+4094
 
 -- !select_6_1_bfcompact --
-4096
+4094
 
 -- !select_all_bfcompact --
 3	1234	\N	ddddd	1	\N
 
 -- !select_b --
-12292
+12286
 
 -- !select_xxxx --
-12291
+12285
 
 -- !select_point --
 3
 
 -- !select_1 --
-4096
+4094
 
 -- !select_2 --
-4096
+4094
 
 -- !select_3 --
-4096
+4094
 
 -- !select_4 --
 1
@@ -84,13 +84,13 @@
 1
 
 -- !select_4_1 --
-4096
+4094
 
 -- !select_5_1 --
-4096
+4094
 
 -- !select_6_1 --
-4096
+4094
 
 -- !select_all --
 3	1234	\N	ddddd	1	\N
diff --git a/regression-test/data/variant_p1/compaction/test_compaction_extract_root.out b/regression-test/data/variant_p1/compaction/test_compaction_extract_root.out
index 5d16b15..9ad5a7a 100644
--- a/regression-test/data/variant_p1/compaction/test_compaction_extract_root.out
+++ b/regression-test/data/variant_p1/compaction/test_compaction_extract_root.out
@@ -1,18 +1,15 @@
 -- This file is automatically generated. You should know what you did if you want to edit this
--- !select_b_1 --
-24582
-
 -- !select_b_2 --
-12288
+12282
 
 -- !select_1_bfcompact --
 {"code":2,"state":"open"}
 
 -- !select_b_3 --
-24588
+24569
 
 -- !select_b_4 --
-12288
+12282
 
 -- !select_1 --
 {"code":2,"state":"open"}
diff --git a/regression-test/suites/datatype_p0/nested_types/ddl/create_nestedtypes_with_schemachange.groovy b/regression-test/suites/datatype_p0/nested_types/ddl/create_nestedtypes_with_schemachange.groovy
index 26db35c..481fa68 100644
--- a/regression-test/suites/datatype_p0/nested_types/ddl/create_nestedtypes_with_schemachange.groovy
+++ b/regression-test/suites/datatype_p0/nested_types/ddl/create_nestedtypes_with_schemachange.groovy
@@ -75,7 +75,7 @@
                      col3 array<int> $null_define,
                      col4 map<int, int> $null_define,
                      col5 struct<f1: int> $null_define,
-                     col6 variant $null_define
+                     col6 variant<properties("variant_max_subcolumns_count" = "0", "variant_enable_typed_paths_to_sparse" = "false")> $null_define
                 )
                 /* mow */
                 UNIQUE KEY(col0) DISTRIBUTED BY HASH(col0) BUCKETS 4 PROPERTIES (
diff --git a/regression-test/suites/fault_injection_p0/test_variant_bloom_filter.groovy b/regression-test/suites/fault_injection_p0/test_variant_bloom_filter.groovy
index 65f0c7e..927a57d 100644
--- a/regression-test/suites/fault_injection_p0/test_variant_bloom_filter.groovy
+++ b/regression-test/suites/fault_injection_p0/test_variant_bloom_filter.groovy
@@ -55,11 +55,13 @@
     sql """
         CREATE TABLE IF NOT EXISTS ${index_table} (
             k bigint,
-            v variant
+            v variant<
+                properties("variant_max_subcolumns_count" = "9999")
+            >
         )
         DUPLICATE KEY(`k`)
         DISTRIBUTED BY HASH(k) BUCKETS 1
-        properties("replication_num" = "1", "disable_auto_compaction" = "false", "bloom_filter_columns" = "v", "variant_max_subcolumns_count" = "9999");
+        properties("replication_num" = "1", "disable_auto_compaction" = "false", "bloom_filter_columns" = "v");
     """
     load_json_data.call(index_table, """${getS3Url() + '/regression/gharchive.m/2015-01-01-0.json'}""")
     load_json_data.call(index_table, """${getS3Url() + '/regression/gharchive.m/2015-01-01-0.json'}""")
diff --git a/regression-test/suites/fault_injection_p0/test_variant_compaction_with_sparse_limit.groovy b/regression-test/suites/fault_injection_p0/test_variant_compaction_with_sparse_limit.groovy
index 7bd4fd2..6e3d6a1 100644
--- a/regression-test/suites/fault_injection_p0/test_variant_compaction_with_sparse_limit.groovy
+++ b/regression-test/suites/fault_injection_p0/test_variant_compaction_with_sparse_limit.groovy
@@ -52,18 +52,18 @@
         }
         def create_table = { tableName, buckets="auto", key_type="DUPLICATE" ->
             sql "DROP TABLE IF EXISTS ${tableName}"
-            def var_def = "variant"
+            def var_def = "variant <properties(\"variant_max_subcolumns_count\" = \"${max_subcolumns_count}\")>"
             if (key_type == "AGGREGATE") {
-                var_def = "variant replace"
+                var_def = "variant <properties(\"variant_max_subcolumns_count\" = \"${max_subcolumns_count}\")> replace"
             }
             sql """
                 CREATE TABLE IF NOT EXISTS ${tableName} (
                     k bigint,
-                    v ${var_def}
+                    v ${var_def} 
                 )
                 ${key_type} KEY(`k`)
                 DISTRIBUTED BY HASH(k) BUCKETS ${buckets}
-                properties("replication_num" = "1", "disable_auto_compaction" = "true", "variant_max_subcolumns_count" = "${max_subcolumns_count}");
+                properties("replication_num" = "1", "disable_auto_compaction" = "true");
             """
         }
         def key_types = ["DUPLICATE", "UNIQUE", "AGGREGATE"]
diff --git a/regression-test/suites/function_p0/test_array_agg.groovy b/regression-test/suites/function_p0/test_array_agg.groovy
index e89ea83..4324108 100644
--- a/regression-test/suites/function_p0/test_array_agg.groovy
+++ b/regression-test/suites/function_p0/test_array_agg.groovy
@@ -18,7 +18,12 @@
 suite("test_array_agg", "p0") {
     sql """ set enable_nereids_planner=true;"""
     sql """ set enable_fallback_to_original_planner=false;"""
-    def tableName = "array_agg_table"
+    def tableName = "test_variant_array_function"
+
+
+    def count = new Random().nextInt(1) + 1
+    sql """ set global_variant_max_subcolumns_count=${count};"""
+
     sql """
         drop table if exists ${tableName};
     """
diff --git a/regression-test/suites/variant_github_events_new_p0/load.groovy b/regression-test/suites/variant_github_events_new_p0/load.groovy
index 9a67162..e2ae7162 100644
--- a/regression-test/suites/variant_github_events_new_p0/load.groovy
+++ b/regression-test/suites/variant_github_events_new_p0/load.groovy
@@ -44,13 +44,15 @@
             }
         }
     }
+    int max_subcolumns_count = Math.floor(Math.random() * 50) + 1
+    boolean enable_typed_paths_to_sparse = new Random().nextBoolean()
     def table_name = "github_events"
     sql """DROP TABLE IF EXISTS ${table_name}"""
     table_name = "github_events"
     sql """
         CREATE TABLE IF NOT EXISTS ${table_name} (
             k bigint,
-            v variant<'payload.pull_request.head.repo.topics' : array<text>>,
+            v variant<'payload.pull_request.head.repo.topics' : array<text>, properties("variant_max_subcolumns_count" = "${max_subcolumns_count}", "variant_enable_typed_paths_to_sparse" = "${enable_typed_paths_to_sparse}")>,
             INDEX idx_var(v) USING INVERTED COMMENT ''
         )
         DUPLICATE KEY(`k`)
@@ -136,7 +138,7 @@
             }
         }
     }
-    sql """ALTER TABLE github_events ADD COLUMN v2 variant DEFAULT NULL"""
+    sql """ALTER TABLE github_events ADD COLUMN v2 variant<properties("variant_max_subcolumns_count" = "${max_subcolumns_count}", "variant_enable_typed_paths_to_sparse" = "${enable_typed_paths_to_sparse}")> DEFAULT NULL"""
     for(int t = 0; t <= 10; t += 1){ 
         long k = 9223372036854775107 + t
         sql """INSERT INTO github_events VALUES (${k}, '{"aaaa" : 1234, "bbbb" : "11ssss"}', '{"xxxx" : 1234, "yyyy" : [1.111]}')"""
@@ -149,30 +151,33 @@
     trigger_and_wait_compaction("github_events", "full")
 
     // query and filterd by inverted index
-    profile("test_profile_1") {
-        sql """ set enable_common_expr_pushdown = true; """
-        sql """ set enable_common_expr_pushdown_for_inverted_index = true; """
-        sql """ set enable_pipeline_x_engine = true;"""
-        sql """ set enable_profile = true;"""
-        sql """ set profile_level = 2;"""
-        run {
-            qt_sql_inv """/* test_profile_1 */
-                select count() from github_events where arrays_overlap(cast(v['payload']['pull_request']['head']['repo']['topics'] as array<text>), ['javascript', 'css'] )
-            """
-        }
-
-        check { profileString, exception ->
-            log.info(profileString)
-            // Use a regular expression to match the numeric value inside parentheses after "RowsInvertedIndexFiltered:"
-            def matcher = (profileString =~ /RowsInvertedIndexFiltered:\s+[^\(]+\((\d+)\)/)
-            def total = 0
-            while (matcher.find()) {
-                total += matcher.group(1).toInteger()
+    if (!enable_typed_paths_to_sparse) {
+        profile("test_profile_1") {
+            sql """ set enable_common_expr_pushdown = true; """
+            sql """ set enable_common_expr_pushdown_for_inverted_index = true; """
+            sql """ set enable_pipeline_x_engine = true;"""
+            sql """ set enable_profile = true;"""
+            sql """ set profile_level = 2;"""
+            run {
+                qt_sql_inv """/* test_profile_1 */
+                    select count() from github_events where arrays_overlap(cast(v['payload']['pull_request']['head']['repo']['topics'] as array<text>), ['javascript', 'css'] )
+                """
             }
-            // Assert that the sum of all matched numbers equals 67677
-            assertEquals(67677, total)
-        } 
+
+            check { profileString, exception ->
+                log.info(profileString)
+                // Use a regular expression to match the numeric value inside parentheses after "RowsInvertedIndexFiltered:"
+                def matcher = (profileString =~ /RowsInvertedIndexFiltered:\s+[^\(]+\((\d+)\)/)
+                def total = 0
+                while (matcher.find()) {
+                    total += matcher.group(1).toInteger()
+                }
+                // Assert that the sum of all matched numbers equals 67677
+                assertEquals(67677, total)
+            } 
+        }
     }
+    
     sql """ set enable_common_expr_pushdown = true; """
     sql """ set enable_common_expr_pushdown_for_inverted_index = true; """
     qt_sql_inv """select count() from github_events where arrays_overlap(cast(v['payload']['pull_request']['head']['repo']['topics'] as array<text>), ['javascript', 'css'] )"""
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 10358f0..aa86b7c 100644
--- a/regression-test/suites/variant_github_events_nonConcurrent_p2/load.groovy
+++ b/regression-test/suites/variant_github_events_nonConcurrent_p2/load.groovy
@@ -76,12 +76,12 @@
     sql """
         CREATE TABLE IF NOT EXISTS ${table_name} (
             k bigint,
-            v variant
+            v variant<properties("variant_max_subcolumns_count" = "${rand_subcolumns_count}")>
             -- INDEX idx_var(v) USING INVERTED PROPERTIES("parser" = "english") COMMENT ''
         )
         DUPLICATE KEY(`k`)
         DISTRIBUTED BY HASH(k) BUCKETS 4 
-        properties("replication_num" = "1", "disable_auto_compaction" = "true", "variant_enable_flatten_nested" = "true", "variant_max_subcolumns_count" = "${rand_subcolumns_count}", "inverted_index_storage_format"= "v2");
+        properties("replication_num" = "1", "disable_auto_compaction" = "true", "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'}""")
@@ -97,6 +97,11 @@
     // 2022
     load_json_data.call(table_name, """${getS3Url() + '/regression/gharchive.m/2022-11-07-16.json'}""")
     load_json_data.call(table_name, """${getS3Url() + '/regression/gharchive.m/2022-11-07-10.json'}""")
+
+    sql """ ALTER TABLE github_events ADD INDEX idx_var2 (`v`) USING INVERTED """
+    wait_for_latest_op_on_table_finish("github_events", timeout)
+
+    // 2022
     load_json_data.call(table_name, """${getS3Url() + '/regression/gharchive.m/2022-11-07-22.json'}""")
     load_json_data.call(table_name, """${getS3Url() + '/regression/gharchive.m/2022-11-07-23.json'}""")
 
@@ -132,11 +137,11 @@
     sql """
      CREATE TABLE IF NOT EXISTS github_events2 (
             k bigint,
-            v variant not null
+            v variant<properties("variant_max_subcolumns_count" = "${rand_subcolumns_count}")> not null
         )
         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", "variant_max_subcolumns_count" = "${rand_subcolumns_count}");
+        properties("replication_num" = "1", "disable_auto_compaction" = "false", "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_log_data_p2/load.groovy b/regression-test/suites/variant_log_data_p2/load.groovy
index f1fa6ca..33c21ab 100644
--- a/regression-test/suites/variant_log_data_p2/load.groovy
+++ b/regression-test/suites/variant_log_data_p2/load.groovy
@@ -73,21 +73,21 @@
     // sql "set enable_two_phase_read_opt = false;"
     // no sparse columns
     load_json_data.call(table_name, """${getS3Url() + '/regression/load/logdata.json'}""")
-    qt_sql_32 """ select json_extract(v, "\$.json.parseFailed") from logdata where  json_extract(v, "\$.json.parseFailed") != 'null' order by k limit 1;"""
+    qt_sql_32 """ select json_extract(v, "\$.json.parseFailed") from logdata where  cast(json_extract(v, "\$.json.parseFailed") as string) != 'null' order by k limit 1;"""
     qt_sql_32_1 """select cast(v['json']['parseFailed'] as string) from  logdata where cast(v['json']['parseFailed'] as string) is not null and k = 162 limit 1;"""
     sql "truncate table ${table_name}"
 
     // 0.95 default ratio    
     load_json_data.call(table_name, """${getS3Url() + '/regression/load/logdata.json'}""")
-    qt_sql_33 """ select json_extract(v,"\$.json.parseFailed") from logdata where  json_extract(v,"\$.json.parseFailed") != 'null' order by k limit 1;"""
+    qt_sql_33 """ select json_extract(v,"\$.json.parseFailed") from logdata where  cast(json_extract(v,"\$.json.parseFailed") as string) != 'null' order by k limit 1;"""
     qt_sql_33_1 """select cast(v['json']['parseFailed'] as string) from  logdata where cast(v['json']['parseFailed'] as string) is not null and k = 162 limit 1;"""
     sql "truncate table ${table_name}"
 
     // always sparse column
     load_json_data.call(table_name, """${getS3Url() + '/regression/load/logdata.json'}""")
-    qt_sql_34 """ select json_extract(v, "\$.json.parseFailed") from logdata where  json_extract(v,"\$.json.parseFailed") != 'null' order by k limit 1;"""
+    qt_sql_34 """ select json_extract(v, "\$.json.parseFailed") from logdata where  cast(json_extract(v,"\$.json.parseFailed") as string) != 'null' order by k limit 1;"""
     sql "truncate table ${table_name}"
-    qt_sql_35 """select json_extract(v,"\$.json.parseFailed")  from logdata where k = 162 and  json_extract(v,"\$.json.parseFailed") != 'null';"""
+    qt_sql_35 """select json_extract(v,"\$.json.parseFailed")  from logdata where k = 162 and  cast(json_extract(v,"\$.json.parseFailed") as string) != 'null';"""
     qt_sql_35_1 """select cast(v['json']['parseFailed'] as string) from  logdata where cast(v['json']['parseFailed'] as string) is not null and k = 162 limit 1;"""
     // TODO add test case that some certain columns are materialized in some file while others are not materilized(sparse)
     // unique table
diff --git a/regression-test/suites/variant_p0/agg.groovy b/regression-test/suites/variant_p0/agg.groovy
index 2097891..97999a1 100644
--- a/regression-test/suites/variant_p0/agg.groovy
+++ b/regression-test/suites/variant_p0/agg.groovy
@@ -18,10 +18,10 @@
 suite("regression_test_variant_agg"){
     sql """DROP TABLE IF EXISTS var_agg"""
 
-    int max_subcolumns_count = Math.floor(Math.random() * 10) 
-    def var = "variant replace"
+    int max_subcolumns_count = Math.floor(Math.random() * 10) + 1
+    def var = "variant<properties(\"variant_max_subcolumns_count\" = \"${max_subcolumns_count}\")> replace"
     if (max_subcolumns_count % 2 == 0) {
-        var = "variant <'d' : int, 'b.f' : int, 'xxxx' : string, 'point' : bigint> replace"
+        var = "variant <'d' : int, 'b.f' : int, 'xxxx' : string, 'point' : bigint, properties(\"variant_max_subcolumns_count\" = \"${max_subcolumns_count}\")> replace"
     }
     sql """
         CREATE TABLE IF NOT EXISTS var_agg (
@@ -31,7 +31,7 @@
             )
             AGGREGATE KEY(`k`)
             DISTRIBUTED BY HASH(k) BUCKETS 4
-            properties("replication_num" = "1", "disable_auto_compaction" = "true", "variant_max_subcolumns_count" = "${max_subcolumns_count}");
+            properties("replication_num" = "1", "disable_auto_compaction" = "true");
     """
     sql """insert into var_agg values (1,  '[1]', 1),(1,  '{"a" : 1}', 1);"""
     sql """insert into var_agg values (2,  '[2]', 2),(1,  '{"a" : [[[1]]]}', 2);"""
diff --git a/regression-test/suites/variant_p0/column_name.groovy b/regression-test/suites/variant_p0/column_name.groovy
index 27132ce..be4c3cb 100644
--- a/regression-test/suites/variant_p0/column_name.groovy
+++ b/regression-test/suites/variant_p0/column_name.groovy
@@ -22,11 +22,11 @@
     sql """
         CREATE TABLE IF NOT EXISTS ${table_name} (
             k bigint,
-            v variant
+            v variant<properties("variant_max_subcolumns_count" = "${max_subcolumns_count}")>
         )
         DUPLICATE KEY(`k`)
         DISTRIBUTED BY HASH(k) BUCKETS 1 
-        properties("replication_num" = "1", "disable_auto_compaction" = "true", "variant_max_subcolumns_count" = "${max_subcolumns_count}");
+        properties("replication_num" = "1", "disable_auto_compaction" = "true");
     """ 
 
     sql """insert into ${table_name} values (1, '{"中文" : "中文", "\\\u4E2C\\\u6587": "unicode"}')"""
diff --git a/regression-test/suites/variant_p0/column_size_limit.groovy b/regression-test/suites/variant_p0/column_size_limit.groovy
index 153cb1a..bf9739a 100644
--- a/regression-test/suites/variant_p0/column_size_limit.groovy
+++ b/regression-test/suites/variant_p0/column_size_limit.groovy
@@ -22,11 +22,11 @@
     sql """
         CREATE TABLE IF NOT EXISTS ${table_name} (
             k bigint,
-            v variant
+            v variant<properties("variant_max_subcolumns_count" = "0")>
         )
         DUPLICATE KEY(`k`)
         DISTRIBUTED BY HASH(k) BUCKETS 1
-        properties("replication_num" = "1", "disable_auto_compaction" = "false", "variant_max_subcolumns_count" = "0");
+        properties("replication_num" = "1", "disable_auto_compaction" = "false");
     """
     def jsonBuilder = new JsonBuilder()
     def root = jsonBuilder {
diff --git a/regression-test/suites/variant_p0/desc.groovy b/regression-test/suites/variant_p0/desc.groovy
index d86860e..35c4549 100644
--- a/regression-test/suites/variant_p0/desc.groovy
+++ b/regression-test/suites/variant_p0/desc.groovy
@@ -19,10 +19,8 @@
     // if (isCloudMode()) {
     //     return
     // }
-    def count = "0"
-    if (new Random().nextInt(100) < 50) {
-        count = "1000"
-    }
+    sql """ set global_variant_enable_typed_paths_to_sparse = false """
+    sql """ set global_variant_max_subcolumns_count = 0 """
 
     def load_json_data = {table_name, file_name ->
         // load the json data
@@ -61,7 +59,7 @@
             )
             DUPLICATE KEY(`k`)
             DISTRIBUTED BY HASH(k) BUCKETS ${buckets}
-            properties("replication_num" = "1", "disable_auto_compaction" = "false", "variant_max_subcolumns_count" = "${count}");
+            properties("replication_num" = "1", "disable_auto_compaction" = "false");
         """
     }
 
@@ -80,7 +78,7 @@
                 PARTITION p3 VALUES LESS THAN (100000)
             )
             DISTRIBUTED BY HASH(k) BUCKETS ${buckets}
-            properties("replication_num" = "1", "disable_auto_compaction" = "false", "variant_max_subcolumns_count" = "${count}");
+            properties("replication_num" = "1", "disable_auto_compaction" = "false");
         """
     }
 
@@ -170,7 +168,7 @@
             )
             DUPLICATE KEY(`k`)
             DISTRIBUTED BY HASH(k) BUCKETS 5
-            properties("replication_num" = "1", "disable_auto_compaction" = "false", "variant_max_subcolumns_count" = "${count}");
+            properties("replication_num" = "1", "disable_auto_compaction" = "false");
         """
         sql """ insert into ${table_name} values (0, '{"a": 1123, "b" : [123, {"xx" : 1}], "c" : {"c" : 456, "d" : null, "e" : 7.111}, "zzz" : null, "oooo" : {"akakaka" : null, "xxxx" : {"xxx" : 123}}}', '{"a": 11245, "xxxx" : "kaana"}', '{"a": 11245, "b" : [123, {"xx" : 1}], "c" : {"c" : 456, "d" : null, "e" : 7.111}}')"""
          sql "select * from ${table_name} limit 1"
@@ -187,7 +185,7 @@
             )
             DUPLICATE KEY(`k`)
             DISTRIBUTED BY HASH(k) BUCKETS 5
-            properties("replication_num" = "1", "disable_auto_compaction" = "false", "variant_max_subcolumns_count" = "${count}");
+            properties("replication_num" = "1", "disable_auto_compaction" = "false");
         """
         sql """ insert into ${table_name} values (0, '{"a": 1123, "b" : [123, {"xx" : 1}], "c" : {"c" : 456, "d" : null, "e" : 7.111}, "zzz" : null, "oooo" : {"akakaka" : null, "xxxx" : {"xxx" : 123}}}')"""
          sql "select * from ${table_name} limit 1"
@@ -230,7 +228,7 @@
             )
             DUPLICATE KEY(`k`)
             DISTRIBUTED BY HASH(k) BUCKETS 5
-            properties("replication_num" = "1", "disable_auto_compaction" = "false", "variant_max_subcolumns_count" = "${count}");
+            properties("replication_num" = "1", "disable_auto_compaction" = "false");
         """
         sql """ insert into ${table_name} values (0, '{"名字" : "jack", "!@#^&*()": "11111", "金额" : 200, "画像" : {"地址" : "北京", "\\\u4E2C\\\u6587": "unicode"}}')"""
         sql """set describe_extend_variant_column = true"""
@@ -246,7 +244,7 @@
             )
             DUPLICATE KEY(`k`)
             DISTRIBUTED BY HASH(k) BUCKETS 5
-            properties("replication_num" = "1", "disable_auto_compaction" = "false", "variant_max_subcolumns_count" = "${count}");
+            properties("replication_num" = "1", "disable_auto_compaction" = "false");
         """
         sql """ insert into ${table_name} values (0, '{}')"""
         sql """ insert into ${table_name} values (0, '100')"""
diff --git a/regression-test/suites/variant_p0/nested.groovy b/regression-test/suites/variant_p0/nested.groovy
index 497873a..2d12937 100644
--- a/regression-test/suites/variant_p0/nested.groovy
+++ b/regression-test/suites/variant_p0/nested.groovy
@@ -94,7 +94,7 @@
         qt_sql """select * from var_nested where v['k2'] = 'some'  and array_contains(cast(v['nested1']['nested2']['a'] as array<tinyint>), 10) order by k limit 1;"""
 
         // type change case
-        sql """INSERT INTO var_nested SELECT *, '{"k1":"1", "k2": 1.1, "k3" : [1234.0], "k4" : 1.10000, "k5" : [["123"]], "nested1" : {"nested2" : [{"a" : "10", "b" : "1.1", "c" : 1111.111}]}}' FROM numbers("number" = "8000") where number > 7000 limit 100;"""
+        sql """INSERT INTO var_nested SELECT *, '{"k1":"1", "k2": 1.1, "k3" : [1234.0], "k4" : 1.10000, "k5" : [["123"]], "nested1" : {"nested2" : [{"a" : 10, "b" : 1.1, "c" : "1111"}]}}' FROM numbers("number" = "8000") where number > 7000 limit 100;"""
         qt_sql """select * from var_nested where v['k2'] = 'what'  and array_contains(cast(v['nested1']['nested2']['a'] as array<tinyint>), 10) order by k limit 1;"""
         trigger_and_wait_compaction("var_nested", "full")
         qt_sql """select * from var_nested where v['k2'] = 'nested'  and array_contains(cast(v['nested1']['nested2']['a'] as array<tinyint>), 10) order by k limit 1;"""
diff --git a/regression-test/suites/variant_p0/nested2.groovy b/regression-test/suites/variant_p0/nested2.groovy
index 8d48fcf..9ea89c6 100644
--- a/regression-test/suites/variant_p0/nested2.groovy
+++ b/regression-test/suites/variant_p0/nested2.groovy
@@ -19,7 +19,8 @@
 suite("variant_nested_type_conflict", "p0"){
 
     try {
-
+        sql """ set global_variant_max_subcolumns_count = 10"""
+        sql """ set global_variant_enable_typed_paths_to_sparse = false"""
         def table_name = "var_nested_type_conflict"
         sql "DROP TABLE IF EXISTS ${table_name}"
         sql """set describe_extend_variant_column = true"""
diff --git a/regression-test/suites/variant_p0/predefine/delete_update.groovy b/regression-test/suites/variant_p0/predefine/delete_update.groovy
index 8257f4b..bd1c917 100644
--- a/regression-test/suites/variant_p0/predefine/delete_update.groovy
+++ b/regression-test/suites/variant_p0/predefine/delete_update.groovy
@@ -21,8 +21,8 @@
     // MOR
     def table_name = "var_delete_update"
     sql "DROP TABLE IF EXISTS ${table_name}"
-    int max_subcolumns_count = Math.floor(Math.random() * 5) + 1 
-    def var = "variant <'a' : largeint, 'b' : array<int>, 'c' : double, 'd' : text>"
+    int max_subcolumns_count = Math.floor(Math.random() * 5) + 1
+    def var = "variant <'a' : largeint, 'b' : array<int>, 'c' : double, 'd' : text, properties(\"variant_max_subcolumns_count\" = \"${max_subcolumns_count}\")>"
     sql """
         CREATE TABLE IF NOT EXISTS ${table_name} (
             k bigint,
@@ -30,7 +30,7 @@
         )
         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", "variant_max_subcolumns_count" = "${max_subcolumns_count}");
+        properties("replication_num" = "1", "enable_unique_key_merge_on_write" = "false", "variant_enable_flatten_nested" = "false", "disable_auto_compaction" = "true");
     """
     // test mor table
 
@@ -57,7 +57,7 @@
         )
         UNIQUE KEY(`k`)
         DISTRIBUTED BY HASH(k) BUCKETS 4
-        properties("replication_num" = "1", "enable_unique_key_merge_on_write" = "true", "variant_max_subcolumns_count" = "${max_subcolumns_count}");
+        properties("replication_num" = "1", "enable_unique_key_merge_on_write" = "true", "disable_auto_compaction" = "true");
     """
     sql "insert into var_delete_update_mow select k, cast(v as string), cast(v as string) from var_delete_update"
     sql "delete from ${table_name} where k = 1"
diff --git a/regression-test/suites/variant_p0/predefine/insert_into_select.groovy b/regression-test/suites/variant_p0/predefine/insert_into_select.groovy
index 4d92d28..5e7ecd6 100644
--- a/regression-test/suites/variant_p0/predefine/insert_into_select.groovy
+++ b/regression-test/suites/variant_p0/predefine/insert_into_select.groovy
@@ -17,6 +17,8 @@
 
 suite("regression_test_variant_predefine_insert_into_select", "variant_type"){
     def table_name = "insert_into_select"
+    def max_subcolumns_count = new Random().nextInt(5) + 1
+    sql "set global_variant_max_subcolumns_count = ${max_subcolumns_count}"
     sql "DROP TABLE IF EXISTS ${table_name}_var"
     sql "DROP TABLE IF EXISTS ${table_name}_str"
     sql """
diff --git a/regression-test/suites/variant_p0/predefine/load.groovy b/regression-test/suites/variant_p0/predefine/load.groovy
index 1a00eb6..4e993cd 100644
--- a/regression-test/suites/variant_p0/predefine/load.groovy
+++ b/regression-test/suites/variant_p0/predefine/load.groovy
@@ -17,10 +17,11 @@
 
 suite("regression_test_variant_predefine_schema", "p0"){
     sql """DROP TABLE IF EXISTS test_predefine"""
-    def count = "0"
+    def count = new Random().nextInt(10) + 1;
     if (new Random().nextInt(100) < 50) {
         count = "1000"
     }
+    sql """ set global_variant_max_subcolumns_count = ${count} """
     sql """
         CREATE TABLE `test_predefine` (
             `id` bigint NOT NULL,
@@ -28,7 +29,7 @@
             `v1` variant<'a.b.c':int,'ss':string,'dcm':decimal(38, 9),'dt':datetime,'ip':ipv4,'a.b.d':double> NULL,
             INDEX idx_var_sub(`v1`) USING INVERTED PROPERTIES("parser" = "english") )
         ENGINE=OLAP DUPLICATE KEY(`id`) DISTRIBUTED BY HASH(`id`) BUCKETS 3
-        PROPERTIES ( "replication_allocation" = "tag.location.default: 1", "variant_max_subcolumns_count" = "${count}");
+        PROPERTIES ( "replication_allocation" = "tag.location.default: 1");
     """
 
     sql """insert into test_predefine values(1, '1', '{"a" : {"b" : {"c" : "123456", "d" : "11.111"}}, "ss" : 199991111, "dcm" : 123.456, "dt" : "2021-01-01 00:00:00", "ip" : "127.0.0.1"}')"""
@@ -44,8 +45,6 @@
     sql """insert into test_predefine values(12, '3', '{"dcm" : 789.123, "dt" : "2025-01-01 11:11:11.1", "ip" : "127.0.0.1"}')"""
     sql """insert into test_predefine values(11, '4', '{"a" : {"b" : {"c" : "678910", "d" : "33.222"}}}')"""
     qt_sql """select * from test_predefine order by id"""
-    sql """set describe_extend_variant_column = true"""
-    qt_sql "desc test_predefine"
 
     qt_sql """select cast(v1['ip'] as ipv4) from test_predefine where cast(v1['ip'] as ipv4) = '127.0.0.1';"""
     qt_sql """select cast(v1['dcm'] as decimal) from test_predefine where cast(v1['dcm'] as decimal) = '123.456';"""
@@ -62,7 +61,7 @@
             `v1` variant 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", "variant_max_subcolumns_count" = "0");
+        PROPERTIES ( "replication_allocation" = "tag.location.default: 1", "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}')"""
@@ -74,7 +73,6 @@
     sql """insert into test_predefine1 values(7, '{"PREDEFINE_COL3" : "11111.00000"}')"""
     sql """insert into test_predefine1 values(8, '{"PREDEFINE_COL4" : "2020-01-01-01"}')"""
     sql """select * from test_predefine1 order by id limit 1"""
-    qt_sql """desc test_predefine1"""
     qt_sql """select * from test_predefine1 order by id"""
 
 
@@ -106,10 +104,11 @@
                 'ipv6_':ipv6,
                 'float_':decimalv3(26,9),
                 'boolean_':boolean,
-                'varchar_': text
+                'varchar_': text,
+                properties("variant_max_subcolumns_count" = "6", "variant_enable_typed_paths_to_sparse" = "false")
             > NULL
         ) ENGINE=OLAP DUPLICATE KEY(`id`) DISTRIBUTED BY HASH(`id`) BUCKETS 2
-        PROPERTIES ( "replication_allocation" = "tag.location.default: 1", "variant_max_subcolumns_count" = "${count}");
+        PROPERTIES ( "replication_allocation" = "tag.location.default: 1");
     """
     def json1 = """
         {
@@ -198,7 +197,6 @@
     sql "insert into test_predefine2 values(4, '${json4}')"
        
     qt_sql """select * from test_predefine2 order by id"""
-    qt_sql """ desc test_predefine2 """
 
     for (int i = 10; i < 100; i++) {
         sql "insert into test_predefine2 values(${i}, '${json4}')"
@@ -215,7 +213,6 @@
     sql """insert into test_predefine1 values(103, '{"a" :1}', '{"dcm": 1111111}', '{"dt": "2021-01-01 11:11:11"}');"""
     qt_sql """select * from test_predefine1 where id >= 100 order by id"""
     // 3. drop column
-    qt_sql "desc test_predefine1"
     sql "alter table test_predefine1 drop column v3"
 
     sql "DROP TABLE IF EXISTS test_predefine3"
@@ -223,7 +220,7 @@
             `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" = "true", "variant_max_subcolumns_count" = "0");"""
+        PROPERTIES ( "replication_allocation" = "tag.location.default: 1", "variant_enable_flatten_nested" = "false", "disable_auto_compaction" = "true");"""
 
     // test alter nested no effect at present
     sql "truncate table test_predefine3"
@@ -249,7 +246,8 @@
     sql """insert into test_predefine3 values (1, '{"auto_type" : 256}')"""
     sql """insert into test_predefine3 values (1, '{"auto_type" : 12345}')"""
     sql """insert into test_predefine3 values (1, '{"auto_type" : 1.0}')"""
-    qt_sql """desc test_predefine3"""
+    trigger_and_wait_compaction("test_predefine3", "full")
+    qt_sql """select variant_type(v) from test_predefine3"""
 
     // test array
     sql "DROP TABLE IF EXISTS region_insert"
@@ -274,8 +272,7 @@
     "disable_auto_compaction" = "false",
     "enable_single_replica_compaction" = "false",
     "group_commit_interval_ms" = "10000",
-    "group_commit_data_bytes" = "134217728",
-    "variant_max_subcolumns_count" = "${count}"
+    "group_commit_data_bytes" = "134217728"
     );
     """
     sql """
@@ -293,8 +290,7 @@
     PROPERTIES (
     "replication_allocation" = "tag.location.default: 1",
     "min_load_replica_num" = "-1",
-    "bloom_filter_columns" = "var",
-    "variant_max_subcolumns_count" = "${count}"
+    "bloom_filter_columns" = "var"
     );
     """
 
@@ -311,8 +307,7 @@
     DISTRIBUTED BY HASH(`k`) BUCKETS 1
     PROPERTIES (
     "replication_allocation" = "tag.location.default: 1",
-    "min_load_replica_num" = "-1",
-    "variant_max_subcolumns_count" = "0"
+    "min_load_replica_num" = "-1"
     );
     """
     sql """insert into test_array_with_nulls values(3, '{"array_decimal" : [null, 2.2, 3.3, 4.4]}')"""
@@ -336,8 +331,7 @@
     DISTRIBUTED BY HASH(`k`) BUCKETS 1
     PROPERTIES (
     "replication_allocation" = "tag.location.default: 1",
-    "min_load_replica_num" = "-1",
-    "variant_max_subcolumns_count" = "0"
+    "min_load_replica_num" = "-1"
     );
     """
     sql """insert into test_variant_type values(1, '{"dcm" : 1.1, "db" : 2.2, "dt" : "2021-01-01 00:00:00", "a.b.c" : [1, 2, 3]}')"""
@@ -354,8 +348,7 @@
     DISTRIBUTED BY HASH(`k`) BUCKETS 1
     PROPERTIES (
     "replication_allocation" = "tag.location.default: 1",
-    "min_load_replica_num" = "-1",
-    "variant_max_subcolumns_count" = "0"
+    "min_load_replica_num" = "-1"
     );
     """
     sql """insert into test_variant_type_not_null values(1, '{"dcm" : 1.1, "db" : 2.2, "dt" : "2021-01-01 00:00:00", "a.b.c" : [1, 2, 3]}')"""
diff --git a/regression-test/suites/variant_p0/predefine/multi_var.groovy b/regression-test/suites/variant_p0/predefine/multi_var.groovy
index 411b826..edfd5b7 100644
--- a/regression-test/suites/variant_p0/predefine/multi_var.groovy
+++ b/regression-test/suites/variant_p0/predefine/multi_var.groovy
@@ -18,23 +18,29 @@
 suite("regression_test_variant_predefine_multi_var", "variant_type"){
     int max_subcolumns_count = Math.floor(Math.random() * 7) + 1
     def table_name = "multi_variants"
+    boolean enable_typed_paths_to_sparse = new Random().nextBoolean()
+    sql "set global_variant_enable_typed_paths_to_sparse = ${enable_typed_paths_to_sparse}"
     sql "DROP TABLE IF EXISTS ${table_name}"
     sql """
         CREATE TABLE IF NOT EXISTS ${table_name} (
             k bigint,
-            v variant<'k1' : int, 'k2' : string, 'k3' : array<int>, 'k4' : double>,
+            v variant<'k1' : int, 'k2' : string, 'k3' : array<int>, 'k4' : double,
+                properties("variant_max_subcolumns_count" = "${max_subcolumns_count}", "variant_enable_typed_paths_to_sparse" = "${enable_typed_paths_to_sparse}")
+            >,
         )
         DUPLICATE KEY(`k`)
         DISTRIBUTED BY HASH(k) BUCKETS 4
-        properties("replication_num" = "1", "disable_auto_compaction" = "true", "variant_max_subcolumns_count" = "${max_subcolumns_count}");
+        properties("replication_num" = "1", "disable_auto_compaction" = "true");
     """
     sql """INSERT INTO ${table_name} SELECT *, '{"k1":1, "k2": "hello world", "k3" : [1234], "k4" : 1.10000, "k5" : [[123]]}' FROM numbers("number" = "101")"""
     sql """INSERT INTO ${table_name} SELECT *, '{"k7":123, "k8": "elden ring", "k9" : 1.1112, "k10" : [1.12], "k11" : ["moon"]}' FROM numbers("number" = "203") where number > 100"""
     sql """INSERT INTO ${table_name} SELECT *, '{"k7":123, "k8": "elden ring", "k9" : 1.1112, "k10" : [1.12], "k11" : ["moon"]}' FROM numbers("number" = "411") where number > 200"""
     trigger_and_wait_compaction(table_name, "cumulative")
-    sql "alter table ${table_name} add column v2 variant<'k1' : int, 'k2' : string, 'k3' : array<int>, 'k4' : double> default null"
+    sql """alter table ${table_name} add column v2 variant<'k1' : int, 'k2' : string, 'k3' : array<int>, 'k4' : double ,
+                properties(\"variant_max_subcolumns_count\" = \"${max_subcolumns_count}\", \"variant_enable_typed_paths_to_sparse\" = \"${enable_typed_paths_to_sparse}\")> default null"""
     sql """INSERT INTO ${table_name} select k, v, v from ${table_name}"""
-    sql "alter table ${table_name} add column v3 variant<'k1' : int, 'k2' : string, 'k3' : array<int>, 'k4' : double> default null"
+    sql """alter table ${table_name} add column v3 variant<'k1' : int, 'k2' : string, 'k3' : array<int>, 'k4' : double,
+            properties(\"variant_max_subcolumns_count\" = \"${max_subcolumns_count}\", \"variant_enable_typed_paths_to_sparse\" = \"${enable_typed_paths_to_sparse}\")> default null"""
     sql """INSERT INTO ${table_name} select k, v, v, v from ${table_name}"""
     sql "alter table ${table_name} add column ss string default null"
     sql """INSERT INTO ${table_name} select k, v, v, v, v from ${table_name}"""
@@ -44,7 +50,7 @@
     qt_sql """select cast(v["k1"] as tinyint), cast(v2["k2"] as text), cast(v3["k3"] as string), cast(v["k7"] as tinyint), cast(v2["k8"] as text), cast(v3["k9"] as double) from ${table_name} where k > 200 order by k, 1, 2, 3, 4, 5, 6 limit 10"""
     qt_sql """select cast(v["k1"] as tinyint), cast(v2["k2"] as text), cast(v3["k3"] as string), cast(v["k7"] as tinyint), cast(v2["k8"] as text), cast(v3["k9"] as double) from ${table_name} where k > 300 order by k, 1, 2, 3, 4, 5, 6 limit 10"""
 
-    sql "alter table ${table_name} add column v4 variant default null"
+    sql "alter table ${table_name} add column v4 variant<properties(\"variant_max_subcolumns_count\" = \"${max_subcolumns_count}\", \"variant_enable_typed_paths_to_sparse\" = \"${enable_typed_paths_to_sparse}\")> default null"
     for (int i = 0; i < 20; i++) {
         sql """insert into ${table_name}  values (1, '{"a" : 1}', '{"a" : 1}', '{"a" : 1}', '{"a" : 1}', '{"a" : 1}')"""
     }
diff --git a/regression-test/suites/variant_p0/predefine/predefined_typed_to_sparse.groovy b/regression-test/suites/variant_p0/predefine/predefined_typed_to_sparse.groovy
new file mode 100644
index 0000000..cdd888a
--- /dev/null
+++ b/regression-test/suites/variant_p0/predefine/predefined_typed_to_sparse.groovy
@@ -0,0 +1,217 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+suite("test_predefine_typed_to_sparse", "p0"){ 
+    sql """ set enable_common_expr_pushdown = true """
+    def count = new Random().nextInt(10) + 1
+
+     def load_json_data = {table_name, file_name ->
+        // load the json data
+        streamLoad {
+            table "${table_name}"
+
+            // set http request header params
+            set 'read_json_by_line', 'true'
+            set 'format', 'json'
+            set 'max_filter_ratio', '0.1'
+            set 'memtable_on_sink_node', 'true'
+            file file_name // import json file
+            time 10000 // limit inflight 10s
+
+            // if declared a check callback, the default check condition will ignore.
+            // So you must check all condition
+
+            check { result, exception, startTime, endTime ->
+                if (exception != null) {
+                        throw exception
+                }
+                logger.info("Stream load ${file_name} result: ${result}".toString())
+                def json = parseJson(result)
+                assertEquals("success", json.Status.toLowerCase())
+                // assertEquals(json.NumberTotalRows, json.NumberLoadedRows + json.NumberUnselectedRows)
+                assertTrue(json.NumberLoadedRows > 0 && json.LoadBytes > 0)
+            }
+        }
+    }
+
+    def tableName = "test_predefine_typed_to_sparse"
+    sql "DROP TABLE IF EXISTS ${tableName}"
+    sql """
+        CREATE TABLE ${tableName} (
+        `id` bigint NOT NULL,
+        `var`  variant <
+                'array_decimal_*':array<decimalv3 (26,9)>,
+                'array_ipv6_*':array<ipv6>,
+                'int_*':int, 
+                'string_*':string, 
+                'decimal_*':decimalv3(26,9), 
+                'datetime_*':datetime,
+                'datetimev2_*':datetimev2(6),
+                'date_*':date,
+                'datev2_*':datev2,
+                'ipv4_*':ipv4,
+                'ipv6_*':ipv6,
+                'largeint_*':largeint,
+                'char_*': text,
+                properties (
+                    "variant_enable_typed_paths_to_sparse" = "true",
+                    "variant_max_subcolumns_count" = "${count}"
+                )
+            > NOT NULL,
+        INDEX idx_a_b (var) USING INVERTED PROPERTIES("field_pattern"="array_decimal_*") COMMENT '',
+        INDEX idx_a_c (var) USING INVERTED PROPERTIES("field_pattern"="array_ipv6_*") COMMENT '',
+        INDEX idx_a_d (var) USING INVERTED PROPERTIES("field_pattern"="int_*") COMMENT '',
+        INDEX idx_a_e (var) USING INVERTED PROPERTIES("field_pattern"="string_*", "parser"="english", "support_phrase" = "true") COMMENT '',
+        INDEX idx_a_f (var) USING INVERTED PROPERTIES("field_pattern"="decimal_*") COMMENT '',
+        INDEX idx_a_g (var) USING INVERTED PROPERTIES("field_pattern"="datetime_*") COMMENT '',
+        INDEX idx_a_h (var) USING INVERTED PROPERTIES("field_pattern"="datetimev2_*") COMMENT '',
+        INDEX idx_a_i (var) USING INVERTED PROPERTIES("field_pattern"="date_*") COMMENT '',
+        INDEX idx_a_j (var) USING INVERTED PROPERTIES("field_pattern"="datev2_*") COMMENT '',
+        INDEX idx_a_k (var) USING INVERTED PROPERTIES("field_pattern"="ipv4_*") COMMENT '',
+        INDEX idx_a_l (var) USING INVERTED PROPERTIES("field_pattern"="ipv6_*") COMMENT '',
+        INDEX idx_a_m (var) USING INVERTED PROPERTIES("field_pattern"="largeint_*") COMMENT '',
+        INDEX idx_a_n (var) USING INVERTED PROPERTIES("field_pattern"="char_*") COMMENT ''
+    ) ENGINE=OLAP DUPLICATE KEY(`id`) DISTRIBUTED BY HASH(`id`) BUCKETS 1 PROPERTIES ( "replication_allocation" = "tag.location.default: 1", "disable_auto_compaction" = "true")
+
+    """
+
+    sql """
+         INSERT INTO ${tableName} (`id`, `var`) VALUES
+        (
+            1,
+            '{
+              "array_decimal_1": ["12345678901234567.123456789", "987.654321"],
+              "array_ipv6_1": ["2001:0db8:85a3:0000:0000:8a2e:0370:7334", "::1"],
+              "int_1": 42,
+              "int_nested": {
+                "level1_num_1": 1011111,
+                "level1_num_2": 102
+              },
+              "string_1": "This is a sample string.",
+              "string_1_nested": {
+                "message": "Hello from nested object",
+                "metadata": {
+                  "timestamp": "2023-10-27T12:00:00Z",
+                  "source": "generator"
+                }
+              },
+              "decimal_1": 12345.6789,
+              "datetime_1": "2023-10-27 10:30:00",
+              "datetimev2_1": "2023-10-27 10:30:00.123456",
+              "date_1": "2023-10-27",
+              "datev2_1": "2023-10-28",
+              "ipv4_1": "192.168.1.1",
+              "ipv6_1": "::1",
+              "largeint_1": "12345678901234567890123456789012345678",
+              "char_1": "short text"
+            }'
+        ); 
+    """
+    for (int i = 1; i < 10; i++) {
+      load_json_data.call(tableName, getS3Url() + "/regression/variant/schema_tmpt${i}.json")
+    }
+
+    qt_sql """ select * from ${tableName} order by id limit 10 """
+
+    trigger_and_wait_compaction(tableName, "cumulative")
+
+    qt_sql """ select * from ${tableName} order by id limit 10"""
+
+    sql "DROP TABLE IF EXISTS ${tableName}"
+    sql """
+        CREATE TABLE ${tableName} (
+        `id` bigint NOT NULL,
+        `var`  variant <
+                'array_decimal_*':array<decimalv3 (26,9)>,
+                'array_ipv6_*':array<ipv6>,
+                'int_*':int, 
+                'string_*':string, 
+                'decimal_*':decimalv3(26,9), 
+                'datetime_*':datetime,
+                'datetimev2_*':datetimev2(6),
+                'date_*':date,
+                'datev2_*':datev2,
+                'ipv4_*':ipv4,
+                'ipv6_*':ipv6,
+                'largeint_*':largeint,
+                'char_*': text,
+                properties (
+                    "variant_enable_typed_paths_to_sparse" = "true",
+                    "variant_max_subcolumns_count" = "5"
+                )
+            > NOT NULL,
+        INDEX idx_a_b (var) USING INVERTED PROPERTIES("field_pattern"="array_decimal_*") COMMENT '',
+        INDEX idx_a_c (var) USING INVERTED PROPERTIES("field_pattern"="array_ipv6_*") COMMENT '',
+        INDEX idx_a_d (var) USING INVERTED PROPERTIES("field_pattern"="int_*") COMMENT '',
+        INDEX idx_a_e (var) USING INVERTED PROPERTIES("field_pattern"="string_*", "parser"="english", "support_phrase" = "true") COMMENT '',
+        INDEX idx_a_f (var) USING INVERTED PROPERTIES("field_pattern"="decimal_*") COMMENT '',
+        INDEX idx_a_g (var) USING INVERTED PROPERTIES("field_pattern"="datetime_*") COMMENT '',
+        INDEX idx_a_h (var) USING INVERTED PROPERTIES("field_pattern"="datetimev2_*") COMMENT '',
+        INDEX idx_a_i (var) USING INVERTED PROPERTIES("field_pattern"="date_*") COMMENT '',
+        INDEX idx_a_j (var) USING INVERTED PROPERTIES("field_pattern"="datev2_*") COMMENT '',
+        INDEX idx_a_k (var) USING INVERTED PROPERTIES("field_pattern"="ipv4_*") COMMENT '',
+        INDEX idx_a_l (var) USING INVERTED PROPERTIES("field_pattern"="ipv6_*") COMMENT '',
+        INDEX idx_a_m (var) USING INVERTED PROPERTIES("field_pattern"="largeint_*") COMMENT '',
+        INDEX idx_a_n (var) USING INVERTED PROPERTIES("field_pattern"="char_*") COMMENT ''
+    ) ENGINE=OLAP DUPLICATE KEY(`id`) DISTRIBUTED BY HASH(`id`) BUCKETS 1 PROPERTIES ( "replication_allocation" = "tag.location.default: 1", "disable_auto_compaction" = "true")
+    """    
+
+    for (int i = 1; i < 10; i++) {
+      sql """
+          INSERT INTO ${tableName} (`id`, `var`) VALUES
+          (
+            ${i},
+              '{
+                "array_decimal_1": ["12345678901234567.123456789", "987.654321"],
+                "array_ipv6_1": ["2001:0db8:85a3:0000:0000:8a2e:0370:7334", "::1"],
+                "int_1": 42,
+                "int_nested": {
+                  "level1_num_1": 1011111,
+                  "level1_num_2": 102
+                },
+                "string_1": "This is a sample string.",
+                "string_1_nested": {
+                  "message": "Hello from nested object",
+                  "metadata": {
+                    "timestamp": "2023-10-27T12:00:00Z",
+                    "source": "generator"
+                  }
+                },
+                "decimal_1": 12345.6789,
+                "datetime_1": "2023-10-27 10:30:00",
+                "datetimev2_1": "2023-10-27 10:30:00.123456",
+                "date_1": "2023-10-27",
+                "datev2_1": "2023-10-28",
+                "ipv4_1": "192.168.1.1",
+                "ipv6_1": "::1",
+                "largeint_1": "12345678901234567890123456789012345678",
+                "char_1": "short text"
+              }'
+          ); 
+      """
+    }
+
+    qt_sql """ select variant_type(var) from ${tableName} limit 1"""
+    qt_sql """ select * from ${tableName} order by id limit 10 """
+    qt_sql """ select var['array_decimal_1'], var['array_ipv6_1'], var['int_1'], var['int_nested'], var['string_1'], var['string_1_nested'], var['decimal_1'], var['datetime_1'], var['datetimev2_1'], var['date_1'], var['datev2_1'], var['ipv4_1'], var['ipv6_1'], var['largeint_1'], var['char_1'] from ${tableName} order by id """
+
+    trigger_and_wait_compaction(tableName, "cumulative")
+
+    qt_sql """ select variant_type(var) from ${tableName} limit 1"""
+    qt_sql """ select * from ${tableName} order by id limit 10"""
+    qt_sql """ select var['array_decimal_1'], var['array_ipv6_1'], var['int_1'], var['int_nested'], var['string_1'], var['string_1_nested'], var['decimal_1'], var['datetime_1'], var['datetimev2_1'], var['date_1'], var['datev2_1'], var['ipv4_1'], var['ipv6_1'], var['largeint_1'], var['char_1'] from ${tableName} order by id """
+
+}
\ No newline at end of file
diff --git a/regression-test/suites/variant_p0/predefine/test_all_prdefine_type_to_sparse.groovy b/regression-test/suites/variant_p0/predefine/test_all_prdefine_type_to_sparse.groovy
new file mode 100644
index 0000000..3264462
--- /dev/null
+++ b/regression-test/suites/variant_p0/predefine/test_all_prdefine_type_to_sparse.groovy
@@ -0,0 +1,391 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+suite("test_all_prdefine_type_to_sparse", "p0"){ 
+
+    sql """ set describe_extend_variant_column = true """
+
+    def tableName = "test_all_prdefine_type_to_sparse"
+    sql "set enable_decimal256 = true"
+    sql "DROP TABLE IF EXISTS ${tableName}"
+    sql """
+        CREATE TABLE ${tableName} (
+        `id` bigint NOT NULL,
+        `var`  variant <
+                'boolean_*':boolean,
+                'tinyint_*':tinyint,
+                'smallint_*':smallint,
+                'int_*':int, 
+                'bigint_*':bigint,
+                'largeint_*':largeint,
+                'char_*': text,
+                'string_*':string, 
+                'float_*':float,
+                'double_*':double,
+                'decimal32_*':decimalv3(8,2),
+                'decimal64_*':decimalv3(16,9),
+                'decimal128_*':decimalv3(36,9),
+                'decimal256_*':decimalv3(70,60),
+                'datetime_*':datetime,
+                'date_*':date,
+                'ipv4_*':ipv4,
+                'ipv6_*':ipv6,
+                'array_boolean_*':array<boolean>,
+                'array_tinyint_*':array<tinyint>,
+                'array_smallint_*':array<smallint>,
+                'array_int_*':array<int>,
+                'array_bigint_*':array<bigint>,
+                'array_largeint_*':array<largeint>,
+                'array_char_*':array<text>,
+                'array_string_*':array<string>,
+                'array_float_*':array<float>,
+                'array_double_*':array<double>,
+                'array_decimal32_*':array<decimalv3(8,2)>,
+                'array_decimal64_*':array<decimalv3(16,9)>,
+                'array_decimal128_*':array<decimalv3(36,9)>,
+                'array_decimal256_*':array<decimalv3(70,60)>,
+                'array_datetime_*':array<datetime>,
+                'array_date_*':array<date>,
+                'array_ipv4_*':array<ipv4>,
+                'array_ipv6_*':array<ipv6>,
+                properties (
+                    "variant_enable_typed_paths_to_sparse" = "true",
+                    "variant_max_subcolumns_count" = "1"
+                )
+            > NOT NULL
+    ) ENGINE=OLAP DUPLICATE KEY(`id`) DISTRIBUTED BY HASH(`id`) BUCKETS 1 PROPERTIES ( "replication_allocation" = "tag.location.default: 1", "disable_auto_compaction" = "true")
+
+    """
+
+    sql """
+         INSERT INTO ${tableName} VALUES
+        (0,
+            '{
+              "boolean_1": true,
+              "tinyint_1": 1,
+              "smallint_1": 1,
+              "int_1": 1,
+              "bigint_1": 1,
+              "largeint_1": 1,
+              "char_1": "1",
+              "string_1": "1",
+              "float_1": 1.12,
+              "double_1": 1.12,
+              "decimal32_1": 1.12,
+              "decimal64_1": 1.12,
+              "decimal128_1": 1.12,
+              "decimal256_1": 1.12,
+              "datetime_1": "2021-01-01 00:00:00",
+              "date_1": "2021-01-01",
+              "ipv4_1": "192.168.1.1",
+              "ipv6_1": "2001:0db8:85a3:0000:0000:8a2e:0370:7334",
+              "array_boolean_1": [true],
+              "array_tinyint_1": [1, null],
+              "array_smallint_1": [1, null],
+              "array_int_1": [1, null],
+              "array_bigint_1": [1, null],
+              "array_largeint_1": [1, null],
+              "array_char_1": ["1"],
+              "array_string_1": ["1"],
+              "array_float_1": [1.12],
+              "array_double_1": [1.12],
+              "array_decimal32_1": [1.12],
+              "array_decimal64_1": [1.12],
+              "array_decimal128_1": [1.12],
+              "array_decimal256_1": [1.12],
+              "array_datetime_1": ["2021-01-01 00:00:00"],
+              "array_date_1": ["2021-01-01"],
+              "array_ipv4_1": ["192.168.1.1"],
+              "array_ipv6_1": ["2001:0db8:85a3:0000:0000:8a2e:0370:7334"],
+              "other_1": "1"
+            }'
+        ),
+        (1,
+            '{"other_1": "1"}'
+        ); 
+    """
+
+    qt_sql """ select variant_type(var) from ${tableName} limit 1"""
+    qt_sql """ select var from ${tableName} order by id """
+
+
+    def check_table = {
+        def before_result = sql """ select var from ${tableName} order by id """
+        log.info("before_result: ${before_result}")
+        qt_sql_compaction_before """ desc ${tableName} """
+
+        trigger_and_wait_compaction(tableName, "full")
+
+        def after_result = sql """ select var from ${tableName} order by id """
+        log.info("after_result: ${after_result}")
+        assertTrue(before_result.toString() == after_result.toString())
+        
+        qt_sql_compaction_after """ desc ${tableName} """
+        qt_sql """ select var from ${tableName} order by id """
+    }
+
+    sql """ insert into ${tableName} values (2, '{"tinyint_1": 1}'),(3, '{"tinyint_1": 2}'); """
+
+    check_table();
+
+    sql """ insert into ${tableName} values (4, '{"smallint_1": 1}'),(5, '{"smallint_1": 2}'),(6, '{"smallint_1": 3}'); """
+
+    check_table();
+
+    sql """ insert into ${tableName}  values (7, '{"int_1": 1}'),(8, '{"int_1": 2}'),(9, '{"int_1": 3}'),(10, '{"int_1": 4}'); """
+
+    check_table();
+
+    sql """ insert into ${tableName}  values (11, '{"bigint_1": 1}'),(12, '{"bigint_1": 2}'),(13, '{"bigint_1": 3}'),(14, '{"bigint_1": 4}'),(15, '{"bigint_1": 5}'); """
+
+    check_table();
+
+    sql """ insert into ${tableName}  values (16, '{"largeint_1": 1}'),(17, '{"largeint_1": 2}'),(18, '{"largeint_1": 3}'),(19, '{"largeint_1": 4}'),(20, '{"largeint_1": 5}'),(21, '{"largeint_1": 6}'); """
+
+    check_table();
+
+    sql """ insert into ${tableName}  values (22, '{"char_1": "1"}'),(23, '{"char_1": "2"}'),(24, '{"char_1": "3"}'),(25, '{"char_1": "4"}'),(26, '{"char_1": "5"}'),(27, '{"char_1": "6"}'),(28, '{"char_1": "7"}'); """
+
+    check_table();
+
+    sql """ insert into ${tableName}  values (29, '{"string_1": "1"}'),(30, '{"string_1": "2"}'),(31, '{"string_1": "3"}'),(32, '{"string_1": "4"}'),(33, '{"string_1": "5"}'),
+    (34, '{"string_1": "6"}'),(35, '{"string_1": "7"}'),(36, '{"string_1": "8"}'); """
+
+    check_table();
+
+    sql """ insert into ${tableName}  values (37, '{"float_1": 1.12}'),(38, '{"float_1": 2.12}'),(39, '{"float_1": 3.12}'),(40, '{"float_1": 4.12}'),(41, '{"float_1": 5.12}'),
+    (42, '{"float_1": 6.12}'),(43, '{"float_1": 7.12}'),(44, '{"float_1": 8.12}'); """
+
+    check_table();
+
+    sql """ insert into ${tableName}  values (45, '{"double_1": 1.12}'),(46, '{"double_1": 2.12}'),(47, '{"double_1": 3.12}'),(48, '{"double_1": 4.12}'),(49, '{"double_1": 5.12}'),
+    (50, '{"double_1": 6.12}'),(51, '{"double_1": 7.12}'),(52, '{"double_1": 8.12}'),(53, '{"double_1": 9.12}'); """
+
+    check_table();
+
+    sql """ insert into ${tableName}  values (54, '{"decimal32_1": 1.12}'),(55, '{"decimal32_1": 2.12}'),(56, '{"decimal32_1": 3.12}'),(57, '{"decimal32_1": 4.12}'),(58, '{"decimal32_1": 5.12}'),
+    (59, '{"decimal32_1": 6.12}'),(60, '{"decimal32_1": 7.12}'),(61, '{"decimal32_1": 8.12}'),(62, '{"decimal32_1": 9.12}'),(63, '{"decimal32_1": 10.12}'); """
+
+    check_table();
+
+    sql """ insert into ${tableName}  values (64, '{"decimal64_1": 1.12}'),(65, '{"decimal64_1": 2.12}'),(66, '{"decimal64_1": 3.12}'),(67, '{"decimal64_1": 4.12}'),(68, '{"decimal64_1": 5.12}'),
+    (69, '{"decimal64_1": 6.12}'),(70, '{"decimal64_1": 7.12}'),(71, '{"decimal64_1": 8.12}'),(72, '{"decimal64_1": 9.12}'),(73, '{"decimal64_1": 10.12}'),(74, '{"decimal64_1": 11.12}'); """
+
+    check_table();
+
+    sql """ insert into ${tableName}  values (75, '{"decimal128_1": 1.12}'),(76, '{"decimal128_1": 2.12}'),(77, '{"decimal128_1": 3.12}'),(78, '{"decimal128_1": 4.12}'),(79, '{"decimal128_1": 5.12}'),
+    (80, '{"decimal128_1": 6.12}'),(81, '{"decimal128_1": 7.12}'),(82, '{"decimal128_1": 8.12}'),(83, '{"decimal128_1": 9.12}'),(84, '{"decimal128_1": 10.12}'),(85, '{"decimal128_1": 11.12}'),
+    (86, '{"decimal128_1": 12.12}'); """
+
+    check_table();
+
+    sql """ insert into ${tableName}  values (87, '{"decimal256_1": 1.12}'),(88, '{"decimal256_1": 2.12}'),(89, '{"decimal256_1": 3.12}'),(90, '{"decimal256_1": 4.12}'),(91, '{"decimal256_1": 5.12}'),
+    (92, '{"decimal256_1": 6.12}'),(93, '{"decimal256_1": 7.12}'),(94, '{"decimal256_1": 8.12}'),(95, '{"decimal256_1": 9.12}'),(96, '{"decimal256_1": 10.12}'),(97, '{"decimal256_1": 11.12}'),
+    (98, '{"decimal256_1": 12.12}'),(99, '{"decimal256_1": 13.12}'); """
+
+    check_table();
+
+    sql """ insert into ${tableName}  values (100, '{"datetime_1": "2021-01-01 00:00:00"}'),(101, '{"datetime_1": "2021-01-01 00:00:01"}'),(102, '{"datetime_1": "2021-01-01 00:00:02"}'),
+    (103, '{"datetime_1": "2021-01-01 00:00:03"}'),(104, '{"datetime_1": "2021-01-01 00:00:04"}'),(105, '{"datetime_1": "2021-01-01 00:00:05"}'),(106, '{"datetime_1": "2021-01-01 00:00:06"}'),
+    (107, '{"datetime_1": "2021-01-01 00:00:07"}'),(108, '{"datetime_1": "2021-01-01 00:00:08"}'),(109, '{"datetime_1": "2021-01-01 00:00:09"}'),(110, '{"datetime_1": "2021-01-01 00:00:10"}'),
+    (111, '{"datetime_1": "2021-01-01 00:00:07"}'),(112, '{"datetime_1": "2021-01-01 00:00:08"}'); """
+
+    check_table();
+
+    sql """ insert into ${tableName}  values (113, '{"date_1": "2021-01-01"}'),(114, '{"date_1": "2021-01-02"}'),(115, '{"date_1": "2021-01-03"}'),(116, '{"date_1": "2021-01-04"}'),
+    (117, '{"date_1": "2021-01-05"}'),(118, '{"date_1": "2021-01-06"}'),(119, '{"date_1": "2021-01-07"}'),(120, '{"date_1": "2021-01-08"}'),(121, '{"date_1": "2021-01-09"}'),(122, '{"date_1": "2021-01-10"}'),
+    (123, '{"date_1": "2021-01-07"}'),(124, '{"date_1": "2021-01-08"}'),(125, '{"date_1": "2021-01-09"}'),(126, '{"date_1": "2021-01-10"}'); """
+
+    check_table();
+
+    sql """ insert into ${tableName}  values (127, '{"ipv4_1": "192.168.1.1"}'),(128, '{"ipv4_1": "192.168.1.2"}'),(129, '{"ipv4_1": "192.168.1.3"}'),(130, '{"ipv4_1": "192.168.1.4"}'),
+    (131, '{"ipv4_1": "192.168.1.5"}'),(132, '{"ipv4_1": "192.168.1.6"}'),(133, '{"ipv4_1": "192.168.1.7"}'),(134, '{"ipv4_1": "192.168.1.8"}'),(135, '{"ipv4_1": "192.168.1.9"}'),(136, '{"ipv4_1": "192.168.1.10"}'),
+    (137, '{"ipv4_1": "192.168.1.7"}'),(138, '{"ipv4_1": "192.168.1.8"}'),(139, '{"ipv4_1": "192.168.1.9"}'),(140, '{"ipv4_1": "192.168.1.10"}'),(141, '{"ipv4_1": "192.168.1.11"}'); """
+
+    check_table();
+
+    sql """ insert into ${tableName}  values (142, '{"ipv6_1": "2001:0db8:85a3:0000:0000:8a2e:0370:7334"}'),(143, '{"ipv6_1": "2001:0db8:85a3:0000:0000:8a2e:0370:7335"}'),
+    (144, '{"ipv6_1": "2001:0db8:85a3:0000:0000:8a2e:0370:7336"}'),(145, '{"ipv6_1": "2001:0db8:85a3:0000:0000:8a2e:0370:7337"}'),(146, '{"ipv6_1": "2001:0db8:85a3:0000:0000:8a2e:0370:7338"}'),
+    (147, '{"ipv6_1": "2001:0db8:85a3:0000:0000:8a2e:0370:7339"}'),(148, '{"ipv6_1": "2001:0db8:85a3:0000:0000:8a2e:0370:733a"}'),(149, '{"ipv6_1": "2001:0db8:85a3:0000:0000:8a2e:0370:733b"}'),
+    (150, '{"ipv6_1": "2001:0db8:85a3:0000:0000:8a2e:0370:733c"}'),(151, '{"ipv6_1": "2001:0db8:85a3:0000:0000:8a2e:0370:733d"}'),(152, '{"ipv6_1": "2001:0db8:85a3:0000:0000:8a2e:0370:733e"}'),
+    (153, '{"ipv6_1": "2001:0db8:85a3:0000:0000:8a2e:0370:733f"}'),(154, '{"ipv6_1": "2001:0db8:85a3:0000:0000:8a2e:0370:7340"}'),(155, '{"ipv6_1": "2001:0db8:85a3:0000:0000:8a2e:0370:7341"}'),
+    (156, '{"ipv6_1": "2001:0db8:85a3:0000:0000:8a2e:0370:733f"}'),(157, '{"ipv6_1": "2001:0db8:85a3:0000:0000:8a2e:0370:7340"}'); """
+
+    check_table();
+
+    sql """ insert into ${tableName}  values (158, '{"array_boolean_1": [true]}'),(159, '{"array_boolean_1": [false]}'),(160, '{"array_boolean_1": [true]}'),(161, '{"array_boolean_1": [false]}'),
+    (162, '{"array_boolean_1": [true]}'),(163, '{"array_boolean_1": [false]}'),(164, '{"array_boolean_1": [true]}'),(165, '{"array_boolean_1": [false]}'),(166, '{"array_boolean_1": [true]}'),(167, '{"array_boolean_1": [false]}'),
+    (168, '{"array_boolean_1": [true]}'),(169, '{"array_boolean_1": [false]}'),(170, '{"array_boolean_1": [true]}'),(171, '{"array_boolean_1": [false]}'),(172, '{"array_boolean_1": [true]}'),(173, '{"array_boolean_1": [false]}');"""
+
+    check_table();
+
+    sql """ insert into ${tableName}  values (174, '{"array_tinyint_1": [1]}'),(175, '{"array_tinyint_1": [2]}'),(176, '{"array_tinyint_1": [3]}'),(177, '{"array_tinyint_1": [4]}'),
+    (178, '{"array_tinyint_1": [5]}'),(179, '{"array_tinyint_1": [6]}'),(180, '{"array_tinyint_1": [7]}'),(181, '{"array_tinyint_1": [8]}'),(182, '{"array_tinyint_1": [9]}'),(183, '{"array_tinyint_1": [10]}'),
+    (184, '{"array_tinyint_1": [11]}'),(185, '{"array_tinyint_1": [12]}'),(186, '{"array_tinyint_1": [13]}'),(187, '{"array_tinyint_1": [14]}'),(188, '{"array_tinyint_1": [15]}'),(189, '{"array_tinyint_1": [16]}'),
+    (190, '{"array_tinyint_1": [17]}'),(191, '{"array_tinyint_1": [18]}'); """
+
+    check_table();
+    
+    sql """ insert into ${tableName}  values (192, '{"array_smallint_1": [1]}'),(193, '{"array_smallint_1": [2, null]}'),(194, '{"array_smallint_1": [3]}'),(195, '{"array_smallint_1": [4]}'),
+    (196, '{"array_smallint_1": [5]}'),(197, '{"array_smallint_1": [6]}'),(198, '{"array_smallint_1": [7]}'),(199, '{"array_smallint_1": [8]}'),(200, '{"array_smallint_1": [9]}'),(201, '{"array_smallint_1": [10]}'),
+    (202, '{"array_smallint_1": [11]}'),(203, '{"array_smallint_1": [12]}'),(204, '{"array_smallint_1": [13]}'),(205, '{"array_smallint_1": [14]}'),(206, '{"array_smallint_1": [15]}'),(207, '{"array_smallint_1": [16]}'),
+    (208, '{"array_smallint_1": [17]}'),(209, '{"array_smallint_1": [18]}'),(210, '{"array_smallint_1": [19]}'); """
+
+    check_table();
+
+    sql """ insert into ${tableName}  values (211, '{"array_int_1": [1]}'),(212, '{"array_int_1": [2]}'),(213, '{"array_int_1": [3]}'),(214, '{"array_int_1": [4]}'),
+    (215, '{"array_int_1": [5]}'),(216, '{"array_int_1": [6]}'),(217, '{"array_int_1": [7]}'),(218, '{"array_int_1": [8]}'),(219, '{"array_int_1": [9]}'),(220, '{"array_int_1": [10]}'),
+    (221, '{"array_int_1": [11]}'),(222, '{"array_int_1": [12]}'),(223, '{"array_int_1": [13]}'),(224, '{"array_int_1": [14]}'),(225, '{"array_int_1": [15]}'),(226, '{"array_int_1": [16]}'),
+    (227, '{"array_int_1": [17]}'),(228, '{"array_int_1": [18]}'),(229, '{"array_int_1": [19]}'),(230, '{"array_int_1": [20]}'); """
+
+    check_table();
+
+    sql """ insert into ${tableName}  values (231, '{"array_bigint_1": [1]}'),(232, '{"array_bigint_1": [2]}'),(233, '{"array_bigint_1": [3]}'),(234, '{"array_bigint_1": [4]}'),
+    (235, '{"array_bigint_1": [5]}'),(236, '{"array_bigint_1": [6]}'),(237, '{"array_bigint_1": [7]}'),(238, '{"array_bigint_1": [8]}'),(239, '{"array_bigint_1": [9]}'),(240, '{"array_bigint_1": [10]}'),
+    (241, '{"array_bigint_1": [11]}'),(242, '{"array_bigint_1": [12]}'),(243, '{"array_bigint_1": [13]}'),(244, '{"array_bigint_1": [14]}'),(245, '{"array_bigint_1": [15]}'),(246, '{"array_bigint_1": [16]}'),
+    (247, '{"array_bigint_1": [17]}'),(248, '{"array_bigint_1": [18]}'),(249, '{"array_bigint_1": [19]}'),(250, '{"array_bigint_1": [20]}'),(251, '{"array_bigint_1": [21]}'); """
+
+    check_table();
+
+    sql """ insert into ${tableName}  values (252, '{"array_largeint_1": [1, null]}'),(253, '{"array_largeint_1": [2]}'),(254, '{"array_largeint_1": [3]}'),(255, '{"array_largeint_1": [4]}'),
+    (256, '{"array_largeint_1": [5]}'),(257, '{"array_largeint_1": [6]}'),(258, '{"array_largeint_1": [7]}'),(259, '{"array_largeint_1": [8]}'),(260, '{"array_largeint_1": [9]}'),(261, '{"array_largeint_1": [10]}'),
+    (262, '{"array_largeint_1": [11]}'),(263, '{"array_largeint_1": [12]}'),(264, '{"array_largeint_1": [13]}'),(265, '{"array_largeint_1": [14]}'),(266, '{"array_largeint_1": [15]}'),(267, '{"array_largeint_1": [16]}'),
+    (268, '{"array_largeint_1": [17]}'),(269, '{"array_largeint_1": [18]}'),(270, '{"array_largeint_1": [19]}'),(271, '{"array_largeint_1": [20]}'),(272, '{"array_largeint_1": [21]}'),(273, '{"array_largeint_1": [22]}'); """
+
+    check_table();
+
+    sql """ insert into ${tableName}  values (274, '{"array_char_1": ["1"]}'),(275, '{"array_char_1": ["2"]}'),(276, '{"array_char_1": ["3"]}'),(277, '{"array_char_1": ["4"]}'),
+    (278, '{"array_char_1": ["5"]}'),(279, '{"array_char_1": ["6"]}'),(280, '{"array_char_1": ["7"]}'),(281, '{"array_char_1": ["8"]}'),(282, '{"array_char_1": ["9"]}'),(283, '{"array_char_1": ["10"]}'),
+    (284, '{"array_char_1": ["11"]}'),(285, '{"array_char_1": ["12"]}'),(286, '{"array_char_1": ["13"]}'),(287, '{"array_char_1": ["14"]}'),(288, '{"array_char_1": ["15"]}'),(289, '{"array_char_1": ["16"]}'),
+    (290, '{"array_char_1": ["17"]}'),(291, '{"array_char_1": ["18"]}'),(292, '{"array_char_1": ["19"]}'),(293, '{"array_char_1": ["20"]}'),(294, '{"array_char_1": ["21"]}'),(295, '{"array_char_1": ["22"]}'),
+    (296, '{"array_char_1": ["23"]}'); """
+
+    check_table();
+
+    sql """ insert into ${tableName}  values (297, '{"array_string_1": ["1"]}'),(298, '{"array_string_1": ["2"]}'),(299, '{"array_string_1": ["3"]}'),(300, '{"array_string_1": ["4"]}'),
+    (301, '{"array_string_1": ["5"]}'),(302, '{"array_string_1": ["6"]}'),(303, '{"array_string_1": ["7"]}'),(304, '{"array_string_1": ["8"]}'),(305, '{"array_string_1": ["9"]}'),(306, '{"array_string_1": ["10"]}'),
+    (307, '{"array_string_1": ["11"]}'),(308, '{"array_string_1": ["12"]}'),(309, '{"array_string_1": ["13"]}'),(310, '{"array_string_1": ["14"]}'),(311, '{"array_string_1": ["15"]}'),(312, '{"array_string_1": ["16"]}'),
+    (313, '{"array_string_1": ["17"]}'),(314, '{"array_string_1": ["18"]}'),(315, '{"array_string_1": ["19"]}'),(316, '{"array_string_1": ["20"]}'),(317, '{"array_string_1": ["21"]}'),(318, '{"array_string_1": ["22"]}'),
+    (319, '{"array_string_1": ["23"]}'),(320, '{"array_string_1": ["24"]}'); """
+
+    check_table();
+
+    sql """ insert into ${tableName}  values (321, '{"array_float_1": [1.12]}'),(322, '{"array_float_1": [2.12]}'),(323, '{"array_float_1": [3.12]}'),(324, '{"array_float_1": [4.12]}'),
+    (325, '{"array_float_1": [5.12]}'),(326, '{"array_float_1": [6.12]}'),(327, '{"array_float_1": [7.12]}'),(328, '{"array_float_1": [8.12]}'),(329, '{"array_float_1": [9.12]}'),(330, '{"array_float_1": [10.12]}'),
+    (331, '{"array_float_1": [11.12]}'),(332, '{"array_float_1": [12.12]}'),(333, '{"array_float_1": [13.12]}'),(334, '{"array_float_1": [14.12]}'),(335, '{"array_float_1": [15.12]}'),(336, '{"array_float_1": [16.12]}'),
+    (337, '{"array_float_1": [17.12]}'),(338, '{"array_float_1": [18.12]}'),(339, '{"array_float_1": [19.12]}'),(340, '{"array_float_1": [20.12]}'),(341, '{"array_float_1": [21.12]}'),(342, '{"array_float_1": [22.12]}'),
+    (343, '{"array_float_1": [23.12]}'),(344, '{"array_float_1": [24.12]}'),(345, '{"array_float_1": [25.12]}'); """
+
+    check_table();
+
+    sql """ insert into ${tableName}  values (346, '{"array_double_1": [1.12]}'),(347, '{"array_double_1": [2.12]}'),(348, '{"array_double_1": [3.12]}'),(349, '{"array_double_1": [4.12]}'),
+    (350, '{"array_double_1": [5.12]}'),(351, '{"array_double_1": [6.12]}'),(352, '{"array_double_1": [7.12]}'),(353, '{"array_double_1": [8.12]}'),(354, '{"array_double_1": [9.12]}'),(355, '{"array_double_1": [10.12]}'),
+    (356, '{"array_double_1": [11.12]}'),(357, '{"array_double_1": [12.12]}'),(358, '{"array_double_1": [13.12]}'),(359, '{"array_double_1": [14.12]}'),(360, '{"array_double_1": [15.12]}'),(361, '{"array_double_1": [16.12]}'),
+    (362, '{"array_double_1": [17.12]}'),(363, '{"array_double_1": [18.12]}'),(364, '{"array_double_1": [19.12]}'),(365, '{"array_double_1": [20.12]}'),(366, '{"array_double_1": [21.12]}'),(367, '{"array_double_1": [22.12]}'),
+    (368, '{"array_double_1": [23.12]}'),(369, '{"array_double_1": [24.12]}'),(370, '{"array_double_1": [25.12]}'),(371, '{"array_double_1": [26.12]}'); """
+
+    check_table();
+
+    sql """ insert into ${tableName}  values (372, '{"array_decimal32_1": [1.12]}'),(373, '{"array_decimal32_1": [2.12]}'),(374, '{"array_decimal32_1": [3.12]}'),(375, '{"array_decimal32_1": [4.12]}'),
+    (376, '{"array_decimal32_1": [5.12]}'),(377, '{"array_decimal32_1": [6.12]}'),(378, '{"array_decimal32_1": [7.12]}'),(379, '{"array_decimal32_1": [8.12]}'),(380, '{"array_decimal32_1": [9.12]}'),(381, '{"array_decimal32_1": [10.12]}'),
+    (382, '{"array_decimal32_1": [11.12]}'),(383, '{"array_decimal32_1": [12.12]}'),(384, '{"array_decimal32_1": [13.12]}'),(385, '{"array_decimal32_1": [14.12]}'),(386, '{"array_decimal32_1": [15.12]}'),(387, '{"array_decimal32_1": [16.12]}'),
+    (388, '{"array_decimal32_1": [17.12]}'),(389, '{"array_decimal32_1": [18.12]}'),(390, '{"array_decimal32_1": [19.12]}'),(391, '{"array_decimal32_1": [20.12]}'),(392, '{"array_decimal32_1": [21.12]}'),(393, '{"array_decimal32_1": [22.12]}'),
+    (394, '{"array_decimal32_1": [23.12]}'),(395, '{"array_decimal32_1": [24.12]}'),(396, '{"array_decimal32_1": [25.12]}'),(397, '{"array_decimal32_1": [26.12]}'),(398, '{"array_decimal32_1": [27.12]}'); """
+
+    check_table();
+
+    sql """ insert into ${tableName}  values (399, '{"array_decimal64_1": [1.12]}'),(400, '{"array_decimal64_1": [2.12]}'),(401, '{"array_decimal64_1": [3.12]}'),(402, '{"array_decimal64_1": [4.12]}'),
+    (403, '{"array_decimal64_1": [5.12]}'),(404, '{"array_decimal64_1": [6.12]}'),(405, '{"array_decimal64_1": [7.12]}'),(406, '{"array_decimal64_1": [8.12]}'),(407, '{"array_decimal64_1": [9.12]}'),(408, '{"array_decimal64_1": [10.12]}'),
+    (409, '{"array_decimal64_1": [11.12]}'),(410, '{"array_decimal64_1": [12.12]}'),(411, '{"array_decimal64_1": [13.12]}'),(412, '{"array_decimal64_1": [14.12]}'),(413, '{"array_decimal64_1": [15.12]}'),(414, '{"array_decimal64_1": [16.12]}'),
+    (415, '{"array_decimal64_1": [17.12]}'),(416, '{"array_decimal64_1": [18.12]}'),(417, '{"array_decimal64_1": [19.12]}'),(418, '{"array_decimal64_1": [20.12]}'),(419, '{"array_decimal64_1": [21.12]}'),(420, '{"array_decimal64_1": [22.12]}'),
+    (421, '{"array_decimal64_1": [23.12]}'),(422, '{"array_decimal64_1": [24.12]}'),(423, '{"array_decimal64_1": [25.12]}'),(424, '{"array_decimal64_1": [26.12]}'),(425, '{"array_decimal64_1": [27.12]}'),(426, '{"array_decimal64_1": [28.12]}'); """
+
+    check_table();
+
+    sql """ insert into ${tableName}  values (427, '{"array_decimal128_1": [1.12]}'),(428, '{"array_decimal128_1": [2.12]}'),(429, '{"array_decimal128_1": [3.12]}'),(430, '{"array_decimal128_1": [4.12]}'),
+    (431, '{"array_decimal128_1": [5.12]}'),(432, '{"array_decimal128_1": [6.12]}'),(433, '{"array_decimal128_1": [7.12]}'),(434, '{"array_decimal128_1": [8.12]}'),(435, '{"array_decimal128_1": [9.12]}'),(436, '{"array_decimal128_1": [10.12]}'),
+    (437, '{"array_decimal128_1": [11.12]}'),(438, '{"array_decimal128_1": [12.12]}'),(439, '{"array_decimal128_1": [13.12]}'),(440, '{"array_decimal128_1": [14.12]}'),(441, '{"array_decimal128_1": [15.12]}'),(442, '{"array_decimal128_1": [16.12]}'),
+    (443, '{"array_decimal128_1": [17.12]}'),(444, '{"array_decimal128_1": [18.12]}'),(445, '{"array_decimal128_1": [19.12]}'),(446, '{"array_decimal128_1": [20.12]}'),(447, '{"array_decimal128_1": [21.12]}'),(448, '{"array_decimal128_1": [22.12]}'),
+    (449, '{"array_decimal128_1": [23.12]}'),(450, '{"array_decimal128_1": [24.12]}'),(451, '{"array_decimal128_1": [25.12]}'),(452, '{"array_decimal128_1": [26.12]}'),(453, '{"array_decimal128_1": [27.12]}'),(454, '{"array_decimal128_1": [28.12]}'),
+    (455, '{"array_decimal128_1": [29.12]}'); """
+
+    check_table();
+
+    sql """ insert into ${tableName}  values (456, '{"array_decimal256_1": [1.12]}'),(457, '{"array_decimal256_1": [2.12]}'),(458, '{"array_decimal256_1": [3.12]}'),(459, '{"array_decimal256_1": [4.12]}'),
+    (460, '{"array_decimal256_1": [5.12]}'),(461, '{"array_decimal256_1": [6.12]}'),(462, '{"array_decimal256_1": [7.12]}'),(463, '{"array_decimal256_1": [8.12]}'),(464, '{"array_decimal256_1": [9.12]}'),(465, '{"array_decimal256_1": [10.12]}'),
+    (466, '{"array_decimal256_1": [11.12]}'),(467, '{"array_decimal256_1": [12.12]}'),(468, '{"array_decimal256_1": [13.12]}'),(469, '{"array_decimal256_1": [14.12]}'),(470, '{"array_decimal256_1": [15.12]}'),(471, '{"array_decimal256_1": [16.12]}'),
+    (472, '{"array_decimal256_1": [17.12]}'),(473, '{"array_decimal256_1": [18.12]}'),(474, '{"array_decimal256_1": [19.12]}'),(475, '{"array_decimal256_1": [20.12]}'),(476, '{"array_decimal256_1": [21.12]}'),(477, '{"array_decimal256_1": [22.12]}'),
+    (478, '{"array_decimal256_1": [23.12]}'),(479, '{"array_decimal256_1": [24.12]}'),(480, '{"array_decimal256_1": [25.12]}'),(481, '{"array_decimal256_1": [26.12]}'),(482, '{"array_decimal256_1": [27.12]}'),(483, '{"array_decimal256_1": [28.12]}'),
+    (484, '{"array_decimal256_1": [29.12]}'),(485, '{"array_decimal256_1": [30.12]}'); """
+
+    check_table();
+
+    sql """ insert into ${tableName}  values (486, '{"array_datetime_1": ["2021-01-01 00:00:00"]}'),(487, '{"array_datetime_1": ["2021-01-01 00:00:01"]}'),(488, '{"array_datetime_1": ["2021-01-01 00:00:02"]}'),
+    (489, '{"array_datetime_1": ["2021-01-01 00:00:03"]}'),(490, '{"array_datetime_1": ["2021-01-01 00:00:04"]}'),(491, '{"array_datetime_1": ["2021-01-01 00:00:05"]}'),(492, '{"array_datetime_1": ["2021-01-01 00:00:06"]}'),
+    (493, '{"array_datetime_1": ["2021-01-01 00:00:07"]}'),(494, '{"array_datetime_1": ["2021-01-01 00:00:08"]}'),(495, '{"array_datetime_1": ["2021-01-01 00:00:09"]}'),(496, '{"array_datetime_1": ["2021-01-01 00:00:10"]}'),
+    (497, '{"array_datetime_1": ["2021-01-01 00:00:07"]}'),(498, '{"array_datetime_1": ["2021-01-01 00:00:08"]}'),(499, '{"array_datetime_1": ["2021-01-01 00:00:09"]}'),(500, '{"array_datetime_1": ["2021-01-01 00:00:10"]}'),
+    (501, '{"array_datetime_1": ["2021-01-01 00:00:07"]}'),(502, '{"array_datetime_1": ["2021-01-01 00:00:08"]}'),(503, '{"array_datetime_1": ["2021-01-01 00:00:09"]}'),(504, '{"array_datetime_1": ["2021-01-01 00:00:10"]}'),
+    (505, '{"array_datetime_1": ["2021-01-01 00:00:07"]}'),(506, '{"array_datetime_1": ["2021-01-01 00:00:08"]}'),(507, '{"array_datetime_1": ["2021-01-01 00:00:09"]}'),(508, '{"array_datetime_1": ["2021-01-01 00:00:10"]}'),
+    (509, '{"array_datetime_1": ["2021-01-01 00:00:07"]}'),(510, '{"array_datetime_1": ["2021-01-01 00:00:08"]}'),(511, '{"array_datetime_1": ["2021-01-01 00:00:09"]}'),(512, '{"array_datetime_1": ["2021-01-01 00:00:10"]}'),
+    (513, '{"array_datetime_1": ["2021-01-01 00:00:07"]}'),(514, '{"array_datetime_1": ["2021-01-01 00:00:08"]}'),(515, '{"array_datetime_1": ["2021-01-01 00:00:09"]}'),(516, '{"array_datetime_1": ["2021-01-01 00:00:10"]}'); """
+
+    check_table();
+
+    sql """ insert into ${tableName}  values (517, '{"array_date_1": ["2021-01-01"]}'),(518, '{"array_date_1": ["2021-01-02"]}'),(519, '{"array_date_1": ["2021-01-03"]}'),(520, '{"array_date_1": ["2021-01-04"]}'),
+    (521, '{"array_date_1": ["2021-01-05"]}'),(522, '{"array_date_1": ["2021-01-06"]}'),(523, '{"array_date_1": ["2021-01-07"]}'),(524, '{"array_date_1": ["2021-01-08"]}'),(525, '{"array_date_1": ["2021-01-09"]}'),(526, '{"array_date_1": ["2021-01-10"]}'),
+    (527, '{"array_date_1": ["2021-01-07"]}'),(528, '{"array_date_1": ["2021-01-08"]}'),(529, '{"array_date_1": ["2021-01-09"]}'),(530, '{"array_date_1": ["2021-01-10"]}'),
+    (531, '{"array_date_1": ["2021-01-07"]}'),(532, '{"array_date_1": ["2021-01-08"]}'),(533, '{"array_date_1": ["2021-01-09"]}'),(534, '{"array_date_1": ["2021-01-10"]}'),
+    (535, '{"array_date_1": ["2021-01-07"]}'),(536, '{"array_date_1": ["2021-01-08"]}'),(537, '{"array_date_1": ["2021-01-09"]}'),(538, '{"array_date_1": ["2021-01-10"]}'),
+    (539, '{"array_date_1": ["2021-01-07"]}'),(540, '{"array_date_1": ["2021-01-08"]}'),(541, '{"array_date_1": ["2021-01-09"]}'),(542, '{"array_date_1": ["2021-01-10"]}'),
+    (543, '{"array_date_1": ["2021-01-07"]}'),(544, '{"array_date_1": ["2021-01-08"]}'),(545, '{"array_date_1": ["2021-01-09"]}'),(546, '{"array_date_1": ["2021-01-10"]}'),
+    (547, '{"array_date_1": ["2021-01-07"]}'),(548, '{"array_date_1": ["2021-01-08"]}'); """
+
+    check_table();
+
+    sql """ insert into ${tableName}  values (549, '{"array_ipv4_1": ["192.168.1.1"]}'),(550, '{"array_ipv4_1": ["192.168.1.2"]}'),(551, '{"array_ipv4_1": ["192.168.1.3"]}'),(552, '{"array_ipv4_1": ["192.168.1.4"]}'),
+    (553, '{"array_ipv4_1": ["192.168.1.5"]}'),(554, '{"array_ipv4_1": ["192.168.1.6"]}'),(555, '{"array_ipv4_1": ["192.168.1.7"]}'),(556, '{"array_ipv4_1": ["192.168.1.8"]}'),(557, '{"array_ipv4_1": ["192.168.1.9"]}'),(558, '{"array_ipv4_1": ["192.168.1.10"]}'),
+    (559, '{"array_ipv4_1": ["192.168.1.7"]}'),(560, '{"array_ipv4_1": ["192.168.1.8"]}'),(561, '{"array_ipv4_1": ["192.168.1.9"]}'),(562, '{"array_ipv4_1": ["192.168.1.10"]}'),
+    (563, '{"array_ipv4_1": ["192.168.1.7"]}'),(564, '{"array_ipv4_1": ["192.168.1.8"]}'),(565, '{"array_ipv4_1": ["192.168.1.9"]}'),(566, '{"array_ipv4_1": ["192.168.1.10"]}'),
+    (567, '{"array_ipv4_1": ["192.168.1.7"]}'),(568, '{"array_ipv4_1": ["192.168.1.8"]}'),(569, '{"array_ipv4_1": ["192.168.1.9"]}'),(570, '{"array_ipv4_1": ["192.168.1.10"]}'),
+    (571, '{"array_ipv4_1": ["192.168.1.7"]}'),(572, '{"array_ipv4_1": ["192.168.1.8"]}'),(573, '{"array_ipv4_1": ["192.168.1.9"]}'),(574, '{"array_ipv4_1": ["192.168.1.10"]}'),
+    (575, '{"array_ipv4_1": ["192.168.1.7"]}'),(576, '{"array_ipv4_1": ["192.168.1.8"]}'),(577, '{"array_ipv4_1": ["192.168.1.9"]}'),(578, '{"array_ipv4_1": ["192.168.1.10"]}'),
+    (579, '{"array_ipv4_1": ["192.168.1.7"]}'),(580, '{"array_ipv4_1": ["192.168.1.8"]}'),(581, '{"array_ipv4_1": ["192.168.1.9"]}'); """
+
+    check_table();
+
+    sql """ insert into ${tableName}  values (582, '{"array_ipv6_1": ["2001:0db8:85a3:0000:0000:8a2e:0370:7334"]}'),(583, '{"array_ipv6_1": ["2001:0db8:85a3:0000:0000:8a2e:0370:7335"]}'),
+    (584, '{"array_ipv6_1": ["2001:0db8:85a3:0000:0000:8a2e:0370:7336"]}'),(585, '{"array_ipv6_1": ["2001:0db8:85a3:0000:0000:8a2e:0370:7337"]}'),(586, '{"array_ipv6_1": ["2001:0db8:85a3:0000:0000:8a2e:0370:7338"]}'),
+    (587, '{"array_ipv6_1": ["2001:0db8:85a3:0000:0000:8a2e:0370:7339"]}'),(588, '{"array_ipv6_1": ["2001:0db8:85a3:0000:0000:8a2e:0370:733a"]}'),(589, '{"array_ipv6_1": ["2001:0db8:85a3:0000:0000:8a2e:0370:733b"]}'),
+    (590, '{"array_ipv6_1": ["2001:0db8:85a3:0000:0000:8a2e:0370:733c"]}'),(591, '{"array_ipv6_1": ["2001:0db8:85a3:0000:0000:8a2e:0370:733d"]}'),(592, '{"array_ipv6_1": ["2001:0db8:85a3:0000:0000:8a2e:0370:733e"]}'),
+    (593, '{"array_ipv6_1": ["2001:0db8:85a3:0000:0000:8a2e:0370:733f"]}'),(594, '{"array_ipv6_1": ["2001:0db8:85a3:0000:0000:8a2e:0370:7340"]}'),(595, '{"array_ipv6_1": ["2001:0db8:85a3:0000:0000:8a2e:0370:7341"]}'),
+    (596, '{"array_ipv6_1": ["2001:0db8:85a3:0000:0000:8a2e:0370:733f"]}'),(597, '{"array_ipv6_1": ["2001:0db8:85a3:0000:0000:8a2e:0370:7340"]}'),(598, '{"array_ipv6_1": ["2001:0db8:85a3:0000:0000:8a2e:0370:7341"]}'),
+    (599, '{"array_ipv6_1": ["2001:0db8:85a3:0000:0000:8a2e:0370:733f"]}'),(600, '{"array_ipv6_1": ["2001:0db8:85a3:0000:0000:8a2e:0370:7340"]}'),(601, '{"array_ipv6_1": ["2001:0db8:85a3:0000:0000:8a2e:0370:7341"]}'),
+    (602, '{"array_ipv6_1": ["2001:0db8:85a3:0000:0000:8a2e:0370:733f"]}'),(603, '{"array_ipv6_1": ["2001:0db8:85a3:0000:0000:8a2e:0370:7340"]}'),(604, '{"array_ipv6_1": ["2001:0db8:85a3:0000:0000:8a2e:0370:7341"]}'),
+    (605, '{"array_ipv6_1": ["2001:0db8:85a3:0000:0000:8a2e:0370:733f"]}'),(606, '{"array_ipv6_1": ["2001:0db8:85a3:0000:0000:8a2e:0370:7340"]}'),(607, '{"array_ipv6_1": ["2001:0db8:85a3:0000:0000:8a2e:0370:7341"]}'),
+    (608, '{"array_ipv6_1": ["2001:0db8:85a3:0000:0000:8a2e:0370:733f"]}'),(609, '{"array_ipv6_1": ["2001:0db8:85a3:0000:0000:8a2e:0370:7340"]}'),(610, '{"array_ipv6_1": ["2001:0db8:85a3:0000:0000:8a2e:0370:7341"]}'),
+    (611, '{"array_ipv6_1": ["2001:0db8:85a3:0000:0000:8a2e:0370:733f"]}'),(612, '{"array_ipv6_1": ["2001:0db8:85a3:0000:0000:8a2e:0370:7340"]}'),(613, '{"array_ipv6_1": ["2001:0db8:85a3:0000:0000:8a2e:0370:7341"]}'),
+    (614, '{"array_ipv6_1": ["2001:0db8:85a3:0000:0000:8a2e:0370:733f"]}'),(615, '{"array_ipv6_1": ["2001:0db8:85a3:0000:0000:8a2e:0370:7340"]}'); """
+
+    check_table();
+
+    sql """ insert into ${tableName}  values (616, '{"other_1": "1"}'),(617, '{"other_1": "2"}'),(618, '{"other_1": "3"}'),(619, '{"other_1": "4"}'),(620, '{"other_1": "5"}'),(621, '{"other_1": "6"}'),(622, '{"other_1": "7"}'),(623, '{"other_1": "8"}'),(624, '{"other_1": "9"}'),(625, '{"other_1": "10"}'),
+    (626, '{"other_1": "11"}'),(627, '{"other_1": "12"}'),(628, '{"other_1": "13"}'),(629, '{"other_1": "14"}'),(630, '{"other_1": "15"}'),(631, '{"other_1": "16"}'),(632, '{"other_1": "17"}'),(633, '{"other_1": "18"}'),(634, '{"other_1": "19"}'),(635, '{"other_1": "20"}'),
+    (636, '{"other_1": "21"}'),(637, '{"other_1": "22"}'),(638, '{"other_1": "23"}'),(639, '{"other_1": "24"}'),(640, '{"other_1": "25"}'),(641, '{"other_1": "26"}'),(642, '{"other_1": "27"}'),(643, '{"other_1": "28"}'),(644, '{"other_1": "29"}'),(645, '{"other_1": "30"}'),
+    (646, '{"other_1": "31"}'),(647, '{"other_1": "32"}'),(648, '{"other_1": "33"}'),(649, '{"other_1": "34"}'),(650, '{"other_1": "35"}'); """
+
+    check_table();
+}
\ No newline at end of file
diff --git a/regression-test/suites/variant_p0/predefine/test_custom_analyzer.groovy b/regression-test/suites/variant_p0/predefine/test_custom_analyzer.groovy
new file mode 100644
index 0000000..242936d
--- /dev/null
+++ b/regression-test/suites/variant_p0/predefine/test_custom_analyzer.groovy
@@ -0,0 +1,174 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+import java.sql.SQLException
+
+suite("test_variant_custom_analyzer", "p0") {
+    def indexTbName1 = "test_custom_analyzer_1"
+    def indexTbName2 = "test_custom_analyzer_2"
+    def indexTbName3 = "test_custom_analyzer_3"
+    sql "set global_variant_max_subcolumns_count = 100"
+    sql """ set enable_match_without_inverted_index = false """
+    sql """ set global_variant_enable_typed_paths_to_sparse = false """
+
+    sql """
+        CREATE INVERTED INDEX TOKENIZER IF NOT EXISTS edge_ngram_phone_number_tokenizer
+        PROPERTIES
+        (
+            "type" = "edge_ngram",
+            "min_gram" = "3",
+            "max_gram" = "10",
+            "token_chars" = "digit"
+        );
+    """
+
+    sql """
+        CREATE INVERTED INDEX TOKEN_FILTER IF NOT EXISTS word_splitter
+        PROPERTIES
+        (
+            "type" = "word_delimiter",
+            "split_on_numerics" = "false",
+            "split_on_case_change" = "false"
+        );
+    """
+
+    sql """
+        CREATE INVERTED INDEX ANALYZER IF NOT EXISTS edge_ngram_phone_number
+        PROPERTIES
+        (
+            "tokenizer" = "edge_ngram_phone_number_tokenizer"
+        );
+    """
+
+    sql """
+        CREATE INVERTED INDEX ANALYZER IF NOT EXISTS lowercase_delimited
+        PROPERTIES
+        (    
+            "tokenizer" = "standard",
+            "token_filter" = "asciifolding, word_splitter, lowercase"
+        );
+    """
+
+    sql """
+        CREATE INVERTED INDEX ANALYZER IF NOT EXISTS keyword_lowercase
+        PROPERTIES
+        (
+        "tokenizer" = "keyword",
+        "token_filter" = "asciifolding, lowercase"
+        );
+    """
+
+    sql """ select sleep(10) """
+
+    qt_tokenize_sql """ select tokenize("Србија Херцеговина Щучин гурзуф  Ψ4  Босна", '"analyzer"="keyword_lowercase"'); """
+    qt_tokenize_sql """ select tokenize("Wasted…Again", '"analyzer"="keyword_lowercase"'); """
+    qt_tokenize_sql """ select tokenize("♯P-complete", '"analyzer"="keyword_lowercase"'); """
+    qt_tokenize_sql """ select tokenize("a∴a∴", '"analyzer"="keyword_lowercase"'); """
+    qt_tokenize_sql """ select tokenize("RX J1242−11", '"analyzer"="keyword_lowercase"'); """
+    qt_tokenize_sql """ select tokenize("1080º Avalanche", '"analyzer"="keyword_lowercase"'); """
+    qt_tokenize_sql """ select tokenize("clayfighter 63⅓", '"analyzer"="lowercase_delimited"'); """
+    qt_tokenize_sql """ select tokenize("β-carbon nitride", '"analyzer"="lowercase_delimited"'); """
+    qt_tokenize_sql """ select tokenize("ǁŨǁe language", '"analyzer"="lowercase_delimited"'); """
+     
+    sql "DROP TABLE IF EXISTS ${indexTbName1}"
+    sql """
+        CREATE TABLE ${indexTbName1} (
+            `a` bigint NOT NULL AUTO_INCREMENT(1),
+            `ch` variant<'ch' : string> NULL,
+            INDEX idx_ch (`ch`) USING INVERTED PROPERTIES("field_pattern" = "ch", "support_phrase" = "true", "analyzer" = "lowercase_delimited")
+        ) ENGINE=OLAP
+        DUPLICATE KEY(`a`)
+        DISTRIBUTED BY RANDOM BUCKETS 1
+        PROPERTIES (
+        "replication_allocation" = "tag.location.default: 1"
+        );
+    """
+
+    sql """ insert into ${indexTbName1} values(1, '{"ch" : "abcDEF"}'); """
+    sql """ insert into ${indexTbName1} values(2, '{"ch" : "中国人民"}'); """
+    sql """ insert into ${indexTbName1} values(3, '{"ch" : "ǁŨǁe Language"}'); """
+    sql """ insert into ${indexTbName1} values(4, '{"ch" : "RX J1242−11"}'); """
+    sql """ insert into ${indexTbName1} values(5, '{"ch" : "clayfighter 63⅓"}'); """
+    sql """ insert into ${indexTbName1} values(6, '{"ch" : "β-carbon nitrid"}'); """
+
+    try {
+        trigger_and_wait_compaction(indexTbName1, "full")
+        sql "sync"
+        sql """ set enable_common_expr_pushdown = true; """
+
+        qt_sql """ select a, ch['ch'] from ${indexTbName1} where ch['ch'] match 'abcDEF'; """
+        qt_sql """ select a, ch['ch'] from ${indexTbName1} where ch['ch'] match '中'; """
+        qt_sql """ select a, ch['ch'] from ${indexTbName1} where ch['ch'] match 'language'; """
+    } finally {
+    }
+
+    sql "DROP TABLE IF EXISTS ${indexTbName2}"
+    sql """
+        CREATE TABLE ${indexTbName2} (
+            `a` bigint NOT NULL AUTO_INCREMENT(1),
+            `ch` variant<'ch' : string> NULL,
+            INDEX idx_ch (`ch`) USING INVERTED PROPERTIES("field_pattern" = "ch", "support_phrase" = "true", "analyzer" = "edge_ngram_phone_number")
+        ) ENGINE=OLAP
+        DUPLICATE KEY(`a`)
+        DISTRIBUTED BY RANDOM BUCKETS 1
+        PROPERTIES (
+        "replication_allocation" = "tag.location.default: 1"
+        );
+    """
+
+    sql """ INSERT INTO ${indexTbName2} VALUES ('3', '{"ch" : "Wikipedia;Miscellaneous-Jj102786 / 3tle Born Oct 27th 1986 @ Blytheville, Arkansas @ 9:14pm 23 yrs of age male,white Cucassion American raised Religion:Pentocostal,Church of God"}'); """
+
+    try {
+        sql "sync"
+        sql """ set enable_common_expr_pushdown = true; """
+
+        qt_sql """ select a, ch['ch'] from ${indexTbName2} where ch['ch'] match '102'; """
+    } finally {
+    }
+
+     sql "DROP TABLE IF EXISTS ${indexTbName3}"
+    sql """
+        CREATE TABLE ${indexTbName3} (
+            `a` bigint NOT NULL AUTO_INCREMENT(1),
+            `ch` variant<'ch' : string> NULL,
+            INDEX idx_ch (`ch`) USING INVERTED PROPERTIES("field_pattern" = "ch", "support_phrase" = "true", "analyzer" = "keyword_lowercase")
+        ) ENGINE=OLAP
+        DUPLICATE KEY(`a`)
+        DISTRIBUTED BY RANDOM BUCKETS 1
+        PROPERTIES (
+        "replication_allocation" = "tag.location.default: 1"
+        );
+    """
+
+    sql """ INSERT INTO ${indexTbName3} VALUES ('4', '{"ch" : "1080º Avalanche"}'); """
+
+    try {
+        sql "sync"
+        sql """ set enable_common_expr_pushdown = true; """
+
+        qt_sql """ select a, ch['ch'] from ${indexTbName3} where ch['ch'] match '1080º avalanche'; """
+    } finally {
+    }
+
+    try {
+        sql "drop inverted index analyzer edge_ngram_phone_number"
+    } catch (SQLException e) {
+        if (e.message.contains("is used by index")) {
+            logger.info("used by index")
+        }
+    }
+}
\ No newline at end of file
diff --git a/regression-test/suites/variant_p0/predefine/test_multi_index_file.groovy b/regression-test/suites/variant_p0/predefine/test_multi_index_file.groovy
index 7913564..acdee10 100644
--- a/regression-test/suites/variant_p0/predefine/test_multi_index_file.groovy
+++ b/regression-test/suites/variant_p0/predefine/test_multi_index_file.groovy
@@ -25,7 +25,7 @@
     sql "DROP TABLE IF EXISTS ${tableName}"
     sql """CREATE TABLE ${tableName} (
         `id` bigint NULL,
-        `var` variant NOT NULL,
+        `var` variant<properties("variant_enable_typed_paths_to_sparse" = "false")> NOT NULL,
         INDEX idx_a_d (var) USING INVERTED PROPERTIES("parser"="unicode", "support_phrase" = "true") COMMENT '',
         INDEX idx_a_d_2 (var) USING INVERTED
     ) ENGINE=OLAP DUPLICATE KEY(`id`) DISTRIBUTED BY HASH(`id`) BUCKETS 1 PROPERTIES ( "replication_allocation" = "tag.location.default: 1", "disable_auto_compaction" = "true")"""
diff --git a/regression-test/suites/variant_p0/predefine/test_multi_index_nonCurrent.groovy b/regression-test/suites/variant_p0/predefine/test_multi_index_nonCurrent.groovy
index e137404..8ecab4c 100644
--- a/regression-test/suites/variant_p0/predefine/test_multi_index_nonCurrent.groovy
+++ b/regression-test/suites/variant_p0/predefine/test_multi_index_nonCurrent.groovy
@@ -19,6 +19,7 @@
     sql """ set describe_extend_variant_column = true """
     sql """ set enable_match_without_inverted_index = false """
     sql """ set enable_common_expr_pushdown = true """
+    sql """ set global_variant_enable_typed_paths_to_sparse = false """
 
     def queryAndCheck = { String sqlQuery, int expectedFilteredRows = -1, boolean checkFilterUsed = true ->
       def checkpoints_name = "segment_iterator.inverted_index.filtered_rows"
@@ -38,10 +39,10 @@
     sql "DROP TABLE IF EXISTS ${tableName}"
     sql """CREATE TABLE ${tableName} (
         `id` bigint NULL,
-        `var` variant NOT NULL,
+        `var` variant<properties ("variant_max_subcolumns_count" = "10")> NOT NULL,
         INDEX idx_a_d (var) USING INVERTED PROPERTIES("parser"="unicode", "support_phrase" = "true") COMMENT '',
         INDEX idx_a_d_2 (var) USING INVERTED
-    ) ENGINE=OLAP DUPLICATE KEY(`id`) DISTRIBUTED BY HASH(`id`) BUCKETS 1 PROPERTIES ( "replication_allocation" = "tag.location.default: 1", "disable_auto_compaction" = "true", "variant_max_subcolumns_count" = "10")"""
+    ) ENGINE=OLAP DUPLICATE KEY(`id`) DISTRIBUTED BY HASH(`id`) BUCKETS 1 PROPERTIES ( "replication_allocation" = "tag.location.default: 1", "disable_auto_compaction" = "true")"""
 
     sql """insert into ${tableName} values(1, '{"string" : "hello", "array_string" : ["hello"]}'), (2, '{"string" : "world", "array_string" : ["world"]}'), (3, '{"string" : "hello", "array_string" : ["hello"]}'), (4, '{"string" : "world", "array_string" : ["world"]}'), (5, '{"string" : "hello", "array_string" : ["hello"]}') """
     // insert into test_variant_multi_index_nonCurrent  values(1, '{"string" : "hello", "array_string" : ["hello"]}'), (2, '{"string" : "world", "array_string" : ["world"]}'), (3, '{"string" : "hello", "array_string" : ["hello"]}'), (4, '{"string" : "world", "array_string" : ["world"]}'), (5, '{"string" : "hello", "array_string" : ["hello"]}')
@@ -78,11 +79,11 @@
     queryAndCheck("select count() from ${tableName} where var['string'] = 'hello' or var['string'] match_phrase 'world'", 0)
     queryAndCheck("select count() from ${tableName} where array_contains(cast(var['array_string'] as array<text>), 'hello')", 22)
 
-    sql """ alter table ${tableName} modify column var variant NULL """
+    sql """ alter table ${tableName} modify column var variant<properties ("variant_max_subcolumns_count" = "10")> NULL """
 
     waitForSchemaChangeDone {
         sql """ SHOW ALTER TABLE COLUMN WHERE TableName='${tableName}' ORDER BY createtime DESC LIMIT 1 """
-        time 600
+        time 6000
     }
 
     queryAndCheck("select count() from ${tableName} where var['string'] match_phrase 'hello'", 22)
@@ -105,7 +106,8 @@
         `var` variant<
              MATCH_NAME 'string1' : string,
              MATCH_NAME 'string2' : string,
-             MATCH_NAME 'array_string' : array<string>
+             MATCH_NAME 'array_string' : array<string>,
+             properties("variant_max_subcolumns_count" = "10")
         > NOT NULL,
         INDEX idx_a_d_2 (var) USING INVERTED,
         INDEX idx_a_d_3 (var) USING INVERTED PROPERTIES("field_pattern" = "string1","parser"="unicode", "support_phrase" = "true") COMMENT '',
@@ -113,7 +115,7 @@
         INDEX idx_a_d_5 (var) USING INVERTED PROPERTIES("field_pattern" = "string2","parser"="unicode", "support_phrase" = "false") COMMENT '',
         INDEX idx_a_d_6 (var) USING INVERTED PROPERTIES("field_pattern" = "string2") COMMENT '',
         INDEX idx_a_d_7 (var) USING INVERTED PROPERTIES("field_pattern" = "array_string") COMMENT ''
-    ) ENGINE=OLAP DUPLICATE KEY(`id`) DISTRIBUTED BY HASH(`id`) BUCKETS 1 PROPERTIES ( "replication_allocation" = "tag.location.default: 1", "disable_auto_compaction" = "true", "variant_max_subcolumns_count" = "10")"""
+    ) ENGINE=OLAP DUPLICATE KEY(`id`) DISTRIBUTED BY HASH(`id`) BUCKETS 1 PROPERTIES ( "replication_allocation" = "tag.location.default: 1", "disable_auto_compaction" = "true")"""
 
     sql """insert into ${tableName} values(1, '{"string1" : "hello", "array_string" : ["hello"], "string2" : "hello"}'),
                                 (2, '{"string1" : "world", "array_string" : ["world"], "string2" : "world"}'),
diff --git a/regression-test/suites/variant_p0/predefine/test_prdefine_insert_into_select.groovy b/regression-test/suites/variant_p0/predefine/test_prdefine_insert_into_select.groovy
index 423b6be..cbeff1e 100644
--- a/regression-test/suites/variant_p0/predefine/test_prdefine_insert_into_select.groovy
+++ b/regression-test/suites/variant_p0/predefine/test_prdefine_insert_into_select.groovy
@@ -16,6 +16,9 @@
 // under the License.
 
 suite("test_predefine_insert_into_select", "p0"){ 
+
+    sql """ set global_variant_enable_typed_paths_to_sparse = false """
+
     sql "DROP TABLE IF EXISTS fromTable"
     sql """CREATE TABLE fromTable (
         `id` bigint NULL,
@@ -23,20 +26,21 @@
             MATCH_NAME 'a' : date,
             MATCH_NAME 'b' : decimal(20,12),
             MATCH_NAME 'c' : datetime,
-            MATCH_NAME 'd' : string
+            MATCH_NAME 'd' : string,
+            properties("variant_max_subcolumns_count" = "2")
         > NULL,
         INDEX idx_a_b (var) USING INVERTED PROPERTIES("field_pattern"="d", "parser"="unicode", "support_phrase" = "true") COMMENT ''
     ) ENGINE=OLAP DUPLICATE KEY(`id`) DISTRIBUTED BY HASH(`id`)
-    BUCKETS 1 PROPERTIES ( "replication_allocation" = "tag.location.default: 1", "disable_auto_compaction" = "true", "variant_max_subcolumns_count" = "2")"""
+    BUCKETS 1 PROPERTIES ( "replication_allocation" = "tag.location.default: 1", "disable_auto_compaction" = "true")"""
     sql """insert into fromTable values(1, '{"a": "2025-04-16", "b": 123.123456789012, "c": "2025-04-17T09:09:09Z", "d": 123, "e": "2025-04-19", "f": "2025-04-20", "g": "2025-04-21", "h": "2025-04-22", "i": "2025-04-23", "j": "2025-04-24", "k": "2025-04-25", "l": "2025-04-26", "m": "2025-04-27", "n": "2025-04-28", "o": "2025-04-29", "p": "2025-04-30"}');"""
     sql """insert into fromTable values(1, '{"a": "2025-04-16", "b": 123.123456789012, "c": "2025-04-17T09:09:09Z", "d": 123, "e": "2025-04-19", "f": "2025-04-20", "g": "2025-04-21", "h": "2025-04-22", "i": "2025-04-23", "j": "2025-04-24", "k": "2025-04-25", "l": "2025-04-26", "m": "2025-04-27", "n": "2025-04-28", "o": "2025-04-29", "p": "2025-04-30"}');"""
 
     sql "DROP TABLE IF EXISTS toTable_without_define"
     sql """CREATE TABLE toTable_without_define (
         `id` bigint NULL,
-        `var` variant NULL
+        `var` variant<properties("variant_max_subcolumns_count" = "2")> NULL
     ) ENGINE=OLAP DUPLICATE KEY(`id`) DISTRIBUTED BY HASH(`id`)
-    BUCKETS 1 PROPERTIES ( "replication_allocation" = "tag.location.default: 1", "disable_auto_compaction" = "true", "variant_max_subcolumns_count" = "2")"""
+    BUCKETS 1 PROPERTIES ( "replication_allocation" = "tag.location.default: 1", "disable_auto_compaction" = "true")"""
     sql """insert into toTable_without_define values(1, '{"a": "2025-04-16", "b": 123.123456789012, "c": "2025-04-17T09:09:09Z", "d": 123, "e": "2025-04-19", "f": "2025-04-20", "g": "2025-04-21", "h": "2025-04-22", "i": "2025-04-23", "j": "2025-04-24", "k": "2025-04-25", "l": "2025-04-26", "m": "2025-04-27", "n": "2025-04-28", "o": "2025-04-29", "p": "2025-04-30"}');"""
     
     sql """ insert into toTable_without_define select id, cast(var as string) from fromTable"""
@@ -57,14 +61,16 @@
         `id` bigint NULL,
         `var` variant<
             MATCH_NAME 'a' : date,
-            MATCH_NAME 'b' : decimal(20,12)
+            MATCH_NAME 'b' : decimal(20,12),
+            properties("variant_max_subcolumns_count" = "2")
         > NULL
     ) ENGINE=OLAP DUPLICATE KEY(`id`) DISTRIBUTED BY HASH(`id`)
-    BUCKETS 1 PROPERTIES ( "replication_allocation" = "tag.location.default: 1", "disable_auto_compaction" = "true", "variant_max_subcolumns_count" = "2")"""
+    BUCKETS 1 PROPERTIES ( "replication_allocation" = "tag.location.default: 1", "disable_auto_compaction" = "true")"""
     sql """insert into toTable_with_define values(1, '{"a": "2025-04-16", "b": 123.123456789012, "c": "2025-04-17T09:09:09Z", "d": 123, "e": "2025-04-19", "f": "2025-04-20", "g": "2025-04-21", "h": "2025-04-22", "i": "2025-04-23", "j": "2025-04-24", "k": "2025-04-25", "l": "2025-04-26", "m": "2025-04-27", "n": "2025-04-28", "o": "2025-04-29", "p": "2025-04-30"}');"""
     
     sql """ insert into toTable_with_define select id, cast(var as string) from fromTable"""
 
+    findException = false
     try {
         sql """ insert into toTable_with_define select * from fromTable"""
     } catch (Exception e) {
diff --git a/regression-test/suites/variant_p0/predefine/test_prdefine_typed_column_sparse_column.groovy b/regression-test/suites/variant_p0/predefine/test_prdefine_typed_column_sparse_column.groovy
index 336fe82..ce65a2f 100644
--- a/regression-test/suites/variant_p0/predefine/test_prdefine_typed_column_sparse_column.groovy
+++ b/regression-test/suites/variant_p0/predefine/test_prdefine_typed_column_sparse_column.groovy
@@ -18,6 +18,7 @@
 suite("test_predefine_typed_sparse", "p0"){ 
 
     def tableName = "test_predefine_typed_sparse"
+    sql """ set global_variant_enable_typed_paths_to_sparse = false """
     sql "DROP TABLE IF EXISTS ${tableName}"
     sql """CREATE TABLE ${tableName} (
         `id` bigint NULL,
@@ -25,10 +26,11 @@
             MATCH_NAME 'a' : date,
             MATCH_NAME 'b' : decimal(20,12),
             MATCH_NAME 'c' : datetime,
-            MATCH_NAME 'd' : date
+            MATCH_NAME 'd' : date,
+            properties("variant_max_subcolumns_count" = "2")
         > NULL
     ) ENGINE=OLAP DUPLICATE KEY(`id`) DISTRIBUTED BY HASH(`id`)
-    BUCKETS 1 PROPERTIES ( "replication_allocation" = "tag.location.default: 1", "disable_auto_compaction" = "true", "variant_max_subcolumns_count" = "2")"""
+    BUCKETS 1 PROPERTIES ( "replication_allocation" = "tag.location.default: 1", "disable_auto_compaction" = "true")"""
 
     for (int i = 0; i < 10; i++) {
         sql """insert into ${tableName} values(1, '{"a": "2025-04-16", "b": 123.123456789012, "c": "2025-04-17T09:09:09Z", "d": "2025-04-18", "e": "2025-04-19", "f": "2025-04-20", "g": "2025-04-21", "h": "2025-04-22", "i": "2025-04-23", "j": "2025-04-24", "k": "2025-04-25", "l": "2025-04-26", "m": "2025-04-27", "n": "2025-04-28", "o": "2025-04-29", "p": "2025-04-30"}');"""
diff --git a/regression-test/suites/variant_p0/predefine/test_predefine_ddl.groovy b/regression-test/suites/variant_p0/predefine/test_predefine_ddl.groovy
index a029144..9c9aa0b 100644
--- a/regression-test/suites/variant_p0/predefine/test_predefine_ddl.groovy
+++ b/regression-test/suites/variant_p0/predefine/test_predefine_ddl.groovy
@@ -15,11 +15,32 @@
 // specific language governing permissions and limitations
 // under the License.
 
-suite("test_predefine_ddl", "p0"){ 
+suite("test_predefine_ddl", "p0") { 
+
+    def timeout = 60000
+    def delta_time = 1000
+    def alter_res = "null"
+    def useTime = 0
+    def wait_for_latest_op_on_table_finish = { tableName, OpTimeout ->
+        for(int t = delta_time; t <= OpTimeout; t += delta_time){
+            alter_res = sql """SHOW ALTER TABLE COLUMN WHERE TableName = "${tableName}" ORDER BY CreateTime DESC LIMIT 1;"""
+            alter_res = alter_res.toString()
+            if(alter_res.contains("FINISHED")) {
+                sleep(3000) // wait change table state to normal
+                logger.info(tableName + " latest alter job finished, detail: " + alter_res)
+                break
+            }
+            useTime = t
+            sleep(delta_time)
+        }
+        assertTrue(useTime <= OpTimeout, "wait_for_latest_op_on_table_finish timeout")
+    }
+
+    def tableName = "test_ddl_table"
 
     test {
-        sql "DROP TABLE IF EXISTS test_ddl_table"
-        sql """CREATE TABLE test_ddl_table (
+        sql "DROP TABLE IF EXISTS ${tableName}"
+        sql """CREATE TABLE ${tableName} (
             `id` bigint NULL,
             `var` variant<
                 MATCH_NAME 'ab' : string,
@@ -36,8 +57,8 @@
         exception("can not find field pattern: bb* in column: var")
     }
 
-    sql "DROP TABLE IF EXISTS test_ddl_table"
-    sql """CREATE TABLE test_ddl_table (
+    sql "DROP TABLE IF EXISTS ${tableName}"
+    sql """CREATE TABLE ${tableName} (
         `id` bigint NULL,
         `var` variant<
             MATCH_NAME 'ab' : string,
@@ -49,8 +70,8 @@
     BUCKETS 1 PROPERTIES ( "replication_allocation" = "tag.location.default: 1", "disable_auto_compaction" = "true")"""
 
     test {
-        sql "DROP TABLE IF EXISTS test_ddl_table"
-        sql """CREATE TABLE test_ddl_table (
+        sql "DROP TABLE IF EXISTS ${tableName}"
+        sql """CREATE TABLE ${tableName} (
             `id` bigint NULL,
             `var` variant NOT NULL,
             INDEX idx_a_b (var) USING INVERTED PROPERTIES("field_pattern"="ab", "parser"="unicode", "support_phrase" = "true") COMMENT '',
@@ -59,27 +80,35 @@
         exception("can not find field pattern: ab in column: var")
     }
 
-    sql "DROP TABLE IF EXISTS test_ddl_table"
-    sql """CREATE TABLE test_ddl_table (
+    sql "DROP TABLE IF EXISTS ${tableName}"
+    sql """CREATE TABLE ${tableName} (
         `id` bigint NULL,
-        `var` variant NULL
+        `var` variant<properties("variant_max_subcolumns_count" = "10")> NULL
     ) ENGINE=OLAP DUPLICATE KEY(`id`) DISTRIBUTED BY HASH(`id`)
     BUCKETS 1 PROPERTIES ( "replication_allocation" = "tag.location.default: 1", "disable_auto_compaction" = "true")"""
 
     test {
-         sql """ create index idx_ab on test_ddl_table (var) using inverted properties("field_pattern"="ab", "parser"="unicode", "support_phrase" = "true") """
+         sql """ create index idx_ab on ${tableName} (var) using inverted properties("field_pattern"="ab", "parser"="unicode", "support_phrase" = "true") """
+        exception("Can not create index with field pattern")
+    }
+
+    test {
+         sql """ create index idx_ab on ${tableName} (var) using inverted properties("field_pattern"="ab", "parser"="unicode", "support_phrase" = "true") """
         exception("Can not create index with field pattern")
     }
     
-    sql """ alter table test_ddl_table add column var2 variant<'ab' : string> NULL """
+    sql """ alter table ${tableName} add column var2 variant<'ab' : string, properties("variant_max_subcolumns_count" = "5")> NULL """
+
+    sql """ alter table ${tableName} add column var3 variant<'ab' : string> NULL """
 
     test {
-        sql """ alter table test_ddl_table modify column var variant<'ab' : string> NULL """
+        sql """ alter table ${tableName} modify column var variant<'ab' : string> NULL """
         exception("Can not modify variant column with children")
     }
 
-    sql "DROP TABLE IF EXISTS test_ddl_table"
-    sql """CREATE TABLE test_ddl_table (
+
+    sql "DROP TABLE IF EXISTS ${tableName}"
+    sql """CREATE TABLE ${tableName} (
         `id` bigint NULL,
         `var` variant<
             MATCH_NAME 'ab' : string,
@@ -91,20 +120,20 @@
     BUCKETS 1 PROPERTIES ( "replication_allocation" = "tag.location.default: 1", "disable_auto_compaction" = "true")"""
 
     test {
-        sql """ alter table test_ddl_table modify column var variant NULL """
+        sql """ alter table ${tableName} modify column var variant NULL """
         exception("Can not modify variant column with children")
     }
 
     test {
-        sql """ alter table test_ddl_table drop index idx_ab """
+        sql """ alter table ${tableName} drop index idx_ab """
         exception("Can not drop index with field pattern")
     }
 
-    sql """ alter table test_ddl_table drop column var """
+    sql """ alter table ${tableName} drop column var """
 
     test {
-        sql "DROP TABLE IF EXISTS test_ddl_table"
-        sql """CREATE TABLE test_ddl_table (
+        sql "DROP TABLE IF EXISTS ${tableName}"
+        sql """CREATE TABLE ${tableName} (
             `id` bigint NULL,
             `var` variant<
                 MATCH_NAME 'ab' : json
@@ -116,22 +145,23 @@
     }
 
     test {
-        sql "DROP TABLE IF EXISTS test_ddl_table"
-        sql """CREATE TABLE test_ddl_table (
+        sql "DROP TABLE IF EXISTS ${tableName}"
+        sql """CREATE TABLE ${tableName} (
             `id` bigint NULL,
             `var` variant<
                 MATCH_NAME 'ab' : int,
-                MATCH_NAME 'ab' : string
+                MATCH_NAME 'ab' : string,
+                properties("variant_max_subcolumns_count" = "10", "variant_enable_typed_paths_to_sparse" = "true")
             > NULL,
             INDEX idx_ab (var) USING INVERTED PROPERTIES("field_pattern"="ab", "parser"="unicode", "support_phrase" = "true") COMMENT ''
         ) ENGINE=OLAP DUPLICATE KEY(`id`) DISTRIBUTED BY HASH(`id`)
         BUCKETS 1 PROPERTIES ( "replication_allocation" = "tag.location.default: 1", "disable_auto_compaction" = "true")"""
-        exception("Duplicate field name ab in struct variant<MATCH_NAME 'ab':int,MATCH_NAME 'ab':text>")
+        exception("""Duplicate field name ab in variant variant<MATCH_NAME 'ab':int,MATCH_NAME 'ab':text,PROPERTIES ("variant_max_subcolumns_count" = "10","variant_enable_typed_paths_to_sparse" = "true")>""")
     }
 
     test {
-        sql "DROP TABLE IF EXISTS test_ddl_table"
-        sql """CREATE TABLE test_ddl_table (
+        sql "DROP TABLE IF EXISTS ${tableName}"
+        sql """CREATE TABLE ${tableName} (
             `id` bigint NULL,
             `var` variant<
                 MATCH_NAME 'ab' : decimalv2(22, 2)
@@ -142,8 +172,8 @@
     }
 
     test {
-        sql "DROP TABLE IF EXISTS test_ddl_table"
-        sql """CREATE TABLE test_ddl_table (
+        sql "DROP TABLE IF EXISTS ${tableName}"
+        sql """CREATE TABLE ${tableName} (
             `id` bigint NULL,
             `var` variant<
                 MATCH_NAME 'ab' : datev1
@@ -154,8 +184,8 @@
     }
 
     test {
-        sql "DROP TABLE IF EXISTS test_ddl_table"
-        sql """CREATE TABLE test_ddl_table (
+        sql "DROP TABLE IF EXISTS ${tableName}"
+        sql """CREATE TABLE ${tableName} (
             `id` bigint NULL,
             `var` variant<
                 MATCH_NAME 'ab' : datetimev1
@@ -165,19 +195,22 @@
         exception("VARIANT unsupported sub-type: datetime")
     }
 
-    sql "DROP TABLE IF EXISTS test_ddl_table"
-    sql """CREATE TABLE test_ddl_table (
-        `id` bigint NULL,
-        `var` variant<
-            MATCH_NAME 'ab' : double
-        > NULL,
-        INDEX idx_ab (var) USING INVERTED PROPERTIES("field_pattern"="ab", "parser"="unicode", "support_phrase" = "true") COMMENT ''
-    ) ENGINE=OLAP DUPLICATE KEY(`id`) DISTRIBUTED BY HASH(`id`)
-    BUCKETS 1 PROPERTIES ( "replication_allocation" = "tag.location.default: 1", "disable_auto_compaction" = "true")"""
+    test {
+        sql "DROP TABLE IF EXISTS ${tableName}"
+        sql """CREATE TABLE ${tableName} (
+            `id` bigint NULL,
+            `var` variant<
+                MATCH_NAME 'ab' : double
+            > NULL,
+            INDEX idx_ab (var) USING INVERTED PROPERTIES("field_pattern"="ab", "parser"="unicode", "support_phrase" = "true") COMMENT ''
+        ) ENGINE=OLAP DUPLICATE KEY(`id`) DISTRIBUTED BY HASH(`id`)
+        BUCKETS 1 PROPERTIES ( "replication_allocation" = "tag.location.default: 1", "disable_auto_compaction" = "true")"""
+        exception("")
+    }
 
     test {
-        sql "DROP TABLE IF EXISTS test_ddl_table"
-        sql """CREATE TABLE test_ddl_table (
+        sql "DROP TABLE IF EXISTS ${tableName}"
+        sql """CREATE TABLE ${tableName} (
             `id` bigint NULL,
             `var` variant<
                 MATCH_NAME 'ab' : int
@@ -189,8 +222,8 @@
         exception("column: var cannot have multiple inverted indexes with field pattern: ab")
     }
 
-    sql "DROP TABLE IF EXISTS test_ddl_table"
-    sql """CREATE TABLE test_ddl_table (
+    sql "DROP TABLE IF EXISTS ${tableName}"
+    sql """CREATE TABLE ${tableName} (
         `id` bigint NULL,
         `var` variant<
             MATCH_NAME 'ab' : string
@@ -201,8 +234,8 @@
     BUCKETS 1 PROPERTIES ( "replication_allocation" = "tag.location.default: 1", "disable_auto_compaction" = "true")"""
 
     test {
-        sql "DROP TABLE IF EXISTS test_ddl_table"
-        sql """CREATE TABLE test_ddl_table (
+        sql "DROP TABLE IF EXISTS ${tableName}"
+        sql """CREATE TABLE ${tableName} (
             `id` bigint NULL,
             `var` variant<
                 MATCH_NAME 'ab' : string
@@ -215,8 +248,8 @@
     }
 
     test {
-        sql "DROP TABLE IF EXISTS test_ddl_table"
-        sql """CREATE TABLE test_ddl_table (
+        sql "DROP TABLE IF EXISTS ${tableName}"
+        sql """CREATE TABLE ${tableName} (
             `id` bigint NULL,
             `var` variant<
                 MATCH_NAME 'ab' : string
@@ -229,8 +262,8 @@
     }
 
     test {
-        sql "DROP TABLE IF EXISTS test_ddl_table"
-        sql """CREATE TABLE test_ddl_table (
+        sql "DROP TABLE IF EXISTS ${tableName}"
+        sql """CREATE TABLE ${tableName} (
             `id` bigint NULL,
             `var` variant<
                 MATCH_NAME 'ab' : array<string>
@@ -243,8 +276,8 @@
     }
 
     test {
-        sql "DROP TABLE IF EXISTS test_ddl_table"
-        sql """CREATE TABLE test_ddl_table (
+        sql "DROP TABLE IF EXISTS ${tableName}"
+        sql """CREATE TABLE ${tableName} (
             `id` bigint NULL,
             `var` string NULL,
             INDEX idx_ab (var) USING INVERTED PROPERTIES("parser"="unicode", "support_phrase" = "true") COMMENT '',
@@ -255,7 +288,7 @@
     }
 
     test {
-        sql """CREATE TABLE test_ddl_table (
+        sql """CREATE TABLE ${tableName} (
             `id` bigint NULL,
             `var` variant <'c' :char(10)> NULL
         ) ENGINE=OLAP DUPLICATE KEY(`id`) DISTRIBUTED BY HASH(`id`)
@@ -263,21 +296,70 @@
         exception("VARIANT unsupported sub-type: char(10)")
     }
 
-    test {
-        sql """CREATE TABLE test_ddl_table (
-            `id` bigint NULL,
-            `var` variant <'c' :array<char(10)>> NULL
-        ) ENGINE=OLAP DUPLICATE KEY(`id`) DISTRIBUTED BY HASH(`id`)
-        BUCKETS 1 PROPERTIES ( "replication_allocation" = "tag.location.default: 1", "disable_auto_compaction" = "true", "inverted_index_storage_format" = "v1")"""
-        exception("VARIANT unsupported sub-type: array<char(10)>")
-    }
+    sql "DROP TABLE IF EXISTS ${tableName}"
+    sql """CREATE TABLE ${tableName} (
+        `id` bigint NULL,
+        `var` variant <'c' :text, properties("variant_max_subcolumns_count" = "10")> NULL
+    ) ENGINE=OLAP DUPLICATE KEY(`id`) DISTRIBUTED BY HASH(`id`)
+    BUCKETS 1 PROPERTIES ( "replication_allocation" = "tag.location.default: 1")"""
+
+    sql "DROP TABLE IF EXISTS ${tableName}"
+    sql """CREATE TABLE ${tableName} (
+        `id` bigint NULL,
+        `var` variant <properties("variant_max_subcolumns_count" = "10")> NULL
+    ) ENGINE=OLAP DUPLICATE KEY(`id`) DISTRIBUTED BY HASH(`id`)
+    BUCKETS 1 PROPERTIES ( "replication_allocation" = "tag.location.default: 1")"""
+
 
     test {
-        sql """CREATE TABLE test_ddl_table (
+        sql "DROP TABLE IF EXISTS ${tableName}"
+        sql """CREATE TABLE ${tableName} (
             `id` bigint NULL,
-            `var` variant <'c' :array<array<int>>> NULL
+            `var1` variant <properties("variant_max_subcolumns_count" = "10")> NULL,
+            `var2` variant <properties("variant_max_subcolumns_count" = "0")> NULL
         ) ENGINE=OLAP DUPLICATE KEY(`id`) DISTRIBUTED BY HASH(`id`)
-        BUCKETS 1 PROPERTIES ( "replication_allocation" = "tag.location.default: 1", "disable_auto_compaction" = "true", "inverted_index_storage_format" = "v1")"""
-        exception("VARIANT unsupported sub-type: array<array<int>>")
+        BUCKETS 1 PROPERTIES ( "replication_allocation" = "tag.location.default: 1")"""
+        exception("The variant_max_subcolumns_count must either be 0 in all columns, or greater than 0 in all columns")
     }
+
+    sql "DROP TABLE IF EXISTS ${tableName}"
+    sql "set global_variant_max_subcolumns_count = 10"
+    sql "set global_variant_enable_typed_paths_to_sparse = false"
+    sql """CREATE TABLE ${tableName} (
+        `id` bigint NULL,
+        `var` variant NULL
+    ) ENGINE=OLAP DUPLICATE KEY(`id`) DISTRIBUTED BY HASH(`id`)
+    BUCKETS 1 PROPERTIES ( "replication_allocation" = "tag.location.default: 1")"""
+
+    qt_sql "desc ${tableName}"
+
+    sql "DROP TABLE IF EXISTS ${tableName}"
+    sql """CREATE TABLE ${tableName} (
+        `id` bigint NULL,
+        `var` variant NULL,
+        INDEX idx_ab (var) USING INVERTED PROPERTIES("parser"="unicode", "support_phrase" = "true") COMMENT ''
+    ) ENGINE=OLAP DUPLICATE KEY(`id`) DISTRIBUTED BY HASH(`id`)
+    BUCKETS 1 PROPERTIES ( "replication_allocation" = "tag.location.default: 1")"""
+
+    sql "create index idx_ab2 on ${tableName} (var) using inverted"
+    wait_for_latest_op_on_table_finish("${tableName}", timeout)
+
+    sql """alter table ${tableName} add column var2 variant<properties("variant_max_subcolumns_count" = "15")> NULL"""
+    wait_for_latest_op_on_table_finish("${tableName}", timeout)
+
+    test {
+        sql """alter table ${tableName} add column var3 variant<properties("variant_max_subcolumns_count" = "0")> NULL"""
+        exception("The variant_max_subcolumns_count must either be 0 in all columns or greater than 0 in all columns")
+    }
+
+    sql "alter table ${tableName} add column var3 variant NULL"
+    wait_for_latest_op_on_table_finish("${tableName}", timeout)
+
+    qt_sql "desc ${tableName}"
+
+    sql "create index idx_ab3 on ${tableName} (var2) using inverted"
+    wait_for_latest_op_on_table_finish("${tableName}", timeout)
+
+    sql "create index idx_ab4 on ${tableName} (var2) using inverted properties(\"parser\"=\"unicode\")"
+    wait_for_latest_op_on_table_finish("${tableName}", timeout)
 }
\ No newline at end of file
diff --git a/regression-test/suites/variant_p0/predefine/test_predefine_pattern.groovy b/regression-test/suites/variant_p0/predefine/test_predefine_pattern.groovy
index 278527b..bf2edc3 100644
--- a/regression-test/suites/variant_p0/predefine/test_predefine_pattern.groovy
+++ b/regression-test/suites/variant_p0/predefine/test_predefine_pattern.groovy
@@ -19,6 +19,7 @@
     sql """ set describe_extend_variant_column = true """
     sql """ set enable_match_without_inverted_index = false """
     sql """ set enable_common_expr_pushdown = true """
+    sql """ set global_variant_enable_typed_paths_to_sparse = false """
     def count = new Random().nextInt(5) + 1
     def tableName = "base_match_name_variant_test"
     sql "DROP TABLE IF EXISTS ${tableName}"
@@ -29,14 +30,15 @@
             MATCH_NAME '*cc' : string,
             MATCH_NAME 'b?b' : string,
             MATCH_NAME_GLOB 'bb*' : string,
-            MATCH_NAME_GLOB 'bx?' : string
+            MATCH_NAME_GLOB 'bx?' : string,
+            properties("variant_max_subcolumns_count" = "${count}")
         > NOT NULL,
         INDEX idx_a_b (var) USING INVERTED PROPERTIES("field_pattern"="ab", "parser"="unicode", "support_phrase" = "true") COMMENT '',
         INDEX idx_bb (var) USING INVERTED PROPERTIES("field_pattern"="*cc", "parser"="unicode", "support_phrase" = "true") COMMENT '',
         INDEX idx_b_b (var) USING INVERTED PROPERTIES("field_pattern"="b?b", "parser"="unicode", "support_phrase" = "true") COMMENT '',
         INDEX idx_bb_glob (var) USING INVERTED PROPERTIES("field_pattern"="bb*", "parser"="unicode", "support_phrase" = "true") COMMENT '',
         INDEX idx_bx_glob (var) USING INVERTED PROPERTIES("field_pattern"="bx?", "parser"="unicode", "support_phrase" = "true") COMMENT ''
-    ) ENGINE=OLAP DUPLICATE KEY(`id`) DISTRIBUTED BY HASH(`id`) BUCKETS 1 PROPERTIES ( "replication_allocation" = "tag.location.default: 1", "disable_auto_compaction" = "true", "variant_max_subcolumns_count" = "${count}")"""
+    ) ENGINE=OLAP DUPLICATE KEY(`id`) DISTRIBUTED BY HASH(`id`) BUCKETS 1 PROPERTIES ( "replication_allocation" = "tag.location.default: 1", "disable_auto_compaction" = "true")"""
 
     sql """insert into ${tableName} values(1, '{"ab" : 123, "*cc" : 123, "b?b" : 123, "bb3" : 123, "bxx" : 123}')"""
     sql """insert into ${tableName} values(2, '{"ab" : 456, "*cc" : 456, "b?b" : 456, "bb3" : 456, "bxx" : 456}')"""
@@ -72,14 +74,15 @@
             MATCH_NAME 'a.*' : string,
             MATCH_NAME_GLOB 'a.b[0-9]' : string,
             MATCH_NAME_GLOB 'a.b?c' : string,
-            MATCH_NAME_GLOB 'a.c*' : string
+            MATCH_NAME_GLOB 'a.c*' : string,
+            properties("variant_max_subcolumns_count" = "${count}")
         > NOT NULL,
         INDEX idx_a_b (var) USING INVERTED PROPERTIES("field_pattern"="a.b", "parser"="unicode", "support_phrase" = "true") COMMENT '',
         INDEX idx_bb (var) USING INVERTED PROPERTIES("field_pattern"="a.*", "parser"="unicode", "support_phrase" = "true") COMMENT '',
         INDEX idx_b_b (var) USING INVERTED PROPERTIES("field_pattern"="a.b[0-9]", "parser"="unicode", "support_phrase" = "true") COMMENT '',
         INDEX idx_bb_glob (var) USING INVERTED PROPERTIES("field_pattern"="a.b?c", "parser"="unicode", "support_phrase" = "true") COMMENT '',
         INDEX idx_bx_glob (var) USING INVERTED PROPERTIES("field_pattern"="a.c*", "parser"="unicode", "support_phrase" = "true") COMMENT ''
-    ) ENGINE=OLAP DUPLICATE KEY(`id`) DISTRIBUTED BY HASH(`id`) BUCKETS 1 PROPERTIES ( "replication_allocation" = "tag.location.default: 1", "disable_auto_compaction" = "true", "variant_max_subcolumns_count" = "${count}")"""
+    ) ENGINE=OLAP DUPLICATE KEY(`id`) DISTRIBUTED BY HASH(`id`) BUCKETS 1 PROPERTIES ( "replication_allocation" = "tag.location.default: 1", "disable_auto_compaction" = "true")"""
 
     sql """insert into ${tableName} values(1, '{"a" : {"b" : 789, "*" : 789, "b1" : 789, "bxc" : 789, "c2323" : 789}}')"""
     sql """insert into ${tableName} values(2, '{"a" : {"b" : 111, "*" : 111, "b1" : 111, "bxc" : 111, "c2323" : 111}}')"""
diff --git a/regression-test/suites/variant_p0/predefine/test_predefine_schema_change.groovy b/regression-test/suites/variant_p0/predefine/test_predefine_schema_change.groovy
index 6459345..afb744e 100644
--- a/regression-test/suites/variant_p0/predefine/test_predefine_schema_change.groovy
+++ b/regression-test/suites/variant_p0/predefine/test_predefine_schema_change.groovy
@@ -17,6 +17,7 @@
 
 suite("test_predefine_schema_change", "p0"){
     def tableName = "test_predefine_schema_change"
+    sql """ set global_variant_enable_typed_paths_to_sparse = false """
     sql "DROP TABLE IF EXISTS ${tableName}"
     sql """CREATE TABLE ${tableName} (
         `id` bigint NULL,
@@ -24,12 +25,13 @@
             MATCH_NAME 'a' : date,
             MATCH_NAME 'b' : decimal(20,12),
             MATCH_NAME 'c' : datetime,
-            MATCH_NAME 'd' : string
+            MATCH_NAME 'd' : string,
+            properties("variant_max_subcolumns_count" = "2")
         > NULL,
         `col1` varchar(100) NOT NULL,
         INDEX idx_a_b (var) USING INVERTED PROPERTIES("field_pattern"="d", "parser"="unicode", "support_phrase" = "true") COMMENT ''
     ) ENGINE=OLAP DUPLICATE KEY(`id`) DISTRIBUTED BY HASH(`id`)
-    BUCKETS 1 PROPERTIES ( "replication_allocation" = "tag.location.default: 1", "disable_auto_compaction" = "true", "variant_max_subcolumns_count" = "2")"""
+    BUCKETS 1 PROPERTIES ( "replication_allocation" = "tag.location.default: 1", "disable_auto_compaction" = "true")"""
     sql """insert into ${tableName} values(1, '{"a": "2025-04-16", "b": 123.123456789012, "c": "2025-04-17T09:09:09Z", "d": 123, "e": "2025-04-19", "f": "2025-04-20", "g": "2025-04-21", "h": "2025-04-22", "i": "2025-04-23", "j": "2025-04-24", "k": "2025-04-25", "l": "2025-04-26", "m": "2025-04-27", "n": "2025-04-28", "o": "2025-04-29", "p": "2025-04-30"}', 'col');"""
     sql """insert into ${tableName} values(1, '{"a": "2025-04-16", "b": 123.123456789012, "c": "2025-04-17T09:09:09Z", "d": 123, "e": "2025-04-19", "f": "2025-04-20", "g": "2025-04-21", "h": "2025-04-22", "i": "2025-04-23", "j": "2025-04-24", "k": "2025-04-25", "l": "2025-04-26", "m": "2025-04-27", "n": "2025-04-28", "o": "2025-04-29", "p": "2025-04-30"}', 'col');"""
 
diff --git a/regression-test/suites/variant_p0/predefine/test_predefine_type_index.groovy b/regression-test/suites/variant_p0/predefine/test_predefine_type_index.groovy
index 5bbb969..d9ab4a8 100644
--- a/regression-test/suites/variant_p0/predefine/test_predefine_type_index.groovy
+++ b/regression-test/suites/variant_p0/predefine/test_predefine_type_index.groovy
@@ -19,6 +19,7 @@
     sql """ set describe_extend_variant_column = true """
     sql """ set enable_match_without_inverted_index = false """
     sql """ set enable_common_expr_pushdown = true """
+    sql """ set global_variant_enable_typed_paths_to_sparse = false """
 
     def tableName = "test_variant_predefine_index_type"
     sql "DROP TABLE IF EXISTS ${tableName}"
@@ -27,12 +28,13 @@
         `var` variant <
             MATCH_NAME 'path.int' : int,
             MATCH_NAME 'path.decimal' : DECIMAL(15, 12),
-            MATCH_NAME 'path.string' : string
+            MATCH_NAME 'path.string' : string,
+            properties("variant_max_subcolumns_count" = "10")
         > NULL,
         INDEX idx_a_b (var) USING INVERTED PROPERTIES("field_pattern"="path.int", "parser"="unicode", "support_phrase" = "true") COMMENT '',
         INDEX idx_a_c (var) USING INVERTED PROPERTIES("field_pattern"="path.decimal") COMMENT '',
         INDEX idx_a_d (var) USING INVERTED PROPERTIES("field_pattern"="path.string", "parser"="unicode", "support_phrase" = "true") COMMENT ''
-    ) ENGINE=OLAP DUPLICATE KEY(`id`) DISTRIBUTED BY HASH(`id`) BUCKETS 1 PROPERTIES ( "replication_allocation" = "tag.location.default: 1", "disable_auto_compaction" = "true", "variant_max_subcolumns_count" = "10")"""
+    ) ENGINE=OLAP DUPLICATE KEY(`id`) DISTRIBUTED BY HASH(`id`) BUCKETS 1 PROPERTIES ( "replication_allocation" = "tag.location.default: 1", "disable_auto_compaction" = "true")"""
 
     sql """insert into ${tableName} values(1, '{"path" : {"int" : 123, "decimal" : 123.123456789012, "string" : "hello"}}'),
                                           (2, '{"path" : {"int" : 456, "decimal" : 456.456789123456, "string" : "world"}}'),
@@ -69,7 +71,8 @@
           `id` int NOT NULL,
           `overflow_properties` variant<
             MATCH_NAME 'color' : text,
-            MATCH_NAME 'tags' : array<string>
+            MATCH_NAME 'tags' : array<string>,
+            properties("variant_max_subcolumns_count" = "10")
           > NULL,
           INDEX idx1 (`overflow_properties`) USING INVERTED PROPERTIES( "field_pattern" = "color", "support_phrase" = "true", "parser" = "english", "lower_case" = "true"),
           INDEX idx2 (`overflow_properties`) USING INVERTED PROPERTIES( "field_pattern" = "tags", "support_phrase" = "true", "parser" = "english", "lower_case" = "true")
@@ -87,7 +90,6 @@
         "enable_single_replica_compaction" = "false",
         "group_commit_interval_ms" = "10000",
         "group_commit_data_bytes" = "134217728",
-        "variant_max_subcolumns_count" = "10",
         "disable_auto_compaction" = "true"
         );
     """ 
diff --git a/regression-test/suites/variant_p0/predefine/test_predefine_type_multi_index.groovy b/regression-test/suites/variant_p0/predefine/test_predefine_type_multi_index.groovy
index 4f65208..525951b 100644
--- a/regression-test/suites/variant_p0/predefine/test_predefine_type_multi_index.groovy
+++ b/regression-test/suites/variant_p0/predefine/test_predefine_type_multi_index.groovy
@@ -19,17 +19,19 @@
     sql """ set describe_extend_variant_column = true """
     sql """ set enable_match_without_inverted_index = false """
     sql """ set enable_common_expr_pushdown = true """
+    sql """ set global_variant_enable_typed_paths_to_sparse = false """
 
     def tableName = "test_variant_predefine_type_multi_index"
     sql "DROP TABLE IF EXISTS ${tableName}"
     sql """CREATE TABLE ${tableName} (
         `id` bigint NULL,
         `var` variant <
-            MATCH_NAME 'path.string' : string
+            MATCH_NAME 'path.string' : string,
+            properties("variant_max_subcolumns_count" = "10")
         > NULL,
         INDEX idx_a_d (var) USING INVERTED PROPERTIES("field_pattern"="path.string", "parser"="unicode", "support_phrase" = "true") COMMENT '',
         INDEX idx_a_d_2 (var) USING INVERTED PROPERTIES("field_pattern"="path.string") COMMENT ''
-    ) ENGINE=OLAP DUPLICATE KEY(`id`) DISTRIBUTED BY HASH(`id`) BUCKETS 1 PROPERTIES ( "replication_allocation" = "tag.location.default: 1", "disable_auto_compaction" = "true", "variant_max_subcolumns_count" = "10")"""
+    ) ENGINE=OLAP DUPLICATE KEY(`id`) DISTRIBUTED BY HASH(`id`) BUCKETS 1 PROPERTIES ( "replication_allocation" = "tag.location.default: 1", "disable_auto_compaction" = "true")"""
 
     sql """insert into ${tableName} values(1, '{"path" : {"int" : 123, "decimal" : 123.123456789012, "string" : "hello"}}'),
                                           (2, '{"path" : {"int" : 456, "decimal" : 456.456789123456, "string" : "world"}}'),
diff --git a/regression-test/suites/variant_p0/predefine/test_types_with_indexes_profile.groovy b/regression-test/suites/variant_p0/predefine/test_types_with_indexes_profile.groovy
index d48f9b9..31e9d2a 100644
--- a/regression-test/suites/variant_p0/predefine/test_types_with_indexes_profile.groovy
+++ b/regression-test/suites/variant_p0/predefine/test_types_with_indexes_profile.groovy
@@ -18,6 +18,7 @@
     sql """ set describe_extend_variant_column = true """
     sql """ set enable_match_without_inverted_index = false """
     sql """ set enable_common_expr_pushdown = true """
+    sql """ set global_variant_enable_typed_paths_to_sparse = false """
 
      def load_json_data = {table_name, file_name ->
         // load the json data
@@ -66,7 +67,8 @@
                 'ipv4_*':ipv4,
                 'ipv6_*':ipv6,
                 'largeint_*':largeint,
-                'char_*': text
+                'char_*': text,
+                properties("variant_max_subcolumns_count" = "2")
             > NOT NULL,
         INDEX idx_a_b (var) USING INVERTED PROPERTIES("field_pattern"="array_decimal_*") COMMENT '',
         INDEX idx_a_c (var) USING INVERTED PROPERTIES("field_pattern"="array_ipv6_*") COMMENT '',
@@ -81,7 +83,7 @@
         INDEX idx_a_l (var) USING INVERTED PROPERTIES("field_pattern"="ipv6_*") COMMENT '',
         INDEX idx_a_m (var) USING INVERTED PROPERTIES("field_pattern"="largeint_*") COMMENT '',
         INDEX idx_a_n (var) USING INVERTED PROPERTIES("field_pattern"="char_*") COMMENT ''
-    ) ENGINE=OLAP DUPLICATE KEY(`id`) DISTRIBUTED BY HASH(`id`) BUCKETS 1 PROPERTIES ( "replication_allocation" = "tag.location.default: 1", "disable_auto_compaction" = "true", "variant_max_subcolumns_count" = "2")
+    ) ENGINE=OLAP DUPLICATE KEY(`id`) DISTRIBUTED BY HASH(`id`) BUCKETS 1 PROPERTIES ( "replication_allocation" = "tag.location.default: 1", "disable_auto_compaction" = "true")
 
     """
     sql """
diff --git a/regression-test/suites/variant_p0/predefine/test_variant_compaction_with_sparse_limit.groovy b/regression-test/suites/variant_p0/predefine/test_variant_compaction_with_sparse_limit.groovy
index 1d97d8f..0ab363d 100644
--- a/regression-test/suites/variant_p0/predefine/test_variant_compaction_with_sparse_limit.groovy
+++ b/regression-test/suites/variant_p0/predefine/test_variant_compaction_with_sparse_limit.groovy
@@ -46,10 +46,6 @@
         }
 
         set_be_config("variant_max_sparse_column_statistics_size", "2")
-        int max_subcolumns_count = Math.floor(Math.random() * 5) 
-        if (max_subcolumns_count == 1) {
-            max_subcolumns_count = 0
-        }
         def create_table = { tableName, buckets="auto", key_type="DUPLICATE" ->
             sql "DROP TABLE IF EXISTS ${tableName}"
             def var_def = "variant <'sala' : int, 'ddd' : double, 'z' : double>"
@@ -63,7 +59,7 @@
                 )
                 ${key_type} KEY(`k`)
                 DISTRIBUTED BY HASH(k) BUCKETS ${buckets}
-                properties("replication_num" = "1", "disable_auto_compaction" = "true", "variant_max_subcolumns_count" = "${max_subcolumns_count}");
+                properties("replication_num" = "1", "disable_auto_compaction" = "true");
             """
         }
         def key_types = ["DUPLICATE", "UNIQUE", "AGGREGATE"]
diff --git a/regression-test/suites/variant_p0/predefine/test_variant_is_null_expr.groovy b/regression-test/suites/variant_p0/predefine/test_variant_is_null_expr.groovy
index 4010c7e..9ac9cdd 100644
--- a/regression-test/suites/variant_p0/predefine/test_variant_is_null_expr.groovy
+++ b/regression-test/suites/variant_p0/predefine/test_variant_is_null_expr.groovy
@@ -19,7 +19,9 @@
 suite("test_variant_is_null_expr", "p0, nonConcurrent") {
     // define a sql table
     def testTable = "test_variant_is_null_expr"
-    int max_subcolumns_count = Math.floor(Math.random() * 5) + 1 
+
+    sql """ set global_variant_enable_typed_paths_to_sparse = false """
+
     sql """ DROP TABLE IF EXISTS ${testTable} """ 
     sql """
         CREATE TABLE ${testTable} (
@@ -30,14 +32,13 @@
           > NULL COMMENT "",
           INDEX idx_a (v) USING INVERTED PROPERTIES("field_pattern"= "string*", "parser"="unicode", "support_phrase" = "true") COMMENT '',
           INDEX idx_b (v) USING INVERTED PROPERTIES("field_pattern"= "string*"),
-          INDEX idx_c (v) USING INVERTED PROPERTIES("field_pattern"= "int*"),
+          INDEX idx_c (v) USING INVERTED PROPERTIES("field_pattern"= "int*")
           ) ENGINE=OLAP
           DUPLICATE KEY(`k`)
           COMMENT "OLAP"
           DISTRIBUTED BY HASH(`k`) BUCKETS 1
           PROPERTIES (
-          "replication_allocation" = "tag.location.default: 1",
-          "variant_max_subcolumns_count" = "${max_subcolumns_count}"
+          "replication_allocation" = "tag.location.default: 1"
         );
       """
 
diff --git a/regression-test/suites/variant_p0/predefine/variant_hirachinal.groovy b/regression-test/suites/variant_p0/predefine/variant_hirachinal.groovy
index 86cdbfc..032dfba 100644
--- a/regression-test/suites/variant_p0/predefine/variant_hirachinal.groovy
+++ b/regression-test/suites/variant_p0/predefine/variant_hirachinal.groovy
@@ -18,11 +18,12 @@
 suite("regression_test_variant_predefine_hirachinal", "variant_type"){
     def table_name = "var_rs"
     sql "DROP TABLE IF EXISTS ${table_name}"
+    int count = new Random().nextInt(10) + 1
 
     sql """
             CREATE TABLE IF NOT EXISTS ${table_name} (
                 k bigint,
-                v variant<'a' : largeint, 'c.d' : text>
+                v variant<'a' : largeint, 'c.d' : text, properties("variant_max_subcolumns_count" = "${count}")>
             )
             DUPLICATE KEY(`k`)
             DISTRIBUTED BY HASH(k) BUCKETS 1
diff --git a/regression-test/suites/variant_p0/predefine/variant_with_mow.groovy b/regression-test/suites/variant_p0/predefine/variant_with_mow.groovy
index bcb0d38..edb25b5 100644
--- a/regression-test/suites/variant_p0/predefine/variant_with_mow.groovy
+++ b/regression-test/suites/variant_p0/predefine/variant_with_mow.groovy
@@ -27,7 +27,9 @@
         `INGESTIONTIMESTAMP` bigint NOT NULL,
         `PROCESSEDTIMESTAMP` bigint NOT NULL,
         `VERSION` bigint NULL DEFAULT "0",
-        `OVERFLOWPROPERTIES` variant<'a' : int, 'b' : string, 'c' : largeint> NULL,
+        `OVERFLOWPROPERTIES` variant<'a' : int, 'b' : string, 'c' : largeint,
+        properties("variant_max_subcolumns_count" = "100")
+        > NULL,
         INDEX objects_properties_idx (`OVERFLOWPROPERTIES`) USING INVERTED COMMENT 'This is an inverted index on all properties of the object'
         ) ENGINE=OLAP
         UNIQUE KEY(`PORTALID`, `OBJECTTYPEID`, `OBJECTIDHASH`, `OBJECTID`)
@@ -36,7 +38,6 @@
         "replication_allocation" = "tag.location.default: 1",
         "enable_unique_key_merge_on_write" = "true",
         "function_column.sequence_col" = "VERSION",
-        "variant_max_subcolumns_count" = "100",
         "disable_auto_compaction" = "true"
         );
     """
diff --git a/regression-test/suites/variant_p0/rqg/fix_rqg1.groovy b/regression-test/suites/variant_p0/rqg/fix_rqg1.groovy
index 62f0c22..e66b279 100644
--- a/regression-test/suites/variant_p0/rqg/fix_rqg1.groovy
+++ b/regression-test/suites/variant_p0/rqg/fix_rqg1.groovy
@@ -34,7 +34,6 @@
         "storage_format" = "V2",
         "inverted_index_storage_format" = "V2",
         "light_schema_change" = "true",
-        "variant_max_subcolumns_count" = "0",
         "disable_auto_compaction" = "false",
         "enable_single_replica_compaction" = "false",
         "group_commit_interval_ms" = "10000",
diff --git a/regression-test/suites/variant_p0/rqg/rqg7.sql b/regression-test/suites/variant_p0/rqg/rqg7.sql
index 3be1416..cebd266 100644
--- a/regression-test/suites/variant_p0/rqg/rqg7.sql
+++ b/regression-test/suites/variant_p0/rqg/rqg7.sql
@@ -13,7 +13,7 @@
 /*!50503 SET character_set_client = utf8mb4 */;
 CREATE TABLE `table_100_undef_partitions2_keys3_properties4_distributed_by5` (
   `pk` int NULL,
-  `var` variant<MATCH_NAME_GLOB 'col_boolean_undef_signed':boolean,MATCH_NAME_GLOB 'col_boolean_undef_signed_not_null':boolean,MATCH_NAME_GLOB 'col_tinyint_undef_signed':tinyint,MATCH_NAME_GLOB 'col_tinyint_undef_signed_not_null':tinyint,MATCH_NAME_GLOB 'col_smallint_undef_signed':smallint,MATCH_NAME_GLOB 'col_smallint_undef_signed_not_null':smallint,MATCH_NAME_GLOB 'col_int_undef_signed':int,MATCH_NAME_GLOB 'col_int_undef_signed_not_null':int,MATCH_NAME_GLOB 'col_bigint_undef_signed':bigint,MATCH_NAME_GLOB 'col_bigint_undef_signed_not_null':bigint,MATCH_NAME_GLOB 'col_largeint_undef_signed':largeint,MATCH_NAME_GLOB 'col_largeint_undef_signed_not_null':largeint,MATCH_NAME_GLOB 'col_float_undef_signed':float,MATCH_NAME_GLOB 'col_float_undef_signed_not_null':float,MATCH_NAME_GLOB 'col_double_undef_signed':double,MATCH_NAME_GLOB 'col_double_undef_signed_not_null':double,MATCH_NAME_GLOB 'col_decimal_5_0__undef_signed':decimalv3(5,0),MATCH_NAME_GLOB 'col_decimal_5_0__undef_signed_not_null':decimalv3(5,0),MATCH_NAME_GLOB 'col_decimal_12_2__undef_signed':decimalv3(12,2),MATCH_NAME_GLOB 'col_decimal_12_2__undef_signed_not_null':decimalv3(12,2),MATCH_NAME_GLOB 'col_decimal_32_6__undef_signed':decimalv3(32,6),MATCH_NAME_GLOB 'col_decimal_32_6__undef_signed_not_null':decimalv3(32,6),MATCH_NAME_GLOB 'col_decimal_76__56__undef_signed':decimalv3(76,56),MATCH_NAME_GLOB 'col_decimal_76__56__undef_signed_not_null':decimalv3(76,56),MATCH_NAME_GLOB 'col_date_undef_signed':datev2,MATCH_NAME_GLOB 'col_date_undef_signed_not_null':datev2,MATCH_NAME_GLOB 'col_datetime_undef_signed':datetimev2(0),MATCH_NAME_GLOB 'col_datetime_undef_signed_not_null':datetimev2(0),MATCH_NAME_GLOB 'col_datetime_3__undef_signed':datetimev2(3),MATCH_NAME_GLOB 'col_datetime_3__undef_signed_not_null':datetimev2(3),MATCH_NAME_GLOB 'col_char_10__undef_signed':text,MATCH_NAME_GLOB 'col_char_10__undef_signed_not_null':text,MATCH_NAME_GLOB 'col_char_25__undef_signed':text,MATCH_NAME_GLOB 'col_char_25__undef_signed_not_null':text,MATCH_NAME_GLOB 'col_varchar_25__undef_signed':text,MATCH_NAME_GLOB 'col_varchar_25__undef_signed_not_null':text,MATCH_NAME_GLOB 'col_varchar_100__undef_signed':text,MATCH_NAME_GLOB 'col_varchar_100__undef_signed_not_null':text,MATCH_NAME_GLOB 'col_string_undef_signed':text,MATCH_NAME_GLOB 'col_string_undef_signed_not_null':text,MATCH_NAME_GLOB 'col_ipv4_undef_signed':ipv4,MATCH_NAME_GLOB 'col_ipv4_undef_signed_not_null':ipv4,MATCH_NAME_GLOB 'col_ipv6_undef_signed':ipv6,MATCH_NAME_GLOB 'col_ipv6_undef_signed_not_null':ipv6> NULL,
+  `var` variant<MATCH_NAME_GLOB 'col_boolean_undef_signed':boolean,MATCH_NAME_GLOB 'col_boolean_undef_signed_not_null':boolean,MATCH_NAME_GLOB 'col_tinyint_undef_signed':tinyint,MATCH_NAME_GLOB 'col_tinyint_undef_signed_not_null':tinyint,MATCH_NAME_GLOB 'col_smallint_undef_signed':smallint,MATCH_NAME_GLOB 'col_smallint_undef_signed_not_null':smallint,MATCH_NAME_GLOB 'col_int_undef_signed':int,MATCH_NAME_GLOB 'col_int_undef_signed_not_null':int,MATCH_NAME_GLOB 'col_bigint_undef_signed':bigint,MATCH_NAME_GLOB 'col_bigint_undef_signed_not_null':bigint,MATCH_NAME_GLOB 'col_largeint_undef_signed':largeint,MATCH_NAME_GLOB 'col_largeint_undef_signed_not_null':largeint,MATCH_NAME_GLOB 'col_float_undef_signed':float,MATCH_NAME_GLOB 'col_float_undef_signed_not_null':float,MATCH_NAME_GLOB 'col_double_undef_signed':double,MATCH_NAME_GLOB 'col_double_undef_signed_not_null':double,MATCH_NAME_GLOB 'col_decimal_5_0__undef_signed':decimalv3(5,0),MATCH_NAME_GLOB 'col_decimal_5_0__undef_signed_not_null':decimalv3(5,0),MATCH_NAME_GLOB 'col_decimal_12_2__undef_signed':decimalv3(12,2),MATCH_NAME_GLOB 'col_decimal_12_2__undef_signed_not_null':decimalv3(12,2),MATCH_NAME_GLOB 'col_decimal_32_6__undef_signed':decimalv3(32,6),MATCH_NAME_GLOB 'col_decimal_32_6__undef_signed_not_null':decimalv3(32,6),MATCH_NAME_GLOB 'col_decimal_76__56__undef_signed':decimalv3(76,56),MATCH_NAME_GLOB 'col_decimal_76__56__undef_signed_not_null':decimalv3(76,56),MATCH_NAME_GLOB 'col_date_undef_signed':datev2,MATCH_NAME_GLOB 'col_date_undef_signed_not_null':datev2,MATCH_NAME_GLOB 'col_datetime_undef_signed':datetimev2(0),MATCH_NAME_GLOB 'col_datetime_undef_signed_not_null':datetimev2(0),MATCH_NAME_GLOB 'col_datetime_3__undef_signed':datetimev2(3),MATCH_NAME_GLOB 'col_datetime_3__undef_signed_not_null':datetimev2(3),MATCH_NAME_GLOB 'col_char_10__undef_signed':text,MATCH_NAME_GLOB 'col_char_10__undef_signed_not_null':text,MATCH_NAME_GLOB 'col_char_25__undef_signed':text,MATCH_NAME_GLOB 'col_char_25__undef_signed_not_null':text,MATCH_NAME_GLOB 'col_varchar_25__undef_signed':text,MATCH_NAME_GLOB 'col_varchar_25__undef_signed_not_null':text,MATCH_NAME_GLOB 'col_varchar_100__undef_signed':text,MATCH_NAME_GLOB 'col_varchar_100__undef_signed_not_null':text,MATCH_NAME_GLOB 'col_string_undef_signed':text,MATCH_NAME_GLOB 'col_string_undef_signed_not_null':text,MATCH_NAME_GLOB 'col_ipv4_undef_signed':ipv4,MATCH_NAME_GLOB 'col_ipv4_undef_signed_not_null':ipv4,MATCH_NAME_GLOB 'col_ipv6_undef_signed':ipv6,MATCH_NAME_GLOB 'col_ipv6_undef_signed_not_null':ipv6, PROPERTIES("variant_max_subcolumns_count"="2048")> NULL,
   INDEX idx_col_boolean_undef_signed (`var`) USING INVERTED PROPERTIES("field_pattern" = "col_boolean_undef_signed"),
   INDEX idx_col_boolean_undef_signed_not_null (`var`) USING INVERTED PROPERTIES("field_pattern" = "col_boolean_undef_signed_not_null"),
   INDEX idx_col_tinyint_undef_signed (`var`) USING INVERTED PROPERTIES("field_pattern" = "col_tinyint_undef_signed"),
@@ -56,7 +56,6 @@
 "light_schema_change" = "true",
 "replication_num" = "1",
 "disable_auto_compaction" = "false",
-"variant_max_subcolumns_count" = "2048",
 "enable_single_replica_compaction" = "false",
 "group_commit_interval_ms" = "10000",
 "group_commit_data_bytes" = "134217728"
@@ -82,7 +81,7 @@
 /*!50503 SET character_set_client = utf8mb4 */;
 CREATE TABLE `table_100_undef_partitions2_keys3_properties4_distributed_by52` (
   `pk` int NULL,
-  `var` variant<MATCH_NAME_GLOB 'col_tinyint_undef_signed_not_null':tinyint,MATCH_NAME_GLOB 'col_decimal_5_0__undef_signed_not_null':decimalv3(5,0),MATCH_NAME_GLOB 'col_boolean_undef_signed':boolean,MATCH_NAME_GLOB 'col_boolean_undef_signed_not_null':boolean,MATCH_NAME_GLOB 'col_tinyint_undef_signed':tinyint,MATCH_NAME_GLOB 'col_smallint_undef_signed':smallint,MATCH_NAME_GLOB 'col_smallint_undef_signed_not_null':smallint,MATCH_NAME_GLOB 'col_int_undef_signed':int,MATCH_NAME_GLOB 'col_int_undef_signed_not_null':int,MATCH_NAME_GLOB 'col_bigint_undef_signed':bigint,MATCH_NAME_GLOB 'col_bigint_undef_signed_not_null':bigint,MATCH_NAME_GLOB 'col_largeint_undef_signed':largeint,MATCH_NAME_GLOB 'col_largeint_undef_signed_not_null':largeint,MATCH_NAME_GLOB 'col_float_undef_signed':float,MATCH_NAME_GLOB 'col_float_undef_signed_not_null':float,MATCH_NAME_GLOB 'col_double_undef_signed':double,MATCH_NAME_GLOB 'col_double_undef_signed_not_null':double,MATCH_NAME_GLOB 'col_decimal_5_0__undef_signed':decimalv3(5,0),MATCH_NAME_GLOB 'col_decimal_12_2__undef_signed':decimalv3(12,2),MATCH_NAME_GLOB 'col_decimal_12_2__undef_signed_not_null':decimalv3(12,2),MATCH_NAME_GLOB 'col_decimal_32_6__undef_signed':decimalv3(32,6),MATCH_NAME_GLOB 'col_decimal_32_6__undef_signed_not_null':decimalv3(32,6),MATCH_NAME_GLOB 'col_decimal_76__56__undef_signed':decimalv3(76,56),MATCH_NAME_GLOB 'col_decimal_76__56__undef_signed_not_null':decimalv3(76,56),MATCH_NAME_GLOB 'col_date_undef_signed':datev2,MATCH_NAME_GLOB 'col_date_undef_signed_not_null':datev2,MATCH_NAME_GLOB 'col_datetime_undef_signed':datetimev2(0),MATCH_NAME_GLOB 'col_datetime_undef_signed_not_null':datetimev2(0),MATCH_NAME_GLOB 'col_datetime_3__undef_signed':datetimev2(3),MATCH_NAME_GLOB 'col_datetime_3__undef_signed_not_null':datetimev2(3),MATCH_NAME_GLOB 'col_char_10__undef_signed':text,MATCH_NAME_GLOB 'col_char_10__undef_signed_not_null':text,MATCH_NAME_GLOB 'col_char_25__undef_signed':text,MATCH_NAME_GLOB 'col_char_25__undef_signed_not_null':text,MATCH_NAME_GLOB 'col_varchar_25__undef_signed':text,MATCH_NAME_GLOB 'col_varchar_25__undef_signed_not_null':text,MATCH_NAME_GLOB 'col_varchar_100__undef_signed':text,MATCH_NAME_GLOB 'col_varchar_100__undef_signed_not_null':text,MATCH_NAME_GLOB 'col_string_undef_signed':text,MATCH_NAME_GLOB 'col_string_undef_signed_not_null':text,MATCH_NAME_GLOB 'col_ipv4_undef_signed':ipv4,MATCH_NAME_GLOB 'col_ipv4_undef_signed_not_null':ipv4,MATCH_NAME_GLOB 'col_ipv6_undef_signed':ipv6,MATCH_NAME_GLOB 'col_ipv6_undef_signed_not_null':ipv6> NULL,
+  `var` variant<MATCH_NAME_GLOB 'col_tinyint_undef_signed_not_null':tinyint,MATCH_NAME_GLOB 'col_decimal_5_0__undef_signed_not_null':decimalv3(5,0),MATCH_NAME_GLOB 'col_boolean_undef_signed':boolean,MATCH_NAME_GLOB 'col_boolean_undef_signed_not_null':boolean,MATCH_NAME_GLOB 'col_tinyint_undef_signed':tinyint,MATCH_NAME_GLOB 'col_smallint_undef_signed':smallint,MATCH_NAME_GLOB 'col_smallint_undef_signed_not_null':smallint,MATCH_NAME_GLOB 'col_int_undef_signed':int,MATCH_NAME_GLOB 'col_int_undef_signed_not_null':int,MATCH_NAME_GLOB 'col_bigint_undef_signed':bigint,MATCH_NAME_GLOB 'col_bigint_undef_signed_not_null':bigint,MATCH_NAME_GLOB 'col_largeint_undef_signed':largeint,MATCH_NAME_GLOB 'col_largeint_undef_signed_not_null':largeint,MATCH_NAME_GLOB 'col_float_undef_signed':float,MATCH_NAME_GLOB 'col_float_undef_signed_not_null':float,MATCH_NAME_GLOB 'col_double_undef_signed':double,MATCH_NAME_GLOB 'col_double_undef_signed_not_null':double,MATCH_NAME_GLOB 'col_decimal_5_0__undef_signed':decimalv3(5,0),MATCH_NAME_GLOB 'col_decimal_12_2__undef_signed':decimalv3(12,2),MATCH_NAME_GLOB 'col_decimal_12_2__undef_signed_not_null':decimalv3(12,2),MATCH_NAME_GLOB 'col_decimal_32_6__undef_signed':decimalv3(32,6),MATCH_NAME_GLOB 'col_decimal_32_6__undef_signed_not_null':decimalv3(32,6),MATCH_NAME_GLOB 'col_decimal_76__56__undef_signed':decimalv3(76,56),MATCH_NAME_GLOB 'col_decimal_76__56__undef_signed_not_null':decimalv3(76,56),MATCH_NAME_GLOB 'col_date_undef_signed':datev2,MATCH_NAME_GLOB 'col_date_undef_signed_not_null':datev2,MATCH_NAME_GLOB 'col_datetime_undef_signed':datetimev2(0),MATCH_NAME_GLOB 'col_datetime_undef_signed_not_null':datetimev2(0),MATCH_NAME_GLOB 'col_datetime_3__undef_signed':datetimev2(3),MATCH_NAME_GLOB 'col_datetime_3__undef_signed_not_null':datetimev2(3),MATCH_NAME_GLOB 'col_char_10__undef_signed':text,MATCH_NAME_GLOB 'col_char_10__undef_signed_not_null':text,MATCH_NAME_GLOB 'col_char_25__undef_signed':text,MATCH_NAME_GLOB 'col_char_25__undef_signed_not_null':text,MATCH_NAME_GLOB 'col_varchar_25__undef_signed':text,MATCH_NAME_GLOB 'col_varchar_25__undef_signed_not_null':text,MATCH_NAME_GLOB 'col_varchar_100__undef_signed':text,MATCH_NAME_GLOB 'col_varchar_100__undef_signed_not_null':text,MATCH_NAME_GLOB 'col_string_undef_signed':text,MATCH_NAME_GLOB 'col_string_undef_signed_not_null':text,MATCH_NAME_GLOB 'col_ipv4_undef_signed':ipv4,MATCH_NAME_GLOB 'col_ipv4_undef_signed_not_null':ipv4,MATCH_NAME_GLOB 'col_ipv6_undef_signed':ipv6,MATCH_NAME_GLOB 'col_ipv6_undef_signed_not_null':ipv6,PROPERTIES("variant_max_subcolumns_count"="2048")> NULL,
   INDEX idx_col_tinyint_undef_signed_not_null (`var`) USING INVERTED PROPERTIES("field_pattern" = "col_tinyint_undef_signed_not_null"),
   INDEX idx_col_decimal_5_0__undef_signed_not_null (`var`) USING INVERTED PROPERTIES("field_pattern" = "col_decimal_5_0__undef_signed_not_null"),
   INDEX idx_col_boolean_undef_signed (`var`) USING INVERTED PROPERTIES("field_pattern" = "col_boolean_undef_signed"),
@@ -125,7 +124,6 @@
 "light_schema_change" = "true",
 "replication_num" = "1",
 "disable_auto_compaction" = "false",
-"variant_max_subcolumns_count" = "2048",
 "enable_single_replica_compaction" = "false",
 "group_commit_interval_ms" = "10000",
 "group_commit_data_bytes" = "134217728"
@@ -151,7 +149,7 @@
 /*!50503 SET character_set_client = utf8mb4 */;
 CREATE TABLE `table_100_undef_partitions2_keys3_properties4_distributed_by53` (
   `pk` int NULL,
-  `var` variant<MATCH_NAME_GLOB 'col_bigint_undef_signed_not_null':bigint,MATCH_NAME_GLOB 'col_char_25__undef_signed_not_null':text,MATCH_NAME_GLOB 'col_boolean_undef_signed':boolean,MATCH_NAME_GLOB 'col_boolean_undef_signed_not_null':boolean,MATCH_NAME_GLOB 'col_tinyint_undef_signed':tinyint,MATCH_NAME_GLOB 'col_tinyint_undef_signed_not_null':tinyint,MATCH_NAME_GLOB 'col_smallint_undef_signed':smallint,MATCH_NAME_GLOB 'col_smallint_undef_signed_not_null':smallint,MATCH_NAME_GLOB 'col_int_undef_signed':int,MATCH_NAME_GLOB 'col_int_undef_signed_not_null':int,MATCH_NAME_GLOB 'col_bigint_undef_signed':bigint,MATCH_NAME_GLOB 'col_largeint_undef_signed':largeint,MATCH_NAME_GLOB 'col_largeint_undef_signed_not_null':largeint,MATCH_NAME_GLOB 'col_float_undef_signed':float,MATCH_NAME_GLOB 'col_float_undef_signed_not_null':float,MATCH_NAME_GLOB 'col_double_undef_signed':double,MATCH_NAME_GLOB 'col_double_undef_signed_not_null':double,MATCH_NAME_GLOB 'col_decimal_5_0__undef_signed':decimalv3(5,0),MATCH_NAME_GLOB 'col_decimal_5_0__undef_signed_not_null':decimalv3(5,0),MATCH_NAME_GLOB 'col_decimal_12_2__undef_signed':decimalv3(12,2),MATCH_NAME_GLOB 'col_decimal_12_2__undef_signed_not_null':decimalv3(12,2),MATCH_NAME_GLOB 'col_decimal_32_6__undef_signed':decimalv3(32,6),MATCH_NAME_GLOB 'col_decimal_32_6__undef_signed_not_null':decimalv3(32,6),MATCH_NAME_GLOB 'col_decimal_76__56__undef_signed':decimalv3(76,56),MATCH_NAME_GLOB 'col_decimal_76__56__undef_signed_not_null':decimalv3(76,56),MATCH_NAME_GLOB 'col_date_undef_signed':datev2,MATCH_NAME_GLOB 'col_date_undef_signed_not_null':datev2,MATCH_NAME_GLOB 'col_datetime_undef_signed':datetimev2(0),MATCH_NAME_GLOB 'col_datetime_undef_signed_not_null':datetimev2(0),MATCH_NAME_GLOB 'col_datetime_3__undef_signed':datetimev2(3),MATCH_NAME_GLOB 'col_datetime_3__undef_signed_not_null':datetimev2(3),MATCH_NAME_GLOB 'col_char_10__undef_signed':text,MATCH_NAME_GLOB 'col_char_10__undef_signed_not_null':text,MATCH_NAME_GLOB 'col_char_25__undef_signed':text,MATCH_NAME_GLOB 'col_varchar_25__undef_signed':text,MATCH_NAME_GLOB 'col_varchar_25__undef_signed_not_null':text,MATCH_NAME_GLOB 'col_varchar_100__undef_signed':text,MATCH_NAME_GLOB 'col_varchar_100__undef_signed_not_null':text,MATCH_NAME_GLOB 'col_string_undef_signed':text,MATCH_NAME_GLOB 'col_string_undef_signed_not_null':text,MATCH_NAME_GLOB 'col_ipv4_undef_signed':ipv4,MATCH_NAME_GLOB 'col_ipv4_undef_signed_not_null':ipv4,MATCH_NAME_GLOB 'col_ipv6_undef_signed':ipv6,MATCH_NAME_GLOB 'col_ipv6_undef_signed_not_null':ipv6> NULL,
+  `var` variant<MATCH_NAME_GLOB 'col_bigint_undef_signed_not_null':bigint,MATCH_NAME_GLOB 'col_char_25__undef_signed_not_null':text,MATCH_NAME_GLOB 'col_boolean_undef_signed':boolean,MATCH_NAME_GLOB 'col_boolean_undef_signed_not_null':boolean,MATCH_NAME_GLOB 'col_tinyint_undef_signed':tinyint,MATCH_NAME_GLOB 'col_tinyint_undef_signed_not_null':tinyint,MATCH_NAME_GLOB 'col_smallint_undef_signed':smallint,MATCH_NAME_GLOB 'col_smallint_undef_signed_not_null':smallint,MATCH_NAME_GLOB 'col_int_undef_signed':int,MATCH_NAME_GLOB 'col_int_undef_signed_not_null':int,MATCH_NAME_GLOB 'col_bigint_undef_signed':bigint,MATCH_NAME_GLOB 'col_largeint_undef_signed':largeint,MATCH_NAME_GLOB 'col_largeint_undef_signed_not_null':largeint,MATCH_NAME_GLOB 'col_float_undef_signed':float,MATCH_NAME_GLOB 'col_float_undef_signed_not_null':float,MATCH_NAME_GLOB 'col_double_undef_signed':double,MATCH_NAME_GLOB 'col_double_undef_signed_not_null':double,MATCH_NAME_GLOB 'col_decimal_5_0__undef_signed':decimalv3(5,0),MATCH_NAME_GLOB 'col_decimal_5_0__undef_signed_not_null':decimalv3(5,0),MATCH_NAME_GLOB 'col_decimal_12_2__undef_signed':decimalv3(12,2),MATCH_NAME_GLOB 'col_decimal_12_2__undef_signed_not_null':decimalv3(12,2),MATCH_NAME_GLOB 'col_decimal_32_6__undef_signed':decimalv3(32,6),MATCH_NAME_GLOB 'col_decimal_32_6__undef_signed_not_null':decimalv3(32,6),MATCH_NAME_GLOB 'col_decimal_76__56__undef_signed':decimalv3(76,56),MATCH_NAME_GLOB 'col_decimal_76__56__undef_signed_not_null':decimalv3(76,56),MATCH_NAME_GLOB 'col_date_undef_signed':datev2,MATCH_NAME_GLOB 'col_date_undef_signed_not_null':datev2,MATCH_NAME_GLOB 'col_datetime_undef_signed':datetimev2(0),MATCH_NAME_GLOB 'col_datetime_undef_signed_not_null':datetimev2(0),MATCH_NAME_GLOB 'col_datetime_3__undef_signed':datetimev2(3),MATCH_NAME_GLOB 'col_datetime_3__undef_signed_not_null':datetimev2(3),MATCH_NAME_GLOB 'col_char_10__undef_signed':text,MATCH_NAME_GLOB 'col_char_10__undef_signed_not_null':text,MATCH_NAME_GLOB 'col_char_25__undef_signed':text,MATCH_NAME_GLOB 'col_varchar_25__undef_signed':text,MATCH_NAME_GLOB 'col_varchar_25__undef_signed_not_null':text,MATCH_NAME_GLOB 'col_varchar_100__undef_signed':text,MATCH_NAME_GLOB 'col_varchar_100__undef_signed_not_null':text,MATCH_NAME_GLOB 'col_string_undef_signed':text,MATCH_NAME_GLOB 'col_string_undef_signed_not_null':text,MATCH_NAME_GLOB 'col_ipv4_undef_signed':ipv4,MATCH_NAME_GLOB 'col_ipv4_undef_signed_not_null':ipv4,MATCH_NAME_GLOB 'col_ipv6_undef_signed':ipv6,MATCH_NAME_GLOB 'col_ipv6_undef_signed_not_null':ipv6, PROPERTIES("variant_max_subcolumns_count"="2048")> NULL,
   INDEX idx_col_bigint_undef_signed_not_null (`var`) USING INVERTED PROPERTIES("field_pattern" = "col_bigint_undef_signed_not_null"),
   INDEX idx_col_boolean_undef_signed (`var`) USING INVERTED PROPERTIES("field_pattern" = "col_boolean_undef_signed"),
   INDEX idx_col_boolean_undef_signed_not_null (`var`) USING INVERTED PROPERTIES("field_pattern" = "col_boolean_undef_signed_not_null"),
@@ -194,7 +192,6 @@
 "light_schema_change" = "true",
 "replication_num" = "1",
 "disable_auto_compaction" = "false",
-"variant_max_subcolumns_count" = "2048",
 "enable_single_replica_compaction" = "false",
 "group_commit_interval_ms" = "10000",
 "group_commit_data_bytes" = "134217728"
@@ -220,7 +217,7 @@
 /*!50503 SET character_set_client = utf8mb4 */;
 CREATE TABLE `table_100_undef_partitions2_keys3_properties4_distributed_by54` (
   `pk` int NULL,
-  `var` variant<MATCH_NAME_GLOB 'col_bigint_undef_signed_not_null':bigint,MATCH_NAME_GLOB 'col_decimal_12_2__undef_signed_not_null':decimalv3(12,2),MATCH_NAME_GLOB 'col_datetime_undef_signed_not_null':datetimev2(0),MATCH_NAME_GLOB 'col_boolean_undef_signed':boolean,MATCH_NAME_GLOB 'col_boolean_undef_signed_not_null':boolean,MATCH_NAME_GLOB 'col_tinyint_undef_signed':tinyint,MATCH_NAME_GLOB 'col_tinyint_undef_signed_not_null':tinyint,MATCH_NAME_GLOB 'col_smallint_undef_signed':smallint,MATCH_NAME_GLOB 'col_smallint_undef_signed_not_null':smallint,MATCH_NAME_GLOB 'col_int_undef_signed':int,MATCH_NAME_GLOB 'col_int_undef_signed_not_null':int,MATCH_NAME_GLOB 'col_bigint_undef_signed':bigint,MATCH_NAME_GLOB 'col_largeint_undef_signed':largeint,MATCH_NAME_GLOB 'col_largeint_undef_signed_not_null':largeint,MATCH_NAME_GLOB 'col_float_undef_signed':float,MATCH_NAME_GLOB 'col_float_undef_signed_not_null':float,MATCH_NAME_GLOB 'col_double_undef_signed':double,MATCH_NAME_GLOB 'col_double_undef_signed_not_null':double,MATCH_NAME_GLOB 'col_decimal_5_0__undef_signed':decimalv3(5,0),MATCH_NAME_GLOB 'col_decimal_5_0__undef_signed_not_null':decimalv3(5,0),MATCH_NAME_GLOB 'col_decimal_12_2__undef_signed':decimalv3(12,2),MATCH_NAME_GLOB 'col_decimal_32_6__undef_signed':decimalv3(32,6),MATCH_NAME_GLOB 'col_decimal_32_6__undef_signed_not_null':decimalv3(32,6),MATCH_NAME_GLOB 'col_decimal_76__56__undef_signed':decimalv3(76,56),MATCH_NAME_GLOB 'col_decimal_76__56__undef_signed_not_null':decimalv3(76,56),MATCH_NAME_GLOB 'col_date_undef_signed':datev2,MATCH_NAME_GLOB 'col_date_undef_signed_not_null':datev2,MATCH_NAME_GLOB 'col_datetime_undef_signed':datetimev2(0),MATCH_NAME_GLOB 'col_datetime_3__undef_signed':datetimev2(3),MATCH_NAME_GLOB 'col_datetime_3__undef_signed_not_null':datetimev2(3),MATCH_NAME_GLOB 'col_char_10__undef_signed':text,MATCH_NAME_GLOB 'col_char_10__undef_signed_not_null':text,MATCH_NAME_GLOB 'col_char_25__undef_signed':text,MATCH_NAME_GLOB 'col_char_25__undef_signed_not_null':text,MATCH_NAME_GLOB 'col_varchar_25__undef_signed':text,MATCH_NAME_GLOB 'col_varchar_25__undef_signed_not_null':text,MATCH_NAME_GLOB 'col_varchar_100__undef_signed':text,MATCH_NAME_GLOB 'col_varchar_100__undef_signed_not_null':text,MATCH_NAME_GLOB 'col_string_undef_signed':text,MATCH_NAME_GLOB 'col_string_undef_signed_not_null':text,MATCH_NAME_GLOB 'col_ipv4_undef_signed':ipv4,MATCH_NAME_GLOB 'col_ipv4_undef_signed_not_null':ipv4,MATCH_NAME_GLOB 'col_ipv6_undef_signed':ipv6,MATCH_NAME_GLOB 'col_ipv6_undef_signed_not_null':ipv6> NULL,
+  `var` variant<MATCH_NAME_GLOB 'col_bigint_undef_signed_not_null':bigint,MATCH_NAME_GLOB 'col_decimal_12_2__undef_signed_not_null':decimalv3(12,2),MATCH_NAME_GLOB 'col_datetime_undef_signed_not_null':datetimev2(0),MATCH_NAME_GLOB 'col_boolean_undef_signed':boolean,MATCH_NAME_GLOB 'col_boolean_undef_signed_not_null':boolean,MATCH_NAME_GLOB 'col_tinyint_undef_signed':tinyint,MATCH_NAME_GLOB 'col_tinyint_undef_signed_not_null':tinyint,MATCH_NAME_GLOB 'col_smallint_undef_signed':smallint,MATCH_NAME_GLOB 'col_smallint_undef_signed_not_null':smallint,MATCH_NAME_GLOB 'col_int_undef_signed':int,MATCH_NAME_GLOB 'col_int_undef_signed_not_null':int,MATCH_NAME_GLOB 'col_bigint_undef_signed':bigint,MATCH_NAME_GLOB 'col_largeint_undef_signed':largeint,MATCH_NAME_GLOB 'col_largeint_undef_signed_not_null':largeint,MATCH_NAME_GLOB 'col_float_undef_signed':float,MATCH_NAME_GLOB 'col_float_undef_signed_not_null':float,MATCH_NAME_GLOB 'col_double_undef_signed':double,MATCH_NAME_GLOB 'col_double_undef_signed_not_null':double,MATCH_NAME_GLOB 'col_decimal_5_0__undef_signed':decimalv3(5,0),MATCH_NAME_GLOB 'col_decimal_5_0__undef_signed_not_null':decimalv3(5,0),MATCH_NAME_GLOB 'col_decimal_12_2__undef_signed':decimalv3(12,2),MATCH_NAME_GLOB 'col_decimal_32_6__undef_signed':decimalv3(32,6),MATCH_NAME_GLOB 'col_decimal_32_6__undef_signed_not_null':decimalv3(32,6),MATCH_NAME_GLOB 'col_decimal_76__56__undef_signed':decimalv3(76,56),MATCH_NAME_GLOB 'col_decimal_76__56__undef_signed_not_null':decimalv3(76,56),MATCH_NAME_GLOB 'col_date_undef_signed':datev2,MATCH_NAME_GLOB 'col_date_undef_signed_not_null':datev2,MATCH_NAME_GLOB 'col_datetime_undef_signed':datetimev2(0),MATCH_NAME_GLOB 'col_datetime_3__undef_signed':datetimev2(3),MATCH_NAME_GLOB 'col_datetime_3__undef_signed_not_null':datetimev2(3),MATCH_NAME_GLOB 'col_char_10__undef_signed':text,MATCH_NAME_GLOB 'col_char_10__undef_signed_not_null':text,MATCH_NAME_GLOB 'col_char_25__undef_signed':text,MATCH_NAME_GLOB 'col_char_25__undef_signed_not_null':text,MATCH_NAME_GLOB 'col_varchar_25__undef_signed':text,MATCH_NAME_GLOB 'col_varchar_25__undef_signed_not_null':text,MATCH_NAME_GLOB 'col_varchar_100__undef_signed':text,MATCH_NAME_GLOB 'col_varchar_100__undef_signed_not_null':text,MATCH_NAME_GLOB 'col_string_undef_signed':text,MATCH_NAME_GLOB 'col_string_undef_signed_not_null':text,MATCH_NAME_GLOB 'col_ipv4_undef_signed':ipv4,MATCH_NAME_GLOB 'col_ipv4_undef_signed_not_null':ipv4,MATCH_NAME_GLOB 'col_ipv6_undef_signed':ipv6,MATCH_NAME_GLOB 'col_ipv6_undef_signed_not_null':ipv6, PROPERTIES("variant_max_subcolumns_count"="2048")> NULL,
   INDEX idx_col_bigint_undef_signed_not_null (`var`) USING INVERTED PROPERTIES("field_pattern" = "col_bigint_undef_signed_not_null"),
   INDEX idx_col_decimal_12_2__undef_signed_not_null (`var`) USING INVERTED PROPERTIES("field_pattern" = "col_decimal_12_2__undef_signed_not_null"),
   INDEX idx_col_datetime_undef_signed_not_null (`var`) USING INVERTED PROPERTIES("field_pattern" = "col_datetime_undef_signed_not_null"),
@@ -263,7 +260,6 @@
 "light_schema_change" = "true",
 "replication_num" = "1",
 "disable_auto_compaction" = "false",
-"variant_max_subcolumns_count" = "2048",
 "enable_single_replica_compaction" = "false",
 "group_commit_interval_ms" = "10000",
 "group_commit_data_bytes" = "134217728"
diff --git a/regression-test/suites/variant_p0/schema_change/schema_change.groovy b/regression-test/suites/variant_p0/schema_change/schema_change.groovy
index 9c5011a..2e8a094 100644
--- a/regression-test/suites/variant_p0/schema_change/schema_change.groovy
+++ b/regression-test/suites/variant_p0/schema_change/schema_change.groovy
@@ -16,6 +16,7 @@
 // under the License.
 
 suite("regression_test_variant_schema_change", "variant_type"){
+
     def table_name = "variant_schema_change"
     sql "DROP TABLE IF EXISTS ${table_name}"
     sql """
diff --git a/regression-test/suites/variant_p0/schema_change/test_add_multi_var_mulit_indexes.groovy b/regression-test/suites/variant_p0/schema_change/test_add_multi_var_mulit_indexes.groovy
new file mode 100644
index 0000000..3d01fb5
--- /dev/null
+++ b/regression-test/suites/variant_p0/schema_change/test_add_multi_var_mulit_indexes.groovy
@@ -0,0 +1,98 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+
+suite("regression_test_variant_add_multi_var_mulit_indexes", "variant_type"){
+
+
+    def timeout = 60000
+    def delta_time = 1000
+    def alter_res = "null"
+    def useTime = 0
+    def wait_for_latest_op_on_table_finish = { tableName, OpTimeout ->
+        for(int t = delta_time; t <= OpTimeout; t += delta_time){
+            alter_res = sql """SHOW ALTER TABLE COLUMN WHERE TableName = "${tableName}" ORDER BY CreateTime DESC LIMIT 1;"""
+            alter_res = alter_res.toString()
+            if(alter_res.contains("FINISHED")) {
+                sleep(3000) // wait change table state to normal
+                logger.info(tableName + " latest alter job finished, detail: " + alter_res)
+                break
+            }
+            useTime = t
+            sleep(delta_time)
+        }
+        assertTrue(useTime <= OpTimeout, "wait_for_latest_op_on_table_finish timeout")
+    }
+    def table_name = "variant_add_multi_var_mulit_indexes"
+    int count = new Random().nextInt(10) + 3
+    sql "set global_variant_max_subcolumns_count = ${count}"
+    sql "set global_variant_enable_typed_paths_to_sparse = false"
+    sql "DROP TABLE IF EXISTS ${table_name}"
+    sql """
+        CREATE TABLE IF NOT EXISTS ${table_name} (
+            k bigint,
+            v variant<properties("variant_max_subcolumns_count" = "${count}")>
+        )
+        DUPLICATE KEY(`k`)
+        DISTRIBUTED BY HASH(k) BUCKETS 1
+        properties("replication_num" = "1", "disable_auto_compaction" = "true");
+    """
+    sql """insert into  ${table_name} values (0, '{"a" : 12345,"b" : 2}')"""
+    test {
+        sql """alter table  ${table_name} add column var2 variant<properties("variant_max_subcolumns_count" = "0")> NULL"""
+        exception("The variant_max_subcolumns_count must either be 0 in all columns or greater than 0 in all columns")
+    }
+    
+    sql """ alter table  ${table_name} add column v2 variant<'a': string, 'b': string> NULL"""
+
+    sql """insert into  ${table_name} values (1, '{"a" : 12345,"b" : 2}', '{"a" : 12345,"b" : 3}')"""
+
+    sql """alter table  ${table_name} add column v3 variant NULL"""
+
+    sql """insert into  ${table_name} values (2, '{"a" : 12345,"b" : 2}', '{"a" : 56789,"b" : 3}', '{"a" : 12345,"b" : 2}')"""
+
+    sql """alter table ${table_name} add index idx_v2(v2) using inverted"""
+    wait_for_latest_op_on_table_finish(table_name, timeout)
+
+    sql """alter table  ${table_name} add index idx_v3(v3) using inverted"""
+    wait_for_latest_op_on_table_finish(table_name, timeout)
+
+    sql """alter table  ${table_name} add index idx_v4(v2) using inverted properties("parser" = "unicode")"""
+    wait_for_latest_op_on_table_finish(table_name, timeout)
+
+    sql """alter table  ${table_name} add index idx_v5(v3) using inverted properties("parser" = "unicode", "support_phrase" = "true")"""
+    wait_for_latest_op_on_table_finish(table_name, timeout)
+
+    sql """insert into  ${table_name} values (3, '{"a" : 12345,"b" : 2}', '{"a" : 12345,"b" : 2}', '{"a" : 56789,"b" : 2}')"""
+
+    sql """insert into  ${table_name} values (4, '{"a" : 12345,"b" : 2}', '{"a" : 56789,"b" : 2}', '{"a" : 12345,"b" : 3}')"""
+
+    trigger_and_wait_compaction("${table_name}", "full")
+
+    qt_sql "select * from  ${table_name} order by k"
+
+    sql """ set enable_match_without_inverted_index = false"""
+    sql """ set enable_inverted_index_query = true"""
+    sql """ set enable_common_expr_pushdown = true"""
+    sql """ set enable_common_expr_pushdown_for_inverted_index = true"""
+    
+    qt_sql "select * from  ${table_name} where cast(v2['a'] as string) match '12345' order by k"
+    qt_sql "select * from  ${table_name} where cast(v2['b'] as string) match '2' order by k"
+    qt_sql "select * from  ${table_name} where cast(v3['b'] as int) = 2 order by k"
+    
+    
+}
\ No newline at end of file
diff --git a/regression-test/suites/variant_p0/test_sub_path_pruning.groovy b/regression-test/suites/variant_p0/test_sub_path_pruning.groovy
index a553c17..28960d2 100644
--- a/regression-test/suites/variant_p0/test_sub_path_pruning.groovy
+++ b/regression-test/suites/variant_p0/test_sub_path_pruning.groovy
@@ -17,6 +17,9 @@
 
 suite("variant_sub_path_pruning", "variant_type"){
 
+    sql """ set global_variant_enable_typed_paths_to_sparse = false """
+    sql """ set global_variant_max_subcolumns_count = 0 """
+
     sql "DROP TABLE IF EXISTS pruning_test"
 
     sql """
@@ -26,7 +29,7 @@
         ) 
         DUPLICATE KEY(id)
         DISTRIBUTED BY HASH(id)
-        PROPERTIES("replication_num"="1", "variant_max_subcolumns_count" = "0")
+        PROPERTIES("replication_num"="1")
     """
 
     sql """
diff --git a/regression-test/suites/variant_p0/test_variant_float_double_index.groovy b/regression-test/suites/variant_p0/test_variant_float_double_index.groovy
index 5b978f9..5fdb387 100644
--- a/regression-test/suites/variant_p0/test_variant_float_double_index.groovy
+++ b/regression-test/suites/variant_p0/test_variant_float_double_index.groovy
@@ -23,6 +23,7 @@
     sql """ set enable_match_without_inverted_index = false """
     sql """ set enable_common_expr_pushdown = true """
     sql """ set inverted_index_skip_threshold = 0 """
+    sql """ set global_variant_enable_typed_paths_to_sparse = false """
 
     def queryAndCheck = { String sqlQuery, int expectedFilteredRows = -1, boolean checkFilterUsed = true ->
       def checkpoints_name = "segment_iterator.inverted_index.filtered_rows"
@@ -43,9 +44,9 @@
     sql """
         CREATE TABLE ${tableName} (
             `id` int(11) NULL,
-            `v` variant,
+            `v` variant<properties("variant_max_subcolumns_count" = "10")>,
             INDEX idx_variant (v) USING INVERTED
-        ) ENGINE=OLAP DUPLICATE KEY(`id`) DISTRIBUTED BY HASH(`id`) BUCKETS 1 PROPERTIES ( "replication_allocation" = "tag.location.default: 1", "disable_auto_compaction" = "true", "variant_max_subcolumns_count" = "10")
+        ) ENGINE=OLAP DUPLICATE KEY(`id`) DISTRIBUTED BY HASH(`id`) BUCKETS 1 PROPERTIES ( "replication_allocation" = "tag.location.default: 1", "disable_auto_compaction" = "true")
     """
     
     sql """ insert into ${tableName} values (1, '{"float_col" : 1.5, "double_col" : 1.5239849328948}'), (2, '{"float_col" : 2.23, "double_col" : 2.239849328948}'), (3, '{"float_col" : 3.02, "double_col" : 3.029849328948}') """
@@ -96,11 +97,12 @@
             `id` int(11) NULL,
             `v` variant<
                 MATCH_NAME 'float_col': float,
-                MATCH_NAME 'double_col': double
+                MATCH_NAME 'double_col': double,
+                properties("variant_max_subcolumns_count" = "10")
             >,
             INDEX idx_variant (v) USING INVERTED PROPERTIES ( "field_pattern" = "float_col"),
             INDEX idx_variant_double (v) USING INVERTED PROPERTIES ( "field_pattern" = "double_col")
-        ) ENGINE=OLAP DUPLICATE KEY(`id`) DISTRIBUTED BY HASH(`id`) BUCKETS 1 PROPERTIES ( "replication_allocation" = "tag.location.default: 1", "disable_auto_compaction" = "true", "variant_max_subcolumns_count" = "10")
+        ) ENGINE=OLAP DUPLICATE KEY(`id`) DISTRIBUTED BY HASH(`id`) BUCKETS 1 PROPERTIES ( "replication_allocation" = "tag.location.default: 1", "disable_auto_compaction" = "true")
     """
     
     sql """ insert into ${tableName} values (1, '{"float_col" : 1.5, "double_col" : 1.5239849328948}'), (2, '{"float_col" : 2.23, "double_col" : 2.239849328948}'), (3, '{"float_col" : 3.02, "double_col" : 3.029849328948}') """
diff --git a/regression-test/suites/variant_p0/test_variant_is_null_expr.groovy b/regression-test/suites/variant_p0/test_variant_is_null_expr.groovy
index bb6d4de..039d957 100644
--- a/regression-test/suites/variant_p0/test_variant_is_null_expr.groovy
+++ b/regression-test/suites/variant_p0/test_variant_is_null_expr.groovy
@@ -24,15 +24,14 @@
     sql """
         CREATE TABLE ${testTable} (
           `k` int(11) NULL COMMENT "",
-          `v` variant NULL COMMENT "",
+          `v` variant<properties("variant_max_subcolumns_count" = "10")> NULL COMMENT "",
           INDEX idx_a (v) USING INVERTED
           ) ENGINE=OLAP
           DUPLICATE KEY(`k`)
           COMMENT "OLAP"
           DISTRIBUTED BY HASH(`k`) BUCKETS 1
           PROPERTIES (
-          "replication_allocation" = "tag.location.default: 1",
-          "variant_max_subcolumns_count" = "10"
+          "replication_allocation" = "tag.location.default: 1"
         );
       """
 
diff --git a/regression-test/suites/variant_p0/tpch/load.groovy b/regression-test/suites/variant_p0/tpch/load.groovy
index 44ef25e..b85ad0d 100644
--- a/regression-test/suites/variant_p0/tpch/load.groovy
+++ b/regression-test/suites/variant_p0/tpch/load.groovy
@@ -39,8 +39,8 @@
         sql "DROP TABLE IF EXISTS ${tableName}"
         int max_subcolumns_count = Math.floor(Math.random() * 7) 
         def var_def = "variant"
-        if (max_subcolumns_count % 2) {
-            var_def = "variant<'O_CLERK' : string, 'C_COMMENT' : string, 'L_RETURNFLAG' : string, 'S_COMMENT' : string, 'S_ACCTBAL' : double>"
+        if (max_subcolumns_count % 2 == 0) {
+            var_def = "variant<'O_CLERK' : string, 'C_COMMENT' : string, 'L_RETURNFLAG' : string, 'S_COMMENT' : string, 'S_ACCTBAL' : double, properties(\"variant_max_subcolumns_count\" = \"${max_subcolumns_count}\", \"variant_enable_typed_paths_to_sparse\" = \"false\")>"
         }
         sql """
                 CREATE TABLE IF NOT EXISTS ${tableName} (
@@ -49,7 +49,7 @@
                 )
                 DUPLICATE KEY(`k`)
                 DISTRIBUTED BY RANDOM BUCKETS 5 
-                properties("replication_num" = "1", "disable_auto_compaction" = "false", "variant_max_subcolumns_count" = "${max_subcolumns_count}");
+                properties("replication_num" = "1", "disable_auto_compaction" = "false");
             """
         streamLoad {
             // a default db 'regression_test' is specified in
diff --git a/regression-test/suites/variant_p0/variant_with_mow.groovy b/regression-test/suites/variant_p0/variant_with_mow.groovy
index 459a406..d488826 100644
--- a/regression-test/suites/variant_p0/variant_with_mow.groovy
+++ b/regression-test/suites/variant_p0/variant_with_mow.groovy
@@ -27,7 +27,7 @@
         `INGESTIONTIMESTAMP` bigint NOT NULL,
         `PROCESSEDTIMESTAMP` bigint NOT NULL,
         `VERSION` bigint NULL DEFAULT "0",
-        `OVERFLOWPROPERTIES` variant NULL,
+        `OVERFLOWPROPERTIES` variant<properties("variant_max_subcolumns_count" = "100")> NULL,
         INDEX objects_properties_idx (`OVERFLOWPROPERTIES`) USING INVERTED COMMENT 'This is an inverted index on all properties of the object'
         ) ENGINE=OLAP
         UNIQUE KEY(`PORTALID`, `OBJECTTYPEID`, `OBJECTIDHASH`, `OBJECTID`)
@@ -36,7 +36,6 @@
         "replication_allocation" = "tag.location.default: 1",
         "enable_unique_key_merge_on_write" = "true",
         "function_column.sequence_col" = "VERSION",
-        "variant_max_subcolumns_count" = "100",
         "disable_auto_compaction" = "true"
         );
     """
diff --git a/regression-test/suites/variant_p0/with_index/bloom_filter.groovy b/regression-test/suites/variant_p0/with_index/bloom_filter.groovy
index 328c65f..eddbf94 100644
--- a/regression-test/suites/variant_p0/with_index/bloom_filter.groovy
+++ b/regression-test/suites/variant_p0/with_index/bloom_filter.groovy
@@ -21,11 +21,11 @@
     sql """
         CREATE TABLE IF NOT EXISTS var_with_bloom_filter (
             k bigint,
-            v variant
+            v variant<properties("variant_max_subcolumns_count" = "10")>
         )
         DUPLICATE KEY(`k`)
         DISTRIBUTED BY HASH(k) BUCKETS 1
-        properties("replication_num" = "1", "bloom_filter_columns" = "v", "bloom_filter_fpp" = "0.0001", "variant_max_subcolumns_count" = "10");
+        properties("replication_num" = "1", "bloom_filter_columns" = "v", "bloom_filter_fpp" = "0.0001");
     """
     sql """insert into var_with_bloom_filter values (1, '{"a" : 123456}')"""
     sql """insert into var_with_bloom_filter values (2, '{"a" : 789111}')"""
diff --git a/regression-test/suites/variant_p0/with_index/test_array_contains_with_inverted_index.groovy b/regression-test/suites/variant_p0/with_index/test_array_contains_with_inverted_index.groovy
index f567c7e..6162352 100644
--- a/regression-test/suites/variant_p0/with_index/test_array_contains_with_inverted_index.groovy
+++ b/regression-test/suites/variant_p0/with_index/test_array_contains_with_inverted_index.groovy
@@ -36,7 +36,8 @@
       `apply_date` date NULL COMMENT '',
       `id` varchar(60) NOT NULL COMMENT '',
       `inventors` variant<
-        MATCH_NAME 'inventors' : array<text>
+        MATCH_NAME 'inventors' : array<text>,
+        properties("variant_max_subcolumns_count" = "10")
     > NULL COMMENT '',
       INDEX index_inverted_inventors(inventors) USING INVERTED PROPERTIES( "field_pattern" = "inventors", "support_phrase" = "true", "parser" = "english", "lower_case" = "true") COMMENT ''
     ) ENGINE=OLAP
@@ -50,8 +51,7 @@
     "light_schema_change" = "true",
     "disable_auto_compaction" = "false",
     "enable_single_replica_compaction" = "false",
-    "inverted_index_storage_format" = "$storageFormat",
-    "variant_max_subcolumns_count" = "10"
+    "inverted_index_storage_format" = "$storageFormat"
     );
     """
 
diff --git a/regression-test/suites/variant_p0/with_index/test_array_index_write.groovy b/regression-test/suites/variant_p0/with_index/test_array_index_write.groovy
index cb1100a..9583d77 100644
--- a/regression-test/suites/variant_p0/with_index/test_array_index_write.groovy
+++ b/regression-test/suites/variant_p0/with_index/test_array_index_write.groovy
@@ -20,7 +20,7 @@
         def create_variant_index_table = { testTablex, parser ->
             def stmt = "CREATE TABLE IF NOT EXISTS " + testTablex + "(\n" +
                    "  k1 INT NULL,\n" +
-                   "  c_arr VARIANT<'c_arr' : array<text>> NULL COMMENT '',\n"
+                   "  c_arr VARIANT<'c_arr' : array<text>, properties(\"variant_max_subcolumns_count\" = \"10\")> NULL COMMENT '',\n"
                    
             String strTmp = parser == "" ? "INDEX index_inverted_c_arr(c_arr) USING INVERTED PROPERTIES( \"field_pattern\"=\"c_arr\") COMMENT 'c_arr index',\n" :
                             "INDEX index_inverted_c_arr(c_arr) USING INVERTED PROPERTIES( \"field_pattern\"=\"c_arr\", \"parser\"=\" " + parser + "\") COMMENT 'c_arr index',\n" 
@@ -35,7 +35,7 @@
                         "DUPLICATE KEY(`k1`)\n" +
                         "COMMENT 'OLAP'\n" +
                     "DISTRIBUTED BY HASH(`k1`) BUCKETS 10\n" +
-                    "PROPERTIES(\"replication_num\" = \"1\", \"inverted_index_storage_format\" = \"$storageFormat\", \"variant_max_subcolumns_count\" = \"10\");"
+                    "PROPERTIES(\"replication_num\" = \"1\", \"inverted_index_storage_format\" = \"$storageFormat\");"
             return stmt
         }
 
diff --git a/regression-test/suites/variant_p0/with_index/test_array_inverted_index_profile.groovy b/regression-test/suites/variant_p0/with_index/test_array_inverted_index_profile.groovy
index f456e1b..47cf028 100644
--- a/regression-test/suites/variant_p0/with_index/test_array_inverted_index_profile.groovy
+++ b/regression-test/suites/variant_p0/with_index/test_array_inverted_index_profile.groovy
@@ -77,7 +77,7 @@
 	CREATE TABLE IF NOT EXISTS `${indexTblName}` (
       `apply_date` date NULL COMMENT '',
       `id` varchar(60) NOT NULL COMMENT '',
-      `inventors` variant<'inventors' : array<text>> NULL COMMENT '',
+      `inventors` variant<'inventors' : array<text>, properties("variant_max_subcolumns_count" = "10")> NULL COMMENT '',
       INDEX index_inverted_inventors(inventors) USING INVERTED PROPERTIES( "field_pattern" = "inventors") COMMENT ''
     ) ENGINE=OLAP
     DUPLICATE KEY(`apply_date`, `id`)
@@ -90,7 +90,6 @@
     "light_schema_change" = "true",
     "disable_auto_compaction" = "false",
     "enable_single_replica_compaction" = "false",
-    "variant_max_subcolumns_count" = "10",
     "inverted_index_storage_format" = "$storageFormat"
     );
     """
diff --git a/regression-test/suites/variant_p0/with_index/var_index.groovy b/regression-test/suites/variant_p0/with_index/var_index.groovy
index 7246baf..9beff31 100644
--- a/regression-test/suites/variant_p0/with_index/var_index.groovy
+++ b/regression-test/suites/variant_p0/with_index/var_index.groovy
@@ -17,6 +17,7 @@
 
 suite("regression_test_variant_var_index", "p0, nonConcurrent"){
     def table_name = "var_index"
+    sql """ set global_variant_enable_typed_paths_to_sparse = false """
     sql "DROP TABLE IF EXISTS var_index"
     sql """
         CREATE TABLE IF NOT EXISTS var_index (
diff --git a/regression-test/suites/variant_p1/compaction/compaction_sparse_column.groovy b/regression-test/suites/variant_p1/compaction/compaction_sparse_column.groovy
index b77db02..e6fffa2 100644
--- a/regression-test/suites/variant_p1/compaction/compaction_sparse_column.groovy
+++ b/regression-test/suites/variant_p1/compaction/compaction_sparse_column.groovy
@@ -50,14 +50,13 @@
         sql """
             CREATE TABLE ${tableName} (
                 k bigint,
-                v variant
+                v variant<properties("variant_max_subcolumns_count" = "3")>
             )
             DUPLICATE KEY(`k`)
             DISTRIBUTED BY HASH(`k`) BUCKETS 1
             PROPERTIES (
                  "replication_num" = "1",
-                 "disable_auto_compaction" = "true",
-                 "variant_max_subcolumns_count" = "3"
+                 "disable_auto_compaction" = "true"
             );
         """
 
diff --git a/regression-test/suites/variant_p1/compaction/test_compaction_extract_root.groovy b/regression-test/suites/variant_p1/compaction/test_compaction_extract_root.groovy
index 3d3dd84..ab04212 100644
--- a/regression-test/suites/variant_p1/compaction/test_compaction_extract_root.groovy
+++ b/regression-test/suites/variant_p1/compaction/test_compaction_extract_root.groovy
@@ -23,7 +23,7 @@
     sql """
         CREATE TABLE ${tableName} (
             k bigint,
-            v variant
+            v variant<properties("variant_max_subcolumns_count" = "2")>
         )
         DUPLICATE KEY(`k`)
         DISTRIBUTED BY HASH(`k`) BUCKETS 1
@@ -77,8 +77,5 @@
     // qt_select_b_5 """ select v['b'] from test_t where  cast(v['b'] as string) != '42005' and  cast(v['b'] as string) != '42004' and  cast(v['b'] as string) != '42003' order by cast(v['b'] as string); """
 
     qt_select_1 """select v['b'] from test_t where k = 0 and cast(v['a'] as int) = 11245;"""
-<<<<<<< HEAD
-=======
     
->>>>>>> b4f01947a44 ([feature](semi-structure) support variant and index with many features)
 }
diff --git a/regression-test/suites/variant_p1/predefine/load.groovy b/regression-test/suites/variant_p1/predefine/load.groovy
index 6143b72..ae60124 100644
--- a/regression-test/suites/variant_p1/predefine/load.groovy
+++ b/regression-test/suites/variant_p1/predefine/load.groovy
@@ -18,7 +18,9 @@
 import org.codehaus.groovy.runtime.IOGroovyMethods
 
 suite("test_predefine_type_multi_index", "p1"){
-   
+    
+    sql """ set global_variant_enable_typed_paths_to_sparse = false """
+    
     def load_json_data = {table_name, file_name ->
         // load the json data
         streamLoad {
@@ -66,14 +68,15 @@
                 MATCH_NAME 'created_at' : datetime,
                 MATCH_NAME 'payload.issue.number' : int,
                 MATCH_NAME 'payload.comment.body' : string,
-                MATCH_NAME 'type.name' : string
+                MATCH_NAME 'type.name' : string,
+                properties("variant_max_subcolumns_count" = "${rand_subcolumns_count}")
             > NULL,
             INDEX idx_var (`v`) USING INVERTED PROPERTIES("parser" = "english", "support_phrase" = "true"),
             INDEX idx_var_2 (`v`) USING INVERTED
         )
         DUPLICATE KEY(`k`)
         DISTRIBUTED BY HASH(k) BUCKETS 4 
-        properties("replication_num" = "1", "disable_auto_compaction" = "true", "variant_enable_flatten_nested" = "true", "variant_max_subcolumns_count" = "${rand_subcolumns_count}");
+        properties("replication_num" = "1", "disable_auto_compaction" = "true", "variant_enable_flatten_nested" = "true");
     """
 
     // 2015
diff --git a/regression-test/suites/variant_p2/load.groovy b/regression-test/suites/variant_p2/load.groovy
index 08b4a58..de9676f 100644
--- a/regression-test/suites/variant_p2/load.groovy
+++ b/regression-test/suites/variant_p2/load.groovy
@@ -53,9 +53,9 @@
             CREATE TABLE IF NOT EXISTS ${table_name} (
             id BIGINT NOT NULL,
             type VARCHAR(30) NULL,
-            actor VARIANT NULL,
-            repo VARIANT NULL,
-            payload VARIANT NULL,
+            actor VARIANT<properties("variant_max_subcolumns_count" = "9")> NULL,
+            repo VARIANT<properties("variant_max_subcolumns_count" = "9")> NULL,
+            payload VARIANT<properties("variant_max_subcolumns_count" = "9")> NULL,
             public BOOLEAN NULL,
             created_at DATETIME NULL,
             org JSON NULL
@@ -65,7 +65,7 @@
         )
         DUPLICATE KEY(`id`)
         DISTRIBUTED BY HASH(id) BUCKETS ${buckets}
-        properties("replication_num" = "1", "disable_auto_compaction" = "false", "variant_max_subcolumns_count" = "9");
+        properties("replication_num" = "1", "disable_auto_compaction" = "false");
         """
     }