|
29 | 29 | #include <cstdint> |
30 | 30 |
|
31 | 31 | #include "common/cast_set.h" |
| 32 | +#include "runtime/define_primitive_type.h" |
32 | 33 | #include "runtime/jsonb_value.h" |
33 | 34 | #include "testutil/test_util.h" |
34 | 35 | #include "testutil/variant_util.h" |
@@ -3591,4 +3592,35 @@ TEST_F(ColumnVariantTest, test_variant_deserialize_from_sparse_column) { |
3591 | 3592 | } |
3592 | 3593 | } |
3593 | 3594 |
|
| 3595 | +TEST_F(ColumnVariantTest, subcolumn_finalize_and_insert) { |
| 3596 | + ColumnVariant::Subcolumn subcolumn(0, true, true); |
| 3597 | + subcolumn.insert_many_defaults(20); |
| 3598 | + subcolumn.finalize(); |
| 3599 | + vectorized::UInt64 v = 20231205; |
| 3600 | + typename PrimitiveTypeTraits<TYPE_DATEV2>::CppType tmp; |
| 3601 | + tmp.from_date_int64(v); |
| 3602 | + auto f = vectorized::Field::create_field<TYPE_DATEV2>(tmp); |
| 3603 | + |
| 3604 | + FieldWithDataType field; |
| 3605 | + field.base_scalar_type_id = TYPE_DATEV2; |
| 3606 | + field.field = f; |
| 3607 | + subcolumn.insert(field); |
| 3608 | + subcolumn.finalize(); |
| 3609 | + |
| 3610 | + ColumnVariant::Subcolumn array_subcolumn(0, true, true); |
| 3611 | + array_subcolumn.insert_many_defaults(20); |
| 3612 | + array_subcolumn.finalize(); |
| 3613 | + |
| 3614 | + Array array; |
| 3615 | + array.push_back(f); |
| 3616 | + auto array_f = vectorized::Field::create_field<TYPE_ARRAY>(array); |
| 3617 | + |
| 3618 | + FieldWithDataType field2; |
| 3619 | + field2.base_scalar_type_id = TYPE_DATEV2; |
| 3620 | + field2.field = array_f; |
| 3621 | + field2.num_dimensions = 1; |
| 3622 | + array_subcolumn.insert(field2); |
| 3623 | + array_subcolumn.finalize(); |
| 3624 | +} |
| 3625 | + |
3594 | 3626 | } // namespace doris::vectorized |
0 commit comments