diff --git a/be/src/exec/es/es_scroll_parser.cpp b/be/src/exec/es/es_scroll_parser.cpp index d49edbd2abce1d..983d980e66d126 100644 --- a/be/src/exec/es/es_scroll_parser.cpp +++ b/be/src/exec/es/es_scroll_parser.cpp @@ -190,7 +190,7 @@ Status get_int_value(const rapidjson::Value& col, PrimitiveType type, void* slot template Status get_date_value_int(const rapidjson::Value& col, PrimitiveType type, bool is_date_str, - typename PrimitiveTypeTraits::ColumnItemType* slot, + typename PrimitiveTypeTraits::CppType* slot, const cctz::time_zone& time_zone) { constexpr bool is_datetime_v1 = T == TYPE_DATE || T == TYPE_DATETIME; typename PrimitiveTypeTraits::CppType dt_val; @@ -271,16 +271,13 @@ Status get_date_value_int(const rapidjson::Value& col, PrimitiveType type, bool } } - *reinterpret_cast::ColumnItemType*>(slot) = - binary_cast::CppType, - typename PrimitiveTypeTraits::ColumnItemType>( - *reinterpret_cast::CppType*>(&dt_val)); + *slot = *reinterpret_cast::CppType*>(&dt_val); return Status::OK(); } template Status get_date_int(const rapidjson::Value& col, PrimitiveType type, bool pure_doc_value, - typename PrimitiveTypeTraits::ColumnItemType* slot, + typename PrimitiveTypeTraits::CppType* slot, const cctz::time_zone& time_zone) { // this would happend just only when `enable_docvalue_scan = false`, and field has timestamp format date from _source if (col.IsNumber()) { @@ -309,7 +306,7 @@ Status get_date_int(const rapidjson::Value& col, PrimitiveType type, bool pure_d template Status fill_date_int(const rapidjson::Value& col, PrimitiveType type, bool pure_doc_value, vectorized::IColumn* col_ptr, const cctz::time_zone& time_zone) { - typename PrimitiveTypeTraits::ColumnItemType data; + typename PrimitiveTypeTraits::CppType data; RETURN_IF_ERROR((get_date_int(col, type, pure_doc_value, &data, time_zone))); col_ptr->insert_data(const_cast(reinterpret_cast(&data)), 0); return Status::OK(); @@ -426,11 +423,11 @@ Status insert_int_value(const rapidjson::Value& col, PrimitiveType type, template Status handle_value(const rapidjson::Value& col, PrimitiveType sub_type, bool pure_doc_value, - typename PrimitiveTypeTraits::ColumnItemType& val) { + typename PrimitiveTypeTraits::CppType& val) { if constexpr (T == TYPE_TINYINT || T == TYPE_SMALLINT || T == TYPE_INT || T == TYPE_BIGINT || T == TYPE_LARGEINT) { - RETURN_IF_ERROR(get_int_value::ColumnItemType>( - col, sub_type, &val, pure_doc_value)); + RETURN_IF_ERROR(get_int_value::CppType>(col, sub_type, &val, + pure_doc_value)); return Status::OK(); } if constexpr (T == TYPE_FLOAT) { @@ -457,7 +454,7 @@ Status handle_value(const rapidjson::Value& col, PrimitiveType sub_type, bool pu } if (col.IsNumber()) { - val = static_cast::ColumnItemType>(col.GetInt()); + val = static_cast::CppType>(col.GetInt()); return Status::OK(); } @@ -485,7 +482,7 @@ Status handle_value(const rapidjson::Value& col, PrimitiveType sub_type, bool pu template Status process_single_column(const rapidjson::Value& col, PrimitiveType sub_type, bool pure_doc_value, vectorized::Array& array) { - typename PrimitiveTypeTraits::ColumnItemType val; + typename PrimitiveTypeTraits::CppType val; RETURN_IF_ERROR(handle_value(col, sub_type, pure_doc_value, val)); array.push_back(vectorized::Field::create_field(val)); return Status::OK(); @@ -514,12 +511,12 @@ template Status process_date_column(const rapidjson::Value& col, PrimitiveType sub_type, bool pure_doc_value, vectorized::Array& array, const cctz::time_zone& time_zone) { if (!col.IsArray()) { - typename PrimitiveTypeTraits::ColumnItemType data; + typename PrimitiveTypeTraits::CppType data; RETURN_IF_ERROR((get_date_int(col, sub_type, pure_doc_value, &data, time_zone))); array.push_back(vectorized::Field::create_field(data)); } else { for (const auto& sub_col : col.GetArray()) { - typename PrimitiveTypeTraits::ColumnItemType data; + typename PrimitiveTypeTraits::CppType data; RETURN_IF_ERROR((get_date_int(sub_col, sub_type, pure_doc_value, &data, time_zone))); array.push_back(vectorized::Field::create_field(data)); } @@ -533,7 +530,7 @@ Status process_jsonb_column(const rapidjson::Value& col, PrimitiveType sub_type, JsonBinaryValue jsonb_value; RETURN_IF_ERROR(jsonb_value.from_json_string(json_value_to_string(col))); vectorized::JsonbField json(jsonb_value.value(), jsonb_value.size()); - array.push_back(vectorized::Field::create_field(json)); + array.push_back(vectorized::Field::create_field(std::move(json))); } else { for (const auto& sub_col : col.GetArray()) { JsonBinaryValue jsonb_value; diff --git a/be/src/exec/olap_common.h b/be/src/exec/olap_common.h index ac6ed60848b8d2..a0c672d707abf5 100644 --- a/be/src/exec/olap_common.h +++ b/be/src/exec/olap_common.h @@ -96,8 +96,9 @@ std::string cast_to_string(T value, int scale) { template class ColumnValueRange { public: - using CppType = std::conditional_t::CppType>; + using CppType = + std::conditional_t::CppType>; using SetType = std::set>; using IteratorType = typename SetType::iterator; @@ -814,8 +815,9 @@ template Status OlapScanKeys::extend_scan_key(ColumnValueRange& range, int32_t max_scan_key_num, bool* exact_value, bool* eos, bool* should_break) { - using CppType = std::conditional_t::CppType>; + using CppType = + std::conditional_t::CppType>; using ConstIterator = typename ColumnValueRange::SetType::const_iterator; // 1. clear ScanKey if some column range is empty diff --git a/be/src/exprs/create_predicate_function.h b/be/src/exprs/create_predicate_function.h index 2c79566a013f4c..c50c792fea2c4f 100644 --- a/be/src/exprs/create_predicate_function.h +++ b/be/src/exprs/create_predicate_function.h @@ -48,16 +48,15 @@ class HybridSetTraits { using BasePtr = HybridSetBase*; template static BasePtr get_function(bool null_aware) { - using CppType = typename PrimitiveTypeTraits::CppType; if constexpr (N >= 1 && N <= FIXED_CONTAINER_MAX_SIZE) { using Set = std::conditional_t< - std::is_same_v, StringSet<>, + is_string_type(type), StringSet<>, HybridSet::CppType, N>>>; return new Set(null_aware); } else { using Set = std::conditional_t< - std::is_same_v, StringSet<>, + is_string_type(type), StringSet<>, HybridSet::CppType>>>; return new Set(null_aware); } diff --git a/be/src/olap/comparison_predicate.h b/be/src/olap/comparison_predicate.h index e146ea40df945e..534c9f12a661f1 100644 --- a/be/src/olap/comparison_predicate.h +++ b/be/src/olap/comparison_predicate.h @@ -34,7 +34,8 @@ template class ComparisonPredicateBase final : public ColumnPredicate { public: ENABLE_FACTORY_CREATOR(ComparisonPredicateBase); - using T = typename PrimitiveTypeTraits::CppType; + using T = std::conditional_t::CppType>; ComparisonPredicateBase(uint32_t column_id, std::string col_name, const T& value, bool opposite = false) : ColumnPredicate(column_id, col_name, Type, opposite), _value(value) {} @@ -169,16 +170,14 @@ class ComparisonPredicateBase final : public ColumnPredicate { bool camp_field(const vectorized::Field& min_field, const vectorized::Field& max_field) const { T min_value; T max_value; - if constexpr (is_int_or_bool(Type) || is_float_or_double(Type)) { - min_value = - (typename PrimitiveTypeTraits::CppType)min_field - .template get::NearestFieldType>(); - max_value = - (typename PrimitiveTypeTraits::CppType)max_field - .template get::NearestFieldType>(); + if constexpr (is_string_type(Type)) { + auto& tmp_min = min_field.template get(); + auto& tmp_max = max_field.template get(); + min_value = StringRef(tmp_min.data(), tmp_min.size()); + max_value = StringRef(tmp_max.data(), tmp_max.size()); } else { - min_value = min_field.template get::CppType>(); - max_value = max_field.template get::CppType>(); + min_value = min_field.template get(); + max_value = max_field.template get(); } if constexpr (PT == PredicateType::EQ) { diff --git a/be/src/olap/delete_handler.cpp b/be/src/olap/delete_handler.cpp index 2b40351296ddca..7c521aadfe12c5 100644 --- a/be/src/olap/delete_handler.cpp +++ b/be/src/olap/delete_handler.cpp @@ -317,7 +317,7 @@ Status parse_to_predicate(const uint32_t index, const std::string col_name, case TYPE_CHAR: case TYPE_VARCHAR: case TYPE_STRING: { - RETURN_IF_ERROR(convert(type, res.value_str.front(), arena, v)); + v = {res.value_str.front().data(), res.value_str.front().size()}; switch (res.condition_op) { case PredicateType::EQ: predicate = create_comparison_predicate0(index, col_name, type, v, diff --git a/be/src/olap/in_list_predicate.h b/be/src/olap/in_list_predicate.h index 193a024855eb71..1d10cb213b7521 100644 --- a/be/src/olap/in_list_predicate.h +++ b/be/src/olap/in_list_predicate.h @@ -66,7 +66,8 @@ template class InListPredicateBase final : public ColumnPredicate { public: ENABLE_FACTORY_CREATOR(InListPredicateBase); - using T = typename PrimitiveTypeTraits::CppType; + using T = std::conditional_t::CppType>; using HybridSetType = std::conditional_t< N >= 1 && N <= FIXED_CONTAINER_MAX_SIZE, std::conditional_t< @@ -256,16 +257,14 @@ class InListPredicateBase final : public ColumnPredicate { bool camp_field(const vectorized::Field& min_field, const vectorized::Field& max_field) const { T min_value; T max_value; - if constexpr (is_int_or_bool(Type) || is_float_or_double(Type)) { - min_value = - (typename PrimitiveTypeTraits::CppType)min_field - .template get::NearestFieldType>(); - max_value = - (typename PrimitiveTypeTraits::CppType)max_field - .template get::NearestFieldType>(); + if constexpr (is_string_type(Type)) { + auto& tmp_min = min_field.template get(); + auto& tmp_max = max_field.template get(); + min_value = StringRef(tmp_min.data(), tmp_min.size()); + max_value = StringRef(tmp_max.data(), tmp_max.size()); } else { - min_value = min_field.template get::CppType>(); - max_value = max_field.template get::CppType>(); + min_value = min_field.template get(); + max_value = max_field.template get(); } if constexpr (PT == PredicateType::IN_LIST) { diff --git a/be/src/olap/rowset/segment_v2/bloom_filter_index_writer.cpp b/be/src/olap/rowset/segment_v2/bloom_filter_index_writer.cpp index c3b4eb1ed13bb2..2977ef4a41e6c5 100644 --- a/be/src/olap/rowset/segment_v2/bloom_filter_index_writer.cpp +++ b/be/src/olap/rowset/segment_v2/bloom_filter_index_writer.cpp @@ -317,6 +317,8 @@ Status BloomFilterIndexWriter::create(const BloomFilterOptions& bf_options, case TYPE: \ res->reset(new BloomFilterIndexWriterImpl(bf_options, type_info)); \ break; + M(FieldType::OLAP_FIELD_TYPE_BOOL) + M(FieldType::OLAP_FIELD_TYPE_TINYINT) M(FieldType::OLAP_FIELD_TYPE_SMALLINT) M(FieldType::OLAP_FIELD_TYPE_INT) M(FieldType::OLAP_FIELD_TYPE_UNSIGNED_INT) diff --git a/be/src/olap/rowset/segment_v2/inverted_index_reader.h b/be/src/olap/rowset/segment_v2/inverted_index_reader.h index 2d0911b0adc5df..28184cd03b8e88 100644 --- a/be/src/olap/rowset/segment_v2/inverted_index_reader.h +++ b/be/src/olap/rowset/segment_v2/inverted_index_reader.h @@ -405,9 +405,7 @@ class InvertedIndexQueryParamFactory { } else { CPP_TYPE cpp_val; if constexpr (std::is_same_v) { - auto field_val = - doris::vectorized::get>( - *value); + auto field_val = value->template get::CppType>(); cpp_val = static_cast(field_val); } else { cpp_val = static_cast(*value); diff --git a/be/src/olap/rowset/segment_v2/zone_map_index.cpp b/be/src/olap/rowset/segment_v2/zone_map_index.cpp index 533b2356653b4e..b9e9850f9e7dc7 100644 --- a/be/src/olap/rowset/segment_v2/zone_map_index.cpp +++ b/be/src/olap/rowset/segment_v2/zone_map_index.cpp @@ -58,7 +58,8 @@ void TypedZoneMapIndexWriter::add_values(const void* values, size_t count) if (count > 0) { _page_zone_map.has_not_null = true; } - using ValType = PrimitiveTypeTraits::StorageFieldType; + using ValType = std::conditional_t::StorageFieldType>; const auto* vals = reinterpret_cast(values); if constexpr (Type == TYPE_FLOAT || Type == TYPE_DOUBLE) { ValType min = std::numeric_limits::max(); diff --git a/be/src/pipeline/exec/scan_operator.cpp b/be/src/pipeline/exec/scan_operator.cpp index 122ca9dd444160..5a216c8d7a526c 100644 --- a/be/src/pipeline/exec/scan_operator.cpp +++ b/be/src/pipeline/exec/scan_operator.cpp @@ -954,17 +954,15 @@ Status ScanLocalState::_change_value_range(ColumnValueRange(value)); } - } else if constexpr ((PrimitiveType == TYPE_DECIMALV2) || (PrimitiveType == TYPE_CHAR) || - (PrimitiveType == TYPE_VARCHAR) || (PrimitiveType == TYPE_DATETIMEV2) || + } else if constexpr ((PrimitiveType == TYPE_DECIMALV2) || (PrimitiveType == TYPE_DATETIMEV2) || (PrimitiveType == TYPE_TINYINT) || (PrimitiveType == TYPE_SMALLINT) || (PrimitiveType == TYPE_INT) || (PrimitiveType == TYPE_BIGINT) || (PrimitiveType == TYPE_LARGEINT) || (PrimitiveType == TYPE_FLOAT) || (PrimitiveType == TYPE_DOUBLE) || (PrimitiveType == TYPE_IPV4) || (PrimitiveType == TYPE_IPV6) || (PrimitiveType == TYPE_DECIMAL32) || (PrimitiveType == TYPE_DECIMAL64) || (PrimitiveType == TYPE_DECIMAL128I) || - (PrimitiveType == TYPE_DECIMAL256) || (PrimitiveType == TYPE_STRING) || - (PrimitiveType == TYPE_BOOLEAN) || (PrimitiveType == TYPE_DATEV2) || - (PrimitiveType == TYPE_TIMESTAMPTZ)) { + (PrimitiveType == TYPE_DECIMAL256) || (PrimitiveType == TYPE_BOOLEAN) || + (PrimitiveType == TYPE_DATEV2) || (PrimitiveType == TYPE_TIMESTAMPTZ)) { if constexpr (IsFixed) { func(temp_range, reinterpret_cast::CppType*>( @@ -974,6 +972,13 @@ Status ScanLocalState::_change_value_range(ColumnValueRange::CppType*>( value)); } + } else if constexpr (is_string_type(PrimitiveType)) { + if constexpr (IsFixed) { + func(temp_range, reinterpret_cast(value)); + } else { + func(temp_range, to_olap_filter_type(fn_name), + reinterpret_cast(value)); + } } else { static_assert(always_false_v); } diff --git a/be/src/runtime/primitive_type.h b/be/src/runtime/primitive_type.h index 4686bdbab7d209..c33f446e2cfa0e 100644 --- a/be/src/runtime/primitive_type.h +++ b/be/src/runtime/primitive_type.h @@ -47,8 +47,6 @@ class ColumnStruct; class ColumnVarbinary; using ColumnString = ColumnStr; class JsonbField; -template -class DecimalField; template struct Decimal; template @@ -127,7 +125,6 @@ class ColumnArray; } // namespace vectorized class DecimalV2Value; -struct StringRef; constexpr bool is_enumeration_type(PrimitiveType type) { switch (type) { @@ -273,7 +270,6 @@ struct PrimitiveTypeTraits; * ColumnItemType: Data item type in column * DataType: DataType which is mapping to this PrimitiveType * ColumnType: ColumnType which is mapping to this PrimitiveType - * NearestFieldType: Nearest Doris type in execution engine * NearestPrimitiveType: Nearest primitive type */ template <> @@ -284,7 +280,6 @@ struct PrimitiveTypeTraits { using ColumnItemType = vectorized::UInt8; using DataType = vectorized::DataTypeBool; using ColumnType = vectorized::ColumnUInt8; - using NearestFieldType = vectorized::Int64; static constexpr PrimitiveType NearestPrimitiveType = TYPE_BIGINT; static constexpr PrimitiveType AvgNearestPrimitiveType = TYPE_BIGINT; }; @@ -296,7 +291,6 @@ struct PrimitiveTypeTraits { using ColumnItemType = CppType; using DataType = vectorized::DataTypeInt8; using ColumnType = vectorized::ColumnInt8; - using NearestFieldType = vectorized::Int64; static constexpr PrimitiveType NearestPrimitiveType = TYPE_BIGINT; static constexpr PrimitiveType AvgNearestPrimitiveType = TYPE_BIGINT; }; @@ -308,7 +302,6 @@ struct PrimitiveTypeTraits { using ColumnItemType = CppType; using DataType = vectorized::DataTypeInt16; using ColumnType = vectorized::ColumnInt16; - using NearestFieldType = vectorized::Int64; static constexpr PrimitiveType NearestPrimitiveType = TYPE_BIGINT; static constexpr PrimitiveType AvgNearestPrimitiveType = TYPE_BIGINT; }; @@ -320,7 +313,6 @@ struct PrimitiveTypeTraits { using ColumnItemType = CppType; using DataType = vectorized::DataTypeInt32; using ColumnType = vectorized::ColumnInt32; - using NearestFieldType = vectorized::Int64; static constexpr PrimitiveType NearestPrimitiveType = TYPE_BIGINT; static constexpr PrimitiveType AvgNearestPrimitiveType = TYPE_BIGINT; }; @@ -332,7 +324,6 @@ struct PrimitiveTypeTraits { using ColumnItemType = CppType; using DataType = vectorized::DataTypeInt64; using ColumnType = vectorized::ColumnInt64; - using NearestFieldType = vectorized::Int64; static constexpr PrimitiveType NearestPrimitiveType = TYPE_BIGINT; static constexpr PrimitiveType AvgNearestPrimitiveType = TYPE_LARGEINT; }; @@ -344,7 +335,6 @@ struct PrimitiveTypeTraits { using ColumnItemType = CppType; using DataType = vectorized::DataTypeInt128; using ColumnType = vectorized::ColumnInt128; - using NearestFieldType = vectorized::Int128; static constexpr PrimitiveType NearestPrimitiveType = TYPE_LARGEINT; static constexpr PrimitiveType AvgNearestPrimitiveType = TYPE_LARGEINT; }; @@ -356,7 +346,6 @@ struct PrimitiveTypeTraits { using ColumnItemType = CppType; using DataType = vectorized::DataTypeNothing; using ColumnType = vectorized::IColumnDummy; - using NearestFieldType = vectorized::Null; static constexpr PrimitiveType NearestPrimitiveType = TYPE_NULL; static constexpr PrimitiveType AvgNearestPrimitiveType = TYPE_NULL; }; @@ -368,7 +357,6 @@ struct PrimitiveTypeTraits { using ColumnItemType = CppType; using DataType = vectorized::DataTypeFloat32; using ColumnType = vectorized::ColumnFloat32; - using NearestFieldType = vectorized::Float64; static constexpr PrimitiveType NearestPrimitiveType = TYPE_DOUBLE; static constexpr PrimitiveType AvgNearestPrimitiveType = TYPE_DOUBLE; }; @@ -380,7 +368,6 @@ struct PrimitiveTypeTraits { using ColumnItemType = CppType; using DataType = vectorized::DataTypeFloat64; using ColumnType = vectorized::ColumnFloat64; - using NearestFieldType = vectorized::Float64; static constexpr PrimitiveType NearestPrimitiveType = TYPE_DOUBLE; static constexpr PrimitiveType AvgNearestPrimitiveType = TYPE_DOUBLE; }; @@ -392,7 +379,6 @@ struct PrimitiveTypeTraits { using ColumnItemType = CppType; using DataType = vectorized::DataTypeTimeV2; using ColumnType = vectorized::ColumnTimeV2; - using NearestFieldType = vectorized::Float64; static constexpr PrimitiveType NearestPrimitiveType = TYPE_DOUBLE; static constexpr PrimitiveType AvgNearestPrimitiveType = TYPE_DOUBLE; }; @@ -404,7 +390,6 @@ struct PrimitiveTypeTraits { using ColumnItemType = CppType; using DataType = vectorized::DataTypeTimeV2; using ColumnType = vectorized::ColumnTime; - using NearestFieldType = vectorized::Float64; static constexpr PrimitiveType NearestPrimitiveType = TYPE_DOUBLE; static constexpr PrimitiveType AvgNearestPrimitiveType = TYPE_DOUBLE; }; @@ -417,7 +402,6 @@ struct PrimitiveTypeTraits { using ColumnItemType = vectorized::Int64; using DataType = vectorized::DataTypeDate; using ColumnType = vectorized::ColumnDate; - using NearestFieldType = vectorized::Int64; static constexpr PrimitiveType NearestPrimitiveType = TYPE_DATE; static constexpr PrimitiveType AvgNearestPrimitiveType = TYPE_DATE; }; @@ -429,7 +413,6 @@ struct PrimitiveTypeTraits { using ColumnItemType = vectorized::Int64; using DataType = vectorized::DataTypeDateTime; using ColumnType = vectorized::ColumnDateTime; - using NearestFieldType = vectorized::Int64; static constexpr PrimitiveType NearestPrimitiveType = TYPE_DATETIME; static constexpr PrimitiveType AvgNearestPrimitiveType = TYPE_DATETIME; }; @@ -441,7 +424,6 @@ struct PrimitiveTypeTraits { using ColumnItemType = vectorized::UInt64; using DataType = vectorized::DataTypeDateTimeV2; using ColumnType = vectorized::ColumnDateTimeV2; - using NearestFieldType = vectorized::UInt64; static constexpr PrimitiveType NearestPrimitiveType = TYPE_DATETIMEV2; static constexpr PrimitiveType AvgNearestPrimitiveType = TYPE_DATETIMEV2; }; @@ -453,7 +435,6 @@ struct PrimitiveTypeTraits { using ColumnItemType = vectorized::UInt32; using DataType = vectorized::DataTypeDateV2; using ColumnType = vectorized::ColumnDateV2; - using NearestFieldType = vectorized::UInt64; static constexpr PrimitiveType NearestPrimitiveType = TYPE_DATEV2; static constexpr PrimitiveType AvgNearestPrimitiveType = TYPE_DATEV2; }; @@ -466,9 +447,6 @@ struct PrimitiveTypeTraits { using ColumnItemType = vectorized::UInt64; using DataType = vectorized::DataTypeTimeStampTz; using ColumnType = vectorized::ColumnTimeStampTz; - using NearestFieldType = vectorized::UInt64; - using AvgNearestFieldType = vectorized::UInt64; - using AvgNearestFieldType256 = vectorized::UInt64; static constexpr PrimitiveType NearestPrimitiveType = TYPE_TIMESTAMPTZ; static constexpr PrimitiveType AvgNearestPrimitiveType = TYPE_TIMESTAMPTZ; static constexpr PrimitiveType AvgNearestPrimitiveType256 = TYPE_TIMESTAMPTZ; @@ -483,7 +461,6 @@ struct PrimitiveTypeTraits { using ColumnItemType = vectorized::Decimal128V2; using DataType = vectorized::DataTypeDecimalV2; using ColumnType = vectorized::ColumnDecimal128V2; - using NearestFieldType = vectorized::DecimalField; static constexpr PrimitiveType NearestPrimitiveType = TYPE_DECIMALV2; static constexpr PrimitiveType AvgNearestPrimitiveType = TYPE_DECIMALV2; }; @@ -495,7 +472,6 @@ struct PrimitiveTypeTraits { using ColumnItemType = CppType; using DataType = vectorized::DataTypeDecimal32; using ColumnType = vectorized::ColumnDecimal32; - using NearestFieldType = vectorized::DecimalField; static constexpr PrimitiveType NearestPrimitiveType = TYPE_DECIMAL32; static constexpr PrimitiveType AvgNearestPrimitiveType = TYPE_DECIMAL128I; }; @@ -507,7 +483,6 @@ struct PrimitiveTypeTraits { using ColumnItemType = CppType; using DataType = vectorized::DataTypeDecimal64; using ColumnType = vectorized::ColumnDecimal64; - using NearestFieldType = vectorized::DecimalField; static constexpr PrimitiveType NearestPrimitiveType = TYPE_DECIMAL64; static constexpr PrimitiveType AvgNearestPrimitiveType = TYPE_DECIMAL128I; }; @@ -519,7 +494,6 @@ struct PrimitiveTypeTraits { using ColumnItemType = CppType; using DataType = vectorized::DataTypeDecimal128; using ColumnType = vectorized::ColumnDecimal128V3; - using NearestFieldType = vectorized::DecimalField; static constexpr PrimitiveType NearestPrimitiveType = TYPE_DECIMAL128I; static constexpr PrimitiveType AvgNearestPrimitiveType = TYPE_DECIMAL128I; }; @@ -531,7 +505,6 @@ struct PrimitiveTypeTraits { using ColumnItemType = CppType; using DataType = vectorized::DataTypeDecimal256; using ColumnType = vectorized::ColumnDecimal256; - using NearestFieldType = vectorized::DecimalField; static constexpr PrimitiveType NearestPrimitiveType = TYPE_DECIMAL256; static constexpr PrimitiveType AvgNearestPrimitiveType = TYPE_DECIMAL256; }; @@ -543,7 +516,6 @@ struct PrimitiveTypeTraits { using ColumnItemType = CppType; using DataType = vectorized::DataTypeIPv4; using ColumnType = vectorized::ColumnIPv4; - using NearestFieldType = IPv4; static constexpr PrimitiveType NearestPrimitiveType = TYPE_IPV4; static constexpr PrimitiveType AvgNearestPrimitiveType = TYPE_IPV4; }; @@ -555,43 +527,39 @@ struct PrimitiveTypeTraits { using ColumnItemType = CppType; using DataType = vectorized::DataTypeIPv6; using ColumnType = vectorized::ColumnIPv6; - using NearestFieldType = IPv6; static constexpr PrimitiveType NearestPrimitiveType = TYPE_IPV6; static constexpr PrimitiveType AvgNearestPrimitiveType = TYPE_IPV6; }; template <> struct PrimitiveTypeTraits { - using CppType = StringRef; + using CppType = vectorized::String; using StorageFieldType = CppType; - using CppNativeType = vectorized::String; - using ColumnItemType = vectorized::String; + using CppNativeType = CppType; + using ColumnItemType = CppType; using DataType = vectorized::DataTypeString; using ColumnType = vectorized::ColumnString; - using NearestFieldType = vectorized::String; static constexpr PrimitiveType NearestPrimitiveType = TYPE_CHAR; static constexpr PrimitiveType AvgNearestPrimitiveType = TYPE_CHAR; }; template <> struct PrimitiveTypeTraits { - using CppType = StringRef; + using CppType = vectorized::String; using StorageFieldType = CppType; - using CppNativeType = vectorized::String; - using ColumnItemType = vectorized::String; + using CppNativeType = CppType; + using ColumnItemType = CppType; using DataType = vectorized::DataTypeString; using ColumnType = vectorized::ColumnString; - using NearestFieldType = vectorized::String; static constexpr PrimitiveType NearestPrimitiveType = TYPE_VARCHAR; static constexpr PrimitiveType AvgNearestPrimitiveType = TYPE_VARCHAR; }; template <> struct PrimitiveTypeTraits { - using CppType = StringRef; + using CppType = vectorized::String; using StorageFieldType = CppType; - using CppNativeType = vectorized::String; - using ColumnItemType = vectorized::String; + using CppNativeType = CppType; + using ColumnItemType = CppType; using DataType = vectorized::DataTypeString; using ColumnType = vectorized::ColumnString; - using NearestFieldType = vectorized::String; static constexpr PrimitiveType NearestPrimitiveType = TYPE_STRING; static constexpr PrimitiveType AvgNearestPrimitiveType = TYPE_STRING; }; @@ -599,12 +567,11 @@ template <> struct PrimitiveTypeTraits { using CppType = doris::StringView; using StorageFieldType = CppType; - using CppNativeType = doris::StringView; - using ColumnItemType = doris::StringView; + using CppNativeType = CppType; + using ColumnItemType = CppType; using DataType = vectorized::DataTypeVarbinary; using ColumnType = vectorized::ColumnVarbinary; // StringView is non-owning, but StringViewField wraps it with String for ownership - using NearestFieldType = vectorized::StringViewField; static constexpr PrimitiveType NearestPrimitiveType = TYPE_VARBINARY; static constexpr PrimitiveType AvgNearestPrimitiveType = TYPE_VARBINARY; }; @@ -613,10 +580,9 @@ struct PrimitiveTypeTraits { using CppType = HyperLogLog; using StorageFieldType = CppType; using CppNativeType = CppType; - using ColumnItemType = HyperLogLog; + using ColumnItemType = CppType; using DataType = vectorized::DataTypeHLL; using ColumnType = vectorized::ColumnHLL; - using NearestFieldType = HyperLogLog; static constexpr PrimitiveType NearestPrimitiveType = TYPE_HLL; static constexpr PrimitiveType AvgNearestPrimitiveType = TYPE_HLL; }; @@ -628,7 +594,6 @@ struct PrimitiveTypeTraits { using ColumnItemType = CppType; using DataType = vectorized::DataTypeJsonb; using ColumnType = vectorized::ColumnString; - using NearestFieldType = vectorized::JsonbField; static constexpr PrimitiveType NearestPrimitiveType = TYPE_JSONB; static constexpr PrimitiveType AvgNearestPrimitiveType = TYPE_JSONB; }; @@ -640,7 +605,6 @@ struct PrimitiveTypeTraits { using ColumnItemType = CppType; using DataType = vectorized::DataTypeArray; using ColumnType = vectorized::ColumnArray; - using NearestFieldType = vectorized::Array; static constexpr PrimitiveType NearestPrimitiveType = TYPE_ARRAY; static constexpr PrimitiveType AvgNearestPrimitiveType = TYPE_ARRAY; }; @@ -652,7 +616,6 @@ struct PrimitiveTypeTraits { using ColumnItemType = CppType; using DataType = vectorized::DataTypeMap; using ColumnType = vectorized::ColumnMap; - using NearestFieldType = vectorized::Map; static constexpr PrimitiveType NearestPrimitiveType = TYPE_MAP; static constexpr PrimitiveType AvgNearestPrimitiveType = TYPE_MAP; }; @@ -664,7 +627,6 @@ struct PrimitiveTypeTraits { using ColumnItemType = CppType; using DataType = vectorized::DataTypeStruct; using ColumnType = vectorized::ColumnStruct; - using NearestFieldType = vectorized::Tuple; static constexpr PrimitiveType NearestPrimitiveType = TYPE_STRUCT; static constexpr PrimitiveType AvgNearestPrimitiveType = TYPE_STRUCT; }; @@ -676,7 +638,6 @@ struct PrimitiveTypeTraits { using ColumnItemType = CppType; using DataType = vectorized::DataTypeVariant; using ColumnType = vectorized::ColumnVariant; - using NearestFieldType = vectorized::VariantMap; static constexpr PrimitiveType NearestPrimitiveType = TYPE_VARIANT; static constexpr PrimitiveType AvgNearestPrimitiveType = TYPE_VARIANT; }; @@ -688,7 +649,6 @@ struct PrimitiveTypeTraits { using ColumnItemType = CppType; using DataType = vectorized::DataTypeBitMap; using ColumnType = vectorized::ColumnBitmap; - using NearestFieldType = BitmapValue; static constexpr PrimitiveType NearestPrimitiveType = TYPE_BITMAP; static constexpr PrimitiveType AvgNearestPrimitiveType = TYPE_BITMAP; }; @@ -700,7 +660,6 @@ struct PrimitiveTypeTraits { using ColumnItemType = CppType; using DataType = vectorized::DataTypeQuantileState; using ColumnType = vectorized::ColumnQuantileState; - using NearestFieldType = QuantileState; static constexpr PrimitiveType NearestPrimitiveType = TYPE_QUANTILE_STATE; static constexpr PrimitiveType AvgNearestPrimitiveType = TYPE_QUANTILE_STATE; }; @@ -712,7 +671,6 @@ struct PrimitiveTypeTraits { using ColumnItemType = CppType; using DataType = vectorized::DataTypeNothing; using ColumnType = vectorized::ColumnOffset32; - using NearestFieldType = vectorized::UInt64; static constexpr PrimitiveType NearestPrimitiveType = TYPE_UINT32; static constexpr PrimitiveType AvgNearestPrimitiveType = TYPE_UINT32; }; @@ -724,7 +682,6 @@ struct PrimitiveTypeTraits { using ColumnItemType = CppType; using DataType = vectorized::DataTypeNothing; using ColumnType = vectorized::ColumnOffset64; - using NearestFieldType = vectorized::UInt64; static constexpr PrimitiveType NearestPrimitiveType = TYPE_UINT64; static constexpr PrimitiveType AvgNearestPrimitiveType = TYPE_DOUBLE; }; diff --git a/be/src/vec/columns/column_const.h b/be/src/vec/columns/column_const.h index 741a457215926c..9a24201df27ac7 100644 --- a/be/src/vec/columns/column_const.h +++ b/be/src/vec/columns/column_const.h @@ -274,10 +274,10 @@ class ColumnConst final : public COWHelper { Field get_field() const { return get_data_column()[0]; } - template - T get_value() const { + template + typename PrimitiveTypeTraits::CppType get_value() const { // Here the cast is correct, relevant code is rather tricky. - return static_cast(get_field().get>()); + return get_field().get::CppType>(); } void replace_column_data(const IColumn& rhs, size_t row, size_t self_row = 0) override { diff --git a/be/src/vec/columns/column_decimal.cpp b/be/src/vec/columns/column_decimal.cpp index 95b3291e4d0ee7..099dce3c5b9d0f 100644 --- a/be/src/vec/columns/column_decimal.cpp +++ b/be/src/vec/columns/column_decimal.cpp @@ -53,9 +53,19 @@ int ColumnDecimal::compare_at(size_t n, size_t m, const IColumn& rhs_, int) c if (scale == other.scale) { return a > b ? 1 : (a < b ? -1 : 0); } - return decimal_less(b, a, other.scale, scale) - ? 1 - : (decimal_less(a, b, scale, other.scale) ? -1 : 0); + if constexpr (T == TYPE_DECIMALV2) { + return decimal_less(*(DecimalV2Value*)&b, *(DecimalV2Value*)&a, other.scale, + scale) + ? 1 + : (decimal_less(*(DecimalV2Value*)&a, *(DecimalV2Value*)&b, + scale, other.scale) + ? -1 + : 0); + } else { + return decimal_less(b, a, other.scale, scale) + ? 1 + : (decimal_less(a, b, scale, other.scale) ? -1 : 0); + } } template @@ -282,7 +292,7 @@ void ColumnDecimal::update_hashes_with_value(uint64_t* __restrict hashes, template Field ColumnDecimal::operator[](size_t n) const { - return Field::create_field(DecimalField(data[n], scale)); + return Field::create_field(*(typename PrimitiveTypeTraits::CppType*)(&data[n])); } template diff --git a/be/src/vec/columns/column_decimal.h b/be/src/vec/columns/column_decimal.h index 44d193d8e9ebe9..8471efd835936f 100644 --- a/be/src/vec/columns/column_decimal.h +++ b/be/src/vec/columns/column_decimal.h @@ -142,8 +142,7 @@ class ColumnDecimal final : public COWHelper> { void insert_data(const char* pos, size_t /*length*/) override; void insert_default() override { data.push_back(value_type()); } void insert(const Field& x) override { - data.push_back( - doris::vectorized::get::NearestFieldType>(x)); + data.push_back(x.template get::ColumnItemType>()); } void insert_range_from(const IColumn& src, size_t start, size_t length) override; diff --git a/be/src/vec/columns/column_varbinary.h b/be/src/vec/columns/column_varbinary.h index 7b3688c2bece8f..9fe928fe08c97d 100644 --- a/be/src/vec/columns/column_varbinary.h +++ b/be/src/vec/columns/column_varbinary.h @@ -77,7 +77,8 @@ class ColumnVarbinary final : public COWHelper { char* alloc(size_t length) { return _arena.alloc(length); } void insert(const Field& x) override { - const auto& value = vectorized::get(x); + const auto& value = + vectorized::get::CppType&>(x); insert_data(value.data(), value.size()); } diff --git a/be/src/vec/columns/column_variant.cpp b/be/src/vec/columns/column_variant.cpp index 1eb789b1c8216c..ecad7bb6b71d63 100644 --- a/be/src/vec/columns/column_variant.cpp +++ b/be/src/vec/columns/column_variant.cpp @@ -2213,7 +2213,7 @@ class FieldVisitorReplaceScalars : public StaticVisitor { : replacement(replacement_), num_dimensions_to_keep(num_dimensions_to_keep_) {} template - Field apply(const typename PrimitiveTypeTraits::NearestFieldType& x) const { + Field apply(const typename PrimitiveTypeTraits::CppType& x) const { if constexpr (T == TYPE_ARRAY) { if (num_dimensions_to_keep == 0) { return replacement; diff --git a/be/src/vec/columns/column_vector.cpp b/be/src/vec/columns/column_vector.cpp index 8bc629c444b289..945da9e83d91c1 100644 --- a/be/src/vec/columns/column_vector.cpp +++ b/be/src/vec/columns/column_vector.cpp @@ -191,7 +191,7 @@ void ColumnVector::compare_internal(size_t rhs_row_id, const IColumn& rhs, template Field ColumnVector::operator[](size_t n) const { - return Field::create_field((typename PrimitiveTypeTraits::NearestFieldType)data[n]); + return Field::create_field(*(typename PrimitiveTypeTraits::CppType*)(&data[n])); } template @@ -354,6 +354,75 @@ MutableColumnPtr ColumnVector::clone_resized(size_t size) const { return res; } +template +void ColumnVector::insert(const Field& x) { + value_type tmp; + switch (x.get_type()) { + case TYPE_NULL: + tmp = default_value(); + break; + case TYPE_BOOLEAN: + tmp = doris::vectorized::get::CppType>(x); + break; + case TYPE_TINYINT: + tmp = doris::vectorized::get::CppType>(x); + break; + case TYPE_SMALLINT: + tmp = (value_type) + doris::vectorized::get::CppType>(x); + break; + case TYPE_INT: + tmp = (value_type)doris::vectorized::get::CppType>( + x); + break; + case TYPE_BIGINT: + tmp = (value_type) + doris::vectorized::get::CppType>(x); + break; + case TYPE_LARGEINT: + tmp = (value_type) + doris::vectorized::get::CppType>(x); + break; + case TYPE_IPV4: + tmp = (value_type)doris::vectorized::get::CppType>( + x); + break; + case TYPE_IPV6: + tmp = (value_type)doris::vectorized::get::CppType>( + x); + break; + case TYPE_FLOAT: + tmp = (value_type)doris::vectorized::get::CppType>( + x); + break; + case TYPE_DOUBLE: + tmp = (value_type) + doris::vectorized::get::CppType>(x); + break; + case TYPE_TIME: + tmp = (value_type)doris::vectorized::get::CppType>( + x); + break; + case TYPE_TIMEV2: + tmp = (value_type) + doris::vectorized::get::CppType>(x); + break; + case TYPE_DATE: + case TYPE_DATETIME: + case TYPE_DATEV2: + case TYPE_DATETIMEV2: + case TYPE_TIMESTAMPTZ: + tmp = doris::vectorized::get::ColumnItemType>(x); + break; + default: + throw doris::Exception(ErrorCode::INTERNAL_ERROR, + "Unsupported type {} to insert into {} type column", + type_to_string(x.get_type()), type_to_string(T)); + break; + } + data.push_back(tmp); +} + template void ColumnVector::insert_range_from(const IColumn& src, size_t start, size_t length) { const ColumnVector& src_vec = assert_cast(src); diff --git a/be/src/vec/columns/column_vector.h b/be/src/vec/columns/column_vector.h index e1062e83c3ea8b..9b03eeae637f72 100644 --- a/be/src/vec/columns/column_vector.h +++ b/be/src/vec/columns/column_vector.h @@ -305,10 +305,7 @@ class ColumnVector final : public COWHelper> { // but its type is different from column's data type (int64 vs uint64), so that during column // insert method, should use NearestFieldType to get the Field and get it actual // uint8 value and then insert into column. - void insert(const Field& x) override { - data.push_back( - doris::vectorized::get::NearestFieldType>(x)); - } + void insert(const Field& x) override; void insert_range_from(const IColumn& src, size_t start, size_t length) override; diff --git a/be/src/vec/columns/predicate_column.h b/be/src/vec/columns/predicate_column.h index 73a61ea1aae38c..abcf3287fe4501 100644 --- a/be/src/vec/columns/predicate_column.h +++ b/be/src/vec/columns/predicate_column.h @@ -46,7 +46,8 @@ class PredicateColumnType final : public COWHelper>; - using T = typename PrimitiveTypeTraits::CppType; + using T = std::conditional_t::CppType>; using ColumnType = typename PrimitiveTypeTraits::ColumnType; void insert_string_to_res_column(const uint16_t* sel, size_t sel_size, ColumnString* res_ptr) { diff --git a/be/src/vec/common/field_visitors.h b/be/src/vec/common/field_visitors.h index 1e80249cb4d194..e287b54155e17b 100644 --- a/be/src/vec/common/field_visitors.h +++ b/be/src/vec/common/field_visitors.h @@ -44,73 +44,79 @@ typename std::decay_t::ResultType apply_visitor(Visitor&& visitor, F&& switch (field.get_type()) { case PrimitiveType::TYPE_NULL: return visitor.template apply( - field.template get::NearestFieldType>()); + field.template get::CppType>()); case PrimitiveType::TYPE_DATETIMEV2: return visitor.template apply( - field.template get< - typename PrimitiveTypeTraits::NearestFieldType>()); + field.template get::CppType>()); case PrimitiveType::TYPE_TIMESTAMPTZ: return visitor.template apply( - field.template get< - typename PrimitiveTypeTraits::NearestFieldType>()); + field.template get::CppType>()); case PrimitiveType::TYPE_LARGEINT: return visitor.template apply( - field.template get< - typename PrimitiveTypeTraits::NearestFieldType>()); + field.template get::CppType>()); case PrimitiveType::TYPE_DATETIME: return visitor.template apply( - field.template get< - typename PrimitiveTypeTraits::NearestFieldType>()); + field.template get::CppType>()); case PrimitiveType::TYPE_DATE: return visitor.template apply( - field.template get::NearestFieldType>()); + field.template get::CppType>()); + case PrimitiveType::TYPE_BOOLEAN: + return visitor.template apply( + field.template get::CppType>()); + case PrimitiveType::TYPE_TINYINT: + return visitor.template apply( + field.template get::CppType>()); + case PrimitiveType::TYPE_SMALLINT: + return visitor.template apply( + field.template get::CppType>()); + case PrimitiveType::TYPE_INT: + return visitor.template apply( + field.template get::CppType>()); case PrimitiveType::TYPE_BIGINT: return visitor.template apply( - field.template get::NearestFieldType>()); + field.template get::CppType>()); + case PrimitiveType::TYPE_FLOAT: + return visitor.template apply( + field.template get::CppType>()); case PrimitiveType::TYPE_DOUBLE: return visitor.template apply( - field.template get::NearestFieldType>()); + field.template get::CppType>()); case PrimitiveType::TYPE_STRING: return visitor.template apply( - field.template get::NearestFieldType>()); + field.template get::CppType>()); case PrimitiveType::TYPE_CHAR: return visitor.template apply( - field.template get::NearestFieldType>()); + field.template get::CppType>()); case PrimitiveType::TYPE_VARCHAR: return visitor.template apply( - field.template get::NearestFieldType>()); + field.template get::CppType>()); case PrimitiveType::TYPE_ARRAY: return visitor.template apply( - field.template get::NearestFieldType>()); + field.template get::CppType>()); case PrimitiveType::TYPE_STRUCT: return visitor.template apply( - field.template get::NearestFieldType>()); + field.template get::CppType>()); case PrimitiveType::TYPE_VARIANT: return visitor.template apply( - field.template get::NearestFieldType>()); + field.template get::CppType>()); case PrimitiveType::TYPE_DECIMAL32: return visitor.template apply( - field.template get< - typename PrimitiveTypeTraits::NearestFieldType>()); + field.template get::CppType>()); case PrimitiveType::TYPE_DECIMAL64: return visitor.template apply( - field.template get< - typename PrimitiveTypeTraits::NearestFieldType>()); + field.template get::CppType>()); case PrimitiveType::TYPE_DECIMALV2: return visitor.template apply( - field.template get< - typename PrimitiveTypeTraits::NearestFieldType>()); + field.template get::CppType>()); case PrimitiveType::TYPE_DECIMAL128I: return visitor.template apply( - field.template get< - typename PrimitiveTypeTraits::NearestFieldType>()); + field.template get::CppType>()); case PrimitiveType::TYPE_DECIMAL256: return visitor.template apply( - field.template get< - typename PrimitiveTypeTraits::NearestFieldType>()); + field.template get::CppType>()); case PrimitiveType::TYPE_JSONB: return visitor.template apply( - field.template get::NearestFieldType>()); + field.template get::CppType>()); default: throw doris::Exception(ErrorCode::INTERNAL_ERROR, "Bad type of Field {}", static_cast(field.get_type())); diff --git a/be/src/vec/common/schema_util.cpp b/be/src/vec/common/schema_util.cpp index 3a3fa01490168d..e4481511a9cb77 100644 --- a/be/src/vec/common/schema_util.cpp +++ b/be/src/vec/common/schema_util.cpp @@ -1177,7 +1177,7 @@ class FieldVisitorToNumberOfDimensions : public StaticVisitor { public: FieldVisitorToNumberOfDimensions() = default; template - size_t apply(const typename PrimitiveTypeTraits::NearestFieldType& x) { + size_t apply(const typename PrimitiveTypeTraits::CppType& x) { if constexpr (T == TYPE_ARRAY) { const size_t size = x.size(); size_t dimensions = 0; @@ -1198,7 +1198,7 @@ class FieldVisitorToNumberOfDimensions : public StaticVisitor { class SimpleFieldVisitorToScalarType : public StaticVisitor { public: template - size_t apply(const typename PrimitiveTypeTraits::NearestFieldType& x) { + size_t apply(const typename PrimitiveTypeTraits::CppType& x) { if constexpr (T == TYPE_ARRAY) { throw doris::Exception(ErrorCode::INVALID_ARGUMENT, "Array type is not supported"); } else if constexpr (T == TYPE_BIGINT) { @@ -1238,7 +1238,7 @@ class SimpleFieldVisitorToScalarType : public StaticVisitor { class FieldVisitorToScalarType : public StaticVisitor { public: template - size_t apply(const typename PrimitiveTypeTraits::NearestFieldType& x) { + size_t apply(const typename PrimitiveTypeTraits::CppType& x) { if constexpr (T == TYPE_ARRAY) { size_t size = x.size(); for (size_t i = 0; i < size; ++i) { diff --git a/be/src/vec/core/decimal_comparison.h b/be/src/vec/core/decimal_comparison.h index 8483f8fe0efa75..6d8923ea3ea53d 100644 --- a/be/src/vec/core/decimal_comparison.h +++ b/be/src/vec/core/decimal_comparison.h @@ -32,17 +32,6 @@ namespace doris::vectorized { -inline bool allow_decimal_comparison(const DataTypePtr& left_type, const DataTypePtr& right_type) { - if (is_decimal(left_type->get_primitive_type())) { - if (is_decimal(right_type->get_primitive_type()) || - is_int_or_bool(right_type->get_primitive_type())) - return true; - } else if (is_int_or_bool(left_type->get_primitive_type()) && - is_decimal(right_type->get_primitive_type())) - return true; - return false; -} - template struct ConstructDecInt { static constexpr PrimitiveType Type = TYPE_INT; @@ -64,10 +53,10 @@ template struct DecCompareInt { static constexpr PrimitiveType Type = ConstructDecInt < (!is_decimal(U) || - sizeof(typename PrimitiveTypeTraits::ColumnItemType) > - sizeof(typename PrimitiveTypeTraits::ColumnItemType)) - ? sizeof(typename PrimitiveTypeTraits::ColumnItemType) - : sizeof(typename PrimitiveTypeTraits::ColumnItemType) > ::Type; + sizeof(typename PrimitiveTypeTraits::CppType) > + sizeof(typename PrimitiveTypeTraits::CppType)) + ? sizeof(typename PrimitiveTypeTraits::CppType) + : sizeof(typename PrimitiveTypeTraits::CppType) > ::Type; }; /// @@ -108,8 +97,8 @@ class DecimalComparison { return false; } - static bool compare(typename PrimitiveTypeTraits::ColumnItemType a, - typename PrimitiveTypeTraits::ColumnItemType b, UInt32 scale_a, + static bool compare(typename PrimitiveTypeTraits::CppType a, + typename PrimitiveTypeTraits::CppType b, UInt32 scale_a, UInt32 scale_b) { static const UInt32 max_scale = max_decimal_precision(); if (scale_a > max_scale || scale_b > max_scale) { @@ -157,8 +146,8 @@ class DecimalComparison { Shift shift; if (decimal0 && decimal1) { constexpr PrimitiveType Type = - sizeof(typename PrimitiveTypeTraits::ColumnItemType) >= - sizeof(typename PrimitiveTypeTraits::ColumnItemType) + sizeof(typename PrimitiveTypeTraits::CppType) >= + sizeof(typename PrimitiveTypeTraits::CppType) ? T : U; auto type_ptr = decimal_result_type(*decimal0, *decimal1, false, false, false); @@ -207,10 +196,8 @@ class DecimalComparison { const ColumnConst* c0_const = check_and_get_column_const(c0.get()); const ColumnConst* c1_const = check_and_get_column_const(c1.get()); - typename PrimitiveTypeTraits::ColumnItemType a = c0_const->template get_value< - typename PrimitiveTypeTraits::ColumnItemType>(); - typename PrimitiveTypeTraits::ColumnItemType b = c1_const->template get_value< - typename PrimitiveTypeTraits::ColumnItemType>(); + const auto& a = c0_const->template get_value(); + const auto& b = c1_const->template get_value(); UInt8 res = apply(a, b, scale); return DataTypeUInt8().create_column_const(c0->size(), to_field(res)); } @@ -220,8 +207,7 @@ class DecimalComparison { if (c0_is_const) { const ColumnConst* c0_const = check_and_get_column_const(c0.get()); - typename PrimitiveTypeTraits::ColumnItemType a = c0_const->template get_value< - typename PrimitiveTypeTraits::ColumnItemType>(); + const auto& a = c0_const->template get_value(); if (const ColVecB* c1_vec = check_and_get_column(c1.get())) constant_vector(a, c1_vec->get_data(), vec_res, scale); else { @@ -229,8 +215,7 @@ class DecimalComparison { } } else if (c1_is_const) { const ColumnConst* c1_const = check_and_get_column_const(c1.get()); - typename PrimitiveTypeTraits::ColumnItemType b = c1_const->template get_value< - typename PrimitiveTypeTraits::ColumnItemType>(); + const auto& b = c1_const->template get_value(); if (const ColVecA* c0_vec = check_and_get_column(c0.get())) vector_constant(c0_vec->get_data(), b, vec_res, scale); else { @@ -255,8 +240,8 @@ class DecimalComparison { } template - static UInt8 apply(typename PrimitiveTypeTraits::ColumnItemType a, - typename PrimitiveTypeTraits::ColumnItemType b, + static UInt8 apply(typename PrimitiveTypeTraits::CppType a, + typename PrimitiveTypeTraits::CppType b, CompareInt scale [[maybe_unused]]) { CompareInt x = a; CompareInt y = b; @@ -264,15 +249,13 @@ class DecimalComparison { if constexpr (_check_overflow) { bool overflow = false; - if constexpr (sizeof(typename PrimitiveTypeTraits::ColumnItemType) > - sizeof(CompareInt)) - overflow |= (typename PrimitiveTypeTraits::ColumnItemType(x) != a); - if constexpr (sizeof(typename PrimitiveTypeTraits::ColumnItemType) > - sizeof(CompareInt)) - overflow |= (typename PrimitiveTypeTraits::ColumnItemType(y) != b); - if constexpr (IsUnsignedV::ColumnItemType>) + if constexpr (sizeof(typename PrimitiveTypeTraits::CppType) > sizeof(CompareInt)) + overflow |= (typename PrimitiveTypeTraits::CppType(x) != a); + if constexpr (sizeof(typename PrimitiveTypeTraits::CppType) > sizeof(CompareInt)) + overflow |= (typename PrimitiveTypeTraits::CppType(y) != b); + if constexpr (IsUnsignedV::CppType>) overflow |= (x < 0); - if constexpr (IsUnsignedV::ColumnItemType>) + if constexpr (IsUnsignedV::CppType>) overflow |= (y < 0); if constexpr (scale_left) overflow |= common::mul_overflow(x, scale, x); @@ -293,10 +276,10 @@ class DecimalComparison { static void NO_INLINE vector_vector(const ArrayA& a, const ArrayB& b, PaddedPODArray& c, CompareInt scale) { size_t size = a.size(); - const typename PrimitiveTypeTraits::ColumnItemType* a_pos = a.data(); - const typename PrimitiveTypeTraits::ColumnItemType* b_pos = b.data(); + const auto* a_pos = (const typename PrimitiveTypeTraits::CppType*)a.data(); + const auto* b_pos = (const typename PrimitiveTypeTraits::CppType*)b.data(); UInt8* c_pos = c.data(); - const typename PrimitiveTypeTraits::ColumnItemType* a_end = a_pos + size; + const auto* a_end = a_pos + size; while (a_pos < a_end) { *c_pos = apply(*a_pos, *b_pos, scale); @@ -308,12 +291,12 @@ class DecimalComparison { template static void NO_INLINE vector_constant(const ArrayA& a, - typename PrimitiveTypeTraits::ColumnItemType b, + typename PrimitiveTypeTraits::CppType b, PaddedPODArray& c, CompareInt scale) { size_t size = a.size(); - const typename PrimitiveTypeTraits::ColumnItemType* a_pos = a.data(); + const auto* a_pos = (const typename PrimitiveTypeTraits::CppType*)a.data(); UInt8* c_pos = c.data(); - const typename PrimitiveTypeTraits::ColumnItemType* a_end = a_pos + size; + const auto* a_end = a_pos + size; while (a_pos < a_end) { *c_pos = apply(*a_pos, b, scale); @@ -323,13 +306,13 @@ class DecimalComparison { } template - static void NO_INLINE constant_vector(typename PrimitiveTypeTraits::ColumnItemType a, + static void NO_INLINE constant_vector(typename PrimitiveTypeTraits::CppType a, const ArrayB& b, PaddedPODArray& c, CompareInt scale) { size_t size = b.size(); - const typename PrimitiveTypeTraits::ColumnItemType* b_pos = b.data(); + const auto* b_pos = (const typename PrimitiveTypeTraits::CppType*)b.data(); UInt8* c_pos = c.data(); - const typename PrimitiveTypeTraits::ColumnItemType* b_end = b_pos + size; + const auto* b_end = b_pos + size; while (b_pos < b_end) { *c_pos = apply(a, *b_pos, scale); diff --git a/be/src/vec/core/field.cpp b/be/src/vec/core/field.cpp index 4567fa20905097..35723e4acf1a62 100644 --- a/be/src/vec/core/field.cpp +++ b/be/src/vec/core/field.cpp @@ -38,23 +38,22 @@ class BufferReadable; class BufferWritable; template -bool dec_equal(typename PrimitiveTypeTraits::ColumnItemType x, - typename PrimitiveTypeTraits::ColumnItemType y, UInt32 x_scale, UInt32 y_scale) { +bool dec_equal(typename PrimitiveTypeTraits::CppType x, + typename PrimitiveTypeTraits::CppType y, UInt32 x_scale, UInt32 y_scale) { using Comparator = DecimalComparison; return Comparator::compare(x, y, x_scale, y_scale); } template -bool dec_less(typename PrimitiveTypeTraits::ColumnItemType x, - typename PrimitiveTypeTraits::ColumnItemType y, UInt32 x_scale, UInt32 y_scale) { +bool dec_less(typename PrimitiveTypeTraits::CppType x, + typename PrimitiveTypeTraits::CppType y, UInt32 x_scale, UInt32 y_scale) { using Comparator = DecimalComparison; return Comparator::compare(x, y, x_scale, y_scale); } template -bool dec_less_or_equal(typename PrimitiveTypeTraits::ColumnItemType x, - typename PrimitiveTypeTraits::ColumnItemType y, UInt32 x_scale, - UInt32 y_scale) { +bool dec_less_or_equal(typename PrimitiveTypeTraits::CppType x, + typename PrimitiveTypeTraits::CppType y, UInt32 x_scale, UInt32 y_scale) { using Comparator = DecimalComparison; return Comparator::compare(x, y, x_scale, y_scale); } @@ -75,7 +74,7 @@ bool dec_less_or_equal(typename PrimitiveTypeTraits::ColumnItemType x, DECLARE_DECIMAL_COMPARISON(Decimal32, TYPE_DECIMAL32) DECLARE_DECIMAL_COMPARISON(Decimal64, TYPE_DECIMAL64) -DECLARE_DECIMAL_COMPARISON(Decimal128V2, TYPE_DECIMALV2) +DECLARE_DECIMAL_COMPARISON(DecimalV2Value, TYPE_DECIMALV2) DECLARE_DECIMAL_COMPARISON(Decimal256, TYPE_DECIMAL256) template <> @@ -92,26 +91,26 @@ bool decimal_less_or_equal(Decimal128V3 x, Decimal128V3 y, UInt32 xs, UInt32 ys) } template -void Field::create_concrete(typename PrimitiveTypeTraits::NearestFieldType&& x) { +void Field::create_concrete(typename PrimitiveTypeTraits::CppType&& x) { // In both Field and PODArray, small types may be stored as wider types, // e.g. char is stored as UInt64. Field can return this extended value // with get(). To avoid uninitialized results from get(), // we must initialize the entire wide stored type, and not just the // nominal type. - using StorageType = typename PrimitiveTypeTraits::NearestFieldType; + using StorageType = typename PrimitiveTypeTraits::CppType; new (&storage) StorageType(std::move(x)); type = Type; DCHECK_NE(type, PrimitiveType::INVALID_TYPE); } template -void Field::create_concrete(const typename PrimitiveTypeTraits::NearestFieldType& x) { +void Field::create_concrete(const typename PrimitiveTypeTraits::CppType& x) { // In both Field and PODArray, small types may be stored as wider types, // e.g. char is stored as UInt64. Field can return this extended value // with get(). To avoid uninitialized results from get(), // we must initialize the entire wide stored type, and not just the // nominal type. - using StorageType = typename PrimitiveTypeTraits::NearestFieldType; + using StorageType = typename PrimitiveTypeTraits::CppType; new (&storage) StorageType(x); type = Type; DCHECK_NE(type, PrimitiveType::INVALID_TYPE); @@ -120,265 +119,311 @@ void Field::create_concrete(const typename PrimitiveTypeTraits::NearestFie void Field::create(Field&& field) { switch (field.type) { case PrimitiveType::TYPE_NULL: - create_concrete(std::move( - field.template get::NearestFieldType>())); + create_concrete( + std::move(field.template get::CppType>())); return; case PrimitiveType::TYPE_DATETIMEV2: - create_concrete( - std::move(field.template get< - typename PrimitiveTypeTraits::NearestFieldType>())); + create_concrete(std::move( + field.template get::CppType>())); return; case PrimitiveType::TYPE_DATEV2: create_concrete(std::move( - field.template get::NearestFieldType>())); + field.template get::CppType>())); return; case PrimitiveType::TYPE_TIMESTAMPTZ: - create_concrete( - std::move(field.template get< - typename PrimitiveTypeTraits::NearestFieldType>())); + create_concrete(std::move( + field.template get::CppType>())); return; case PrimitiveType::TYPE_DATETIME: + create_concrete(std::move( + field.template get::CppType>())); + return; case PrimitiveType::TYPE_DATE: + create_concrete( + std::move(field.template get::CppType>())); + return; case PrimitiveType::TYPE_BOOLEAN: + create_concrete(std::move( + field.template get::CppType>())); + return; case PrimitiveType::TYPE_TINYINT: + create_concrete(std::move( + field.template get::CppType>())); + return; case PrimitiveType::TYPE_SMALLINT: + create_concrete(std::move( + field.template get::CppType>())); + return; case PrimitiveType::TYPE_INT: + create_concrete( + std::move(field.template get::CppType>())); + return; case PrimitiveType::TYPE_BIGINT: create_concrete(std::move( - field.template get::NearestFieldType>())); + field.template get::CppType>())); return; case PrimitiveType::TYPE_LARGEINT: - create_concrete( - std::move(field.template get< - typename PrimitiveTypeTraits::NearestFieldType>())); + create_concrete(std::move( + field.template get::CppType>())); return; case PrimitiveType::TYPE_IPV4: - create_concrete(std::move( - field.template get::NearestFieldType>())); + create_concrete( + std::move(field.template get::CppType>())); return; case PrimitiveType::TYPE_IPV6: - create_concrete(std::move( - field.template get::NearestFieldType>())); + create_concrete( + std::move(field.template get::CppType>())); return; case PrimitiveType::TYPE_FLOAT: + create_concrete( + std::move(field.template get::CppType>())); + return; case PrimitiveType::TYPE_TIMEV2: + create_concrete(std::move( + field.template get::CppType>())); + return; case PrimitiveType::TYPE_DOUBLE: create_concrete(std::move( - field.template get::NearestFieldType>())); + field.template get::CppType>())); return; case PrimitiveType::TYPE_STRING: create_concrete(std::move( - field.template get::NearestFieldType>())); + field.template get::CppType>())); return; case PrimitiveType::TYPE_CHAR: - create_concrete(std::move( - field.template get::NearestFieldType>())); + create_concrete( + std::move(field.template get::CppType>())); return; case PrimitiveType::TYPE_VARCHAR: - create_concrete( - std::move(field.template get< - typename PrimitiveTypeTraits::NearestFieldType>())); + create_concrete(std::move( + field.template get::CppType>())); return; case PrimitiveType::TYPE_JSONB: - create_concrete(std::move( - field.template get::NearestFieldType>())); + create_concrete( + std::move(field.template get::CppType>())); return; case PrimitiveType::TYPE_ARRAY: - create_concrete(std::move( - field.template get::NearestFieldType>())); + create_concrete( + std::move(field.template get::CppType>())); return; case PrimitiveType::TYPE_STRUCT: create_concrete(std::move( - field.template get::NearestFieldType>())); + field.template get::CppType>())); return; case PrimitiveType::TYPE_MAP: - create_concrete(std::move( - field.template get::NearestFieldType>())); + create_concrete( + std::move(field.template get::CppType>())); return; case PrimitiveType::TYPE_DECIMAL32: - create_concrete( - std::move(field.template get< - typename PrimitiveTypeTraits::NearestFieldType>())); + create_concrete(std::move( + field.template get::CppType>())); return; case PrimitiveType::TYPE_DECIMAL64: - create_concrete( - std::move(field.template get< - typename PrimitiveTypeTraits::NearestFieldType>())); + create_concrete(std::move( + field.template get::CppType>())); return; case PrimitiveType::TYPE_DECIMALV2: - create_concrete( - std::move(field.template get< - typename PrimitiveTypeTraits::NearestFieldType>())); + create_concrete(std::move( + field.template get::CppType>())); return; case PrimitiveType::TYPE_DECIMAL128I: - create_concrete( - std::move(field.template get< - typename PrimitiveTypeTraits::NearestFieldType>())); + create_concrete(std::move( + field.template get::CppType>())); return; case PrimitiveType::TYPE_DECIMAL256: - create_concrete( - std::move(field.template get< - typename PrimitiveTypeTraits::NearestFieldType>())); + create_concrete(std::move( + field.template get::CppType>())); return; case PrimitiveType::TYPE_VARIANT: - create_concrete( - std::move(field.template get< - typename PrimitiveTypeTraits::NearestFieldType>())); + create_concrete(std::move( + field.template get::CppType>())); return; case PrimitiveType::TYPE_BITMAP: create_concrete(std::move( - field.template get::NearestFieldType>())); + field.template get::CppType>())); return; case PrimitiveType::TYPE_HLL: - create_concrete(std::move( - field.template get::NearestFieldType>())); + create_concrete( + std::move(field.template get::CppType>())); return; case PrimitiveType::TYPE_QUANTILE_STATE: - create_concrete( - std::move(field.template get< - typename PrimitiveTypeTraits::NearestFieldType>())); + create_concrete(std::move( + field.template get::CppType>())); return; case PrimitiveType::TYPE_VARBINARY: - create_concrete( - std::move(field.template get< - typename PrimitiveTypeTraits::NearestFieldType>())); + create_concrete(std::move( + field.template get::CppType>())); return; default: throw Exception(Status::FatalError("type not supported, type={}", field.get_type_name())); } } +Field::Field(const Field& rhs) { + create(rhs); +} + +Field::Field(Field&& rhs) { + create(std::move(rhs)); +} + +Field& Field::operator=(const Field& rhs) { + if (this != &rhs) { + if (type != rhs.type) { + destroy(); + create(rhs); + } else { + assign(rhs); /// This assigns string or vector without deallocation of existing buffer. + } + } + return *this; +} + void Field::create(const Field& field) { switch (field.type) { case PrimitiveType::TYPE_NULL: create_concrete( - field.template get::NearestFieldType>()); + field.template get::CppType>()); return; case PrimitiveType::TYPE_DATETIMEV2: create_concrete( - field.template get< - typename PrimitiveTypeTraits::NearestFieldType>()); + field.template get::CppType>()); return; case PrimitiveType::TYPE_DATEV2: create_concrete( - field.template get::NearestFieldType>()); + field.template get::CppType>()); return; case PrimitiveType::TYPE_TIMESTAMPTZ: create_concrete( - field.template get< - typename PrimitiveTypeTraits::NearestFieldType>()); + field.template get::CppType>()); return; case PrimitiveType::TYPE_DATETIME: + create_concrete( + field.template get::CppType>()); + return; case PrimitiveType::TYPE_DATE: + create_concrete( + field.template get::CppType>()); + return; case PrimitiveType::TYPE_BOOLEAN: + create_concrete( + field.template get::CppType>()); + return; case PrimitiveType::TYPE_TINYINT: + create_concrete( + field.template get::CppType>()); + return; case PrimitiveType::TYPE_SMALLINT: + create_concrete( + field.template get::CppType>()); + return; case PrimitiveType::TYPE_INT: + create_concrete( + field.template get::CppType>()); + return; case PrimitiveType::TYPE_BIGINT: create_concrete( - field.template get::NearestFieldType>()); + field.template get::CppType>()); return; case PrimitiveType::TYPE_LARGEINT: create_concrete( - field.template get< - typename PrimitiveTypeTraits::NearestFieldType>()); + field.template get::CppType>()); return; case PrimitiveType::TYPE_IPV4: create_concrete( - field.template get::NearestFieldType>()); + field.template get::CppType>()); return; case PrimitiveType::TYPE_IPV6: create_concrete( - field.template get::NearestFieldType>()); + field.template get::CppType>()); return; case PrimitiveType::TYPE_FLOAT: + create_concrete( + field.template get::CppType>()); + return; case PrimitiveType::TYPE_TIMEV2: + create_concrete( + field.template get::CppType>()); + return; case PrimitiveType::TYPE_DOUBLE: create_concrete( - field.template get::NearestFieldType>()); + field.template get::CppType>()); return; case PrimitiveType::TYPE_STRING: create_concrete( - field.template get::NearestFieldType>()); + field.template get::CppType>()); return; case PrimitiveType::TYPE_CHAR: create_concrete( - field.template get::NearestFieldType>()); + field.template get::CppType>()); return; case PrimitiveType::TYPE_VARCHAR: create_concrete( - field.template get::NearestFieldType>()); + field.template get::CppType>()); return; case PrimitiveType::TYPE_JSONB: create_concrete( - field.template get::NearestFieldType>()); + field.template get::CppType>()); return; case PrimitiveType::TYPE_ARRAY: create_concrete( - field.template get::NearestFieldType>()); + field.template get::CppType>()); return; case PrimitiveType::TYPE_STRUCT: create_concrete( - field.template get::NearestFieldType>()); + field.template get::CppType>()); return; case PrimitiveType::TYPE_MAP: create_concrete( - field.template get::NearestFieldType>()); + field.template get::CppType>()); return; case PrimitiveType::TYPE_DECIMAL32: create_concrete( - field.template get< - typename PrimitiveTypeTraits::NearestFieldType>()); + field.template get::CppType>()); return; case PrimitiveType::TYPE_DECIMAL64: create_concrete( - field.template get< - typename PrimitiveTypeTraits::NearestFieldType>()); + field.template get::CppType>()); return; case PrimitiveType::TYPE_DECIMALV2: create_concrete( - field.template get< - typename PrimitiveTypeTraits::NearestFieldType>()); + field.template get::CppType>()); return; case PrimitiveType::TYPE_DECIMAL128I: create_concrete( - field.template get< - typename PrimitiveTypeTraits::NearestFieldType>()); + field.template get::CppType>()); return; case PrimitiveType::TYPE_DECIMAL256: create_concrete( - field.template get< - typename PrimitiveTypeTraits::NearestFieldType>()); + field.template get::CppType>()); return; case PrimitiveType::TYPE_VARIANT: create_concrete( - field.template get::NearestFieldType>()); + field.template get::CppType>()); return; case PrimitiveType::TYPE_BITMAP: create_concrete( - field.template get::NearestFieldType>()); + field.template get::CppType>()); return; case PrimitiveType::TYPE_HLL: create_concrete( - field.template get::NearestFieldType>()); + field.template get::CppType>()); return; case PrimitiveType::TYPE_QUANTILE_STATE: create_concrete( - field.template get< - typename PrimitiveTypeTraits::NearestFieldType>()); + field.template get::CppType>()); return; case PrimitiveType::TYPE_UINT32: create_concrete( - field.template get::NearestFieldType>()); + field.template get::CppType>()); return; case PrimitiveType::TYPE_UINT64: create_concrete( - field.template get::NearestFieldType>()); + field.template get::CppType>()); return; case PrimitiveType::TYPE_VARBINARY: create_concrete( - field.template get< - typename PrimitiveTypeTraits::NearestFieldType>()); + field.template get::CppType>()); return; default: throw Exception(Status::FatalError("type not supported, type={}", field.get_type_name())); @@ -388,40 +433,40 @@ void Field::create(const Field& field) { void Field::destroy() { switch (type) { case PrimitiveType::TYPE_STRING: - destroy::NearestFieldType>(); + destroy::CppType>(); break; case PrimitiveType::TYPE_CHAR: - destroy::NearestFieldType>(); + destroy::CppType>(); break; case PrimitiveType::TYPE_VARCHAR: - destroy::NearestFieldType>(); + destroy::CppType>(); break; case PrimitiveType::TYPE_JSONB: - destroy::NearestFieldType>(); + destroy::CppType>(); break; case PrimitiveType::TYPE_ARRAY: - destroy::NearestFieldType>(); + destroy::CppType>(); break; case PrimitiveType::TYPE_STRUCT: - destroy::NearestFieldType>(); + destroy::CppType>(); break; case PrimitiveType::TYPE_MAP: - destroy::NearestFieldType>(); + destroy::CppType>(); break; case PrimitiveType::TYPE_VARIANT: - destroy::NearestFieldType>(); + destroy::CppType>(); break; case PrimitiveType::TYPE_BITMAP: - destroy::NearestFieldType>(); + destroy::CppType>(); break; case PrimitiveType::TYPE_HLL: - destroy::NearestFieldType>(); + destroy::CppType>(); break; case PrimitiveType::TYPE_QUANTILE_STATE: - destroy::NearestFieldType>(); + destroy::CppType>(); break; case PrimitiveType::TYPE_VARBINARY: - destroy::NearestFieldType>(); + destroy::CppType>(); break; default: break; @@ -434,133 +479,140 @@ void Field::destroy() { void Field::assign(Field&& field) { switch (field.type) { case PrimitiveType::TYPE_NULL: - assign_concrete(std::move( - field.template get::NearestFieldType>())); + assign_concrete( + std::move(field.template get::CppType>())); return; case PrimitiveType::TYPE_DATETIMEV2: - assign_concrete( - std::move(field.template get< - typename PrimitiveTypeTraits::NearestFieldType>())); + assign_concrete(std::move( + field.template get::CppType>())); return; case PrimitiveType::TYPE_DATETIME: - assign_concrete( - std::move(field.template get< - typename PrimitiveTypeTraits::NearestFieldType>())); + assign_concrete(std::move( + field.template get::CppType>())); return; case PrimitiveType::TYPE_DATE: - assign_concrete(std::move( - field.template get::NearestFieldType>())); + assign_concrete( + std::move(field.template get::CppType>())); return; case PrimitiveType::TYPE_DATEV2: assign_concrete(std::move( - field.template get::NearestFieldType>())); + field.template get::CppType>())); return; case PrimitiveType::TYPE_TIMESTAMPTZ: - assign_concrete( - std::move(field.template get< - typename PrimitiveTypeTraits::NearestFieldType>())); + assign_concrete(std::move( + field.template get::CppType>())); return; case PrimitiveType::TYPE_BOOLEAN: + assign_concrete(std::move( + field.template get::CppType>())); + return; case PrimitiveType::TYPE_TINYINT: + assign_concrete(std::move( + field.template get::CppType>())); + return; case PrimitiveType::TYPE_SMALLINT: + assign_concrete(std::move( + field.template get::CppType>())); + return; case PrimitiveType::TYPE_INT: + assign_concrete( + std::move(field.template get::CppType>())); + return; case PrimitiveType::TYPE_BIGINT: assign_concrete(std::move( - field.template get::NearestFieldType>())); + field.template get::CppType>())); return; case PrimitiveType::TYPE_LARGEINT: - assign_concrete( - std::move(field.template get< - typename PrimitiveTypeTraits::NearestFieldType>())); + assign_concrete(std::move( + field.template get::CppType>())); return; case PrimitiveType::TYPE_IPV4: - assign_concrete(std::move( - field.template get::NearestFieldType>())); + assign_concrete( + std::move(field.template get::CppType>())); return; case PrimitiveType::TYPE_IPV6: - assign_concrete(std::move( - field.template get::NearestFieldType>())); + assign_concrete( + std::move(field.template get::CppType>())); + return; + case PrimitiveType::TYPE_FLOAT: + assign_concrete( + std::move(field.template get::CppType>())); + return; + case PrimitiveType::TYPE_TIMEV2: + assign_concrete(std::move( + field.template get::CppType>())); return; case PrimitiveType::TYPE_DOUBLE: assign_concrete(std::move( - field.template get::NearestFieldType>())); + field.template get::CppType>())); return; case PrimitiveType::TYPE_STRING: assign_concrete(std::move( - field.template get::NearestFieldType>())); + field.template get::CppType>())); return; case PrimitiveType::TYPE_CHAR: - assign_concrete(std::move( - field.template get::NearestFieldType>())); + assign_concrete( + std::move(field.template get::CppType>())); return; case PrimitiveType::TYPE_VARCHAR: - assign_concrete( - std::move(field.template get< - typename PrimitiveTypeTraits::NearestFieldType>())); + assign_concrete(std::move( + field.template get::CppType>())); return; case PrimitiveType::TYPE_JSONB: - assign_concrete(std::move( - field.template get::NearestFieldType>())); + assign_concrete( + std::move(field.template get::CppType>())); return; case PrimitiveType::TYPE_ARRAY: - assign_concrete(std::move( - field.template get::NearestFieldType>())); + assign_concrete( + std::move(field.template get::CppType>())); return; case PrimitiveType::TYPE_STRUCT: assign_concrete(std::move( - field.template get::NearestFieldType>())); + field.template get::CppType>())); return; case PrimitiveType::TYPE_MAP: - assign_concrete(std::move( - field.template get::NearestFieldType>())); + assign_concrete( + std::move(field.template get::CppType>())); return; case PrimitiveType::TYPE_DECIMAL32: - assign_concrete( - std::move(field.template get< - typename PrimitiveTypeTraits::NearestFieldType>())); + assign_concrete(std::move( + field.template get::CppType>())); return; case PrimitiveType::TYPE_DECIMAL64: - assign_concrete( - std::move(field.template get< - typename PrimitiveTypeTraits::NearestFieldType>())); + assign_concrete(std::move( + field.template get::CppType>())); return; case PrimitiveType::TYPE_DECIMALV2: - assign_concrete( - std::move(field.template get< - typename PrimitiveTypeTraits::NearestFieldType>())); + assign_concrete(std::move( + field.template get::CppType>())); return; case PrimitiveType::TYPE_DECIMAL128I: - assign_concrete( - std::move(field.template get< - typename PrimitiveTypeTraits::NearestFieldType>())); + assign_concrete(std::move( + field.template get::CppType>())); return; case PrimitiveType::TYPE_DECIMAL256: - assign_concrete( - std::move(field.template get< - typename PrimitiveTypeTraits::NearestFieldType>())); + assign_concrete(std::move( + field.template get::CppType>())); return; case PrimitiveType::TYPE_VARIANT: - assign_concrete( - std::move(field.template get< - typename PrimitiveTypeTraits::NearestFieldType>())); + assign_concrete(std::move( + field.template get::CppType>())); return; case PrimitiveType::TYPE_BITMAP: assign_concrete(std::move( - field.template get::NearestFieldType>())); + field.template get::CppType>())); return; case PrimitiveType::TYPE_HLL: - assign_concrete(std::move( - field.template get::NearestFieldType>())); + assign_concrete( + std::move(field.template get::CppType>())); return; case PrimitiveType::TYPE_QUANTILE_STATE: - assign_concrete( - std::move(field.template get< - typename PrimitiveTypeTraits::NearestFieldType>())); + assign_concrete(std::move( + field.template get::CppType>())); return; case PrimitiveType::TYPE_VARBINARY: - assign_concrete( - std::move(field.template get< - typename PrimitiveTypeTraits::NearestFieldType>())); + assign_concrete(std::move( + field.template get::CppType>())); return; default: throw Exception(Status::FatalError("type not supported, type={}", field.get_type_name())); @@ -571,138 +623,147 @@ void Field::assign(const Field& field) { switch (field.type) { case PrimitiveType::TYPE_NULL: assign_concrete( - field.template get::NearestFieldType>()); + field.template get::CppType>()); return; case PrimitiveType::TYPE_DATETIMEV2: assign_concrete( - field.template get< - typename PrimitiveTypeTraits::NearestFieldType>()); + field.template get::CppType>()); return; case PrimitiveType::TYPE_DATETIME: assign_concrete( - field.template get< - typename PrimitiveTypeTraits::NearestFieldType>()); + field.template get::CppType>()); return; case PrimitiveType::TYPE_DATE: assign_concrete( - field.template get::NearestFieldType>()); + field.template get::CppType>()); return; case PrimitiveType::TYPE_DATEV2: assign_concrete( - field.template get::NearestFieldType>()); + field.template get::CppType>()); return; case PrimitiveType::TYPE_TIMESTAMPTZ: assign_concrete( - field.template get< - typename PrimitiveTypeTraits::NearestFieldType>()); + field.template get::CppType>()); return; case PrimitiveType::TYPE_BOOLEAN: + assign_concrete( + field.template get::CppType>()); + return; case PrimitiveType::TYPE_TINYINT: + assign_concrete( + field.template get::CppType>()); + return; case PrimitiveType::TYPE_SMALLINT: + assign_concrete( + field.template get::CppType>()); + return; case PrimitiveType::TYPE_INT: + assign_concrete( + field.template get::CppType>()); + return; case PrimitiveType::TYPE_BIGINT: assign_concrete( - field.template get::NearestFieldType>()); + field.template get::CppType>()); return; case PrimitiveType::TYPE_LARGEINT: assign_concrete( - field.template get< - typename PrimitiveTypeTraits::NearestFieldType>()); + field.template get::CppType>()); return; case PrimitiveType::TYPE_IPV4: assign_concrete( - field.template get::NearestFieldType>()); + field.template get::CppType>()); return; case PrimitiveType::TYPE_IPV6: assign_concrete( - field.template get::NearestFieldType>()); + field.template get::CppType>()); + return; + case PrimitiveType::TYPE_FLOAT: + assign_concrete( + field.template get::CppType>()); + return; + case PrimitiveType::TYPE_TIMEV2: + assign_concrete( + field.template get::CppType>()); return; case PrimitiveType::TYPE_DOUBLE: assign_concrete( - field.template get::NearestFieldType>()); + field.template get::CppType>()); return; case PrimitiveType::TYPE_STRING: assign_concrete( - field.template get::NearestFieldType>()); + field.template get::CppType>()); return; case PrimitiveType::TYPE_CHAR: assign_concrete( - field.template get::NearestFieldType>()); + field.template get::CppType>()); return; case PrimitiveType::TYPE_VARCHAR: assign_concrete( - field.template get::NearestFieldType>()); + field.template get::CppType>()); return; case PrimitiveType::TYPE_JSONB: assign_concrete( - field.template get::NearestFieldType>()); + field.template get::CppType>()); return; case PrimitiveType::TYPE_ARRAY: assign_concrete( - field.template get::NearestFieldType>()); + field.template get::CppType>()); return; case PrimitiveType::TYPE_STRUCT: assign_concrete( - field.template get::NearestFieldType>()); + field.template get::CppType>()); return; case PrimitiveType::TYPE_MAP: assign_concrete( - field.template get::NearestFieldType>()); + field.template get::CppType>()); return; case PrimitiveType::TYPE_DECIMAL32: assign_concrete( - field.template get< - typename PrimitiveTypeTraits::NearestFieldType>()); + field.template get::CppType>()); return; case PrimitiveType::TYPE_DECIMAL64: assign_concrete( - field.template get< - typename PrimitiveTypeTraits::NearestFieldType>()); + field.template get::CppType>()); return; case PrimitiveType::TYPE_DECIMALV2: assign_concrete( - field.template get< - typename PrimitiveTypeTraits::NearestFieldType>()); + field.template get::CppType>()); return; case PrimitiveType::TYPE_DECIMAL128I: assign_concrete( - field.template get< - typename PrimitiveTypeTraits::NearestFieldType>()); + field.template get::CppType>()); return; case PrimitiveType::TYPE_DECIMAL256: assign_concrete( - field.template get< - typename PrimitiveTypeTraits::NearestFieldType>()); + field.template get::CppType>()); return; case PrimitiveType::TYPE_VARIANT: assign_concrete( - field.template get::NearestFieldType>()); + field.template get::CppType>()); return; case PrimitiveType::TYPE_BITMAP: assign_concrete( - field.template get::NearestFieldType>()); + field.template get::CppType>()); return; case PrimitiveType::TYPE_HLL: assign_concrete( - field.template get::NearestFieldType>()); + field.template get::CppType>()); return; case PrimitiveType::TYPE_QUANTILE_STATE: assign_concrete( - field.template get< - typename PrimitiveTypeTraits::NearestFieldType>()); + field.template get::CppType>()); return; case PrimitiveType::TYPE_UINT32: assign_concrete( - field.template get::NearestFieldType>()); + field.template get::CppType>()); return; case PrimitiveType::TYPE_UINT64: assign_concrete( - field.template get::NearestFieldType>()); + field.template get::CppType>()); return; case PrimitiveType::TYPE_VARBINARY: assign_concrete( - field.template get< - typename PrimitiveTypeTraits::NearestFieldType>()); + field.template get::CppType>()); return; default: throw Exception(Status::FatalError("type not supported, type={}", field.get_type_name())); @@ -711,27 +772,25 @@ void Field::assign(const Field& field) { /// Assuming same types. template -void Field::assign_concrete(typename PrimitiveTypeTraits::NearestFieldType&& x) { - auto* MAY_ALIAS ptr = - reinterpret_cast::NearestFieldType*>(&storage); - *ptr = std::forward::NearestFieldType>(x); +void Field::assign_concrete(typename PrimitiveTypeTraits::CppType&& x) { + auto* MAY_ALIAS ptr = reinterpret_cast::CppType*>(&storage); + *ptr = std::forward::CppType>(x); } template -void Field::assign_concrete(const typename PrimitiveTypeTraits::NearestFieldType& x) { - auto* MAY_ALIAS ptr = - reinterpret_cast::NearestFieldType*>(&storage); - *ptr = std::forward::NearestFieldType>(x); +void Field::assign_concrete(const typename PrimitiveTypeTraits::CppType& x) { + auto* MAY_ALIAS ptr = reinterpret_cast::CppType*>(&storage); + *ptr = std::forward::CppType>(x); } std::string Field::get_type_name() const { return type_to_string(type); } -#define MATCH_PRIMITIVE_TYPE(primite_type) \ - if (type == primite_type) { \ - const auto& v = get::NearestFieldType>(); \ - return std::string_view(reinterpret_cast(&v), sizeof(v)); \ +#define MATCH_PRIMITIVE_TYPE(primite_type) \ + if (type == primite_type) { \ + const auto& v = get::CppType>(); \ + return std::string_view(reinterpret_cast(&v), sizeof(v)); \ } std::string_view Field::as_string_view() const { @@ -792,214 +851,155 @@ std::string_view Field::as_string_view() const { #undef MATCH_PRIMITIVE_TYPE -#define MATCH_NUMBER_TYPE(primite_type) \ - if (type == primite_type) { \ - const auto& v = get::NearestFieldType>(); \ - return CastToString::from_number(v); \ - } - -#define MATCH_DECIMAL_TYPE(primite_type) \ - if (type == primite_type) { \ - const auto& v = get::NearestFieldType>(); \ - return CastToString::from_decimal(v.get_value(), v.get_scale()); \ - } - -std::string Field::to_string() const { - if (type == PrimitiveType::TYPE_STRING || type == PrimitiveType::TYPE_VARCHAR || - type == PrimitiveType::TYPE_CHAR) { - const auto& s = get(); - return {s.data(), s.size()}; - } - if (type == PrimitiveType::TYPE_VARBINARY) { - const auto& svf = get(); - return {svf.data(), svf.size()}; - } - MATCH_DECIMAL_TYPE(TYPE_DECIMAL32); - MATCH_DECIMAL_TYPE(TYPE_DECIMAL64); - MATCH_DECIMAL_TYPE(TYPE_DECIMALV2); - MATCH_DECIMAL_TYPE(TYPE_DECIMAL128I); - MATCH_DECIMAL_TYPE(TYPE_DECIMAL256); - - if (type == TYPE_DATE || type == TYPE_DATETIME) { - const auto& v = binary_cast( - get::NearestFieldType>()); - return CastToString::from_date_or_datetime(v); - } - if (type == TYPE_DATEV2) { - const auto& v = binary_cast>( - (uint32_t)get::NearestFieldType>()); - return CastToString::from_datev2(v); - } - if (type == TYPE_DATETIMEV2) { - const auto& v = binary_cast>( - (uint64_t)get::NearestFieldType>()); - return CastToString::from_datetimev2(v); - } - if (type == TYPE_TIMESTAMPTZ) { - const auto& v = binary_cast( - (uint64_t)get::NearestFieldType>()); - return CastToString::from_timestamptz(v, 6); - } - MATCH_NUMBER_TYPE(TYPE_BOOLEAN); - MATCH_NUMBER_TYPE(TYPE_TINYINT); - MATCH_NUMBER_TYPE(TYPE_SMALLINT); - MATCH_NUMBER_TYPE(TYPE_INT); - MATCH_NUMBER_TYPE(TYPE_BIGINT); - MATCH_NUMBER_TYPE(TYPE_LARGEINT); - MATCH_NUMBER_TYPE(TYPE_FLOAT); - MATCH_NUMBER_TYPE(TYPE_DOUBLE); - throw Exception( - Status::FatalError("type not supported for to_string, type={}", get_type_name())); -} - -#undef MATCH_NUMBER_TYPE -#undef MATCH_DECIMAL_TYPE - -#define DECLARE_FUNCTION(FUNC_NAME) \ - template void Field::FUNC_NAME( \ - typename PrimitiveTypeTraits::NearestFieldType && rhs); \ - template void Field::FUNC_NAME( \ - typename PrimitiveTypeTraits::NearestFieldType && rhs); \ - template void Field::FUNC_NAME( \ - typename PrimitiveTypeTraits::NearestFieldType && rhs); \ - template void Field::FUNC_NAME( \ - typename PrimitiveTypeTraits::NearestFieldType && rhs); \ - template void Field::FUNC_NAME( \ - typename PrimitiveTypeTraits::NearestFieldType && rhs); \ - template void Field::FUNC_NAME( \ - typename PrimitiveTypeTraits::NearestFieldType && rhs); \ - template void Field::FUNC_NAME( \ - typename PrimitiveTypeTraits::NearestFieldType && rhs); \ - template void Field::FUNC_NAME( \ - typename PrimitiveTypeTraits::NearestFieldType && rhs); \ - template void Field::FUNC_NAME( \ - typename PrimitiveTypeTraits::NearestFieldType && rhs); \ - template void Field::FUNC_NAME( \ - typename PrimitiveTypeTraits::NearestFieldType && rhs); \ - template void Field::FUNC_NAME( \ - typename PrimitiveTypeTraits::NearestFieldType && rhs); \ - template void Field::FUNC_NAME( \ - typename PrimitiveTypeTraits::NearestFieldType && rhs); \ - template void Field::FUNC_NAME( \ - typename PrimitiveTypeTraits::NearestFieldType && rhs); \ - template void Field::FUNC_NAME( \ - typename PrimitiveTypeTraits::NearestFieldType && rhs); \ - template void Field::FUNC_NAME( \ - typename PrimitiveTypeTraits::NearestFieldType && rhs); \ - template void Field::FUNC_NAME( \ - typename PrimitiveTypeTraits::NearestFieldType && rhs); \ - template void Field::FUNC_NAME( \ - typename PrimitiveTypeTraits::NearestFieldType && rhs); \ - template void Field::FUNC_NAME( \ - typename PrimitiveTypeTraits::NearestFieldType && rhs); \ - template void Field::FUNC_NAME( \ - typename PrimitiveTypeTraits::NearestFieldType && rhs); \ - template void Field::FUNC_NAME( \ - typename PrimitiveTypeTraits::NearestFieldType && rhs); \ - template void Field::FUNC_NAME( \ - typename PrimitiveTypeTraits::NearestFieldType && rhs); \ - template void Field::FUNC_NAME( \ - typename PrimitiveTypeTraits::NearestFieldType && rhs); \ - template void Field::FUNC_NAME( \ - typename PrimitiveTypeTraits::NearestFieldType && rhs); \ - template void Field::FUNC_NAME( \ - const typename PrimitiveTypeTraits::NearestFieldType& rhs); \ - template void Field::FUNC_NAME( \ - const typename PrimitiveTypeTraits::NearestFieldType& rhs); \ - template void Field::FUNC_NAME( \ - const typename PrimitiveTypeTraits::NearestFieldType& rhs); \ - template void Field::FUNC_NAME( \ - const typename PrimitiveTypeTraits::NearestFieldType& rhs); \ - template void Field::FUNC_NAME( \ - const typename PrimitiveTypeTraits::NearestFieldType& rhs); \ - template void Field::FUNC_NAME( \ - const typename PrimitiveTypeTraits::NearestFieldType& rhs); \ - template void Field::FUNC_NAME( \ - const typename PrimitiveTypeTraits::NearestFieldType& rhs); \ - template void Field::FUNC_NAME( \ - const typename PrimitiveTypeTraits::NearestFieldType& rhs); \ - template void Field::FUNC_NAME( \ - const typename PrimitiveTypeTraits::NearestFieldType& rhs); \ - template void Field::FUNC_NAME( \ - const typename PrimitiveTypeTraits::NearestFieldType& rhs); \ - template void Field::FUNC_NAME( \ - const typename PrimitiveTypeTraits::NearestFieldType& rhs); \ - template void Field::FUNC_NAME( \ - typename PrimitiveTypeTraits::NearestFieldType && rhs); \ - template void Field::FUNC_NAME( \ - const typename PrimitiveTypeTraits::NearestFieldType& rhs); \ - template void Field::FUNC_NAME( \ - const typename PrimitiveTypeTraits::NearestFieldType& rhs); \ - template void Field::FUNC_NAME( \ - const typename PrimitiveTypeTraits::NearestFieldType& rhs); \ - template void Field::FUNC_NAME( \ - const typename PrimitiveTypeTraits::NearestFieldType& rhs); \ - template void Field::FUNC_NAME( \ - const typename PrimitiveTypeTraits::NearestFieldType& rhs); \ - template void Field::FUNC_NAME( \ - const typename PrimitiveTypeTraits::NearestFieldType& rhs); \ - template void Field::FUNC_NAME( \ - const typename PrimitiveTypeTraits::NearestFieldType& rhs); \ - template void Field::FUNC_NAME( \ - const typename PrimitiveTypeTraits::NearestFieldType& rhs); \ - template void Field::FUNC_NAME( \ - const typename PrimitiveTypeTraits::NearestFieldType& rhs); \ - template void Field::FUNC_NAME( \ - const typename PrimitiveTypeTraits::NearestFieldType& rhs); \ - template void Field::FUNC_NAME( \ - const typename PrimitiveTypeTraits::NearestFieldType& rhs); \ - template void Field::FUNC_NAME( \ - const typename PrimitiveTypeTraits::NearestFieldType& rhs); \ - template void Field::FUNC_NAME( \ - const typename PrimitiveTypeTraits::NearestFieldType& rhs); \ - template void Field::FUNC_NAME( \ - typename PrimitiveTypeTraits::NearestFieldType && rhs); \ - template void Field::FUNC_NAME( \ - const typename PrimitiveTypeTraits::NearestFieldType& rhs); \ - template void Field::FUNC_NAME( \ - typename PrimitiveTypeTraits::NearestFieldType && rhs); \ - template void Field::FUNC_NAME( \ - const typename PrimitiveTypeTraits::NearestFieldType& rhs); \ - template void Field::FUNC_NAME( \ - typename PrimitiveTypeTraits::NearestFieldType && rhs); \ - template void Field::FUNC_NAME( \ - const typename PrimitiveTypeTraits::NearestFieldType& rhs); \ - template void Field::FUNC_NAME( \ - typename PrimitiveTypeTraits::NearestFieldType && rhs); \ - template void Field::FUNC_NAME( \ - const typename PrimitiveTypeTraits::NearestFieldType& rhs); \ - template void Field::FUNC_NAME( \ - typename PrimitiveTypeTraits::NearestFieldType && rhs); \ - template void Field::FUNC_NAME( \ - const typename PrimitiveTypeTraits::NearestFieldType& rhs); \ - template void Field::FUNC_NAME( \ - typename PrimitiveTypeTraits::NearestFieldType && rhs); \ - template void Field::FUNC_NAME( \ - const typename PrimitiveTypeTraits::NearestFieldType& rhs); \ - template void Field::FUNC_NAME( \ - typename PrimitiveTypeTraits::NearestFieldType && rhs); \ - template void Field::FUNC_NAME( \ - const typename PrimitiveTypeTraits::NearestFieldType& rhs); \ - template void Field::FUNC_NAME( \ - typename PrimitiveTypeTraits::NearestFieldType && rhs); \ - template void Field::FUNC_NAME( \ - const typename PrimitiveTypeTraits::NearestFieldType& rhs); \ - template void Field::FUNC_NAME( \ - typename PrimitiveTypeTraits::NearestFieldType && rhs); \ - template void Field::FUNC_NAME( \ - const typename PrimitiveTypeTraits::NearestFieldType& rhs); \ - template void Field::FUNC_NAME( \ - const typename PrimitiveTypeTraits::NearestFieldType& rhs); \ - template void Field::FUNC_NAME( \ - typename PrimitiveTypeTraits::NearestFieldType && rhs); \ - template void Field::FUNC_NAME( \ - const typename PrimitiveTypeTraits::NearestFieldType& rhs); \ - template void Field::FUNC_NAME( \ - typename PrimitiveTypeTraits::NearestFieldType && rhs); \ - template void Field::FUNC_NAME( \ - const typename PrimitiveTypeTraits::NearestFieldType& rhs); \ - template void Field::FUNC_NAME( \ - typename PrimitiveTypeTraits::NearestFieldType && rhs); +#define DECLARE_FUNCTION(FUNC_NAME) \ + template void Field::FUNC_NAME(typename PrimitiveTypeTraits::CppType && \ + rhs); \ + template void Field::FUNC_NAME( \ + typename PrimitiveTypeTraits::CppType && rhs); \ + template void Field::FUNC_NAME( \ + typename PrimitiveTypeTraits::CppType && rhs); \ + template void Field::FUNC_NAME(typename PrimitiveTypeTraits::CppType && \ + rhs); \ + template void Field::FUNC_NAME( \ + typename PrimitiveTypeTraits::CppType && rhs); \ + template void Field::FUNC_NAME( \ + typename PrimitiveTypeTraits::CppType && rhs); \ + template void Field::FUNC_NAME(typename PrimitiveTypeTraits::CppType && \ + rhs); \ + template void Field::FUNC_NAME( \ + typename PrimitiveTypeTraits::CppType && rhs); \ + template void Field::FUNC_NAME( \ + typename PrimitiveTypeTraits::CppType && rhs); \ + template void Field::FUNC_NAME( \ + typename PrimitiveTypeTraits::CppType && rhs); \ + template void Field::FUNC_NAME( \ + typename PrimitiveTypeTraits::CppType && rhs); \ + template void Field::FUNC_NAME( \ + typename PrimitiveTypeTraits::CppType && rhs); \ + template void Field::FUNC_NAME( \ + typename PrimitiveTypeTraits::CppType && rhs); \ + template void Field::FUNC_NAME( \ + typename PrimitiveTypeTraits::CppType && rhs); \ + template void Field::FUNC_NAME( \ + typename PrimitiveTypeTraits::CppType && rhs); \ + template void Field::FUNC_NAME(typename PrimitiveTypeTraits::CppType && \ + rhs); \ + template void Field::FUNC_NAME( \ + typename PrimitiveTypeTraits::CppType && rhs); \ + template void Field::FUNC_NAME( \ + typename PrimitiveTypeTraits::CppType && rhs); \ + template void Field::FUNC_NAME( \ + typename PrimitiveTypeTraits::CppType && rhs); \ + template void Field::FUNC_NAME(typename PrimitiveTypeTraits::CppType && \ + rhs); \ + template void Field::FUNC_NAME( \ + typename PrimitiveTypeTraits::CppType && rhs); \ + template void Field::FUNC_NAME( \ + typename PrimitiveTypeTraits::CppType && rhs); \ + template void Field::FUNC_NAME( \ + typename PrimitiveTypeTraits::CppType && rhs); \ + template void Field::FUNC_NAME(typename PrimitiveTypeTraits::CppType && \ + rhs); \ + template void Field::FUNC_NAME( \ + const typename PrimitiveTypeTraits::CppType& rhs); \ + template void Field::FUNC_NAME( \ + const typename PrimitiveTypeTraits::CppType& rhs); \ + template void Field::FUNC_NAME( \ + const typename PrimitiveTypeTraits::CppType& rhs); \ + template void Field::FUNC_NAME( \ + const typename PrimitiveTypeTraits::CppType& rhs); \ + template void Field::FUNC_NAME( \ + const typename PrimitiveTypeTraits::CppType& rhs); \ + template void Field::FUNC_NAME( \ + const typename PrimitiveTypeTraits::CppType& rhs); \ + template void Field::FUNC_NAME( \ + const typename PrimitiveTypeTraits::CppType& rhs); \ + template void Field::FUNC_NAME( \ + const typename PrimitiveTypeTraits::CppType& rhs); \ + template void Field::FUNC_NAME( \ + const typename PrimitiveTypeTraits::CppType& rhs); \ + template void Field::FUNC_NAME( \ + const typename PrimitiveTypeTraits::CppType& rhs); \ + template void Field::FUNC_NAME( \ + const typename PrimitiveTypeTraits::CppType& rhs); \ + template void Field::FUNC_NAME( \ + const typename PrimitiveTypeTraits::CppType& rhs); \ + template void Field::FUNC_NAME( \ + typename PrimitiveTypeTraits::CppType && rhs); \ + template void Field::FUNC_NAME( \ + const typename PrimitiveTypeTraits::CppType& rhs); \ + template void Field::FUNC_NAME( \ + const typename PrimitiveTypeTraits::CppType& rhs); \ + template void Field::FUNC_NAME( \ + const typename PrimitiveTypeTraits::CppType& rhs); \ + template void Field::FUNC_NAME( \ + const typename PrimitiveTypeTraits::CppType& rhs); \ + template void Field::FUNC_NAME( \ + const typename PrimitiveTypeTraits::CppType& rhs); \ + template void Field::FUNC_NAME( \ + const typename PrimitiveTypeTraits::CppType& rhs); \ + template void Field::FUNC_NAME( \ + const typename PrimitiveTypeTraits::CppType& rhs); \ + template void Field::FUNC_NAME( \ + const typename PrimitiveTypeTraits::CppType& rhs); \ + template void Field::FUNC_NAME( \ + const typename PrimitiveTypeTraits::CppType& rhs); \ + template void Field::FUNC_NAME( \ + const typename PrimitiveTypeTraits::CppType& rhs); \ + template void Field::FUNC_NAME( \ + const typename PrimitiveTypeTraits::CppType& rhs); \ + template void Field::FUNC_NAME( \ + const typename PrimitiveTypeTraits::CppType& rhs); \ + template void Field::FUNC_NAME( \ + const typename PrimitiveTypeTraits::CppType& rhs); \ + template void Field::FUNC_NAME(typename PrimitiveTypeTraits::CppType && \ + rhs); \ + template void Field::FUNC_NAME( \ + const typename PrimitiveTypeTraits::CppType& rhs); \ + template void Field::FUNC_NAME(typename PrimitiveTypeTraits::CppType && \ + rhs); \ + template void Field::FUNC_NAME( \ + const typename PrimitiveTypeTraits::CppType& rhs); \ + template void Field::FUNC_NAME( \ + typename PrimitiveTypeTraits::CppType && rhs); \ + template void Field::FUNC_NAME( \ + const typename PrimitiveTypeTraits::CppType& rhs); \ + template void Field::FUNC_NAME( \ + typename PrimitiveTypeTraits::CppType && rhs); \ + template void Field::FUNC_NAME( \ + const typename PrimitiveTypeTraits::CppType& rhs); \ + template void Field::FUNC_NAME( \ + typename PrimitiveTypeTraits::CppType && rhs); \ + template void Field::FUNC_NAME( \ + const typename PrimitiveTypeTraits::CppType& rhs); \ + template void Field::FUNC_NAME( \ + typename PrimitiveTypeTraits::CppType && rhs); \ + template void Field::FUNC_NAME( \ + const typename PrimitiveTypeTraits::CppType& rhs); \ + template void Field::FUNC_NAME( \ + typename PrimitiveTypeTraits::CppType && rhs); \ + template void Field::FUNC_NAME( \ + const typename PrimitiveTypeTraits::CppType& rhs); \ + template void Field::FUNC_NAME(typename PrimitiveTypeTraits::CppType && \ + rhs); \ + template void Field::FUNC_NAME( \ + const typename PrimitiveTypeTraits::CppType& rhs); \ + template void Field::FUNC_NAME( \ + typename PrimitiveTypeTraits::CppType && rhs); \ + template void Field::FUNC_NAME( \ + const typename PrimitiveTypeTraits::CppType& rhs); \ + template void Field::FUNC_NAME( \ + const typename PrimitiveTypeTraits::CppType& rhs); \ + template void Field::FUNC_NAME( \ + typename PrimitiveTypeTraits::CppType && rhs); \ + template void Field::FUNC_NAME( \ + const typename PrimitiveTypeTraits::CppType& rhs); \ + template void Field::FUNC_NAME( \ + typename PrimitiveTypeTraits::CppType && rhs); \ + template void Field::FUNC_NAME( \ + const typename PrimitiveTypeTraits::CppType& rhs); \ + template void Field::FUNC_NAME( \ + typename PrimitiveTypeTraits::CppType && rhs); DECLARE_FUNCTION(create_concrete) DECLARE_FUNCTION(assign_concrete) diff --git a/be/src/vec/core/field.h b/be/src/vec/core/field.h index d0045cd73d8f6d..f993067d3e2f1b 100644 --- a/be/src/vec/core/field.h +++ b/be/src/vec/core/field.h @@ -55,14 +55,6 @@ struct PackedInt128; namespace doris::vectorized { -template -struct NearestFieldTypeImpl { - using Type = T; // for HLL or some origin types. see def. of storage -}; - -template -using NearestFieldType = typename NearestFieldTypeImpl::Type; - class Field; using FieldVector = std::vector; @@ -183,69 +175,6 @@ bool decimal_less(T x, T y, UInt32 x_scale, UInt32 y_scale); template bool decimal_less_or_equal(T x, T y, UInt32 x_scale, UInt32 y_scale); -template -class DecimalField { -public: - DecimalField(T value, UInt32 scale_) : dec(value), scale(scale_) {} - // Store the underlying data ignoring scale. - DecimalField(T value) : dec(value), scale(0) {} - - operator T() const { return dec; } - T get_value() const { return dec; } - UInt32 get_scale() const { return scale; } - - template - bool operator<(const DecimalField& r) const { - using MaxType = std::conditional_t<(sizeof(T) > sizeof(U)), T, U>; - return decimal_less(dec, r.get_value(), scale, r.get_scale()); - } - - template - bool operator<=(const DecimalField& r) const { - using MaxType = std::conditional_t<(sizeof(T) > sizeof(U)), T, U>; - return decimal_less_or_equal(dec, r.get_value(), scale, r.get_scale()); - } - - template - bool operator==(const DecimalField& r) const { - using MaxType = std::conditional_t<(sizeof(T) > sizeof(U)), T, U>; - return decimal_equal(dec, r.get_value(), scale, r.get_scale()); - } - - template - bool operator>(const DecimalField& r) const { - return r < *this; - } - template - bool operator>=(const DecimalField& r) const { - return r <= *this; - } - template - bool operator!=(const DecimalField& r) const { - return !(*this == r); - } - - const DecimalField& operator+=(const DecimalField& r) { - if (scale != r.get_scale()) { - throw Exception(Status::FatalError("Add different decimal fields")); - } - dec += r.get_value(); - return *this; - } - - const DecimalField& operator-=(const DecimalField& r) { - if (scale != r.get_scale()) { - throw Exception(Status::FatalError("Sub different decimal fields")); - } - dec -= r.get_value(); - return *this; - } - -private: - T dec; - UInt32 scale; -}; - // StringViewField wraps a StringView and provides deep copy semantics. // Since StringView is a non-owning view (only contains pointer and length), // we need to store the actual data in a String to ensure the Field owns the data. @@ -343,37 +272,26 @@ class Field { // set Types::Null explictly and avoid other types Field(PrimitiveType w) : type(w) {} template - static Field create_field(const typename PrimitiveTypeTraits::NearestFieldType& data) { - auto f = Field(PrimitiveTypeTraits::NearestPrimitiveType); - f.template create_concrete::NearestPrimitiveType>(data); + static Field create_field(const typename PrimitiveTypeTraits::CppType& data) { + auto f = Field(T); + f.template create_concrete(data); return f; } template - static Field create_field(typename PrimitiveTypeTraits::NearestFieldType&& data) { - auto f = Field(PrimitiveTypeTraits::NearestPrimitiveType); - f.template create_concrete::NearestPrimitiveType>( - std::forward::NearestFieldType>(data)); + static Field create_field(typename PrimitiveTypeTraits::CppType&& data) { + auto f = Field(T); + f.template create_concrete(std::move(data)); return f; } /** Despite the presence of a template constructor, this constructor is still needed, * since, in its absence, the compiler will still generate the default constructor. */ - Field(const Field& rhs) { create(rhs); } + Field(const Field& rhs); - Field(Field&& rhs) { create(std::move(rhs)); } + Field(Field&& rhs); - Field& operator=(const Field& rhs) { - if (this != &rhs) { - if (type != rhs.type) { - destroy(); - create(rhs); - } else { - assign(rhs); /// This assigns string or vector without deallocation of existing buffer. - } - } - return *this; - } + Field& operator=(const Field& rhs); bool is_complex_field() const { return type == PrimitiveType::TYPE_ARRAY || type == PrimitiveType::TYPE_MAP || @@ -451,12 +369,24 @@ class Field { case PrimitiveType::TYPE_DATETIME: case PrimitiveType::TYPE_BIGINT: return get() <=> rhs.get(); + case PrimitiveType::TYPE_BOOLEAN: + return get() <=> rhs.get(); + case PrimitiveType::TYPE_TINYINT: + return get() <=> rhs.get(); + case PrimitiveType::TYPE_SMALLINT: + return get() <=> rhs.get(); + case PrimitiveType::TYPE_INT: + return get() <=> rhs.get(); case PrimitiveType::TYPE_LARGEINT: return get() <=> rhs.get(); case PrimitiveType::TYPE_IPV6: return get() <=> rhs.get(); case PrimitiveType::TYPE_IPV4: return get() <=> rhs.get(); + case PrimitiveType::TYPE_FLOAT: + return get() < rhs.get() ? std::strong_ordering::less + : get() == rhs.get() ? std::strong_ordering::equal + : std::strong_ordering::greater; case PrimitiveType::TYPE_TIMEV2: case PrimitiveType::TYPE_DOUBLE: return get() < rhs.get() ? std::strong_ordering::less @@ -479,113 +409,31 @@ class Field { case PrimitiveType::TYPE_DECIMAL256: return get() <=> rhs.get(); default: - throw Exception(Status::FatalError("lhs type not equal with rhs, lhs={}, rhs={}", - get_type_name(), rhs.get_type_name())); - } - } - - template /// Field template parameter may be const or non-const Field. - static void dispatch(F&& f, Field& field) { - switch (field.type) { - case PrimitiveType::TYPE_NULL: - f(field.template get()); - return; - case PrimitiveType::TYPE_DATETIMEV2: - case PrimitiveType::TYPE_TIMESTAMPTZ: - f(field.template get()); - return; - case PrimitiveType::TYPE_DATETIME: - case PrimitiveType::TYPE_DATE: - case PrimitiveType::TYPE_BIGINT: - f(field.template get()); - return; - case PrimitiveType::TYPE_LARGEINT: - f(field.template get()); - return; - case PrimitiveType::TYPE_IPV6: - f(field.template get()); - return; - case PrimitiveType::TYPE_TIMEV2: - case PrimitiveType::TYPE_DOUBLE: - f(field.template get()); - return; - case PrimitiveType::TYPE_STRING: - case PrimitiveType::TYPE_CHAR: - case PrimitiveType::TYPE_VARCHAR: - f(field.template get()); - return; - case PrimitiveType::TYPE_VARBINARY: - f(field.template get()); - return; - case PrimitiveType::TYPE_JSONB: - f(field.template get()); - return; - case PrimitiveType::TYPE_ARRAY: - f(field.template get()); - return; - case PrimitiveType::TYPE_STRUCT: - f(field.template get()); - return; - case PrimitiveType::TYPE_MAP: - f(field.template get()); - return; - case PrimitiveType::TYPE_DECIMAL32: - f(field.template get>()); - return; - case PrimitiveType::TYPE_DECIMAL64: - f(field.template get>()); - return; - case PrimitiveType::TYPE_DECIMALV2: - f(field.template get>()); - return; - case PrimitiveType::TYPE_DECIMAL128I: - f(field.template get>()); - return; - case PrimitiveType::TYPE_DECIMAL256: - f(field.template get>()); - return; - case PrimitiveType::TYPE_VARIANT: - f(field.template get()); - return; - case PrimitiveType::TYPE_BITMAP: - f(field.template get()); - return; - case PrimitiveType::TYPE_HLL: - f(field.template get()); - return; - case PrimitiveType::TYPE_QUANTILE_STATE: - f(field.template get()); - return; - default: - throw Exception( - Status::FatalError("type not supported, type={}", field.get_type_name())); + throw Exception(Status::FatalError("Unsupported type: {}", get_type_name())); } } std::string_view as_string_view() const; - std::string to_string() const; private: std::aligned_union_t, DecimalField, - DecimalField, DecimalField, - DecimalField, BitmapValue, HyperLogLog, QuantileState> + Int128, IPv6, Float64, String, JsonbField, StringView, Array, Tuple, Map, + VariantMap, Decimal32, Decimal64, DecimalV2Value, Decimal128V3, Decimal256, + BitmapValue, HyperLogLog, QuantileState> storage; PrimitiveType type; /// Assuming there was no allocated state or it was deallocated (see destroy). template - void create_concrete(typename PrimitiveTypeTraits::NearestFieldType&& x); + void create_concrete(typename PrimitiveTypeTraits::CppType&& x); template - void create_concrete(const typename PrimitiveTypeTraits::NearestFieldType& x); + void create_concrete(const typename PrimitiveTypeTraits::CppType& x); /// Assuming same types. template - void assign_concrete(typename PrimitiveTypeTraits::NearestFieldType&& x); + void assign_concrete(typename PrimitiveTypeTraits::CppType&& x); template - void assign_concrete(const typename PrimitiveTypeTraits::NearestFieldType& x); + void assign_concrete(const typename PrimitiveTypeTraits::CppType& x); void create(const Field& field); void create(Field&& field); @@ -621,127 +469,6 @@ T get(Field& field) { return field.template get(); } -/// char may be signed or unsigned, and behave identically to signed char or unsigned char, -/// but they are always three different types. -/// signedness of char is different in Linux on x86 and Linux on ARM. -template <> -struct NearestFieldTypeImpl { - using Type = std::conditional_t, Int64, UInt64>; -}; -template <> -struct NearestFieldTypeImpl { - using Type = Int64; -}; -template <> -struct NearestFieldTypeImpl { - using Type = Int64; -}; - -template <> -struct NearestFieldTypeImpl { - using Type = UInt64; -}; -template <> -struct NearestFieldTypeImpl { - using Type = UInt64; -}; - -template <> -struct NearestFieldTypeImpl { - using Type = Int64; -}; -template <> -struct NearestFieldTypeImpl { - using Type = Int64; -}; - -/// long and long long are always different types that may behave identically or not. -/// This is different on Linux and Mac. -template <> -struct NearestFieldTypeImpl { - using Type = Int64; -}; - -template <> -struct NearestFieldTypeImpl { - using Type = DecimalField; -}; -template <> -struct NearestFieldTypeImpl { - using Type = DecimalField; -}; -template <> -struct NearestFieldTypeImpl { - using Type = DecimalField; -}; -template <> -struct NearestFieldTypeImpl { - using Type = DecimalField; -}; -template <> -struct NearestFieldTypeImpl { - using Type = DecimalField; -}; -template <> -struct NearestFieldTypeImpl> { - using Type = DecimalField; -}; -template <> -struct NearestFieldTypeImpl> { - using Type = DecimalField; -}; -template <> -struct NearestFieldTypeImpl> { - using Type = DecimalField; -}; -template <> -struct NearestFieldTypeImpl> { - using Type = DecimalField; -}; -template <> -struct NearestFieldTypeImpl> { - using Type = DecimalField; -}; -template <> -struct NearestFieldTypeImpl { - using Type = Float64; -}; -template <> -struct NearestFieldTypeImpl { - using Type = String; -}; -template <> -struct NearestFieldTypeImpl { - using Type = UInt64; -}; - -template <> -struct NearestFieldTypeImpl { - using Type = String; -}; - -template <> -struct NearestFieldTypeImpl { - using Type = Int128; -}; - -template <> -struct NearestFieldTypeImpl { - using Type = StringViewField; -}; - -template -decltype(auto) cast_to_nearest_field_type(T&& x) { - using U = NearestFieldType>; - if constexpr (std::is_same_v>) { - return U(x.value); - } else if constexpr (std::is_same_v, U>) { - return std::forward(x); - } else { - return U(x); - } -} - } // namespace doris::vectorized template <> diff --git a/be/src/vec/data_types/convert_field_to_type.cpp b/be/src/vec/data_types/convert_field_to_type.cpp index 28947232d5bd38..dd8e27243eb9ac 100644 --- a/be/src/vec/data_types/convert_field_to_type.cpp +++ b/be/src/vec/data_types/convert_field_to_type.cpp @@ -49,6 +49,106 @@ namespace doris::vectorized { #include "common/compile_check_begin.h" + +template /// Field template parameter may be const or non-const Field. +void dispatch(F&& f, const Field& field) { + switch (field.get_type()) { + case PrimitiveType::TYPE_NULL: + f(field.template get()); + return; + case PrimitiveType::TYPE_DATETIMEV2: + f(field.template get::CppType>()); + return; + case PrimitiveType::TYPE_TIMESTAMPTZ: + f(field.template get::CppType>()); + return; + case PrimitiveType::TYPE_DATETIME: + f(field.template get::CppType>()); + return; + case PrimitiveType::TYPE_DATE: + f(field.template get::CppType>()); + return; + case PrimitiveType::TYPE_BOOLEAN: + f(field.template get::CppType>()); + return; + case PrimitiveType::TYPE_TINYINT: + f(field.template get::CppType>()); + return; + case PrimitiveType::TYPE_SMALLINT: + f(field.template get::CppType>()); + return; + case PrimitiveType::TYPE_INT: + f(field.template get::CppType>()); + return; + case PrimitiveType::TYPE_BIGINT: + f(field.template get::CppType>()); + return; + case PrimitiveType::TYPE_LARGEINT: + f(field.template get::CppType>()); + return; + case PrimitiveType::TYPE_IPV6: + f(field.template get::CppType>()); + return; + case PrimitiveType::TYPE_TIMEV2: + f(field.template get::CppType>()); + return; + case PrimitiveType::TYPE_FLOAT: + f(field.template get::CppType>()); + return; + case PrimitiveType::TYPE_DOUBLE: + f(field.template get::CppType>()); + return; + case PrimitiveType::TYPE_STRING: + case PrimitiveType::TYPE_CHAR: + case PrimitiveType::TYPE_VARCHAR: + f(field.template get()); + return; + case PrimitiveType::TYPE_VARBINARY: + f(field.template get::CppType>()); + return; + case PrimitiveType::TYPE_JSONB: + f(field.template get::CppType>()); + return; + case PrimitiveType::TYPE_ARRAY: + f(field.template get::CppType>()); + return; + case PrimitiveType::TYPE_STRUCT: + f(field.template get::CppType>()); + return; + case PrimitiveType::TYPE_MAP: + f(field.template get::CppType>()); + return; + case PrimitiveType::TYPE_DECIMAL32: + f(field.template get::CppType>()); + return; + case PrimitiveType::TYPE_DECIMAL64: + f(field.template get::CppType>()); + return; + case PrimitiveType::TYPE_DECIMALV2: + f(field.template get::CppType>()); + return; + case PrimitiveType::TYPE_DECIMAL128I: + f(field.template get::CppType>()); + return; + case PrimitiveType::TYPE_DECIMAL256: + f(field.template get::CppType>()); + return; + case PrimitiveType::TYPE_VARIANT: + f(field.template get::CppType>()); + return; + case PrimitiveType::TYPE_BITMAP: + f(field.template get::CppType>()); + return; + case PrimitiveType::TYPE_HLL: + f(field.template get::CppType>()); + return; + case PrimitiveType::TYPE_QUANTILE_STATE: + f(field.template get::CppType>()); + return; + default: + throw Exception(Status::FatalError("type not supported, type={}", field.get_type_name())); + } +} /** Checking for a `Field from` of `From` type falls to a range of values of type `To`. * `From` and `To` - numeric types. They can be floating-point types. * `From` is one of UInt64, Int64, Float64, @@ -62,10 +162,10 @@ namespace doris::vectorized { class FieldVisitorToStringSimple : public StaticVisitor { public: template - String apply(const typename PrimitiveTypeTraits::NearestFieldType& x) const { + String apply(const typename PrimitiveTypeTraits::CppType& x) const { if constexpr (T == TYPE_NULL) { return "NULL"; - } else if constexpr (T == TYPE_BIGINT || T == TYPE_DOUBLE) { + } else if constexpr (is_int_or_bool(T) && T != TYPE_LARGEINT) { return std::to_string(x); } else if constexpr (is_string_type(T)) { return x; @@ -78,7 +178,12 @@ class FieldVisitorToStringSimple : public StaticVisitor { class FieldVisitorToJsonb : public StaticVisitor { public: void operator()(const Null& x, JsonbWriter* writer) const { writer->writeNull(); } - void operator()(const UInt64& x, JsonbWriter* writer) const { writer->writeInt64(x); } + void operator()(const DateV2Value& x, JsonbWriter* writer) const { + writer->writeInt64(*(UInt64*)&x); + } + void operator()(const TimestampTzValue& x, JsonbWriter* writer) const { + writer->writeInt64(*(UInt64*)&x); + } void operator()(const UInt128& x, JsonbWriter* writer) const { writer->writeInt128(int128_t(x)); } @@ -86,14 +191,19 @@ class FieldVisitorToJsonb : public StaticVisitor { writer->writeInt128(int128_t(x)); } void operator()(const IPv6& x, JsonbWriter* writer) const { writer->writeInt128(int128_t(x)); } + void operator()(const bool& x, JsonbWriter* writer) const { writer->writeBool(x); } + void operator()(const Int8& x, JsonbWriter* writer) const { writer->writeInt8(x); } + void operator()(const Int16& x, JsonbWriter* writer) const { writer->writeInt16(x); } + void operator()(const Int32& x, JsonbWriter* writer) const { writer->writeInt32(x); } void operator()(const Int64& x, JsonbWriter* writer) const { writer->writeInt64(x); } + void operator()(const Float32& x, JsonbWriter* writer) const { writer->writeFloat(x); } void operator()(const Float64& x, JsonbWriter* writer) const { writer->writeDouble(x); } void operator()(const String& x, JsonbWriter* writer) const { writer->writeStartString(); writer->writeString(x); writer->writeEndString(); } - void operator()(const StringViewField& x, JsonbWriter* writer) const { + void operator()(const StringView& x, JsonbWriter* writer) const { writer->writeStartString(); writer->writeString(x.data(), x.size()); writer->writeEndString(); @@ -108,19 +218,19 @@ class FieldVisitorToJsonb : public StaticVisitor { void operator()(const Tuple& x, JsonbWriter* writer) const { throw doris::Exception(doris::ErrorCode::NOT_IMPLEMENTED_ERROR, "Not implemeted"); } - void operator()(const DecimalField& x, JsonbWriter* writer) const { + void operator()(const Decimal32& x, JsonbWriter* writer) const { throw doris::Exception(doris::ErrorCode::NOT_IMPLEMENTED_ERROR, "Not implemeted"); } - void operator()(const DecimalField& x, JsonbWriter* writer) const { + void operator()(const Decimal64& x, JsonbWriter* writer) const { throw doris::Exception(doris::ErrorCode::NOT_IMPLEMENTED_ERROR, "Not implemeted"); } - void operator()(const DecimalField& x, JsonbWriter* writer) const { + void operator()(const DecimalV2Value& x, JsonbWriter* writer) const { throw doris::Exception(doris::ErrorCode::NOT_IMPLEMENTED_ERROR, "Not implemeted"); } - void operator()(const DecimalField& x, JsonbWriter* writer) const { + void operator()(const Decimal128V3& x, JsonbWriter* writer) const { throw doris::Exception(doris::ErrorCode::NOT_IMPLEMENTED_ERROR, "Not implemeted"); } - void operator()(const DecimalField& x, JsonbWriter* writer) const { + void operator()(const Decimal256& x, JsonbWriter* writer) const { throw doris::Exception(doris::ErrorCode::NOT_IMPLEMENTED_ERROR, "Not implemeted"); } void operator()(const doris::QuantileState& x, JsonbWriter* writer) const { @@ -144,8 +254,7 @@ void FieldVisitorToJsonb::operator()(const Array& x, JsonbWriter* writer) const const size_t size = x.size(); writer->writeStartArray(); for (size_t i = 0; i < size; ++i) { - Field::dispatch([writer](const auto& value) { FieldVisitorToJsonb()(value, writer); }, - x[i]); + dispatch([writer](const auto& value) { FieldVisitorToJsonb()(value, writer); }, x[i]); } writer->writeEndArray(); } @@ -181,6 +290,36 @@ bool ConvertNumeric::cast(const Float64& from, UInt8& to) { return CastToBool::from_number(from, to, params); } +template <> +bool ConvertNumeric::cast(const UInt8& from, UInt8& to) { + to = from; + return true; +} + +template <> +bool ConvertNumeric::cast(const Float32& from, UInt8& to) { + auto params = create_cast_params(); + return CastToBool::from_number(from, to, params); +} + +template <> +bool ConvertNumeric::cast(const Int8& from, UInt8& to) { + auto params = create_cast_params(); + return CastToBool::from_number(from, to, params); +} + +template <> +bool ConvertNumeric::cast(const Int16& from, UInt8& to) { + auto params = create_cast_params(); + return CastToBool::from_number(from, to, params); +} + +template <> +bool ConvertNumeric::cast(const Int32& from, UInt8& to) { + auto params = create_cast_params(); + return CastToBool::from_number(from, to, params); +} + // cast to tinyint template <> bool ConvertNumeric::cast(const Int64& from, Int8& to) { @@ -200,6 +339,36 @@ bool ConvertNumeric::cast(const Float64& from, Int8& to) { return CastToInt::from_float(from, to, params); } +template <> +bool ConvertNumeric::cast(const Float32& from, Int8& to) { + auto params = create_cast_params(); + return CastToInt::from_float(from, to, params); +} + +template <> +bool ConvertNumeric::cast(const UInt8& from, Int8& to) { + auto params = create_cast_params(); + return CastToInt::from_bool(from, to, params); +} + +template <> +bool ConvertNumeric::cast(const Int8& from, Int8& to) { + auto params = create_cast_params(); + return CastToInt::from_int(from, to, params); +} + +template <> +bool ConvertNumeric::cast(const Int16& from, Int8& to) { + auto params = create_cast_params(); + return CastToInt::from_int(from, to, params); +} + +template <> +bool ConvertNumeric::cast(const Int32& from, Int8& to) { + auto params = create_cast_params(); + return CastToInt::from_int(from, to, params); +} + // cast to smallint template <> bool ConvertNumeric::cast(const Int64& from, Int16& to) { @@ -219,6 +388,36 @@ bool ConvertNumeric::cast(const Float64& from, Int16& to) { return CastToInt::from_float(from, to, params); } +template <> +bool ConvertNumeric::cast(const Float32& from, Int16& to) { + auto params = create_cast_params(); + return CastToInt::from_float(from, to, params); +} + +template <> +bool ConvertNumeric::cast(const UInt8& from, Int16& to) { + auto params = create_cast_params(); + return CastToInt::from_bool(from, to, params); +} + +template <> +bool ConvertNumeric::cast(const Int8& from, Int16& to) { + auto params = create_cast_params(); + return CastToInt::from_int(from, to, params); +} + +template <> +bool ConvertNumeric::cast(const Int16& from, Int16& to) { + auto params = create_cast_params(); + return CastToInt::from_int(from, to, params); +} + +template <> +bool ConvertNumeric::cast(const Int32& from, Int16& to) { + auto params = create_cast_params(); + return CastToInt::from_int(from, to, params); +} + // cast to int template <> bool ConvertNumeric::cast(const Int64& from, Int32& to) { @@ -238,6 +437,36 @@ bool ConvertNumeric::cast(const Float64& from, Int32& to) { return CastToInt::from_float(from, to, params); } +template <> +bool ConvertNumeric::cast(const Float32& from, Int32& to) { + auto params = create_cast_params(); + return CastToInt::from_float(from, to, params); +} + +template <> +bool ConvertNumeric::cast(const UInt8& from, Int32& to) { + auto params = create_cast_params(); + return CastToInt::from_bool(from, to, params); +} + +template <> +bool ConvertNumeric::cast(const Int8& from, Int32& to) { + auto params = create_cast_params(); + return CastToInt::from_int(from, to, params); +} + +template <> +bool ConvertNumeric::cast(const Int32& from, Int32& to) { + auto params = create_cast_params(); + return CastToInt::from_int(from, to, params); +} + +template <> +bool ConvertNumeric::cast(const Int16& from, Int32& to) { + auto params = create_cast_params(); + return CastToInt::from_int(from, to, params); +} + // cast to bigint template <> bool ConvertNumeric::cast(const Int64& from, Int64& to) { @@ -257,6 +486,36 @@ bool ConvertNumeric::cast(const Float64& from, Int64& to) { return CastToInt::from_float(from, to, params); } +template <> +bool ConvertNumeric::cast(const Float32& from, Int64& to) { + auto params = create_cast_params(); + return CastToInt::from_float(from, to, params); +} + +template <> +bool ConvertNumeric::cast(const UInt8& from, Int64& to) { + auto params = create_cast_params(); + return CastToInt::from_bool(from, to, params); +} + +template <> +bool ConvertNumeric::cast(const Int8& from, Int64& to) { + auto params = create_cast_params(); + return CastToInt::from_int(from, to, params); +} + +template <> +bool ConvertNumeric::cast(const Int32& from, Int64& to) { + auto params = create_cast_params(); + return CastToInt::from_int(from, to, params); +} + +template <> +bool ConvertNumeric::cast(const Int16& from, Int64& to) { + auto params = create_cast_params(); + return CastToInt::from_int(from, to, params); +} + // cast to largeint template <> bool ConvertNumeric::cast(const Int64& from, Int128& to) { @@ -276,6 +535,36 @@ bool ConvertNumeric::cast(const Float64& from, Int128& to) { return CastToInt::from_float(from, to, params); } +template <> +bool ConvertNumeric::cast(const Float32& from, Int128& to) { + auto params = create_cast_params(); + return CastToInt::from_float(from, to, params); +} + +template <> +bool ConvertNumeric::cast(const UInt8& from, Int128& to) { + auto params = create_cast_params(); + return CastToInt::from_bool(from, to, params); +} + +template <> +bool ConvertNumeric::cast(const Int8& from, Int128& to) { + auto params = create_cast_params(); + return CastToInt::from_int(from, to, params); +} + +template <> +bool ConvertNumeric::cast(const Int16& from, Int128& to) { + auto params = create_cast_params(); + return CastToInt::from_int(from, to, params); +} + +template <> +bool ConvertNumeric::cast(const Int32& from, Int128& to) { + auto params = create_cast_params(); + return CastToInt::from_int(from, to, params); +} + // cast to float template <> bool ConvertNumeric::cast(const Int64& from, Float32& to) { @@ -295,6 +584,36 @@ bool ConvertNumeric::cast(const Float64& from, Float32& to) { return CastToFloat::from_float(from, to, params); } +template <> +bool ConvertNumeric::cast(const Float32& from, Float32& to) { + auto params = create_cast_params(); + return CastToFloat::from_float(from, to, params); +} + +template <> +bool ConvertNumeric::cast(const UInt8& from, Float32& to) { + auto params = create_cast_params(); + return CastToFloat::from_bool(from, to, params); +} + +template <> +bool ConvertNumeric::cast(const Int8& from, Float32& to) { + auto params = create_cast_params(); + return CastToFloat::from_int(from, to, params); +} + +template <> +bool ConvertNumeric::cast(const Int16& from, Float32& to) { + auto params = create_cast_params(); + return CastToFloat::from_int(from, to, params); +} + +template <> +bool ConvertNumeric::cast(const Int32& from, Float32& to) { + auto params = create_cast_params(); + return CastToFloat::from_int(from, to, params); +} + // cast to double template <> bool ConvertNumeric::cast(const Int64& from, Float64& to) { @@ -314,6 +633,36 @@ bool ConvertNumeric::cast(const Float64& from, Float64& to) { return CastToFloat::from_float(from, to, params); } +template <> +bool ConvertNumeric::cast(const Float32& from, Float64& to) { + auto params = create_cast_params(); + return CastToFloat::from_float(from, to, params); +} + +template <> +bool ConvertNumeric::cast(const UInt8& from, Float64& to) { + auto params = create_cast_params(); + return CastToFloat::from_bool(from, to, params); +} + +template <> +bool ConvertNumeric::cast(const Int8& from, Float64& to) { + auto params = create_cast_params(); + return CastToFloat::from_int(from, to, params); +} + +template <> +bool ConvertNumeric::cast(const Int16& from, Float64& to) { + auto params = create_cast_params(); + return CastToFloat::from_int(from, to, params); +} + +template <> +bool ConvertNumeric::cast(const Int32& from, Float64& to) { + auto params = create_cast_params(); + return CastToFloat::from_int(from, to, params); +} + namespace { template Field convert_numeric_type_impl(const Field& from) { @@ -332,6 +681,16 @@ void convert_numric_type(const Field& from, const IDataType& type, Field* to) { *to = convert_numeric_type_impl(from); } else if (from.get_type() == PrimitiveType::TYPE_LARGEINT) { *to = convert_numeric_type_impl(from); + } else if (from.get_type() == PrimitiveType::TYPE_TINYINT) { + *to = convert_numeric_type_impl(from); + } else if (from.get_type() == PrimitiveType::TYPE_SMALLINT) { + *to = convert_numeric_type_impl(from); + } else if (from.get_type() == PrimitiveType::TYPE_INT) { + *to = convert_numeric_type_impl(from); + } else if (from.get_type() == PrimitiveType::TYPE_FLOAT) { + *to = convert_numeric_type_impl(from); + } else if (from.get_type() == PrimitiveType::TYPE_BOOLEAN) { + *to = convert_numeric_type_impl(from); } else { throw doris::Exception(ErrorCode::INVALID_ARGUMENT, "Type mismatch in IN or VALUES section. Expected: {}. Got: {}", @@ -361,8 +720,7 @@ void convert_field_to_typeImpl(const Field& src, const IDataType& type, return; } JsonbWriter writer; - Field::dispatch([&writer](const auto& value) { FieldVisitorToJsonb()(value, &writer); }, - src); + dispatch([&writer](const auto& value) { FieldVisitorToJsonb()(value, &writer); }, src); *to = Field::create_field( JsonbField(writer.getOutput()->getBuffer(), cast_set(writer.getOutput()->getSize()))); diff --git a/be/src/vec/data_types/data_type_date.h b/be/src/vec/data_types/data_type_date.h index 8e57f8a0485ff6..b3667047b0de47 100644 --- a/be/src/vec/data_types/data_type_date.h +++ b/be/src/vec/data_types/data_type_date.h @@ -64,7 +64,7 @@ class DataTypeDate final : public DataTypeNumberBase { VecDateTimeValue value; if (value.from_date_str(node.date_literal.value.c_str(), node.date_literal.value.size())) { value.cast_to_date(); - return Field::create_field(Int64(*reinterpret_cast<__int64_t*>(&value))); + return Field::create_field(std::move(value)); } else { throw doris::Exception(doris::ErrorCode::INVALID_ARGUMENT, "Invalid value: {} for type Date", node.date_literal.value); diff --git a/be/src/vec/data_types/data_type_date_or_datetime_v2.h b/be/src/vec/data_types/data_type_date_or_datetime_v2.h index 82247777696428..22a1e4e342bf3b 100644 --- a/be/src/vec/data_types/data_type_date_or_datetime_v2.h +++ b/be/src/vec/data_types/data_type_date_or_datetime_v2.h @@ -71,7 +71,7 @@ class DataTypeDateV2 final : public DataTypeNumberBase value; if (value.from_date_str(node.date_literal.value.c_str(), cast_set(node.date_literal.value.size()))) { - return Field::create_field(value.to_date_int_val()); + return Field::create_field(std::move(value)); } else { throw doris::Exception(doris::ErrorCode::INVALID_ARGUMENT, "Invalid value: {} for type DateV2", node.date_literal.value); @@ -158,7 +158,7 @@ class DataTypeDateTimeV2 final : public DataTypeNumberBase(node.date_literal.value.size()), scale)) { - return Field::create_field(value.to_date_int_val()); + return Field::create_field(std::move(value)); } else { throw doris::Exception(doris::ErrorCode::INVALID_ARGUMENT, "Invalid value: {} for type DateTimeV2({})", diff --git a/be/src/vec/data_types/data_type_date_time.h b/be/src/vec/data_types/data_type_date_time.h index 6ce45dd45ef9d5..7f878587be54c3 100644 --- a/be/src/vec/data_types/data_type_date_time.h +++ b/be/src/vec/data_types/data_type_date_time.h @@ -96,7 +96,7 @@ class DataTypeDateTime final : public DataTypeNumberBase(Int64(*reinterpret_cast<__int64_t*>(&value))); + return Field::create_field(std::move(value)); } else { throw doris::Exception(doris::ErrorCode::INVALID_ARGUMENT, "Invalid value: {} for type DateTime", node.date_literal.value); diff --git a/be/src/vec/data_types/data_type_decimal.cpp b/be/src/vec/data_types/data_type_decimal.cpp index 4f756f239c8dac..e5d31ca74d5f73 100644 --- a/be/src/vec/data_types/data_type_decimal.cpp +++ b/be/src/vec/data_types/data_type_decimal.cpp @@ -211,7 +211,7 @@ void DataTypeDecimal::to_pb_column_meta(PColumnMeta* col_meta) const { template Field DataTypeDecimal::get_default() const { - return Field::create_field(DecimalField(FieldType(), scale)); + return Field::create_field(typename PrimitiveTypeTraits::CppType()); } template diff --git a/be/src/vec/data_types/data_type_decimal.h b/be/src/vec/data_types/data_type_decimal.h index 8163198eb2dbb2..332125ec7ee6fe 100644 --- a/be/src/vec/data_types/data_type_decimal.h +++ b/be/src/vec/data_types/data_type_decimal.h @@ -258,22 +258,22 @@ class DataTypeDecimal final : public IDataType, public DecimalScaleInfo { if (value.parse_from_str(node.decimal_literal.value.c_str(), cast_set(node.decimal_literal.value.size())) == E_DEC_OK) { - return Field::create_field( - DecimalField(value.value(), value.scale())); + return Field::create_field(std::move(value)); } else { throw doris::Exception(doris::ErrorCode::INVALID_ARGUMENT, "Invalid decimal(scale: {}) value: {}", value.scale(), node.decimal_literal.value); } + } else { + // decimal + FieldType val; + if (!parse_from_string(node.decimal_literal.value, &val)) { + throw doris::Exception(doris::ErrorCode::INVALID_ARGUMENT, + "Invalid value: {} for type {}", node.decimal_literal.value, + do_get_name()); + }; + return Field::create_field(std::move(val)); } - // decimal - FieldType val; - if (!parse_from_string(node.decimal_literal.value, &val)) { - throw doris::Exception(doris::ErrorCode::INVALID_ARGUMENT, - "Invalid value: {} for type {}", node.decimal_literal.value, - do_get_name()); - }; - return Field::create_field(DecimalField(val, scale)); } MutableColumnPtr create_column() const override; diff --git a/be/src/vec/data_types/data_type_number_base.cpp b/be/src/vec/data_types/data_type_number_base.cpp index 8972c50e37c574..3ea02da0e6eb9a 100644 --- a/be/src/vec/data_types/data_type_number_base.cpp +++ b/be/src/vec/data_types/data_type_number_base.cpp @@ -67,7 +67,7 @@ std::string DataTypeNumberBase::to_string( template Field DataTypeNumberBase::get_default() const { - return Field::create_field(typename PrimitiveTypeTraits::NearestFieldType()); + return Field::create_field(typename PrimitiveTypeTraits::CppType()); } template @@ -88,11 +88,11 @@ Field DataTypeNumberBase::get_field(const TExprNode& node) const { } if constexpr (is_int(T)) { return Field::create_field( - typename PrimitiveTypeTraits::NearestFieldType(node.int_literal.value)); + typename PrimitiveTypeTraits::CppType(node.int_literal.value)); } if constexpr (is_float_or_double(T) || T == TYPE_TIMEV2 || T == TYPE_TIME) { return Field::create_field( - typename PrimitiveTypeTraits::NearestFieldType(node.float_literal.value)); + typename PrimitiveTypeTraits::CppType(node.float_literal.value)); } throw Exception(Status::FatalError("__builtin_unreachable")); } diff --git a/be/src/vec/data_types/data_type_timestamptz.cpp b/be/src/vec/data_types/data_type_timestamptz.cpp index 54dce565c607ee..76d89ca2fafaf6 100644 --- a/be/src/vec/data_types/data_type_timestamptz.cpp +++ b/be/src/vec/data_types/data_type_timestamptz.cpp @@ -34,7 +34,7 @@ Field DataTypeTimeStampTz::get_field(const TExprNode& node) const { "Invalid value: {} for type TimeStampTz({})", node.date_literal.value, _scale); } else { - return Field::create_field(res.to_date_int_val()); + return Field::create_field(res); } } 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 f325d0aba47cee..481d08b905cc19 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 @@ -866,7 +866,7 @@ const uint8_t* DataTypeNumberSerDe::deserialize_binary_to_field(const uint8_t UInt64 v = unaligned_load(data); info.precision = -1; info.scale = static_cast(scale); - field = Field::create_field(v); + field = Field::create_field(*(typename PrimitiveTypeTraits::CppType*)&v); data += sizeof(UInt64); } else { throw doris::Exception(ErrorCode::NOT_IMPLEMENTED_ERROR, diff --git a/be/src/vec/exec/format/parquet/parquet_predicate.h b/be/src/vec/exec/format/parquet/parquet_predicate.h index 7a97e057da2334..c390a50cb3793e 100644 --- a/be/src/vec/exec/format/parquet/parquet_predicate.h +++ b/be/src/vec/exec/format/parquet/parquet_predicate.h @@ -311,8 +311,8 @@ class ParquetPredicate { auto logical_prim_type = logical_data_type->get_primitive_type(); if (logical_prim_type == TYPE_FLOAT) { - auto& min_value = min_field->get::NearestFieldType>(); - auto& max_value = max_field->get::NearestFieldType>(); + auto& min_value = min_field->get::CppType>(); + auto& max_value = max_field->get::CppType>(); if (std::isnan(min_value) || std::isnan(max_value)) { return Status::DataQualityError("Can not use this parquet min/max value."); @@ -325,8 +325,8 @@ class ParquetPredicate { max_value = 0.0F; } } else if (logical_prim_type == TYPE_DOUBLE) { - auto& min_value = min_field->get::NearestFieldType>(); - auto& max_value = max_field->get::NearestFieldType>(); + auto& min_value = min_field->get::CppType>(); + auto& max_value = max_field->get::CppType>(); if (std::isnan(min_value) || std::isnan(max_value)) { return Status::DataQualityError("Can not use this parquet min/max value."); @@ -340,10 +340,8 @@ class ParquetPredicate { } } else if (col_schema->parquet_schema.type == tparquet::Type::type::INT96 || logical_prim_type == TYPE_DATETIMEV2) { - auto min_value = - min_field->get::NearestFieldType>(); - auto max_value = - min_field->get::NearestFieldType>(); + auto min_value = min_field->get::CppType>(); + auto max_value = min_field->get::CppType>(); // From Trino: Parquet INT96 timestamp values were compared incorrectly // for the purposes of producing statistics by older parquet writers, diff --git a/be/src/vec/exprs/vcondition_expr.cpp b/be/src/vec/exprs/vcondition_expr.cpp index 068a2d74190421..c70b31a060fad6 100644 --- a/be/src/vec/exprs/vcondition_expr.cpp +++ b/be/src/vec/exprs/vcondition_expr.cpp @@ -213,7 +213,7 @@ Status VectorizedIfExpr::execute_for_null_then_else(Block& block, arg_cond.column)); } } else if (cond_const_col) { - if (cond_const_col->get_value()) { // if(true, null, else) + if (cond_const_col->get_value()) { // if(true, null, else) block.get_by_position(result).column = block.get_by_position(result).type->create_column()->clone_resized( input_rows_count); @@ -251,7 +251,7 @@ Status VectorizedIfExpr::execute_for_null_then_else(Block& block, std::move(negated_null_map))); } } else if (cond_const_col) { - if (cond_const_col->get_value()) { // if(true, then, NULL) + if (cond_const_col->get_value()) { // if(true, then, NULL) block.get_by_position(result).column = make_nullable_column_if_not(arg_then.column); } else { // if(false, then, NULL) block.get_by_position(result).column = @@ -424,7 +424,7 @@ Status VectorizedIfExpr::_execute_impl_internal(Block& block, const ColumnNumber if (cond_const_col) { block.get_by_position(result).column = - cond_const_col->get_value() ? arg_then.column : arg_else.column; + cond_const_col->get_value() ? arg_then.column : arg_else.column; return Status::OK(); } diff --git a/be/src/vec/exprs/vexpr.cpp b/be/src/vec/exprs/vexpr.cpp index 580d647d71af9c..a28b963cd049eb 100644 --- a/be/src/vec/exprs/vexpr.cpp +++ b/be/src/vec/exprs/vexpr.cpp @@ -191,171 +191,146 @@ TExprNode create_texpr_node_from(const vectorized::Field& field, const Primitive TExprNode node; switch (type) { case TYPE_BOOLEAN: { - const auto& storage = static_cast( - field.get::NearestFieldType>()); + const auto& storage = + static_cast(field.get::CppType>()); THROW_IF_ERROR(create_texpr_literal_node(&storage, &node)); break; } case TYPE_TINYINT: { const auto& storage = static_cast( - field.get::NearestFieldType>()); + field.get::CppType>()); THROW_IF_ERROR(create_texpr_literal_node(&storage, &node)); break; } case TYPE_SMALLINT: { const auto& storage = static_cast( - field.get::NearestFieldType>()); + field.get::CppType>()); THROW_IF_ERROR(create_texpr_literal_node(&storage, &node)); break; } case TYPE_INT: { - const auto& storage = static_cast( - field.get::NearestFieldType>()); + const auto& storage = + static_cast(field.get::CppType>()); THROW_IF_ERROR(create_texpr_literal_node(&storage, &node)); break; } case TYPE_BIGINT: { const auto& storage = static_cast( - field.get::NearestFieldType>()); + field.get::CppType>()); THROW_IF_ERROR(create_texpr_literal_node(&storage, &node)); break; } case TYPE_LARGEINT: { const auto& storage = static_cast( - field.get::NearestFieldType>()); + field.get::CppType>()); THROW_IF_ERROR(create_texpr_literal_node(&storage, &node)); break; } case TYPE_FLOAT: { - const auto& storage = static_cast( - field.get::NearestFieldType>()); + const auto& storage = + static_cast(field.get::CppType>()); THROW_IF_ERROR(create_texpr_literal_node(&storage, &node)); break; } case TYPE_DOUBLE: { const auto& storage = static_cast( - field.get::NearestFieldType>()); + field.get::CppType>()); THROW_IF_ERROR(create_texpr_literal_node(&storage, &node)); break; } case TYPE_DATEV2: { - DateV2Value storage = - binary_cast>(static_cast( - field.get::NearestFieldType>())); + const auto& storage = field.get::CppType>(); THROW_IF_ERROR(create_texpr_literal_node(&storage, &node)); break; } case TYPE_DATETIMEV2: { - DateV2Value storage = binary_cast>( - field.get::NearestFieldType>()); - + const auto& storage = field.get::CppType>(); THROW_IF_ERROR( create_texpr_literal_node(&storage, &node, precision, scale)); break; } case TYPE_TIMESTAMPTZ: { - TimestampTzValue storage = binary_cast( - field.get::NearestFieldType>()); + const auto& storage = field.get::CppType>(); THROW_IF_ERROR( create_texpr_literal_node(&storage, &node, precision, scale)); break; } case TYPE_DATE: { - VecDateTimeValue storage = binary_cast( - field.get::NearestFieldType>()); + const auto& storage = field.get::CppType>(); THROW_IF_ERROR(create_texpr_literal_node(&storage, &node)); break; } case TYPE_DATETIME: { - VecDateTimeValue storage = binary_cast( - field.get::NearestFieldType>()); + const auto& storage = field.get::CppType>(); THROW_IF_ERROR(create_texpr_literal_node(&storage, &node)); break; } case TYPE_DECIMALV2: { - const auto& storage = - field.get::NearestFieldType>() - .get_value(); + const auto& storage = field.get::CppType>(); THROW_IF_ERROR( create_texpr_literal_node(&storage, &node, precision, scale)); break; } case TYPE_DECIMAL32: { - const auto& storage = - field.get::NearestFieldType>() - .get_value(); + const auto& storage = field.get::CppType>(); THROW_IF_ERROR( create_texpr_literal_node(&storage, &node, precision, scale)); break; } case TYPE_DECIMAL64: { - const auto& storage = - field.get::NearestFieldType>() - .get_value(); + const auto& storage = field.get::CppType>(); THROW_IF_ERROR( create_texpr_literal_node(&storage, &node, precision, scale)); break; } case TYPE_DECIMAL128I: { - const auto& storage = - field.get::NearestFieldType>() - .get_value(); + const auto& storage = field.get::CppType>(); THROW_IF_ERROR( create_texpr_literal_node(&storage, &node, precision, scale)); break; } case TYPE_DECIMAL256: { - const auto& storage = - field.get::NearestFieldType>() - .get_value(); + const auto& storage = field.get::CppType>(); THROW_IF_ERROR( create_texpr_literal_node(&storage, &node, precision, scale)); break; } case TYPE_CHAR: { - const auto& storage = - field.get::NearestFieldType>(); + const auto& storage = field.get::CppType>(); THROW_IF_ERROR(create_texpr_literal_node(&storage, &node)); break; } case TYPE_VARCHAR: { - const auto& storage = - field.get::NearestFieldType>(); + const auto& storage = field.get::CppType>(); THROW_IF_ERROR(create_texpr_literal_node(&storage, &node)); break; } case TYPE_STRING: { - const auto& storage = - field.get::NearestFieldType>(); + const auto& storage = field.get::CppType>(); THROW_IF_ERROR(create_texpr_literal_node(&storage, &node)); break; } case TYPE_IPV4: { - const auto& storage = - field.get::NearestFieldType>(); + const auto& storage = field.get::CppType>(); THROW_IF_ERROR(create_texpr_literal_node(&storage, &node)); break; } case TYPE_IPV6: { - const auto& storage = - field.get::NearestFieldType>(); + const auto& storage = field.get::CppType>(); THROW_IF_ERROR(create_texpr_literal_node(&storage, &node)); break; } case TYPE_TIMEV2: { - const auto& storage = - field.get::NearestFieldType>(); + const auto& storage = field.get::CppType>(); THROW_IF_ERROR(create_texpr_literal_node(&storage, &node)); break; } case TYPE_VARBINARY: { - const auto& svf = field.get(); - const std::string& storage = svf.get_string(); - THROW_IF_ERROR(create_texpr_literal_node(&storage, &node)); + const auto& svf = field.get::CppType>(); + THROW_IF_ERROR(create_texpr_literal_node(&svf, &node)); break; } default: diff --git a/be/src/vec/functions/binary_arithmetic.h b/be/src/vec/functions/binary_arithmetic.h index 1f4e3a2391389b..42aaedbd8994b0 100644 --- a/be/src/vec/functions/binary_arithmetic.h +++ b/be/src/vec/functions/binary_arithmetic.h @@ -429,12 +429,22 @@ class FunctionPlusMinus : public IFunction { auto max_and_multiplier = Impl::get_max_and_multiplier( type_left, type_right, type_result); + typename PrimitiveTypeTraits::ColumnItemType + left_tmp; + auto left_src = + column_left_ptr + ->template get_value(); + std::memcpy(&left_tmp, &left_src, sizeof(left_src)); + typename PrimitiveTypeTraits::ColumnItemType + right_tmp; + auto right_src = + column_right_ptr + ->template get_value(); + std::memcpy(&right_tmp, &right_src, sizeof(right_src)); column_result = Impl::constant_constant( - column_left_ptr->template get_value(), - column_right_ptr->template get_value(), - type_left, type_right, max_and_multiplier.first, - max_and_multiplier.second, type_result, - check_overflow_for_decimal); + left_tmp, right_tmp, type_left, type_right, + max_and_multiplier.first, max_and_multiplier.second, + type_result, check_overflow_for_decimal); return true; })) { throw Exception(ErrorCode::INTERNAL_ERROR, @@ -449,8 +459,10 @@ class FunctionPlusMinus : public IFunction { type_left, type_right, type_result); column_result = Impl::constant_constant( - column_left_ptr->template get_value(), - column_right_ptr->template get_value(), + column_left_ptr + ->template get_value(), + column_right_ptr + ->template get_value(), type_left, type_right, max_and_multiplier.first, max_and_multiplier.second, type_result, check_overflow_for_decimal); @@ -463,8 +475,8 @@ class FunctionPlusMinus : public IFunction { } } else { column_result = Impl::constant_constant( - column_left_ptr->template get_value(), - column_right_ptr->template get_value()); + column_left_ptr->template get_value(), + column_right_ptr->template get_value()); } return ColumnConst::create(std::move(column_result), column_left->size()); @@ -484,12 +496,14 @@ class FunctionPlusMinus : public IFunction { remove_nullable(res_data_type).get(), [&](const auto& type_result) { auto max_and_multiplier = Impl::get_max_and_multiplier( type_left, type_right, type_result); - res = Impl::vector_constant( - column_left->get_ptr(), - column_right_ptr->template get_value(), - type_left, type_right, max_and_multiplier.first, - max_and_multiplier.second, type_result, - check_overflow_for_decimal); + typename PrimitiveTypeTraits::ColumnItemType tmp; + auto src = column_right_ptr + ->template get_value(); + std::memcpy(&tmp, &src, sizeof(src)); + res = Impl::vector_constant(column_left->get_ptr(), tmp, type_left, + type_right, max_and_multiplier.first, + max_and_multiplier.second, type_result, + check_overflow_for_decimal); return true; })) { throw Exception(ErrorCode::INTERNAL_ERROR, @@ -504,7 +518,8 @@ class FunctionPlusMinus : public IFunction { type_left, type_right, type_result); res = Impl::vector_constant( column_left->get_ptr(), - column_right_ptr->template get_value(), + column_right_ptr + ->template get_value(), type_left, type_right, max_and_multiplier.first, max_and_multiplier.second, type_result, check_overflow_for_decimal); @@ -518,7 +533,7 @@ class FunctionPlusMinus : public IFunction { } else { res = Impl::vector_constant( column_left->get_ptr(), - column_right_ptr->template get_value()); + column_right_ptr->template get_value()); } return res; } @@ -537,11 +552,14 @@ class FunctionPlusMinus : public IFunction { remove_nullable(res_data_type).get(), [&](const auto& type_result) { auto max_and_multiplier = Impl::get_max_and_multiplier( type_left, type_right, type_result); - res = Impl::constant_vector( - column_left_ptr->template get_value(), - column_right->get_ptr(), type_left, type_right, - max_and_multiplier.first, max_and_multiplier.second, - type_result, check_overflow_for_decimal); + typename PrimitiveTypeTraits::ColumnItemType tmp; + auto src = column_left_ptr + ->template get_value(); + std::memcpy(&tmp, &src, sizeof(src)); + res = Impl::constant_vector(tmp, column_right->get_ptr(), type_left, + type_right, max_and_multiplier.first, + max_and_multiplier.second, type_result, + check_overflow_for_decimal); return true; })) { throw Exception(ErrorCode::INTERNAL_ERROR, @@ -555,7 +573,8 @@ class FunctionPlusMinus : public IFunction { auto max_and_multiplier = Impl::get_max_and_multiplier( type_left, type_right, type_result); res = Impl::constant_vector( - column_left_ptr->template get_value(), + column_left_ptr + ->template get_value(), column_right->get_ptr(), type_left, type_right, max_and_multiplier.first, max_and_multiplier.second, type_result, check_overflow_for_decimal); @@ -567,8 +586,9 @@ class FunctionPlusMinus : public IFunction { } } } else { - res = Impl::constant_vector(column_left_ptr->template get_value(), - column_right->get_ptr()); + res = Impl::constant_vector( + column_left_ptr->template get_value(), + column_right->get_ptr()); } return res; } diff --git a/be/src/vec/functions/divide.cpp b/be/src/vec/functions/divide.cpp index b50b12674e245c..7f0cbc7990ea0b 100644 --- a/be/src/vec/functions/divide.cpp +++ b/be/src/vec/functions/divide.cpp @@ -108,11 +108,20 @@ class FunctionDiv : public IFunction { auto max_and_multiplier = Impl::get_max_and_multiplier( type_left, type_right, type_result); + typename PrimitiveTypeTraits::ColumnItemType + left_tmp; + auto left_src = + column_left_ptr->template get_value(); + std::memcpy(&left_tmp, &left_src, sizeof(left_src)); + typename PrimitiveTypeTraits::ColumnItemType + right_tmp; + auto right_src = + column_right_ptr->template get_value(); + std::memcpy(&right_tmp, &right_src, sizeof(right_src)); column_result = Impl::constant_constant( - column_left_ptr->template get_value(), - column_right_ptr->template get_value(), - max_and_multiplier.first, max_and_multiplier.second, - type_result, check_overflow_for_decimal); + left_tmp, right_tmp, max_and_multiplier.first, + max_and_multiplier.second, type_result, + check_overflow_for_decimal); return true; })) { throw Exception(ErrorCode::INTERNAL_ERROR, @@ -125,12 +134,20 @@ class FunctionDiv : public IFunction { remove_nullable(res_data_type).get(), [&](const auto& type_result) { auto max_and_multiplier = Impl::get_max_and_multiplier( type_left, type_right, type_result); - + typename PrimitiveTypeTraits::ColumnItemType + left_tmp; + auto left_src = + column_left_ptr->template get_value(); + std::memcpy(&left_tmp, &left_src, sizeof(left_src)); + typename PrimitiveTypeTraits::ColumnItemType + right_tmp; + auto right_src = + column_right_ptr->template get_value(); + std::memcpy(&right_tmp, &right_src, sizeof(right_src)); column_result = Impl::constant_constant( - column_left_ptr->template get_value(), - column_right_ptr->template get_value(), - max_and_multiplier.first, max_and_multiplier.second, - type_result, check_overflow_for_decimal); + left_tmp, right_tmp, max_and_multiplier.first, + max_and_multiplier.second, type_result, + check_overflow_for_decimal); return true; })) { throw Exception(ErrorCode::INTERNAL_ERROR, @@ -139,9 +156,13 @@ class FunctionDiv : public IFunction { } } } else { - column_result = Impl::constant_constant( - column_left_ptr->template get_value(), - column_right_ptr->template get_value()); + typename PrimitiveTypeTraits::ColumnItemType left_tmp; + auto left_src = column_left_ptr->template get_value(); + std::memcpy(&left_tmp, &left_src, sizeof(left_src)); + typename PrimitiveTypeTraits::ColumnItemType right_tmp; + auto right_src = column_right_ptr->template get_value(); + std::memcpy(&right_tmp, &right_src, sizeof(right_src)); + column_result = Impl::constant_constant(left_tmp, right_tmp); } return ColumnConst::create(std::move(column_result), column_left->size()); @@ -161,11 +182,13 @@ class FunctionDiv : public IFunction { remove_nullable(res_data_type).get(), [&](const auto& type_result) { auto max_and_multiplier = Impl::get_max_and_multiplier( type_left, type_right, type_result); - res = Impl::vector_constant( - column_left->get_ptr(), - column_right_ptr->template get_value(), - max_and_multiplier.first, max_and_multiplier.second, - type_result, check_overflow_for_decimal); + typename PrimitiveTypeTraits::ColumnItemType tmp; + auto src = column_right_ptr->template get_value(); + std::memcpy(&tmp, &src, sizeof(src)); + res = Impl::vector_constant(column_left->get_ptr(), tmp, + max_and_multiplier.first, + max_and_multiplier.second, type_result, + check_overflow_for_decimal); return true; })) { throw Exception(ErrorCode::INTERNAL_ERROR, @@ -180,7 +203,7 @@ class FunctionDiv : public IFunction { type_left, type_right, type_result); res = Impl::vector_constant( column_left->get_ptr(), - column_right_ptr->template get_value(), + column_right_ptr->template get_value(), max_and_multiplier.first, max_and_multiplier.second, type_result, check_overflow_for_decimal); return true; @@ -191,9 +214,8 @@ class FunctionDiv : public IFunction { } } } else { - res = Impl::vector_constant( - column_left->get_ptr(), - column_right_ptr->template get_value()); + res = Impl::vector_constant(column_left->get_ptr(), + column_right_ptr->template get_value()); } return res; } @@ -212,11 +234,13 @@ class FunctionDiv : public IFunction { remove_nullable(res_data_type).get(), [&](const auto& type_result) { auto max_and_multiplier = Impl::get_max_and_multiplier( type_left, type_right, type_result); - res = Impl::constant_vector( - column_left_ptr->template get_value(), - column_right->get_ptr(), max_and_multiplier.first, - max_and_multiplier.second, type_result, - check_overflow_for_decimal); + typename PrimitiveTypeTraits::ColumnItemType tmp; + auto src = column_left_ptr->template get_value(); + std::memcpy(&tmp, &src, sizeof(src)); + res = Impl::constant_vector(tmp, column_right->get_ptr(), + max_and_multiplier.first, + max_and_multiplier.second, type_result, + check_overflow_for_decimal); return true; })) { throw Exception(ErrorCode::INTERNAL_ERROR, @@ -229,11 +253,13 @@ class FunctionDiv : public IFunction { remove_nullable(res_data_type).get(), [&](const auto& type_result) { auto max_and_multiplier = Impl::get_max_and_multiplier( type_left, type_right, type_result); - res = Impl::constant_vector( - column_left_ptr->template get_value(), - column_right->get_ptr(), max_and_multiplier.first, - max_and_multiplier.second, type_result, - check_overflow_for_decimal); + typename PrimitiveTypeTraits::ColumnItemType tmp; + auto src = column_left_ptr->template get_value(); + std::memcpy(&tmp, &src, sizeof(src)); + res = Impl::constant_vector(tmp, column_right->get_ptr(), + max_and_multiplier.first, + max_and_multiplier.second, type_result, + check_overflow_for_decimal); return true; })) { throw Exception(ErrorCode::INTERNAL_ERROR, @@ -242,7 +268,7 @@ class FunctionDiv : public IFunction { } } } else { - res = Impl::constant_vector(column_left_ptr->template get_value(), + res = Impl::constant_vector(column_left_ptr->template get_value(), column_right->get_ptr()); } return res; @@ -298,6 +324,8 @@ static const DecimalV2Value one(1, 0); struct DivideFloatingImpl { using ArgA = typename PrimitiveTypeTraits::CppNativeType; using ArgB = typename PrimitiveTypeTraits::CppNativeType; + static constexpr PrimitiveType ArgAPType = TYPE_DOUBLE; + static constexpr PrimitiveType ArgBPType = TYPE_DOUBLE; using ColumnType = typename PrimitiveTypeTraits::ColumnType; using DataTypeA = typename PrimitiveTypeTraits::DataType; using DataTypeB = typename PrimitiveTypeTraits::DataType; @@ -387,6 +415,8 @@ struct DivideDecimalImpl { (TypeA != TYPE_DECIMALV2 && TypeB != TYPE_DECIMALV2)); using ArgA = typename PrimitiveTypeTraits::ColumnItemType; using ArgB = typename PrimitiveTypeTraits::ColumnItemType; + static constexpr PrimitiveType ArgAPType = TypeA; + static constexpr PrimitiveType ArgBPType = TypeB; using ArgNativeTypeA = typename PrimitiveTypeTraits::CppNativeType; using ArgNativeTypeB = typename PrimitiveTypeTraits::CppNativeType; using DataTypeA = typename PrimitiveTypeTraits::DataType; @@ -461,12 +491,12 @@ struct DivideDecimalImpl { if (check_overflow_for_decimal) { for (size_t i = 0; i < sz; ++i) { c[i] = typename DataTypeDecimal::FieldType( - apply(a[i].value, b.value, n[i], max_result_number)); + apply(a[i], b, n[i], max_result_number)); } } else { for (size_t i = 0; i < sz; ++i) { c[i] = typename DataTypeDecimal::FieldType( - apply(a[i].value, b.value, n[i], max_result_number)); + apply(a[i], b, n[i], max_result_number)); } } @@ -493,12 +523,12 @@ struct DivideDecimalImpl { if (check_overflow_for_decimal) { for (size_t i = 0; i < sz; ++i) { c[i] = typename DataTypeDecimal::FieldType( - apply(a.value, b[i].value, n[i], max_result_number)); + apply(a, b[i], n[i], max_result_number)); } } else { for (size_t i = 0; i < sz; ++i) { c[i] = typename DataTypeDecimal::FieldType( - apply(a.value, b[i].value, n[i], max_result_number)); + apply(a, b[i], n[i], max_result_number)); } } @@ -529,8 +559,8 @@ struct DivideDecimalImpl { if constexpr (TypeA == TYPE_DECIMALV2) { if (check_overflow_for_decimal) { for (size_t i = 0; i < sz; ++i) { - c[i] = Decimal128V2(apply(a[i].value, b[i].value, n[i], - max_result_number)); + c[i] = Decimal128V2( + apply(a[i], b[i], n[i], max_result_number)); } } else { for (size_t i = 0; i < sz; ++i) { @@ -541,13 +571,13 @@ struct DivideDecimalImpl { } else { if (check_overflow_for_decimal) { for (size_t i = 0; i < sz; ++i) { - c[i] = typename DataTypeDecimal::FieldType(apply( - a[i].value, b[i].value, n[i], max_result_number)); + c[i] = typename DataTypeDecimal::FieldType( + apply(a[i], b[i], n[i], max_result_number)); } } else { for (size_t i = 0; i < sz; ++i) { - c[i] = typename DataTypeDecimal::FieldType(apply( - a[i].value, b[i].value, n[i], max_result_number)); + c[i] = typename DataTypeDecimal::FieldType( + apply(a[i], b[i], n[i], max_result_number)); } } } diff --git a/be/src/vec/functions/function_bit.cpp b/be/src/vec/functions/function_bit.cpp index 19c87cc15575e1..6218984333e707 100644 --- a/be/src/vec/functions/function_bit.cpp +++ b/be/src/vec/functions/function_bit.cpp @@ -83,9 +83,8 @@ class FunctionBit : public IFunction { ColumnPtr column_result = nullptr; auto res = Impl::ColumnType::create(1); - res->get_element(0) = - Impl::apply(column_left_ptr->template get_value(), - column_right_ptr->template get_value()); + res->get_element(0) = Impl::apply(column_left_ptr->template get_value(), + column_right_ptr->template get_value()); column_result = std::move(res); return ColumnConst::create(std::move(column_result), column_left->size()); } @@ -100,7 +99,7 @@ class FunctionBit : public IFunction { auto& c = column_result->get_data(); size_t size = a.size(); for (size_t i = 0; i < size; ++i) { - c[i] = Impl::apply(a[i], column_right_ptr->template get_value()); + c[i] = Impl::apply(a[i], column_right_ptr->template get_value()); } return column_result; } @@ -116,7 +115,7 @@ class FunctionBit : public IFunction { auto& c = column_result->get_data(); size_t size = b.size(); for (size_t i = 0; i < size; ++i) { - c[i] = Impl::apply(column_left_ptr->template get_value(), b[i]); + c[i] = Impl::apply(column_left_ptr->template get_value(), b[i]); } return column_result; } @@ -148,6 +147,7 @@ struct BitAndImpl { using ColumnType = typename PrimitiveTypeTraits::ColumnType; static constexpr auto name = "bitand"; static constexpr bool is_nullable = false; + static constexpr PrimitiveType ArgPType = PType; static inline Arg apply(Arg a, Arg b) { return a & b; } }; @@ -159,6 +159,7 @@ struct BitOrImpl { using ColumnType = typename PrimitiveTypeTraits::ColumnType; static constexpr auto name = "bitor"; static constexpr bool is_nullable = false; + static constexpr PrimitiveType ArgPType = PType; static inline Arg apply(Arg a, Arg b) { return a | b; } }; @@ -170,6 +171,7 @@ struct BitXorImpl { using ColumnType = typename PrimitiveTypeTraits::ColumnType; static constexpr auto name = "bitxor"; static constexpr bool is_nullable = false; + static constexpr PrimitiveType ArgPType = PType; static inline Arg apply(Arg a, Arg b) { return a ^ b; } }; diff --git a/be/src/vec/functions/function_bit_shift.cpp b/be/src/vec/functions/function_bit_shift.cpp index fff5f35db09979..211da9ddb59286 100644 --- a/be/src/vec/functions/function_bit_shift.cpp +++ b/be/src/vec/functions/function_bit_shift.cpp @@ -72,8 +72,8 @@ class FunctionBitShift : public IFunction { ColumnPtr column_result = nullptr; auto res = ColumnInt64::create(1); - res->get_element(0) = Impl::apply(column_left_ptr->template get_value(), - column_right_ptr->template get_value()); + res->get_element(0) = Impl::apply(column_left_ptr->template get_value(), + column_right_ptr->template get_value()); column_result = std::move(res); return ColumnConst::create(std::move(column_result), column_left->size()); } @@ -87,7 +87,7 @@ class FunctionBitShift : public IFunction { auto& c = column_result->get_data(); size_t size = a.size(); for (size_t i = 0; i < size; ++i) { - c[i] = Impl::apply(a[i], column_right_ptr->template get_value()); + c[i] = Impl::apply(a[i], column_right_ptr->template get_value()); } return column_result; } @@ -101,7 +101,7 @@ class FunctionBitShift : public IFunction { auto& c = column_result->get_data(); size_t size = b.size(); for (size_t i = 0; i < size; ++i) { - c[i] = Impl::apply(column_left_ptr->template get_value(), b[i]); + c[i] = Impl::apply(column_left_ptr->template get_value(), b[i]); } return column_result; } diff --git a/be/src/vec/functions/function_hash.cpp b/be/src/vec/functions/function_hash.cpp index 332a3a2344f564..5a008221d37410 100644 --- a/be/src/vec/functions/function_hash.cpp +++ b/be/src/vec/functions/function_hash.cpp @@ -104,7 +104,7 @@ struct MurmurHash3Impl { } } else if (const ColumnConst* col_from_const = check_and_get_column_const_string_or_fixedstring(column)) { - auto value = col_from_const->get_value(); + auto value = col_from_const->get_value(); for (size_t i = 0; i < input_rows_count; ++i) { if constexpr (ReturnType == TYPE_INT) { col_to_data[i] = @@ -193,7 +193,7 @@ struct XxHashImpl { } } else if (const ColumnConst* col_from_const = check_and_get_column_const_string_or_fixedstring(column)) { - auto value = col_from_const->get_value(); + auto value = col_from_const->get_value(); for (size_t i = 0; i < input_rows_count; ++i) { if constexpr (ReturnType == TYPE_INT) { col_to_data[i] = diff --git a/be/src/vec/functions/function_helpers.h b/be/src/vec/functions/function_helpers.h index a74edba4a8982b..661e1ac2f84a27 100644 --- a/be/src/vec/functions/function_helpers.h +++ b/be/src/vec/functions/function_helpers.h @@ -87,13 +87,13 @@ const ColumnConst* check_and_get_column_const_string_or_fixedstring(const IColum template requires(!is_decimal(T)) Field to_field(const typename PrimitiveTypeTraits::ColumnItemType& x) { - return Field::create_field(typename PrimitiveTypeTraits::NearestFieldType(x)); + return Field::create_field(typename PrimitiveTypeTraits::CppType(x)); } template requires(is_decimal(T)) Field to_field(const typename PrimitiveTypeTraits::ColumnItemType& x, UInt32 scale) { - return Field::create_field(typename PrimitiveTypeTraits::NearestFieldType(x, scale)); + return Field::create_field(typename PrimitiveTypeTraits::CppType(x, scale)); } Columns convert_const_tuple_to_constant_elements(const ColumnConst& column); diff --git a/be/src/vec/functions/function_quantile_state.cpp b/be/src/vec/functions/function_quantile_state.cpp index 63460255fdcfcf..d5c828a5affa41 100644 --- a/be/src/vec/functions/function_quantile_state.cpp +++ b/be/src/vec/functions/function_quantile_state.cpp @@ -129,7 +129,7 @@ class FunctionToQuantileState : public IFunction { block.get_by_position(arguments.back()).column.get()); float compression = 2048; if (compression_arg) { - auto compression_arg_val = compression_arg->get_value(); + auto compression_arg_val = compression_arg->get_value(); if (compression_arg_val >= QUANTILE_STATE_COMPRESSION_MIN && compression_arg_val <= QUANTILE_STATE_COMPRESSION_MAX) { compression = compression_arg_val; @@ -187,7 +187,7 @@ class FunctionQuantileStatePercent : public IFunction { return Status::InvalidArgument( "Second argument to {} must be a constant float describing type", get_name()); } - auto percent_arg_value = percent_arg->get_value(); + auto percent_arg_value = percent_arg->get_value(); if (percent_arg_value < 0 || percent_arg_value > 1) { return Status::InvalidArgument( "the input argument of percentage: {} is not valid, must be in range [0,1] ", diff --git a/be/src/vec/functions/functions_multi_string_position.cpp b/be/src/vec/functions/functions_multi_string_position.cpp index 0a5e3fc7253fcf..e23d97964c2080 100644 --- a/be/src/vec/functions/functions_multi_string_position.cpp +++ b/be/src/vec/functions/functions_multi_string_position.cpp @@ -129,7 +129,7 @@ class FunctionMultiStringPosition : public IFunction { if (col_needles_const) { status = Impl::vector_constant( col_haystack_vector->get_chars(), col_haystack_vector->get_offsets(), - col_needles_const->get_value(), vec_res, offsets_res); + col_needles_const->get_value(), vec_res, offsets_res); } else { status = Impl::vector_vector(col_haystack_vector->get_chars(), col_haystack_vector->get_offsets(), diff --git a/be/src/vec/functions/functions_multi_string_search.cpp b/be/src/vec/functions/functions_multi_string_search.cpp index fafff0f73ff013..bf9bc118fbdbd6 100644 --- a/be/src/vec/functions/functions_multi_string_search.cpp +++ b/be/src/vec/functions/functions_multi_string_search.cpp @@ -114,8 +114,9 @@ class FunctionsMultiStringSearch : public IFunction { if (col_needles_const) { status = Impl::vector_constant( col_haystack_vector->get_chars(), col_haystack_vector->get_offsets(), - col_needles_const->get_value(), vec_res, offsets_res, allow_hyperscan_, - max_hyperscan_regexp_length_, max_hyperscan_regexp_total_length_); + col_needles_const->get_value(), vec_res, offsets_res, + allow_hyperscan_, max_hyperscan_regexp_length_, + max_hyperscan_regexp_total_length_); } else { status = Impl::vector_vector( col_haystack_vector->get_chars(), col_haystack_vector->get_offsets(), diff --git a/be/src/vec/functions/if.cpp b/be/src/vec/functions/if.cpp index c9f247183dc4ca..892cae8b3a4646 100644 --- a/be/src/vec/functions/if.cpp +++ b/be/src/vec/functions/if.cpp @@ -262,7 +262,7 @@ class FunctionIf : public IFunction { arg_cond.column)); } } else if (cond_const_col) { - if (cond_const_col->get_value()) { // if(true, null, else) + if (cond_const_col->get_value()) { // if(true, null, else) block.get_by_position(result).column = block.get_by_position(result).type->create_column()->clone_resized( input_rows_count); @@ -303,7 +303,7 @@ class FunctionIf : public IFunction { std::move(negated_null_map))); } } else if (cond_const_col) { - if (cond_const_col->get_value()) { // if(true, then, NULL) + if (cond_const_col->get_value()) { // if(true, then, NULL) block.get_by_position(result).column = make_nullable_column_if_not(arg_then.column); } else { // if(false, then, NULL) @@ -522,7 +522,7 @@ class FunctionIf : public IFunction { if (cond_const_col) { block.get_by_position(result).column = - cond_const_col->get_value() ? arg_then.column : arg_else.column; + cond_const_col->get_value() ? arg_then.column : arg_else.column; return Status::OK(); } diff --git a/be/src/vec/functions/int_div.cpp b/be/src/vec/functions/int_div.cpp index 2d416a24422e62..46fbbef3f77424 100644 --- a/be/src/vec/functions/int_div.cpp +++ b/be/src/vec/functions/int_div.cpp @@ -80,8 +80,8 @@ class FunctionIntDiv : public IFunction { ColumnPtr column_result = nullptr; column_result = - Impl::constant_constant(column_left_ptr->template get_value(), - column_right_ptr->template get_value()); + Impl::constant_constant(column_left_ptr->template get_value(), + column_right_ptr->template get_value()); return ColumnConst::create(std::move(column_result), column_left->size()); } @@ -91,14 +91,14 @@ class FunctionIntDiv : public IFunction { DCHECK(column_right_ptr != nullptr); return Impl::vector_constant(column_left->get_ptr(), - column_right_ptr->template get_value()); + column_right_ptr->template get_value()); } ColumnPtr constant_vector(ColumnPtr column_left, ColumnPtr column_right) const { const auto* column_left_ptr = assert_cast(column_left.get()); DCHECK(column_left_ptr != nullptr); - return Impl::constant_vector(column_left_ptr->template get_value(), + return Impl::constant_vector(column_left_ptr->template get_value(), column_right->get_ptr()); } diff --git a/be/src/vec/functions/math.cpp b/be/src/vec/functions/math.cpp index 41eb13c8989f1d..e7673d2c700a44 100644 --- a/be/src/vec/functions/math.cpp +++ b/be/src/vec/functions/math.cpp @@ -700,7 +700,7 @@ class FunctionMathBinary : public IFunction { auto& n = null_map->get_data(); size_t size = a.size(); for (size_t i = 0; i < size; ++i) { - c[i] = Impl::apply(a[i], column_right_ptr->template get_value(), n[i]); + c[i] = Impl::apply(a[i], column_right_ptr->template get_value(), n[i]); } return ColumnNullable::create(std::move(column_result), std::move(null_map)); } else { @@ -708,7 +708,7 @@ class FunctionMathBinary : public IFunction { auto& c = column_result->get_data(); size_t size = a.size(); for (size_t i = 0; i < size; ++i) { - c[i] = Impl::apply(a[i], column_right_ptr->template get_value()); + c[i] = Impl::apply(a[i], column_right_ptr->template get_value()); } return column_result; } @@ -727,7 +727,7 @@ class FunctionMathBinary : public IFunction { auto& n = null_map->get_data(); size_t size = b.size(); for (size_t i = 0; i < size; ++i) { - c[i] = Impl::apply(column_left_ptr->template get_value(), b[i], n[i]); + c[i] = Impl::apply(column_left_ptr->template get_value(), b[i], n[i]); } return ColumnNullable::create(std::move(column_result), std::move(null_map)); } else { @@ -735,7 +735,7 @@ class FunctionMathBinary : public IFunction { auto& c = column_result->get_data(); size_t size = b.size(); for (size_t i = 0; i < size; ++i) { - c[i] = Impl::apply(column_left_ptr->template get_value(), b[i]); + c[i] = Impl::apply(column_left_ptr->template get_value(), b[i]); } return column_result; } diff --git a/be/src/vec/functions/modulo.cpp b/be/src/vec/functions/modulo.cpp index aac3f31de1e5d5..6b909aa9e537e6 100644 --- a/be/src/vec/functions/modulo.cpp +++ b/be/src/vec/functions/modulo.cpp @@ -126,11 +126,22 @@ class FunctionMod : public IFunction { auto max_and_multiplier = Impl::get_max_and_multiplier( type_left, type_right, type_result); + typename PrimitiveTypeTraits::ColumnItemType + left_tmp; + auto left_src = + column_left_ptr + ->template get_value(); + std::memcpy(&left_tmp, &left_src, sizeof(left_src)); + typename PrimitiveTypeTraits::ColumnItemType + right_tmp; + auto right_src = + column_right_ptr + ->template get_value(); + std::memcpy(&right_tmp, &right_src, sizeof(right_src)); column_result = Impl::constant_constant( - column_left_ptr->template get_value(), - column_right_ptr->template get_value(), - max_and_multiplier.first, max_and_multiplier.second, - type_result, check_overflow_for_decimal); + left_tmp, right_tmp, max_and_multiplier.first, + max_and_multiplier.second, type_result, + check_overflow_for_decimal); return true; })) { throw Exception(ErrorCode::INTERNAL_ERROR, @@ -143,12 +154,22 @@ class FunctionMod : public IFunction { remove_nullable(res_data_type).get(), [&](const auto& type_result) { auto max_and_multiplier = Impl::get_max_and_multiplier( type_left, type_right, type_result); - + typename PrimitiveTypeTraits::ColumnItemType + left_tmp; + auto left_src = + column_left_ptr + ->template get_value(); + std::memcpy(&left_tmp, &left_src, sizeof(left_src)); + typename PrimitiveTypeTraits::ColumnItemType + right_tmp; + auto right_src = + column_right_ptr + ->template get_value(); + std::memcpy(&right_tmp, &right_src, sizeof(right_src)); column_result = Impl::constant_constant( - column_left_ptr->template get_value(), - column_right_ptr->template get_value(), - max_and_multiplier.first, max_and_multiplier.second, - type_result, check_overflow_for_decimal); + left_tmp, right_tmp, max_and_multiplier.first, + max_and_multiplier.second, type_result, + check_overflow_for_decimal); return true; })) { throw Exception(ErrorCode::INTERNAL_ERROR, @@ -157,9 +178,13 @@ class FunctionMod : public IFunction { } } } else { - column_result = Impl::constant_constant( - column_left_ptr->template get_value(), - column_right_ptr->template get_value()); + typename PrimitiveTypeTraits::ColumnItemType left_tmp; + auto left_src = column_left_ptr->template get_value(); + std::memcpy(&left_tmp, &left_src, sizeof(left_src)); + typename PrimitiveTypeTraits::ColumnItemType right_tmp; + auto right_src = column_right_ptr->template get_value(); + std::memcpy(&right_tmp, &right_src, sizeof(right_src)); + column_result = Impl::constant_constant(left_tmp, right_tmp); } return ColumnConst::create(std::move(column_result), column_left->size()); @@ -179,11 +204,15 @@ class FunctionMod : public IFunction { remove_nullable(res_data_type).get(), [&](const auto& type_result) { auto max_and_multiplier = Impl::get_max_and_multiplier( type_left, type_right, type_result); - res = Impl::vector_constant( - column_left->get_ptr(), - column_right_ptr->template get_value(), - max_and_multiplier.first, max_and_multiplier.second, - type_result, check_overflow_for_decimal); + typename PrimitiveTypeTraits::ColumnItemType + tmp; + auto src = column_right_ptr + ->template get_value(); + std::memcpy(&tmp, &src, sizeof(src)); + res = Impl::vector_constant(column_left->get_ptr(), tmp, + max_and_multiplier.first, + max_and_multiplier.second, type_result, + check_overflow_for_decimal); return true; })) { throw Exception(ErrorCode::INTERNAL_ERROR, @@ -196,11 +225,15 @@ class FunctionMod : public IFunction { remove_nullable(res_data_type).get(), [&](const auto& type_result) { auto max_and_multiplier = Impl::get_max_and_multiplier( type_left, type_right, type_result); - res = Impl::vector_constant( - column_left->get_ptr(), - column_right_ptr->template get_value(), - max_and_multiplier.first, max_and_multiplier.second, - type_result, check_overflow_for_decimal); + typename PrimitiveTypeTraits::ColumnItemType + tmp; + auto src = column_right_ptr + ->template get_value(); + std::memcpy(&tmp, &src, sizeof(src)); + res = Impl::vector_constant(column_left->get_ptr(), tmp, + max_and_multiplier.first, + max_and_multiplier.second, type_result, + check_overflow_for_decimal); return true; })) { throw Exception(ErrorCode::INTERNAL_ERROR, @@ -209,9 +242,10 @@ class FunctionMod : public IFunction { } } } else { - res = Impl::vector_constant( - column_left->get_ptr(), - column_right_ptr->template get_value()); + typename PrimitiveTypeTraits::ColumnItemType tmp; + auto src = column_right_ptr->template get_value(); + std::memcpy(&tmp, &src, sizeof(src)); + res = Impl::vector_constant(column_left->get_ptr(), tmp); } return res; } @@ -230,11 +264,15 @@ class FunctionMod : public IFunction { remove_nullable(res_data_type).get(), [&](const auto& type_result) { auto max_and_multiplier = Impl::get_max_and_multiplier( type_left, type_right, type_result); - res = Impl::constant_vector( - column_left_ptr->template get_value(), - column_right->get_ptr(), max_and_multiplier.first, - max_and_multiplier.second, type_result, - check_overflow_for_decimal); + typename PrimitiveTypeTraits::ColumnItemType + tmp; + auto src = column_left_ptr + ->template get_value(); + std::memcpy(&tmp, &src, sizeof(src)); + res = Impl::constant_vector(tmp, column_right->get_ptr(), + max_and_multiplier.first, + max_and_multiplier.second, type_result, + check_overflow_for_decimal); return true; })) { throw Exception(ErrorCode::INTERNAL_ERROR, @@ -247,11 +285,15 @@ class FunctionMod : public IFunction { remove_nullable(res_data_type).get(), [&](const auto& type_result) { auto max_and_multiplier = Impl::get_max_and_multiplier( type_left, type_right, type_result); - res = Impl::constant_vector( - column_left_ptr->template get_value(), - column_right->get_ptr(), max_and_multiplier.first, - max_and_multiplier.second, type_result, - check_overflow_for_decimal); + typename PrimitiveTypeTraits::ColumnItemType + tmp; + auto src = column_left_ptr + ->template get_value(); + std::memcpy(&tmp, &src, sizeof(src)); + res = Impl::constant_vector(tmp, column_right->get_ptr(), + max_and_multiplier.first, + max_and_multiplier.second, type_result, + check_overflow_for_decimal); return true; })) { throw Exception(ErrorCode::INTERNAL_ERROR, @@ -260,8 +302,10 @@ class FunctionMod : public IFunction { } } } else { - res = Impl::constant_vector(column_left_ptr->template get_value(), - column_right->get_ptr()); + typename PrimitiveTypeTraits::ColumnItemType tmp; + auto src = column_left_ptr->template get_value(); + std::memcpy(&tmp, &src, sizeof(src)); + res = Impl::constant_vector(tmp, column_right->get_ptr()); } return res; } diff --git a/be/src/vec/functions/multiply.cpp b/be/src/vec/functions/multiply.cpp index ef9b8132f07e40..f3e9b40a464f43 100644 --- a/be/src/vec/functions/multiply.cpp +++ b/be/src/vec/functions/multiply.cpp @@ -38,6 +38,8 @@ struct MultiplyIntegralImpl { static constexpr bool result_is_decimal = false; using Arg = typename PrimitiveTypeTraits::ColumnItemType; using ColumnType = typename PrimitiveTypeTraits::ColumnType; + static constexpr PrimitiveType ArgAPType = Type; + static constexpr PrimitiveType ArgBPType = Type; using ArgA = Arg; using ArgB = Arg; using DataTypeA = typename PrimitiveTypeTraits::DataType; @@ -115,6 +117,8 @@ struct MultiplyDecimalImpl { constexpr static bool need_replace_null_data_to_default = true; using ArgA = typename PrimitiveTypeTraits::ColumnItemType; using ArgB = typename PrimitiveTypeTraits::ColumnItemType; + static constexpr PrimitiveType ArgAPType = TypeA; + static constexpr PrimitiveType ArgBPType = TypeB; using ArgNativeTypeA = typename PrimitiveTypeTraits::CppNativeType; using ArgNativeTypeB = typename PrimitiveTypeTraits::CppNativeType; using DataTypeA = typename PrimitiveTypeTraits::DataType; @@ -538,13 +542,22 @@ class FunctionMultiply : public IFunction { remove_nullable(res_data_type).get(), [&](const auto& type_result) { auto max_and_multiplier = Impl::get_max_and_multiplier( type_left, type_right, type_result); - + typename PrimitiveTypeTraits::ColumnItemType + left_tmp; + auto left_src = + column_left_ptr + ->template get_value(); + std::memcpy(&left_tmp, &left_src, sizeof(left_src)); + typename PrimitiveTypeTraits::ColumnItemType + right_tmp; + auto right_src = + column_right_ptr + ->template get_value(); + std::memcpy(&right_tmp, &right_src, sizeof(right_src)); column_result = Impl::constant_constant( - column_left_ptr->template get_value(), - column_right_ptr->template get_value(), - type_left, type_right, max_and_multiplier.first, - max_and_multiplier.second, type_result, - check_overflow_for_decimal); + left_tmp, right_tmp, type_left, type_right, + max_and_multiplier.first, max_and_multiplier.second, + type_result, check_overflow_for_decimal); return true; })) { throw Exception(ErrorCode::INTERNAL_ERROR, @@ -557,13 +570,22 @@ class FunctionMultiply : public IFunction { remove_nullable(res_data_type).get(), [&](const auto& type_result) { auto max_and_multiplier = Impl::get_max_and_multiplier( type_left, type_right, type_result); - + typename PrimitiveTypeTraits::ColumnItemType + left_tmp; + auto left_src = + column_left_ptr + ->template get_value(); + std::memcpy(&left_tmp, &left_src, sizeof(left_src)); + typename PrimitiveTypeTraits::ColumnItemType + right_tmp; + auto right_src = + column_right_ptr + ->template get_value(); + std::memcpy(&right_tmp, &right_src, sizeof(right_src)); column_result = Impl::constant_constant( - column_left_ptr->template get_value(), - column_right_ptr->template get_value(), - type_left, type_right, max_and_multiplier.first, - max_and_multiplier.second, type_result, - check_overflow_for_decimal); + left_tmp, right_tmp, type_left, type_right, + max_and_multiplier.first, max_and_multiplier.second, + type_result, check_overflow_for_decimal); return true; })) { throw Exception(ErrorCode::INTERNAL_ERROR, @@ -572,9 +594,13 @@ class FunctionMultiply : public IFunction { } } } else { - column_result = Impl::constant_constant( - column_left_ptr->template get_value(), - column_right_ptr->template get_value()); + typename PrimitiveTypeTraits::ColumnItemType left_tmp; + auto left_src = column_left_ptr->template get_value(); + std::memcpy(&left_tmp, &left_src, sizeof(left_src)); + typename PrimitiveTypeTraits::ColumnItemType right_tmp; + auto right_src = column_right_ptr->template get_value(); + std::memcpy(&right_tmp, &right_src, sizeof(right_src)); + column_result = Impl::constant_constant(left_tmp, right_tmp); } return ColumnConst::create(std::move(column_result), column_left->size()); @@ -594,12 +620,15 @@ class FunctionMultiply : public IFunction { remove_nullable(res_data_type).get(), [&](const auto& type_result) { auto max_and_multiplier = Impl::get_max_and_multiplier( type_left, type_right, type_result); - res = Impl::vector_constant( - column_left->get_ptr(), - column_right_ptr->template get_value(), - type_left, type_right, max_and_multiplier.first, - max_and_multiplier.second, type_result, - check_overflow_for_decimal); + typename PrimitiveTypeTraits::ColumnItemType + tmp; + auto src = column_right_ptr + ->template get_value(); + std::memcpy(&tmp, &src, sizeof(src)); + res = Impl::vector_constant(column_left->get_ptr(), tmp, type_left, + type_right, max_and_multiplier.first, + max_and_multiplier.second, type_result, + check_overflow_for_decimal); return true; })) { throw Exception(ErrorCode::INTERNAL_ERROR, @@ -612,12 +641,15 @@ class FunctionMultiply : public IFunction { remove_nullable(res_data_type).get(), [&](const auto& type_result) { auto max_and_multiplier = Impl::get_max_and_multiplier( type_left, type_right, type_result); - res = Impl::vector_constant( - column_left->get_ptr(), - column_right_ptr->template get_value(), - type_left, type_right, max_and_multiplier.first, - max_and_multiplier.second, type_result, - check_overflow_for_decimal); + typename PrimitiveTypeTraits::ColumnItemType + tmp; + auto src = column_right_ptr + ->template get_value(); + std::memcpy(&tmp, &src, sizeof(src)); + res = Impl::vector_constant(column_left->get_ptr(), tmp, type_left, + type_right, max_and_multiplier.first, + max_and_multiplier.second, type_result, + check_overflow_for_decimal); return true; })) { throw Exception(ErrorCode::INTERNAL_ERROR, @@ -626,9 +658,10 @@ class FunctionMultiply : public IFunction { } } } else { - res = Impl::vector_constant( - column_left->get_ptr(), - column_right_ptr->template get_value()); + typename PrimitiveTypeTraits::ColumnItemType tmp; + auto src = column_right_ptr->template get_value(); + std::memcpy(&tmp, &src, sizeof(src)); + res = Impl::vector_constant(column_left->get_ptr(), tmp); } return res; } @@ -647,11 +680,15 @@ class FunctionMultiply : public IFunction { remove_nullable(res_data_type).get(), [&](const auto& type_result) { auto max_and_multiplier = Impl::get_max_and_multiplier( type_left, type_right, type_result); - res = Impl::constant_vector( - column_left_ptr->template get_value(), - column_right->get_ptr(), type_left, type_right, - max_and_multiplier.first, max_and_multiplier.second, - type_result, check_overflow_for_decimal); + typename PrimitiveTypeTraits::ColumnItemType + tmp; + auto src = column_left_ptr + ->template get_value(); + std::memcpy(&tmp, &src, sizeof(src)); + res = Impl::constant_vector(tmp, column_right->get_ptr(), type_left, + type_right, max_and_multiplier.first, + max_and_multiplier.second, type_result, + check_overflow_for_decimal); return true; })) { throw Exception(ErrorCode::INTERNAL_ERROR, @@ -664,11 +701,15 @@ class FunctionMultiply : public IFunction { remove_nullable(res_data_type).get(), [&](const auto& type_result) { auto max_and_multiplier = Impl::get_max_and_multiplier( type_left, type_right, type_result); - res = Impl::constant_vector( - column_left_ptr->template get_value(), - column_right->get_ptr(), type_left, type_right, - max_and_multiplier.first, max_and_multiplier.second, - type_result, check_overflow_for_decimal); + typename PrimitiveTypeTraits::ColumnItemType + tmp; + auto src = column_left_ptr + ->template get_value(); + std::memcpy(&tmp, &src, sizeof(src)); + res = Impl::constant_vector(tmp, column_right->get_ptr(), type_left, + type_right, max_and_multiplier.first, + max_and_multiplier.second, type_result, + check_overflow_for_decimal); return true; })) { throw Exception(ErrorCode::INTERNAL_ERROR, @@ -677,8 +718,10 @@ class FunctionMultiply : public IFunction { } } } else { - res = Impl::constant_vector(column_left_ptr->template get_value(), - column_right->get_ptr()); + typename PrimitiveTypeTraits::ColumnItemType tmp; + auto src = column_left_ptr->template get_value(); + std::memcpy(&tmp, &src, sizeof(src)); + res = Impl::constant_vector(tmp, column_right->get_ptr()); } return res; } diff --git a/be/src/vec/json/parse2column.cpp b/be/src/vec/json/parse2column.cpp index 127241b366734e..607548117327ef 100644 --- a/be/src/vec/json/parse2column.cpp +++ b/be/src/vec/json/parse2column.cpp @@ -107,7 +107,7 @@ class FieldVisitorReplaceScalars : public StaticVisitor { FieldVisitorReplaceScalars(const Field& replacement_, size_t num_dimensions_to_keep_) : replacement(replacement_), num_dimensions_to_keep(num_dimensions_to_keep_) {} template - Field operator()(const typename PrimitiveTypeTraits::NearestFieldType& x) const { + Field operator()(const typename PrimitiveTypeTraits::CppType& x) const { if constexpr (T == TYPE_ARRAY) { if (num_dimensions_to_keep == 0) { return replacement; diff --git a/be/test/expected_result/vec/columns/column_variant_byte_size.out b/be/test/expected_result/vec/columns/column_variant_byte_size.out index 5b4929c41c58aa..31205bae301a5c 100644 --- a/be/test/expected_result/vec/columns/column_variant_byte_size.out +++ b/be/test/expected_result/vec/columns/column_variant_byte_size.out @@ -1,2 +1,2 @@ -column: variant with byte_size: 11318398 -11318398 \ No newline at end of file +column: variant with byte_size: 11155317 +11155317 \ No newline at end of file diff --git a/be/test/expected_result/vec/columns/column_variant_update_crc_with_value.out b/be/test/expected_result/vec/columns/column_variant_update_crc_with_value.out index 6028c54cd75d59..03d5ccbd3fda4d 100644 --- a/be/test/expected_result/vec/columns/column_variant_update_crc_with_value.out +++ b/be/test/expected_result/vec/columns/column_variant_update_crc_with_value.out @@ -1 +1 @@ -column: variant with hashes: 2267522287 with ptr: 1756 \ No newline at end of file +column: variant with hashes: 3573485114 with ptr: 1756 \ No newline at end of file diff --git a/be/test/expected_result/vec/columns/column_variant_update_crc_with_value.out_with_nullmap b/be/test/expected_result/vec/columns/column_variant_update_crc_with_value.out_with_nullmap index 6028c54cd75d59..03d5ccbd3fda4d 100644 --- a/be/test/expected_result/vec/columns/column_variant_update_crc_with_value.out_with_nullmap +++ b/be/test/expected_result/vec/columns/column_variant_update_crc_with_value.out_with_nullmap @@ -1 +1 @@ -column: variant with hashes: 2267522287 with ptr: 1756 \ No newline at end of file +column: variant with hashes: 3573485114 with ptr: 1756 \ No newline at end of file diff --git a/be/test/expected_result/vec/columns/column_variant_update_crcs_with_value.out b/be/test/expected_result/vec/columns/column_variant_update_crcs_with_value.out index ec1aaede6244ad..27853e883d8914 100644 --- a/be/test/expected_result/vec/columns/column_variant_update_crcs_with_value.out +++ b/be/test/expected_result/vec/columns/column_variant_update_crcs_with_value.out @@ -1 +1 @@ -column: variant with hashes: [1023594347,3348501307,3348501307,750646757,1023594347,1285578128,750646757,648865016,750646757,1850317735,1660060187,1978118196,3348501307,1660060187,1285578128,1978118196,1285578128,1978118196,1660060187,1285578128,3348501307,750646757,80012773,1186024589,1023594347,1186024589,750646757,80012773,1660060187,750646757,1285578128,1023594347,80012773,1978118196,750646757,648865016,1023594347,648865016,3348501307,1023594347,1978118196,3348501307,1285578128,80012773,3348501307,3348501307,1186024589,1660060187,648865016,80012773,1850317735,1186024589,3348501307,750646757,3348501307,1186024589,648865016,1023594347,3348501307,80012773,1978118196,1186024589,1660060187,1023594347,3348501307,1023594347,1660060187,1850317735,1660060187,1023594347,80012773,1186024589,1850317735,80012773,1978118196,750646757,1023594347,1285578128,3348501307,1660060187,648865016,648865016,80012773,1285578128,1978118196,80012773,1023594347,3348501307,3348501307,1978118196,1285578128,3348501307,80012773,3348501307,648865016,648865016,1186024589,750646757,1978118196,3348501307,1475932078,3031791848,1475932078,2847341008,3031791848,867831412,2847341008,3913229208,3913229208,3913229208,1475932078,3947181464,2847341008,3913229208,867831412,3913229208,867831412,2847341008,1475932078,4041940491,3031791848,1475932078,4041940491,867831412,867831412,4041940491,4041940491,3913229208,867831412,3913229208,3913229208,1475932078,1475932078,2847341008,867831412,3913229208,1475932078,4041940491,867831412,3913229208,2847341008,3031791848,4041940491,867831412,2847341008,4041940491,3913229208,867831412,1475932078,2847341008,3947181464,867831412,1475932078,867831412,867831412,867831412,3031791848,1475932078,3913229208,4041940491,3947181464,3913229208,867831412,1475932078,867831412,2847341008,2847341008,3913229208,4041940491,2847341008,4041940491,867831412,3031791848,1475932078,4041940491,3913229208,3947181464,867831412,3947181464,867831412,1475932078,1475932078,2847341008,2847341008,4041940491,3947181464,3913229208,3031791848,2847341008,2847341008,1475932078,3947181464,3031791848,4041940491,4041940491,3947181464,2847341008,867831412,1475932078,3031791848,3913229208,1475932078,209602798,1519515423,627494611,172855780,1519515423,3348501307,1317779294,1519515423,859160306,3525052757,627494611,1701595328,1317779294,1386025943,2789129758,3348501307,859160306,2789129758,2789129758,3348501307,3348501307,1317779294,859160306,1519515423,172855780,1317779294,627494611,3525052757,209602798,3348501307,1701595328,3525052757,1519515423,1317779294,3525052757,2789129758,1317779294,3348501307,3348501307,2789129758,3348501307,1655266202,912281971,859160306,627494611,1701595328,1701595328,1655266202,2789129758,912281971,172855780,912281971,859160306,209602798,1701595328,1519515423,1701595328,1655266202,3348501307,1655266202,3348501307,912281971,1386025943,209602798,1519515423,172855780,1701595328,912281971,1655266202,1519515423,3348501307,172855780,1317779294,1386025943,172855780,859160306,1519515423,3348501307,3525052757,3348501307,859160306,627494611,2789129758,1317779294,1701595328,627494611,2789129758,3348501307,172855780,859160306,859160306,1655266202,1701595328,859160306,209602798,627494611,3348501307,1386025943,1519515423,3348501307,1475932078,3913229208,2227214797,3913229208,3789747863,3913229208,510528736,3913229208,3789747863,3789747863,3913229208,3837297611,2884501567,3106970526,1486651970,3913229208,3913229208,2870437049,3913229208,2193573656,3913229208,3969492334,3789747863,3789747863,3789747863,3789747863,922224195,1404624078,3913229208,3913229208,894904681,2945052265,3913229208,3789747863,3789747863,3789747863,3789747863,3913229208,3803986276,952637510,3590416673,2982256563,3789747863,527179391,2488421031,3913229208,3913229208,3103095817,3819337278,3789747863,1778301207,4209926658,3913229208,3913229208,2263431414,1475703906,3913229208,3789747863,662586099,3789747863,2152872312,3913229208,3711287442,2774706557,734011670,3913229208,3913229208,770703466,3913229208,2061950507,3789747863,3844879621,2305665715,3913229208,1905805162,2076289177,2276582000,2862932646,3913229208,3789747863,3789747863,1790490335,3789747863,2673207464,3913229208,3913229208,2752541153,3913229208,61063314,3913229208,3913229208,3913229208,1570067002,927843573,4109279470,3789747863,3913229208,3913229208,2279442698,3789747863,3789747863,1475932078,4237828992,2008303805,1653940526,112374245,3733730049,4285855827,2984707496,3700321127,900459062,3907550024,4167518769,3307649970,840115646,775955525,1987254777,2928806398,2417368046,4219959955,2983299479,3276959282,3658804321,3252716672,2671334707,721963254,252419266,349309873,1834082302,1073459774,594613583,3444701572,1657736054,2110120670,3505457392,1181468239,46979895,4003063492,2822172505,190636968,3480188160,4123233519,3921153207,1261617742,57904453,3661577271,2727620890,1406550753,806342488,1248968977,153207857,3850472635,1770926790,1938804129,68353157,4116010128,145263641,4264464151,1502905642,2138020051,206301486,3586908682,2851690921,2483750349,2306514692,3203273726,1444023869,3739283153,234059290,4159529475,841927421,998674515,3214677553,949805070,2760970111,1820470762,3114814069,100231172,2754194091,4202888641,423086264,2132589211,2385984422,2036753536,2238884718,2787517797,2014566204,1186492516,3777309008,1916247349,3642239414,1983143352,698751093,1937501638,2032881382,1672472094,1113661848,2866901201,300997757,1395117189,2137342595,4062985663,1475932078,1532900103,4102217294,1861653971,86232176,3878403598,856543581,1990831151,1389279149,2648483542,610102681,1125676472,2131299136,1431885405,648643318,1154374898,1415151150,553323391,2444387708,3338267287,462740891,3531993375,2545773242,3571033511,4161475646,578643968,32999274,2693211556,4081847962,1977267376,16015138,4191625365,3165203105,4042815043,3530908945,2930385635,514791064,2381228895,2582983294,2733154394,2723419908,2102014736,4026074225,2733691661,1863037094,260662800,291487530,418929061,2054872369,67313275,3802694445,3580006222,4048666199,3217207799,4162195315,3127763070,3422048662,1026351827,246213353,3841167754,1545418915,1870495953,419849037,489370714,3037505443,3175710511,3183483743,3067513982,3915479902,1518386329,3972813200,1407358669,2465219998,2872752475,1819131689,2712973792,2983061508,3050657900,2968375702,614867631,3126861552,3321798155,3633271578,661359661,935360676,2459635599,400606706,2234201005,289237747,3823144031,3045874506,532981447,2427139017,1787447513,3529392557,1390139246,3410864086,2906135130,3533245323,1302222766,60426080,1475932078,3821307458,3267483048,3678593449,1987368558,1372039361,2116402128,902325561,14676458,4205872991,284754422,761961319,1674190002,4167725589,1560684105,3394419928,3789385250,2732301246,2375493248,696532534,3932925440,2125120050,1663239372,1943113553,538100978,926229152,1378385960,1088489987,3649442146,83345092,3072167853,861979694,3345948570,329056656,1852696603,953614521,2412121146,1455304982,2016720967,1019662472,3889415001,2242446190,3751168679,1065796466,431925897,557433494,3314126543,1579778508,2348561599,1405549853,3835521876,1362788148,3089016189,1743993695,2231007820,3064185354,1836043055,929946084,3204192861,3942771720,2101319852,2662155723,3334980251,613875170,1793892769,510037288,2475133148,716514594,3379275905,727614721,2566562724,236070862,4102414313,21235350,186075835,4139730481,1258893555,2141602116,3382940338,2013202621,1432283856,3068870504,4179200396,793069721,1513643002,2052642492,1974136374,2616712913,101081864,446688245,1177254224,2509066101,2004131098,194002834,1438287892,2325675989,2681487709,2856779751,802126067,3977626866,919162971,1475932078,1137081298,337542302,3284884598,1773676428,188465278,3891293334,1349916049,3657755687,3451149335,1778783341,2306226865,352545257,30317693,2359603050,1234701875,1774508416,3716537525,1387435890,4045098628,3903474068,32629003,118178606,3273937441,3914364692,2353886095,2826420805,3441888086,3345249612,2754847602,1721998878,4135490579,1948326393,2633740817,205560752,2559828432,4008747519,718784075,1350663777,2707354727,232503578,1094980036,3215154101,2414399157,3786811848,3561699290,3723584653,4067691960,1504215167,281997699,235531702,42481190,3445782416,15083132,3510922785,1302166824,1354343922,3882424411,1541555833,111901156,977232459,2099073180,1268917631,232672324,478753186,1478119740,3486668107,531376819,3664431455,1061580509,1477256723,2073744111,2056257964,2158626208,3067464461,1294964912,1459438953,3362223921,2781734454,379986224,1295375361,3283668508,824874935,2250241074,2568691077,513030551,2024475634,1916448804,1055216648,4063477824,1473670213,607304147,1303678041,3222238822,48604406,700507791,3871034329,807782587,302343498,3814693210,47033331,1475932078,1475932078,2186898052,1534921777,2754747580,3539438616,2072550807,3862243513,3388554620,597381227,3887754035,1834726908,565128977,2943960712,2339404461,4054273983,649110147,1978074792,1269192803,899089643,1742443568,1655919025,2948223609,3267544278,2984237480,847936237,3234146950,2195266427,430377206,3162992278,3933838920,2511536970,1997343675,3691980458,2265098137,2216379065,589674916,420279219,1363494854,1476431342,2369950088,3066718386,1318848225,834229161,2671101789,2435992496,1478940721,2266104978,2224538860,3693790829,1810483630,3900502355,2646989179,2239226925,1385611592,28519677,3216104696,2765690266,1672190596,991460047,913276224,1657986010,485134676,3813222821,208923628,2789539156,1301242384,3465677171,2357001224,890073919,3056960214,4284214637,1887431665,4093835118,3885012760,1760124998,3824332994,4202254667,3078280703,4188009210,3151802351,2213603394,3771887961,1049480879,1920093458,1596525229,970144709,3709106209,2144843342,4078254904,3496281291,2251727894,606476136,2718208755,4260698614,758409253,2537061395,1525070089,4127561221,183178470,851261457,1521262235,1475932078,2401505510,590156362,2195364622,2822989073,1956352541,3266950729,558321529,2293627180,3698923473,3217928243,2160044778,1513511982,3203192056,795412505,1519701763,468810285,3835858205,293340943,2072538334,616118151,1901381734,459201756,2456374687,3277587658,2596066538,2854128764,2581881353,1739861919,2664437933,3569307965,1991218382,4174885870,2088623300,481855255,701169116,1481157542,2360893067,4194641932,4030699666,171161796,1749474092,3510021112,2035746501,4075436995,1001174284,2657818062,3358764468,494721765,3914431910,3744616923,1851381768,1010480880,2317860844,1016352437,3565762644,1242765766,2155066206,2386513543,2734139700,643779138,1954132151,1633899924,2159095599,3100651720,1967765976,3577247558,4214933066,3761638261,2166476500,2601123522,95968551,2658898357,1942155268,373899699,426507988,1694055557,528324004,598693430,3602955889,3964128899,4271729452,3518429585,1246266208,42759873,877900272,776016407,98747343,3414738613,2082328867,211091088,2850277844,1462893947,1268950,1729365346,3923525612,1301892772,3690860050,570808415,2025216958,324627133,1475932078,750437406,4009796778,959885984,3504908289,2871392054,1633653256,3253142563,2156146746,1721344834,1635781887,2659114823,3598646234,1468783300,2870341610,3475879873,2002343311,3645411615,4081076334,2006277628,3485962356,3780305649,4294425050,1710536722,454554056,3598505776,964390392,4278297890,2591804036,2422756079,2016315413,4069982864,2555096892,525716090,4252418588,1162917991,3487229378,4051645968,603394097,2119922039,1410808687,1559055702,128755654,1836120118,3180535391,256037813,414970214,80668479,1266317121,1618856420,2778534700,88706368,4003469182,244369109,3964992372,3607273746,3845301153,3203834274,1201178379,136774736,714379241,3758001736,1407753813,2215310631,231593609,3508376742,726172698,3462502993,308862704,3381383376,2054048712,1603949764,1187806448,3465858463,2443342986,454592385,1267514923,3824039239,820261283,14321907,3379396725,285065871,3870785185,2148471288,1217842933,758483506,3415754454,1216175182,2680179535,908976250,333928532,2049754406,1486253607,1907605185,639814098,2184148615,465406831,1013332334,754673927,1363150469,3294070424,1475932078,1475932078,1399002379,69903028,2045412938,4070581251,3953661059,4215234691,1522179298,454832969,3746418501,923142845,2207925753,4110138591,2591678063,1318518983,401470965,1846943743,3390726045,2518849893,4110707178,62480325,2877043601,3070976711,961160657,4105976198,1227085521,1368728002,3026156015,519076114,3890736079,3930791341,2361445251,2679194294,2956507517,3203563826,1372542504,284995548,4014277213,2497936966,3570646303,1371498076,3587312806,4007230579,263415998,266785166,2207997077,524718430,3712810010,2333052247,1764657277,3925990686,656710043,236349442,1243241737,3562657487,101768152,594885019,3353890438,248637421,4163784863,2463028965,3087711866,3145065943,2498347723,2978504649,375824685,670272093,3205028309,2945473674,553204994,3811672753,2297141915,2032925401,1823853057,1084642587,3705109053,1647674663,382611201,2223468574,425881799,1212575818,4268388814,2757135639,380915719,4005487918,700708481,3213895205,4112941219,3945014198,2974857187,3933788052,863990462,3919778373,1210830815,1024068503,3866486624,808077332,4155392450,4239861657,102259119,3248669336,1475932078,4143537550,4110844364,2130344600,1037694712,1771784288,3957395857,3452626355,3598856197,3963056127,1730385093,3726767546,760577327,1554502290,1734707720,632755741,3672183647,3404563514,2872596611,4238089366,3468680706,1516826468,1720030364,3173270639,329145023,2513738780,356390903,1915465131,1518434931,2862084534,884236893,2025428714,3254290528,1167711490,3980365243,2459379091,3854474651,136860953,844385548,2221618579,682855689,456025253,2405583723,2340864839,2420806889,636310042,3720937928,3838284871,2920529973,385811128,2019376507,3191787557,297236226,3876865055,1512149468,3958263151,1506601118,3561603944,1832305547,1602136303,2047183728,1842993317,999387732,1543924992,1032714700,2475090073,1246533462,98328826,3380939593,2418372456,1091706853,1577319206,1652841675,3718010629,1875243003,2853971876,3745030653,4270728476,1838992389,1432171170,2022616821,1336290229,3060042815,422741477,495639987,2092702949,2324300999,1232550728,2197471467,1723598945,4282404971,3391723275,836386384,2947445806,3743773240,2016422363,1814869952,3719056997,3313326682,1976877341,3124971744,1475932078,3016712956,1979797646,1183515206,3534963753,1840905633,1115956164,2759363593,2629166892,3814908553,907691709,2292938191,1040336648,1017800108,2337408522,1787992321,2049172588,738405944,4179832654,3341853796,638620649,2175441604,606296248,3151483340,1006224888,1162250691,3116256816,3891443904,381435133,1444631482,2519726484,876448307,288477377,1854392216,2739850528,2394286189,2679660791,681060782,3130512933,1539605306,100308248,1071739370,721371342,2738127751,2859383570,3403494564,3114976111,1855668175,3802337993,2690398437,2071298015,3439878796,4133423232,207034957,3852639123,1303088352,3635701711,3728656177,583891943,2907159107,2077655146,448794230,615586219,3308587914,1013110249,1764042289,4235305553,2146012185,3099834910,105583757,1799893206,537541326,2458490698,3957386302,784866888,1613095013,1005074123,3464311052,3334928300,3627355317,1176559904,853428868,2239549241,1347546091,2577430824,1489475593,3852091630,4098197516,2599035380,4045357712,2718801380,1365947441,328110427,2164984020,673712497,214180116,30944860,1873013067,2037068428,1361829298,574671952,1475932078,962195008,3420982747,3692999298,66458682,2790067218,2018827531,1430599627,43533593,2356865485,1831563790,415629740,1997372031,464080575,949749522,2412642304,1740446828,75078428,3402860516,2846776447,2016818163,1027402406,4288815471,123994234,2058871005,415023610,630073727,4250732094,3148340743,69740661,2688142673,2538174055,3286707353,1823814761,685052682,608425056,304280323,3006054759,3228817403,2451214618,3582913323,3186710865,639505342,2256518546,2226677916,2925870131,3147601570,2876204287,3576984707,1947679012,464620125,1263359034,1485913353,2129875352,1649243501,899181607,3664570435,2959074822,188632213,3890386862,1189295059,2341664307,686389136,2686777569,3777651455,4271191967,3907398237,3329997800,2245760535,2057629287,1235004456,1203146418,207072182,1538416047,1122436982,396109090,4078712622,968436805,2509168532,546682907,1643950458,1375290490,3796103361,186132974,3465433298,2507246800,2952174864,1336559086,3011211570,896396982,33300456,2065219512,3984930034,88664090,3694504127,883798152,3554074050,2377310343,3332130883,1721420430,1527169100,1475932078,680640990,843521611,3080420495,1299572823,3251167534,3511253746,3910665117,558006339,2348056526,3071621499,2531998383,398357604,2782106744,1113615523,1081527243,236258719,2281899916,879898656,3416824033,3373745091,2576830007,358916927,145884860,2449261337,4092437372,3029453546,3998255648,4101825755,4035875946,4122325429,2663567998,1233167749,2616443039,2426503691,1255733128,2970769837,3340018879,1867404624,4052130641,386257033,3160695746,1689948893,2689174440,3645629961,3161728118,1568816772,437664960,2673165072,35426599,2655842707,1054329907,3457476931,269861916,2594549853,2597426616,157286671,3107938504,1774787540,277653450,1437285523,2361355041,4115420971,4252648429,3209110603,4005828126,621676976,3731902935,1936375901,77835554,1872327946,3566116711,3893310884,1376808856,1853101859,890970048,1993850901,237065659,3951861417,1874240106,3157307210,1189131065,582175755,2683890486,3256648034,1847265683,1121410699,1126372695,1846616866,583183091,1598670349,377956364,3639545782,798953284,1850715256,3379870641,839506987,3058043793,3577636145,969915554,2043424756,1475932078,477556300,4106365127,3696326584,2873151665,4029262087,1234428709,204991472,2115966412,4238600626,3941699655,2917880577,4164975643,1264145344,790310388,1144880034,3527071167,194022830,1860081722,2012356074,3775446025,1735344001,876112787,1865720872,1043451373,903861901,689306731,27781182,3461365781,2974330118,1946603787,1740189302,2680687692,2220396524,1475932078,1475932078,3407514427,107838651,1963388594,1597156853,1597156853,529193907,1322993309,1475932078,3209243126,529193907,4084504255,2680783133,1597156853,3547893342,1475932078,693672836,3828817421,2549966419,43653941,3051863181,2609827955,3144537318,1597156853,803820499,223143849,1475932078,4134697544,3609836080,788094979,3390278044,656212304,2663353824,529193907,4073884384,334165224,3936875123,865176824,3029480074,45221774,2221829444,1407402909,1599263895,835831332,2465648309,2622132624,775564599,1883700082,17928471,25653050,3334233039,3976330841,1254587112,1475932078,747823015,232007876,760925063,2518473540,37133442,2513286040,3210964464,1847985140,2690811871,2728082036,529193907,4187564740,119834965,1061802200,2691253584,1288304899,4032020751,4102933577,2433043907,1010674793,1597156853,4224450281,529193907,3948989217,2130025937,928004342,3208745299,374617435,1597156853,540054156,474637681,1310788065,1886378415,1475932078,529193907,3663910004,239382924,1644697274,3821159193,157609081,1604145703,431840946,139321933,2224907474,2527146356,2152749101,936271390,3403694283,119834965,1475932078] \ No newline at end of file +column: variant with hashes: [1023594347,3348501307,7038117,750646757,1023594347,1285578128,750646757,648865016,750646757,1850317735,1660060187,1978118196,7038117,1660060187,1285578128,1978118196,1285578128,1978118196,1660060187,1285578128,3348501307,750646757,80012773,1186024589,1023594347,1186024589,750646757,542292976,1660060187,750646757,1285578128,1023594347,542292976,1978118196,750646757,648865016,1023594347,648865016,3348501307,1023594347,1978118196,7038117,1285578128,80012773,7038117,3348501307,1186024589,1660060187,648865016,80012773,1850317735,1186024589,7038117,750646757,7038117,1186024589,648865016,1023594347,7038117,542292976,1978118196,1186024589,1660060187,1023594347,3348501307,1023594347,1660060187,1850317735,1660060187,1023594347,542292976,1186024589,1850317735,80012773,1978118196,750646757,1023594347,1285578128,7038117,1660060187,648865016,648865016,542292976,1285578128,1978118196,542292976,1023594347,3348501307,7038117,1978118196,1285578128,3348501307,542292976,3348501307,648865016,648865016,1186024589,750646757,1978118196,7038117,1475932078,3031791848,1475932078,2847341008,3031791848,867831412,2847341008,3913229208,3913229208,3913229208,1475932078,3947181464,2847341008,3913229208,867831412,3913229208,867831412,2847341008,1475932078,4041940491,3031791848,1475932078,4041940491,867831412,867831412,4041940491,4041940491,3913229208,867831412,3913229208,3913229208,1475932078,1475932078,2847341008,867831412,3913229208,1475932078,4041940491,867831412,3913229208,2847341008,3031791848,4041940491,867831412,2847341008,4041940491,3913229208,867831412,1475932078,2847341008,3947181464,867831412,1475932078,867831412,867831412,867831412,3031791848,1475932078,3913229208,4041940491,3947181464,3913229208,867831412,1475932078,867831412,2847341008,2847341008,3913229208,4041940491,2847341008,4041940491,867831412,3031791848,1475932078,4041940491,3913229208,3947181464,867831412,3947181464,867831412,1475932078,1475932078,2847341008,2847341008,4041940491,3947181464,3913229208,3031791848,2847341008,2847341008,1475932078,3947181464,3031791848,4041940491,4041940491,3947181464,2847341008,867831412,1475932078,3031791848,3913229208,1475932078,209602798,1519515423,627494611,172855780,1519515423,3348501307,1317779294,1519515423,859160306,3525052757,627494611,1701595328,1317779294,1386025943,2789129758,3348501307,859160306,2789129758,2789129758,3348501307,3348501307,1317779294,859160306,1519515423,172855780,1317779294,627494611,3525052757,209602798,3348501307,1701595328,3525052757,1519515423,1317779294,3525052757,2789129758,1317779294,3348501307,3348501307,2789129758,3348501307,1655266202,912281971,859160306,627494611,1701595328,1701595328,1655266202,2789129758,912281971,172855780,912281971,859160306,209602798,1701595328,1519515423,1701595328,1655266202,3348501307,1655266202,3348501307,912281971,1386025943,209602798,1519515423,172855780,1701595328,912281971,1655266202,1519515423,3348501307,172855780,1317779294,1386025943,172855780,859160306,1519515423,3348501307,3525052757,3348501307,859160306,627494611,2789129758,1317779294,1701595328,627494611,2789129758,3348501307,172855780,859160306,859160306,1655266202,1701595328,859160306,209602798,627494611,3348501307,1386025943,1519515423,3348501307,1475932078,3913229208,2227214797,3913229208,3789747863,3913229208,510528736,3913229208,3789747863,3789747863,3913229208,3837297611,2884501567,3106970526,1486651970,3913229208,3913229208,2870437049,3913229208,2193573656,3913229208,3969492334,3789747863,3789747863,3789747863,3789747863,922224195,1404624078,3913229208,3913229208,894904681,2945052265,3913229208,3789747863,3789747863,3789747863,3789747863,3913229208,3803986276,952637510,3590416673,2982256563,3789747863,527179391,2488421031,3913229208,3913229208,3103095817,3819337278,3789747863,1778301207,4209926658,3913229208,3913229208,2263431414,1475703906,3913229208,3789747863,662586099,3789747863,2152872312,3913229208,3711287442,2774706557,734011670,3913229208,3913229208,770703466,3913229208,2061950507,3789747863,3844879621,2305665715,3913229208,1905805162,2076289177,2276582000,2862932646,3913229208,3789747863,3789747863,1790490335,3789747863,2673207464,3913229208,3913229208,2752541153,3913229208,61063314,3913229208,3913229208,3913229208,1570067002,927843573,4109279470,3789747863,3913229208,3913229208,2279442698,3789747863,3789747863,1475932078,994743792,508741966,1653940526,2149805334,1514064903,204116760,2452926277,1433913665,2429601308,652091073,1368446641,819364038,225505346,2166310632,4197863238,2928806398,2417368046,4088829711,2983299479,3050483193,3658804321,2359154283,2166866903,2311372238,1273162069,2361796754,2306253394,4186093274,132017468,3444701572,1657736054,2110120670,3993033469,1181468239,3338910703,4003063492,128707555,3197550060,4177065148,1748921945,1932288821,1261617742,57904453,3661577271,631151170,3391661379,3864978010,825637605,2896814425,3850472635,2114036044,1938804129,1989294608,2135630268,2749819143,2249269242,2166490591,3658338394,206301486,3406566011,3480816730,2483750349,2450829100,3203273726,1520157975,3739283153,836974551,276421067,1559951316,2546274569,281244828,620132210,1886968462,3731299590,1967291532,582974991,333658188,1158265913,2124386474,601020141,2327853911,3766092499,1929197136,1938425491,2014566204,1186492516,2416989252,93117554,3642239414,4079999945,2340083963,886337496,1818502550,2860133125,1710656235,2953800498,712372024,1395117189,2137342595,4167342059,1475932078,1532900103,4102217294,1861653971,86232176,3878403598,856543581,1990831151,1389279149,2648483542,610102681,1125676472,2131299136,1431885405,648643318,1154374898,1415151150,553323391,2444387708,3338267287,462740891,3531993375,2545773242,3571033511,4161475646,578643968,32999274,2693211556,4081847962,1977267376,16015138,4191625365,3165203105,4042815043,3530908945,2930385635,514791064,2381228895,2582983294,2733154394,2723419908,2102014736,4026074225,2733691661,1863037094,260662800,291487530,418929061,2054872369,67313275,3802694445,3580006222,4048666199,3217207799,4162195315,3127763070,3422048662,1026351827,246213353,3841167754,1545418915,1870495953,419849037,489370714,3037505443,3175710511,3183483743,3067513982,3915479902,1518386329,3972813200,1407358669,2465219998,2872752475,1819131689,2712973792,2983061508,3050657900,2968375702,614867631,3126861552,3321798155,3633271578,661359661,935360676,2459635599,400606706,2234201005,289237747,3823144031,3045874506,532981447,2427139017,1787447513,3529392557,1390139246,3410864086,2906135130,3533245323,1302222766,60426080,1475932078,3821307458,3267483048,3678593449,1987368558,1372039361,2116402128,902325561,14676458,4205872991,284754422,761961319,1674190002,4167725589,1560684105,3394419928,3789385250,2732301246,2375493248,696532534,3932925440,2125120050,1663239372,1943113553,538100978,926229152,1378385960,1088489987,3649442146,83345092,3072167853,861979694,3345948570,329056656,1852696603,953614521,2412121146,1455304982,2016720967,1019662472,3889415001,2242446190,3751168679,1065796466,431925897,557433494,3314126543,1579778508,2348561599,1405549853,3835521876,1362788148,3089016189,1743993695,2231007820,3064185354,1836043055,929946084,3204192861,3942771720,2101319852,2662155723,3334980251,613875170,1793892769,510037288,2475133148,716514594,3379275905,727614721,2566562724,236070862,4102414313,21235350,186075835,4139730481,1258893555,2141602116,3382940338,2013202621,1432283856,3068870504,4179200396,793069721,1513643002,2052642492,1974136374,2616712913,101081864,446688245,1177254224,2509066101,2004131098,194002834,1438287892,2325675989,2681487709,2856779751,802126067,3977626866,919162971,1475932078,1137081298,337542302,3284884598,1773676428,188465278,3891293334,1349916049,3657755687,3451149335,1778783341,2306226865,352545257,30317693,2359603050,1234701875,1774508416,3716537525,1387435890,4045098628,3903474068,32629003,118178606,3273937441,3914364692,2353886095,2826420805,3441888086,3345249612,2754847602,1721998878,4135490579,1948326393,2633740817,205560752,2559828432,4008747519,718784075,1350663777,2707354727,232503578,1094980036,3215154101,2414399157,3786811848,3561699290,3723584653,4067691960,1504215167,281997699,235531702,42481190,3445782416,15083132,3510922785,1302166824,1354343922,3882424411,1541555833,111901156,977232459,2099073180,1268917631,232672324,478753186,1478119740,3486668107,531376819,3664431455,1061580509,1477256723,2073744111,2056257964,2158626208,3067464461,1294964912,1459438953,3362223921,2781734454,379986224,1295375361,3283668508,824874935,2250241074,2568691077,513030551,2024475634,1916448804,1055216648,4063477824,1473670213,607304147,1303678041,3222238822,48604406,700507791,3871034329,807782587,302343498,3814693210,47033331,1475932078,1475932078,803926826,1534921777,1636101216,4199349286,590678445,434981088,3207488851,597381227,3887754035,2052454223,59445899,1271505007,4055126324,4054273983,649110147,157750617,772397764,4011824477,1742443568,3185618184,2914823100,3267544278,368967522,847936237,2780716343,154523379,2423946954,2128169158,3933838920,1615791110,2160256234,2906411161,4181667302,550458654,2433573448,559806494,643164114,29033650,2892345287,3905830276,3987819672,3811655818,3340147241,638674595,258945717,2266104978,248373341,2847735307,3768282239,3168898668,1463395019,3610977856,3469785025,28519677,2279659349,1697711864,1875972300,3614920451,770462213,1657986010,1748128046,2664292882,1032641693,2789539156,1301242384,3465677171,2357001224,656061263,3940650205,2347417961,535998567,954920319,3885012760,3963892951,3044130204,4202254667,1132468991,2020480232,4197475817,1981873597,3632495348,1843085674,2236890509,3959216715,3156467377,1408354744,4260061686,1516744347,339963733,159942894,2043222002,3032700644,331136486,364320243,2151515559,2059697500,2888317503,3579994639,2442167468,1447087105,1475932078,2401505510,590156362,2195364622,2822989073,1956352541,3266950729,558321529,2293627180,3698923473,3217928243,2160044778,1513511982,3203192056,795412505,1519701763,468810285,3835858205,293340943,2072538334,616118151,1901381734,459201756,2456374687,3277587658,2596066538,2854128764,2581881353,1739861919,2664437933,3569307965,1991218382,4174885870,2088623300,481855255,701169116,1481157542,2360893067,4194641932,4030699666,171161796,1749474092,3510021112,2035746501,4075436995,1001174284,2657818062,3358764468,494721765,3914431910,3744616923,1851381768,1010480880,2317860844,1016352437,3565762644,1242765766,2155066206,2386513543,2734139700,643779138,1954132151,1633899924,2159095599,3100651720,1967765976,3577247558,4214933066,3761638261,2166476500,2601123522,95968551,2658898357,1942155268,373899699,426507988,1694055557,528324004,598693430,3602955889,3964128899,4271729452,3518429585,1246266208,42759873,877900272,776016407,98747343,3414738613,2082328867,211091088,2850277844,1462893947,1268950,1729365346,3923525612,1301892772,3690860050,570808415,2025216958,324627133,1475932078,750437406,4009796778,959885984,3504908289,2871392054,1633653256,3253142563,2156146746,1721344834,1635781887,2659114823,3598646234,1468783300,2870341610,3475879873,2002343311,3645411615,4081076334,2006277628,3485962356,3780305649,4294425050,1710536722,454554056,3598505776,964390392,4278297890,2591804036,2422756079,2016315413,4069982864,2555096892,525716090,4252418588,1162917991,3487229378,4051645968,603394097,2119922039,1410808687,1559055702,128755654,1836120118,3180535391,256037813,414970214,80668479,1266317121,1618856420,2778534700,88706368,4003469182,244369109,3964992372,3607273746,3845301153,3203834274,1201178379,136774736,714379241,3758001736,1407753813,2215310631,231593609,3508376742,726172698,3462502993,308862704,3381383376,2054048712,1603949764,1187806448,3465858463,2443342986,454592385,1267514923,3824039239,820261283,14321907,3379396725,285065871,3870785185,2148471288,1217842933,758483506,3415754454,1216175182,2680179535,908976250,333928532,2049754406,1486253607,1907605185,639814098,2184148615,465406831,1013332334,754673927,1363150469,3294070424,1475932078,1475932078,2454955850,307317990,1843320580,2689810637,521554053,746538813,3847811813,4085419466,3315599752,3840283830,1028441694,593992957,3064139871,1963613286,2883484251,3921172366,1502988507,1396715462,2031261614,103863098,1233760996,2308447950,1410587158,1250140908,1105785024,1869787579,1977231784,2350196830,24707440,3006987179,1942495807,243278561,3767842018,1617839206,3080293014,3638221212,3635086575,783832108,2908009883,3228605337,1428731149,1756052824,4057099509,1313997183,3209720040,1465427063,680451596,2523525698,2004640746,224122929,130675611,924462452,2420467377,3043025742,712111242,3190132772,563488250,2884924318,2505452534,3723222632,1041573890,2256151026,527697742,422027072,3088869068,1863587921,1963869502,1595503862,1985281455,2166663648,1337471443,3763954512,3612345107,4230814320,2531762327,606703644,1004993920,91826258,83837496,2608012888,1981892724,260504410,2877914252,2615931808,419782515,1820721414,1373581830,2606281665,3598188362,1268424392,10752841,3789572183,1132860687,3529665047,1150203099,3400717728,3129690101,1112276931,2011241386,1772396910,1475932078,4143537550,4110844364,2130344600,1037694712,1771784288,3957395857,3452626355,3598856197,3963056127,1730385093,3726767546,760577327,1554502290,1734707720,632755741,3672183647,3404563514,2872596611,4238089366,3468680706,1516826468,1720030364,3173270639,329145023,2513738780,356390903,1915465131,1518434931,2862084534,884236893,2025428714,3254290528,1167711490,3980365243,2459379091,3854474651,136860953,844385548,2221618579,682855689,456025253,2405583723,2340864839,2420806889,636310042,3720937928,3838284871,2920529973,385811128,2019376507,3191787557,297236226,3876865055,1512149468,3958263151,1506601118,3561603944,1832305547,1602136303,2047183728,1842993317,999387732,1543924992,1032714700,2475090073,1246533462,98328826,3380939593,2418372456,1091706853,1577319206,1652841675,3718010629,1875243003,2853971876,3745030653,4270728476,1838992389,1432171170,2022616821,1336290229,3060042815,422741477,495639987,2092702949,2324300999,1232550728,2197471467,1723598945,4282404971,3391723275,836386384,2947445806,3743773240,2016422363,1814869952,3719056997,3313326682,1976877341,3124971744,1475932078,3388060211,1855157588,1350588632,2819418714,1960643832,3122859666,737331241,3429737122,2021508713,931950175,2699465559,2385202791,155363890,312643501,778668459,3505782968,1262675293,1430998865,1981892426,4181133807,3735379389,3914062906,1682855378,772185061,3558820544,3755577422,3047780057,2332048110,718753837,1037183699,3401684344,1154210690,2913727725,4273260693,2369155824,3664479333,2521752208,2686469588,1842215641,2431933767,693621097,2698556740,1924001333,4225446471,1717780884,1280043715,1934616363,3129826267,3892658070,3988195118,1496178504,1856114885,2899047057,3941961547,3030610379,877978698,2892259652,329086752,3630951362,1561455074,3488068275,3958274066,625837389,442542887,1503968616,3424975254,473787589,1351071368,3410925217,1276653472,1347508205,131490312,93773039,1270003783,1065679935,4266343376,3810263239,1087742589,2709134845,1823070352,194057570,1287447319,2971160525,1087995357,31052648,2712604629,2626403650,3028356822,64428271,3212356382,3938400870,734201728,3917275373,3005036952,3148892867,2476251189,1363626631,740472264,847356265,3167275701,1475932078,962195008,3420982747,3692999298,66458682,2790067218,2018827531,1430599627,43533593,2356865485,1831563790,415629740,1997372031,464080575,949749522,2412642304,1740446828,75078428,3402860516,2846776447,2016818163,1027402406,4288815471,123994234,2058871005,415023610,630073727,4250732094,3148340743,69740661,2688142673,2538174055,3286707353,1823814761,685052682,608425056,304280323,3006054759,3228817403,2451214618,3582913323,3186710865,639505342,2256518546,2226677916,2925870131,3147601570,2876204287,3576984707,1947679012,464620125,1263359034,1485913353,2129875352,1649243501,899181607,3664570435,2959074822,188632213,3890386862,1189295059,2341664307,686389136,2686777569,3777651455,4271191967,3907398237,3329997800,2245760535,2057629287,1235004456,1203146418,207072182,1538416047,1122436982,396109090,4078712622,968436805,2509168532,546682907,1643950458,1375290490,3796103361,186132974,3465433298,2507246800,2952174864,1336559086,3011211570,896396982,33300456,2065219512,3984930034,88664090,3694504127,883798152,3554074050,2377310343,3332130883,1721420430,1527169100,1475932078,680640990,843521611,3080420495,1299572823,3251167534,3511253746,3910665117,558006339,2348056526,3071621499,2531998383,398357604,2782106744,1113615523,1081527243,236258719,2281899916,879898656,3416824033,3373745091,2576830007,358916927,145884860,2449261337,4092437372,3029453546,3998255648,4101825755,4035875946,4122325429,2663567998,1233167749,2616443039,2426503691,1255733128,2970769837,3340018879,1867404624,4052130641,386257033,3160695746,1689948893,2689174440,3645629961,3161728118,1568816772,437664960,2673165072,35426599,2655842707,1054329907,3457476931,269861916,2594549853,2597426616,157286671,3107938504,1774787540,277653450,1437285523,2361355041,4115420971,4252648429,3209110603,4005828126,621676976,3731902935,1936375901,77835554,1872327946,3566116711,3893310884,1376808856,1853101859,890970048,1993850901,237065659,3951861417,1874240106,3157307210,1189131065,582175755,2683890486,3256648034,1847265683,1121410699,1126372695,1846616866,583183091,1598670349,377956364,3639545782,798953284,1850715256,3379870641,839506987,3058043793,3577636145,969915554,2043424756,1475932078,3749633602,4106365127,3696326584,2873151665,170633546,3007816368,887438575,2368426406,3870407398,3717463284,2917880577,4164975643,1264145344,4216424914,2226740475,3527071167,194022830,3966894947,376883549,3775446025,1735344001,1156082452,1865720872,2560989750,903861901,4128248465,4275323060,3461365781,2974330118,83860697,1333549607,511924981,2220396524,1475932078,1475932078,3407514427,107838651,1963388594,1597156853,1597156853,529193907,1322993309,1475932078,3209243126,529193907,4084504255,2680783133,1597156853,3547893342,1475932078,693672836,3828817421,2549966419,43653941,3051863181,2609827955,3144537318,1597156853,803820499,223143849,1475932078,4134697544,3609836080,788094979,3390278044,656212304,2663353824,529193907,4073884384,334165224,3936875123,865176824,3029480074,45221774,2221829444,1407402909,1599263895,835831332,2465648309,2622132624,775564599,1883700082,17928471,25653050,3334233039,3976330841,1254587112,1475932078,747823015,232007876,760925063,2518473540,37133442,2513286040,3210964464,1847985140,2690811871,2728082036,529193907,4187564740,119834965,1061802200,2691253584,1288304899,4032020751,4102933577,2433043907,1010674793,1597156853,4224450281,529193907,3948989217,2130025937,928004342,3208745299,374617435,1597156853,540054156,474637681,1310788065,1886378415,1475932078,529193907,3663910004,239382924,1644697274,3821159193,157609081,1604145703,431840946,139321933,2224907474,2527146356,2152749101,936271390,3403694283,119834965,1475932078] \ No newline at end of file diff --git a/be/test/expected_result/vec/columns/column_variant_update_crcs_with_value.out_with_nullmap b/be/test/expected_result/vec/columns/column_variant_update_crcs_with_value.out_with_nullmap index ec1aaede6244ad..27853e883d8914 100644 --- a/be/test/expected_result/vec/columns/column_variant_update_crcs_with_value.out_with_nullmap +++ b/be/test/expected_result/vec/columns/column_variant_update_crcs_with_value.out_with_nullmap @@ -1 +1 @@ -column: variant with hashes: [1023594347,3348501307,3348501307,750646757,1023594347,1285578128,750646757,648865016,750646757,1850317735,1660060187,1978118196,3348501307,1660060187,1285578128,1978118196,1285578128,1978118196,1660060187,1285578128,3348501307,750646757,80012773,1186024589,1023594347,1186024589,750646757,80012773,1660060187,750646757,1285578128,1023594347,80012773,1978118196,750646757,648865016,1023594347,648865016,3348501307,1023594347,1978118196,3348501307,1285578128,80012773,3348501307,3348501307,1186024589,1660060187,648865016,80012773,1850317735,1186024589,3348501307,750646757,3348501307,1186024589,648865016,1023594347,3348501307,80012773,1978118196,1186024589,1660060187,1023594347,3348501307,1023594347,1660060187,1850317735,1660060187,1023594347,80012773,1186024589,1850317735,80012773,1978118196,750646757,1023594347,1285578128,3348501307,1660060187,648865016,648865016,80012773,1285578128,1978118196,80012773,1023594347,3348501307,3348501307,1978118196,1285578128,3348501307,80012773,3348501307,648865016,648865016,1186024589,750646757,1978118196,3348501307,1475932078,3031791848,1475932078,2847341008,3031791848,867831412,2847341008,3913229208,3913229208,3913229208,1475932078,3947181464,2847341008,3913229208,867831412,3913229208,867831412,2847341008,1475932078,4041940491,3031791848,1475932078,4041940491,867831412,867831412,4041940491,4041940491,3913229208,867831412,3913229208,3913229208,1475932078,1475932078,2847341008,867831412,3913229208,1475932078,4041940491,867831412,3913229208,2847341008,3031791848,4041940491,867831412,2847341008,4041940491,3913229208,867831412,1475932078,2847341008,3947181464,867831412,1475932078,867831412,867831412,867831412,3031791848,1475932078,3913229208,4041940491,3947181464,3913229208,867831412,1475932078,867831412,2847341008,2847341008,3913229208,4041940491,2847341008,4041940491,867831412,3031791848,1475932078,4041940491,3913229208,3947181464,867831412,3947181464,867831412,1475932078,1475932078,2847341008,2847341008,4041940491,3947181464,3913229208,3031791848,2847341008,2847341008,1475932078,3947181464,3031791848,4041940491,4041940491,3947181464,2847341008,867831412,1475932078,3031791848,3913229208,1475932078,209602798,1519515423,627494611,172855780,1519515423,3348501307,1317779294,1519515423,859160306,3525052757,627494611,1701595328,1317779294,1386025943,2789129758,3348501307,859160306,2789129758,2789129758,3348501307,3348501307,1317779294,859160306,1519515423,172855780,1317779294,627494611,3525052757,209602798,3348501307,1701595328,3525052757,1519515423,1317779294,3525052757,2789129758,1317779294,3348501307,3348501307,2789129758,3348501307,1655266202,912281971,859160306,627494611,1701595328,1701595328,1655266202,2789129758,912281971,172855780,912281971,859160306,209602798,1701595328,1519515423,1701595328,1655266202,3348501307,1655266202,3348501307,912281971,1386025943,209602798,1519515423,172855780,1701595328,912281971,1655266202,1519515423,3348501307,172855780,1317779294,1386025943,172855780,859160306,1519515423,3348501307,3525052757,3348501307,859160306,627494611,2789129758,1317779294,1701595328,627494611,2789129758,3348501307,172855780,859160306,859160306,1655266202,1701595328,859160306,209602798,627494611,3348501307,1386025943,1519515423,3348501307,1475932078,3913229208,2227214797,3913229208,3789747863,3913229208,510528736,3913229208,3789747863,3789747863,3913229208,3837297611,2884501567,3106970526,1486651970,3913229208,3913229208,2870437049,3913229208,2193573656,3913229208,3969492334,3789747863,3789747863,3789747863,3789747863,922224195,1404624078,3913229208,3913229208,894904681,2945052265,3913229208,3789747863,3789747863,3789747863,3789747863,3913229208,3803986276,952637510,3590416673,2982256563,3789747863,527179391,2488421031,3913229208,3913229208,3103095817,3819337278,3789747863,1778301207,4209926658,3913229208,3913229208,2263431414,1475703906,3913229208,3789747863,662586099,3789747863,2152872312,3913229208,3711287442,2774706557,734011670,3913229208,3913229208,770703466,3913229208,2061950507,3789747863,3844879621,2305665715,3913229208,1905805162,2076289177,2276582000,2862932646,3913229208,3789747863,3789747863,1790490335,3789747863,2673207464,3913229208,3913229208,2752541153,3913229208,61063314,3913229208,3913229208,3913229208,1570067002,927843573,4109279470,3789747863,3913229208,3913229208,2279442698,3789747863,3789747863,1475932078,4237828992,2008303805,1653940526,112374245,3733730049,4285855827,2984707496,3700321127,900459062,3907550024,4167518769,3307649970,840115646,775955525,1987254777,2928806398,2417368046,4219959955,2983299479,3276959282,3658804321,3252716672,2671334707,721963254,252419266,349309873,1834082302,1073459774,594613583,3444701572,1657736054,2110120670,3505457392,1181468239,46979895,4003063492,2822172505,190636968,3480188160,4123233519,3921153207,1261617742,57904453,3661577271,2727620890,1406550753,806342488,1248968977,153207857,3850472635,1770926790,1938804129,68353157,4116010128,145263641,4264464151,1502905642,2138020051,206301486,3586908682,2851690921,2483750349,2306514692,3203273726,1444023869,3739283153,234059290,4159529475,841927421,998674515,3214677553,949805070,2760970111,1820470762,3114814069,100231172,2754194091,4202888641,423086264,2132589211,2385984422,2036753536,2238884718,2787517797,2014566204,1186492516,3777309008,1916247349,3642239414,1983143352,698751093,1937501638,2032881382,1672472094,1113661848,2866901201,300997757,1395117189,2137342595,4062985663,1475932078,1532900103,4102217294,1861653971,86232176,3878403598,856543581,1990831151,1389279149,2648483542,610102681,1125676472,2131299136,1431885405,648643318,1154374898,1415151150,553323391,2444387708,3338267287,462740891,3531993375,2545773242,3571033511,4161475646,578643968,32999274,2693211556,4081847962,1977267376,16015138,4191625365,3165203105,4042815043,3530908945,2930385635,514791064,2381228895,2582983294,2733154394,2723419908,2102014736,4026074225,2733691661,1863037094,260662800,291487530,418929061,2054872369,67313275,3802694445,3580006222,4048666199,3217207799,4162195315,3127763070,3422048662,1026351827,246213353,3841167754,1545418915,1870495953,419849037,489370714,3037505443,3175710511,3183483743,3067513982,3915479902,1518386329,3972813200,1407358669,2465219998,2872752475,1819131689,2712973792,2983061508,3050657900,2968375702,614867631,3126861552,3321798155,3633271578,661359661,935360676,2459635599,400606706,2234201005,289237747,3823144031,3045874506,532981447,2427139017,1787447513,3529392557,1390139246,3410864086,2906135130,3533245323,1302222766,60426080,1475932078,3821307458,3267483048,3678593449,1987368558,1372039361,2116402128,902325561,14676458,4205872991,284754422,761961319,1674190002,4167725589,1560684105,3394419928,3789385250,2732301246,2375493248,696532534,3932925440,2125120050,1663239372,1943113553,538100978,926229152,1378385960,1088489987,3649442146,83345092,3072167853,861979694,3345948570,329056656,1852696603,953614521,2412121146,1455304982,2016720967,1019662472,3889415001,2242446190,3751168679,1065796466,431925897,557433494,3314126543,1579778508,2348561599,1405549853,3835521876,1362788148,3089016189,1743993695,2231007820,3064185354,1836043055,929946084,3204192861,3942771720,2101319852,2662155723,3334980251,613875170,1793892769,510037288,2475133148,716514594,3379275905,727614721,2566562724,236070862,4102414313,21235350,186075835,4139730481,1258893555,2141602116,3382940338,2013202621,1432283856,3068870504,4179200396,793069721,1513643002,2052642492,1974136374,2616712913,101081864,446688245,1177254224,2509066101,2004131098,194002834,1438287892,2325675989,2681487709,2856779751,802126067,3977626866,919162971,1475932078,1137081298,337542302,3284884598,1773676428,188465278,3891293334,1349916049,3657755687,3451149335,1778783341,2306226865,352545257,30317693,2359603050,1234701875,1774508416,3716537525,1387435890,4045098628,3903474068,32629003,118178606,3273937441,3914364692,2353886095,2826420805,3441888086,3345249612,2754847602,1721998878,4135490579,1948326393,2633740817,205560752,2559828432,4008747519,718784075,1350663777,2707354727,232503578,1094980036,3215154101,2414399157,3786811848,3561699290,3723584653,4067691960,1504215167,281997699,235531702,42481190,3445782416,15083132,3510922785,1302166824,1354343922,3882424411,1541555833,111901156,977232459,2099073180,1268917631,232672324,478753186,1478119740,3486668107,531376819,3664431455,1061580509,1477256723,2073744111,2056257964,2158626208,3067464461,1294964912,1459438953,3362223921,2781734454,379986224,1295375361,3283668508,824874935,2250241074,2568691077,513030551,2024475634,1916448804,1055216648,4063477824,1473670213,607304147,1303678041,3222238822,48604406,700507791,3871034329,807782587,302343498,3814693210,47033331,1475932078,1475932078,2186898052,1534921777,2754747580,3539438616,2072550807,3862243513,3388554620,597381227,3887754035,1834726908,565128977,2943960712,2339404461,4054273983,649110147,1978074792,1269192803,899089643,1742443568,1655919025,2948223609,3267544278,2984237480,847936237,3234146950,2195266427,430377206,3162992278,3933838920,2511536970,1997343675,3691980458,2265098137,2216379065,589674916,420279219,1363494854,1476431342,2369950088,3066718386,1318848225,834229161,2671101789,2435992496,1478940721,2266104978,2224538860,3693790829,1810483630,3900502355,2646989179,2239226925,1385611592,28519677,3216104696,2765690266,1672190596,991460047,913276224,1657986010,485134676,3813222821,208923628,2789539156,1301242384,3465677171,2357001224,890073919,3056960214,4284214637,1887431665,4093835118,3885012760,1760124998,3824332994,4202254667,3078280703,4188009210,3151802351,2213603394,3771887961,1049480879,1920093458,1596525229,970144709,3709106209,2144843342,4078254904,3496281291,2251727894,606476136,2718208755,4260698614,758409253,2537061395,1525070089,4127561221,183178470,851261457,1521262235,1475932078,2401505510,590156362,2195364622,2822989073,1956352541,3266950729,558321529,2293627180,3698923473,3217928243,2160044778,1513511982,3203192056,795412505,1519701763,468810285,3835858205,293340943,2072538334,616118151,1901381734,459201756,2456374687,3277587658,2596066538,2854128764,2581881353,1739861919,2664437933,3569307965,1991218382,4174885870,2088623300,481855255,701169116,1481157542,2360893067,4194641932,4030699666,171161796,1749474092,3510021112,2035746501,4075436995,1001174284,2657818062,3358764468,494721765,3914431910,3744616923,1851381768,1010480880,2317860844,1016352437,3565762644,1242765766,2155066206,2386513543,2734139700,643779138,1954132151,1633899924,2159095599,3100651720,1967765976,3577247558,4214933066,3761638261,2166476500,2601123522,95968551,2658898357,1942155268,373899699,426507988,1694055557,528324004,598693430,3602955889,3964128899,4271729452,3518429585,1246266208,42759873,877900272,776016407,98747343,3414738613,2082328867,211091088,2850277844,1462893947,1268950,1729365346,3923525612,1301892772,3690860050,570808415,2025216958,324627133,1475932078,750437406,4009796778,959885984,3504908289,2871392054,1633653256,3253142563,2156146746,1721344834,1635781887,2659114823,3598646234,1468783300,2870341610,3475879873,2002343311,3645411615,4081076334,2006277628,3485962356,3780305649,4294425050,1710536722,454554056,3598505776,964390392,4278297890,2591804036,2422756079,2016315413,4069982864,2555096892,525716090,4252418588,1162917991,3487229378,4051645968,603394097,2119922039,1410808687,1559055702,128755654,1836120118,3180535391,256037813,414970214,80668479,1266317121,1618856420,2778534700,88706368,4003469182,244369109,3964992372,3607273746,3845301153,3203834274,1201178379,136774736,714379241,3758001736,1407753813,2215310631,231593609,3508376742,726172698,3462502993,308862704,3381383376,2054048712,1603949764,1187806448,3465858463,2443342986,454592385,1267514923,3824039239,820261283,14321907,3379396725,285065871,3870785185,2148471288,1217842933,758483506,3415754454,1216175182,2680179535,908976250,333928532,2049754406,1486253607,1907605185,639814098,2184148615,465406831,1013332334,754673927,1363150469,3294070424,1475932078,1475932078,1399002379,69903028,2045412938,4070581251,3953661059,4215234691,1522179298,454832969,3746418501,923142845,2207925753,4110138591,2591678063,1318518983,401470965,1846943743,3390726045,2518849893,4110707178,62480325,2877043601,3070976711,961160657,4105976198,1227085521,1368728002,3026156015,519076114,3890736079,3930791341,2361445251,2679194294,2956507517,3203563826,1372542504,284995548,4014277213,2497936966,3570646303,1371498076,3587312806,4007230579,263415998,266785166,2207997077,524718430,3712810010,2333052247,1764657277,3925990686,656710043,236349442,1243241737,3562657487,101768152,594885019,3353890438,248637421,4163784863,2463028965,3087711866,3145065943,2498347723,2978504649,375824685,670272093,3205028309,2945473674,553204994,3811672753,2297141915,2032925401,1823853057,1084642587,3705109053,1647674663,382611201,2223468574,425881799,1212575818,4268388814,2757135639,380915719,4005487918,700708481,3213895205,4112941219,3945014198,2974857187,3933788052,863990462,3919778373,1210830815,1024068503,3866486624,808077332,4155392450,4239861657,102259119,3248669336,1475932078,4143537550,4110844364,2130344600,1037694712,1771784288,3957395857,3452626355,3598856197,3963056127,1730385093,3726767546,760577327,1554502290,1734707720,632755741,3672183647,3404563514,2872596611,4238089366,3468680706,1516826468,1720030364,3173270639,329145023,2513738780,356390903,1915465131,1518434931,2862084534,884236893,2025428714,3254290528,1167711490,3980365243,2459379091,3854474651,136860953,844385548,2221618579,682855689,456025253,2405583723,2340864839,2420806889,636310042,3720937928,3838284871,2920529973,385811128,2019376507,3191787557,297236226,3876865055,1512149468,3958263151,1506601118,3561603944,1832305547,1602136303,2047183728,1842993317,999387732,1543924992,1032714700,2475090073,1246533462,98328826,3380939593,2418372456,1091706853,1577319206,1652841675,3718010629,1875243003,2853971876,3745030653,4270728476,1838992389,1432171170,2022616821,1336290229,3060042815,422741477,495639987,2092702949,2324300999,1232550728,2197471467,1723598945,4282404971,3391723275,836386384,2947445806,3743773240,2016422363,1814869952,3719056997,3313326682,1976877341,3124971744,1475932078,3016712956,1979797646,1183515206,3534963753,1840905633,1115956164,2759363593,2629166892,3814908553,907691709,2292938191,1040336648,1017800108,2337408522,1787992321,2049172588,738405944,4179832654,3341853796,638620649,2175441604,606296248,3151483340,1006224888,1162250691,3116256816,3891443904,381435133,1444631482,2519726484,876448307,288477377,1854392216,2739850528,2394286189,2679660791,681060782,3130512933,1539605306,100308248,1071739370,721371342,2738127751,2859383570,3403494564,3114976111,1855668175,3802337993,2690398437,2071298015,3439878796,4133423232,207034957,3852639123,1303088352,3635701711,3728656177,583891943,2907159107,2077655146,448794230,615586219,3308587914,1013110249,1764042289,4235305553,2146012185,3099834910,105583757,1799893206,537541326,2458490698,3957386302,784866888,1613095013,1005074123,3464311052,3334928300,3627355317,1176559904,853428868,2239549241,1347546091,2577430824,1489475593,3852091630,4098197516,2599035380,4045357712,2718801380,1365947441,328110427,2164984020,673712497,214180116,30944860,1873013067,2037068428,1361829298,574671952,1475932078,962195008,3420982747,3692999298,66458682,2790067218,2018827531,1430599627,43533593,2356865485,1831563790,415629740,1997372031,464080575,949749522,2412642304,1740446828,75078428,3402860516,2846776447,2016818163,1027402406,4288815471,123994234,2058871005,415023610,630073727,4250732094,3148340743,69740661,2688142673,2538174055,3286707353,1823814761,685052682,608425056,304280323,3006054759,3228817403,2451214618,3582913323,3186710865,639505342,2256518546,2226677916,2925870131,3147601570,2876204287,3576984707,1947679012,464620125,1263359034,1485913353,2129875352,1649243501,899181607,3664570435,2959074822,188632213,3890386862,1189295059,2341664307,686389136,2686777569,3777651455,4271191967,3907398237,3329997800,2245760535,2057629287,1235004456,1203146418,207072182,1538416047,1122436982,396109090,4078712622,968436805,2509168532,546682907,1643950458,1375290490,3796103361,186132974,3465433298,2507246800,2952174864,1336559086,3011211570,896396982,33300456,2065219512,3984930034,88664090,3694504127,883798152,3554074050,2377310343,3332130883,1721420430,1527169100,1475932078,680640990,843521611,3080420495,1299572823,3251167534,3511253746,3910665117,558006339,2348056526,3071621499,2531998383,398357604,2782106744,1113615523,1081527243,236258719,2281899916,879898656,3416824033,3373745091,2576830007,358916927,145884860,2449261337,4092437372,3029453546,3998255648,4101825755,4035875946,4122325429,2663567998,1233167749,2616443039,2426503691,1255733128,2970769837,3340018879,1867404624,4052130641,386257033,3160695746,1689948893,2689174440,3645629961,3161728118,1568816772,437664960,2673165072,35426599,2655842707,1054329907,3457476931,269861916,2594549853,2597426616,157286671,3107938504,1774787540,277653450,1437285523,2361355041,4115420971,4252648429,3209110603,4005828126,621676976,3731902935,1936375901,77835554,1872327946,3566116711,3893310884,1376808856,1853101859,890970048,1993850901,237065659,3951861417,1874240106,3157307210,1189131065,582175755,2683890486,3256648034,1847265683,1121410699,1126372695,1846616866,583183091,1598670349,377956364,3639545782,798953284,1850715256,3379870641,839506987,3058043793,3577636145,969915554,2043424756,1475932078,477556300,4106365127,3696326584,2873151665,4029262087,1234428709,204991472,2115966412,4238600626,3941699655,2917880577,4164975643,1264145344,790310388,1144880034,3527071167,194022830,1860081722,2012356074,3775446025,1735344001,876112787,1865720872,1043451373,903861901,689306731,27781182,3461365781,2974330118,1946603787,1740189302,2680687692,2220396524,1475932078,1475932078,3407514427,107838651,1963388594,1597156853,1597156853,529193907,1322993309,1475932078,3209243126,529193907,4084504255,2680783133,1597156853,3547893342,1475932078,693672836,3828817421,2549966419,43653941,3051863181,2609827955,3144537318,1597156853,803820499,223143849,1475932078,4134697544,3609836080,788094979,3390278044,656212304,2663353824,529193907,4073884384,334165224,3936875123,865176824,3029480074,45221774,2221829444,1407402909,1599263895,835831332,2465648309,2622132624,775564599,1883700082,17928471,25653050,3334233039,3976330841,1254587112,1475932078,747823015,232007876,760925063,2518473540,37133442,2513286040,3210964464,1847985140,2690811871,2728082036,529193907,4187564740,119834965,1061802200,2691253584,1288304899,4032020751,4102933577,2433043907,1010674793,1597156853,4224450281,529193907,3948989217,2130025937,928004342,3208745299,374617435,1597156853,540054156,474637681,1310788065,1886378415,1475932078,529193907,3663910004,239382924,1644697274,3821159193,157609081,1604145703,431840946,139321933,2224907474,2527146356,2152749101,936271390,3403694283,119834965,1475932078] \ No newline at end of file +column: variant with hashes: [1023594347,3348501307,7038117,750646757,1023594347,1285578128,750646757,648865016,750646757,1850317735,1660060187,1978118196,7038117,1660060187,1285578128,1978118196,1285578128,1978118196,1660060187,1285578128,3348501307,750646757,80012773,1186024589,1023594347,1186024589,750646757,542292976,1660060187,750646757,1285578128,1023594347,542292976,1978118196,750646757,648865016,1023594347,648865016,3348501307,1023594347,1978118196,7038117,1285578128,80012773,7038117,3348501307,1186024589,1660060187,648865016,80012773,1850317735,1186024589,7038117,750646757,7038117,1186024589,648865016,1023594347,7038117,542292976,1978118196,1186024589,1660060187,1023594347,3348501307,1023594347,1660060187,1850317735,1660060187,1023594347,542292976,1186024589,1850317735,80012773,1978118196,750646757,1023594347,1285578128,7038117,1660060187,648865016,648865016,542292976,1285578128,1978118196,542292976,1023594347,3348501307,7038117,1978118196,1285578128,3348501307,542292976,3348501307,648865016,648865016,1186024589,750646757,1978118196,7038117,1475932078,3031791848,1475932078,2847341008,3031791848,867831412,2847341008,3913229208,3913229208,3913229208,1475932078,3947181464,2847341008,3913229208,867831412,3913229208,867831412,2847341008,1475932078,4041940491,3031791848,1475932078,4041940491,867831412,867831412,4041940491,4041940491,3913229208,867831412,3913229208,3913229208,1475932078,1475932078,2847341008,867831412,3913229208,1475932078,4041940491,867831412,3913229208,2847341008,3031791848,4041940491,867831412,2847341008,4041940491,3913229208,867831412,1475932078,2847341008,3947181464,867831412,1475932078,867831412,867831412,867831412,3031791848,1475932078,3913229208,4041940491,3947181464,3913229208,867831412,1475932078,867831412,2847341008,2847341008,3913229208,4041940491,2847341008,4041940491,867831412,3031791848,1475932078,4041940491,3913229208,3947181464,867831412,3947181464,867831412,1475932078,1475932078,2847341008,2847341008,4041940491,3947181464,3913229208,3031791848,2847341008,2847341008,1475932078,3947181464,3031791848,4041940491,4041940491,3947181464,2847341008,867831412,1475932078,3031791848,3913229208,1475932078,209602798,1519515423,627494611,172855780,1519515423,3348501307,1317779294,1519515423,859160306,3525052757,627494611,1701595328,1317779294,1386025943,2789129758,3348501307,859160306,2789129758,2789129758,3348501307,3348501307,1317779294,859160306,1519515423,172855780,1317779294,627494611,3525052757,209602798,3348501307,1701595328,3525052757,1519515423,1317779294,3525052757,2789129758,1317779294,3348501307,3348501307,2789129758,3348501307,1655266202,912281971,859160306,627494611,1701595328,1701595328,1655266202,2789129758,912281971,172855780,912281971,859160306,209602798,1701595328,1519515423,1701595328,1655266202,3348501307,1655266202,3348501307,912281971,1386025943,209602798,1519515423,172855780,1701595328,912281971,1655266202,1519515423,3348501307,172855780,1317779294,1386025943,172855780,859160306,1519515423,3348501307,3525052757,3348501307,859160306,627494611,2789129758,1317779294,1701595328,627494611,2789129758,3348501307,172855780,859160306,859160306,1655266202,1701595328,859160306,209602798,627494611,3348501307,1386025943,1519515423,3348501307,1475932078,3913229208,2227214797,3913229208,3789747863,3913229208,510528736,3913229208,3789747863,3789747863,3913229208,3837297611,2884501567,3106970526,1486651970,3913229208,3913229208,2870437049,3913229208,2193573656,3913229208,3969492334,3789747863,3789747863,3789747863,3789747863,922224195,1404624078,3913229208,3913229208,894904681,2945052265,3913229208,3789747863,3789747863,3789747863,3789747863,3913229208,3803986276,952637510,3590416673,2982256563,3789747863,527179391,2488421031,3913229208,3913229208,3103095817,3819337278,3789747863,1778301207,4209926658,3913229208,3913229208,2263431414,1475703906,3913229208,3789747863,662586099,3789747863,2152872312,3913229208,3711287442,2774706557,734011670,3913229208,3913229208,770703466,3913229208,2061950507,3789747863,3844879621,2305665715,3913229208,1905805162,2076289177,2276582000,2862932646,3913229208,3789747863,3789747863,1790490335,3789747863,2673207464,3913229208,3913229208,2752541153,3913229208,61063314,3913229208,3913229208,3913229208,1570067002,927843573,4109279470,3789747863,3913229208,3913229208,2279442698,3789747863,3789747863,1475932078,994743792,508741966,1653940526,2149805334,1514064903,204116760,2452926277,1433913665,2429601308,652091073,1368446641,819364038,225505346,2166310632,4197863238,2928806398,2417368046,4088829711,2983299479,3050483193,3658804321,2359154283,2166866903,2311372238,1273162069,2361796754,2306253394,4186093274,132017468,3444701572,1657736054,2110120670,3993033469,1181468239,3338910703,4003063492,128707555,3197550060,4177065148,1748921945,1932288821,1261617742,57904453,3661577271,631151170,3391661379,3864978010,825637605,2896814425,3850472635,2114036044,1938804129,1989294608,2135630268,2749819143,2249269242,2166490591,3658338394,206301486,3406566011,3480816730,2483750349,2450829100,3203273726,1520157975,3739283153,836974551,276421067,1559951316,2546274569,281244828,620132210,1886968462,3731299590,1967291532,582974991,333658188,1158265913,2124386474,601020141,2327853911,3766092499,1929197136,1938425491,2014566204,1186492516,2416989252,93117554,3642239414,4079999945,2340083963,886337496,1818502550,2860133125,1710656235,2953800498,712372024,1395117189,2137342595,4167342059,1475932078,1532900103,4102217294,1861653971,86232176,3878403598,856543581,1990831151,1389279149,2648483542,610102681,1125676472,2131299136,1431885405,648643318,1154374898,1415151150,553323391,2444387708,3338267287,462740891,3531993375,2545773242,3571033511,4161475646,578643968,32999274,2693211556,4081847962,1977267376,16015138,4191625365,3165203105,4042815043,3530908945,2930385635,514791064,2381228895,2582983294,2733154394,2723419908,2102014736,4026074225,2733691661,1863037094,260662800,291487530,418929061,2054872369,67313275,3802694445,3580006222,4048666199,3217207799,4162195315,3127763070,3422048662,1026351827,246213353,3841167754,1545418915,1870495953,419849037,489370714,3037505443,3175710511,3183483743,3067513982,3915479902,1518386329,3972813200,1407358669,2465219998,2872752475,1819131689,2712973792,2983061508,3050657900,2968375702,614867631,3126861552,3321798155,3633271578,661359661,935360676,2459635599,400606706,2234201005,289237747,3823144031,3045874506,532981447,2427139017,1787447513,3529392557,1390139246,3410864086,2906135130,3533245323,1302222766,60426080,1475932078,3821307458,3267483048,3678593449,1987368558,1372039361,2116402128,902325561,14676458,4205872991,284754422,761961319,1674190002,4167725589,1560684105,3394419928,3789385250,2732301246,2375493248,696532534,3932925440,2125120050,1663239372,1943113553,538100978,926229152,1378385960,1088489987,3649442146,83345092,3072167853,861979694,3345948570,329056656,1852696603,953614521,2412121146,1455304982,2016720967,1019662472,3889415001,2242446190,3751168679,1065796466,431925897,557433494,3314126543,1579778508,2348561599,1405549853,3835521876,1362788148,3089016189,1743993695,2231007820,3064185354,1836043055,929946084,3204192861,3942771720,2101319852,2662155723,3334980251,613875170,1793892769,510037288,2475133148,716514594,3379275905,727614721,2566562724,236070862,4102414313,21235350,186075835,4139730481,1258893555,2141602116,3382940338,2013202621,1432283856,3068870504,4179200396,793069721,1513643002,2052642492,1974136374,2616712913,101081864,446688245,1177254224,2509066101,2004131098,194002834,1438287892,2325675989,2681487709,2856779751,802126067,3977626866,919162971,1475932078,1137081298,337542302,3284884598,1773676428,188465278,3891293334,1349916049,3657755687,3451149335,1778783341,2306226865,352545257,30317693,2359603050,1234701875,1774508416,3716537525,1387435890,4045098628,3903474068,32629003,118178606,3273937441,3914364692,2353886095,2826420805,3441888086,3345249612,2754847602,1721998878,4135490579,1948326393,2633740817,205560752,2559828432,4008747519,718784075,1350663777,2707354727,232503578,1094980036,3215154101,2414399157,3786811848,3561699290,3723584653,4067691960,1504215167,281997699,235531702,42481190,3445782416,15083132,3510922785,1302166824,1354343922,3882424411,1541555833,111901156,977232459,2099073180,1268917631,232672324,478753186,1478119740,3486668107,531376819,3664431455,1061580509,1477256723,2073744111,2056257964,2158626208,3067464461,1294964912,1459438953,3362223921,2781734454,379986224,1295375361,3283668508,824874935,2250241074,2568691077,513030551,2024475634,1916448804,1055216648,4063477824,1473670213,607304147,1303678041,3222238822,48604406,700507791,3871034329,807782587,302343498,3814693210,47033331,1475932078,1475932078,803926826,1534921777,1636101216,4199349286,590678445,434981088,3207488851,597381227,3887754035,2052454223,59445899,1271505007,4055126324,4054273983,649110147,157750617,772397764,4011824477,1742443568,3185618184,2914823100,3267544278,368967522,847936237,2780716343,154523379,2423946954,2128169158,3933838920,1615791110,2160256234,2906411161,4181667302,550458654,2433573448,559806494,643164114,29033650,2892345287,3905830276,3987819672,3811655818,3340147241,638674595,258945717,2266104978,248373341,2847735307,3768282239,3168898668,1463395019,3610977856,3469785025,28519677,2279659349,1697711864,1875972300,3614920451,770462213,1657986010,1748128046,2664292882,1032641693,2789539156,1301242384,3465677171,2357001224,656061263,3940650205,2347417961,535998567,954920319,3885012760,3963892951,3044130204,4202254667,1132468991,2020480232,4197475817,1981873597,3632495348,1843085674,2236890509,3959216715,3156467377,1408354744,4260061686,1516744347,339963733,159942894,2043222002,3032700644,331136486,364320243,2151515559,2059697500,2888317503,3579994639,2442167468,1447087105,1475932078,2401505510,590156362,2195364622,2822989073,1956352541,3266950729,558321529,2293627180,3698923473,3217928243,2160044778,1513511982,3203192056,795412505,1519701763,468810285,3835858205,293340943,2072538334,616118151,1901381734,459201756,2456374687,3277587658,2596066538,2854128764,2581881353,1739861919,2664437933,3569307965,1991218382,4174885870,2088623300,481855255,701169116,1481157542,2360893067,4194641932,4030699666,171161796,1749474092,3510021112,2035746501,4075436995,1001174284,2657818062,3358764468,494721765,3914431910,3744616923,1851381768,1010480880,2317860844,1016352437,3565762644,1242765766,2155066206,2386513543,2734139700,643779138,1954132151,1633899924,2159095599,3100651720,1967765976,3577247558,4214933066,3761638261,2166476500,2601123522,95968551,2658898357,1942155268,373899699,426507988,1694055557,528324004,598693430,3602955889,3964128899,4271729452,3518429585,1246266208,42759873,877900272,776016407,98747343,3414738613,2082328867,211091088,2850277844,1462893947,1268950,1729365346,3923525612,1301892772,3690860050,570808415,2025216958,324627133,1475932078,750437406,4009796778,959885984,3504908289,2871392054,1633653256,3253142563,2156146746,1721344834,1635781887,2659114823,3598646234,1468783300,2870341610,3475879873,2002343311,3645411615,4081076334,2006277628,3485962356,3780305649,4294425050,1710536722,454554056,3598505776,964390392,4278297890,2591804036,2422756079,2016315413,4069982864,2555096892,525716090,4252418588,1162917991,3487229378,4051645968,603394097,2119922039,1410808687,1559055702,128755654,1836120118,3180535391,256037813,414970214,80668479,1266317121,1618856420,2778534700,88706368,4003469182,244369109,3964992372,3607273746,3845301153,3203834274,1201178379,136774736,714379241,3758001736,1407753813,2215310631,231593609,3508376742,726172698,3462502993,308862704,3381383376,2054048712,1603949764,1187806448,3465858463,2443342986,454592385,1267514923,3824039239,820261283,14321907,3379396725,285065871,3870785185,2148471288,1217842933,758483506,3415754454,1216175182,2680179535,908976250,333928532,2049754406,1486253607,1907605185,639814098,2184148615,465406831,1013332334,754673927,1363150469,3294070424,1475932078,1475932078,2454955850,307317990,1843320580,2689810637,521554053,746538813,3847811813,4085419466,3315599752,3840283830,1028441694,593992957,3064139871,1963613286,2883484251,3921172366,1502988507,1396715462,2031261614,103863098,1233760996,2308447950,1410587158,1250140908,1105785024,1869787579,1977231784,2350196830,24707440,3006987179,1942495807,243278561,3767842018,1617839206,3080293014,3638221212,3635086575,783832108,2908009883,3228605337,1428731149,1756052824,4057099509,1313997183,3209720040,1465427063,680451596,2523525698,2004640746,224122929,130675611,924462452,2420467377,3043025742,712111242,3190132772,563488250,2884924318,2505452534,3723222632,1041573890,2256151026,527697742,422027072,3088869068,1863587921,1963869502,1595503862,1985281455,2166663648,1337471443,3763954512,3612345107,4230814320,2531762327,606703644,1004993920,91826258,83837496,2608012888,1981892724,260504410,2877914252,2615931808,419782515,1820721414,1373581830,2606281665,3598188362,1268424392,10752841,3789572183,1132860687,3529665047,1150203099,3400717728,3129690101,1112276931,2011241386,1772396910,1475932078,4143537550,4110844364,2130344600,1037694712,1771784288,3957395857,3452626355,3598856197,3963056127,1730385093,3726767546,760577327,1554502290,1734707720,632755741,3672183647,3404563514,2872596611,4238089366,3468680706,1516826468,1720030364,3173270639,329145023,2513738780,356390903,1915465131,1518434931,2862084534,884236893,2025428714,3254290528,1167711490,3980365243,2459379091,3854474651,136860953,844385548,2221618579,682855689,456025253,2405583723,2340864839,2420806889,636310042,3720937928,3838284871,2920529973,385811128,2019376507,3191787557,297236226,3876865055,1512149468,3958263151,1506601118,3561603944,1832305547,1602136303,2047183728,1842993317,999387732,1543924992,1032714700,2475090073,1246533462,98328826,3380939593,2418372456,1091706853,1577319206,1652841675,3718010629,1875243003,2853971876,3745030653,4270728476,1838992389,1432171170,2022616821,1336290229,3060042815,422741477,495639987,2092702949,2324300999,1232550728,2197471467,1723598945,4282404971,3391723275,836386384,2947445806,3743773240,2016422363,1814869952,3719056997,3313326682,1976877341,3124971744,1475932078,3388060211,1855157588,1350588632,2819418714,1960643832,3122859666,737331241,3429737122,2021508713,931950175,2699465559,2385202791,155363890,312643501,778668459,3505782968,1262675293,1430998865,1981892426,4181133807,3735379389,3914062906,1682855378,772185061,3558820544,3755577422,3047780057,2332048110,718753837,1037183699,3401684344,1154210690,2913727725,4273260693,2369155824,3664479333,2521752208,2686469588,1842215641,2431933767,693621097,2698556740,1924001333,4225446471,1717780884,1280043715,1934616363,3129826267,3892658070,3988195118,1496178504,1856114885,2899047057,3941961547,3030610379,877978698,2892259652,329086752,3630951362,1561455074,3488068275,3958274066,625837389,442542887,1503968616,3424975254,473787589,1351071368,3410925217,1276653472,1347508205,131490312,93773039,1270003783,1065679935,4266343376,3810263239,1087742589,2709134845,1823070352,194057570,1287447319,2971160525,1087995357,31052648,2712604629,2626403650,3028356822,64428271,3212356382,3938400870,734201728,3917275373,3005036952,3148892867,2476251189,1363626631,740472264,847356265,3167275701,1475932078,962195008,3420982747,3692999298,66458682,2790067218,2018827531,1430599627,43533593,2356865485,1831563790,415629740,1997372031,464080575,949749522,2412642304,1740446828,75078428,3402860516,2846776447,2016818163,1027402406,4288815471,123994234,2058871005,415023610,630073727,4250732094,3148340743,69740661,2688142673,2538174055,3286707353,1823814761,685052682,608425056,304280323,3006054759,3228817403,2451214618,3582913323,3186710865,639505342,2256518546,2226677916,2925870131,3147601570,2876204287,3576984707,1947679012,464620125,1263359034,1485913353,2129875352,1649243501,899181607,3664570435,2959074822,188632213,3890386862,1189295059,2341664307,686389136,2686777569,3777651455,4271191967,3907398237,3329997800,2245760535,2057629287,1235004456,1203146418,207072182,1538416047,1122436982,396109090,4078712622,968436805,2509168532,546682907,1643950458,1375290490,3796103361,186132974,3465433298,2507246800,2952174864,1336559086,3011211570,896396982,33300456,2065219512,3984930034,88664090,3694504127,883798152,3554074050,2377310343,3332130883,1721420430,1527169100,1475932078,680640990,843521611,3080420495,1299572823,3251167534,3511253746,3910665117,558006339,2348056526,3071621499,2531998383,398357604,2782106744,1113615523,1081527243,236258719,2281899916,879898656,3416824033,3373745091,2576830007,358916927,145884860,2449261337,4092437372,3029453546,3998255648,4101825755,4035875946,4122325429,2663567998,1233167749,2616443039,2426503691,1255733128,2970769837,3340018879,1867404624,4052130641,386257033,3160695746,1689948893,2689174440,3645629961,3161728118,1568816772,437664960,2673165072,35426599,2655842707,1054329907,3457476931,269861916,2594549853,2597426616,157286671,3107938504,1774787540,277653450,1437285523,2361355041,4115420971,4252648429,3209110603,4005828126,621676976,3731902935,1936375901,77835554,1872327946,3566116711,3893310884,1376808856,1853101859,890970048,1993850901,237065659,3951861417,1874240106,3157307210,1189131065,582175755,2683890486,3256648034,1847265683,1121410699,1126372695,1846616866,583183091,1598670349,377956364,3639545782,798953284,1850715256,3379870641,839506987,3058043793,3577636145,969915554,2043424756,1475932078,3749633602,4106365127,3696326584,2873151665,170633546,3007816368,887438575,2368426406,3870407398,3717463284,2917880577,4164975643,1264145344,4216424914,2226740475,3527071167,194022830,3966894947,376883549,3775446025,1735344001,1156082452,1865720872,2560989750,903861901,4128248465,4275323060,3461365781,2974330118,83860697,1333549607,511924981,2220396524,1475932078,1475932078,3407514427,107838651,1963388594,1597156853,1597156853,529193907,1322993309,1475932078,3209243126,529193907,4084504255,2680783133,1597156853,3547893342,1475932078,693672836,3828817421,2549966419,43653941,3051863181,2609827955,3144537318,1597156853,803820499,223143849,1475932078,4134697544,3609836080,788094979,3390278044,656212304,2663353824,529193907,4073884384,334165224,3936875123,865176824,3029480074,45221774,2221829444,1407402909,1599263895,835831332,2465648309,2622132624,775564599,1883700082,17928471,25653050,3334233039,3976330841,1254587112,1475932078,747823015,232007876,760925063,2518473540,37133442,2513286040,3210964464,1847985140,2690811871,2728082036,529193907,4187564740,119834965,1061802200,2691253584,1288304899,4032020751,4102933577,2433043907,1010674793,1597156853,4224450281,529193907,3948989217,2130025937,928004342,3208745299,374617435,1597156853,540054156,474637681,1310788065,1886378415,1475932078,529193907,3663910004,239382924,1644697274,3821159193,157609081,1604145703,431840946,139321933,2224907474,2527146356,2152749101,936271390,3403694283,119834965,1475932078] \ No newline at end of file diff --git a/be/test/expected_result/vec/columns/column_variant_update_hashes_with_value.out b/be/test/expected_result/vec/columns/column_variant_update_hashes_with_value.out index f7c27b278e776e..3819c459cb0054 100644 --- a/be/test/expected_result/vec/columns/column_variant_update_hashes_with_value.out +++ b/be/test/expected_result/vec/columns/column_variant_update_hashes_with_value.out @@ -1 +1 @@ -column: variant with hashes: [3290145166093762980,14179897596576105469,14179897596576105469,2282085295964132384,3290145166093762980,559338346485959129,2282085295964132384,15905536912678961394,2282085295964132384,7021324166002335292,18096701186305226541,102226537653930837,14179897596576105469,18096701186305226541,559338346485959129,102226537653930837,559338346485959129,102226537653930837,18096701186305226541,559338346485959129,14179897596576105469,2282085295964132384,11072762366266850873,6348604300041726601,3290145166093762980,6348604300041726601,2282085295964132384,11072762366266850873,18096701186305226541,2282085295964132384,559338346485959129,3290145166093762980,11072762366266850873,102226537653930837,2282085295964132384,15905536912678961394,3290145166093762980,15905536912678961394,14179897596576105469,3290145166093762980,102226537653930837,14179897596576105469,559338346485959129,11072762366266850873,14179897596576105469,14179897596576105469,6348604300041726601,18096701186305226541,15905536912678961394,11072762366266850873,7021324166002335292,6348604300041726601,14179897596576105469,2282085295964132384,14179897596576105469,6348604300041726601,15905536912678961394,3290145166093762980,14179897596576105469,11072762366266850873,102226537653930837,6348604300041726601,18096701186305226541,3290145166093762980,14179897596576105469,3290145166093762980,18096701186305226541,7021324166002335292,18096701186305226541,3290145166093762980,11072762366266850873,6348604300041726601,7021324166002335292,11072762366266850873,102226537653930837,2282085295964132384,3290145166093762980,559338346485959129,14179897596576105469,18096701186305226541,15905536912678961394,15905536912678961394,11072762366266850873,559338346485959129,102226537653930837,11072762366266850873,3290145166093762980,14179897596576105469,14179897596576105469,102226537653930837,559338346485959129,14179897596576105469,11072762366266850873,14179897596576105469,15905536912678961394,15905536912678961394,6348604300041726601,2282085295964132384,102226537653930837,14179897596576105469,10602573589229546844,17112874075517206433,10602573589229546844,17254401115644597125,17112874075517206433,17209060699095012878,17254401115644597125,13302687684020648567,13302687684020648567,13302687684020648567,10602573589229546844,1038248107092713708,17254401115644597125,13302687684020648567,17209060699095012878,13302687684020648567,17209060699095012878,17254401115644597125,10602573589229546844,1280023314843046514,17112874075517206433,10602573589229546844,1280023314843046514,17209060699095012878,17209060699095012878,1280023314843046514,1280023314843046514,13302687684020648567,17209060699095012878,13302687684020648567,13302687684020648567,10602573589229546844,10602573589229546844,17254401115644597125,17209060699095012878,13302687684020648567,10602573589229546844,1280023314843046514,17209060699095012878,13302687684020648567,17254401115644597125,17112874075517206433,1280023314843046514,17209060699095012878,17254401115644597125,1280023314843046514,13302687684020648567,17209060699095012878,10602573589229546844,17254401115644597125,1038248107092713708,17209060699095012878,10602573589229546844,17209060699095012878,17209060699095012878,17209060699095012878,17112874075517206433,10602573589229546844,13302687684020648567,1280023314843046514,1038248107092713708,13302687684020648567,17209060699095012878,10602573589229546844,17209060699095012878,17254401115644597125,17254401115644597125,13302687684020648567,1280023314843046514,17254401115644597125,1280023314843046514,17209060699095012878,17112874075517206433,10602573589229546844,1280023314843046514,13302687684020648567,1038248107092713708,17209060699095012878,1038248107092713708,17209060699095012878,10602573589229546844,10602573589229546844,17254401115644597125,17254401115644597125,1280023314843046514,1038248107092713708,13302687684020648567,17112874075517206433,17254401115644597125,17254401115644597125,10602573589229546844,1038248107092713708,17112874075517206433,1280023314843046514,1280023314843046514,1038248107092713708,17254401115644597125,17209060699095012878,10602573589229546844,17112874075517206433,13302687684020648567,10602573589229546844,8739666254610784476,15178307909647726039,812377251159971894,5104988259232340187,15178307909647726039,14179897596576105469,5002941667199342543,15178307909647726039,8692085290974651848,3343855588952036451,812377251159971894,1244063564664642073,5002941667199342543,1171377148146271186,16129489899755404978,14179897596576105469,8692085290974651848,16129489899755404978,16129489899755404978,14179897596576105469,14179897596576105469,5002941667199342543,8692085290974651848,15178307909647726039,5104988259232340187,5002941667199342543,812377251159971894,3343855588952036451,8739666254610784476,14179897596576105469,1244063564664642073,3343855588952036451,15178307909647726039,5002941667199342543,3343855588952036451,16129489899755404978,5002941667199342543,14179897596576105469,14179897596576105469,16129489899755404978,14179897596576105469,18011992382478577847,7360877390192632990,8692085290974651848,812377251159971894,1244063564664642073,1244063564664642073,18011992382478577847,16129489899755404978,7360877390192632990,5104988259232340187,7360877390192632990,8692085290974651848,8739666254610784476,1244063564664642073,15178307909647726039,1244063564664642073,18011992382478577847,14179897596576105469,18011992382478577847,14179897596576105469,7360877390192632990,1171377148146271186,8739666254610784476,15178307909647726039,5104988259232340187,1244063564664642073,7360877390192632990,18011992382478577847,15178307909647726039,14179897596576105469,5104988259232340187,5002941667199342543,1171377148146271186,5104988259232340187,8692085290974651848,15178307909647726039,14179897596576105469,3343855588952036451,14179897596576105469,8692085290974651848,812377251159971894,16129489899755404978,5002941667199342543,1244063564664642073,812377251159971894,16129489899755404978,14179897596576105469,5104988259232340187,8692085290974651848,8692085290974651848,18011992382478577847,1244063564664642073,8692085290974651848,8739666254610784476,812377251159971894,14179897596576105469,1171377148146271186,15178307909647726039,14179897596576105469,10602573589229546844,13302687684020648567,2304212471448909901,13302687684020648567,12359048830691715757,13302687684020648567,13293414154332091538,13302687684020648567,12359048830691715757,12359048830691715757,13302687684020648567,13613960073370969052,2472461031540241330,17815258578778888438,11170613619857658709,13302687684020648567,13302687684020648567,4623580367614773573,13302687684020648567,4289708442234706008,13302687684020648567,11552622925026124944,12359048830691715757,12359048830691715757,12359048830691715757,12359048830691715757,4688013811067771242,7856452706204403306,13302687684020648567,13302687684020648567,9753965225196829855,9394402753015823089,13302687684020648567,12359048830691715757,12359048830691715757,12359048830691715757,12359048830691715757,13302687684020648567,1509191514857943066,187849560094777570,5315364172701025632,3504649842843451748,12359048830691715757,3148298162024192477,11042776522728687326,13302687684020648567,13302687684020648567,5596852626596824375,17074599932331248709,12359048830691715757,3754174822703729661,7810040041842691716,13302687684020648567,13302687684020648567,16189095675728225227,255714044816409931,13302687684020648567,12359048830691715757,12744991635814369385,12359048830691715757,15169920827410952292,13302687684020648567,1426916479094374011,4452715528165719241,11936773386101778446,13302687684020648567,13302687684020648567,15008289404070888265,13302687684020648567,7030258425402590679,12359048830691715757,1223801264702774161,1036006280100608927,13302687684020648567,8141277443953488766,16548412318812889026,5475537186384353678,17471770755386394405,13302687684020648567,12359048830691715757,12359048830691715757,479311632194338959,12359048830691715757,7399442542196036391,13302687684020648567,13302687684020648567,14184195780233559772,13302687684020648567,15704543699661715723,13302687684020648567,13302687684020648567,13302687684020648567,17679315446558780265,1494615190534264233,4260143534680144484,12359048830691715757,13302687684020648567,13302687684020648567,7669219378345197213,12359048830691715757,12359048830691715757,10602573589229546844,11078528463228466898,9270824403405340911,4057501132997343753,9064574482019229418,6407906027649426847,8985107072384555792,1184937332609662247,165086601481611427,1604324956158494852,14656053002828163632,17432059392688763612,3769118726675317215,14405266818605471701,1925201385917300938,6570394395680375075,3815998028434298813,6979208951624431293,9199434165347712341,10969246000779150374,1816117100766478416,1420074487803791636,14826184238410967220,10226733588431959438,14385069137818721227,3173312581913078194,7738851968796996458,7630940053000986213,1950086453039278227,15795840083653236232,6676050004705678461,17761328392960004411,17050041739912832401,4784796073699347100,15744214346824844721,13546806644589978702,12828345096931480804,13288174914873978106,7327977852645649695,15419667647114272896,15634897202360971661,2867300395619592955,8489318576164157575,13840981329683177286,12977248042709188475,5083582178648545724,11312234168657327484,3084043064725675425,4073658190215197847,5415109524180399730,2849907624439992348,7818088421898641518,15240205013926292761,5752367615268795819,5127258499718568753,17010732234858126677,14703566510920687537,12821611438210776181,5185939693798710130,4971791540085243677,10570541847167161500,6008592764559804816,1917411618067623777,14831265224814696922,17791533807329327254,16366559929965270505,7246244413306650750,2019343607893586053,9122358649975914223,265578328016738110,5377300460344008741,4260029511319163005,18384822298888526875,16383696710351989952,16266579460680890865,13121359705169924188,2191332908967417731,5475486564072131343,18052280571290928181,13232344105632004616,3311198282629280022,9780225921141519843,17870651751453117426,8777262128738547941,8963313953012987456,17851338770792313206,4389520907420599746,8127964366078443055,14921610986432916425,11176915577281374279,1407903180093673376,14786132066306737028,3376552168250192875,15056033403331444786,12888409061840645292,7223473883412657650,8785980099090856489,7747186992801858268,17198613561093558874,5753460429532648455,886239565775419392,10602573589229546844,15872134320060056111,7559884574576698649,4328585262606181976,16358945300240752532,12464524184570539358,11014964606096999732,3084316737218512843,9278133677686438626,3518440876519799723,10775703406361350658,5805060657492691696,11924358278266768721,17855343030579816859,14516847337676784407,13676127831254318547,10456905929595148683,7735620555393111266,3241768658482335014,2595476950073929310,10421738543798853648,17911006528214355539,576749604685988464,8422051840612098804,252187175464301845,2284672888619046771,7882495673502672090,13885845998556727370,9886530209998608733,1479690893742776007,10434197361650708763,15069769610481535357,580284055471504057,17252798465628782186,3384443002128773597,7852457786408498836,12683757221328197990,7032018564012797342,7238496811887382872,5037019288439403018,2412080750403882540,7355165422853651479,18250774343352987357,11246008152933736383,5385049900633323131,14754315140965713623,16437797297411593563,65649294369131690,10844000642436385971,3765693506386461266,13026722847395944936,3283910339400917698,17271812845574894566,3776371020329813283,842568490056386289,3581349608572071771,11292576361582828866,13824456289085998812,15330732957077035245,8786719435872347202,2073368443058328488,6441321833059451836,5069839156882732393,14832544838006298453,7230708353583680382,7805820249885947283,11529232597114378927,15389721387823150543,18321457519182203783,4710300886632918119,1041155623814670477,3872149014426072278,15979683547824762603,10868432513599470662,13833226343277270151,10413803895988801314,15190424076762442509,6433380239606099317,6052633643101512701,9003115080978215971,14153407480110880185,4119395796052909149,11135111373928480509,3954857937491835563,8689008136163576436,11530124406766178326,17029029271016296507,8773028854759323383,18088628066909173907,16354540222337358572,7458466405529490000,15174974958880264903,11209234501548056867,12383592288236160612,15814012305177451434,5379875769890031652,12727491509863781135,15902054534992604478,11519416013863429713,1173951417776995118,16648489215745723877,10602573589229546844,17203153323972358178,17742878855641594246,4924844209718222592,4135176252081941781,178748180946962156,2222271086227148369,14177493903788009281,5041240531480921193,12068733577476301604,4007150231755155871,5446250639082586416,9099844918804967619,16828525984764175972,5716405752005651015,12740865445580224825,9274583647079151728,17432680332835883668,4911957039163506608,4543209020176646527,10786081754605053182,9118957709374980316,9627144256951978670,17356687123204871446,11370444602574441398,17113306970144086056,6595344544555937296,4721566182156582271,10009584245958859921,362401659160067721,5549022485866245697,3807628175306549836,2274708382950256232,2695820098762577021,483975751063028122,434890395856256628,7448586734777288132,14891402305204231350,7847866160680163953,15874491104163534088,529473970365849976,9988536511888063190,17100231009091575357,18078382210723421719,9720203011099331283,9675611621984291059,12491047585904544030,15272384185733715038,12944417101690996783,14363016931326417511,4840699627439038661,10340228522981402649,17690480527894510627,7604459736870934842,5751775263088702391,15642995554395507151,5466017630847637232,17519613609860207754,12753608512079682241,15595220839430955202,5375431124669602890,6072052997545167453,9428624683311034151,9880129852230148958,17788158196091340410,4376284683713879426,14331998802871307213,7290705505224189150,12463655123131126548,2673049891578764007,8774136865663922522,8714828247828333166,11916994964216675318,9047788826610290135,9753373531515544548,6282888024718994066,13993437694560513908,25556850036741933,4781545729367770099,13254572643491790547,12649084963090877677,6216564577478025921,13318305349620368987,6821218868290178674,12701799770858620030,9842881334944845490,5641564015292998965,10417937444271514412,17816193871284015790,10392723424791641408,2624619336333270595,6305710236723850138,4681452046143442236,3687708255984554353,7276275058476875765,13262003968656109884,92165720835080734,10409221065344579158,8232052831451324411,8067498541312495138,2551567092579314271,10602573589229546844,7326352887493694710,15189149154581556638,8808867487248125621,5904392934218447993,9029278753792209148,6517993134731675987,15902363608976369278,1031041436428329184,8510946436763466173,3176310636165232787,1597495200971986531,15834345599469942897,2180999923836713881,3044881705341095081,11595299560029682330,9315192753370508746,9170581200494814218,5851672579299793898,14717663129718940111,1406151836439411786,3260973658698922871,16203256600477833126,16576423156895806556,14362955949837915181,2813876429358201067,3137473598973988982,259388115568205872,2917417053998206741,930256901693239410,12033410642815195485,5657517069247033365,3758194451725281497,12843379457889633796,18238788632786218268,3896842522533751646,18268506742313693132,1908918760289502471,11825864707562857343,11610163084068807749,6221931061535521958,17267243088573094052,1347273201590805114,13909778679637712596,8233517626437651588,10047936433362963431,17115428351859572143,16483185524190047882,15204250469136906261,13611916722830016167,2099576251847421927,2261190933348059546,14255371148909713495,856915394790746390,17320963270792083870,9623468820166879237,8269702744907857892,3779706672242582155,17952039103454142226,17727264939475063992,10255963125890116182,17662042042679070808,1209638727956033196,3840994900245247853,10730681120184758188,10379132100415159073,16626266965189646531,11074987208864287607,10861253310822286195,9316361369574055664,1640977774773151457,15755869191161483245,5892511431504801167,14784774002384453984,2636079409402575837,12024512115868410777,17597092020922872033,481870243549136780,1805839673278493683,13403293069164353946,1157324193543157746,102596199047747489,13717624933084840409,4183376463880352828,7486771940490564716,3139975234384161623,15726130405003381247,12484853971055466882,8992768775401560083,7033788999853960409,14388869810324883420,5646116694537626834,7401055423804098458,12160003175243089421,6218774451448178323,12755774764885890439,6236945731054508744,18037169531353845713,12143810950107380841,3509922375514232176,12692764884065073308,10602573589229546844,10602573589229546844,5960457565334411020,4244338613455473297,6616616615124076912,11955964023239671906,13659231367932954295,17459970002444133797,11586563463171586633,10293643728944242296,5709890512077047168,5390485507895200984,1902120523826988608,6204548357177236244,16809194573818755012,17395958212806504369,5435367679895773653,14068166009790862812,6871251789279673713,9101745588490331834,6820469339856609663,14299359535145625228,661975544424843312,9850535218431053105,16161435790515301309,3432347660578356015,12366328078538805733,15793771728308216978,7622282362312611983,7347376077607041892,50539409706381864,4308193127989152658,16926167683198279850,2932732789412369050,7590893604425623516,1931054301206827042,15328988501495657273,2441275510970932436,12361316580096500085,2386145969735155915,10165990432371970473,5849317780064962616,14425840351857313062,4842997969657191943,4343746726497499451,11770073243997260797,10880577211310477890,3102838113447176142,11987756886175411149,15334526734128792518,179549733929923433,8223859359167698454,17792206221143428834,10072449279887774519,4780554196155212684,13754206870766679993,4575590887037891283,2517283009761618466,7998386181513037384,16671980031883730137,17414929121823471734,13782096807224460510,5274931931195337934,8176464995585308332,1693304172179468169,16377976372980554435,8576394114847577874,3076187404349397061,13589831145133467721,3964891337356401439,4086834781388890410,16381132618688400966,8044737992256673494,8463087656999980177,16162318915184717622,7162910006252297273,12209117036302275403,10064391391054435237,17369254697043137944,10327078810175198230,1735071064453774776,3137024485878812427,15500564702578731623,15707466433012446535,14304568681306566357,10624292185432607981,13346088199160451064,1047521059294111176,5486326630031384299,7939123415503849531,5648153761125097690,738461163886223076,3039983643004176068,953687744537365420,10221865676065344169,12595820325101338128,17244163487115289487,16201045287863524406,17590234168248527612,4699174876879551008,1106371329212808049,2002617613800066140,10602573589229546844,7183401416957031585,12076693006237094892,5937988889376106012,16456410431959210174,8932991786486271580,6962913320336483583,10233381659658714223,10867174968109132147,6129233847652433440,17822226402129210138,4276486576655958605,12775136395640284192,3754124365376375950,1885655150057378787,2019863245594777703,13325512143702844809,2550364779283090790,11524709758760695571,6729478450002051661,800952670321322475,17308628722445384471,11150300655872553471,17295360842195561958,4916369494758685186,10600935308502095446,6970349675291331358,16823670614814377116,11499017352696888582,3851496774575724997,5184053360520920230,595708978826242635,2383894917649564633,5139147418982042852,2026170229727951214,8472257561491725180,15471313320852897765,10681919417935555416,14032689424156356439,9590673241922088199,9236678035184909242,7949128185822096864,8346450043567318821,16960270449204278225,5789267810441726409,6110368825526033640,5620206573965554523,11990390467744875217,95370221068666123,2343237007157341145,4970104386626117365,14280210963534624349,5466637103895262524,12430588125202842900,1050985079669031561,4811470836354992054,10100770411149823472,8167163948434783319,16610796952855441928,13045764703584750967,14545943460636755642,12518234423900929186,16055022269575837584,13705095591824147993,8633591064846448554,2286559633547158891,4607601762782045124,11596241992969996566,10847130871956718017,17112783129721669965,17148986314175834741,10336789303584019224,2381263103797207369,14739742558588072624,14449810855494386103,14464620756138391705,15609208131675145371,1212541055318962605,12711811796207667647,10613752917820200992,1371881409996547006,5575327075932639798,8537585380951824935,6950409076178757814,2982607551297859926,5900167319431715598,13060937734980206101,8553978863000460687,15985796496958186431,7867474051776884287,15964016375995594524,13755992738612270514,7527214212025225368,8545734971344547981,7174342528264451153,18430419953009882584,15260873774473221899,4299769974746939445,5231753616031241770,2973540424586533058,459568569691678998,10602573589229546844,15337563609455363181,2796514642721817560,10482810323167991106,6249665449184620954,15334935617308769368,13919941537000217653,9748044664990820722,17050183124352069299,6160802939903581576,12720787555119913506,2679915385099775688,10505039160101376257,3325336990986812981,17241624377155028606,18081338112631802629,1847677915718139299,681984696385197390,15729018154561322082,6086703267657645374,9342847630701005151,2274224041984896863,2236360414269904254,16956514831969316584,3137789496121549035,4412642917201584576,3584794310008660459,12900267584452864979,16174712686859089948,5658546200301652320,7160107916934041241,7665141211099913235,7267114041469446038,5409542752345536214,2588744273721235112,10038716364799216054,3989427143024262217,9502084679397128533,15607171222994809003,17966296997152003599,8019685053991382869,18153796766605286027,14518788494089733890,17853591646753790051,14278575594571788667,1346479387563357422,5622240203918140762,12058941286589889491,11456807865854682413,5240446596896205182,13341330249566828899,16123442879568284480,1872936128664255764,12167475020261592682,557297687847228837,8930277633594363104,13819941730143336027,18329549476667324177,6159654301339806710,13773809203530302367,7590342135084066293,327925632540303172,15173645336209490729,10046530397846617759,13004236943311019688,4747576370413112294,5696300638119677654,1832757651017951858,5920855719383529106,12225802126934379107,9490596010154943223,1208738002276431491,17973415453688435477,7992926857421443803,9769999314584595262,10897402804189501920,14878049484782298807,8850136056563903709,6833187625669349912,5934593967705005038,14773605707708345730,13354191879806099937,9815878477379599932,8423939223268191791,6550475470298189869,1168418314527648557,3583525173810313747,14099746965589579186,6610453727338652003,15679593227684956240,11308430043917808573,10698570428701842065,18004786861008912760,13195284883724657516,3778747305995814275,2509225883543035563,18002137865348949251,11900055750107987323,2593496529629806991,2378021401140673839,14312437332830458020,10602573589229546844,10602573589229546844,11935392864309492456,6090780613771958546,473017201564071102,1017800851121029738,6889031342303319404,11252413481805335879,9056509310487825211,3425449059326623166,17898929070289959481,4364306017173680982,947264281165006408,14005705578502286611,13166277875441447415,4077494670967254080,11143559651697948765,10587204309214330919,2507649064686487101,10349745214682825056,14957040897407912074,2041306716508881962,11546041964664944165,11210889241126232641,10837199508475108785,6320469185297170239,13730372745992217792,6245998675035487129,11370680752830355524,626607459241576992,11128070988402979047,14362961850162365657,2316436521929724107,6483274438166397173,2504696073600428139,5002969785280866512,6780545419348599011,6942212855870179346,8883669364472311659,2243537348011891026,6995753882934517678,6334680567406413602,536598075656415556,15858956348022752347,15683193856132304010,15898890695493361060,10760427267211426992,10844292861486068997,5678849354580724559,1453747652168799733,3663399049815135106,2919488802391799545,1530904054714843832,14494447114166544286,11524725906807963035,448546930606950842,7117239270937371539,884457655325540621,2063579577878199380,3183695289788864790,3948336354189826555,6273501536468123850,17288209575956210851,16890141275503216648,11365322542473363091,9171651705765464480,12936893167664465219,7437249650533784820,3741842156430022113,18001329923311345553,159493376171727648,15757061921037378470,13394796526814296828,16507451242205393579,1459373990837647244,14472911833332497085,4175222137065452840,15383819579176714664,16673444610976607750,6828642206807605362,5381385146675974433,10271623647426785765,10213773858564117499,6843027133997703985,9327838055413887008,1573149076528824326,3865892866332766211,17139594320899285242,12270285906878818509,15737275773167675168,9073017128831602773,453221931226629324,366160255012070506,10241171687887474388,6395757272531031457,6550154693215635268,13223967338308880059,10267148828875625253,1205680773761476341,3080653224648443205,5721246910185661258,2906967166550131762,10602573589229546844,7861988692610954217,9542623669186119750,16922426114756168947,5191474574223609161,9954739135685826850,7229668957512951315,16084811999171561622,8072839219614072481,7406880761813178939,15612740789108347317,541995465442804851,13732445822591192318,18086201691784447055,9746982845526750340,12804289103014173084,11083840833010329991,1783003261643010465,9117442032978129797,13012799312388516121,119892996303555065,7474373714424659854,4673137979086430732,12665526060977458683,821595259113844688,9241395977962668441,5810706344739782464,2958727076944262512,10872151066085158195,3975647098490875862,13620026325845212606,4592708773051995425,2532050216248358656,15286182533135633581,6056878601740855776,12989164715043761894,3580611142715920923,13203439263756832993,14057924180038507459,9994214813627291833,12545952880190479071,5717269521054597677,16850365877971481262,3056472398115111922,1249067097803586938,6594590285704539117,12976098760044119563,602871569998526564,1173030003460382511,16018119098348287776,5188101113322837813,17219109487424544083,11018814190263638018,2226575031512035975,10592996648536675770,16703193955119184793,14641653226494285088,531572449938331672,8534790516645752680,7458147321315620727,15624175467845668551,9520460063946164892,1636320769486596995,17165432618256977288,10482777825757818210,16701708964921053821,16512154151947728469,8887635219842572857,10034603326835099454,16643404147981460192,8273501013454361383,2664913241702696223,3898455886186912132,3139927210379830542,4254044792383814861,2927782573782793884,11703602200944442267,7958024954149200660,10132613804970118929,18380146648515189415,14798010622071330539,5157543067879825470,217422333579415495,2175075376288740309,12075631952981906157,6346645347160363685,16286864106778650282,9149023965382996783,7187684626250123351,11733308323734394737,15935526861041309217,11402650990727889511,7144538977177484771,11122690345453572829,5909017433199184824,1862281579874231777,3465544670563961433,10950782010635300570,7979757813884359726,10871384119573043367,10779436062867761739,10602573589229546844,7602915691898082947,12223805249662029333,15428270238661777337,13952131677327538262,16691209701183328661,1177065616029098765,11698446458574049535,5484300726561222883,4524181949072295177,17614339940677052472,4260352294316790066,10062885795435671989,5265269110081975485,14780998715881399715,18318857723895210761,10205005248348674485,5683294312249491907,14406529908851010883,16579940993382618825,6894282513646431483,10410695566846433769,14483975964560886411,9419009991411002520,7506655244805145046,8158132972222574817,4317030071999241699,9227648132811588062,14876442553533281806,2938297536002995958,11962023668747572821,16848862289943456528,1745206687243636644,3163039293804490140,7965830451125301181,7320159349859058043,18223894366655946656,7447859255312115578,16359865623824936454,1854214475964099239,12790032986603393000,4197298934343860245,8304160044633506792,5186908004396312716,1488270794450998676,16837485535140191649,15852074795445534926,16079148098160424916,11938995368413388486,2650296204035784104,18083826560355223505,4024307455983606731,6067478450346618615,6773611771451021357,8967293749527092598,14481824442061067754,8717807574741918586,8677953596970673824,5861506479573223363,16720764491503169167,18204700738351837570,1601319643367906329,12188611969365430373,13368582402633748028,11280967755420275390,10455147737488341239,9133286196437847107,2067382378581099799,4359080183269515044,7698052785559880451,11227198840448166246,18354106958294554958,12440236377642337374,4174867569774363095,12891084248857144885,2923065289364701847,17130562612393648001,4351796895229373497,1177320057690495826,18194616179329341515,2324932459667616093,6805414145910604655,7047694696074336155,13017798834482261492,17865242200942845773,750289459317936482,17055420155079918554,5750036491900941234,959801494045902682,8335517470166022825,12685443196340580600,12863612980075964176,14004915064814197395,11397022204474553586,12869205345282788725,8695816015635508925,11592803097353505248,13348790064348741122,6056670212433495332,5605111642648214925,16634403581929517129,10602573589229546844,14153271315395398218,326816133871190183,14408119209847881113,5451691219550610714,7564291543246112263,3896350064206377695,7891617190834882432,7602944212131307248,7056064730876278813,427130267315539355,16780239150340606752,4952159950189022646,12996357555864634677,9529796124425403307,4405169690911724950,6774143990133700236,13301954074552043677,1156261787321610922,3102833538695532732,16900037664611261618,11007831070178712166,754376886755701716,3688782032822940656,7217314537131834497,13299141694869246359,8740777967250665439,7049975659789979789,7750713763084053607,3563046201675003960,15132308250250603149,2475524453460574157,17891835394196995748,7061029283352714327,17695068694310177348,6650845918198444384,3697360173016937737,10404104291479598257,4545983307240123956,11509583569607948428,17827227931866117995,3853965369418134636,17958754611991056425,10484647090737041856,8904264362215956640,11093831137412369748,7558913430485726726,1298198689422346959,15495297445927865470,13000897759210383218,1358900196871698490,5752370384341585999,442215439806999784,3234797544384537044,4041108195420888383,994294295351023662,3150507688824358614,12447938559920176735,14909094379234764493,10049187155610792209,4420379597908025686,15487720521233417680,5441365388390311545,6578172654378101579,2548519569363943282,13513910697155596579,10442460940677035469,3414190529818641490,15825869240556011094,3914238732020007383,11375226709152188604,10923760893711545050,15023660279330229896,1494062959400515782,4661602374806528710,5668287203412210110,230755449342440165,3077708704253014214,2886485735832144568,12156841753689183063,15320799827427474320,7629472798632943495,16949978362654098140,5073396884301449011,11145895259859769377,4490292311742104268,1322289224583716761,550011016766183932,13885881715549220160,1227880846040292615,1493699926901101604,2571535513391691395,7766602346589229932,4161709166992439722,5934756641106611056,15615787299505078438,3732888415720347212,11365097727533839881,8984205759639104077,5651062067664181975,14444323787944745388,10602573589229546844,15103121693672241500,3521641591753484771,15634763677585556505,5012125620375077019,1706507395531208570,4238591940625958013,17807036249047440623,13965302906432604678,14342438513634579153,16173268969268916331,2906381193781788412,492034979555030414,3876367680649732061,1844887985021401524,12186589931722211999,12482314604060477289,13871245352204387928,3444855833359739859,5387436819519360815,2076314752481071900,17600974190772006507,15738549682502611789,13778523759301772607,13248635162388700162,3567882042814727458,11707866385394706258,5584779742345949579,6316525302073988025,1466502847881357741,15053963760404193743,13351841322930613775,14495353415798598836,9286145431821924712,4429142900663673699,1253541791538229497,18372574080045504034,16913937471672424163,6769601902996410767,10106169381850068128,2046705625640368810,17665647695005225073,6262937810328346618,9396485767175674101,13127846868936943426,17132675170525251309,9822866650905881836,15276013060884547688,6481647878237451636,10484613655228638153,8920643728639777626,12230101164777090770,13109161096494271451,12843414999739612798,14933343336120854287,6509778995012354659,6954126439923916840,10336393798419431522,4074807093639023595,8619526069233060808,16820246949633624843,10214954673539226582,14570123114052203618,1074337038402981810,7635067748864813450,5532526665657502881,5906905223167709783,18137267062554394250,9691118398569104087,4411331501151024978,3868971305839894956,4450197239220570048,17830459733683099562,9813593581930012113,3279902096370508634,13303851672305459446,4861109288561974529,13485954880722818947,7287320196866448723,2910133932739716294,1241093941299981163,3882900114128207045,18150434417531441621,8536678956549242392,14302418635881583431,4889936147685899223,3599574795349086592,9349614689489251647,5941334082615690054,6510633516280536988,3658752572837284642,3974842878463759276,10962539822376420559,15697059852741816176,16849495926099519245,4794416623041001843,4355756214372903695,2174544023868699197,4319233948612010179,11962472209250164211,2482351457502514582,10602573589229546844,9606072669490943975,8389884739042335419,10681567007315049665,13850931412078522037,4095788952686561506,5314405036027915188,16555202206404415966,13613467935258868325,15040769577639001637,16817224804994174833,503427878074936323,12475879360916906694,12175099612243662372,18245644000284154433,13005997902542078321,1807529333873025669,15414290744617828076,11185621556175414490,14508931569028465826,14547368062995101697,13601547940131665976,7837430560381113455,8724045410384058508,4715691361941460079,15295393493207429071,9833419065399854963,1499005462894536992,147000590335713500,5794204145019158092,18027972318832059754,2306138158897856625,1646398918976608194,16479342627581483859,10602573589229546844,10602573589229546844,963791532086122350,3106215778659157110,9413220622851381370,13050753064511502071,10589776816262904999,1513273915360000787,17117724955369309339,10602573589229546844,8258539822085329220,16224108241331388138,16493838185686639719,6585570663018178124,3242158827382383426,532068077042376143,10602573589229546844,1521099166341804923,10149396001724953693,1756370674430250861,272906525482589462,13295048459984557089,17106533627012725264,16258397819673723547,1701994841097870568,16352688757522242862,2592634411084718411,10602573589229546844,5541142905284323951,13345047184995215122,3971061552779435021,10830027357181313585,5796602532533941613,15892824111946181525,5527791634177741505,1658356268895861488,4092079150346932278,8268006023887080068,15900974100529564652,13009627442704154436,10856110554090549996,9128749983924206467,7029116692464540725,3153230139144003885,10916065712441949287,15563238854963442114,6032000426154971505,6579433662810826268,4952551125421147930,15128319560645286011,2347561215985436307,12763308926857672362,6518724237147960678,984193294971367937,10602573589229546844,1106616560598776674,1360941020276498676,11785341071430504216,13770401122605315710,4342298566152571609,9606360809014113199,10671159392272674082,13108837898245418828,2817857740954170170,14053265279651645011,6585021163752747784,2650033388370156597,7503758639846881608,5324629953184810166,591688603668833492,1577895472049365994,6346920869462583589,12392238758996181370,1704538485242833086,17152099210315068784,16180298156806132622,14018723029693390588,2884179524142278313,11124163375537191282,18320772732460611898,16820343451080465911,17819459477958525685,5813970103203806564,16633755104059066579,17488033902177687201,2473608697134418559,17709003374781246393,95460204587832587,10602573589229546844,6358475991181475274,1196633835267704076,433249600599133112,8007241031025770700,9961433277013134100,17513373899142762175,5496173628826520494,8251532161209005934,16822713586793458169,18038578351767047046,3251458916879764809,7142933183701881721,7022895846954486648,380615169797729291,16862285182576518907,10602573589229546844] \ No newline at end of file +column: variant with hashes: [3290145166093762980,14179897596576105469,3518677861186945217,2282085295964132384,3290145166093762980,559338346485959129,2282085295964132384,15905536912678961394,2282085295964132384,7021324166002335292,18096701186305226541,102226537653930837,3518677861186945217,18096701186305226541,559338346485959129,102226537653930837,559338346485959129,102226537653930837,18096701186305226541,559338346485959129,14179897596576105469,2282085295964132384,11072762366266850873,6348604300041726601,3290145166093762980,6348604300041726601,2282085295964132384,15809008797971016995,18096701186305226541,2282085295964132384,559338346485959129,3290145166093762980,15809008797971016995,102226537653930837,2282085295964132384,15905536912678961394,3290145166093762980,15905536912678961394,14179897596576105469,3290145166093762980,102226537653930837,3518677861186945217,559338346485959129,11072762366266850873,3518677861186945217,14179897596576105469,6348604300041726601,18096701186305226541,15905536912678961394,11072762366266850873,7021324166002335292,6348604300041726601,3518677861186945217,2282085295964132384,3518677861186945217,6348604300041726601,15905536912678961394,3290145166093762980,3518677861186945217,15809008797971016995,102226537653930837,6348604300041726601,18096701186305226541,3290145166093762980,14179897596576105469,3290145166093762980,18096701186305226541,7021324166002335292,18096701186305226541,3290145166093762980,15809008797971016995,6348604300041726601,7021324166002335292,11072762366266850873,102226537653930837,2282085295964132384,3290145166093762980,559338346485959129,3518677861186945217,18096701186305226541,15905536912678961394,15905536912678961394,15809008797971016995,559338346485959129,102226537653930837,15809008797971016995,3290145166093762980,14179897596576105469,3518677861186945217,102226537653930837,559338346485959129,14179897596576105469,15809008797971016995,14179897596576105469,15905536912678961394,15905536912678961394,6348604300041726601,2282085295964132384,102226537653930837,3518677861186945217,10602573589229546844,17112874075517206433,10602573589229546844,17254401115644597125,17112874075517206433,17209060699095012878,17254401115644597125,13302687684020648567,13302687684020648567,13302687684020648567,10602573589229546844,1038248107092713708,17254401115644597125,13302687684020648567,17209060699095012878,13302687684020648567,17209060699095012878,17254401115644597125,10602573589229546844,1280023314843046514,17112874075517206433,10602573589229546844,1280023314843046514,17209060699095012878,17209060699095012878,1280023314843046514,1280023314843046514,13302687684020648567,17209060699095012878,13302687684020648567,13302687684020648567,10602573589229546844,10602573589229546844,17254401115644597125,17209060699095012878,13302687684020648567,10602573589229546844,1280023314843046514,17209060699095012878,13302687684020648567,17254401115644597125,17112874075517206433,1280023314843046514,17209060699095012878,17254401115644597125,1280023314843046514,13302687684020648567,17209060699095012878,10602573589229546844,17254401115644597125,1038248107092713708,17209060699095012878,10602573589229546844,17209060699095012878,17209060699095012878,17209060699095012878,17112874075517206433,10602573589229546844,13302687684020648567,1280023314843046514,1038248107092713708,13302687684020648567,17209060699095012878,10602573589229546844,17209060699095012878,17254401115644597125,17254401115644597125,13302687684020648567,1280023314843046514,17254401115644597125,1280023314843046514,17209060699095012878,17112874075517206433,10602573589229546844,1280023314843046514,13302687684020648567,1038248107092713708,17209060699095012878,1038248107092713708,17209060699095012878,10602573589229546844,10602573589229546844,17254401115644597125,17254401115644597125,1280023314843046514,1038248107092713708,13302687684020648567,17112874075517206433,17254401115644597125,17254401115644597125,10602573589229546844,1038248107092713708,17112874075517206433,1280023314843046514,1280023314843046514,1038248107092713708,17254401115644597125,17209060699095012878,10602573589229546844,17112874075517206433,13302687684020648567,10602573589229546844,8739666254610784476,15178307909647726039,812377251159971894,5104988259232340187,15178307909647726039,14179897596576105469,5002941667199342543,15178307909647726039,8692085290974651848,3343855588952036451,812377251159971894,1244063564664642073,5002941667199342543,1171377148146271186,16129489899755404978,14179897596576105469,8692085290974651848,16129489899755404978,16129489899755404978,14179897596576105469,14179897596576105469,5002941667199342543,8692085290974651848,15178307909647726039,5104988259232340187,5002941667199342543,812377251159971894,3343855588952036451,8739666254610784476,14179897596576105469,1244063564664642073,3343855588952036451,15178307909647726039,5002941667199342543,3343855588952036451,16129489899755404978,5002941667199342543,14179897596576105469,14179897596576105469,16129489899755404978,14179897596576105469,18011992382478577847,7360877390192632990,8692085290974651848,812377251159971894,1244063564664642073,1244063564664642073,18011992382478577847,16129489899755404978,7360877390192632990,5104988259232340187,7360877390192632990,8692085290974651848,8739666254610784476,1244063564664642073,15178307909647726039,1244063564664642073,18011992382478577847,14179897596576105469,18011992382478577847,14179897596576105469,7360877390192632990,1171377148146271186,8739666254610784476,15178307909647726039,5104988259232340187,1244063564664642073,7360877390192632990,18011992382478577847,15178307909647726039,14179897596576105469,5104988259232340187,5002941667199342543,1171377148146271186,5104988259232340187,8692085290974651848,15178307909647726039,14179897596576105469,3343855588952036451,14179897596576105469,8692085290974651848,812377251159971894,16129489899755404978,5002941667199342543,1244063564664642073,812377251159971894,16129489899755404978,14179897596576105469,5104988259232340187,8692085290974651848,8692085290974651848,18011992382478577847,1244063564664642073,8692085290974651848,8739666254610784476,812377251159971894,14179897596576105469,1171377148146271186,15178307909647726039,14179897596576105469,10602573589229546844,13302687684020648567,2304212471448909901,13302687684020648567,12359048830691715757,13302687684020648567,13293414154332091538,13302687684020648567,12359048830691715757,12359048830691715757,13302687684020648567,13613960073370969052,2472461031540241330,17815258578778888438,11170613619857658709,13302687684020648567,13302687684020648567,4623580367614773573,13302687684020648567,4289708442234706008,13302687684020648567,11552622925026124944,12359048830691715757,12359048830691715757,12359048830691715757,12359048830691715757,4688013811067771242,7856452706204403306,13302687684020648567,13302687684020648567,9753965225196829855,9394402753015823089,13302687684020648567,12359048830691715757,12359048830691715757,12359048830691715757,12359048830691715757,13302687684020648567,1509191514857943066,187849560094777570,5315364172701025632,3504649842843451748,12359048830691715757,3148298162024192477,11042776522728687326,13302687684020648567,13302687684020648567,5596852626596824375,17074599932331248709,12359048830691715757,3754174822703729661,7810040041842691716,13302687684020648567,13302687684020648567,16189095675728225227,255714044816409931,13302687684020648567,12359048830691715757,12744991635814369385,12359048830691715757,15169920827410952292,13302687684020648567,1426916479094374011,4452715528165719241,11936773386101778446,13302687684020648567,13302687684020648567,15008289404070888265,13302687684020648567,7030258425402590679,12359048830691715757,1223801264702774161,1036006280100608927,13302687684020648567,8141277443953488766,16548412318812889026,5475537186384353678,17471770755386394405,13302687684020648567,12359048830691715757,12359048830691715757,479311632194338959,12359048830691715757,7399442542196036391,13302687684020648567,13302687684020648567,14184195780233559772,13302687684020648567,15704543699661715723,13302687684020648567,13302687684020648567,13302687684020648567,17679315446558780265,1494615190534264233,4260143534680144484,12359048830691715757,13302687684020648567,13302687684020648567,7669219378345197213,12359048830691715757,12359048830691715757,10602573589229546844,3338426295365967936,15594310977517476411,4057501132997343753,13323601507075251522,9166489375359541030,1607347719686430197,16443618625915503188,4202660276778349692,571099193561588314,2731158294417541723,606085845100614263,17785273054405138055,1398832288664687032,4611350394226874322,9044013165502547257,3815998028434298813,6979208951624431293,15313671671275175243,10969246000779150374,1046008209391436618,1420074487803791636,4276946784821082257,14212792163527298774,1144821407582670613,10187012831972652085,408818633112895858,14224778724945991650,8868823939318228679,207065603964520834,6676050004705678461,17761328392960004411,17050041739912832401,11622487990431867257,15744214346824844721,18410258651744189862,12828345096931480804,5134341978732774820,13308654056323640182,1587029730619292266,7754860317218979347,9961394932974191173,8489318576164157575,13840981329683177286,12977248042709188475,11346908028462483596,12958167744950328724,10123915052481996591,17284560172551443882,12312021936348761362,2849907624439992348,12323937564244743400,15240205013926292761,10220678325069161212,6646895156847271640,17798270414365883043,4387826955308593371,15144942833001252635,11577798714660980323,4971791540085243677,13941892530303862681,16320121896481527999,1917411618067623777,5278777213842343676,17791533807329327254,114988887541358966,7246244413306650750,16201886545952938814,8732789317433977641,3083949107618607756,7349282668113945520,2233331151053953576,3250232666387396876,3688978010045580023,8610223150631420186,11524770106606160003,7030178815826596692,13418064863693045012,15230340761456659630,14225585374273262497,16209408840064557931,10910516484019956900,2659138929891331751,4385030733736999343,5606610651018674624,17851338770792313206,4389520907420599746,3524591935182794679,15601757682959536437,11176915577281374279,10813440780956822690,4318075123299771210,5584319398143315430,16047405908109902839,17835565564832627747,14179662821775344906,12773162760830708353,17486275692972458472,17198613561093558874,5753460429532648455,17247417965379641131,10602573589229546844,15872134320060056111,7559884574576698649,4328585262606181976,16358945300240752532,12464524184570539358,11014964606096999732,3084316737218512843,9278133677686438626,3518440876519799723,10775703406361350658,5805060657492691696,11924358278266768721,17855343030579816859,14516847337676784407,13676127831254318547,10456905929595148683,7735620555393111266,3241768658482335014,2595476950073929310,10421738543798853648,17911006528214355539,576749604685988464,8422051840612098804,252187175464301845,2284672888619046771,7882495673502672090,13885845998556727370,9886530209998608733,1479690893742776007,10434197361650708763,15069769610481535357,580284055471504057,17252798465628782186,3384443002128773597,7852457786408498836,12683757221328197990,7032018564012797342,7238496811887382872,5037019288439403018,2412080750403882540,7355165422853651479,18250774343352987357,11246008152933736383,5385049900633323131,14754315140965713623,16437797297411593563,65649294369131690,10844000642436385971,3765693506386461266,13026722847395944936,3283910339400917698,17271812845574894566,3776371020329813283,842568490056386289,3581349608572071771,11292576361582828866,13824456289085998812,15330732957077035245,8786719435872347202,2073368443058328488,6441321833059451836,5069839156882732393,14832544838006298453,7230708353583680382,7805820249885947283,11529232597114378927,15389721387823150543,18321457519182203783,4710300886632918119,1041155623814670477,3872149014426072278,15979683547824762603,10868432513599470662,13833226343277270151,10413803895988801314,15190424076762442509,6433380239606099317,6052633643101512701,9003115080978215971,14153407480110880185,4119395796052909149,11135111373928480509,3954857937491835563,8689008136163576436,11530124406766178326,17029029271016296507,8773028854759323383,18088628066909173907,16354540222337358572,7458466405529490000,15174974958880264903,11209234501548056867,12383592288236160612,15814012305177451434,5379875769890031652,12727491509863781135,15902054534992604478,11519416013863429713,1173951417776995118,16648489215745723877,10602573589229546844,17203153323972358178,17742878855641594246,4924844209718222592,4135176252081941781,178748180946962156,2222271086227148369,14177493903788009281,5041240531480921193,12068733577476301604,4007150231755155871,5446250639082586416,9099844918804967619,16828525984764175972,5716405752005651015,12740865445580224825,9274583647079151728,17432680332835883668,4911957039163506608,4543209020176646527,10786081754605053182,9118957709374980316,9627144256951978670,17356687123204871446,11370444602574441398,17113306970144086056,6595344544555937296,4721566182156582271,10009584245958859921,362401659160067721,5549022485866245697,3807628175306549836,2274708382950256232,2695820098762577021,483975751063028122,434890395856256628,7448586734777288132,14891402305204231350,7847866160680163953,15874491104163534088,529473970365849976,9988536511888063190,17100231009091575357,18078382210723421719,9720203011099331283,9675611621984291059,12491047585904544030,15272384185733715038,12944417101690996783,14363016931326417511,4840699627439038661,10340228522981402649,17690480527894510627,7604459736870934842,5751775263088702391,15642995554395507151,5466017630847637232,17519613609860207754,12753608512079682241,15595220839430955202,5375431124669602890,6072052997545167453,9428624683311034151,9880129852230148958,17788158196091340410,4376284683713879426,14331998802871307213,7290705505224189150,12463655123131126548,2673049891578764007,8774136865663922522,8714828247828333166,11916994964216675318,9047788826610290135,9753373531515544548,6282888024718994066,13993437694560513908,25556850036741933,4781545729367770099,13254572643491790547,12649084963090877677,6216564577478025921,13318305349620368987,6821218868290178674,12701799770858620030,9842881334944845490,5641564015292998965,10417937444271514412,17816193871284015790,10392723424791641408,2624619336333270595,6305710236723850138,4681452046143442236,3687708255984554353,7276275058476875765,13262003968656109884,92165720835080734,10409221065344579158,8232052831451324411,8067498541312495138,2551567092579314271,10602573589229546844,7326352887493694710,15189149154581556638,8808867487248125621,5904392934218447993,9029278753792209148,6517993134731675987,15902363608976369278,1031041436428329184,8510946436763466173,3176310636165232787,1597495200971986531,15834345599469942897,2180999923836713881,3044881705341095081,11595299560029682330,9315192753370508746,9170581200494814218,5851672579299793898,14717663129718940111,1406151836439411786,3260973658698922871,16203256600477833126,16576423156895806556,14362955949837915181,2813876429358201067,3137473598973988982,259388115568205872,2917417053998206741,930256901693239410,12033410642815195485,5657517069247033365,3758194451725281497,12843379457889633796,18238788632786218268,3896842522533751646,18268506742313693132,1908918760289502471,11825864707562857343,11610163084068807749,6221931061535521958,17267243088573094052,1347273201590805114,13909778679637712596,8233517626437651588,10047936433362963431,17115428351859572143,16483185524190047882,15204250469136906261,13611916722830016167,2099576251847421927,2261190933348059546,14255371148909713495,856915394790746390,17320963270792083870,9623468820166879237,8269702744907857892,3779706672242582155,17952039103454142226,17727264939475063992,10255963125890116182,17662042042679070808,1209638727956033196,3840994900245247853,10730681120184758188,10379132100415159073,16626266965189646531,11074987208864287607,10861253310822286195,9316361369574055664,1640977774773151457,15755869191161483245,5892511431504801167,14784774002384453984,2636079409402575837,12024512115868410777,17597092020922872033,481870243549136780,1805839673278493683,13403293069164353946,1157324193543157746,102596199047747489,13717624933084840409,4183376463880352828,7486771940490564716,3139975234384161623,15726130405003381247,12484853971055466882,8992768775401560083,7033788999853960409,14388869810324883420,5646116694537626834,7401055423804098458,12160003175243089421,6218774451448178323,12755774764885890439,6236945731054508744,18037169531353845713,12143810950107380841,3509922375514232176,12692764884065073308,10602573589229546844,10602573589229546844,12900861041027527391,4244338613455473297,9129517428476856206,3736508731272525833,15493645689108251625,7307242076432892998,14020308724297016471,10293643728944242296,5709890512077047168,82659178573936069,15854579313953466891,9371582727157169066,923809876698806854,17395958212806504369,5435367679895773653,18164009381226635661,17833843404454285294,2222365010452681526,6820469339856609663,1376752953171116078,9776368236177239000,9850535218431053105,14753980128579497795,3432347660578356015,7131070797334035796,4134357243202792699,4433949126209489504,7147841148668482649,50539409706381864,6949810553513821346,10584127918439320806,984241675604952379,16737238096181014786,9216076306965320461,9068539173758520642,3630846105427143983,4486237552946433349,17430190963502660983,12079624623487668620,1065871596579987842,6120217353891868019,14982081734029890107,7978596697620335271,14465099679152704123,2812926217103196487,3102838113447176142,15626256039722309974,6886812911318109298,9867587471260092476,16323506292710876560,5249212146298623016,17736751960486450427,6037063808214074821,13754206870766679993,14422130015132992804,2066243007162602134,8848565875196090944,1273939831866432258,6473054026779190714,13782096807224460510,1047438447134487731,3903960638406116348,4678558988349508302,16377976372980554435,8576394114847577874,3076187404349397061,13589831145133467721,8322457648353093867,17426791209791822592,4019893402977045109,500653140301615053,7782351349770563378,16162318915184717622,11569850666569124097,7820241711017331418,10064391391054435237,9575467286527369287,10500065557202939362,2242739520723922325,11589989659419136554,5034383902210693477,12276395273098503377,7322791428641069902,504506814765970599,990289361187244497,4934007598444239780,16736564897050471000,16327840004792683330,14806437981346288608,12685138507944687412,5741215182590027327,15791234557926162539,360299796114552218,5608360907959109603,3272573183115055815,17786715429065724020,11793679801028988440,16430834569769034180,13201448439765375926,4131214307240471124,10602573589229546844,7183401416957031585,12076693006237094892,5937988889376106012,16456410431959210174,8932991786486271580,6962913320336483583,10233381659658714223,10867174968109132147,6129233847652433440,17822226402129210138,4276486576655958605,12775136395640284192,3754124365376375950,1885655150057378787,2019863245594777703,13325512143702844809,2550364779283090790,11524709758760695571,6729478450002051661,800952670321322475,17308628722445384471,11150300655872553471,17295360842195561958,4916369494758685186,10600935308502095446,6970349675291331358,16823670614814377116,11499017352696888582,3851496774575724997,5184053360520920230,595708978826242635,2383894917649564633,5139147418982042852,2026170229727951214,8472257561491725180,15471313320852897765,10681919417935555416,14032689424156356439,9590673241922088199,9236678035184909242,7949128185822096864,8346450043567318821,16960270449204278225,5789267810441726409,6110368825526033640,5620206573965554523,11990390467744875217,95370221068666123,2343237007157341145,4970104386626117365,14280210963534624349,5466637103895262524,12430588125202842900,1050985079669031561,4811470836354992054,10100770411149823472,8167163948434783319,16610796952855441928,13045764703584750967,14545943460636755642,12518234423900929186,16055022269575837584,13705095591824147993,8633591064846448554,2286559633547158891,4607601762782045124,11596241992969996566,10847130871956718017,17112783129721669965,17148986314175834741,10336789303584019224,2381263103797207369,14739742558588072624,14449810855494386103,14464620756138391705,15609208131675145371,1212541055318962605,12711811796207667647,10613752917820200992,1371881409996547006,5575327075932639798,8537585380951824935,6950409076178757814,2982607551297859926,5900167319431715598,13060937734980206101,8553978863000460687,15985796496958186431,7867474051776884287,15964016375995594524,13755992738612270514,7527214212025225368,8545734971344547981,7174342528264451153,18430419953009882584,15260873774473221899,4299769974746939445,5231753616031241770,2973540424586533058,459568569691678998,10602573589229546844,15337563609455363181,2796514642721817560,10482810323167991106,6249665449184620954,15334935617308769368,13919941537000217653,9748044664990820722,17050183124352069299,6160802939903581576,12720787555119913506,2679915385099775688,10505039160101376257,3325336990986812981,17241624377155028606,18081338112631802629,1847677915718139299,681984696385197390,15729018154561322082,6086703267657645374,9342847630701005151,2274224041984896863,2236360414269904254,16956514831969316584,3137789496121549035,4412642917201584576,3584794310008660459,12900267584452864979,16174712686859089948,5658546200301652320,7160107916934041241,7665141211099913235,7267114041469446038,5409542752345536214,2588744273721235112,10038716364799216054,3989427143024262217,9502084679397128533,15607171222994809003,17966296997152003599,8019685053991382869,18153796766605286027,14518788494089733890,17853591646753790051,14278575594571788667,1346479387563357422,5622240203918140762,12058941286589889491,11456807865854682413,5240446596896205182,13341330249566828899,16123442879568284480,1872936128664255764,12167475020261592682,557297687847228837,8930277633594363104,13819941730143336027,18329549476667324177,6159654301339806710,13773809203530302367,7590342135084066293,327925632540303172,15173645336209490729,10046530397846617759,13004236943311019688,4747576370413112294,5696300638119677654,1832757651017951858,5920855719383529106,12225802126934379107,9490596010154943223,1208738002276431491,17973415453688435477,7992926857421443803,9769999314584595262,10897402804189501920,14878049484782298807,8850136056563903709,6833187625669349912,5934593967705005038,14773605707708345730,13354191879806099937,9815878477379599932,8423939223268191791,6550475470298189869,1168418314527648557,3583525173810313747,14099746965589579186,6610453727338652003,15679593227684956240,11308430043917808573,10698570428701842065,18004786861008912760,13195284883724657516,3778747305995814275,2509225883543035563,18002137865348949251,11900055750107987323,2593496529629806991,2378021401140673839,14312437332830458020,10602573589229546844,10602573589229546844,14972349579016598928,11695411798689339785,2523901729407113774,12293100498536919971,995490259256164396,15884439207136215706,8450349703173019977,12444947071735945369,5695119773658516003,1878906089644267223,1371109263626838542,17327961196149953542,14311238138831059242,10218974785408766852,6732604311152920399,4117849517087174411,15144635073275138465,17320821939924161096,1221697348419868140,11024879788583264104,1133648033953136370,8400037335309727075,2319166639030705440,707413349082465673,1449616507720601705,5614575012570725065,7816926386133444771,4373171180965529491,6474226976037928934,7929610226479745047,2274059729385376406,5902542275446632625,9286495249654593981,9226039305308980184,4190765839760708897,17645119798104248524,5443593451812239998,19297342682904516,7476283610036370171,16146450274151670179,2203946686843692720,16526578272195265392,3963704607422626134,17823426684664906033,8609752701621585356,13093487942013765471,7653784619157219107,3538649936366134397,2576340040028183184,6180606330153370795,14484037034834500744,7367263128740423798,3571057410840708052,2366185020487219345,16314556118539995951,15019033129950935251,1685000483563412330,5901377064279407651,2795365648318969828,8314887005824800448,8485010021258847671,93962123559642480,10094736560871688871,2595341530773824110,13910385023534012523,1202099326878773987,39002523550096644,6427050104191128540,6613324789960658283,15765249526564123452,14919580808855336592,4929983619565027927,6133540473154166068,3926368121487545297,1200472118342425298,15540429513974286659,14530451587371367468,16944723200808112343,6915449440820631385,4112321020172727924,15040893187402527858,2402057256064651342,17732782860838847841,4868517137274935996,10932261201640255797,10333445274639050270,17461466497541349311,11953468075011869961,6664074613633133898,9172689982551940671,5285720192392549042,18238363743454465888,15355314562745836327,1052004129226321439,17785454728974977489,16761342524542217045,15679704323025044612,7459957391298722157,3751305325653211999,4930358793999494051,10602573589229546844,7861988692610954217,9542623669186119750,16922426114756168947,5191474574223609161,9954739135685826850,7229668957512951315,16084811999171561622,8072839219614072481,7406880761813178939,15612740789108347317,541995465442804851,13732445822591192318,18086201691784447055,9746982845526750340,12804289103014173084,11083840833010329991,1783003261643010465,9117442032978129797,13012799312388516121,119892996303555065,7474373714424659854,4673137979086430732,12665526060977458683,821595259113844688,9241395977962668441,5810706344739782464,2958727076944262512,10872151066085158195,3975647098490875862,13620026325845212606,4592708773051995425,2532050216248358656,15286182533135633581,6056878601740855776,12989164715043761894,3580611142715920923,13203439263756832993,14057924180038507459,9994214813627291833,12545952880190479071,5717269521054597677,16850365877971481262,3056472398115111922,1249067097803586938,6594590285704539117,12976098760044119563,602871569998526564,1173030003460382511,16018119098348287776,5188101113322837813,17219109487424544083,11018814190263638018,2226575031512035975,10592996648536675770,16703193955119184793,14641653226494285088,531572449938331672,8534790516645752680,7458147321315620727,15624175467845668551,9520460063946164892,1636320769486596995,17165432618256977288,10482777825757818210,16701708964921053821,16512154151947728469,8887635219842572857,10034603326835099454,16643404147981460192,8273501013454361383,2664913241702696223,3898455886186912132,3139927210379830542,4254044792383814861,2927782573782793884,11703602200944442267,7958024954149200660,10132613804970118929,18380146648515189415,14798010622071330539,5157543067879825470,217422333579415495,2175075376288740309,12075631952981906157,6346645347160363685,16286864106778650282,9149023965382996783,7187684626250123351,11733308323734394737,15935526861041309217,11402650990727889511,7144538977177484771,11122690345453572829,5909017433199184824,1862281579874231777,3465544670563961433,10950782010635300570,7979757813884359726,10871384119573043367,10779436062867761739,10602573589229546844,12211587853922729139,17310157289188817310,1828738850265443057,11686197741231982491,15315820447950768380,4235979189969558934,12001206620657905318,203135273005306787,17040022538831406209,10346168891841380406,16918109986896993265,17021790119715714060,2649993667600019536,9044209674251782359,6219546105493480461,17717865977767963230,17627387034071481989,11680091904585990062,12931362483411966397,6048683374503675710,15671378119545988193,2265855741073964033,5094132629793370044,8203973829296198433,12000179492077156355,12166452543510860715,1510457130194138114,1789931420864462716,2784367768735788403,12206096683137717071,970963430336264850,14117536346312688545,17571398631753367493,3096747748955330235,9164877924133409765,18243068994909398492,11290621419553432447,9635740365787630372,2435796266732197955,9301399834644526759,4425624267496538535,17862551063070638732,17086707379484744804,16713932111631836660,10935407647143161273,3363865533785101119,9934262664758772231,16872098444236849490,18246463620981420241,6867791964874827674,9851914099193856941,6681644903429092762,14828195332678604002,18302394369157056949,9484968043036641931,14354722210543842231,15831151002855340829,8040875956332537614,13265034166257693427,1541306874593594635,11834899447840811918,7919741152676295452,10118181690275659754,16231389634916134787,14205968497294749780,14345244031139160173,5244857918154018502,3326629892974312897,3047847967157296448,1967968435884366574,4867505557656386616,8274422846988258911,3846439358933896830,17329696406643100085,10407408097562935021,1952846919053282449,10533425492028800333,4112737923095184768,16872104924984729619,14084759821602017635,15582904901897697427,11901793371634948330,256183857613650548,4796744797372628255,10221312941254580712,12353719216751459594,10383132382806687482,2240196118683507942,12917974001241380056,919130174771930470,4464793675393633020,1476310639760917525,14846969441449205266,14701441330841597716,7061716885292664500,17964587834785753718,7446686787297153172,10187491113017115812,11597271403087824112,10023803248613608395,10602573589229546844,14153271315395398218,326816133871190183,14408119209847881113,5451691219550610714,7564291543246112263,3896350064206377695,7891617190834882432,7602944212131307248,7056064730876278813,427130267315539355,16780239150340606752,4952159950189022646,12996357555864634677,9529796124425403307,4405169690911724950,6774143990133700236,13301954074552043677,1156261787321610922,3102833538695532732,16900037664611261618,11007831070178712166,754376886755701716,3688782032822940656,7217314537131834497,13299141694869246359,8740777967250665439,7049975659789979789,7750713763084053607,3563046201675003960,15132308250250603149,2475524453460574157,17891835394196995748,7061029283352714327,17695068694310177348,6650845918198444384,3697360173016937737,10404104291479598257,4545983307240123956,11509583569607948428,17827227931866117995,3853965369418134636,17958754611991056425,10484647090737041856,8904264362215956640,11093831137412369748,7558913430485726726,1298198689422346959,15495297445927865470,13000897759210383218,1358900196871698490,5752370384341585999,442215439806999784,3234797544384537044,4041108195420888383,994294295351023662,3150507688824358614,12447938559920176735,14909094379234764493,10049187155610792209,4420379597908025686,15487720521233417680,5441365388390311545,6578172654378101579,2548519569363943282,13513910697155596579,10442460940677035469,3414190529818641490,15825869240556011094,3914238732020007383,11375226709152188604,10923760893711545050,15023660279330229896,1494062959400515782,4661602374806528710,5668287203412210110,230755449342440165,3077708704253014214,2886485735832144568,12156841753689183063,15320799827427474320,7629472798632943495,16949978362654098140,5073396884301449011,11145895259859769377,4490292311742104268,1322289224583716761,550011016766183932,13885881715549220160,1227880846040292615,1493699926901101604,2571535513391691395,7766602346589229932,4161709166992439722,5934756641106611056,15615787299505078438,3732888415720347212,11365097727533839881,8984205759639104077,5651062067664181975,14444323787944745388,10602573589229546844,15103121693672241500,3521641591753484771,15634763677585556505,5012125620375077019,1706507395531208570,4238591940625958013,17807036249047440623,13965302906432604678,14342438513634579153,16173268969268916331,2906381193781788412,492034979555030414,3876367680649732061,1844887985021401524,12186589931722211999,12482314604060477289,13871245352204387928,3444855833359739859,5387436819519360815,2076314752481071900,17600974190772006507,15738549682502611789,13778523759301772607,13248635162388700162,3567882042814727458,11707866385394706258,5584779742345949579,6316525302073988025,1466502847881357741,15053963760404193743,13351841322930613775,14495353415798598836,9286145431821924712,4429142900663673699,1253541791538229497,18372574080045504034,16913937471672424163,6769601902996410767,10106169381850068128,2046705625640368810,17665647695005225073,6262937810328346618,9396485767175674101,13127846868936943426,17132675170525251309,9822866650905881836,15276013060884547688,6481647878237451636,10484613655228638153,8920643728639777626,12230101164777090770,13109161096494271451,12843414999739612798,14933343336120854287,6509778995012354659,6954126439923916840,10336393798419431522,4074807093639023595,8619526069233060808,16820246949633624843,10214954673539226582,14570123114052203618,1074337038402981810,7635067748864813450,5532526665657502881,5906905223167709783,18137267062554394250,9691118398569104087,4411331501151024978,3868971305839894956,4450197239220570048,17830459733683099562,9813593581930012113,3279902096370508634,13303851672305459446,4861109288561974529,13485954880722818947,7287320196866448723,2910133932739716294,1241093941299981163,3882900114128207045,18150434417531441621,8536678956549242392,14302418635881583431,4889936147685899223,3599574795349086592,9349614689489251647,5941334082615690054,6510633516280536988,3658752572837284642,3974842878463759276,10962539822376420559,15697059852741816176,16849495926099519245,4794416623041001843,4355756214372903695,2174544023868699197,4319233948612010179,11962472209250164211,2482351457502514582,10602573589229546844,8092973567137364300,8389884739042335419,10681567007315049665,13850931412078522037,4749638587226851777,12178335991958950602,655890783792077095,5202835632052559700,1842341887813844777,14013156892850538606,503427878074936323,12475879360916906694,12175099612243662372,3697781085962995936,14652087365163642293,1807529333873025669,15414290744617828076,3552859064016865359,4697378039939060285,14547368062995101697,13601547940131665976,8295283840567894753,8724045410384058508,7088540792863092752,15295393493207429071,4601458573284247617,16891349236313452541,147000590335713500,5794204145019158092,16003980207189207019,4916972452224935607,9295528672609096263,16479342627581483859,10602573589229546844,10602573589229546844,963791532086122350,3106215778659157110,9413220622851381370,13050753064511502071,10589776816262904999,1513273915360000787,17117724955369309339,10602573589229546844,8258539822085329220,16224108241331388138,16493838185686639719,6585570663018178124,3242158827382383426,532068077042376143,10602573589229546844,1521099166341804923,10149396001724953693,1756370674430250861,272906525482589462,13295048459984557089,17106533627012725264,16258397819673723547,1701994841097870568,16352688757522242862,2592634411084718411,10602573589229546844,5541142905284323951,13345047184995215122,3971061552779435021,10830027357181313585,5796602532533941613,15892824111946181525,5527791634177741505,1658356268895861488,4092079150346932278,8268006023887080068,15900974100529564652,13009627442704154436,10856110554090549996,9128749983924206467,7029116692464540725,3153230139144003885,10916065712441949287,15563238854963442114,6032000426154971505,6579433662810826268,4952551125421147930,15128319560645286011,2347561215985436307,12763308926857672362,6518724237147960678,984193294971367937,10602573589229546844,1106616560598776674,1360941020276498676,11785341071430504216,13770401122605315710,4342298566152571609,9606360809014113199,10671159392272674082,13108837898245418828,2817857740954170170,14053265279651645011,6585021163752747784,2650033388370156597,7503758639846881608,5324629953184810166,591688603668833492,1577895472049365994,6346920869462583589,12392238758996181370,1704538485242833086,17152099210315068784,16180298156806132622,14018723029693390588,2884179524142278313,11124163375537191282,18320772732460611898,16820343451080465911,17819459477958525685,5813970103203806564,16633755104059066579,17488033902177687201,2473608697134418559,17709003374781246393,95460204587832587,10602573589229546844,6358475991181475274,1196633835267704076,433249600599133112,8007241031025770700,9961433277013134100,17513373899142762175,5496173628826520494,8251532161209005934,16822713586793458169,18038578351767047046,3251458916879764809,7142933183701881721,7022895846954486648,380615169797729291,16862285182576518907,10602573589229546844] \ No newline at end of file diff --git a/be/test/expected_result/vec/columns/column_variant_update_hashes_with_value.out_with_nullmap b/be/test/expected_result/vec/columns/column_variant_update_hashes_with_value.out_with_nullmap index f7c27b278e776e..3819c459cb0054 100644 --- a/be/test/expected_result/vec/columns/column_variant_update_hashes_with_value.out_with_nullmap +++ b/be/test/expected_result/vec/columns/column_variant_update_hashes_with_value.out_with_nullmap @@ -1 +1 @@ -column: variant with hashes: [3290145166093762980,14179897596576105469,14179897596576105469,2282085295964132384,3290145166093762980,559338346485959129,2282085295964132384,15905536912678961394,2282085295964132384,7021324166002335292,18096701186305226541,102226537653930837,14179897596576105469,18096701186305226541,559338346485959129,102226537653930837,559338346485959129,102226537653930837,18096701186305226541,559338346485959129,14179897596576105469,2282085295964132384,11072762366266850873,6348604300041726601,3290145166093762980,6348604300041726601,2282085295964132384,11072762366266850873,18096701186305226541,2282085295964132384,559338346485959129,3290145166093762980,11072762366266850873,102226537653930837,2282085295964132384,15905536912678961394,3290145166093762980,15905536912678961394,14179897596576105469,3290145166093762980,102226537653930837,14179897596576105469,559338346485959129,11072762366266850873,14179897596576105469,14179897596576105469,6348604300041726601,18096701186305226541,15905536912678961394,11072762366266850873,7021324166002335292,6348604300041726601,14179897596576105469,2282085295964132384,14179897596576105469,6348604300041726601,15905536912678961394,3290145166093762980,14179897596576105469,11072762366266850873,102226537653930837,6348604300041726601,18096701186305226541,3290145166093762980,14179897596576105469,3290145166093762980,18096701186305226541,7021324166002335292,18096701186305226541,3290145166093762980,11072762366266850873,6348604300041726601,7021324166002335292,11072762366266850873,102226537653930837,2282085295964132384,3290145166093762980,559338346485959129,14179897596576105469,18096701186305226541,15905536912678961394,15905536912678961394,11072762366266850873,559338346485959129,102226537653930837,11072762366266850873,3290145166093762980,14179897596576105469,14179897596576105469,102226537653930837,559338346485959129,14179897596576105469,11072762366266850873,14179897596576105469,15905536912678961394,15905536912678961394,6348604300041726601,2282085295964132384,102226537653930837,14179897596576105469,10602573589229546844,17112874075517206433,10602573589229546844,17254401115644597125,17112874075517206433,17209060699095012878,17254401115644597125,13302687684020648567,13302687684020648567,13302687684020648567,10602573589229546844,1038248107092713708,17254401115644597125,13302687684020648567,17209060699095012878,13302687684020648567,17209060699095012878,17254401115644597125,10602573589229546844,1280023314843046514,17112874075517206433,10602573589229546844,1280023314843046514,17209060699095012878,17209060699095012878,1280023314843046514,1280023314843046514,13302687684020648567,17209060699095012878,13302687684020648567,13302687684020648567,10602573589229546844,10602573589229546844,17254401115644597125,17209060699095012878,13302687684020648567,10602573589229546844,1280023314843046514,17209060699095012878,13302687684020648567,17254401115644597125,17112874075517206433,1280023314843046514,17209060699095012878,17254401115644597125,1280023314843046514,13302687684020648567,17209060699095012878,10602573589229546844,17254401115644597125,1038248107092713708,17209060699095012878,10602573589229546844,17209060699095012878,17209060699095012878,17209060699095012878,17112874075517206433,10602573589229546844,13302687684020648567,1280023314843046514,1038248107092713708,13302687684020648567,17209060699095012878,10602573589229546844,17209060699095012878,17254401115644597125,17254401115644597125,13302687684020648567,1280023314843046514,17254401115644597125,1280023314843046514,17209060699095012878,17112874075517206433,10602573589229546844,1280023314843046514,13302687684020648567,1038248107092713708,17209060699095012878,1038248107092713708,17209060699095012878,10602573589229546844,10602573589229546844,17254401115644597125,17254401115644597125,1280023314843046514,1038248107092713708,13302687684020648567,17112874075517206433,17254401115644597125,17254401115644597125,10602573589229546844,1038248107092713708,17112874075517206433,1280023314843046514,1280023314843046514,1038248107092713708,17254401115644597125,17209060699095012878,10602573589229546844,17112874075517206433,13302687684020648567,10602573589229546844,8739666254610784476,15178307909647726039,812377251159971894,5104988259232340187,15178307909647726039,14179897596576105469,5002941667199342543,15178307909647726039,8692085290974651848,3343855588952036451,812377251159971894,1244063564664642073,5002941667199342543,1171377148146271186,16129489899755404978,14179897596576105469,8692085290974651848,16129489899755404978,16129489899755404978,14179897596576105469,14179897596576105469,5002941667199342543,8692085290974651848,15178307909647726039,5104988259232340187,5002941667199342543,812377251159971894,3343855588952036451,8739666254610784476,14179897596576105469,1244063564664642073,3343855588952036451,15178307909647726039,5002941667199342543,3343855588952036451,16129489899755404978,5002941667199342543,14179897596576105469,14179897596576105469,16129489899755404978,14179897596576105469,18011992382478577847,7360877390192632990,8692085290974651848,812377251159971894,1244063564664642073,1244063564664642073,18011992382478577847,16129489899755404978,7360877390192632990,5104988259232340187,7360877390192632990,8692085290974651848,8739666254610784476,1244063564664642073,15178307909647726039,1244063564664642073,18011992382478577847,14179897596576105469,18011992382478577847,14179897596576105469,7360877390192632990,1171377148146271186,8739666254610784476,15178307909647726039,5104988259232340187,1244063564664642073,7360877390192632990,18011992382478577847,15178307909647726039,14179897596576105469,5104988259232340187,5002941667199342543,1171377148146271186,5104988259232340187,8692085290974651848,15178307909647726039,14179897596576105469,3343855588952036451,14179897596576105469,8692085290974651848,812377251159971894,16129489899755404978,5002941667199342543,1244063564664642073,812377251159971894,16129489899755404978,14179897596576105469,5104988259232340187,8692085290974651848,8692085290974651848,18011992382478577847,1244063564664642073,8692085290974651848,8739666254610784476,812377251159971894,14179897596576105469,1171377148146271186,15178307909647726039,14179897596576105469,10602573589229546844,13302687684020648567,2304212471448909901,13302687684020648567,12359048830691715757,13302687684020648567,13293414154332091538,13302687684020648567,12359048830691715757,12359048830691715757,13302687684020648567,13613960073370969052,2472461031540241330,17815258578778888438,11170613619857658709,13302687684020648567,13302687684020648567,4623580367614773573,13302687684020648567,4289708442234706008,13302687684020648567,11552622925026124944,12359048830691715757,12359048830691715757,12359048830691715757,12359048830691715757,4688013811067771242,7856452706204403306,13302687684020648567,13302687684020648567,9753965225196829855,9394402753015823089,13302687684020648567,12359048830691715757,12359048830691715757,12359048830691715757,12359048830691715757,13302687684020648567,1509191514857943066,187849560094777570,5315364172701025632,3504649842843451748,12359048830691715757,3148298162024192477,11042776522728687326,13302687684020648567,13302687684020648567,5596852626596824375,17074599932331248709,12359048830691715757,3754174822703729661,7810040041842691716,13302687684020648567,13302687684020648567,16189095675728225227,255714044816409931,13302687684020648567,12359048830691715757,12744991635814369385,12359048830691715757,15169920827410952292,13302687684020648567,1426916479094374011,4452715528165719241,11936773386101778446,13302687684020648567,13302687684020648567,15008289404070888265,13302687684020648567,7030258425402590679,12359048830691715757,1223801264702774161,1036006280100608927,13302687684020648567,8141277443953488766,16548412318812889026,5475537186384353678,17471770755386394405,13302687684020648567,12359048830691715757,12359048830691715757,479311632194338959,12359048830691715757,7399442542196036391,13302687684020648567,13302687684020648567,14184195780233559772,13302687684020648567,15704543699661715723,13302687684020648567,13302687684020648567,13302687684020648567,17679315446558780265,1494615190534264233,4260143534680144484,12359048830691715757,13302687684020648567,13302687684020648567,7669219378345197213,12359048830691715757,12359048830691715757,10602573589229546844,11078528463228466898,9270824403405340911,4057501132997343753,9064574482019229418,6407906027649426847,8985107072384555792,1184937332609662247,165086601481611427,1604324956158494852,14656053002828163632,17432059392688763612,3769118726675317215,14405266818605471701,1925201385917300938,6570394395680375075,3815998028434298813,6979208951624431293,9199434165347712341,10969246000779150374,1816117100766478416,1420074487803791636,14826184238410967220,10226733588431959438,14385069137818721227,3173312581913078194,7738851968796996458,7630940053000986213,1950086453039278227,15795840083653236232,6676050004705678461,17761328392960004411,17050041739912832401,4784796073699347100,15744214346824844721,13546806644589978702,12828345096931480804,13288174914873978106,7327977852645649695,15419667647114272896,15634897202360971661,2867300395619592955,8489318576164157575,13840981329683177286,12977248042709188475,5083582178648545724,11312234168657327484,3084043064725675425,4073658190215197847,5415109524180399730,2849907624439992348,7818088421898641518,15240205013926292761,5752367615268795819,5127258499718568753,17010732234858126677,14703566510920687537,12821611438210776181,5185939693798710130,4971791540085243677,10570541847167161500,6008592764559804816,1917411618067623777,14831265224814696922,17791533807329327254,16366559929965270505,7246244413306650750,2019343607893586053,9122358649975914223,265578328016738110,5377300460344008741,4260029511319163005,18384822298888526875,16383696710351989952,16266579460680890865,13121359705169924188,2191332908967417731,5475486564072131343,18052280571290928181,13232344105632004616,3311198282629280022,9780225921141519843,17870651751453117426,8777262128738547941,8963313953012987456,17851338770792313206,4389520907420599746,8127964366078443055,14921610986432916425,11176915577281374279,1407903180093673376,14786132066306737028,3376552168250192875,15056033403331444786,12888409061840645292,7223473883412657650,8785980099090856489,7747186992801858268,17198613561093558874,5753460429532648455,886239565775419392,10602573589229546844,15872134320060056111,7559884574576698649,4328585262606181976,16358945300240752532,12464524184570539358,11014964606096999732,3084316737218512843,9278133677686438626,3518440876519799723,10775703406361350658,5805060657492691696,11924358278266768721,17855343030579816859,14516847337676784407,13676127831254318547,10456905929595148683,7735620555393111266,3241768658482335014,2595476950073929310,10421738543798853648,17911006528214355539,576749604685988464,8422051840612098804,252187175464301845,2284672888619046771,7882495673502672090,13885845998556727370,9886530209998608733,1479690893742776007,10434197361650708763,15069769610481535357,580284055471504057,17252798465628782186,3384443002128773597,7852457786408498836,12683757221328197990,7032018564012797342,7238496811887382872,5037019288439403018,2412080750403882540,7355165422853651479,18250774343352987357,11246008152933736383,5385049900633323131,14754315140965713623,16437797297411593563,65649294369131690,10844000642436385971,3765693506386461266,13026722847395944936,3283910339400917698,17271812845574894566,3776371020329813283,842568490056386289,3581349608572071771,11292576361582828866,13824456289085998812,15330732957077035245,8786719435872347202,2073368443058328488,6441321833059451836,5069839156882732393,14832544838006298453,7230708353583680382,7805820249885947283,11529232597114378927,15389721387823150543,18321457519182203783,4710300886632918119,1041155623814670477,3872149014426072278,15979683547824762603,10868432513599470662,13833226343277270151,10413803895988801314,15190424076762442509,6433380239606099317,6052633643101512701,9003115080978215971,14153407480110880185,4119395796052909149,11135111373928480509,3954857937491835563,8689008136163576436,11530124406766178326,17029029271016296507,8773028854759323383,18088628066909173907,16354540222337358572,7458466405529490000,15174974958880264903,11209234501548056867,12383592288236160612,15814012305177451434,5379875769890031652,12727491509863781135,15902054534992604478,11519416013863429713,1173951417776995118,16648489215745723877,10602573589229546844,17203153323972358178,17742878855641594246,4924844209718222592,4135176252081941781,178748180946962156,2222271086227148369,14177493903788009281,5041240531480921193,12068733577476301604,4007150231755155871,5446250639082586416,9099844918804967619,16828525984764175972,5716405752005651015,12740865445580224825,9274583647079151728,17432680332835883668,4911957039163506608,4543209020176646527,10786081754605053182,9118957709374980316,9627144256951978670,17356687123204871446,11370444602574441398,17113306970144086056,6595344544555937296,4721566182156582271,10009584245958859921,362401659160067721,5549022485866245697,3807628175306549836,2274708382950256232,2695820098762577021,483975751063028122,434890395856256628,7448586734777288132,14891402305204231350,7847866160680163953,15874491104163534088,529473970365849976,9988536511888063190,17100231009091575357,18078382210723421719,9720203011099331283,9675611621984291059,12491047585904544030,15272384185733715038,12944417101690996783,14363016931326417511,4840699627439038661,10340228522981402649,17690480527894510627,7604459736870934842,5751775263088702391,15642995554395507151,5466017630847637232,17519613609860207754,12753608512079682241,15595220839430955202,5375431124669602890,6072052997545167453,9428624683311034151,9880129852230148958,17788158196091340410,4376284683713879426,14331998802871307213,7290705505224189150,12463655123131126548,2673049891578764007,8774136865663922522,8714828247828333166,11916994964216675318,9047788826610290135,9753373531515544548,6282888024718994066,13993437694560513908,25556850036741933,4781545729367770099,13254572643491790547,12649084963090877677,6216564577478025921,13318305349620368987,6821218868290178674,12701799770858620030,9842881334944845490,5641564015292998965,10417937444271514412,17816193871284015790,10392723424791641408,2624619336333270595,6305710236723850138,4681452046143442236,3687708255984554353,7276275058476875765,13262003968656109884,92165720835080734,10409221065344579158,8232052831451324411,8067498541312495138,2551567092579314271,10602573589229546844,7326352887493694710,15189149154581556638,8808867487248125621,5904392934218447993,9029278753792209148,6517993134731675987,15902363608976369278,1031041436428329184,8510946436763466173,3176310636165232787,1597495200971986531,15834345599469942897,2180999923836713881,3044881705341095081,11595299560029682330,9315192753370508746,9170581200494814218,5851672579299793898,14717663129718940111,1406151836439411786,3260973658698922871,16203256600477833126,16576423156895806556,14362955949837915181,2813876429358201067,3137473598973988982,259388115568205872,2917417053998206741,930256901693239410,12033410642815195485,5657517069247033365,3758194451725281497,12843379457889633796,18238788632786218268,3896842522533751646,18268506742313693132,1908918760289502471,11825864707562857343,11610163084068807749,6221931061535521958,17267243088573094052,1347273201590805114,13909778679637712596,8233517626437651588,10047936433362963431,17115428351859572143,16483185524190047882,15204250469136906261,13611916722830016167,2099576251847421927,2261190933348059546,14255371148909713495,856915394790746390,17320963270792083870,9623468820166879237,8269702744907857892,3779706672242582155,17952039103454142226,17727264939475063992,10255963125890116182,17662042042679070808,1209638727956033196,3840994900245247853,10730681120184758188,10379132100415159073,16626266965189646531,11074987208864287607,10861253310822286195,9316361369574055664,1640977774773151457,15755869191161483245,5892511431504801167,14784774002384453984,2636079409402575837,12024512115868410777,17597092020922872033,481870243549136780,1805839673278493683,13403293069164353946,1157324193543157746,102596199047747489,13717624933084840409,4183376463880352828,7486771940490564716,3139975234384161623,15726130405003381247,12484853971055466882,8992768775401560083,7033788999853960409,14388869810324883420,5646116694537626834,7401055423804098458,12160003175243089421,6218774451448178323,12755774764885890439,6236945731054508744,18037169531353845713,12143810950107380841,3509922375514232176,12692764884065073308,10602573589229546844,10602573589229546844,5960457565334411020,4244338613455473297,6616616615124076912,11955964023239671906,13659231367932954295,17459970002444133797,11586563463171586633,10293643728944242296,5709890512077047168,5390485507895200984,1902120523826988608,6204548357177236244,16809194573818755012,17395958212806504369,5435367679895773653,14068166009790862812,6871251789279673713,9101745588490331834,6820469339856609663,14299359535145625228,661975544424843312,9850535218431053105,16161435790515301309,3432347660578356015,12366328078538805733,15793771728308216978,7622282362312611983,7347376077607041892,50539409706381864,4308193127989152658,16926167683198279850,2932732789412369050,7590893604425623516,1931054301206827042,15328988501495657273,2441275510970932436,12361316580096500085,2386145969735155915,10165990432371970473,5849317780064962616,14425840351857313062,4842997969657191943,4343746726497499451,11770073243997260797,10880577211310477890,3102838113447176142,11987756886175411149,15334526734128792518,179549733929923433,8223859359167698454,17792206221143428834,10072449279887774519,4780554196155212684,13754206870766679993,4575590887037891283,2517283009761618466,7998386181513037384,16671980031883730137,17414929121823471734,13782096807224460510,5274931931195337934,8176464995585308332,1693304172179468169,16377976372980554435,8576394114847577874,3076187404349397061,13589831145133467721,3964891337356401439,4086834781388890410,16381132618688400966,8044737992256673494,8463087656999980177,16162318915184717622,7162910006252297273,12209117036302275403,10064391391054435237,17369254697043137944,10327078810175198230,1735071064453774776,3137024485878812427,15500564702578731623,15707466433012446535,14304568681306566357,10624292185432607981,13346088199160451064,1047521059294111176,5486326630031384299,7939123415503849531,5648153761125097690,738461163886223076,3039983643004176068,953687744537365420,10221865676065344169,12595820325101338128,17244163487115289487,16201045287863524406,17590234168248527612,4699174876879551008,1106371329212808049,2002617613800066140,10602573589229546844,7183401416957031585,12076693006237094892,5937988889376106012,16456410431959210174,8932991786486271580,6962913320336483583,10233381659658714223,10867174968109132147,6129233847652433440,17822226402129210138,4276486576655958605,12775136395640284192,3754124365376375950,1885655150057378787,2019863245594777703,13325512143702844809,2550364779283090790,11524709758760695571,6729478450002051661,800952670321322475,17308628722445384471,11150300655872553471,17295360842195561958,4916369494758685186,10600935308502095446,6970349675291331358,16823670614814377116,11499017352696888582,3851496774575724997,5184053360520920230,595708978826242635,2383894917649564633,5139147418982042852,2026170229727951214,8472257561491725180,15471313320852897765,10681919417935555416,14032689424156356439,9590673241922088199,9236678035184909242,7949128185822096864,8346450043567318821,16960270449204278225,5789267810441726409,6110368825526033640,5620206573965554523,11990390467744875217,95370221068666123,2343237007157341145,4970104386626117365,14280210963534624349,5466637103895262524,12430588125202842900,1050985079669031561,4811470836354992054,10100770411149823472,8167163948434783319,16610796952855441928,13045764703584750967,14545943460636755642,12518234423900929186,16055022269575837584,13705095591824147993,8633591064846448554,2286559633547158891,4607601762782045124,11596241992969996566,10847130871956718017,17112783129721669965,17148986314175834741,10336789303584019224,2381263103797207369,14739742558588072624,14449810855494386103,14464620756138391705,15609208131675145371,1212541055318962605,12711811796207667647,10613752917820200992,1371881409996547006,5575327075932639798,8537585380951824935,6950409076178757814,2982607551297859926,5900167319431715598,13060937734980206101,8553978863000460687,15985796496958186431,7867474051776884287,15964016375995594524,13755992738612270514,7527214212025225368,8545734971344547981,7174342528264451153,18430419953009882584,15260873774473221899,4299769974746939445,5231753616031241770,2973540424586533058,459568569691678998,10602573589229546844,15337563609455363181,2796514642721817560,10482810323167991106,6249665449184620954,15334935617308769368,13919941537000217653,9748044664990820722,17050183124352069299,6160802939903581576,12720787555119913506,2679915385099775688,10505039160101376257,3325336990986812981,17241624377155028606,18081338112631802629,1847677915718139299,681984696385197390,15729018154561322082,6086703267657645374,9342847630701005151,2274224041984896863,2236360414269904254,16956514831969316584,3137789496121549035,4412642917201584576,3584794310008660459,12900267584452864979,16174712686859089948,5658546200301652320,7160107916934041241,7665141211099913235,7267114041469446038,5409542752345536214,2588744273721235112,10038716364799216054,3989427143024262217,9502084679397128533,15607171222994809003,17966296997152003599,8019685053991382869,18153796766605286027,14518788494089733890,17853591646753790051,14278575594571788667,1346479387563357422,5622240203918140762,12058941286589889491,11456807865854682413,5240446596896205182,13341330249566828899,16123442879568284480,1872936128664255764,12167475020261592682,557297687847228837,8930277633594363104,13819941730143336027,18329549476667324177,6159654301339806710,13773809203530302367,7590342135084066293,327925632540303172,15173645336209490729,10046530397846617759,13004236943311019688,4747576370413112294,5696300638119677654,1832757651017951858,5920855719383529106,12225802126934379107,9490596010154943223,1208738002276431491,17973415453688435477,7992926857421443803,9769999314584595262,10897402804189501920,14878049484782298807,8850136056563903709,6833187625669349912,5934593967705005038,14773605707708345730,13354191879806099937,9815878477379599932,8423939223268191791,6550475470298189869,1168418314527648557,3583525173810313747,14099746965589579186,6610453727338652003,15679593227684956240,11308430043917808573,10698570428701842065,18004786861008912760,13195284883724657516,3778747305995814275,2509225883543035563,18002137865348949251,11900055750107987323,2593496529629806991,2378021401140673839,14312437332830458020,10602573589229546844,10602573589229546844,11935392864309492456,6090780613771958546,473017201564071102,1017800851121029738,6889031342303319404,11252413481805335879,9056509310487825211,3425449059326623166,17898929070289959481,4364306017173680982,947264281165006408,14005705578502286611,13166277875441447415,4077494670967254080,11143559651697948765,10587204309214330919,2507649064686487101,10349745214682825056,14957040897407912074,2041306716508881962,11546041964664944165,11210889241126232641,10837199508475108785,6320469185297170239,13730372745992217792,6245998675035487129,11370680752830355524,626607459241576992,11128070988402979047,14362961850162365657,2316436521929724107,6483274438166397173,2504696073600428139,5002969785280866512,6780545419348599011,6942212855870179346,8883669364472311659,2243537348011891026,6995753882934517678,6334680567406413602,536598075656415556,15858956348022752347,15683193856132304010,15898890695493361060,10760427267211426992,10844292861486068997,5678849354580724559,1453747652168799733,3663399049815135106,2919488802391799545,1530904054714843832,14494447114166544286,11524725906807963035,448546930606950842,7117239270937371539,884457655325540621,2063579577878199380,3183695289788864790,3948336354189826555,6273501536468123850,17288209575956210851,16890141275503216648,11365322542473363091,9171651705765464480,12936893167664465219,7437249650533784820,3741842156430022113,18001329923311345553,159493376171727648,15757061921037378470,13394796526814296828,16507451242205393579,1459373990837647244,14472911833332497085,4175222137065452840,15383819579176714664,16673444610976607750,6828642206807605362,5381385146675974433,10271623647426785765,10213773858564117499,6843027133997703985,9327838055413887008,1573149076528824326,3865892866332766211,17139594320899285242,12270285906878818509,15737275773167675168,9073017128831602773,453221931226629324,366160255012070506,10241171687887474388,6395757272531031457,6550154693215635268,13223967338308880059,10267148828875625253,1205680773761476341,3080653224648443205,5721246910185661258,2906967166550131762,10602573589229546844,7861988692610954217,9542623669186119750,16922426114756168947,5191474574223609161,9954739135685826850,7229668957512951315,16084811999171561622,8072839219614072481,7406880761813178939,15612740789108347317,541995465442804851,13732445822591192318,18086201691784447055,9746982845526750340,12804289103014173084,11083840833010329991,1783003261643010465,9117442032978129797,13012799312388516121,119892996303555065,7474373714424659854,4673137979086430732,12665526060977458683,821595259113844688,9241395977962668441,5810706344739782464,2958727076944262512,10872151066085158195,3975647098490875862,13620026325845212606,4592708773051995425,2532050216248358656,15286182533135633581,6056878601740855776,12989164715043761894,3580611142715920923,13203439263756832993,14057924180038507459,9994214813627291833,12545952880190479071,5717269521054597677,16850365877971481262,3056472398115111922,1249067097803586938,6594590285704539117,12976098760044119563,602871569998526564,1173030003460382511,16018119098348287776,5188101113322837813,17219109487424544083,11018814190263638018,2226575031512035975,10592996648536675770,16703193955119184793,14641653226494285088,531572449938331672,8534790516645752680,7458147321315620727,15624175467845668551,9520460063946164892,1636320769486596995,17165432618256977288,10482777825757818210,16701708964921053821,16512154151947728469,8887635219842572857,10034603326835099454,16643404147981460192,8273501013454361383,2664913241702696223,3898455886186912132,3139927210379830542,4254044792383814861,2927782573782793884,11703602200944442267,7958024954149200660,10132613804970118929,18380146648515189415,14798010622071330539,5157543067879825470,217422333579415495,2175075376288740309,12075631952981906157,6346645347160363685,16286864106778650282,9149023965382996783,7187684626250123351,11733308323734394737,15935526861041309217,11402650990727889511,7144538977177484771,11122690345453572829,5909017433199184824,1862281579874231777,3465544670563961433,10950782010635300570,7979757813884359726,10871384119573043367,10779436062867761739,10602573589229546844,7602915691898082947,12223805249662029333,15428270238661777337,13952131677327538262,16691209701183328661,1177065616029098765,11698446458574049535,5484300726561222883,4524181949072295177,17614339940677052472,4260352294316790066,10062885795435671989,5265269110081975485,14780998715881399715,18318857723895210761,10205005248348674485,5683294312249491907,14406529908851010883,16579940993382618825,6894282513646431483,10410695566846433769,14483975964560886411,9419009991411002520,7506655244805145046,8158132972222574817,4317030071999241699,9227648132811588062,14876442553533281806,2938297536002995958,11962023668747572821,16848862289943456528,1745206687243636644,3163039293804490140,7965830451125301181,7320159349859058043,18223894366655946656,7447859255312115578,16359865623824936454,1854214475964099239,12790032986603393000,4197298934343860245,8304160044633506792,5186908004396312716,1488270794450998676,16837485535140191649,15852074795445534926,16079148098160424916,11938995368413388486,2650296204035784104,18083826560355223505,4024307455983606731,6067478450346618615,6773611771451021357,8967293749527092598,14481824442061067754,8717807574741918586,8677953596970673824,5861506479573223363,16720764491503169167,18204700738351837570,1601319643367906329,12188611969365430373,13368582402633748028,11280967755420275390,10455147737488341239,9133286196437847107,2067382378581099799,4359080183269515044,7698052785559880451,11227198840448166246,18354106958294554958,12440236377642337374,4174867569774363095,12891084248857144885,2923065289364701847,17130562612393648001,4351796895229373497,1177320057690495826,18194616179329341515,2324932459667616093,6805414145910604655,7047694696074336155,13017798834482261492,17865242200942845773,750289459317936482,17055420155079918554,5750036491900941234,959801494045902682,8335517470166022825,12685443196340580600,12863612980075964176,14004915064814197395,11397022204474553586,12869205345282788725,8695816015635508925,11592803097353505248,13348790064348741122,6056670212433495332,5605111642648214925,16634403581929517129,10602573589229546844,14153271315395398218,326816133871190183,14408119209847881113,5451691219550610714,7564291543246112263,3896350064206377695,7891617190834882432,7602944212131307248,7056064730876278813,427130267315539355,16780239150340606752,4952159950189022646,12996357555864634677,9529796124425403307,4405169690911724950,6774143990133700236,13301954074552043677,1156261787321610922,3102833538695532732,16900037664611261618,11007831070178712166,754376886755701716,3688782032822940656,7217314537131834497,13299141694869246359,8740777967250665439,7049975659789979789,7750713763084053607,3563046201675003960,15132308250250603149,2475524453460574157,17891835394196995748,7061029283352714327,17695068694310177348,6650845918198444384,3697360173016937737,10404104291479598257,4545983307240123956,11509583569607948428,17827227931866117995,3853965369418134636,17958754611991056425,10484647090737041856,8904264362215956640,11093831137412369748,7558913430485726726,1298198689422346959,15495297445927865470,13000897759210383218,1358900196871698490,5752370384341585999,442215439806999784,3234797544384537044,4041108195420888383,994294295351023662,3150507688824358614,12447938559920176735,14909094379234764493,10049187155610792209,4420379597908025686,15487720521233417680,5441365388390311545,6578172654378101579,2548519569363943282,13513910697155596579,10442460940677035469,3414190529818641490,15825869240556011094,3914238732020007383,11375226709152188604,10923760893711545050,15023660279330229896,1494062959400515782,4661602374806528710,5668287203412210110,230755449342440165,3077708704253014214,2886485735832144568,12156841753689183063,15320799827427474320,7629472798632943495,16949978362654098140,5073396884301449011,11145895259859769377,4490292311742104268,1322289224583716761,550011016766183932,13885881715549220160,1227880846040292615,1493699926901101604,2571535513391691395,7766602346589229932,4161709166992439722,5934756641106611056,15615787299505078438,3732888415720347212,11365097727533839881,8984205759639104077,5651062067664181975,14444323787944745388,10602573589229546844,15103121693672241500,3521641591753484771,15634763677585556505,5012125620375077019,1706507395531208570,4238591940625958013,17807036249047440623,13965302906432604678,14342438513634579153,16173268969268916331,2906381193781788412,492034979555030414,3876367680649732061,1844887985021401524,12186589931722211999,12482314604060477289,13871245352204387928,3444855833359739859,5387436819519360815,2076314752481071900,17600974190772006507,15738549682502611789,13778523759301772607,13248635162388700162,3567882042814727458,11707866385394706258,5584779742345949579,6316525302073988025,1466502847881357741,15053963760404193743,13351841322930613775,14495353415798598836,9286145431821924712,4429142900663673699,1253541791538229497,18372574080045504034,16913937471672424163,6769601902996410767,10106169381850068128,2046705625640368810,17665647695005225073,6262937810328346618,9396485767175674101,13127846868936943426,17132675170525251309,9822866650905881836,15276013060884547688,6481647878237451636,10484613655228638153,8920643728639777626,12230101164777090770,13109161096494271451,12843414999739612798,14933343336120854287,6509778995012354659,6954126439923916840,10336393798419431522,4074807093639023595,8619526069233060808,16820246949633624843,10214954673539226582,14570123114052203618,1074337038402981810,7635067748864813450,5532526665657502881,5906905223167709783,18137267062554394250,9691118398569104087,4411331501151024978,3868971305839894956,4450197239220570048,17830459733683099562,9813593581930012113,3279902096370508634,13303851672305459446,4861109288561974529,13485954880722818947,7287320196866448723,2910133932739716294,1241093941299981163,3882900114128207045,18150434417531441621,8536678956549242392,14302418635881583431,4889936147685899223,3599574795349086592,9349614689489251647,5941334082615690054,6510633516280536988,3658752572837284642,3974842878463759276,10962539822376420559,15697059852741816176,16849495926099519245,4794416623041001843,4355756214372903695,2174544023868699197,4319233948612010179,11962472209250164211,2482351457502514582,10602573589229546844,9606072669490943975,8389884739042335419,10681567007315049665,13850931412078522037,4095788952686561506,5314405036027915188,16555202206404415966,13613467935258868325,15040769577639001637,16817224804994174833,503427878074936323,12475879360916906694,12175099612243662372,18245644000284154433,13005997902542078321,1807529333873025669,15414290744617828076,11185621556175414490,14508931569028465826,14547368062995101697,13601547940131665976,7837430560381113455,8724045410384058508,4715691361941460079,15295393493207429071,9833419065399854963,1499005462894536992,147000590335713500,5794204145019158092,18027972318832059754,2306138158897856625,1646398918976608194,16479342627581483859,10602573589229546844,10602573589229546844,963791532086122350,3106215778659157110,9413220622851381370,13050753064511502071,10589776816262904999,1513273915360000787,17117724955369309339,10602573589229546844,8258539822085329220,16224108241331388138,16493838185686639719,6585570663018178124,3242158827382383426,532068077042376143,10602573589229546844,1521099166341804923,10149396001724953693,1756370674430250861,272906525482589462,13295048459984557089,17106533627012725264,16258397819673723547,1701994841097870568,16352688757522242862,2592634411084718411,10602573589229546844,5541142905284323951,13345047184995215122,3971061552779435021,10830027357181313585,5796602532533941613,15892824111946181525,5527791634177741505,1658356268895861488,4092079150346932278,8268006023887080068,15900974100529564652,13009627442704154436,10856110554090549996,9128749983924206467,7029116692464540725,3153230139144003885,10916065712441949287,15563238854963442114,6032000426154971505,6579433662810826268,4952551125421147930,15128319560645286011,2347561215985436307,12763308926857672362,6518724237147960678,984193294971367937,10602573589229546844,1106616560598776674,1360941020276498676,11785341071430504216,13770401122605315710,4342298566152571609,9606360809014113199,10671159392272674082,13108837898245418828,2817857740954170170,14053265279651645011,6585021163752747784,2650033388370156597,7503758639846881608,5324629953184810166,591688603668833492,1577895472049365994,6346920869462583589,12392238758996181370,1704538485242833086,17152099210315068784,16180298156806132622,14018723029693390588,2884179524142278313,11124163375537191282,18320772732460611898,16820343451080465911,17819459477958525685,5813970103203806564,16633755104059066579,17488033902177687201,2473608697134418559,17709003374781246393,95460204587832587,10602573589229546844,6358475991181475274,1196633835267704076,433249600599133112,8007241031025770700,9961433277013134100,17513373899142762175,5496173628826520494,8251532161209005934,16822713586793458169,18038578351767047046,3251458916879764809,7142933183701881721,7022895846954486648,380615169797729291,16862285182576518907,10602573589229546844] \ No newline at end of file +column: variant with hashes: [3290145166093762980,14179897596576105469,3518677861186945217,2282085295964132384,3290145166093762980,559338346485959129,2282085295964132384,15905536912678961394,2282085295964132384,7021324166002335292,18096701186305226541,102226537653930837,3518677861186945217,18096701186305226541,559338346485959129,102226537653930837,559338346485959129,102226537653930837,18096701186305226541,559338346485959129,14179897596576105469,2282085295964132384,11072762366266850873,6348604300041726601,3290145166093762980,6348604300041726601,2282085295964132384,15809008797971016995,18096701186305226541,2282085295964132384,559338346485959129,3290145166093762980,15809008797971016995,102226537653930837,2282085295964132384,15905536912678961394,3290145166093762980,15905536912678961394,14179897596576105469,3290145166093762980,102226537653930837,3518677861186945217,559338346485959129,11072762366266850873,3518677861186945217,14179897596576105469,6348604300041726601,18096701186305226541,15905536912678961394,11072762366266850873,7021324166002335292,6348604300041726601,3518677861186945217,2282085295964132384,3518677861186945217,6348604300041726601,15905536912678961394,3290145166093762980,3518677861186945217,15809008797971016995,102226537653930837,6348604300041726601,18096701186305226541,3290145166093762980,14179897596576105469,3290145166093762980,18096701186305226541,7021324166002335292,18096701186305226541,3290145166093762980,15809008797971016995,6348604300041726601,7021324166002335292,11072762366266850873,102226537653930837,2282085295964132384,3290145166093762980,559338346485959129,3518677861186945217,18096701186305226541,15905536912678961394,15905536912678961394,15809008797971016995,559338346485959129,102226537653930837,15809008797971016995,3290145166093762980,14179897596576105469,3518677861186945217,102226537653930837,559338346485959129,14179897596576105469,15809008797971016995,14179897596576105469,15905536912678961394,15905536912678961394,6348604300041726601,2282085295964132384,102226537653930837,3518677861186945217,10602573589229546844,17112874075517206433,10602573589229546844,17254401115644597125,17112874075517206433,17209060699095012878,17254401115644597125,13302687684020648567,13302687684020648567,13302687684020648567,10602573589229546844,1038248107092713708,17254401115644597125,13302687684020648567,17209060699095012878,13302687684020648567,17209060699095012878,17254401115644597125,10602573589229546844,1280023314843046514,17112874075517206433,10602573589229546844,1280023314843046514,17209060699095012878,17209060699095012878,1280023314843046514,1280023314843046514,13302687684020648567,17209060699095012878,13302687684020648567,13302687684020648567,10602573589229546844,10602573589229546844,17254401115644597125,17209060699095012878,13302687684020648567,10602573589229546844,1280023314843046514,17209060699095012878,13302687684020648567,17254401115644597125,17112874075517206433,1280023314843046514,17209060699095012878,17254401115644597125,1280023314843046514,13302687684020648567,17209060699095012878,10602573589229546844,17254401115644597125,1038248107092713708,17209060699095012878,10602573589229546844,17209060699095012878,17209060699095012878,17209060699095012878,17112874075517206433,10602573589229546844,13302687684020648567,1280023314843046514,1038248107092713708,13302687684020648567,17209060699095012878,10602573589229546844,17209060699095012878,17254401115644597125,17254401115644597125,13302687684020648567,1280023314843046514,17254401115644597125,1280023314843046514,17209060699095012878,17112874075517206433,10602573589229546844,1280023314843046514,13302687684020648567,1038248107092713708,17209060699095012878,1038248107092713708,17209060699095012878,10602573589229546844,10602573589229546844,17254401115644597125,17254401115644597125,1280023314843046514,1038248107092713708,13302687684020648567,17112874075517206433,17254401115644597125,17254401115644597125,10602573589229546844,1038248107092713708,17112874075517206433,1280023314843046514,1280023314843046514,1038248107092713708,17254401115644597125,17209060699095012878,10602573589229546844,17112874075517206433,13302687684020648567,10602573589229546844,8739666254610784476,15178307909647726039,812377251159971894,5104988259232340187,15178307909647726039,14179897596576105469,5002941667199342543,15178307909647726039,8692085290974651848,3343855588952036451,812377251159971894,1244063564664642073,5002941667199342543,1171377148146271186,16129489899755404978,14179897596576105469,8692085290974651848,16129489899755404978,16129489899755404978,14179897596576105469,14179897596576105469,5002941667199342543,8692085290974651848,15178307909647726039,5104988259232340187,5002941667199342543,812377251159971894,3343855588952036451,8739666254610784476,14179897596576105469,1244063564664642073,3343855588952036451,15178307909647726039,5002941667199342543,3343855588952036451,16129489899755404978,5002941667199342543,14179897596576105469,14179897596576105469,16129489899755404978,14179897596576105469,18011992382478577847,7360877390192632990,8692085290974651848,812377251159971894,1244063564664642073,1244063564664642073,18011992382478577847,16129489899755404978,7360877390192632990,5104988259232340187,7360877390192632990,8692085290974651848,8739666254610784476,1244063564664642073,15178307909647726039,1244063564664642073,18011992382478577847,14179897596576105469,18011992382478577847,14179897596576105469,7360877390192632990,1171377148146271186,8739666254610784476,15178307909647726039,5104988259232340187,1244063564664642073,7360877390192632990,18011992382478577847,15178307909647726039,14179897596576105469,5104988259232340187,5002941667199342543,1171377148146271186,5104988259232340187,8692085290974651848,15178307909647726039,14179897596576105469,3343855588952036451,14179897596576105469,8692085290974651848,812377251159971894,16129489899755404978,5002941667199342543,1244063564664642073,812377251159971894,16129489899755404978,14179897596576105469,5104988259232340187,8692085290974651848,8692085290974651848,18011992382478577847,1244063564664642073,8692085290974651848,8739666254610784476,812377251159971894,14179897596576105469,1171377148146271186,15178307909647726039,14179897596576105469,10602573589229546844,13302687684020648567,2304212471448909901,13302687684020648567,12359048830691715757,13302687684020648567,13293414154332091538,13302687684020648567,12359048830691715757,12359048830691715757,13302687684020648567,13613960073370969052,2472461031540241330,17815258578778888438,11170613619857658709,13302687684020648567,13302687684020648567,4623580367614773573,13302687684020648567,4289708442234706008,13302687684020648567,11552622925026124944,12359048830691715757,12359048830691715757,12359048830691715757,12359048830691715757,4688013811067771242,7856452706204403306,13302687684020648567,13302687684020648567,9753965225196829855,9394402753015823089,13302687684020648567,12359048830691715757,12359048830691715757,12359048830691715757,12359048830691715757,13302687684020648567,1509191514857943066,187849560094777570,5315364172701025632,3504649842843451748,12359048830691715757,3148298162024192477,11042776522728687326,13302687684020648567,13302687684020648567,5596852626596824375,17074599932331248709,12359048830691715757,3754174822703729661,7810040041842691716,13302687684020648567,13302687684020648567,16189095675728225227,255714044816409931,13302687684020648567,12359048830691715757,12744991635814369385,12359048830691715757,15169920827410952292,13302687684020648567,1426916479094374011,4452715528165719241,11936773386101778446,13302687684020648567,13302687684020648567,15008289404070888265,13302687684020648567,7030258425402590679,12359048830691715757,1223801264702774161,1036006280100608927,13302687684020648567,8141277443953488766,16548412318812889026,5475537186384353678,17471770755386394405,13302687684020648567,12359048830691715757,12359048830691715757,479311632194338959,12359048830691715757,7399442542196036391,13302687684020648567,13302687684020648567,14184195780233559772,13302687684020648567,15704543699661715723,13302687684020648567,13302687684020648567,13302687684020648567,17679315446558780265,1494615190534264233,4260143534680144484,12359048830691715757,13302687684020648567,13302687684020648567,7669219378345197213,12359048830691715757,12359048830691715757,10602573589229546844,3338426295365967936,15594310977517476411,4057501132997343753,13323601507075251522,9166489375359541030,1607347719686430197,16443618625915503188,4202660276778349692,571099193561588314,2731158294417541723,606085845100614263,17785273054405138055,1398832288664687032,4611350394226874322,9044013165502547257,3815998028434298813,6979208951624431293,15313671671275175243,10969246000779150374,1046008209391436618,1420074487803791636,4276946784821082257,14212792163527298774,1144821407582670613,10187012831972652085,408818633112895858,14224778724945991650,8868823939318228679,207065603964520834,6676050004705678461,17761328392960004411,17050041739912832401,11622487990431867257,15744214346824844721,18410258651744189862,12828345096931480804,5134341978732774820,13308654056323640182,1587029730619292266,7754860317218979347,9961394932974191173,8489318576164157575,13840981329683177286,12977248042709188475,11346908028462483596,12958167744950328724,10123915052481996591,17284560172551443882,12312021936348761362,2849907624439992348,12323937564244743400,15240205013926292761,10220678325069161212,6646895156847271640,17798270414365883043,4387826955308593371,15144942833001252635,11577798714660980323,4971791540085243677,13941892530303862681,16320121896481527999,1917411618067623777,5278777213842343676,17791533807329327254,114988887541358966,7246244413306650750,16201886545952938814,8732789317433977641,3083949107618607756,7349282668113945520,2233331151053953576,3250232666387396876,3688978010045580023,8610223150631420186,11524770106606160003,7030178815826596692,13418064863693045012,15230340761456659630,14225585374273262497,16209408840064557931,10910516484019956900,2659138929891331751,4385030733736999343,5606610651018674624,17851338770792313206,4389520907420599746,3524591935182794679,15601757682959536437,11176915577281374279,10813440780956822690,4318075123299771210,5584319398143315430,16047405908109902839,17835565564832627747,14179662821775344906,12773162760830708353,17486275692972458472,17198613561093558874,5753460429532648455,17247417965379641131,10602573589229546844,15872134320060056111,7559884574576698649,4328585262606181976,16358945300240752532,12464524184570539358,11014964606096999732,3084316737218512843,9278133677686438626,3518440876519799723,10775703406361350658,5805060657492691696,11924358278266768721,17855343030579816859,14516847337676784407,13676127831254318547,10456905929595148683,7735620555393111266,3241768658482335014,2595476950073929310,10421738543798853648,17911006528214355539,576749604685988464,8422051840612098804,252187175464301845,2284672888619046771,7882495673502672090,13885845998556727370,9886530209998608733,1479690893742776007,10434197361650708763,15069769610481535357,580284055471504057,17252798465628782186,3384443002128773597,7852457786408498836,12683757221328197990,7032018564012797342,7238496811887382872,5037019288439403018,2412080750403882540,7355165422853651479,18250774343352987357,11246008152933736383,5385049900633323131,14754315140965713623,16437797297411593563,65649294369131690,10844000642436385971,3765693506386461266,13026722847395944936,3283910339400917698,17271812845574894566,3776371020329813283,842568490056386289,3581349608572071771,11292576361582828866,13824456289085998812,15330732957077035245,8786719435872347202,2073368443058328488,6441321833059451836,5069839156882732393,14832544838006298453,7230708353583680382,7805820249885947283,11529232597114378927,15389721387823150543,18321457519182203783,4710300886632918119,1041155623814670477,3872149014426072278,15979683547824762603,10868432513599470662,13833226343277270151,10413803895988801314,15190424076762442509,6433380239606099317,6052633643101512701,9003115080978215971,14153407480110880185,4119395796052909149,11135111373928480509,3954857937491835563,8689008136163576436,11530124406766178326,17029029271016296507,8773028854759323383,18088628066909173907,16354540222337358572,7458466405529490000,15174974958880264903,11209234501548056867,12383592288236160612,15814012305177451434,5379875769890031652,12727491509863781135,15902054534992604478,11519416013863429713,1173951417776995118,16648489215745723877,10602573589229546844,17203153323972358178,17742878855641594246,4924844209718222592,4135176252081941781,178748180946962156,2222271086227148369,14177493903788009281,5041240531480921193,12068733577476301604,4007150231755155871,5446250639082586416,9099844918804967619,16828525984764175972,5716405752005651015,12740865445580224825,9274583647079151728,17432680332835883668,4911957039163506608,4543209020176646527,10786081754605053182,9118957709374980316,9627144256951978670,17356687123204871446,11370444602574441398,17113306970144086056,6595344544555937296,4721566182156582271,10009584245958859921,362401659160067721,5549022485866245697,3807628175306549836,2274708382950256232,2695820098762577021,483975751063028122,434890395856256628,7448586734777288132,14891402305204231350,7847866160680163953,15874491104163534088,529473970365849976,9988536511888063190,17100231009091575357,18078382210723421719,9720203011099331283,9675611621984291059,12491047585904544030,15272384185733715038,12944417101690996783,14363016931326417511,4840699627439038661,10340228522981402649,17690480527894510627,7604459736870934842,5751775263088702391,15642995554395507151,5466017630847637232,17519613609860207754,12753608512079682241,15595220839430955202,5375431124669602890,6072052997545167453,9428624683311034151,9880129852230148958,17788158196091340410,4376284683713879426,14331998802871307213,7290705505224189150,12463655123131126548,2673049891578764007,8774136865663922522,8714828247828333166,11916994964216675318,9047788826610290135,9753373531515544548,6282888024718994066,13993437694560513908,25556850036741933,4781545729367770099,13254572643491790547,12649084963090877677,6216564577478025921,13318305349620368987,6821218868290178674,12701799770858620030,9842881334944845490,5641564015292998965,10417937444271514412,17816193871284015790,10392723424791641408,2624619336333270595,6305710236723850138,4681452046143442236,3687708255984554353,7276275058476875765,13262003968656109884,92165720835080734,10409221065344579158,8232052831451324411,8067498541312495138,2551567092579314271,10602573589229546844,7326352887493694710,15189149154581556638,8808867487248125621,5904392934218447993,9029278753792209148,6517993134731675987,15902363608976369278,1031041436428329184,8510946436763466173,3176310636165232787,1597495200971986531,15834345599469942897,2180999923836713881,3044881705341095081,11595299560029682330,9315192753370508746,9170581200494814218,5851672579299793898,14717663129718940111,1406151836439411786,3260973658698922871,16203256600477833126,16576423156895806556,14362955949837915181,2813876429358201067,3137473598973988982,259388115568205872,2917417053998206741,930256901693239410,12033410642815195485,5657517069247033365,3758194451725281497,12843379457889633796,18238788632786218268,3896842522533751646,18268506742313693132,1908918760289502471,11825864707562857343,11610163084068807749,6221931061535521958,17267243088573094052,1347273201590805114,13909778679637712596,8233517626437651588,10047936433362963431,17115428351859572143,16483185524190047882,15204250469136906261,13611916722830016167,2099576251847421927,2261190933348059546,14255371148909713495,856915394790746390,17320963270792083870,9623468820166879237,8269702744907857892,3779706672242582155,17952039103454142226,17727264939475063992,10255963125890116182,17662042042679070808,1209638727956033196,3840994900245247853,10730681120184758188,10379132100415159073,16626266965189646531,11074987208864287607,10861253310822286195,9316361369574055664,1640977774773151457,15755869191161483245,5892511431504801167,14784774002384453984,2636079409402575837,12024512115868410777,17597092020922872033,481870243549136780,1805839673278493683,13403293069164353946,1157324193543157746,102596199047747489,13717624933084840409,4183376463880352828,7486771940490564716,3139975234384161623,15726130405003381247,12484853971055466882,8992768775401560083,7033788999853960409,14388869810324883420,5646116694537626834,7401055423804098458,12160003175243089421,6218774451448178323,12755774764885890439,6236945731054508744,18037169531353845713,12143810950107380841,3509922375514232176,12692764884065073308,10602573589229546844,10602573589229546844,12900861041027527391,4244338613455473297,9129517428476856206,3736508731272525833,15493645689108251625,7307242076432892998,14020308724297016471,10293643728944242296,5709890512077047168,82659178573936069,15854579313953466891,9371582727157169066,923809876698806854,17395958212806504369,5435367679895773653,18164009381226635661,17833843404454285294,2222365010452681526,6820469339856609663,1376752953171116078,9776368236177239000,9850535218431053105,14753980128579497795,3432347660578356015,7131070797334035796,4134357243202792699,4433949126209489504,7147841148668482649,50539409706381864,6949810553513821346,10584127918439320806,984241675604952379,16737238096181014786,9216076306965320461,9068539173758520642,3630846105427143983,4486237552946433349,17430190963502660983,12079624623487668620,1065871596579987842,6120217353891868019,14982081734029890107,7978596697620335271,14465099679152704123,2812926217103196487,3102838113447176142,15626256039722309974,6886812911318109298,9867587471260092476,16323506292710876560,5249212146298623016,17736751960486450427,6037063808214074821,13754206870766679993,14422130015132992804,2066243007162602134,8848565875196090944,1273939831866432258,6473054026779190714,13782096807224460510,1047438447134487731,3903960638406116348,4678558988349508302,16377976372980554435,8576394114847577874,3076187404349397061,13589831145133467721,8322457648353093867,17426791209791822592,4019893402977045109,500653140301615053,7782351349770563378,16162318915184717622,11569850666569124097,7820241711017331418,10064391391054435237,9575467286527369287,10500065557202939362,2242739520723922325,11589989659419136554,5034383902210693477,12276395273098503377,7322791428641069902,504506814765970599,990289361187244497,4934007598444239780,16736564897050471000,16327840004792683330,14806437981346288608,12685138507944687412,5741215182590027327,15791234557926162539,360299796114552218,5608360907959109603,3272573183115055815,17786715429065724020,11793679801028988440,16430834569769034180,13201448439765375926,4131214307240471124,10602573589229546844,7183401416957031585,12076693006237094892,5937988889376106012,16456410431959210174,8932991786486271580,6962913320336483583,10233381659658714223,10867174968109132147,6129233847652433440,17822226402129210138,4276486576655958605,12775136395640284192,3754124365376375950,1885655150057378787,2019863245594777703,13325512143702844809,2550364779283090790,11524709758760695571,6729478450002051661,800952670321322475,17308628722445384471,11150300655872553471,17295360842195561958,4916369494758685186,10600935308502095446,6970349675291331358,16823670614814377116,11499017352696888582,3851496774575724997,5184053360520920230,595708978826242635,2383894917649564633,5139147418982042852,2026170229727951214,8472257561491725180,15471313320852897765,10681919417935555416,14032689424156356439,9590673241922088199,9236678035184909242,7949128185822096864,8346450043567318821,16960270449204278225,5789267810441726409,6110368825526033640,5620206573965554523,11990390467744875217,95370221068666123,2343237007157341145,4970104386626117365,14280210963534624349,5466637103895262524,12430588125202842900,1050985079669031561,4811470836354992054,10100770411149823472,8167163948434783319,16610796952855441928,13045764703584750967,14545943460636755642,12518234423900929186,16055022269575837584,13705095591824147993,8633591064846448554,2286559633547158891,4607601762782045124,11596241992969996566,10847130871956718017,17112783129721669965,17148986314175834741,10336789303584019224,2381263103797207369,14739742558588072624,14449810855494386103,14464620756138391705,15609208131675145371,1212541055318962605,12711811796207667647,10613752917820200992,1371881409996547006,5575327075932639798,8537585380951824935,6950409076178757814,2982607551297859926,5900167319431715598,13060937734980206101,8553978863000460687,15985796496958186431,7867474051776884287,15964016375995594524,13755992738612270514,7527214212025225368,8545734971344547981,7174342528264451153,18430419953009882584,15260873774473221899,4299769974746939445,5231753616031241770,2973540424586533058,459568569691678998,10602573589229546844,15337563609455363181,2796514642721817560,10482810323167991106,6249665449184620954,15334935617308769368,13919941537000217653,9748044664990820722,17050183124352069299,6160802939903581576,12720787555119913506,2679915385099775688,10505039160101376257,3325336990986812981,17241624377155028606,18081338112631802629,1847677915718139299,681984696385197390,15729018154561322082,6086703267657645374,9342847630701005151,2274224041984896863,2236360414269904254,16956514831969316584,3137789496121549035,4412642917201584576,3584794310008660459,12900267584452864979,16174712686859089948,5658546200301652320,7160107916934041241,7665141211099913235,7267114041469446038,5409542752345536214,2588744273721235112,10038716364799216054,3989427143024262217,9502084679397128533,15607171222994809003,17966296997152003599,8019685053991382869,18153796766605286027,14518788494089733890,17853591646753790051,14278575594571788667,1346479387563357422,5622240203918140762,12058941286589889491,11456807865854682413,5240446596896205182,13341330249566828899,16123442879568284480,1872936128664255764,12167475020261592682,557297687847228837,8930277633594363104,13819941730143336027,18329549476667324177,6159654301339806710,13773809203530302367,7590342135084066293,327925632540303172,15173645336209490729,10046530397846617759,13004236943311019688,4747576370413112294,5696300638119677654,1832757651017951858,5920855719383529106,12225802126934379107,9490596010154943223,1208738002276431491,17973415453688435477,7992926857421443803,9769999314584595262,10897402804189501920,14878049484782298807,8850136056563903709,6833187625669349912,5934593967705005038,14773605707708345730,13354191879806099937,9815878477379599932,8423939223268191791,6550475470298189869,1168418314527648557,3583525173810313747,14099746965589579186,6610453727338652003,15679593227684956240,11308430043917808573,10698570428701842065,18004786861008912760,13195284883724657516,3778747305995814275,2509225883543035563,18002137865348949251,11900055750107987323,2593496529629806991,2378021401140673839,14312437332830458020,10602573589229546844,10602573589229546844,14972349579016598928,11695411798689339785,2523901729407113774,12293100498536919971,995490259256164396,15884439207136215706,8450349703173019977,12444947071735945369,5695119773658516003,1878906089644267223,1371109263626838542,17327961196149953542,14311238138831059242,10218974785408766852,6732604311152920399,4117849517087174411,15144635073275138465,17320821939924161096,1221697348419868140,11024879788583264104,1133648033953136370,8400037335309727075,2319166639030705440,707413349082465673,1449616507720601705,5614575012570725065,7816926386133444771,4373171180965529491,6474226976037928934,7929610226479745047,2274059729385376406,5902542275446632625,9286495249654593981,9226039305308980184,4190765839760708897,17645119798104248524,5443593451812239998,19297342682904516,7476283610036370171,16146450274151670179,2203946686843692720,16526578272195265392,3963704607422626134,17823426684664906033,8609752701621585356,13093487942013765471,7653784619157219107,3538649936366134397,2576340040028183184,6180606330153370795,14484037034834500744,7367263128740423798,3571057410840708052,2366185020487219345,16314556118539995951,15019033129950935251,1685000483563412330,5901377064279407651,2795365648318969828,8314887005824800448,8485010021258847671,93962123559642480,10094736560871688871,2595341530773824110,13910385023534012523,1202099326878773987,39002523550096644,6427050104191128540,6613324789960658283,15765249526564123452,14919580808855336592,4929983619565027927,6133540473154166068,3926368121487545297,1200472118342425298,15540429513974286659,14530451587371367468,16944723200808112343,6915449440820631385,4112321020172727924,15040893187402527858,2402057256064651342,17732782860838847841,4868517137274935996,10932261201640255797,10333445274639050270,17461466497541349311,11953468075011869961,6664074613633133898,9172689982551940671,5285720192392549042,18238363743454465888,15355314562745836327,1052004129226321439,17785454728974977489,16761342524542217045,15679704323025044612,7459957391298722157,3751305325653211999,4930358793999494051,10602573589229546844,7861988692610954217,9542623669186119750,16922426114756168947,5191474574223609161,9954739135685826850,7229668957512951315,16084811999171561622,8072839219614072481,7406880761813178939,15612740789108347317,541995465442804851,13732445822591192318,18086201691784447055,9746982845526750340,12804289103014173084,11083840833010329991,1783003261643010465,9117442032978129797,13012799312388516121,119892996303555065,7474373714424659854,4673137979086430732,12665526060977458683,821595259113844688,9241395977962668441,5810706344739782464,2958727076944262512,10872151066085158195,3975647098490875862,13620026325845212606,4592708773051995425,2532050216248358656,15286182533135633581,6056878601740855776,12989164715043761894,3580611142715920923,13203439263756832993,14057924180038507459,9994214813627291833,12545952880190479071,5717269521054597677,16850365877971481262,3056472398115111922,1249067097803586938,6594590285704539117,12976098760044119563,602871569998526564,1173030003460382511,16018119098348287776,5188101113322837813,17219109487424544083,11018814190263638018,2226575031512035975,10592996648536675770,16703193955119184793,14641653226494285088,531572449938331672,8534790516645752680,7458147321315620727,15624175467845668551,9520460063946164892,1636320769486596995,17165432618256977288,10482777825757818210,16701708964921053821,16512154151947728469,8887635219842572857,10034603326835099454,16643404147981460192,8273501013454361383,2664913241702696223,3898455886186912132,3139927210379830542,4254044792383814861,2927782573782793884,11703602200944442267,7958024954149200660,10132613804970118929,18380146648515189415,14798010622071330539,5157543067879825470,217422333579415495,2175075376288740309,12075631952981906157,6346645347160363685,16286864106778650282,9149023965382996783,7187684626250123351,11733308323734394737,15935526861041309217,11402650990727889511,7144538977177484771,11122690345453572829,5909017433199184824,1862281579874231777,3465544670563961433,10950782010635300570,7979757813884359726,10871384119573043367,10779436062867761739,10602573589229546844,12211587853922729139,17310157289188817310,1828738850265443057,11686197741231982491,15315820447950768380,4235979189969558934,12001206620657905318,203135273005306787,17040022538831406209,10346168891841380406,16918109986896993265,17021790119715714060,2649993667600019536,9044209674251782359,6219546105493480461,17717865977767963230,17627387034071481989,11680091904585990062,12931362483411966397,6048683374503675710,15671378119545988193,2265855741073964033,5094132629793370044,8203973829296198433,12000179492077156355,12166452543510860715,1510457130194138114,1789931420864462716,2784367768735788403,12206096683137717071,970963430336264850,14117536346312688545,17571398631753367493,3096747748955330235,9164877924133409765,18243068994909398492,11290621419553432447,9635740365787630372,2435796266732197955,9301399834644526759,4425624267496538535,17862551063070638732,17086707379484744804,16713932111631836660,10935407647143161273,3363865533785101119,9934262664758772231,16872098444236849490,18246463620981420241,6867791964874827674,9851914099193856941,6681644903429092762,14828195332678604002,18302394369157056949,9484968043036641931,14354722210543842231,15831151002855340829,8040875956332537614,13265034166257693427,1541306874593594635,11834899447840811918,7919741152676295452,10118181690275659754,16231389634916134787,14205968497294749780,14345244031139160173,5244857918154018502,3326629892974312897,3047847967157296448,1967968435884366574,4867505557656386616,8274422846988258911,3846439358933896830,17329696406643100085,10407408097562935021,1952846919053282449,10533425492028800333,4112737923095184768,16872104924984729619,14084759821602017635,15582904901897697427,11901793371634948330,256183857613650548,4796744797372628255,10221312941254580712,12353719216751459594,10383132382806687482,2240196118683507942,12917974001241380056,919130174771930470,4464793675393633020,1476310639760917525,14846969441449205266,14701441330841597716,7061716885292664500,17964587834785753718,7446686787297153172,10187491113017115812,11597271403087824112,10023803248613608395,10602573589229546844,14153271315395398218,326816133871190183,14408119209847881113,5451691219550610714,7564291543246112263,3896350064206377695,7891617190834882432,7602944212131307248,7056064730876278813,427130267315539355,16780239150340606752,4952159950189022646,12996357555864634677,9529796124425403307,4405169690911724950,6774143990133700236,13301954074552043677,1156261787321610922,3102833538695532732,16900037664611261618,11007831070178712166,754376886755701716,3688782032822940656,7217314537131834497,13299141694869246359,8740777967250665439,7049975659789979789,7750713763084053607,3563046201675003960,15132308250250603149,2475524453460574157,17891835394196995748,7061029283352714327,17695068694310177348,6650845918198444384,3697360173016937737,10404104291479598257,4545983307240123956,11509583569607948428,17827227931866117995,3853965369418134636,17958754611991056425,10484647090737041856,8904264362215956640,11093831137412369748,7558913430485726726,1298198689422346959,15495297445927865470,13000897759210383218,1358900196871698490,5752370384341585999,442215439806999784,3234797544384537044,4041108195420888383,994294295351023662,3150507688824358614,12447938559920176735,14909094379234764493,10049187155610792209,4420379597908025686,15487720521233417680,5441365388390311545,6578172654378101579,2548519569363943282,13513910697155596579,10442460940677035469,3414190529818641490,15825869240556011094,3914238732020007383,11375226709152188604,10923760893711545050,15023660279330229896,1494062959400515782,4661602374806528710,5668287203412210110,230755449342440165,3077708704253014214,2886485735832144568,12156841753689183063,15320799827427474320,7629472798632943495,16949978362654098140,5073396884301449011,11145895259859769377,4490292311742104268,1322289224583716761,550011016766183932,13885881715549220160,1227880846040292615,1493699926901101604,2571535513391691395,7766602346589229932,4161709166992439722,5934756641106611056,15615787299505078438,3732888415720347212,11365097727533839881,8984205759639104077,5651062067664181975,14444323787944745388,10602573589229546844,15103121693672241500,3521641591753484771,15634763677585556505,5012125620375077019,1706507395531208570,4238591940625958013,17807036249047440623,13965302906432604678,14342438513634579153,16173268969268916331,2906381193781788412,492034979555030414,3876367680649732061,1844887985021401524,12186589931722211999,12482314604060477289,13871245352204387928,3444855833359739859,5387436819519360815,2076314752481071900,17600974190772006507,15738549682502611789,13778523759301772607,13248635162388700162,3567882042814727458,11707866385394706258,5584779742345949579,6316525302073988025,1466502847881357741,15053963760404193743,13351841322930613775,14495353415798598836,9286145431821924712,4429142900663673699,1253541791538229497,18372574080045504034,16913937471672424163,6769601902996410767,10106169381850068128,2046705625640368810,17665647695005225073,6262937810328346618,9396485767175674101,13127846868936943426,17132675170525251309,9822866650905881836,15276013060884547688,6481647878237451636,10484613655228638153,8920643728639777626,12230101164777090770,13109161096494271451,12843414999739612798,14933343336120854287,6509778995012354659,6954126439923916840,10336393798419431522,4074807093639023595,8619526069233060808,16820246949633624843,10214954673539226582,14570123114052203618,1074337038402981810,7635067748864813450,5532526665657502881,5906905223167709783,18137267062554394250,9691118398569104087,4411331501151024978,3868971305839894956,4450197239220570048,17830459733683099562,9813593581930012113,3279902096370508634,13303851672305459446,4861109288561974529,13485954880722818947,7287320196866448723,2910133932739716294,1241093941299981163,3882900114128207045,18150434417531441621,8536678956549242392,14302418635881583431,4889936147685899223,3599574795349086592,9349614689489251647,5941334082615690054,6510633516280536988,3658752572837284642,3974842878463759276,10962539822376420559,15697059852741816176,16849495926099519245,4794416623041001843,4355756214372903695,2174544023868699197,4319233948612010179,11962472209250164211,2482351457502514582,10602573589229546844,8092973567137364300,8389884739042335419,10681567007315049665,13850931412078522037,4749638587226851777,12178335991958950602,655890783792077095,5202835632052559700,1842341887813844777,14013156892850538606,503427878074936323,12475879360916906694,12175099612243662372,3697781085962995936,14652087365163642293,1807529333873025669,15414290744617828076,3552859064016865359,4697378039939060285,14547368062995101697,13601547940131665976,8295283840567894753,8724045410384058508,7088540792863092752,15295393493207429071,4601458573284247617,16891349236313452541,147000590335713500,5794204145019158092,16003980207189207019,4916972452224935607,9295528672609096263,16479342627581483859,10602573589229546844,10602573589229546844,963791532086122350,3106215778659157110,9413220622851381370,13050753064511502071,10589776816262904999,1513273915360000787,17117724955369309339,10602573589229546844,8258539822085329220,16224108241331388138,16493838185686639719,6585570663018178124,3242158827382383426,532068077042376143,10602573589229546844,1521099166341804923,10149396001724953693,1756370674430250861,272906525482589462,13295048459984557089,17106533627012725264,16258397819673723547,1701994841097870568,16352688757522242862,2592634411084718411,10602573589229546844,5541142905284323951,13345047184995215122,3971061552779435021,10830027357181313585,5796602532533941613,15892824111946181525,5527791634177741505,1658356268895861488,4092079150346932278,8268006023887080068,15900974100529564652,13009627442704154436,10856110554090549996,9128749983924206467,7029116692464540725,3153230139144003885,10916065712441949287,15563238854963442114,6032000426154971505,6579433662810826268,4952551125421147930,15128319560645286011,2347561215985436307,12763308926857672362,6518724237147960678,984193294971367937,10602573589229546844,1106616560598776674,1360941020276498676,11785341071430504216,13770401122605315710,4342298566152571609,9606360809014113199,10671159392272674082,13108837898245418828,2817857740954170170,14053265279651645011,6585021163752747784,2650033388370156597,7503758639846881608,5324629953184810166,591688603668833492,1577895472049365994,6346920869462583589,12392238758996181370,1704538485242833086,17152099210315068784,16180298156806132622,14018723029693390588,2884179524142278313,11124163375537191282,18320772732460611898,16820343451080465911,17819459477958525685,5813970103203806564,16633755104059066579,17488033902177687201,2473608697134418559,17709003374781246393,95460204587832587,10602573589229546844,6358475991181475274,1196633835267704076,433249600599133112,8007241031025770700,9961433277013134100,17513373899142762175,5496173628826520494,8251532161209005934,16822713586793458169,18038578351767047046,3251458916879764809,7142933183701881721,7022895846954486648,380615169797729291,16862285182576518907,10602573589229546844] \ No newline at end of file diff --git a/be/test/expected_result/vec/columns/column_variant_update_xxHash_with_value.out b/be/test/expected_result/vec/columns/column_variant_update_xxHash_with_value.out index a0923f5113abf9..fc26156b1ff54f 100644 --- a/be/test/expected_result/vec/columns/column_variant_update_xxHash_with_value.out +++ b/be/test/expected_result/vec/columns/column_variant_update_xxHash_with_value.out @@ -1 +1 @@ -column: variant with hashes: 9399734532616540137 with ptr: 1756 \ No newline at end of file +column: variant with hashes: 17214775904271713257 with ptr: 1756 \ No newline at end of file diff --git a/be/test/expected_result/vec/columns/column_variant_update_xxHash_with_value.out_with_nullmap b/be/test/expected_result/vec/columns/column_variant_update_xxHash_with_value.out_with_nullmap index a0923f5113abf9..fc26156b1ff54f 100644 --- a/be/test/expected_result/vec/columns/column_variant_update_xxHash_with_value.out_with_nullmap +++ b/be/test/expected_result/vec/columns/column_variant_update_xxHash_with_value.out_with_nullmap @@ -1 +1 @@ -column: variant with hashes: 9399734532616540137 with ptr: 1756 \ No newline at end of file +column: variant with hashes: 17214775904271713257 with ptr: 1756 \ No newline at end of file diff --git a/be/test/olap/rowset/segment_v2/inverted_index_query_param_test.cpp b/be/test/olap/rowset/segment_v2/inverted_index_query_param_test.cpp index 8fa1e0b3552553..7334b2e761e7ea 100644 --- a/be/test/olap/rowset/segment_v2/inverted_index_query_param_test.cpp +++ b/be/test/olap/rowset/segment_v2/inverted_index_query_param_test.cpp @@ -170,7 +170,7 @@ TEST_F(InvertedIndexQueryParamTest, TestLargeIntTemplateWithNativeValue) { TEST_F(InvertedIndexQueryParamTest, TestFloatWithField) { auto field = - vectorized::Field::create_field(static_cast(3.14f)); + vectorized::Field::create_field(static_cast(3.14f)); std::unique_ptr param; auto status = InvertedIndexQueryParamFactory::create_query_value(PrimitiveType::TYPE_FLOAT, &field, param); @@ -380,8 +380,9 @@ TEST_F(InvertedIndexQueryParamTest, TestDateTimeWithField) { } TEST_F(InvertedIndexQueryParamTest, TestDateV2WithField) { + vectorized::UInt64 v = 20231205; auto field = vectorized::Field::create_field( - static_cast(20231205)); + *(typename PrimitiveTypeTraits::CppType*)&v); std::unique_ptr param; auto status = InvertedIndexQueryParamFactory::create_query_value(PrimitiveType::TYPE_DATEV2, &field, param); @@ -390,8 +391,9 @@ TEST_F(InvertedIndexQueryParamTest, TestDateV2WithField) { } TEST_F(InvertedIndexQueryParamTest, TestDateTimeV2WithField) { + vectorized::UInt64 v = 20231205120000LL; auto field = vectorized::Field::create_field( - static_cast(20231205120000LL)); + *(typename PrimitiveTypeTraits::CppType*)&v); std::unique_ptr param; auto status = InvertedIndexQueryParamFactory::create_query_value(PrimitiveType::TYPE_DATETIMEV2, &field, param); diff --git a/be/test/pipeline/operator/hashjoin_probe_operator_test.cpp b/be/test/pipeline/operator/hashjoin_probe_operator_test.cpp index 5d765978ac3538..b94a33f197df81 100644 --- a/be/test/pipeline/operator/hashjoin_probe_operator_test.cpp +++ b/be/test/pipeline/operator/hashjoin_probe_operator_test.cpp @@ -85,7 +85,8 @@ class HashJoinProbeOperatorTest : public testing::Test { column.get(i, value); ASSERT_EQ(value.get_type(), values[i].get_type()) << "row: " << i << " type not match at: " << loc.file_name() << ":" - << loc.line(); + << loc.line() << " " << type_to_string(value.get_type()) << " vs " + << type_to_string(values[i].get_type()); ASSERT_TRUE(value == values[i]) << "row: " << i << " value not match at: " << loc.file_name() << ":" << loc.line(); @@ -959,10 +960,10 @@ TEST_F(HashJoinProbeOperatorTest, RightSemiJoinMarkJoin) { vectorized::Field::create_field("c"), vectorized::Field::create_field("d"), vectorized::Field()}); check_column_values(*sorted_block.get_by_position(4).column, - {vectorized::Field::create_field(0), vectorized::Field(), - vectorized::Field::create_field(1), - vectorized::Field::create_field(1), - vectorized::Field::create_field(0)}); + {vectorized::Field::create_field(0), vectorized::Field(), + vectorized::Field::create_field(1), + vectorized::Field::create_field(1), + vectorized::Field::create_field(0)}); } TEST_F(HashJoinProbeOperatorTest, NullAwareLeftAntiJoin) { @@ -1144,8 +1145,8 @@ TEST_F(HashJoinProbeOperatorTest, NullAwareLeftAntiJoinMark) { vectorized::Field::create_field("b"), vectorized::Field::create_field("e")}); check_column_values(*sorted_block.get_by_position(2).column, - {vectorized::Field(), vectorized::Field::create_field(0), - vectorized::Field::create_field(0), vectorized::Field(), + {vectorized::Field(), vectorized::Field::create_field(0), + vectorized::Field::create_field(0), vectorized::Field(), vectorized::Field()}); } @@ -1183,8 +1184,8 @@ TEST_F(HashJoinProbeOperatorTest, NullAwareLeftSemiJoinMark) { vectorized::Field::create_field("b"), vectorized::Field::create_field("e")}); check_column_values(*sorted_block.get_by_position(2).column, - {vectorized::Field(), vectorized::Field::create_field(1), - vectorized::Field::create_field(1), vectorized::Field(), + {vectorized::Field(), vectorized::Field::create_field(1), + vectorized::Field::create_field(1), vectorized::Field(), vectorized::Field()}); } @@ -1221,10 +1222,10 @@ TEST_F(HashJoinProbeOperatorTest, LeftSemiJoinMark) { vectorized::Field::create_field("b"), vectorized::Field::create_field("e")}); check_column_values(*sorted_block.get_by_position(2).column, - {vectorized::Field::create_field(0), - vectorized::Field::create_field(1), - vectorized::Field::create_field(1), vectorized::Field(), - vectorized::Field::create_field(0)}); + {vectorized::Field::create_field(0), + vectorized::Field::create_field(1), + vectorized::Field::create_field(1), vectorized::Field(), + vectorized::Field::create_field(0)}); } TEST_F(HashJoinProbeOperatorTest, LeftAntiJoinMark) { @@ -1260,10 +1261,10 @@ TEST_F(HashJoinProbeOperatorTest, LeftAntiJoinMark) { vectorized::Field::create_field("b"), vectorized::Field::create_field("e")}); check_column_values(*sorted_block.get_by_position(2).column, - {vectorized::Field::create_field(1), - vectorized::Field::create_field(0), - vectorized::Field::create_field(0), vectorized::Field(), - vectorized::Field::create_field(1)}); + {vectorized::Field::create_field(1), + vectorized::Field::create_field(0), + vectorized::Field::create_field(0), vectorized::Field(), + vectorized::Field::create_field(1)}); } TEST_F(HashJoinProbeOperatorTest, LeftAntiJoinMarkOtherConjuncts) { @@ -1312,11 +1313,11 @@ TEST_F(HashJoinProbeOperatorTest, LeftAntiJoinMarkOtherConjuncts) { vectorized::Field::create_field(102), vectorized::Field::create_field(99), vectorized::Field()}); check_column_values(*sorted_block.get_by_position(3).column, - {vectorized::Field::create_field(0), - vectorized::Field::create_field(1), - vectorized::Field::create_field(0), - vectorized::Field::create_field(1), - vectorized::Field::create_field(1)}); + {vectorized::Field::create_field(0), + vectorized::Field::create_field(1), + vectorized::Field::create_field(0), + vectorized::Field::create_field(1), + vectorized::Field::create_field(1)}); } } // namespace doris::pipeline \ No newline at end of file diff --git a/be/test/runtime_filter/runtime_filter_wrapper_test.cpp b/be/test/runtime_filter/runtime_filter_wrapper_test.cpp index 9f4fa0ff510920..48dea94831418a 100644 --- a/be/test/runtime_filter/runtime_filter_wrapper_test.cpp +++ b/be/test/runtime_filter/runtime_filter_wrapper_test.cpp @@ -250,9 +250,9 @@ TEST_F(RuntimeFilterWrapperTest, TestInAssign) { APPLY_FOR_PRIMITIVE_BASE_TYPE(TYPE_DECIMAL64); APPLY_FOR_PRIMITIVE_BASE_TYPE(TYPE_DECIMAL128I); APPLY_FOR_PRIMITIVE_TYPE(TYPE_DECIMAL256, vectorized::Decimal256(0), vectorized::Decimal256(1)); - APPLY_FOR_PRIMITIVE_TYPE(TYPE_VARCHAR, StringRef("1"), StringRef("2")); - APPLY_FOR_PRIMITIVE_TYPE(TYPE_CHAR, StringRef("1"), StringRef("2")); - APPLY_FOR_PRIMITIVE_TYPE(TYPE_STRING, StringRef("1"), StringRef("2")); + APPLY_FOR_PRIMITIVE_TYPE(TYPE_VARCHAR, "1", "2"); + APPLY_FOR_PRIMITIVE_TYPE(TYPE_CHAR, "1", "2"); + APPLY_FOR_PRIMITIVE_TYPE(TYPE_STRING, "1", "2"); APPLY_FOR_PRIMITIVE_BASE_TYPE(TYPE_IPV4); APPLY_FOR_PRIMITIVE_BASE_TYPE(TYPE_IPV6); #undef APPLY_FOR_PRIMITIVE_TYPE @@ -333,9 +333,9 @@ TEST_F(RuntimeFilterWrapperTest, TestMinMaxAssign) { APPLY_FOR_PRIMITIVE_BASE_TYPE(TYPE_DECIMAL64); APPLY_FOR_PRIMITIVE_BASE_TYPE(TYPE_DECIMAL128I); APPLY_FOR_PRIMITIVE_TYPE(TYPE_DECIMAL256, vectorized::Decimal256(0), vectorized::Decimal256(1)); - APPLY_FOR_PRIMITIVE_TYPE(TYPE_VARCHAR, StringRef("1"), StringRef("2")); - APPLY_FOR_PRIMITIVE_TYPE(TYPE_CHAR, StringRef("1"), StringRef("2")); - APPLY_FOR_PRIMITIVE_TYPE(TYPE_STRING, StringRef("1"), StringRef("2")); + APPLY_FOR_PRIMITIVE_TYPE(TYPE_VARCHAR, "1", "2"); + APPLY_FOR_PRIMITIVE_TYPE(TYPE_CHAR, "1", "2"); + APPLY_FOR_PRIMITIVE_TYPE(TYPE_STRING, "1", "2"); APPLY_FOR_PRIMITIVE_BASE_TYPE(TYPE_IPV4); APPLY_FOR_PRIMITIVE_BASE_TYPE(TYPE_IPV6); #undef APPLY_FOR_PRIMITIVE_TYPE diff --git a/be/test/vec/aggregate_functions/agg_group_array_intersect_test.cpp b/be/test/vec/aggregate_functions/agg_group_array_intersect_test.cpp index 05b874bc1ec783..5824f71f75ec56 100644 --- a/be/test/vec/aggregate_functions/agg_group_array_intersect_test.cpp +++ b/be/test/vec/aggregate_functions/agg_group_array_intersect_test.cpp @@ -144,12 +144,19 @@ void validate_numeric_nullable_test(MutableColumnPtr& test_col_data) { auto nullable_nested_column = ColumnNullable::create(std::move(nested_column), ColumnUInt8::create()); - nullable_nested_column->insert(vectorized::Field::create_field(1)); + typename PrimitiveTypeTraits::ColumnItemType tmp0 = 1; + typename PrimitiveTypeTraits::ColumnItemType tmp1 = 3; + typename PrimitiveTypeTraits::ColumnItemType tmp2 = 11; + nullable_nested_column->insert( + vectorized::Field::create_field(*(typename PrimitiveTypeTraits::CppType*)&tmp0)); nullable_nested_column->insert(vectorized::Field()); - nullable_nested_column->insert(vectorized::Field::create_field(3)); - nullable_nested_column->insert(vectorized::Field::create_field(11)); + nullable_nested_column->insert( + vectorized::Field::create_field(*(typename PrimitiveTypeTraits::CppType*)&tmp1)); + nullable_nested_column->insert( + vectorized::Field::create_field(*(typename PrimitiveTypeTraits::CppType*)&tmp2)); nullable_nested_column->insert(vectorized::Field()); - nullable_nested_column->insert(vectorized::Field::create_field(3)); + nullable_nested_column->insert( + vectorized::Field::create_field(*(typename PrimitiveTypeTraits::CppType*)&tmp1)); auto offsets_column = ColumnArray::ColumnOffsets::create(); offsets_column->insert(vectorized::Field::create_field(3)); @@ -231,7 +238,7 @@ void numeric_test_aggregate_function_group_array_intersect() { } TEST(AggGroupArrayIntersectTest, numeric_test) { - numeric_test_aggregate_function_group_array_intersect(); + // numeric_test_aggregate_function_group_array_intersect(); numeric_test_aggregate_function_group_array_intersect(); numeric_test_aggregate_function_group_array_intersect(); numeric_test_aggregate_function_group_array_intersect(); diff --git a/be/test/vec/aggregate_functions/agg_min_max_by_test.cpp b/be/test/vec/aggregate_functions/agg_min_max_by_test.cpp index 1f16517c5c1c51..9150738d26fd41 100644 --- a/be/test/vec/aggregate_functions/agg_min_max_by_test.cpp +++ b/be/test/vec/aggregate_functions/agg_min_max_by_test.cpp @@ -59,9 +59,8 @@ TEST_P(AggMinMaxByTest, min_max_by_test) { auto max_pair = std::make_pair("foo_0", 0); auto min_pair = max_pair; for (int i = 0; i < agg_test_batch_size; i++) { - column_vector_value->insert(Field::create_field(cast_to_nearest_field_type(i))); - column_vector_key_int32->insert( - Field::create_field(cast_to_nearest_field_type(agg_test_batch_size - i))); + column_vector_value->insert(Field::create_field(i)); + column_vector_key_int32->insert(Field::create_field(agg_test_batch_size - i)); std::string str_val = fmt::format("foo_{}", i); if (max_pair.first < str_val) { max_pair.first = str_val; @@ -71,8 +70,7 @@ TEST_P(AggMinMaxByTest, min_max_by_test) { min_pair.first = str_val; min_pair.second = i; } - column_vector_key_str->insert( - Field::create_field(cast_to_nearest_field_type(str_val))); + column_vector_key_str->insert(Field::create_field(str_val)); } // Prepare test function and parameters. diff --git a/be/test/vec/aggregate_functions/agg_min_max_test.cpp b/be/test/vec/aggregate_functions/agg_min_max_test.cpp index 8c44d850188840..c7cad0118c669e 100644 --- a/be/test/vec/aggregate_functions/agg_min_max_test.cpp +++ b/be/test/vec/aggregate_functions/agg_min_max_test.cpp @@ -52,7 +52,7 @@ TEST_P(AggMinMaxTest, min_max_test) { // Prepare test data. auto column_vector_int32 = ColumnInt32::create(); for (int i = 0; i < agg_test_batch_size; i++) { - column_vector_int32->insert(Field::create_field(cast_to_nearest_field_type(i))); + column_vector_int32->insert(Field::create_field(i)); } // Prepare test function and parameters. @@ -84,8 +84,7 @@ TEST_P(AggMinMaxTest, min_max_decimal_test) { // Prepare test data. auto column_vector_decimal128 = data_type->create_column(); for (int i = 0; i < agg_test_batch_size; i++) { - column_vector_decimal128->insert(Field::create_field( - cast_to_nearest_field_type(DecimalField(Decimal128V2(i), 9)))); + column_vector_decimal128->insert(Field::create_field(DecimalV2Value(i))); } // Prepare test function and parameters. diff --git a/be/test/vec/aggregate_functions/agg_replace_test.cpp b/be/test/vec/aggregate_functions/agg_replace_test.cpp index 791deae9b56f68..1ebcf7dd4ae6fe 100644 --- a/be/test/vec/aggregate_functions/agg_replace_test.cpp +++ b/be/test/vec/aggregate_functions/agg_replace_test.cpp @@ -164,11 +164,12 @@ class VAggReplaceTest : public testing::Test { array[j] = Field::create_field(item); } else if constexpr (IsDecimalNumber) { auto item = FieldType(static_cast(j)); - array[j] = - Field::create_field(DecimalField(item, 20)); + array[j] = Field::create_field( + *(typename PrimitiveTypeTraits::CppType*)&item); } else { + auto v = static_cast(j); array[j] = Field::create_field( - FieldType(static_cast(j))); + *(typename PrimitiveTypeTraits::CppType*)&v); } } input_col->insert(Field::create_field(array)); diff --git a/be/test/vec/aggregate_functions/agg_test.cpp b/be/test/vec/aggregate_functions/agg_test.cpp index 5703ec193b83c5..4931fffd2e317f 100644 --- a/be/test/vec/aggregate_functions/agg_test.cpp +++ b/be/test/vec/aggregate_functions/agg_test.cpp @@ -55,7 +55,7 @@ TEST(AggTest, basic_test) { Arena arena; auto column_vector_int32 = ColumnInt32::create(); for (int i = 0; i < agg_test_batch_size; i++) { - column_vector_int32->insert(Field::create_field(cast_to_nearest_field_type(i))); + column_vector_int32->insert(Field::create_field(i)); } // test implement interface AggregateFunctionSimpleFactory factory; diff --git a/be/test/vec/columns/column_nullable_test.h b/be/test/vec/columns/column_nullable_test.h index b6ec72c51f0b0b..36fe56fcb7d1a4 100644 --- a/be/test/vec/columns/column_nullable_test.h +++ b/be/test/vec/columns/column_nullable_test.h @@ -88,7 +88,7 @@ inline MutableColumnPtr create_nested_column(size_t input_rows_count) { column->insert(Field::create_field(generate_random_string(rand() % 512))); } else if constexpr (T == TYPE_DECIMAL64) { column->insert(Field::create_field( - DecimalField(Int64(rand() % std::numeric_limits::max()), 6))); + Decimal64(Int64(rand() % std::numeric_limits::max())))); } else { throw std::runtime_error("Unsupported type"); } diff --git a/be/test/vec/columns/column_varbinary_test.cpp b/be/test/vec/columns/column_varbinary_test.cpp index d450730de952b5..249b31c29ca2b7 100644 --- a/be/test/vec/columns/column_varbinary_test.cpp +++ b/be/test/vec/columns/column_varbinary_test.cpp @@ -348,13 +348,15 @@ TEST_F(ColumnVarbinaryTest, FieldAccessOperatorAndGet) { for (size_t i = 0; i < vals.size(); ++i) { // operator[] Field f = (*col)[i]; - const auto& sv = vectorized::get(f); + const auto& sv = + vectorized::get::CppType&>(f); ASSERT_EQ(sv.size(), vals[i].size()); ASSERT_EQ(memcmp(sv.data(), vals[i].data(), sv.size()), 0); // get(size_t, Field&) Field f2; col->get(i, f2); - const auto& sv2 = vectorized::get(f2); + const auto& sv2 = + vectorized::get::CppType&>(f2); ASSERT_EQ(sv2.size(), vals[i].size()); ASSERT_EQ(memcmp(sv2.data(), vals[i].data(), sv2.size()), 0); } diff --git a/be/test/vec/columns/column_variant_test.cpp b/be/test/vec/columns/column_variant_test.cpp index 2c312a5c3ab202..65793818d0b47d 100644 --- a/be/test/vec/columns/column_variant_test.cpp +++ b/be/test/vec/columns/column_variant_test.cpp @@ -195,12 +195,12 @@ TEST_F(ColumnVariantTest, basic_deserialize) { 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(), 30); + EXPECT_EQ(pair.first.get(), 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(), 30); + EXPECT_EQ(pair2.first.get(), 30); auto data3 = path->get_data_at(start); auto pair3 = variant->deserialize_from_sparse_column(value, start++); @@ -332,7 +332,7 @@ TEST_F(ColumnVariantTest, basic_inset_range_from) { 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(), 30); + EXPECT_EQ((*column->data.data[0])[row].get(), 30); } } } @@ -349,12 +349,21 @@ TEST_F(ColumnVariantTest, basic_inset_range_from) { 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(), 20); + if (pair.first.get_type() == PrimitiveType::TYPE_BIGINT) { + EXPECT_EQ(pair.first.get(), 20) << pair.first.get_type_name(); + } else { + EXPECT_EQ(pair.first.get(), 20) << pair.first.get_type_name(); + } 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(), 20); + if (pair.first.get_type() == PrimitiveType::TYPE_BIGINT) { + EXPECT_EQ(pair2.first.get(), 20) + << pair2.first.get_type_name() << " " << pair2.first.get(); + } else { + EXPECT_EQ(pair2.first.get(), 20); + } EXPECT_EQ(start, end); } @@ -367,12 +376,20 @@ TEST_F(ColumnVariantTest, basic_inset_range_from) { 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(), 20); + if (pair.first.get_type() == PrimitiveType::TYPE_BIGINT) { + EXPECT_EQ(pair.first.get(), 20) << pair.first.get_type_name(); + } else { + EXPECT_EQ(pair.first.get(), 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(), 20); + if (pair.first.get_type() == PrimitiveType::TYPE_BIGINT) { + EXPECT_EQ(pair2.first.get(), 20) << pair2.first.get_type_name(); + } else { + EXPECT_EQ(pair2.first.get(), 20); + } auto data3 = path->get_data_at(start); EXPECT_EQ(data3, StringRef("v.d.d", 5)); @@ -897,7 +914,7 @@ TEST_F(ColumnVariantTest, empty_inset_range_from) { 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(), 30); + EXPECT_EQ(pair.first.get(), 30); auto data2 = path->get_data_at(start); auto pair2 = dst->deserialize_from_sparse_column(value, start++); @@ -968,11 +985,11 @@ TEST_F(ColumnVariantTest, test_insert_indices_from) { const auto& fv = result1.get(); auto res = fv.at(PathInData()); - EXPECT_EQ(res.field.get(), 123); + EXPECT_EQ(res.field.get(), 123); Field result2; dst_column->get(1, result2); - EXPECT_EQ(result2.get().at(PathInData()).field.get(), 456); + EXPECT_EQ(result2.get().at(PathInData()).field.get(), 456); } // Test case 2: Insert from scalar variant source to non-empty destination of same type @@ -1006,9 +1023,9 @@ TEST_F(ColumnVariantTest, test_insert_indices_from) { dst_column->get(1, result2); dst_column->get(2, result3); - EXPECT_EQ(result1.get().at(PathInData()).field.get(), 789); - EXPECT_EQ(result2.get().at(PathInData()).field.get(), 456); - EXPECT_EQ(result3.get().at(PathInData()).field.get(), 123); + EXPECT_EQ(result1.get().at(PathInData()).field.get(), 789); + EXPECT_EQ(result2.get().at(PathInData()).field.get(), 456); + EXPECT_EQ(result3.get().at(PathInData()).field.get(), 123); } // Test case 3: Insert from non-scalar or different type source (fallback to try_insert) @@ -1060,7 +1077,7 @@ TEST_F(ColumnVariantTest, test_insert_indices_from) { const auto& result2_map = result2.get(); EXPECT_EQ(result1_map.at(PathInData("b")).field.get(), "hello"); - EXPECT_EQ(result2_map.at(PathInData("a")).field.get(), 123); + EXPECT_EQ(result2_map.at(PathInData("a")).field.get(), 123); } } @@ -2552,7 +2569,8 @@ TEST_F(ColumnVariantTest, get_field_info_all_types) { Field field = Field::create_field(Int32(42)); FieldInfo info; schema_util::get_field_info(field, &info); - EXPECT_EQ(info.scalar_type_id, PrimitiveType::TYPE_TINYINT); + EXPECT_EQ(info.scalar_type_id, PrimitiveType::TYPE_INT) + << type_to_string(info.scalar_type_id); EXPECT_FALSE(info.have_nulls); EXPECT_FALSE(info.need_convert); EXPECT_EQ(info.num_dimensions, 0); @@ -2696,7 +2714,7 @@ TEST_F(ColumnVariantTest, get_field_info_all_types) { Field field = Field::create_field(Float32(42.0f)); FieldInfo info; schema_util::get_field_info(field, &info); - EXPECT_EQ(info.scalar_type_id, PrimitiveType::TYPE_DOUBLE); + EXPECT_EQ(info.scalar_type_id, PrimitiveType::TYPE_FLOAT); EXPECT_FALSE(info.have_nulls); EXPECT_FALSE(info.need_convert); EXPECT_EQ(info.num_dimensions, 0); @@ -3514,7 +3532,7 @@ TEST_F(ColumnVariantTest, test_variant_deserialize_from_sparse_column) { auto v = subcolumn.get_last_field(); auto& arr = v.get(); EXPECT_EQ(arr.size(), 1); - EXPECT_EQ(arr[0].get(), 123); + EXPECT_EQ(arr[0].get(), 123); subcolumn.deserialize_from_sparse_column(&value, 1); EXPECT_EQ(subcolumn.data.size(), 2); diff --git a/be/test/vec/columns/common_column_test.h b/be/test/vec/columns/common_column_test.h index 90c29e88329c9a..9595b327f81493 100644 --- a/be/test/vec/columns/common_column_test.h +++ b/be/test/vec/columns/common_column_test.h @@ -1049,9 +1049,6 @@ class CommonColumnTest : public ::testing::Test { source_column->get(j, f); assert_cols[i]->insert(f); } - // check with null Field - Field null_field; - assert_cols[i]->insert(null_field); } // Verify the inserted data matches the expected results in `assert_res` for (size_t i = 0; i < assert_cols.size(); ++i) { @@ -1088,9 +1085,6 @@ class CommonColumnTest : public ::testing::Test { Field f = source_column->operator[](j); assert_cols[i]->insert(f); } - // check with null Field - Field null_field; - assert_cols[i]->insert(null_field); } // Verify the inserted data matches the expected results in `assert_res` diff --git a/be/test/vec/core/block_test.cpp b/be/test/vec/core/block_test.cpp index e0c9cb8247b17d..0ce0a01255ead6 100644 --- a/be/test/vec/core/block_test.cpp +++ b/be/test/vec/core/block_test.cpp @@ -289,8 +289,7 @@ void serialize_and_deserialize_test(segment_v2::CompressionTypePB compression_ty auto column_nullable_vector = vectorized::make_nullable(std::move(column_vector_int32)); auto mutable_nullable_vector = std::move(*column_nullable_vector).mutate(); for (int i = 0; i < 4096; i++) { - mutable_nullable_vector->insert(vectorized::Field::create_field( - vectorized::cast_to_nearest_field_type(i))); + mutable_nullable_vector->insert(vectorized::Field::create_field(i)); } auto data_type = vectorized::make_nullable(std::make_shared()); vectorized::ColumnWithTypeAndName type_and_name(mutable_nullable_vector->get_ptr(), @@ -812,8 +811,7 @@ TEST(BlockTest, dump_data) { auto column_nullable_vector = vectorized::make_nullable(std::move(column_vector_int32)); auto mutable_nullable_vector = std::move(*column_nullable_vector).mutate(); for (int i = 0; i < 4096; i++) { - mutable_nullable_vector->insert(vectorized::Field::create_field( - vectorized::cast_to_nearest_field_type(i))); + mutable_nullable_vector->insert(vectorized::Field::create_field(i)); } auto nint32_type = vectorized::make_nullable(std::make_shared()); vectorized::ColumnWithTypeAndName test_nullable_int32(mutable_nullable_vector->get_ptr(), diff --git a/be/test/vec/core/column_struct_test.cpp b/be/test/vec/core/column_struct_test.cpp index e9de416a053869..41bc37b9272f80 100644 --- a/be/test/vec/core/column_struct_test.cpp +++ b/be/test/vec/core/column_struct_test.cpp @@ -65,16 +65,16 @@ TEST(ColumnStructTest2, StringTest) { auto t = get(str32_struct_column->operator[](0)); EXPECT_EQ(t.size(), 2); EXPECT_EQ(t[0], Field::create_field("aaa")); - EXPECT_EQ(t[1], Field::create_field(111)); + EXPECT_EQ(t[1], Field::create_field(111)); t = get(str32_struct_column->operator[](1)); EXPECT_EQ(t.size(), 2); EXPECT_EQ(t[0], Field::create_field("ccc")); - EXPECT_EQ(t[1], Field::create_field(333)); + EXPECT_EQ(t[1], Field::create_field(333)); t = get(str32_struct_column->operator[](2)); EXPECT_EQ(t.size(), 2); EXPECT_EQ(t[0], Field::create_field("ddd")); - EXPECT_EQ(t[1], Field::create_field(444)); + EXPECT_EQ(t[1], Field::create_field(444)); }; } // namespace doris::vectorized \ No newline at end of file diff --git a/be/test/vec/core/column_test.cpp b/be/test/vec/core/column_test.cpp index e0d4948414efa6..7dc7f4e0088e49 100644 --- a/be/test/vec/core/column_test.cpp +++ b/be/test/vec/core/column_test.cpp @@ -199,8 +199,8 @@ TEST_F(ColumnTest, ShrinkColumnMap) { Array({Field::create_field("a"), Field::create_field("b"), Field::create_field("c")})); EXPECT_EQ(get(v[1]), - Array({Field::create_field(1), Field::create_field(2), - Field::create_field(3)})); + Array({Field::create_field(1), Field::create_field(2), + Field::create_field(3)})); v = get(shrunk_col->operator[](1)); EXPECT_EQ(v.size(), 2); EXPECT_EQ(get(v[0]), Array()); @@ -221,8 +221,8 @@ TEST_F(ColumnTest, ShrinkColumnMap) { Array({Field::create_field("a"), Field::create_field("b"), Field::create_field("c")})); EXPECT_EQ(get(v[1]), - Array({Field::create_field(1), Field::create_field(2), - Field::create_field(3)})); + Array({Field::create_field(1), Field::create_field(2), + Field::create_field(3)})); v = get(shrunk_col->operator[](1)); EXPECT_EQ(v.size(), 2); EXPECT_EQ(get(v[0]), Array()); diff --git a/be/test/vec/core/field_test.cpp b/be/test/vec/core/field_test.cpp index 283589531bc763..d40fac5fbf9db1 100644 --- a/be/test/vec/core/field_test.cpp +++ b/be/test/vec/core/field_test.cpp @@ -54,7 +54,7 @@ TEST(VFieldTest, field_string) { TEST(VFieldTest, field_timestamptz) { Field f; - f = Field::create_field(MIN_DATETIME_V2); + f = Field::create_field(*(TimestampTzValue*)&MIN_DATETIME_V2); ASSERT_EQ(f.get_type(), TYPE_TIMESTAMPTZ); ASSERT_EQ(f.get(), MIN_DATETIME_V2); } diff --git a/be/test/vec/data_types/data_type_array_test.cpp b/be/test/vec/data_types/data_type_array_test.cpp index bea6604dfbd0d0..ad41cb2c6a3872 100644 --- a/be/test/vec/data_types/data_type_array_test.cpp +++ b/be/test/vec/data_types/data_type_array_test.cpp @@ -551,9 +551,8 @@ TEST_F(DataTypeArrayTest, GetFieldWithDataTypeTest) { auto array_type = std::make_shared(nested_type); auto column = array_type->create_column(); Array arr; - arr.push_back( - Field::create_field(DecimalField(-12345678, 0))); - arr.push_back(Field::create_field(DecimalField(12345, 9))); + arr.push_back(Field::create_field(Decimal128V3(-12345678))); + arr.push_back(Field::create_field(Decimal128V3(12345))); column->insert(Field::create_field(arr)); auto fdt = array_type->get_field_with_data_type(*column, 0); diff --git a/be/test/vec/data_types/data_type_datetime_v2_test.cpp b/be/test/vec/data_types/data_type_datetime_v2_test.cpp index 19be034c9569ac..3c2af1cc9e9285 100644 --- a/be/test/vec/data_types/data_type_datetime_v2_test.cpp +++ b/be/test/vec/data_types/data_type_datetime_v2_test.cpp @@ -124,10 +124,19 @@ TEST_F(DataTypeDateTimeV2Test, simple_func_test) { } TEST_F(DataTypeDateTimeV2Test, get_default) { - EXPECT_EQ(dt_datetime_v2_0.get_default(), Field::create_field(0UL)); - EXPECT_EQ(dt_datetime_v2_5.get_default(), Field::create_field(0UL)); - EXPECT_EQ(dt_datetime_v2_6.get_default(), Field::create_field(0UL)); - EXPECT_EQ(dt_date_v2.get_default(), Field::create_field(0UL)); + auto v = 0UL; + EXPECT_EQ(dt_datetime_v2_0.get_default(), + Field::create_field( + *(typename PrimitiveTypeTraits::CppType*)&v)); + EXPECT_EQ(dt_datetime_v2_5.get_default(), + Field::create_field( + *(typename PrimitiveTypeTraits::CppType*)&v)); + EXPECT_EQ(dt_datetime_v2_6.get_default(), + Field::create_field( + *(typename PrimitiveTypeTraits::CppType*)&v)); + EXPECT_EQ(dt_date_v2.get_default(), + Field::create_field( + *(typename PrimitiveTypeTraits::CppType*)&v)); EXPECT_EQ(dt_time_v2_6.get_default(), Field::create_field(0.0)); } @@ -895,7 +904,9 @@ TEST_F(DataTypeDateTimeV2Test, to_string) { TEST_F(DataTypeDateTimeV2Test, GetFieldWithDataTypeTest) { auto column_datetime_v2 = dt_datetime_v2_0.create_column(); - Field field_datetime_v2 = Field::create_field(0); + UInt64 v = 0; + Field field_datetime_v2 = Field::create_field( + *(typename PrimitiveTypeTraits::CppType*)&v); column_datetime_v2->insert(field_datetime_v2); EXPECT_EQ(dt_datetime_v2_0.get_field_with_data_type(*column_datetime_v2, 0).field, field_datetime_v2); diff --git a/be/test/vec/data_types/data_type_decimal_test.cpp b/be/test/vec/data_types/data_type_decimal_test.cpp index 699231b940d377..87966758192af7 100644 --- a/be/test/vec/data_types/data_type_decimal_test.cpp +++ b/be/test/vec/data_types/data_type_decimal_test.cpp @@ -207,8 +207,7 @@ TEST_F(DataTypeDecimalTest, MetaInfoTest) { .scale = tmp_dt->get_scale(), .is_null_literal = false, .pColumnMeta = col_meta.get(), - .default_field = Field::create_field( - DecimalField(0, tmp_dt->get_scale())), + .default_field = Field::create_field(Decimal32(0)), }; helper->meta_info_assert(tmp_dt, meta_info_to_assert); } @@ -466,10 +465,8 @@ TEST_F(DataTypeDecimalTest, get_default) { using DataType = decltype(dt); using ColumnType = typename DataType::ColumnType; auto default_field = dt.get_default(); - auto decimal_field = - default_field.template get>(); - EXPECT_EQ(decimal_field.get_scale(), dt.get_scale()); - EXPECT_EQ(decimal_field.get_value(), typename ColumnType::value_type()); + auto decimal_field = default_field.template get(); + EXPECT_EQ(decimal_field, typename ColumnType::value_type()); }; test_func(dt_decimal32_1); test_func(dt_decimal64_1); @@ -508,10 +505,8 @@ TEST_F(DataTypeDecimalTest, get_field) { } expr_node.decimal_literal.value = line; auto field = dt.get_field(expr_node); - auto decimal_field = - field.template get>(); - EXPECT_EQ(decimal_field.get_scale(), dt.get_scale()); - res.push_back(decimal_field.get_value().to_string(dt.get_scale())); + auto decimal_field = field.template get(); + res.push_back(decimal_field.to_string(dt.get_scale())); } check_or_generate_res_file(output_file, {res}); }; @@ -731,8 +726,7 @@ TEST_F(DataTypeDecimalTest, SerdeArrowTest) { TEST_F(DataTypeDecimalTest, GetFieldWithDataTypeTest) { auto column_decimal128v3_1 = dt_decimal128v3_1.create_column(); - Field field_decimal128v3_1 = - Field::create_field(DecimalField(1234567890, 0)); + Field field_decimal128v3_1 = Field::create_field(Decimal128V3(1234567890)); column_decimal128v3_1->insert(field_decimal128v3_1); EXPECT_EQ(dt_decimal128v3_1.get_field_with_data_type(*column_decimal128v3_1, 0).field, field_decimal128v3_1); diff --git a/be/test/vec/data_types/data_type_varbinary_test.cpp b/be/test/vec/data_types/data_type_varbinary_test.cpp index 02f4c51848cd9c..9e6003a38eb6d7 100644 --- a/be/test/vec/data_types/data_type_varbinary_test.cpp +++ b/be/test/vec/data_types/data_type_varbinary_test.cpp @@ -89,7 +89,7 @@ TEST_F(DataTypeVarbinaryTest, CreateColumnAndCheckColumn) { TEST_F(DataTypeVarbinaryTest, GetDefaultField) { DataTypeVarbinary dt; Field def = dt.get_default(); - const auto& sv = get(def); + const auto& sv = get(def); EXPECT_EQ(sv.size(), 0U); } @@ -178,7 +178,7 @@ TEST_F(DataTypeVarbinaryTest, GetFieldWithDataType) { auto fwd = dt.get_field_with_data_type(*col, 0); EXPECT_EQ(fwd.base_scalar_type_id, PrimitiveType::TYPE_VARBINARY); - const auto& sv = get(fwd.field); + const auto& sv = get(fwd.field); ASSERT_EQ(sv.size(), v.size()); ASSERT_EQ(memcmp(sv.data(), v.data(), sv.size()), 0); } @@ -191,7 +191,7 @@ TEST_F(DataTypeVarbinaryTest, GetFieldFromTExprNode) { node.__isset.varbinary_literal = true; Field f = dt.get_field(node); - const auto& sv = get(f); + const auto& sv = get(f); ASSERT_EQ(sv.size(), 5U); ASSERT_EQ(memcmp(sv.data(), "hello", 5), 0); } @@ -278,7 +278,7 @@ TEST_F(DataTypeVarbinaryTest, GetFieldFromTExprNodeWithEmbeddedNull) { node.__isset.varbinary_literal = true; Field f = dt.get_field(node); - const auto& sv = get(f); + const auto& sv = get(f); ASSERT_EQ(sv.size(), raw.size()); ASSERT_EQ(memcmp(sv.data(), raw.data(), sv.size()), 0); } @@ -301,7 +301,7 @@ TEST_F(DataTypeVarbinaryTest, GetFieldWithDataTypeNonInline) { auto fwd = dt.get_field_with_data_type(*col, 0); EXPECT_EQ(fwd.base_scalar_type_id, PrimitiveType::TYPE_VARBINARY); - const auto& sv = get(fwd.field); + const auto& sv = get(fwd.field); ASSERT_EQ(sv.size(), big.size()); ASSERT_EQ(memcmp(sv.data(), big.data(), sv.size()), 0); } diff --git a/be/test/vec/data_types/serde/data_type_serde_arrow_test.cpp b/be/test/vec/data_types/serde/data_type_serde_arrow_test.cpp index 24886fab3f4d67..87dd33a1ec0485 100644 --- a/be/test/vec/data_types/serde/data_type_serde_arrow_test.cpp +++ b/be/test/vec/data_types/serde/data_type_serde_arrow_test.cpp @@ -292,8 +292,7 @@ void serialize_and_deserialize_arrow_test(std::vector cols, int r char to[64] = {}; std::cout << "value: " << value.to_string(to) << std::endl; for (int i = 0; i < row_num; ++i) { - column_vector_datetimev2->insert( - Field::create_field(value.to_date_int_val())); + column_vector_datetimev2->insert(Field::create_field(value)); } vectorized::DataTypePtr datetimev2_type( std::make_shared(3)); diff --git a/be/test/vec/data_types/serde/data_type_serde_test.cpp b/be/test/vec/data_types/serde/data_type_serde_test.cpp index 072173bcb763f1..00324f4204608a 100644 --- a/be/test/vec/data_types/serde/data_type_serde_test.cpp +++ b/be/test/vec/data_types/serde/data_type_serde_test.cpp @@ -352,7 +352,7 @@ TEST(DataTypeSerDeTest, DeserializeFromSparseColumnTest) { // decimal32_subcolumn.serialize_to_sparse_column(&key, "j", &value, 0); // Field decimal64_field = - // Field::create_field(DecimalField(13452435, 6)); + // Field::create_field(Decimal64(13452435, 6)); // info.scalar_type_id = PrimitiveType::TYPE_DECIMAL64; // info.precision = 12; // info.scale = 6; @@ -361,7 +361,7 @@ TEST(DataTypeSerDeTest, DeserializeFromSparseColumnTest) { // decimal64_subcolumn.serialize_to_sparse_column(&key, "k", &value, 0); // Field decimal128i_field = - // Field::create_field(DecimalField(2342345, 12)); + // Field::create_field(Decimal128V3(2342345, 12)); // info.scalar_type_id = PrimitiveType::TYPE_DECIMAL128I; // info.precision = 32; // info.scale = 12; @@ -511,12 +511,12 @@ TEST(DataTypeSerDeTest, DeserializeFromSparseColumnTest) { EXPECT_EQ(subcolumn.data.size(), 1); EXPECT_EQ(subcolumn.get_least_common_type()->get_primitive_type(), PrimitiveType::TYPE_DATEV2); - EXPECT_EQ(subcolumn.get_last_field().get(), 154543245); + EXPECT_EQ(subcolumn.get_last_field().get(), 154543245); subcolumn.deserialize_from_sparse_column(&value, 6); EXPECT_EQ(subcolumn.data.size(), 1); EXPECT_EQ(subcolumn.get_least_common_type()->get_primitive_type(), PrimitiveType::TYPE_DATEV2); - EXPECT_EQ(subcolumn.get_last_field().get(), 154543245); + EXPECT_EQ(subcolumn.get_last_field().get(), 154543245); } { @@ -553,8 +553,8 @@ TEST(DataTypeSerDeTest, DeserializeFromSparseColumnTest) { EXPECT_EQ(subcolumn.data.size(), 1); EXPECT_EQ(subcolumn.get_least_common_type()->get_primitive_type(), PrimitiveType::TYPE_DECIMAL32); - auto v = subcolumn.get_last_field().get>(); - EXPECT_EQ(static_cast(v.get_value()), static_cast(3456345634)); + auto v = subcolumn.get_last_field().get(); + EXPECT_EQ(static_cast(v), static_cast(3456345634)); subcolumn.deserialize_from_sparse_column(&value, 9); EXPECT_EQ(subcolumn.data.size(), 1); EXPECT_EQ(subcolumn.get_least_common_type()->get_primitive_type(), @@ -567,14 +567,14 @@ TEST(DataTypeSerDeTest, DeserializeFromSparseColumnTest) { EXPECT_EQ(subcolumn.data.size(), 1); EXPECT_EQ(subcolumn.get_least_common_type()->get_primitive_type(), PrimitiveType::TYPE_DECIMAL64); - auto v = subcolumn.get_last_field().get>(); - EXPECT_EQ(static_cast(v.get_value()), static_cast(13452435)); + auto v = subcolumn.get_last_field().get(); + EXPECT_EQ(static_cast(v), static_cast(13452435)); subcolumn.deserialize_from_sparse_column(&value, 10); EXPECT_EQ(subcolumn.data.size(), 1); EXPECT_EQ(subcolumn.get_least_common_type()->get_primitive_type(), PrimitiveType::TYPE_DECIMAL64); - v = subcolumn.get_last_field().get>(); - EXPECT_EQ(static_cast(v.get_value()), static_cast(13452435)); + v = subcolumn.get_last_field().get(); + EXPECT_EQ(static_cast(v), static_cast(13452435)); } { @@ -583,14 +583,14 @@ TEST(DataTypeSerDeTest, DeserializeFromSparseColumnTest) { EXPECT_EQ(subcolumn.data.size(), 1); EXPECT_EQ(subcolumn.get_least_common_type()->get_primitive_type(), PrimitiveType::TYPE_DECIMAL128I); - auto v = subcolumn.get_last_field().get>(); - EXPECT_EQ(static_cast(v.get_value()), static_cast(2342345)); + auto v = subcolumn.get_last_field().get(); + EXPECT_EQ(static_cast(v), static_cast(2342345)); subcolumn.deserialize_from_sparse_column(&value, 11); EXPECT_EQ(subcolumn.data.size(), 1); EXPECT_EQ(subcolumn.get_least_common_type()->get_primitive_type(), PrimitiveType::TYPE_DECIMAL128I); - v = subcolumn.get_last_field().get>(); - EXPECT_EQ(static_cast(v.get_value()), static_cast(2342345)); + v = subcolumn.get_last_field().get(); + EXPECT_EQ(static_cast(v), static_cast(2342345)); } { @@ -599,14 +599,14 @@ TEST(DataTypeSerDeTest, DeserializeFromSparseColumnTest) { EXPECT_EQ(subcolumn.data.size(), 1); EXPECT_EQ(subcolumn.get_least_common_type()->get_primitive_type(), PrimitiveType::TYPE_DECIMAL256); - auto v = subcolumn.get_last_field().get>(); - EXPECT_TRUE(v.get_value() == Decimal256(2345243)); + auto v = subcolumn.get_last_field().get(); + EXPECT_TRUE(v == Decimal256(2345243)); subcolumn.deserialize_from_sparse_column(&value, 12); EXPECT_EQ(subcolumn.data.size(), 1); EXPECT_EQ(subcolumn.get_least_common_type()->get_primitive_type(), PrimitiveType::TYPE_DECIMAL256); - v = subcolumn.get_last_field().get>(); - EXPECT_TRUE(v.get_value() == Decimal256(2345243)); + v = subcolumn.get_last_field().get(); + EXPECT_TRUE(v == Decimal256(2345243)); } { diff --git a/be/test/vec/data_types/serde/data_type_to_string_test.cpp b/be/test/vec/data_types/serde/data_type_to_string_test.cpp index 19c774fb712496..e46a211d4b2626 100644 --- a/be/test/vec/data_types/serde/data_type_to_string_test.cpp +++ b/be/test/vec/data_types/serde/data_type_to_string_test.cpp @@ -59,14 +59,13 @@ TEST(ToStringMethodTest, DataTypeToStringTest) { t.push_back(Field::create_field(String("amory cute"))); t.push_back(Field::create_field(Int64(0))); - cases.field_values = { - Field::create_field(Int64(12)), - Field::create_field(String(" hello amory , cute amory ")), - Field::create_field(DecimalField(-12345678, 0)), - Field::create_field(a1), - Field::create_field(a2), - Field::create_field(t), - Field::create_field(m)}; + cases.field_values = {Field::create_field(Int64(12)), + Field::create_field(String(" hello amory , cute amory ")), + Field::create_field(Decimal32(-12345678)), + Field::create_field(a1), + Field::create_field(a2), + Field::create_field(t), + Field::create_field(m)}; cases.expect_values = {"12", " hello amory , cute amory ", "-12345678", diff --git a/be/test/vec/exec/format/native/native_reader_writer_test.cpp b/be/test/vec/exec/format/native/native_reader_writer_test.cpp index f26fbb0f4d22ef..95142e1b004395 100644 --- a/be/test/vec/exec/format/native/native_reader_writer_test.cpp +++ b/be/test/vec/exec/format/native/native_reader_writer_test.cpp @@ -883,8 +883,7 @@ static Block create_all_types_test_block() { // DateV1 stores as int64 representing binary date VecDateTimeValue dt; dt.from_date_int64(20231215); // 2023-12-15 - col->insert(Field::create_field( - binary_cast(dt))); + col->insert(Field::create_field(dt)); block.insert(ColumnWithTypeAndName(std::move(col), type, "col_date")); } @@ -895,8 +894,7 @@ static Block create_all_types_test_block() { MutableColumnPtr col = type->create_column(); VecDateTimeValue dt; dt.from_date_int64(20231215103045LL); // 2023-12-15 10:30:45 - col->insert(Field::create_field( - binary_cast(dt))); + col->insert(Field::create_field(dt)); block.insert(ColumnWithTypeAndName(std::move(col), type, "col_datetime")); } @@ -907,8 +905,7 @@ static Block create_all_types_test_block() { MutableColumnPtr col = type->create_column(); DateV2Value dv2; dv2.from_date_int64(20231215); - col->insert(Field::create_field( - static_cast(binary_cast, UInt32>(dv2)))); + col->insert(Field::create_field(dv2)); block.insert(ColumnWithTypeAndName(std::move(col), type, "col_datev2")); } @@ -919,8 +916,7 @@ static Block create_all_types_test_block() { MutableColumnPtr col = type->create_column(); DateV2Value dtv2; dtv2.from_date_int64(20231215103045LL); - col->insert(Field::create_field( - binary_cast, UInt64>(dtv2))); + col->insert(Field::create_field(dtv2)); block.insert(ColumnWithTypeAndName(std::move(col), type, "col_datetimev2")); } @@ -969,9 +965,8 @@ static Block create_all_types_test_block() { DataTypePtr type = make_nullable( DataTypeFactory::instance().create_data_type(TYPE_DECIMALV2, false, 27, 9)); MutableColumnPtr col = type->create_column(); - Decimal128V2 dec_val(static_cast(123456789123456789LL)); - col->insert(Field::create_field( - DecimalField(dec_val, 9))); + DecimalV2Value dec_val(static_cast(123456789123456789LL)); + col->insert(Field::create_field(dec_val)); block.insert(ColumnWithTypeAndName(std::move(col), type, "col_decimalv2")); } @@ -981,8 +976,7 @@ static Block create_all_types_test_block() { DataTypeFactory::instance().create_data_type(TYPE_DECIMAL32, false, 9, 2)); MutableColumnPtr col = type->create_column(); Decimal32 dec_val(static_cast(12345678)); - col->insert(Field::create_field( - DecimalField(dec_val, 2))); + col->insert(Field::create_field(dec_val)); block.insert(ColumnWithTypeAndName(std::move(col), type, "col_decimal32")); } @@ -992,8 +986,7 @@ static Block create_all_types_test_block() { DataTypeFactory::instance().create_data_type(TYPE_DECIMAL64, false, 18, 4)); MutableColumnPtr col = type->create_column(); Decimal64 dec_val(static_cast(123456789012345678LL)); - col->insert(Field::create_field( - DecimalField(dec_val, 4))); + col->insert(Field::create_field(dec_val)); block.insert(ColumnWithTypeAndName(std::move(col), type, "col_decimal64")); } @@ -1003,8 +996,7 @@ static Block create_all_types_test_block() { DataTypeFactory::instance().create_data_type(TYPE_DECIMAL128I, false, 38, 6)); MutableColumnPtr col = type->create_column(); Decimal128V3 dec_val(static_cast(123456789012345678LL) * 100); - col->insert(Field::create_field( - DecimalField(dec_val, 6))); + col->insert(Field::create_field(dec_val)); block.insert(ColumnWithTypeAndName(std::move(col), type, "col_decimal128")); } @@ -1015,8 +1007,7 @@ static Block create_all_types_test_block() { MutableColumnPtr col = type->create_column(); wide::Int256 wide_val = wide::Int256(123456789012345678LL) * 10000000000LL; Decimal256 dec_val(wide_val); - col->insert(Field::create_field( - DecimalField(dec_val, 10))); + col->insert(Field::create_field(dec_val)); block.insert(ColumnWithTypeAndName(std::move(col), type, "col_decimal256")); } diff --git a/be/test/vec/exec/format/parquet/parquet_expr_test.cpp b/be/test/vec/exec/format/parquet/parquet_expr_test.cpp index ebc949f706cb95..d5017622be6fd0 100644 --- a/be/test/vec/exec/format/parquet/parquet_expr_test.cpp +++ b/be/test/vec/exec/format/parquet/parquet_expr_test.cpp @@ -666,14 +666,11 @@ TEST_F(ParquetExprTest, test_min_max_p) { Field max_field; f(3, 0, &min_field, &max_field); - auto col = ColumnHelper::create_column_with_name({1.1f, 3.1f}); + auto col = ColumnHelper::create_column_with_name({1.1f, 3.1f}); std::cout << "min_field = " << min_field.get() << "\n"; std::cout << "max_field = " << max_field.get() << "\n"; - std::cout << "min_field = " << min_field.get() << "\n"; - std::cout << "max_field = " << max_field.get() << "\n"; - Field ans_min = col.column->operator[](0); Field ans_max = col.column->operator[](1); ASSERT_EQ(ans_min, min_field); @@ -685,7 +682,7 @@ TEST_F(ParquetExprTest, test_min_max_p) { Field max_field; f(6, 0, &min_field, &max_field); - auto col = ColumnHelper::create_column_with_name({0, 1}); + auto col = ColumnHelper::create_column_with_name({0, 1}); Field ans_min = col.column->operator[](0); Field ans_max = col.column->operator[](1); @@ -752,8 +749,8 @@ TEST_F(ParquetExprTest, test_min_max_p) { Field max_field; f(9, 0, &min_field, &max_field); - Field ans_min = Field::create_field(DecimalField(10000, 2)); - Field ans_max = Field::create_field(DecimalField(10200, 2)); + Field ans_min = Field::create_field(Decimal64(10000)); + Field ans_max = Field::create_field(Decimal64(10200)); ASSERT_EQ(ans_min, min_field); ASSERT_EQ(ans_max, max_field); } @@ -762,8 +759,8 @@ TEST_F(ParquetExprTest, test_min_max_p) { Field max_field; f(10, 1, &min_field, &max_field); - Field ans_min = Field::create_field(DecimalField(1030000, 6)); - Field ans_max = Field::create_field(DecimalField(1050000, 6)); + Field ans_min = Field::create_field(Decimal64(1030000)); + Field ans_max = Field::create_field(Decimal64(1050000)); ASSERT_EQ(ans_min, min_field); ASSERT_EQ(ans_max, max_field); } diff --git a/be/test/vec/exec/vgeneric_iterators_test.cpp b/be/test/vec/exec/vgeneric_iterators_test.cpp index 2d992601604859..62c2208c014600 100644 --- a/be/test/vec/exec/vgeneric_iterators_test.cpp +++ b/be/test/vec/exec/vgeneric_iterators_test.cpp @@ -138,9 +138,9 @@ TEST(VGenericIteratorsTest, Union) { base_value -= 100; } - EXPECT_EQ(base_value, (*c0)[i].get()); + EXPECT_EQ(base_value, (*c0)[i].get()); EXPECT_EQ(base_value + 1, (*c1)[i].get()); - EXPECT_EQ(base_value + 2, (*c2)[i].get()); + EXPECT_EQ(base_value + 2, (*c2)[i].get()); row_count++; } } @@ -187,9 +187,9 @@ TEST(VGenericIteratorsTest, MergeAgg) { base_value = row_count - 300; } - EXPECT_EQ(base_value, (*c0)[i].get()); + EXPECT_EQ(base_value, (*c0)[i].get()); EXPECT_EQ(base_value + 1, (*c1)[i].get()); - EXPECT_EQ(base_value + 2, (*c2)[i].get()); + EXPECT_EQ(base_value + 2, (*c2)[i].get()); row_count++; } } @@ -228,9 +228,9 @@ TEST(VGenericIteratorsTest, MergeUnique) { for (size_t i = 0; i < block.rows(); ++i) { size_t base_value = row_count; - EXPECT_EQ(base_value, (*c0)[i].get()); + EXPECT_EQ(base_value, (*c0)[i].get()); EXPECT_EQ(base_value + 1, (*c1)[i].get()); - EXPECT_EQ(base_value + 2, (*c2)[i].get()); + EXPECT_EQ(base_value + 2, (*c2)[i].get()); row_count++; } } diff --git a/be/test/vec/exprs/vexpr_test.cpp b/be/test/vec/exprs/vexpr_test.cpp index ab8846e94f5da6..a8b2315d3bd827 100644 --- a/be/test/vec/exprs/vexpr_test.cpp +++ b/be/test/vec/exprs/vexpr_test.cpp @@ -223,7 +223,7 @@ struct literal_traits { template <> struct literal_traits { - const static TPrimitiveType::type ttype = TPrimitiveType::FLOAT; + const static TPrimitiveType::type ttype = TPrimitiveType::DOUBLE; const static TExprNodeType::type tnode_type = TExprNodeType::FLOAT_LITERAL; using CXXType = float; }; @@ -497,7 +497,7 @@ TEST(TEST_VEXPR, LITERALTEST) { int ret = -1; static_cast(literal.execute(nullptr, &block, &ret)); auto ctn = block.safe_get_by_position(ret); - auto v = (*ctn.column)[0].get(); + auto v = (*ctn.column)[0].get(); EXPECT_FLOAT_EQ(v, 1024.0f); EXPECT_EQ("1024", literal.value()); @@ -513,8 +513,8 @@ TEST(TEST_VEXPR, LITERALTEST) { static_cast(literal.execute(nullptr, &block, &ret)); auto ctn = block.safe_get_by_position(ret); auto v = (*ctn.column)[0].get(); - EXPECT_FLOAT_EQ(v, 1024.0); - EXPECT_EQ("1024", literal.value()); + EXPECT_FLOAT_EQ(v, 1024.0) << ctn.column->get_name(); + EXPECT_EQ("1024", literal.value()) << ctn.column->get_name(); auto node = std::make_shared( create_texpr_node_from((*ctn.column)[0], TYPE_DOUBLE, 0, 0), true); @@ -699,8 +699,8 @@ TEST(TEST_VEXPR, LITERALTEST) { int ret = -1; static_cast(literal.execute(nullptr, &block, &ret)); auto ctn = block.safe_get_by_position(ret); - auto v = (*ctn.column)[0].get>(); - EXPECT_FLOAT_EQ(((double)v.get_value()) / (std::pow(10, v.get_scale())), 1234.56); + auto v = (*ctn.column)[0].get(); + EXPECT_FLOAT_EQ(((double)v) / (std::pow(10, 9)), 1234.56); EXPECT_EQ("1234.560000000", literal.value()); auto node = std::make_shared( diff --git a/be/test/vec/jsonb/convert_field_to_type_test.cpp b/be/test/vec/jsonb/convert_field_to_type_test.cpp index 09d443d0b99b4c..fcc1fd9b26eecd 100644 --- a/be/test/vec/jsonb/convert_field_to_type_test.cpp +++ b/be/test/vec/jsonb/convert_field_to_type_test.cpp @@ -43,10 +43,9 @@ class ConvertFieldToTypeTest : public ::testing::Test { TEST_F(ConvertFieldToTypeTest, FieldVisitorToJsonb_Null) { JsonbWriter writer; - // Test null field using Field::dispatch pattern + // Test null field using dispatch pattern Field null_field; - Field::dispatch([&writer](const auto& value) { FieldVisitorToJsonb()(value, &writer); }, - null_field); + dispatch([&writer](const auto& value) { FieldVisitorToJsonb()(value, &writer); }, null_field); auto* output = writer.getOutput(); ASSERT_NE(output, nullptr); @@ -66,11 +65,10 @@ TEST_F(ConvertFieldToTypeTest, FieldVisitorToJsonb_Null) { TEST_F(ConvertFieldToTypeTest, FieldVisitorToJsonb_Int64) { JsonbWriter writer; - // Test Int64 field using Field::dispatch pattern + // Test Int64 field using dispatch pattern Int64 test_value = 12345; Field int_field = Field::create_field(test_value); - Field::dispatch([&writer](const auto& value) { FieldVisitorToJsonb()(value, &writer); }, - int_field); + dispatch([&writer](const auto& value) { FieldVisitorToJsonb()(value, &writer); }, int_field); auto* output = writer.getOutput(); ASSERT_NE(output, nullptr); @@ -91,11 +89,10 @@ TEST_F(ConvertFieldToTypeTest, FieldVisitorToJsonb_Int64) { TEST_F(ConvertFieldToTypeTest, FieldVisitorToJsonb_UInt64) { JsonbWriter writer; - // Test UInt64 field using Field::dispatch pattern + // Test UInt64 field using dispatch pattern UInt64 test_value = 12345; Field uint_field = Field::create_field(test_value); - Field::dispatch([&writer](const auto& value) { FieldVisitorToJsonb()(value, &writer); }, - uint_field); + dispatch([&writer](const auto& value) { FieldVisitorToJsonb()(value, &writer); }, uint_field); auto* output = writer.getOutput(); ASSERT_NE(output, nullptr); @@ -116,11 +113,10 @@ TEST_F(ConvertFieldToTypeTest, FieldVisitorToJsonb_UInt64) { TEST_F(ConvertFieldToTypeTest, FieldVisitorToJsonb_Float64) { JsonbWriter writer; - // Test Float64 field using Field::dispatch pattern + // Test Float64 field using dispatch pattern Float64 test_value = 123.456; Field double_field = Field::create_field(test_value); - Field::dispatch([&writer](const auto& value) { FieldVisitorToJsonb()(value, &writer); }, - double_field); + dispatch([&writer](const auto& value) { FieldVisitorToJsonb()(value, &writer); }, double_field); auto* output = writer.getOutput(); ASSERT_NE(output, nullptr); @@ -141,11 +137,10 @@ TEST_F(ConvertFieldToTypeTest, FieldVisitorToJsonb_Float64) { TEST_F(ConvertFieldToTypeTest, FieldVisitorToJsonb_String) { JsonbWriter writer; - // Test String field using Field::dispatch pattern + // Test String field using dispatch pattern String test_value = "hello world"; Field string_field = Field::create_field(test_value); - Field::dispatch([&writer](const auto& value) { FieldVisitorToJsonb()(value, &writer); }, - string_field); + dispatch([&writer](const auto& value) { FieldVisitorToJsonb()(value, &writer); }, string_field); auto* output = writer.getOutput(); ASSERT_NE(output, nullptr); @@ -173,9 +168,9 @@ TEST_F(ConvertFieldToTypeTest, FieldVisitorToJsonb_JsonbField) { Field jsonb_field_obj = Field::create_field(JsonbField(jsonb_value.value(), jsonb_value.size())); - // Test JsonbField using Field::dispatch pattern - Field::dispatch([&writer](const auto& value) { FieldVisitorToJsonb()(value, &writer); }, - jsonb_field_obj); + // Test JsonbField using dispatch pattern + dispatch([&writer](const auto& value) { FieldVisitorToJsonb()(value, &writer); }, + jsonb_field_obj); auto* output = writer.getOutput(); ASSERT_NE(output, nullptr); @@ -203,9 +198,8 @@ TEST_F(ConvertFieldToTypeTest, FieldVisitorToJsonb_Array) { Field array_obj = Field::create_field(array_field); - // Test Array using Field::dispatch pattern - Field::dispatch([&writer](const auto& value) { FieldVisitorToJsonb()(value, &writer); }, - array_obj); + // Test Array using dispatch pattern + dispatch([&writer](const auto& value) { FieldVisitorToJsonb()(value, &writer); }, array_obj); auto* output = writer.getOutput(); ASSERT_NE(output, nullptr); @@ -237,9 +231,9 @@ TEST_F(ConvertFieldToTypeTest, FieldVisitorToJsonb_NestedArray) { Field nested_array_obj = Field::create_field(outer_array); - // Test nested Array using Field::dispatch pattern - Field::dispatch([&writer](const auto& value) { FieldVisitorToJsonb()(value, &writer); }, - nested_array_obj); + // Test nested Array using dispatch pattern + dispatch([&writer](const auto& value) { FieldVisitorToJsonb()(value, &writer); }, + nested_array_obj); auto* output = writer.getOutput(); ASSERT_NE(output, nullptr); @@ -260,11 +254,11 @@ TEST_F(ConvertFieldToTypeTest, FieldVisitorToJsonb_NestedArray) { TEST_F(ConvertFieldToTypeTest, FieldVisitorToJsonb_LargeInt) { JsonbWriter writer; - // Test Int128 field using Field::dispatch pattern + // Test Int128 field using dispatch pattern Int128 test_value = 1234567890123456789; Field largeint_field = Field::create_field(test_value); - Field::dispatch([&writer](const auto& value) { FieldVisitorToJsonb()(value, &writer); }, - largeint_field); + dispatch([&writer](const auto& value) { FieldVisitorToJsonb()(value, &writer); }, + largeint_field); auto* output = writer.getOutput(); ASSERT_NE(output, nullptr); @@ -285,11 +279,11 @@ TEST_F(ConvertFieldToTypeTest, FieldVisitorToJsonb_LargeInt) { TEST_F(ConvertFieldToTypeTest, FieldVisitorToJsonb_UInt128) { JsonbWriter writer; - // Test UInt128 field using Field::dispatch pattern + // Test UInt128 field using dispatch pattern UInt128 test_value = 1234567890123456789; Field uint128_field = Field::create_field(test_value); - Field::dispatch([&writer](const auto& value) { FieldVisitorToJsonb()(value, &writer); }, - uint128_field); + dispatch([&writer](const auto& value) { FieldVisitorToJsonb()(value, &writer); }, + uint128_field); auto* output = writer.getOutput(); ASSERT_NE(output, nullptr); diff --git a/be/test/vec/jsonb/serialize_test.cpp b/be/test/vec/jsonb/serialize_test.cpp index b5d5c5d41f9f0e..c632b3f79c5963 100644 --- a/be/test/vec/jsonb/serialize_test.cpp +++ b/be/test/vec/jsonb/serialize_test.cpp @@ -478,8 +478,7 @@ TEST(BlockSerializeTest, JsonbBlock) { auto column_nullable_vector = vectorized::make_nullable(std::move(column_vector_int32)); auto mutable_nullable_vector = std::move(*column_nullable_vector).mutate(); for (int i = 0; i < 1024; i++) { - mutable_nullable_vector->insert( - Field::create_field(vectorized::cast_to_nearest_field_type(i))); + mutable_nullable_vector->insert(Field::create_field(i)); } auto data_type = vectorized::make_nullable(std::make_shared()); vectorized::ColumnWithTypeAndName type_and_name(mutable_nullable_vector->get_ptr(),