diff --git a/CMakeLists.txt b/CMakeLists.txt index 3da3fe54c..7153f8424 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -350,44 +350,44 @@ set(DUCKDB_SRC_FILES src/duckdb/extension/core_functions/lambda_functions.cpp src/duckdb/extension/core_functions/function_list.cpp src/duckdb/extension/core_functions/core_functions_extension.cpp - src/duckdb/ub_extension_core_functions_aggregate_holistic.cpp - src/duckdb/ub_extension_core_functions_aggregate_algebraic.cpp src/duckdb/ub_extension_core_functions_aggregate_distributive.cpp - src/duckdb/ub_extension_core_functions_aggregate_regression.cpp src/duckdb/ub_extension_core_functions_aggregate_nested.cpp - src/duckdb/ub_extension_core_functions_scalar_math.cpp - src/duckdb/ub_extension_core_functions_scalar_date.cpp - src/duckdb/ub_extension_core_functions_scalar_list.cpp - src/duckdb/ub_extension_core_functions_scalar_generic.cpp - src/duckdb/ub_extension_core_functions_scalar_blob.cpp - src/duckdb/ub_extension_core_functions_scalar_random.cpp + src/duckdb/ub_extension_core_functions_aggregate_regression.cpp + src/duckdb/ub_extension_core_functions_aggregate_algebraic.cpp + src/duckdb/ub_extension_core_functions_aggregate_holistic.cpp src/duckdb/ub_extension_core_functions_scalar_string.cpp - src/duckdb/ub_extension_core_functions_scalar_array.cpp - src/duckdb/ub_extension_core_functions_scalar_map.cpp - src/duckdb/ub_extension_core_functions_scalar_union.cpp + src/duckdb/ub_extension_core_functions_scalar_bit.cpp src/duckdb/ub_extension_core_functions_scalar_operators.cpp src/duckdb/ub_extension_core_functions_scalar_enum.cpp - src/duckdb/ub_extension_core_functions_scalar_bit.cpp - src/duckdb/ub_extension_core_functions_scalar_debug.cpp + src/duckdb/ub_extension_core_functions_scalar_map.cpp + src/duckdb/ub_extension_core_functions_scalar_random.cpp + src/duckdb/ub_extension_core_functions_scalar_math.cpp + src/duckdb/ub_extension_core_functions_scalar_union.cpp + src/duckdb/ub_extension_core_functions_scalar_generic.cpp src/duckdb/ub_extension_core_functions_scalar_struct.cpp - src/duckdb/extension/parquet/parquet_metadata.cpp - src/duckdb/extension/parquet/serialize_parquet.cpp - src/duckdb/extension/parquet/parquet_file_metadata_cache.cpp - src/duckdb/extension/parquet/column_writer.cpp - src/duckdb/extension/parquet/parquet_timestamp.cpp + src/duckdb/ub_extension_core_functions_scalar_list.cpp + src/duckdb/ub_extension_core_functions_scalar_array.cpp + src/duckdb/ub_extension_core_functions_scalar_debug.cpp + src/duckdb/ub_extension_core_functions_scalar_blob.cpp + src/duckdb/ub_extension_core_functions_scalar_date.cpp + src/duckdb/extension/parquet/parquet_writer.cpp + src/duckdb/extension/parquet/zstd_file_system.cpp src/duckdb/extension/parquet/parquet_crypto.cpp + src/duckdb/extension/parquet/parquet_reader.cpp + src/duckdb/extension/parquet/parquet_timestamp.cpp + src/duckdb/extension/parquet/parquet_float16.cpp src/duckdb/extension/parquet/parquet_statistics.cpp - src/duckdb/extension/parquet/zstd_file_system.cpp - src/duckdb/extension/parquet/parquet_writer.cpp + src/duckdb/extension/parquet/parquet_multi_file_info.cpp + src/duckdb/extension/parquet/column_reader.cpp src/duckdb/extension/parquet/geo_parquet.cpp src/duckdb/extension/parquet/parquet_extension.cpp - src/duckdb/extension/parquet/column_reader.cpp - src/duckdb/extension/parquet/parquet_multi_file_info.cpp - src/duckdb/extension/parquet/parquet_float16.cpp - src/duckdb/extension/parquet/parquet_reader.cpp + src/duckdb/extension/parquet/column_writer.cpp + src/duckdb/extension/parquet/parquet_file_metadata_cache.cpp + src/duckdb/extension/parquet/serialize_parquet.cpp + src/duckdb/extension/parquet/parquet_metadata.cpp + src/duckdb/ub_extension_parquet_decoder.cpp src/duckdb/ub_extension_parquet_reader.cpp src/duckdb/ub_extension_parquet_reader_variant.cpp - src/duckdb/ub_extension_parquet_decoder.cpp src/duckdb/ub_extension_parquet_writer.cpp src/duckdb/third_party/parquet/parquet_types.cpp src/duckdb/third_party/thrift/thrift/protocol/TProtocol.cpp @@ -427,32 +427,32 @@ set(DUCKDB_SRC_FILES src/duckdb/third_party/brotli/enc/metablock.cpp src/duckdb/third_party/brotli/enc/static_dict.cpp src/duckdb/third_party/brotli/enc/utf8_util.cpp - src/duckdb/extension/icu/./icu-datesub.cpp - src/duckdb/extension/icu/./icu-datefunc.cpp + src/duckdb/extension/icu/./icu_extension.cpp src/duckdb/extension/icu/./icu-strptime.cpp - src/duckdb/extension/icu/./icu-makedate.cpp src/duckdb/extension/icu/./icu-datepart.cpp - src/duckdb/extension/icu/./icu-table-range.cpp - src/duckdb/extension/icu/./icu-timezone.cpp - src/duckdb/extension/icu/./icu-list-range.cpp - src/duckdb/extension/icu/./icu-datetrunc.cpp + src/duckdb/extension/icu/./icu-makedate.cpp + src/duckdb/extension/icu/./icu-datefunc.cpp src/duckdb/extension/icu/./icu-current.cpp + src/duckdb/extension/icu/./icu-timezone.cpp + src/duckdb/extension/icu/./icu-table-range.cpp src/duckdb/extension/icu/./icu-dateadd.cpp - src/duckdb/extension/icu/./icu_extension.cpp src/duckdb/extension/icu/./icu-timebucket.cpp + src/duckdb/extension/icu/./icu-datesub.cpp + src/duckdb/extension/icu/./icu-datetrunc.cpp + src/duckdb/extension/icu/./icu-list-range.cpp src/duckdb/ub_extension_icu_third_party_icu_common.cpp src/duckdb/ub_extension_icu_third_party_icu_i18n.cpp src/duckdb/extension/icu/third_party/icu/stubdata/stubdata.cpp - src/duckdb/extension/json/json_multi_file_info.cpp - src/duckdb/extension/json/json_enums.cpp - src/duckdb/extension/json/serialize_json.cpp src/duckdb/extension/json/json_reader.cpp + src/duckdb/extension/json/json_functions.cpp src/duckdb/extension/json/json_extension.cpp src/duckdb/extension/json/json_scan.cpp - src/duckdb/extension/json/json_functions.cpp - src/duckdb/extension/json/json_serializer.cpp - src/duckdb/extension/json/json_deserializer.cpp + src/duckdb/extension/json/json_multi_file_info.cpp + src/duckdb/extension/json/json_enums.cpp + src/duckdb/extension/json/serialize_json.cpp src/duckdb/extension/json/json_common.cpp + src/duckdb/extension/json/json_deserializer.cpp + src/duckdb/extension/json/json_serializer.cpp src/duckdb/ub_extension_json_json_functions.cpp) set(JEMALLOC_SRC_FILES diff --git a/src/duckdb/src/function/table/version/pragma_version.cpp b/src/duckdb/src/function/table/version/pragma_version.cpp index fa3711eba..e3419c9db 100644 --- a/src/duckdb/src/function/table/version/pragma_version.cpp +++ b/src/duckdb/src/function/table/version/pragma_version.cpp @@ -1,5 +1,5 @@ #ifndef DUCKDB_PATCH_VERSION -#define DUCKDB_PATCH_VERSION "2-dev114" +#define DUCKDB_PATCH_VERSION "2-dev121" #endif #ifndef DUCKDB_MINOR_VERSION #define DUCKDB_MINOR_VERSION 4 @@ -8,10 +8,10 @@ #define DUCKDB_MAJOR_VERSION 1 #endif #ifndef DUCKDB_VERSION -#define DUCKDB_VERSION "v1.4.2-dev114" +#define DUCKDB_VERSION "v1.4.2-dev121" #endif #ifndef DUCKDB_SOURCE_ID -#define DUCKDB_SOURCE_ID "ff0e9d39e0" +#define DUCKDB_SOURCE_ID "9069f5363c" #endif #include "duckdb/function/table/system_functions.hpp" #include "duckdb/main/database.hpp" diff --git a/src/duckdb/src/include/duckdb/optimizer/filter_pullup.hpp b/src/duckdb/src/include/duckdb/optimizer/filter_pullup.hpp index a35fbaab9..b6cb1e704 100644 --- a/src/duckdb/src/include/duckdb/optimizer/filter_pullup.hpp +++ b/src/duckdb/src/include/duckdb/optimizer/filter_pullup.hpp @@ -30,7 +30,7 @@ class FilterPullup { // only pull up filters when there is a fork bool can_pullup = false; - // identifiy case the branch is a set operation (INTERSECT or EXCEPT) + // identify case the branch is a set operation (INTERSECT or EXCEPT) bool can_add_column = false; private: @@ -40,30 +40,26 @@ class FilterPullup { //! Pull up a LogicalFilter op unique_ptr PullupFilter(unique_ptr op); - //! Pull up filter in a LogicalProjection op unique_ptr PullupProjection(unique_ptr op); - //! Pull up filter in a LogicalCrossProduct op unique_ptr PullupCrossProduct(unique_ptr op); - + //! Pullup a filter in a LogicalJoin unique_ptr PullupJoin(unique_ptr op); - - // PPullup filter in a left join + //! Pullup filter in a left join unique_ptr PullupFromLeft(unique_ptr op); - - // Pullup filter in a inner join + //! Pullup filter in an inner join unique_ptr PullupInnerJoin(unique_ptr op); - - // Pullup filter in LogicalIntersect or LogicalExcept op + //! Pullup filter through a distinct + unique_ptr PullupDistinct(unique_ptr op); + //! Pullup filter in LogicalIntersect or LogicalExcept op unique_ptr PullupSetOperation(unique_ptr op); - + //! Pullup filter in both sides of a join unique_ptr PullupBothSide(unique_ptr op); - // Finish pull up at this operator + //! Finish pull up at this operator unique_ptr FinishPullup(unique_ptr op); - - // special treatment for SetOperations and projections + //! special treatment for SetOperations and projections void ProjectSetOperation(LogicalProjection &proj); }; // end FilterPullup diff --git a/src/duckdb/src/optimizer/filter_pullup.cpp b/src/duckdb/src/optimizer/filter_pullup.cpp index 219611387..f9ebb63c3 100644 --- a/src/duckdb/src/optimizer/filter_pullup.cpp +++ b/src/duckdb/src/optimizer/filter_pullup.cpp @@ -6,6 +6,7 @@ #include "duckdb/planner/operator/logical_comparison_join.hpp" #include "duckdb/planner/operator/logical_cross_product.hpp" #include "duckdb/planner/operator/logical_join.hpp" +#include "duckdb/planner/operator/logical_distinct.hpp" namespace duckdb { @@ -26,6 +27,7 @@ unique_ptr FilterPullup::Rewrite(unique_ptr op case LogicalOperatorType::LOGICAL_EXCEPT: return PullupSetOperation(std::move(op)); case LogicalOperatorType::LOGICAL_DISTINCT: + return PullupDistinct(std::move(op)); case LogicalOperatorType::LOGICAL_ORDER_BY: { // we can just pull directly through these operations without any rewriting op->children[0] = Rewrite(std::move(op->children[0])); @@ -115,6 +117,18 @@ unique_ptr FilterPullup::PullupCrossProduct(unique_ptr FilterPullup::PullupDistinct(unique_ptr op) { + const auto &distinct = op->Cast(); + if (distinct.distinct_type == DistinctType::DISTINCT) { + // Can pull up through a DISTINCT + op->children[0] = Rewrite(std::move(op->children[0])); + return op; + } + // Cannot pull up through a DISTINCT ON (see #19327) + D_ASSERT(distinct.distinct_type == DistinctType::DISTINCT_ON); + return FinishPullup(std::move(op)); +} + unique_ptr FilterPullup::GeneratePullupFilter(unique_ptr child, vector> &expressions) { unique_ptr filter = make_uniq(); diff --git a/src/duckdb/src/planner/expression_binder/having_binder.cpp b/src/duckdb/src/planner/expression_binder/having_binder.cpp index 902add5e2..48ee194ff 100644 --- a/src/duckdb/src/planner/expression_binder/having_binder.cpp +++ b/src/duckdb/src/planner/expression_binder/having_binder.cpp @@ -3,7 +3,6 @@ #include "duckdb/parser/expression/columnref_expression.hpp" #include "duckdb/parser/expression/window_expression.hpp" #include "duckdb/planner/binder.hpp" -#include "duckdb/planner/expression_binder/aggregate_binder.hpp" #include "duckdb/common/string_util.hpp" #include "duckdb/planner/query_node/bound_select_node.hpp" @@ -91,7 +90,7 @@ BindResult HavingBinder::BindColumnRef(unique_ptr &expr_ptr, i } BindResult HavingBinder::BindWindow(WindowExpression &expr, idx_t depth) { - return BindResult(BinderException::Unsupported(expr, "HAVING clause cannot contain window functions!")); + throw BinderException::Unsupported(expr, "HAVING clause cannot contain window functions!"); } } // namespace duckdb diff --git a/src/duckdb/third_party/parquet/parquet_types.cpp b/src/duckdb/third_party/parquet/parquet_types.cpp index 95cfbc3f7..91e221207 100644 --- a/src/duckdb/third_party/parquet/parquet_types.cpp +++ b/src/duckdb/third_party/parquet/parquet_types.cpp @@ -1,5 +1,5 @@ /** - * Autogenerated by Thrift Compiler (0.21.0) + * Autogenerated by Thrift Compiler (0.22.0) * * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING * @generated @@ -13,6 +13,14 @@ namespace duckdb_parquet { +template +static typename ENUM::type SafeEnumCast(const std::map &values_to_names, const int &ecast) { + if (values_to_names.find(ecast) == values_to_names.end()) { + throw duckdb_apache::thrift::protocol::TProtocolException(duckdb_apache::thrift::protocol::TProtocolException::INVALID_DATA); + } + return static_cast(ecast); +} + int _kTypeValues[] = { Type::BOOLEAN, Type::INT32, @@ -3446,7 +3454,7 @@ GeographyType::~GeographyType() noexcept { GeographyType::GeographyType() noexcept : crs(), - algorithm(static_cast(0)) { + algorithm(SafeEnumCast(_EdgeInterpolationAlgorithm_VALUES_TO_NAMES, 0)) { } void GeographyType::__set_crs(const std::string& val) { @@ -3498,7 +3506,7 @@ uint32_t GeographyType::read(::apache::thrift::protocol::TProtocol* iprot) { if (ftype == ::apache::thrift::protocol::T_I32) { int32_t ecast114; xfer += iprot->readI32(ecast114); - this->algorithm = static_cast(ecast114); + this->algorithm = SafeEnumCast(_EdgeInterpolationAlgorithm_VALUES_TO_NAMES, ecast114); this->__isset.algorithm = true; } else { xfer += iprot->skip(ftype); @@ -4067,12 +4075,12 @@ SchemaElement::~SchemaElement() noexcept { } SchemaElement::SchemaElement() noexcept - : type(static_cast(0)), + : type(SafeEnumCast(_Type_VALUES_TO_NAMES, 0)), type_length(0), - repetition_type(static_cast(0)), + repetition_type(SafeEnumCast(_FieldRepetitionType_VALUES_TO_NAMES, 0)), name(), num_children(0), - converted_type(static_cast(0)), + converted_type(SafeEnumCast(_ConvertedType_VALUES_TO_NAMES, 0)), scale(0), precision(0), field_id(0) { @@ -4159,7 +4167,7 @@ uint32_t SchemaElement::read(::apache::thrift::protocol::TProtocol* iprot) { if (ftype == ::apache::thrift::protocol::T_I32) { int32_t ecast123; xfer += iprot->readI32(ecast123); - this->type = static_cast(ecast123); + this->type = SafeEnumCast(_Type_VALUES_TO_NAMES, ecast123); this->__isset.type = true; } else { xfer += iprot->skip(ftype); @@ -4177,7 +4185,7 @@ uint32_t SchemaElement::read(::apache::thrift::protocol::TProtocol* iprot) { if (ftype == ::apache::thrift::protocol::T_I32) { int32_t ecast124; xfer += iprot->readI32(ecast124); - this->repetition_type = static_cast(ecast124); + this->repetition_type = SafeEnumCast(_FieldRepetitionType_VALUES_TO_NAMES, ecast124); this->__isset.repetition_type = true; } else { xfer += iprot->skip(ftype); @@ -4203,7 +4211,7 @@ uint32_t SchemaElement::read(::apache::thrift::protocol::TProtocol* iprot) { if (ftype == ::apache::thrift::protocol::T_I32) { int32_t ecast125; xfer += iprot->readI32(ecast125); - this->converted_type = static_cast(ecast125); + this->converted_type = SafeEnumCast(_ConvertedType_VALUES_TO_NAMES, ecast125); this->__isset.converted_type = true; } else { xfer += iprot->skip(ftype); @@ -4405,9 +4413,9 @@ DataPageHeader::~DataPageHeader() noexcept { DataPageHeader::DataPageHeader() noexcept : num_values(0), - encoding(static_cast(0)), - definition_level_encoding(static_cast(0)), - repetition_level_encoding(static_cast(0)) { + encoding(SafeEnumCast(_Encoding_VALUES_TO_NAMES, 0)), + definition_level_encoding(SafeEnumCast(_Encoding_VALUES_TO_NAMES, 0)), + repetition_level_encoding(SafeEnumCast(_Encoding_VALUES_TO_NAMES, 0)) { } void DataPageHeader::__set_num_values(const int32_t val) { @@ -4474,7 +4482,7 @@ uint32_t DataPageHeader::read(::apache::thrift::protocol::TProtocol* iprot) { if (ftype == ::apache::thrift::protocol::T_I32) { int32_t ecast130; xfer += iprot->readI32(ecast130); - this->encoding = static_cast(ecast130); + this->encoding = SafeEnumCast(_Encoding_VALUES_TO_NAMES, ecast130); isset_encoding = true; } else { xfer += iprot->skip(ftype); @@ -4484,7 +4492,7 @@ uint32_t DataPageHeader::read(::apache::thrift::protocol::TProtocol* iprot) { if (ftype == ::apache::thrift::protocol::T_I32) { int32_t ecast131; xfer += iprot->readI32(ecast131); - this->definition_level_encoding = static_cast(ecast131); + this->definition_level_encoding = SafeEnumCast(_Encoding_VALUES_TO_NAMES, ecast131); isset_definition_level_encoding = true; } else { xfer += iprot->skip(ftype); @@ -4494,7 +4502,7 @@ uint32_t DataPageHeader::read(::apache::thrift::protocol::TProtocol* iprot) { if (ftype == ::apache::thrift::protocol::T_I32) { int32_t ecast132; xfer += iprot->readI32(ecast132); - this->repetition_level_encoding = static_cast(ecast132); + this->repetition_level_encoding = SafeEnumCast(_Encoding_VALUES_TO_NAMES, ecast132); isset_repetition_level_encoding = true; } else { xfer += iprot->skip(ftype); @@ -4697,7 +4705,7 @@ DictionaryPageHeader::~DictionaryPageHeader() noexcept { DictionaryPageHeader::DictionaryPageHeader() noexcept : num_values(0), - encoding(static_cast(0)), + encoding(SafeEnumCast(_Encoding_VALUES_TO_NAMES, 0)), is_sorted(0) { } @@ -4755,7 +4763,7 @@ uint32_t DictionaryPageHeader::read(::apache::thrift::protocol::TProtocol* iprot if (ftype == ::apache::thrift::protocol::T_I32) { int32_t ecast141; xfer += iprot->readI32(ecast141); - this->encoding = static_cast(ecast141); + this->encoding = SafeEnumCast(_Encoding_VALUES_TO_NAMES, ecast141); isset_encoding = true; } else { xfer += iprot->skip(ftype); @@ -4859,7 +4867,7 @@ DataPageHeaderV2::DataPageHeaderV2() noexcept : num_values(0), num_nulls(0), num_rows(0), - encoding(static_cast(0)), + encoding(SafeEnumCast(_Encoding_VALUES_TO_NAMES, 0)), definition_levels_byte_length(0), repetition_levels_byte_length(0), is_compressed(true) { @@ -4960,7 +4968,7 @@ uint32_t DataPageHeaderV2::read(::apache::thrift::protocol::TProtocol* iprot) { if (ftype == ::apache::thrift::protocol::T_I32) { int32_t ecast146; xfer += iprot->readI32(ecast146); - this->encoding = static_cast(ecast146); + this->encoding = SafeEnumCast(_Encoding_VALUES_TO_NAMES, ecast146); isset_encoding = true; } else { xfer += iprot->skip(ftype); @@ -5867,7 +5875,7 @@ PageHeader::~PageHeader() noexcept { } PageHeader::PageHeader() noexcept - : type(static_cast(0)), + : type(SafeEnumCast(_PageType_VALUES_TO_NAMES, 0)), uncompressed_page_size(0), compressed_page_size(0), crc(0) { @@ -5944,7 +5952,7 @@ uint32_t PageHeader::read(::apache::thrift::protocol::TProtocol* iprot) { if (ftype == ::apache::thrift::protocol::T_I32) { int32_t ecast179; xfer += iprot->readI32(ecast179); - this->type = static_cast(ecast179); + this->type = SafeEnumCast(_PageType_VALUES_TO_NAMES, ecast179); isset_type = true; } else { xfer += iprot->skip(ftype); @@ -6435,8 +6443,8 @@ PageEncodingStats::~PageEncodingStats() noexcept { } PageEncodingStats::PageEncodingStats() noexcept - : page_type(static_cast(0)), - encoding(static_cast(0)), + : page_type(SafeEnumCast(_PageType_VALUES_TO_NAMES, 0)), + encoding(SafeEnumCast(_Encoding_VALUES_TO_NAMES, 0)), count(0) { } @@ -6486,7 +6494,7 @@ uint32_t PageEncodingStats::read(::apache::thrift::protocol::TProtocol* iprot) { if (ftype == ::apache::thrift::protocol::T_I32) { int32_t ecast192; xfer += iprot->readI32(ecast192); - this->page_type = static_cast(ecast192); + this->page_type = SafeEnumCast(_PageType_VALUES_TO_NAMES, ecast192); isset_page_type = true; } else { xfer += iprot->skip(ftype); @@ -6496,7 +6504,7 @@ uint32_t PageEncodingStats::read(::apache::thrift::protocol::TProtocol* iprot) { if (ftype == ::apache::thrift::protocol::T_I32) { int32_t ecast193; xfer += iprot->readI32(ecast193); - this->encoding = static_cast(ecast193); + this->encoding = SafeEnumCast(_Encoding_VALUES_TO_NAMES, ecast193); isset_encoding = true; } else { xfer += iprot->skip(ftype); @@ -6593,8 +6601,8 @@ ColumnMetaData::~ColumnMetaData() noexcept { } ColumnMetaData::ColumnMetaData() noexcept - : type(static_cast(0)), - codec(static_cast(0)), + : type(SafeEnumCast(_Type_VALUES_TO_NAMES, 0)), + codec(SafeEnumCast(_CompressionCodec_VALUES_TO_NAMES, 0)), num_values(0), total_uncompressed_size(0), total_compressed_size(0), @@ -6721,7 +6729,7 @@ uint32_t ColumnMetaData::read(::apache::thrift::protocol::TProtocol* iprot) { if (ftype == ::apache::thrift::protocol::T_I32) { int32_t ecast198; xfer += iprot->readI32(ecast198); - this->type = static_cast(ecast198); + this->type = SafeEnumCast(_Type_VALUES_TO_NAMES, ecast198); isset_type = true; } else { xfer += iprot->skip(ftype); @@ -6740,7 +6748,7 @@ uint32_t ColumnMetaData::read(::apache::thrift::protocol::TProtocol* iprot) { { int32_t ecast204; xfer += iprot->readI32(ecast204); - this->encodings[_i203] = static_cast(ecast204); + this->encodings[_i203] = SafeEnumCast(_Encoding_VALUES_TO_NAMES, ecast204); } xfer += iprot->readListEnd(); } @@ -6773,7 +6781,7 @@ uint32_t ColumnMetaData::read(::apache::thrift::protocol::TProtocol* iprot) { if (ftype == ::apache::thrift::protocol::T_I32) { int32_t ecast210; xfer += iprot->readI32(ecast210); - this->codec = static_cast(ecast210); + this->codec = SafeEnumCast(_CompressionCodec_VALUES_TO_NAMES, ecast210); isset_codec = true; } else { xfer += iprot->skip(ftype); @@ -8651,7 +8659,7 @@ ColumnIndex::~ColumnIndex() noexcept { } ColumnIndex::ColumnIndex() noexcept - : boundary_order(static_cast(0)) { + : boundary_order(SafeEnumCast(_BoundaryOrder_VALUES_TO_NAMES, 0)) { } void ColumnIndex::__set_null_pages(const duckdb::vector & val) { @@ -8780,7 +8788,7 @@ uint32_t ColumnIndex::read(::apache::thrift::protocol::TProtocol* iprot) { if (ftype == ::apache::thrift::protocol::T_I32) { int32_t ecast310; xfer += iprot->readI32(ecast310); - this->boundary_order = static_cast(ecast310); + this->boundary_order = SafeEnumCast(_BoundaryOrder_VALUES_TO_NAMES, ecast310); isset_boundary_order = true; } else { xfer += iprot->skip(ftype); diff --git a/src/duckdb/third_party/parquet/parquet_types.h b/src/duckdb/third_party/parquet/parquet_types.h index a872a3d6b..4bfee7446 100644 --- a/src/duckdb/third_party/parquet/parquet_types.h +++ b/src/duckdb/third_party/parquet/parquet_types.h @@ -1,5 +1,5 @@ /** - * Autogenerated by Thrift Compiler (0.21.0) + * Autogenerated by Thrift Compiler (0.22.0) * * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING * @generated diff --git a/src/duckdb/ub_extension_icu_third_party_icu_i18n.cpp b/src/duckdb/ub_extension_icu_third_party_icu_i18n.cpp index a3154a75d..fc4104f94 100644 --- a/src/duckdb/ub_extension_icu_third_party_icu_i18n.cpp +++ b/src/duckdb/ub_extension_icu_third_party_icu_i18n.cpp @@ -348,17 +348,17 @@ #include "extension/icu/third_party/icu/i18n/wintzimpl.cpp" -#include "extension/icu/third_party/icu/i18n/double-conversion-bignum.cpp" +#include "extension/icu/third_party/icu/i18n/double-conversion-fast-dtoa.cpp" -#include "extension/icu/third_party/icu/i18n/double-conversion-strtod.cpp" +#include "extension/icu/third_party/icu/i18n/double-conversion-string-to-double.cpp" -#include "extension/icu/third_party/icu/i18n/double-conversion-cached-powers.cpp" +#include "extension/icu/third_party/icu/i18n/double-conversion-double-to-string.cpp" -#include "extension/icu/third_party/icu/i18n/double-conversion-bignum-dtoa.cpp" +#include "extension/icu/third_party/icu/i18n/double-conversion-strtod.cpp" -#include "extension/icu/third_party/icu/i18n/double-conversion-string-to-double.cpp" +#include "extension/icu/third_party/icu/i18n/double-conversion-bignum.cpp" -#include "extension/icu/third_party/icu/i18n/double-conversion-fast-dtoa.cpp" +#include "extension/icu/third_party/icu/i18n/double-conversion-bignum-dtoa.cpp" -#include "extension/icu/third_party/icu/i18n/double-conversion-double-to-string.cpp" +#include "extension/icu/third_party/icu/i18n/double-conversion-cached-powers.cpp"