duckdb 0.8.1-dev65.0 → 0.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/binding.gyp +8 -8
- package/package.json +3 -1
- package/src/duckdb/extension/icu/icu-datepart.cpp +2 -2
- package/src/duckdb/extension/icu/icu-extension.cpp +1 -1
- package/src/duckdb/extension/icu/icu-makedate.cpp +5 -4
- package/src/duckdb/extension/icu/icu-strptime.cpp +1 -1
- package/src/duckdb/extension/icu/third_party/icu/i18n/nfsubs.cpp +0 -2
- package/src/duckdb/extension/json/buffered_json_reader.cpp +23 -14
- package/src/duckdb/extension/json/include/buffered_json_reader.hpp +6 -6
- package/src/duckdb/extension/json/include/json_common.hpp +13 -3
- package/src/duckdb/extension/json/include/json_executors.hpp +1 -1
- package/src/duckdb/extension/json/include/json_scan.hpp +5 -2
- package/src/duckdb/extension/json/json_functions/json_contains.cpp +5 -0
- package/src/duckdb/extension/json/json_functions/json_create.cpp +16 -16
- package/src/duckdb/extension/json/json_functions/json_merge_patch.cpp +3 -3
- package/src/duckdb/extension/json/json_functions/json_serialize_sql.cpp +2 -2
- package/src/duckdb/extension/json/json_functions/json_structure.cpp +5 -3
- package/src/duckdb/extension/json/json_functions/json_transform.cpp +12 -12
- package/src/duckdb/extension/json/json_functions/read_json.cpp +2 -1
- package/src/duckdb/extension/json/json_functions.cpp +6 -3
- package/src/duckdb/extension/json/json_scan.cpp +43 -27
- package/src/duckdb/extension/parquet/column_reader.cpp +57 -52
- package/src/duckdb/extension/parquet/column_writer.cpp +57 -45
- package/src/duckdb/extension/parquet/include/cast_column_reader.hpp +1 -1
- package/src/duckdb/extension/parquet/include/column_reader.hpp +5 -4
- package/src/duckdb/extension/parquet/include/column_writer.hpp +24 -0
- package/src/duckdb/extension/parquet/include/decode_utils.hpp +6 -0
- package/src/duckdb/extension/parquet/include/list_column_reader.hpp +1 -1
- package/src/duckdb/extension/parquet/include/parquet_dbp_decoder.hpp +4 -4
- package/src/duckdb/extension/parquet/include/parquet_rle_bp_decoder.hpp +4 -5
- package/src/duckdb/extension/parquet/include/resizable_buffer.hpp +4 -4
- package/src/duckdb/extension/parquet/include/row_number_column_reader.hpp +1 -1
- package/src/duckdb/extension/parquet/include/struct_column_reader.hpp +1 -1
- package/src/duckdb/extension/parquet/parquet-extension.cpp +27 -2
- package/src/duckdb/extension/parquet/parquet_metadata.cpp +1 -1
- package/src/duckdb/extension/parquet/parquet_reader.cpp +18 -18
- package/src/duckdb/extension/parquet/parquet_statistics.cpp +23 -26
- package/src/duckdb/extension/parquet/parquet_timestamp.cpp +2 -2
- package/src/duckdb/extension/parquet/parquet_writer.cpp +3 -3
- package/src/duckdb/extension/parquet/zstd_file_system.cpp +3 -3
- package/src/duckdb/src/catalog/catalog.cpp +5 -17
- package/src/duckdb/src/catalog/catalog_entry/duck_table_entry.cpp +7 -1
- package/src/duckdb/src/catalog/catalog_entry/table_catalog_entry.cpp +121 -0
- package/src/duckdb/src/catalog/catalog_search_path.cpp +49 -12
- package/src/duckdb/src/catalog/catalog_set.cpp +1 -1
- package/src/duckdb/src/catalog/default/default_types.cpp +9 -84
- package/src/duckdb/src/catalog/dependency_manager.cpp +2 -2
- package/src/duckdb/src/common/adbc/adbc.cpp +118 -12
- package/src/duckdb/src/common/adbc/driver_manager.cpp +0 -20
- package/src/duckdb/src/common/arrow/arrow_appender.cpp +12 -12
- package/src/duckdb/src/common/arrow/arrow_converter.cpp +11 -12
- package/src/duckdb/src/common/arrow/arrow_wrapper.cpp +11 -10
- package/src/duckdb/src/common/checksum.cpp +1 -1
- package/src/duckdb/src/common/compressed_file_system.cpp +6 -6
- package/src/duckdb/src/common/crypto/md5.cpp +9 -9
- package/src/duckdb/src/common/exception.cpp +4 -1
- package/src/duckdb/src/common/exception_format_value.cpp +24 -15
- package/src/duckdb/src/common/field_writer.cpp +1 -1
- package/src/duckdb/src/common/fsst.cpp +11 -6
- package/src/duckdb/src/common/gzip_file_system.cpp +8 -8
- package/src/duckdb/src/common/hive_partitioning.cpp +1 -1
- package/src/duckdb/src/common/local_file_system.cpp +11 -11
- package/src/duckdb/src/common/multi_file_reader.cpp +3 -0
- package/src/duckdb/src/common/operator/cast_operators.cpp +1 -1
- package/src/duckdb/src/common/pipe_file_system.cpp +2 -2
- package/src/duckdb/src/common/radix_partitioning.cpp +2 -2
- package/src/duckdb/src/common/random_engine.cpp +1 -1
- package/src/duckdb/src/common/row_operations/row_heap_gather.cpp +1 -1
- package/src/duckdb/src/common/row_operations/row_heap_scatter.cpp +5 -5
- package/src/duckdb/src/common/row_operations/row_match.cpp +1 -1
- package/src/duckdb/src/common/row_operations/row_radix_scatter.cpp +2 -2
- package/src/duckdb/src/common/row_operations/row_scatter.cpp +4 -4
- package/src/duckdb/src/common/serializer/binary_deserializer.cpp +1 -1
- package/src/duckdb/src/common/serializer/binary_serializer.cpp +3 -3
- package/src/duckdb/src/common/serializer.cpp +1 -1
- package/src/duckdb/src/common/sort/comparators.cpp +1 -1
- package/src/duckdb/src/common/sort/merge_sorter.cpp +7 -2
- package/src/duckdb/src/common/sort/partition_state.cpp +2 -2
- package/src/duckdb/src/common/types/bit.cpp +5 -5
- package/src/duckdb/src/common/types/blob.cpp +8 -8
- package/src/duckdb/src/common/types/column/column_data_allocator.cpp +4 -4
- package/src/duckdb/src/common/types/column/column_data_collection.cpp +3 -3
- package/src/duckdb/src/common/types/column/column_data_collection_segment.cpp +1 -1
- package/src/duckdb/src/common/types/column/partitioned_column_data.cpp +2 -2
- package/src/duckdb/src/common/types/hash.cpp +2 -2
- package/src/duckdb/src/common/types/hyperloglog.cpp +22 -21
- package/src/duckdb/src/common/types/list_segment.cpp +77 -49
- package/src/duckdb/src/common/types/row/partitioned_tuple_data.cpp +1 -1
- package/src/duckdb/src/common/types/row/row_data_collection_scanner.cpp +5 -4
- package/src/duckdb/src/common/types/row/tuple_data_allocator.cpp +5 -3
- package/src/duckdb/src/common/types/row/tuple_data_scatter_gather.cpp +61 -24
- package/src/duckdb/src/common/types/string_heap.cpp +1 -1
- package/src/duckdb/src/common/types/time.cpp +2 -8
- package/src/duckdb/src/common/types/timestamp.cpp +37 -1
- package/src/duckdb/src/common/types/value.cpp +3 -2
- package/src/duckdb/src/common/types/vector.cpp +98 -101
- package/src/duckdb/src/common/types/vector_cache.cpp +6 -6
- package/src/duckdb/src/common/types/vector_constants.cpp +2 -1
- package/src/duckdb/src/common/types.cpp +48 -33
- package/src/duckdb/src/common/vector_operations/boolean_operators.cpp +2 -2
- package/src/duckdb/src/common/vector_operations/is_distinct_from.cpp +12 -12
- package/src/duckdb/src/common/vector_operations/vector_hash.cpp +13 -11
- package/src/duckdb/src/common/vector_operations/vector_storage.cpp +1 -1
- package/src/duckdb/src/core_functions/aggregate/algebraic/avg.cpp +30 -33
- package/src/duckdb/src/core_functions/aggregate/algebraic/covar.cpp +0 -4
- package/src/duckdb/src/core_functions/aggregate/distributive/approx_count.cpp +33 -36
- package/src/duckdb/src/core_functions/aggregate/distributive/arg_min_max.cpp +53 -66
- package/src/duckdb/src/core_functions/aggregate/distributive/bitagg.cpp +48 -48
- package/src/duckdb/src/core_functions/aggregate/distributive/bitstring_agg.cpp +44 -44
- package/src/duckdb/src/core_functions/aggregate/distributive/bool.cpp +32 -32
- package/src/duckdb/src/core_functions/aggregate/distributive/entropy.cpp +34 -34
- package/src/duckdb/src/core_functions/aggregate/distributive/kurtosis.cpp +30 -31
- package/src/duckdb/src/core_functions/aggregate/distributive/minmax.cpp +91 -103
- package/src/duckdb/src/core_functions/aggregate/distributive/product.cpp +17 -17
- package/src/duckdb/src/core_functions/aggregate/distributive/skew.cpp +25 -27
- package/src/duckdb/src/core_functions/aggregate/distributive/string_agg.cpp +37 -38
- package/src/duckdb/src/core_functions/aggregate/distributive/sum.cpp +22 -22
- package/src/duckdb/src/core_functions/aggregate/holistic/approximate_quantile.cpp +49 -85
- package/src/duckdb/src/core_functions/aggregate/holistic/mode.cpp +49 -51
- package/src/duckdb/src/core_functions/aggregate/holistic/quantile.cpp +116 -134
- package/src/duckdb/src/core_functions/aggregate/holistic/reservoir_quantile.cpp +63 -100
- package/src/duckdb/src/core_functions/aggregate/nested/histogram.cpp +24 -26
- package/src/duckdb/src/core_functions/aggregate/nested/list.cpp +22 -23
- package/src/duckdb/src/core_functions/aggregate/regression/regr_avg.cpp +16 -18
- package/src/duckdb/src/core_functions/aggregate/regression/regr_intercept.cpp +22 -25
- package/src/duckdb/src/core_functions/aggregate/regression/regr_r2.cpp +19 -24
- package/src/duckdb/src/core_functions/aggregate/regression/regr_sxx_syy.cpp +18 -23
- package/src/duckdb/src/core_functions/aggregate/regression/regr_sxy.cpp +14 -18
- package/src/duckdb/src/core_functions/function_list.cpp +1 -0
- package/src/duckdb/src/core_functions/scalar/blob/base64.cpp +1 -1
- package/src/duckdb/src/core_functions/scalar/date/date_part.cpp +46 -46
- package/src/duckdb/src/core_functions/scalar/date/make_date.cpp +3 -0
- package/src/duckdb/src/core_functions/scalar/date/strftime.cpp +2 -2
- package/src/duckdb/src/core_functions/scalar/generic/current_setting.cpp +1 -1
- package/src/duckdb/src/core_functions/scalar/generic/least.cpp +2 -2
- package/src/duckdb/src/core_functions/scalar/generic/stats.cpp +1 -1
- package/src/duckdb/src/core_functions/scalar/generic/system_functions.cpp +14 -0
- package/src/duckdb/src/core_functions/scalar/list/array_slice.cpp +4 -4
- package/src/duckdb/src/core_functions/scalar/list/flatten.cpp +2 -4
- package/src/duckdb/src/core_functions/scalar/list/list_aggregates.cpp +26 -9
- package/src/duckdb/src/core_functions/scalar/list/list_lambdas.cpp +7 -9
- package/src/duckdb/src/core_functions/scalar/list/list_sort.cpp +1 -1
- package/src/duckdb/src/core_functions/scalar/map/cardinality.cpp +1 -1
- package/src/duckdb/src/core_functions/scalar/map/map.cpp +2 -2
- package/src/duckdb/src/core_functions/scalar/map/map_concat.cpp +4 -1
- package/src/duckdb/src/core_functions/scalar/map/map_extract.cpp +5 -9
- package/src/duckdb/src/core_functions/scalar/math/numeric.cpp +6 -6
- package/src/duckdb/src/core_functions/scalar/string/starts_with.cpp +3 -2
- package/src/duckdb/src/core_functions/scalar/string/string_split.cpp +4 -4
- package/src/duckdb/src/core_functions/scalar/string/trim.cpp +1 -1
- package/src/duckdb/src/core_functions/scalar/union/union_extract.cpp +1 -1
- package/src/duckdb/src/execution/adaptive_filter.cpp +1 -1
- package/src/duckdb/src/execution/expression_executor/execute_case.cpp +10 -10
- package/src/duckdb/src/execution/expression_executor/execute_conjunction.cpp +7 -7
- package/src/duckdb/src/execution/expression_executor.cpp +28 -28
- package/src/duckdb/src/execution/index/art/art.cpp +110 -39
- package/src/duckdb/src/execution/index/art/fixed_size_allocator.cpp +23 -5
- package/src/duckdb/src/execution/index/art/leaf.cpp +11 -11
- package/src/duckdb/src/execution/index/art/leaf_segment.cpp +10 -0
- package/src/duckdb/src/execution/index/art/node.cpp +48 -35
- package/src/duckdb/src/execution/index/art/node16.cpp +3 -0
- package/src/duckdb/src/execution/index/art/node256.cpp +1 -0
- package/src/duckdb/src/execution/index/art/node4.cpp +3 -0
- package/src/duckdb/src/execution/index/art/node48.cpp +2 -0
- package/src/duckdb/src/execution/index/art/prefix.cpp +2 -0
- package/src/duckdb/src/execution/join_hashtable.cpp +6 -4
- package/src/duckdb/src/execution/nested_loop_join/nested_loop_join_inner.cpp +4 -4
- package/src/duckdb/src/execution/nested_loop_join/nested_loop_join_mark.cpp +2 -2
- package/src/duckdb/src/execution/operator/aggregate/distinct_aggregate_data.cpp +1 -1
- package/src/duckdb/src/execution/operator/aggregate/physical_perfecthash_aggregate.cpp +1 -1
- package/src/duckdb/src/execution/operator/aggregate/physical_streaming_window.cpp +2 -2
- package/src/duckdb/src/execution/operator/aggregate/physical_ungrouped_aggregate.cpp +4 -4
- package/src/duckdb/src/execution/operator/aggregate/physical_window.cpp +26 -9
- package/src/duckdb/src/execution/operator/filter/physical_filter.cpp +1 -1
- package/src/duckdb/src/execution/operator/helper/physical_reset.cpp +5 -2
- package/src/duckdb/src/execution/operator/helper/physical_set.cpp +5 -1
- package/src/duckdb/src/execution/operator/join/outer_join_marker.cpp +1 -1
- package/src/duckdb/src/execution/operator/join/perfect_hash_join_executor.cpp +1 -1
- package/src/duckdb/src/execution/operator/join/physical_asof_join.cpp +2 -2
- package/src/duckdb/src/execution/operator/join/physical_blockwise_nl_join.cpp +4 -4
- package/src/duckdb/src/execution/operator/join/physical_iejoin.cpp +3 -6
- package/src/duckdb/src/execution/operator/join/physical_index_join.cpp +3 -3
- package/src/duckdb/src/execution/operator/join/physical_nested_loop_join.cpp +3 -3
- package/src/duckdb/src/execution/operator/join/physical_piecewise_merge_join.cpp +3 -3
- package/src/duckdb/src/execution/operator/order/physical_top_n.cpp +1 -1
- package/src/duckdb/src/execution/operator/persistent/buffered_csv_reader.cpp +2 -2
- package/src/duckdb/src/execution/operator/persistent/csv_file_handle.cpp +2 -2
- package/src/duckdb/src/execution/operator/persistent/physical_batch_insert.cpp +2 -3
- package/src/duckdb/src/execution/operator/persistent/physical_insert.cpp +1 -1
- package/src/duckdb/src/execution/operator/projection/physical_pivot.cpp +2 -2
- package/src/duckdb/src/execution/operator/projection/physical_projection.cpp +1 -1
- package/src/duckdb/src/execution/operator/projection/physical_tableinout_function.cpp +1 -0
- package/src/duckdb/src/execution/operator/projection/physical_unnest.cpp +10 -5
- package/src/duckdb/src/execution/operator/scan/physical_column_data_scan.cpp +2 -1
- package/src/duckdb/src/execution/operator/scan/physical_expression_scan.cpp +1 -1
- package/src/duckdb/src/execution/operator/scan/physical_positional_scan.cpp +2 -2
- package/src/duckdb/src/execution/operator/schema/physical_attach.cpp +0 -1
- package/src/duckdb/src/execution/operator/schema/physical_create_index.cpp +29 -3
- package/src/duckdb/src/execution/operator/schema/physical_create_type.cpp +1 -1
- package/src/duckdb/src/execution/perfect_aggregate_hashtable.cpp +1 -1
- package/src/duckdb/src/execution/physical_plan/plan_comparison_join.cpp +1 -1
- package/src/duckdb/src/execution/physical_plan/plan_create_table.cpp +1 -1
- package/src/duckdb/src/execution/physical_plan_generator.cpp +2 -2
- package/src/duckdb/src/execution/radix_partitioned_hashtable.cpp +1 -1
- package/src/duckdb/src/execution/reservoir_sample.cpp +20 -6
- package/src/duckdb/src/execution/window_segment_tree.cpp +8 -6
- package/src/duckdb/src/function/aggregate/distributive/count.cpp +159 -21
- package/src/duckdb/src/function/aggregate/distributive/first.cpp +68 -75
- package/src/duckdb/src/function/aggregate/sorted_aggregate_function.cpp +14 -14
- package/src/duckdb/src/function/cast/cast_function_set.cpp +1 -1
- package/src/duckdb/src/function/cast/decimal_cast.cpp +1 -1
- package/src/duckdb/src/function/cast/enum_casts.cpp +2 -2
- package/src/duckdb/src/function/cast/list_casts.cpp +2 -4
- package/src/duckdb/src/function/cast/string_cast.cpp +11 -11
- package/src/duckdb/src/function/cast/union_casts.cpp +2 -2
- package/src/duckdb/src/function/cast/vector_cast_helpers.cpp +3 -2
- package/src/duckdb/src/function/pragma/pragma_queries.cpp +33 -23
- package/src/duckdb/src/function/scalar/generic/constant_or_null.cpp +1 -1
- package/src/duckdb/src/function/scalar/list/list_concat.cpp +2 -2
- package/src/duckdb/src/function/scalar/list/list_extract.cpp +4 -4
- package/src/duckdb/src/function/scalar/operators/arithmetic.cpp +3 -4
- package/src/duckdb/src/function/scalar/string/concat.cpp +8 -7
- package/src/duckdb/src/function/scalar/string/contains.cpp +4 -4
- package/src/duckdb/src/function/scalar/string/like.cpp +5 -5
- package/src/duckdb/src/function/scalar/string/regexp/regexp_extract_all.cpp +4 -4
- package/src/duckdb/src/function/scalar/string/regexp/regexp_util.cpp +6 -2
- package/src/duckdb/src/function/scalar/string/regexp.cpp +3 -3
- package/src/duckdb/src/function/scalar/string/strip_accents.cpp +1 -1
- package/src/duckdb/src/function/scalar/struct/struct_extract.cpp +1 -1
- package/src/duckdb/src/function/scalar/system/aggregate_export.cpp +27 -25
- package/src/duckdb/src/function/scalar_function.cpp +3 -3
- package/src/duckdb/src/function/table/arrow.cpp +6 -6
- package/src/duckdb/src/function/table/arrow_conversion.cpp +67 -61
- package/src/duckdb/src/function/table/checkpoint.cpp +4 -1
- package/src/duckdb/src/function/table/copy_csv.cpp +11 -7
- package/src/duckdb/src/function/table/glob.cpp +1 -1
- package/src/duckdb/src/function/table/pragma_last_profiling_output.cpp +1 -1
- package/src/duckdb/src/function/table/range.cpp +4 -4
- package/src/duckdb/src/function/table/read_csv.cpp +19 -21
- package/src/duckdb/src/function/table/repeat.cpp +5 -2
- package/src/duckdb/src/function/table/repeat_row.cpp +10 -3
- package/src/duckdb/src/function/table/system/duckdb_functions.cpp +1 -1
- package/src/duckdb/src/function/table/system/pragma_storage_info.cpp +4 -4
- package/src/duckdb/src/function/table/system/test_vector_types.cpp +82 -26
- package/src/duckdb/src/function/table/table_scan.cpp +4 -4
- package/src/duckdb/src/function/table/unnest.cpp +1 -1
- package/src/duckdb/src/function/table/version/pragma_version.cpp +3 -3
- package/src/duckdb/src/include/duckdb/catalog/catalog.hpp +2 -5
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/duck_table_entry.hpp +2 -0
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/table_catalog_entry.hpp +11 -1
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry.hpp +2 -2
- package/src/duckdb/src/include/duckdb/catalog/catalog_search_path.hpp +8 -2
- package/src/duckdb/src/include/duckdb/catalog/default/builtin_types/types.hpp +97 -0
- package/src/duckdb/src/include/duckdb/common/allocator.hpp +15 -4
- package/src/duckdb/src/include/duckdb/common/arrow/arrow_appender.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/arrow/arrow_buffer.hpp +7 -2
- package/src/duckdb/src/include/duckdb/common/arrow/arrow_converter.hpp +2 -3
- package/src/duckdb/src/include/duckdb/common/arrow/arrow_options.hpp +8 -1
- package/src/duckdb/src/include/duckdb/common/arrow/result_arrow_wrapper.hpp +0 -1
- package/src/duckdb/src/include/duckdb/common/bit_utils.hpp +16 -22
- package/src/duckdb/src/include/duckdb/common/crypto/md5.hpp +2 -2
- package/src/duckdb/src/include/duckdb/common/exception.hpp +5 -2
- package/src/duckdb/src/include/duckdb/common/field_writer.hpp +3 -3
- package/src/duckdb/src/include/duckdb/common/file_system.hpp +11 -0
- package/src/duckdb/src/include/duckdb/common/fsst.hpp +2 -3
- package/src/duckdb/src/include/duckdb/common/radix.hpp +3 -3
- package/src/duckdb/src/include/duckdb/common/serializer/binary_deserializer.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/serializer/binary_serializer.hpp +4 -1
- package/src/duckdb/src/include/duckdb/common/serializer.hpp +4 -4
- package/src/duckdb/src/include/duckdb/common/typedefs.hpp +30 -0
- package/src/duckdb/src/include/duckdb/common/types/column/partitioned_column_data.hpp +12 -0
- package/src/duckdb/src/include/duckdb/common/types/hyperloglog.hpp +6 -2
- package/src/duckdb/src/include/duckdb/common/types/null_value.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/types/row/partitioned_tuple_data.hpp +12 -0
- package/src/duckdb/src/include/duckdb/common/types/string_type.hpp +10 -10
- package/src/duckdb/src/include/duckdb/common/types/time.hpp +2 -0
- package/src/duckdb/src/include/duckdb/common/types/timestamp.hpp +4 -14
- package/src/duckdb/src/include/duckdb/common/types/value.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/types/vector.hpp +9 -0
- package/src/duckdb/src/include/duckdb/common/types/vector_buffer.hpp +18 -6
- package/src/duckdb/src/include/duckdb/common/vector_operations/aggregate_executor.hpp +112 -76
- package/src/duckdb/src/include/duckdb/common/vector_operations/binary_executor.hpp +16 -15
- package/src/duckdb/src/include/duckdb/common/vector_operations/generic_executor.hpp +11 -11
- package/src/duckdb/src/include/duckdb/common/vector_operations/ternary_executor.hpp +23 -19
- package/src/duckdb/src/include/duckdb/common/vector_operations/unary_executor.hpp +3 -3
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/algebraic/corr.hpp +20 -24
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/algebraic/covar.hpp +36 -39
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/algebraic/stddev.hpp +57 -53
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/regression/regr_count.hpp +8 -9
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/regression/regr_slope.hpp +16 -18
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/sum_helpers.hpp +7 -8
- package/src/duckdb/src/include/duckdb/core_functions/scalar/generic_functions.hpp +9 -0
- package/src/duckdb/src/include/duckdb/core_functions/scalar/map_functions.hpp +2 -6
- package/src/duckdb/src/include/duckdb/core_functions/scalar/string_functions.hpp +16 -36
- package/src/duckdb/src/include/duckdb/execution/expression_executor_state.hpp +14 -2
- package/src/duckdb/src/include/duckdb/execution/index/art/art.hpp +13 -7
- package/src/duckdb/src/include/duckdb/execution/index/art/fixed_size_allocator.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/index/art/leaf.hpp +1 -1
- package/src/duckdb/src/include/duckdb/execution/index/art/leaf_segment.hpp +2 -0
- package/src/duckdb/src/include/duckdb/execution/index/art/node.hpp +13 -3
- package/src/duckdb/src/include/duckdb/execution/index/art/node48.hpp +1 -0
- package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_result_collector.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/operator/persistent/csv_buffer.hpp +1 -1
- package/src/duckdb/src/include/duckdb/execution/physical_operator.hpp +5 -2
- package/src/duckdb/src/include/duckdb/execution/physical_operator_states.hpp +12 -12
- package/src/duckdb/src/include/duckdb/function/aggregate_function.hpp +9 -30
- package/src/duckdb/src/include/duckdb/function/aggregate_state.hpp +95 -0
- package/src/duckdb/src/include/duckdb/function/cast/default_casts.hpp +13 -2
- package/src/duckdb/src/include/duckdb/function/cast/vector_cast_helpers.hpp +4 -4
- package/src/duckdb/src/include/duckdb/function/compression_function.hpp +44 -0
- package/src/duckdb/src/include/duckdb/function/copy_function.hpp +6 -6
- package/src/duckdb/src/include/duckdb/function/function.hpp +3 -3
- package/src/duckdb/src/include/duckdb/function/function_serialization.hpp +4 -2
- package/src/duckdb/src/include/duckdb/function/macro_function.hpp +2 -2
- package/src/duckdb/src/include/duckdb/function/scalar/list/contains_or_position.hpp +3 -3
- package/src/duckdb/src/include/duckdb/function/scalar/nested_functions.hpp +1 -1
- package/src/duckdb/src/include/duckdb/function/scalar_function.hpp +4 -3
- package/src/duckdb/src/include/duckdb/function/table_function.hpp +9 -8
- package/src/duckdb/src/include/duckdb/main/attached_database.hpp +4 -1
- package/src/duckdb/src/include/duckdb/main/capi/capi_internal.hpp +3 -1
- package/src/duckdb/src/include/duckdb/main/capi/cast/utils.hpp +1 -1
- package/src/duckdb/src/include/duckdb/main/config.hpp +5 -0
- package/src/duckdb/src/include/duckdb/main/database_manager.hpp +1 -0
- package/src/duckdb/src/include/duckdb/main/extension_entries.hpp +142 -136
- package/src/duckdb/src/include/duckdb/main/materialized_query_result.hpp +3 -0
- package/src/duckdb/src/include/duckdb/main/pending_query_result.hpp +3 -0
- package/src/duckdb/src/include/duckdb/main/query_result.hpp +23 -0
- package/src/duckdb/src/include/duckdb/main/relation.hpp +12 -0
- package/src/duckdb/src/include/duckdb/main/settings.hpp +19 -0
- package/src/duckdb/src/include/duckdb/main/stream_query_result.hpp +3 -0
- package/src/duckdb/src/include/duckdb/optimizer/join_order/cardinality_estimator.hpp +2 -2
- package/src/duckdb/src/include/duckdb/optimizer/unnest_rewriter.hpp +4 -0
- package/src/duckdb/src/include/duckdb/parallel/meta_pipeline.hpp +12 -3
- package/src/duckdb/src/include/duckdb/parser/base_expression.hpp +6 -12
- package/src/duckdb/src/include/duckdb/parser/constraint.hpp +2 -2
- package/src/duckdb/src/include/duckdb/parser/expression/between_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/bound_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/case_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/cast_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/collate_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/columnref_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/comparison_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/conjunction_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/constant_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/function_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/lambda_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/operator_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/parameter_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/positional_reference_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/star_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/subquery_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/window_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression_map.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/parsed_data/parse_info.hpp +2 -2
- package/src/duckdb/src/include/duckdb/parser/parsed_expression.hpp +5 -1
- package/src/duckdb/src/include/duckdb/parser/parser.hpp +2 -0
- package/src/duckdb/src/include/duckdb/parser/query_node.hpp +2 -2
- package/src/duckdb/src/include/duckdb/parser/result_modifier.hpp +36 -5
- package/src/duckdb/src/include/duckdb/parser/sql_statement.hpp +7 -4
- package/src/duckdb/src/include/duckdb/parser/statement/select_statement.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/tableref/basetableref.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/tableref/emptytableref.hpp +2 -2
- package/src/duckdb/src/include/duckdb/parser/tableref/expressionlistref.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/tableref/joinref.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/tableref/pivotref.hpp +3 -3
- package/src/duckdb/src/include/duckdb/parser/tableref/subqueryref.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/tableref/table_function_ref.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/tableref.hpp +4 -3
- package/src/duckdb/src/include/duckdb/parser/transformer.hpp +106 -92
- package/src/duckdb/src/include/duckdb/planner/bind_context.hpp +2 -2
- package/src/duckdb/src/include/duckdb/planner/bound_constraint.hpp +2 -2
- package/src/duckdb/src/include/duckdb/planner/bound_query_node.hpp +2 -2
- package/src/duckdb/src/include/duckdb/planner/bound_result_modifier.hpp +37 -1
- package/src/duckdb/src/include/duckdb/planner/bound_tableref.hpp +2 -2
- package/src/duckdb/src/include/duckdb/planner/expression/bound_aggregate_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_between_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_case_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_cast_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_columnref_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_comparison_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_conjunction_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_constant_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_function_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_lambda_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_lambdaref_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_operator_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_parameter_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_reference_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_subquery_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_unnest_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_window_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression.hpp +5 -7
- package/src/duckdb/src/include/duckdb/planner/expression_binder.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/filter/conjunction_filter.hpp +6 -0
- package/src/duckdb/src/include/duckdb/planner/filter/constant_filter.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/filter/null_filter.hpp +6 -0
- package/src/duckdb/src/include/duckdb/planner/logical_operator.hpp +7 -2
- package/src/duckdb/src/include/duckdb/planner/operator/logical_copy_to_file.hpp +6 -2
- package/src/duckdb/src/include/duckdb/planner/operator/logical_execute.hpp +4 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_explain.hpp +5 -1
- package/src/duckdb/src/include/duckdb/planner/operator/logical_get.hpp +5 -1
- package/src/duckdb/src/include/duckdb/planner/operator/logical_pivot.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_pragma.hpp +6 -2
- package/src/duckdb/src/include/duckdb/planner/operator/logical_prepare.hpp +4 -0
- package/src/duckdb/src/include/duckdb/planner/table_binding.hpp +26 -0
- package/src/duckdb/src/include/duckdb/planner/table_filter.hpp +17 -0
- package/src/duckdb/src/include/duckdb/planner/tableref/bound_pivotref.hpp +3 -0
- package/src/duckdb/src/include/duckdb/storage/compression/chimp/algorithm/byte_reader.hpp +4 -0
- package/src/duckdb/src/include/duckdb/storage/compression/chimp/chimp_analyze.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/compression/chimp/chimp_compress.hpp +2 -2
- package/src/duckdb/src/include/duckdb/storage/compression/patas/patas_analyze.hpp +2 -2
- package/src/duckdb/src/include/duckdb/storage/compression/patas/patas_compress.hpp +2 -2
- package/src/duckdb/src/include/duckdb/storage/data_table.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/in_memory_block_manager.hpp +13 -13
- package/src/duckdb/src/include/duckdb/storage/index.hpp +6 -4
- package/src/duckdb/src/include/duckdb/storage/partial_block_manager.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/storage_extension.hpp +0 -6
- package/src/duckdb/src/include/duckdb/storage/storage_manager.hpp +12 -0
- package/src/duckdb/src/include/duckdb/storage/string_uncompressed.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/table/chunk_info.hpp +25 -2
- package/src/duckdb/src/include/duckdb/storage/table/column_checkpoint_state.hpp +12 -0
- package/src/duckdb/src/include/duckdb/storage/table/column_data.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/table/list_column_data.hpp +2 -1
- package/src/duckdb/src/include/duckdb/storage/table/row_group.hpp +2 -2
- package/src/duckdb/src/include/duckdb/storage/table/row_group_collection.hpp +2 -1
- package/src/duckdb/src/include/duckdb/storage/table/scan_state.hpp +22 -0
- package/src/duckdb/src/include/duckdb/storage/table/standard_column_data.hpp +2 -1
- package/src/duckdb/src/include/duckdb/storage/table/struct_column_data.hpp +2 -1
- package/src/duckdb/src/include/duckdb/storage/table_storage_info.hpp +0 -2
- package/src/duckdb/src/include/duckdb/transaction/duck_transaction_manager.hpp +2 -2
- package/src/duckdb/src/include/duckdb/transaction/transaction.hpp +2 -2
- package/src/duckdb/src/main/attached_database.cpp +8 -0
- package/src/duckdb/src/main/capi/appender-c.cpp +5 -5
- package/src/duckdb/src/main/capi/arrow-c.cpp +13 -13
- package/src/duckdb/src/main/capi/cast/from_decimal-c.cpp +1 -1
- package/src/duckdb/src/main/capi/cast/utils-c.cpp +1 -1
- package/src/duckdb/src/main/capi/config-c.cpp +3 -6
- package/src/duckdb/src/main/capi/data_chunk-c.cpp +17 -17
- package/src/duckdb/src/main/capi/duckdb-c.cpp +4 -4
- package/src/duckdb/src/main/capi/duckdb_value-c.cpp +4 -4
- package/src/duckdb/src/main/capi/logical_types-c.cpp +22 -21
- package/src/duckdb/src/main/capi/pending-c.cpp +6 -6
- package/src/duckdb/src/main/capi/prepared-c.cpp +10 -10
- package/src/duckdb/src/main/capi/replacement_scan-c.cpp +6 -6
- package/src/duckdb/src/main/capi/result-c.cpp +23 -23
- package/src/duckdb/src/main/capi/table_function-c.cpp +1 -1
- package/src/duckdb/src/main/client_context.cpp +7 -6
- package/src/duckdb/src/main/config.cpp +2 -0
- package/src/duckdb/src/main/database.cpp +1 -0
- package/src/duckdb/src/main/database_manager.cpp +22 -1
- package/src/duckdb/src/main/error_manager.cpp +1 -1
- package/src/duckdb/src/main/extension/extension_load.cpp +1 -1
- package/src/duckdb/src/main/query_result.cpp +6 -2
- package/src/duckdb/src/main/relation/create_table_relation.cpp +1 -1
- package/src/duckdb/src/main/relation/create_view_relation.cpp +1 -1
- package/src/duckdb/src/main/relation/delete_relation.cpp +1 -1
- package/src/duckdb/src/main/relation/explain_relation.cpp +1 -1
- package/src/duckdb/src/main/relation/insert_relation.cpp +1 -1
- package/src/duckdb/src/main/relation/update_relation.cpp +1 -1
- package/src/duckdb/src/main/relation/write_csv_relation.cpp +1 -1
- package/src/duckdb/src/main/relation/write_parquet_relation.cpp +1 -1
- package/src/duckdb/src/main/relation.cpp +1 -1
- package/src/duckdb/src/main/settings/settings.cpp +41 -6
- package/src/duckdb/src/optimizer/deliminator.cpp +12 -12
- package/src/duckdb/src/optimizer/filter_combiner.cpp +3 -3
- package/src/duckdb/src/optimizer/join_order/cardinality_estimator.cpp +10 -10
- package/src/duckdb/src/optimizer/matcher/expression_matcher.cpp +1 -1
- package/src/duckdb/src/optimizer/pullup/pullup_projection.cpp +2 -2
- package/src/duckdb/src/optimizer/regex_range_filter.cpp +2 -4
- package/src/duckdb/src/optimizer/rule/distributivity.cpp +2 -2
- package/src/duckdb/src/optimizer/statistics/operator/propagate_filter.cpp +6 -6
- package/src/duckdb/src/optimizer/statistics/operator/propagate_get.cpp +2 -2
- package/src/duckdb/src/optimizer/unnest_rewriter.cpp +27 -16
- package/src/duckdb/src/parallel/executor.cpp +39 -15
- package/src/duckdb/src/parallel/meta_pipeline.cpp +17 -3
- package/src/duckdb/src/parser/base_expression.cpp +2 -5
- package/src/duckdb/src/parser/column_definition.cpp +5 -8
- package/src/duckdb/src/parser/expression/between_expression.cpp +4 -4
- package/src/duckdb/src/parser/expression/case_expression.cpp +6 -6
- package/src/duckdb/src/parser/expression/cast_expression.cpp +4 -4
- package/src/duckdb/src/parser/expression/collate_expression.cpp +3 -3
- package/src/duckdb/src/parser/expression/columnref_expression.cpp +4 -4
- package/src/duckdb/src/parser/expression/comparison_expression.cpp +3 -3
- package/src/duckdb/src/parser/expression/conjunction_expression.cpp +2 -2
- package/src/duckdb/src/parser/expression/constant_expression.cpp +2 -2
- package/src/duckdb/src/parser/expression/function_expression.cpp +10 -14
- package/src/duckdb/src/parser/expression/lambda_expression.cpp +2 -2
- package/src/duckdb/src/parser/expression/operator_expression.cpp +4 -4
- package/src/duckdb/src/parser/expression/parameter_expression.cpp +2 -2
- package/src/duckdb/src/parser/expression/positional_reference_expression.cpp +3 -3
- package/src/duckdb/src/parser/expression/star_expression.cpp +9 -9
- package/src/duckdb/src/parser/expression/subquery_expression.cpp +5 -5
- package/src/duckdb/src/parser/expression/window_expression.cpp +13 -24
- package/src/duckdb/src/parser/parsed_data/create_info.cpp +0 -3
- package/src/duckdb/src/parser/parsed_expression.cpp +34 -18
- package/src/duckdb/src/parser/parsed_expression_iterator.cpp +4 -4
- package/src/duckdb/src/parser/parser.cpp +98 -38
- package/src/duckdb/src/parser/query_node/select_node.cpp +6 -13
- package/src/duckdb/src/parser/query_node.cpp +7 -6
- package/src/duckdb/src/parser/result_modifier.cpp +25 -18
- package/src/duckdb/src/parser/statement/select_statement.cpp +3 -3
- package/src/duckdb/src/parser/tableref/basetableref.cpp +4 -4
- package/src/duckdb/src/parser/tableref/emptytableref.cpp +1 -1
- package/src/duckdb/src/parser/tableref/expressionlistref.cpp +5 -5
- package/src/duckdb/src/parser/tableref/joinref.cpp +6 -6
- package/src/duckdb/src/parser/tableref/pivotref.cpp +10 -15
- package/src/duckdb/src/parser/tableref/subqueryref.cpp +3 -3
- package/src/duckdb/src/parser/tableref/table_function.cpp +3 -3
- package/src/duckdb/src/parser/tableref.cpp +12 -3
- package/src/duckdb/src/parser/transform/expression/transform_array_access.cpp +7 -7
- package/src/duckdb/src/parser/transform/expression/transform_bool_expr.cpp +4 -4
- package/src/duckdb/src/parser/transform/expression/transform_boolean_test.cpp +4 -4
- package/src/duckdb/src/parser/transform/expression/transform_case.cpp +8 -10
- package/src/duckdb/src/parser/transform/expression/transform_cast.cpp +7 -9
- package/src/duckdb/src/parser/transform/expression/transform_coalesce.cpp +3 -5
- package/src/duckdb/src/parser/transform/expression/transform_columnref.cpp +22 -22
- package/src/duckdb/src/parser/transform/expression/transform_constant.cpp +2 -2
- package/src/duckdb/src/parser/transform/expression/transform_expression.cpp +42 -44
- package/src/duckdb/src/parser/transform/expression/transform_function.cpp +70 -75
- package/src/duckdb/src/parser/transform/expression/transform_grouping_function.cpp +4 -4
- package/src/duckdb/src/parser/transform/expression/transform_interval.cpp +7 -7
- package/src/duckdb/src/parser/transform/expression/transform_is_null.cpp +4 -5
- package/src/duckdb/src/parser/transform/expression/transform_lambda.cpp +5 -6
- package/src/duckdb/src/parser/transform/expression/transform_operator.cpp +31 -29
- package/src/duckdb/src/parser/transform/expression/transform_param_ref.cpp +13 -14
- package/src/duckdb/src/parser/transform/expression/transform_positional_reference.cpp +4 -4
- package/src/duckdb/src/parser/transform/expression/transform_subquery.cpp +9 -10
- package/src/duckdb/src/parser/transform/helpers/nodetype_to_string.cpp +0 -2
- package/src/duckdb/src/parser/transform/helpers/transform_cte.cpp +28 -32
- package/src/duckdb/src/parser/transform/helpers/transform_groupby.cpp +18 -18
- package/src/duckdb/src/parser/transform/helpers/transform_sample.cpp +3 -3
- package/src/duckdb/src/parser/transform/helpers/transform_typename.cpp +27 -26
- package/src/duckdb/src/parser/transform/statement/transform_alter_sequence.cpp +11 -14
- package/src/duckdb/src/parser/transform/statement/transform_alter_table.cpp +14 -16
- package/src/duckdb/src/parser/transform/statement/transform_attach.cpp +8 -9
- package/src/duckdb/src/parser/transform/statement/transform_call.cpp +2 -5
- package/src/duckdb/src/parser/transform/statement/transform_checkpoint.cpp +4 -6
- package/src/duckdb/src/parser/transform/statement/transform_copy.cpp +22 -23
- package/src/duckdb/src/parser/transform/statement/transform_create_function.cpp +14 -18
- package/src/duckdb/src/parser/transform/statement/transform_create_index.cpp +13 -15
- package/src/duckdb/src/parser/transform/statement/transform_create_schema.cpp +8 -10
- package/src/duckdb/src/parser/transform/statement/transform_create_sequence.cpp +8 -10
- package/src/duckdb/src/parser/transform/statement/transform_create_table.cpp +26 -28
- package/src/duckdb/src/parser/transform/statement/transform_create_table_as.cpp +8 -10
- package/src/duckdb/src/parser/transform/statement/transform_create_type.cpp +12 -15
- package/src/duckdb/src/parser/transform/statement/transform_create_view.cpp +13 -18
- package/src/duckdb/src/parser/transform/statement/transform_delete.cpp +11 -13
- package/src/duckdb/src/parser/transform/statement/transform_detach.cpp +3 -4
- package/src/duckdb/src/parser/transform/statement/transform_drop.cpp +20 -25
- package/src/duckdb/src/parser/transform/statement/transform_explain.cpp +5 -7
- package/src/duckdb/src/parser/transform/statement/transform_export.cpp +5 -6
- package/src/duckdb/src/parser/transform/statement/transform_import.cpp +2 -3
- package/src/duckdb/src/parser/transform/statement/transform_insert.cpp +21 -24
- package/src/duckdb/src/parser/transform/statement/transform_load.cpp +4 -5
- package/src/duckdb/src/parser/transform/statement/transform_pivot_stmt.cpp +7 -7
- package/src/duckdb/src/parser/transform/statement/transform_pragma.cpp +7 -9
- package/src/duckdb/src/parser/transform/statement/transform_prepare.cpp +11 -19
- package/src/duckdb/src/parser/transform/statement/transform_rename.cpp +12 -14
- package/src/duckdb/src/parser/transform/statement/transform_select.cpp +12 -9
- package/src/duckdb/src/parser/transform/statement/transform_select_node.cpp +34 -34
- package/src/duckdb/src/parser/transform/statement/transform_set.cpp +18 -19
- package/src/duckdb/src/parser/transform/statement/transform_show.cpp +5 -7
- package/src/duckdb/src/parser/transform/statement/transform_show_select.cpp +4 -5
- package/src/duckdb/src/parser/transform/statement/transform_transaction.cpp +3 -5
- package/src/duckdb/src/parser/transform/statement/transform_update.cpp +10 -13
- package/src/duckdb/src/parser/transform/statement/transform_upsert.cpp +4 -4
- package/src/duckdb/src/parser/transform/statement/transform_use.cpp +2 -3
- package/src/duckdb/src/parser/transform/statement/transform_vacuum.cpp +6 -10
- package/src/duckdb/src/parser/transform/tableref/transform_base_tableref.cpp +18 -18
- package/src/duckdb/src/parser/transform/tableref/transform_from.cpp +5 -5
- package/src/duckdb/src/parser/transform/tableref/transform_join.cpp +11 -11
- package/src/duckdb/src/parser/transform/tableref/transform_pivot.cpp +30 -27
- package/src/duckdb/src/parser/transform/tableref/transform_subquery.cpp +5 -5
- package/src/duckdb/src/parser/transform/tableref/transform_table_function.cpp +13 -12
- package/src/duckdb/src/parser/transform/tableref/transform_tableref.cpp +8 -8
- package/src/duckdb/src/parser/transformer.cpp +45 -47
- package/src/duckdb/src/planner/bind_context.cpp +9 -10
- package/src/duckdb/src/planner/binder/expression/bind_function_expression.cpp +1 -3
- package/src/duckdb/src/planner/binder/expression/bind_lambda.cpp +1 -1
- package/src/duckdb/src/planner/binder/expression/bind_positional_reference_expression.cpp +8 -3
- package/src/duckdb/src/planner/binder/expression/bind_star_expression.cpp +1 -1
- package/src/duckdb/src/planner/binder/expression/bind_subquery_expression.cpp +6 -3
- package/src/duckdb/src/planner/binder/query_node/bind_select_node.cpp +39 -23
- package/src/duckdb/src/planner/binder/query_node/plan_query_node.cpp +4 -4
- package/src/duckdb/src/planner/binder/statement/bind_create.cpp +1 -28
- package/src/duckdb/src/planner/binder/statement/bind_create_table.cpp +18 -1
- package/src/duckdb/src/planner/binder/statement/bind_drop.cpp +0 -25
- package/src/duckdb/src/planner/binder/statement/bind_insert.cpp +2 -2
- package/src/duckdb/src/planner/binder/statement/bind_update.cpp +2 -114
- package/src/duckdb/src/planner/binder/tableref/bind_pivot.cpp +7 -2
- package/src/duckdb/src/planner/binder/tableref/bind_table_function.cpp +7 -2
- package/src/duckdb/src/planner/binder.cpp +1 -1
- package/src/duckdb/src/planner/bound_result_modifier.cpp +30 -11
- package/src/duckdb/src/planner/expression/bound_aggregate_expression.cpp +11 -10
- package/src/duckdb/src/planner/expression/bound_between_expression.cpp +5 -5
- package/src/duckdb/src/planner/expression/bound_case_expression.cpp +5 -5
- package/src/duckdb/src/planner/expression/bound_cast_expression.cpp +3 -3
- package/src/duckdb/src/planner/expression/bound_columnref_expression.cpp +2 -2
- package/src/duckdb/src/planner/expression/bound_comparison_expression.cpp +4 -4
- package/src/duckdb/src/planner/expression/bound_conjunction_expression.cpp +2 -2
- package/src/duckdb/src/planner/expression/bound_constant_expression.cpp +2 -2
- package/src/duckdb/src/planner/expression/bound_default_expression.cpp +7 -1
- package/src/duckdb/src/planner/expression/bound_expression.cpp +1 -1
- package/src/duckdb/src/planner/expression/bound_function_expression.cpp +3 -4
- package/src/duckdb/src/planner/expression/bound_lambda_expression.cpp +4 -5
- package/src/duckdb/src/planner/expression/bound_lambdaref_expression.cpp +2 -2
- package/src/duckdb/src/planner/expression/bound_operator_expression.cpp +3 -4
- package/src/duckdb/src/planner/expression/bound_parameter_expression.cpp +2 -2
- package/src/duckdb/src/planner/expression/bound_reference_expression.cpp +2 -2
- package/src/duckdb/src/planner/expression/bound_subquery_expression.cpp +1 -1
- package/src/duckdb/src/planner/expression/bound_unnest_expression.cpp +3 -3
- package/src/duckdb/src/planner/expression/bound_window_expression.cpp +8 -21
- package/src/duckdb/src/planner/expression.cpp +18 -0
- package/src/duckdb/src/planner/expression_binder/base_select_binder.cpp +2 -2
- package/src/duckdb/src/planner/expression_binder.cpp +3 -2
- package/src/duckdb/src/planner/expression_iterator.cpp +2 -2
- package/src/duckdb/src/planner/filter/conjunction_filter.cpp +2 -2
- package/src/duckdb/src/planner/filter/constant_filter.cpp +1 -1
- package/src/duckdb/src/planner/logical_operator.cpp +3 -4
- package/src/duckdb/src/planner/logical_operator_visitor.cpp +1 -1
- package/src/duckdb/src/planner/operator/logical_distinct.cpp +5 -4
- package/src/duckdb/src/planner/operator/logical_pivot.cpp +14 -2
- package/src/duckdb/src/planner/planner.cpp +5 -15
- package/src/duckdb/src/planner/table_filter.cpp +1 -1
- package/src/duckdb/src/storage/arena_allocator.cpp +2 -2
- package/src/duckdb/src/storage/buffer/block_handle.cpp +1 -1
- package/src/duckdb/src/storage/checkpoint/write_overflow_strings_to_disk.cpp +2 -2
- package/src/duckdb/src/storage/checkpoint_manager.cpp +3 -3
- package/src/duckdb/src/storage/compression/bitpacking.cpp +8 -8
- package/src/duckdb/src/storage/compression/dictionary_compression.cpp +36 -36
- package/src/duckdb/src/storage/compression/fixed_size_uncompressed.cpp +11 -11
- package/src/duckdb/src/storage/compression/fsst.cpp +34 -34
- package/src/duckdb/src/storage/compression/rle.cpp +8 -8
- package/src/duckdb/src/storage/compression/string_uncompressed.cpp +13 -13
- package/src/duckdb/src/storage/compression/validity_uncompressed.cpp +11 -11
- package/src/duckdb/src/storage/data_table.cpp +12 -10
- package/src/duckdb/src/storage/index.cpp +13 -0
- package/src/duckdb/src/storage/single_file_block_manager.cpp +3 -3
- package/src/duckdb/src/storage/standard_buffer_manager.cpp +3 -3
- package/src/duckdb/src/storage/statistics/list_stats.cpp +1 -1
- package/src/duckdb/src/storage/statistics/numeric_stats.cpp +1 -1
- package/src/duckdb/src/storage/statistics/string_stats.cpp +15 -14
- package/src/duckdb/src/storage/storage_manager.cpp +6 -0
- package/src/duckdb/src/storage/table/chunk_info.cpp +2 -2
- package/src/duckdb/src/storage/table/column_data.cpp +7 -3
- package/src/duckdb/src/storage/table/column_segment.cpp +3 -3
- package/src/duckdb/src/storage/table/list_column_data.cpp +8 -7
- package/src/duckdb/src/storage/table/row_group.cpp +8 -7
- package/src/duckdb/src/storage/table/row_group_collection.cpp +6 -3
- package/src/duckdb/src/storage/table/standard_column_data.cpp +5 -4
- package/src/duckdb/src/storage/table/struct_column_data.cpp +4 -3
- package/src/duckdb/src/storage/table/update_segment.cpp +12 -12
- package/src/duckdb/src/storage/wal_replay.cpp +5 -6
- package/src/duckdb/src/transaction/cleanup_state.cpp +3 -3
- package/src/duckdb/src/transaction/commit_state.cpp +8 -8
- package/src/duckdb/src/transaction/duck_transaction.cpp +9 -7
- package/src/duckdb/src/transaction/duck_transaction_manager.cpp +16 -16
- package/src/duckdb/src/transaction/rollback_state.cpp +3 -3
- package/src/duckdb/src/verification/prepared_statement_verifier.cpp +1 -1
- package/src/duckdb/src/verification/statement_verifier.cpp +3 -4
- package/src/duckdb/third_party/hyperloglog/hyperloglog.hpp +2 -2
- package/src/duckdb/third_party/libpg_query/include/nodes/nodes.hpp +0 -1
- package/src/duckdb/third_party/libpg_query/include/nodes/parsenodes.hpp +0 -14
- package/src/duckdb/third_party/libpg_query/src_backend_parser_gram.cpp +12828 -12956
- package/src/duckdb/third_party/pcg/pcg_extras.hpp +1 -1
- package/src/duckdb/third_party/zstd/compress/zstd_compress.cpp +3 -0
- package/src/duckdb/third_party/zstd/include/zstd/compress/zstd_cwksp.h +4 -0
- package/src/duckdb/ub_extension_icu_third_party_icu_i18n.cpp +5 -5
- package/src/duckdb/ub_src_parser_transform_statement.cpp +0 -2
- package/test/extension.test.ts +11 -0
- package/src/duckdb/src/include/duckdb/parser/parsed_data/create_database_info.hpp +0 -46
- package/src/duckdb/src/parser/transform/statement/transform_create_database.cpp +0 -28
@@ -559,6 +559,10 @@ bool LogicalType::GetDecimalProperties(uint8_t &width, uint8_t &scale) const {
|
|
559
559
|
scale = DecimalType::GetScale(*this);
|
560
560
|
break;
|
561
561
|
default:
|
562
|
+
// Nonsense values to ensure initialization
|
563
|
+
width = 255u;
|
564
|
+
scale = 255u;
|
565
|
+
// FIXME(carlo): This should be probably a throw, requires checkign the various call-sites
|
562
566
|
return false;
|
563
567
|
}
|
564
568
|
return true;
|
@@ -811,6 +815,17 @@ public:
|
|
811
815
|
virtual void FormatSerialize(FormatSerializer &serializer) const;
|
812
816
|
static shared_ptr<ExtraTypeInfo> FormatDeserialize(FormatDeserializer &source);
|
813
817
|
|
818
|
+
template <class TARGET>
|
819
|
+
TARGET &Cast() {
|
820
|
+
D_ASSERT(dynamic_cast<TARGET *>(this));
|
821
|
+
return reinterpret_cast<TARGET &>(*this);
|
822
|
+
}
|
823
|
+
template <class TARGET>
|
824
|
+
const TARGET &Cast() const {
|
825
|
+
D_ASSERT(dynamic_cast<const TARGET *>(this));
|
826
|
+
return reinterpret_cast<const TARGET &>(*this);
|
827
|
+
}
|
828
|
+
|
814
829
|
protected:
|
815
830
|
virtual bool EqualsInternal(ExtraTypeInfo *other_p) const {
|
816
831
|
// Do nothing
|
@@ -888,7 +903,7 @@ public:
|
|
888
903
|
|
889
904
|
protected:
|
890
905
|
bool EqualsInternal(ExtraTypeInfo *other_p) const override {
|
891
|
-
auto &other = (
|
906
|
+
auto &other = other_p->Cast<DecimalTypeInfo>();
|
892
907
|
return width == other.width && scale == other.scale;
|
893
908
|
}
|
894
909
|
};
|
@@ -897,14 +912,14 @@ uint8_t DecimalType::GetWidth(const LogicalType &type) {
|
|
897
912
|
D_ASSERT(type.id() == LogicalTypeId::DECIMAL);
|
898
913
|
auto info = type.AuxInfo();
|
899
914
|
D_ASSERT(info);
|
900
|
-
return (
|
915
|
+
return info->Cast<DecimalTypeInfo>().width;
|
901
916
|
}
|
902
917
|
|
903
918
|
uint8_t DecimalType::GetScale(const LogicalType &type) {
|
904
919
|
D_ASSERT(type.id() == LogicalTypeId::DECIMAL);
|
905
920
|
auto info = type.AuxInfo();
|
906
921
|
D_ASSERT(info);
|
907
|
-
return (
|
922
|
+
return info->Cast<DecimalTypeInfo>().scale;
|
908
923
|
}
|
909
924
|
|
910
925
|
uint8_t DecimalType::MaxWidth() {
|
@@ -965,7 +980,7 @@ string StringType::GetCollation(const LogicalType &type) {
|
|
965
980
|
if (info->type == ExtraTypeInfoType::GENERIC_TYPE_INFO) {
|
966
981
|
return string();
|
967
982
|
}
|
968
|
-
return (
|
983
|
+
return info->Cast<StringTypeInfo>().collation;
|
969
984
|
}
|
970
985
|
|
971
986
|
LogicalType LogicalType::VARCHAR_COLLATION(string collation) { // NOLINT
|
@@ -1005,7 +1020,7 @@ public:
|
|
1005
1020
|
|
1006
1021
|
protected:
|
1007
1022
|
bool EqualsInternal(ExtraTypeInfo *other_p) const override {
|
1008
|
-
auto &other = (
|
1023
|
+
auto &other = other_p->Cast<ListTypeInfo>();
|
1009
1024
|
return child_type == other.child_type;
|
1010
1025
|
}
|
1011
1026
|
};
|
@@ -1014,7 +1029,7 @@ const LogicalType &ListType::GetChildType(const LogicalType &type) {
|
|
1014
1029
|
D_ASSERT(type.id() == LogicalTypeId::LIST || type.id() == LogicalTypeId::MAP);
|
1015
1030
|
auto info = type.AuxInfo();
|
1016
1031
|
D_ASSERT(info);
|
1017
|
-
return (
|
1032
|
+
return info->Cast<ListTypeInfo>().child_type;
|
1018
1033
|
}
|
1019
1034
|
|
1020
1035
|
LogicalType LogicalType::LIST(const LogicalType &child) {
|
@@ -1066,7 +1081,7 @@ public:
|
|
1066
1081
|
|
1067
1082
|
protected:
|
1068
1083
|
bool EqualsInternal(ExtraTypeInfo *other_p) const override {
|
1069
|
-
auto &other = (
|
1084
|
+
auto &other = other_p->Cast<StructTypeInfo>();
|
1070
1085
|
return child_types == other.child_types;
|
1071
1086
|
}
|
1072
1087
|
};
|
@@ -1122,7 +1137,7 @@ public:
|
|
1122
1137
|
|
1123
1138
|
protected:
|
1124
1139
|
bool EqualsInternal(ExtraTypeInfo *other_p) const override {
|
1125
|
-
auto &other = (
|
1140
|
+
auto &other = other_p->Cast<AggregateStateTypeInfo>();
|
1126
1141
|
return state_type.function_name == other.state_type.function_name &&
|
1127
1142
|
state_type.return_type == other.state_type.return_type &&
|
1128
1143
|
state_type.bound_argument_types == other.state_type.bound_argument_types;
|
@@ -1133,7 +1148,7 @@ const aggregate_state_t &AggregateStateType::GetStateType(const LogicalType &typ
|
|
1133
1148
|
D_ASSERT(type.id() == LogicalTypeId::AGGREGATE_STATE);
|
1134
1149
|
auto info = type.AuxInfo();
|
1135
1150
|
D_ASSERT(info);
|
1136
|
-
return (
|
1151
|
+
return info->Cast<AggregateStateTypeInfo>().state_type;
|
1137
1152
|
}
|
1138
1153
|
|
1139
1154
|
const string AggregateStateType::GetTypeName(const LogicalType &type) {
|
@@ -1142,7 +1157,7 @@ const string AggregateStateType::GetTypeName(const LogicalType &type) {
|
|
1142
1157
|
if (!info) {
|
1143
1158
|
return "AGGREGATE_STATE<?>";
|
1144
1159
|
}
|
1145
|
-
auto aggr_state = (
|
1160
|
+
auto aggr_state = info->Cast<AggregateStateTypeInfo>().state_type;
|
1146
1161
|
return "AGGREGATE_STATE<" + aggr_state.function_name + "(" +
|
1147
1162
|
StringUtil::Join(aggr_state.bound_argument_types, aggr_state.bound_argument_types.size(), ", ",
|
1148
1163
|
[](const LogicalType &arg_type) { return arg_type.ToString(); }) +
|
@@ -1154,7 +1169,7 @@ const child_list_t<LogicalType> &StructType::GetChildTypes(const LogicalType &ty
|
|
1154
1169
|
|
1155
1170
|
auto info = type.AuxInfo();
|
1156
1171
|
D_ASSERT(info);
|
1157
|
-
return (
|
1172
|
+
return info->Cast<StructTypeInfo>().child_types;
|
1158
1173
|
}
|
1159
1174
|
|
1160
1175
|
const LogicalType &StructType::GetChildType(const LogicalType &type, idx_t index) {
|
@@ -1277,7 +1292,7 @@ public:
|
|
1277
1292
|
|
1278
1293
|
protected:
|
1279
1294
|
bool EqualsInternal(ExtraTypeInfo *other_p) const override {
|
1280
|
-
auto &other = (
|
1295
|
+
auto &other = other_p->Cast<UserTypeInfo>();
|
1281
1296
|
return other.user_type_name == user_type_name;
|
1282
1297
|
}
|
1283
1298
|
};
|
@@ -1286,7 +1301,7 @@ const string &UserType::GetTypeName(const LogicalType &type) {
|
|
1286
1301
|
D_ASSERT(type.id() == LogicalTypeId::USER);
|
1287
1302
|
auto info = type.AuxInfo();
|
1288
1303
|
D_ASSERT(info);
|
1289
|
-
return (
|
1304
|
+
return info->Cast<UserTypeInfo>().user_type_name;
|
1290
1305
|
}
|
1291
1306
|
|
1292
1307
|
LogicalType LogicalType::USER(const string &user_type_name) {
|
@@ -1306,19 +1321,19 @@ struct EnumTypeInfo : public ExtraTypeInfo {
|
|
1306
1321
|
dict_type(EnumDictType::VECTOR_DICT), enum_name(std::move(enum_name_p)), dict_size(dict_size_p) {
|
1307
1322
|
}
|
1308
1323
|
|
1309
|
-
const EnumDictType &GetEnumDictType() {
|
1324
|
+
const EnumDictType &GetEnumDictType() const {
|
1310
1325
|
return dict_type;
|
1311
1326
|
};
|
1312
|
-
const string &GetEnumName() {
|
1327
|
+
const string &GetEnumName() const {
|
1313
1328
|
return enum_name;
|
1314
1329
|
};
|
1315
1330
|
const string GetSchemaName() const {
|
1316
1331
|
return catalog_entry ? catalog_entry->schema.name : "";
|
1317
1332
|
};
|
1318
|
-
const Vector &GetValuesInsertOrder() {
|
1333
|
+
const Vector &GetValuesInsertOrder() const {
|
1319
1334
|
return values_insert_order;
|
1320
1335
|
};
|
1321
|
-
const idx_t &GetDictSize() {
|
1336
|
+
const idx_t &GetDictSize() const {
|
1322
1337
|
return dict_size;
|
1323
1338
|
};
|
1324
1339
|
EnumTypeInfo(const EnumTypeInfo &) = delete;
|
@@ -1327,7 +1342,7 @@ struct EnumTypeInfo : public ExtraTypeInfo {
|
|
1327
1342
|
protected:
|
1328
1343
|
// Equalities are only used in enums with different catalog entries
|
1329
1344
|
bool EqualsInternal(ExtraTypeInfo *other_p) const override {
|
1330
|
-
auto &other = (
|
1345
|
+
auto &other = other_p->Cast<EnumTypeInfo>();
|
1331
1346
|
if (dict_type != other.dict_type) {
|
1332
1347
|
return false;
|
1333
1348
|
}
|
@@ -1360,7 +1375,7 @@ protected:
|
|
1360
1375
|
ExtraTypeInfo::FormatSerialize(serializer);
|
1361
1376
|
serializer.WriteProperty("dict_size", dict_size);
|
1362
1377
|
serializer.WriteProperty("enum_name", enum_name);
|
1363
|
-
((Vector &)values_insert_order).FormatSerialize(serializer, dict_size);
|
1378
|
+
((Vector &)values_insert_order).FormatSerialize(serializer, dict_size); // NOLINT - FIXME
|
1364
1379
|
}
|
1365
1380
|
Vector values_insert_order;
|
1366
1381
|
|
@@ -1374,7 +1389,7 @@ private:
|
|
1374
1389
|
|
1375
1390
|
void EnumType::Serialize(FieldWriter &writer, const ExtraTypeInfo &type_info, bool serialize_internals) {
|
1376
1391
|
D_ASSERT(type_info.type == ExtraTypeInfoType::ENUM_TYPE_INFO);
|
1377
|
-
auto &enum_info = (
|
1392
|
+
auto &enum_info = type_info.Cast<EnumTypeInfo>();
|
1378
1393
|
// Store Schema Name
|
1379
1394
|
writer.WriteString(enum_info.GetSchemaName());
|
1380
1395
|
// Store Enum Name
|
@@ -1387,7 +1402,7 @@ void EnumType::Serialize(FieldWriter &writer, const ExtraTypeInfo &type_info, bo
|
|
1387
1402
|
// Store Dictionary Size
|
1388
1403
|
writer.WriteField<uint32_t>(dict_size);
|
1389
1404
|
// Store Vector Order By Insertion
|
1390
|
-
((Vector &)enum_info.GetValuesInsertOrder()).Serialize(dict_size, writer.GetSerializer());
|
1405
|
+
((Vector &)enum_info.GetValuesInsertOrder()).Serialize(dict_size, writer.GetSerializer()); // NOLINT - FIXME
|
1391
1406
|
}
|
1392
1407
|
}
|
1393
1408
|
|
@@ -1400,7 +1415,7 @@ struct EnumTypeInfoTemplated : public EnumTypeInfo {
|
|
1400
1415
|
UnifiedVectorFormat vdata;
|
1401
1416
|
values_insert_order.ToUnifiedFormat(size_p, vdata);
|
1402
1417
|
|
1403
|
-
auto data = (
|
1418
|
+
auto data = UnifiedVectorFormat::GetData<string_t>(vdata);
|
1404
1419
|
for (idx_t i = 0; i < size_p; i++) {
|
1405
1420
|
auto idx = vdata.sel->get_index(i);
|
1406
1421
|
if (!vdata.validity.RowIsValid(idx)) {
|
@@ -1428,7 +1443,7 @@ struct EnumTypeInfoTemplated : public EnumTypeInfo {
|
|
1428
1443
|
return make_shared<EnumTypeInfoTemplated>(std::move(enum_name), values_insert_order, size);
|
1429
1444
|
}
|
1430
1445
|
|
1431
|
-
string_map_t<T> &GetValues() {
|
1446
|
+
const string_map_t<T> &GetValues() const {
|
1432
1447
|
return values;
|
1433
1448
|
}
|
1434
1449
|
|
@@ -1443,7 +1458,7 @@ const string &EnumType::GetTypeName(const LogicalType &type) {
|
|
1443
1458
|
D_ASSERT(type.id() == LogicalTypeId::ENUM);
|
1444
1459
|
auto info = type.AuxInfo();
|
1445
1460
|
D_ASSERT(info);
|
1446
|
-
return (
|
1461
|
+
return info->Cast<EnumTypeInfo>().GetEnumName();
|
1447
1462
|
}
|
1448
1463
|
|
1449
1464
|
static PhysicalType EnumVectorDictType(idx_t size) {
|
@@ -1480,7 +1495,7 @@ LogicalType LogicalType::ENUM(const string &enum_name, Vector &ordered_data, idx
|
|
1480
1495
|
}
|
1481
1496
|
|
1482
1497
|
template <class T>
|
1483
|
-
int64_t TemplatedGetPos(string_map_t<T> &map, const string_t &key) {
|
1498
|
+
int64_t TemplatedGetPos(const string_map_t<T> &map, const string_t &key) {
|
1484
1499
|
auto it = map.find(key);
|
1485
1500
|
if (it == map.end()) {
|
1486
1501
|
return -1;
|
@@ -1492,11 +1507,11 @@ int64_t EnumType::GetPos(const LogicalType &type, const string_t &key) {
|
|
1492
1507
|
auto info = type.AuxInfo();
|
1493
1508
|
switch (type.InternalType()) {
|
1494
1509
|
case PhysicalType::UINT8:
|
1495
|
-
return TemplatedGetPos(
|
1510
|
+
return TemplatedGetPos(info->Cast<EnumTypeInfoTemplated<uint8_t>>().GetValues(), key);
|
1496
1511
|
case PhysicalType::UINT16:
|
1497
|
-
return TemplatedGetPos(
|
1512
|
+
return TemplatedGetPos(info->Cast<EnumTypeInfoTemplated<uint16_t>>().GetValues(), key);
|
1498
1513
|
case PhysicalType::UINT32:
|
1499
|
-
return TemplatedGetPos(
|
1514
|
+
return TemplatedGetPos(info->Cast<EnumTypeInfoTemplated<uint32_t>>().GetValues(), key);
|
1500
1515
|
default:
|
1501
1516
|
throw InternalException("ENUM can only have unsigned integers (except UINT64) as physical types");
|
1502
1517
|
}
|
@@ -1504,7 +1519,7 @@ int64_t EnumType::GetPos(const LogicalType &type, const string_t &key) {
|
|
1504
1519
|
|
1505
1520
|
const string EnumType::GetValue(const Value &val) {
|
1506
1521
|
auto info = val.type().AuxInfo();
|
1507
|
-
auto &values_insert_order = (
|
1522
|
+
auto &values_insert_order = info->Cast<EnumTypeInfo>().GetValuesInsertOrder();
|
1508
1523
|
return StringValue::Get(values_insert_order.GetValue(val.GetValue<uint32_t>()));
|
1509
1524
|
}
|
1510
1525
|
|
@@ -1512,14 +1527,14 @@ const Vector &EnumType::GetValuesInsertOrder(const LogicalType &type) {
|
|
1512
1527
|
D_ASSERT(type.id() == LogicalTypeId::ENUM);
|
1513
1528
|
auto info = type.AuxInfo();
|
1514
1529
|
D_ASSERT(info);
|
1515
|
-
return (
|
1530
|
+
return info->Cast<EnumTypeInfo>().GetValuesInsertOrder();
|
1516
1531
|
}
|
1517
1532
|
|
1518
1533
|
idx_t EnumType::GetSize(const LogicalType &type) {
|
1519
1534
|
D_ASSERT(type.id() == LogicalTypeId::ENUM);
|
1520
1535
|
auto info = type.AuxInfo();
|
1521
1536
|
D_ASSERT(info);
|
1522
|
-
return (
|
1537
|
+
return info->Cast<EnumTypeInfo>().GetDictSize();
|
1523
1538
|
}
|
1524
1539
|
|
1525
1540
|
void EnumType::SetCatalog(LogicalType &type, optional_ptr<TypeCatalogEntry> catalog_entry) {
|
@@ -1535,7 +1550,7 @@ optional_ptr<TypeCatalogEntry> EnumType::GetCatalog(const LogicalType &type) {
|
|
1535
1550
|
if (!info) {
|
1536
1551
|
return nullptr;
|
1537
1552
|
}
|
1538
|
-
return
|
1553
|
+
return info->catalog_entry;
|
1539
1554
|
}
|
1540
1555
|
|
1541
1556
|
string EnumType::GetSchemaName(const LogicalType &type) {
|
@@ -1547,7 +1562,7 @@ PhysicalType EnumType::GetPhysicalType(const LogicalType &type) {
|
|
1547
1562
|
D_ASSERT(type.id() == LogicalTypeId::ENUM);
|
1548
1563
|
auto aux_info = type.AuxInfo();
|
1549
1564
|
D_ASSERT(aux_info);
|
1550
|
-
auto &info = (
|
1565
|
+
auto &info = aux_info->Cast<EnumTypeInfo>();
|
1551
1566
|
D_ASSERT(info.GetEnumDictType() == EnumDictType::VECTOR_DICT);
|
1552
1567
|
return EnumVectorDictType(info.GetDictSize());
|
1553
1568
|
}
|
@@ -35,8 +35,8 @@ static void TemplatedBooleanNullmask(Vector &left, Vector &right, Vector &result
|
|
35
35
|
right.ToUnifiedFormat(count, rdata);
|
36
36
|
|
37
37
|
result.SetVectorType(VectorType::FLAT_VECTOR);
|
38
|
-
auto left_data = (
|
39
|
-
auto right_data = (
|
38
|
+
auto left_data = UnifiedVectorFormat::GetData<uint8_t>(ldata); // we use uint8 to avoid load of gunk bools
|
39
|
+
auto right_data = UnifiedVectorFormat::GetData<uint8_t>(rdata);
|
40
40
|
auto result_data = FlatVector::GetData<bool>(result);
|
41
41
|
auto &result_mask = FlatVector::Validity(result);
|
42
42
|
if (!ldata.validity.AllValid() || !rdata.validity.AllValid()) {
|
@@ -11,7 +11,7 @@ struct DistinctBinaryLambdaWrapper {
|
|
11
11
|
};
|
12
12
|
|
13
13
|
template <class LEFT_TYPE, class RIGHT_TYPE, class RESULT_TYPE, class OP>
|
14
|
-
static void DistinctExecuteGenericLoop(LEFT_TYPE *__restrict ldata, RIGHT_TYPE *__restrict rdata,
|
14
|
+
static void DistinctExecuteGenericLoop(const LEFT_TYPE *__restrict ldata, const RIGHT_TYPE *__restrict rdata,
|
15
15
|
RESULT_TYPE *__restrict result_data, const SelectionVector *__restrict lsel,
|
16
16
|
const SelectionVector *__restrict rsel, idx_t count, ValidityMask &lmask,
|
17
17
|
ValidityMask &rmask, ValidityMask &result_mask) {
|
@@ -49,8 +49,8 @@ static void DistinctExecuteGeneric(Vector &left, Vector &right, Vector &result,
|
|
49
49
|
result.SetVectorType(VectorType::FLAT_VECTOR);
|
50
50
|
auto result_data = FlatVector::GetData<RESULT_TYPE>(result);
|
51
51
|
DistinctExecuteGenericLoop<LEFT_TYPE, RIGHT_TYPE, RESULT_TYPE, OP>(
|
52
|
-
(
|
53
|
-
rdata.validity, FlatVector::Validity(result));
|
52
|
+
UnifiedVectorFormat::GetData<LEFT_TYPE>(ldata), UnifiedVectorFormat::GetData<RIGHT_TYPE>(rdata),
|
53
|
+
result_data, ldata.sel, rdata.sel, count, ldata.validity, rdata.validity, FlatVector::Validity(result));
|
54
54
|
}
|
55
55
|
}
|
56
56
|
|
@@ -66,7 +66,7 @@ static void DistinctExecute(Vector &left, Vector &right, Vector &result, idx_t c
|
|
66
66
|
|
67
67
|
template <class LEFT_TYPE, class RIGHT_TYPE, class OP, bool NO_NULL, bool HAS_TRUE_SEL, bool HAS_FALSE_SEL>
|
68
68
|
static inline idx_t
|
69
|
-
DistinctSelectGenericLoop(LEFT_TYPE *__restrict ldata, RIGHT_TYPE *__restrict rdata,
|
69
|
+
DistinctSelectGenericLoop(const LEFT_TYPE *__restrict ldata, const RIGHT_TYPE *__restrict rdata,
|
70
70
|
const SelectionVector *__restrict lsel, const SelectionVector *__restrict rsel,
|
71
71
|
const SelectionVector *__restrict result_sel, idx_t count, ValidityMask &lmask,
|
72
72
|
ValidityMask &rmask, SelectionVector *true_sel, SelectionVector *false_sel) {
|
@@ -105,7 +105,7 @@ DistinctSelectGenericLoop(LEFT_TYPE *__restrict ldata, RIGHT_TYPE *__restrict rd
|
|
105
105
|
}
|
106
106
|
template <class LEFT_TYPE, class RIGHT_TYPE, class OP, bool NO_NULL>
|
107
107
|
static inline idx_t
|
108
|
-
DistinctSelectGenericLoopSelSwitch(LEFT_TYPE *__restrict ldata, RIGHT_TYPE *__restrict rdata,
|
108
|
+
DistinctSelectGenericLoopSelSwitch(const LEFT_TYPE *__restrict ldata, const RIGHT_TYPE *__restrict rdata,
|
109
109
|
const SelectionVector *__restrict lsel, const SelectionVector *__restrict rsel,
|
110
110
|
const SelectionVector *__restrict result_sel, idx_t count, ValidityMask &lmask,
|
111
111
|
ValidityMask &rmask, SelectionVector *true_sel, SelectionVector *false_sel) {
|
@@ -124,7 +124,7 @@ DistinctSelectGenericLoopSelSwitch(LEFT_TYPE *__restrict ldata, RIGHT_TYPE *__re
|
|
124
124
|
|
125
125
|
template <class LEFT_TYPE, class RIGHT_TYPE, class OP>
|
126
126
|
static inline idx_t
|
127
|
-
DistinctSelectGenericLoopSwitch(LEFT_TYPE *__restrict ldata, RIGHT_TYPE *__restrict rdata,
|
127
|
+
DistinctSelectGenericLoopSwitch(const LEFT_TYPE *__restrict ldata, const RIGHT_TYPE *__restrict rdata,
|
128
128
|
const SelectionVector *__restrict lsel, const SelectionVector *__restrict rsel,
|
129
129
|
const SelectionVector *__restrict result_sel, idx_t count, ValidityMask &lmask,
|
130
130
|
ValidityMask &rmask, SelectionVector *true_sel, SelectionVector *false_sel) {
|
@@ -145,9 +145,9 @@ static idx_t DistinctSelectGeneric(Vector &left, Vector &right, const SelectionV
|
|
145
145
|
left.ToUnifiedFormat(count, ldata);
|
146
146
|
right.ToUnifiedFormat(count, rdata);
|
147
147
|
|
148
|
-
return DistinctSelectGenericLoopSwitch<LEFT_TYPE, RIGHT_TYPE, OP>(
|
149
|
-
|
150
|
-
|
148
|
+
return DistinctSelectGenericLoopSwitch<LEFT_TYPE, RIGHT_TYPE, OP>(
|
149
|
+
UnifiedVectorFormat::GetData<LEFT_TYPE>(ldata), UnifiedVectorFormat::GetData<RIGHT_TYPE>(rdata), ldata.sel,
|
150
|
+
rdata.sel, sel, count, ldata.validity, rdata.validity, true_sel, false_sel);
|
151
151
|
}
|
152
152
|
template <class LEFT_TYPE, class RIGHT_TYPE, class OP, bool LEFT_CONSTANT, bool RIGHT_CONSTANT, bool NO_NULL,
|
153
153
|
bool HAS_TRUE_SEL, bool HAS_FALSE_SEL>
|
@@ -543,7 +543,7 @@ static idx_t DistinctSelectStruct(Vector &left, Vector &right, idx_t count, cons
|
|
543
543
|
|
544
544
|
static void PositionListCursor(SelectionVector &cursor, UnifiedVectorFormat &vdata, const idx_t pos,
|
545
545
|
const SelectionVector &slice_sel, const idx_t count) {
|
546
|
-
const auto data = (
|
546
|
+
const auto data = UnifiedVectorFormat::GetData<list_entry_t>(vdata);
|
547
547
|
for (idx_t i = 0; i < count; ++i) {
|
548
548
|
const auto slice_idx = slice_sel.get_index(i);
|
549
549
|
|
@@ -586,11 +586,11 @@ static idx_t DistinctSelectList(Vector &left, Vector &right, idx_t count, const
|
|
586
586
|
// Get pointers to the list entries
|
587
587
|
UnifiedVectorFormat lvdata;
|
588
588
|
left.ToUnifiedFormat(count, lvdata);
|
589
|
-
const auto ldata = (
|
589
|
+
const auto ldata = UnifiedVectorFormat::GetData<list_entry_t>(lvdata);
|
590
590
|
|
591
591
|
UnifiedVectorFormat rvdata;
|
592
592
|
right.ToUnifiedFormat(count, rvdata);
|
593
|
-
const auto rdata = (
|
593
|
+
const auto rdata = UnifiedVectorFormat::GetData<list_entry_t>(rvdata);
|
594
594
|
|
595
595
|
// In order to reuse the comparators, we have to track what passed and failed internally.
|
596
596
|
// To do that, we need local SVs that we then merge back into the real ones after every pass.
|
@@ -25,7 +25,7 @@ static inline hash_t CombineHashScalar(hash_t a, hash_t b) {
|
|
25
25
|
}
|
26
26
|
|
27
27
|
template <bool HAS_RSEL, class T>
|
28
|
-
static inline void TightLoopHash(T *__restrict ldata, hash_t *__restrict result_data, const SelectionVector *rsel,
|
28
|
+
static inline void TightLoopHash(const T *__restrict ldata, hash_t *__restrict result_data, const SelectionVector *rsel,
|
29
29
|
idx_t count, const SelectionVector *__restrict sel_vector, ValidityMask &mask) {
|
30
30
|
if (!mask.AllValid()) {
|
31
31
|
for (idx_t i = 0; i < count; i++) {
|
@@ -56,8 +56,8 @@ static inline void TemplatedLoopHash(Vector &input, Vector &result, const Select
|
|
56
56
|
UnifiedVectorFormat idata;
|
57
57
|
input.ToUnifiedFormat(count, idata);
|
58
58
|
|
59
|
-
TightLoopHash<HAS_RSEL, T>((
|
60
|
-
idata.validity);
|
59
|
+
TightLoopHash<HAS_RSEL, T>(UnifiedVectorFormat::GetData<T>(idata), FlatVector::GetData<hash_t>(result), rsel,
|
60
|
+
count, idata.sel, idata.validity);
|
61
61
|
}
|
62
62
|
}
|
63
63
|
|
@@ -94,7 +94,7 @@ static inline void ListLoopHash(Vector &input, Vector &hashes, const SelectionVe
|
|
94
94
|
|
95
95
|
UnifiedVectorFormat idata;
|
96
96
|
input.ToUnifiedFormat(count, idata);
|
97
|
-
const auto ldata = (
|
97
|
+
const auto ldata = UnifiedVectorFormat::GetData<list_entry_t>(idata);
|
98
98
|
|
99
99
|
// Hash the children into a temporary
|
100
100
|
auto &child = ListVector::GetEntry(input);
|
@@ -240,8 +240,8 @@ void VectorOperations::Hash(Vector &input, Vector &result, const SelectionVector
|
|
240
240
|
}
|
241
241
|
|
242
242
|
template <bool HAS_RSEL, class T>
|
243
|
-
static inline void TightLoopCombineHashConstant(T *__restrict ldata, hash_t constant_hash,
|
244
|
-
const SelectionVector *rsel, idx_t count,
|
243
|
+
static inline void TightLoopCombineHashConstant(const T *__restrict ldata, hash_t constant_hash,
|
244
|
+
hash_t *__restrict hash_data, const SelectionVector *rsel, idx_t count,
|
245
245
|
const SelectionVector *__restrict sel_vector, ValidityMask &mask) {
|
246
246
|
if (!mask.AllValid()) {
|
247
247
|
for (idx_t i = 0; i < count; i++) {
|
@@ -261,8 +261,9 @@ static inline void TightLoopCombineHashConstant(T *__restrict ldata, hash_t cons
|
|
261
261
|
}
|
262
262
|
|
263
263
|
template <bool HAS_RSEL, class T>
|
264
|
-
static inline void TightLoopCombineHash(T *__restrict ldata, hash_t *__restrict hash_data,
|
265
|
-
|
264
|
+
static inline void TightLoopCombineHash(const T *__restrict ldata, hash_t *__restrict hash_data,
|
265
|
+
const SelectionVector *rsel, idx_t count,
|
266
|
+
const SelectionVector *__restrict sel_vector, ValidityMask &mask) {
|
266
267
|
if (!mask.AllValid()) {
|
267
268
|
for (idx_t i = 0; i < count; i++) {
|
268
269
|
auto ridx = HAS_RSEL ? rsel->get_index(i) : i;
|
@@ -296,13 +297,14 @@ void TemplatedLoopCombineHash(Vector &input, Vector &hashes, const SelectionVect
|
|
296
297
|
auto constant_hash = *ConstantVector::GetData<hash_t>(hashes);
|
297
298
|
// now re-initialize the hashes vector to an empty flat vector
|
298
299
|
hashes.SetVectorType(VectorType::FLAT_VECTOR);
|
299
|
-
TightLoopCombineHashConstant<HAS_RSEL, T>((
|
300
|
+
TightLoopCombineHashConstant<HAS_RSEL, T>(UnifiedVectorFormat::GetData<T>(idata), constant_hash,
|
300
301
|
FlatVector::GetData<hash_t>(hashes), rsel, count, idata.sel,
|
301
302
|
idata.validity);
|
302
303
|
} else {
|
303
304
|
D_ASSERT(hashes.GetVectorType() == VectorType::FLAT_VECTOR);
|
304
|
-
TightLoopCombineHash<HAS_RSEL, T>(
|
305
|
-
idata.sel,
|
305
|
+
TightLoopCombineHash<HAS_RSEL, T>(UnifiedVectorFormat::GetData<T>(idata),
|
306
|
+
FlatVector::GetData<hash_t>(hashes), rsel, count, idata.sel,
|
307
|
+
idata.validity);
|
306
308
|
}
|
307
309
|
}
|
308
310
|
}
|
@@ -6,7 +6,7 @@ namespace duckdb {
|
|
6
6
|
|
7
7
|
template <class T>
|
8
8
|
static void CopyToStorageLoop(UnifiedVectorFormat &vdata, idx_t count, data_ptr_t target) {
|
9
|
-
auto ldata = (
|
9
|
+
auto ldata = UnifiedVectorFormat::GetData<T>(vdata);
|
10
10
|
auto result_data = (T *)target;
|
11
11
|
for (idx_t i = 0; i < count; i++) {
|
12
12
|
auto idx = vdata.sel->get_index(i);
|
@@ -59,21 +59,21 @@ public:
|
|
59
59
|
|
60
60
|
struct AverageSetOperation {
|
61
61
|
template <class STATE>
|
62
|
-
static void Initialize(STATE
|
63
|
-
state
|
62
|
+
static void Initialize(STATE &state) {
|
63
|
+
state.Initialize();
|
64
64
|
}
|
65
65
|
template <class STATE>
|
66
|
-
static void Combine(const STATE &source, STATE
|
67
|
-
target
|
66
|
+
static void Combine(const STATE &source, STATE &target, AggregateInputData &) {
|
67
|
+
target.Combine(source);
|
68
68
|
}
|
69
69
|
template <class STATE>
|
70
|
-
static void AddValues(STATE
|
71
|
-
state
|
70
|
+
static void AddValues(STATE &state, idx_t count) {
|
71
|
+
state.count += count;
|
72
72
|
}
|
73
73
|
};
|
74
74
|
|
75
75
|
template <class T>
|
76
|
-
static T GetAverageDivident(uint64_t count, FunctionData
|
76
|
+
static T GetAverageDivident(uint64_t count, optional_ptr<FunctionData> bind_data) {
|
77
77
|
T divident = T(count);
|
78
78
|
if (bind_data) {
|
79
79
|
auto &avg_bind_data = bind_data->Cast<AverageDecimalBindData>();
|
@@ -84,61 +84,58 @@ static T GetAverageDivident(uint64_t count, FunctionData *bind_data) {
|
|
84
84
|
|
85
85
|
struct IntegerAverageOperation : public BaseSumOperation<AverageSetOperation, RegularAdd> {
|
86
86
|
template <class T, class STATE>
|
87
|
-
static void Finalize(
|
88
|
-
|
89
|
-
|
90
|
-
mask.SetInvalid(idx);
|
87
|
+
static void Finalize(STATE &state, T &target, AggregateFinalizeData &finalize_data) {
|
88
|
+
if (state.count == 0) {
|
89
|
+
finalize_data.ReturnNull();
|
91
90
|
} else {
|
92
|
-
double divident = GetAverageDivident<double>(state
|
93
|
-
target
|
91
|
+
double divident = GetAverageDivident<double>(state.count, finalize_data.input.bind_data);
|
92
|
+
target = double(state.value) / divident;
|
94
93
|
}
|
95
94
|
}
|
96
95
|
};
|
97
96
|
|
98
97
|
struct IntegerAverageOperationHugeint : public BaseSumOperation<AverageSetOperation, HugeintAdd> {
|
99
98
|
template <class T, class STATE>
|
100
|
-
static void Finalize(
|
101
|
-
|
102
|
-
|
103
|
-
mask.SetInvalid(idx);
|
99
|
+
static void Finalize(STATE &state, T &target, AggregateFinalizeData &finalize_data) {
|
100
|
+
if (state.count == 0) {
|
101
|
+
finalize_data.ReturnNull();
|
104
102
|
} else {
|
105
|
-
long double divident = GetAverageDivident<long double>(state
|
106
|
-
target
|
103
|
+
long double divident = GetAverageDivident<long double>(state.count, finalize_data.input.bind_data);
|
104
|
+
target = Hugeint::Cast<long double>(state.value) / divident;
|
107
105
|
}
|
108
106
|
}
|
109
107
|
};
|
110
108
|
|
111
109
|
struct HugeintAverageOperation : public BaseSumOperation<AverageSetOperation, RegularAdd> {
|
112
110
|
template <class T, class STATE>
|
113
|
-
static void Finalize(
|
114
|
-
|
115
|
-
|
116
|
-
mask.SetInvalid(idx);
|
111
|
+
static void Finalize(STATE &state, T &target, AggregateFinalizeData &finalize_data) {
|
112
|
+
if (state.count == 0) {
|
113
|
+
finalize_data.ReturnNull();
|
117
114
|
} else {
|
118
|
-
long double divident = GetAverageDivident<long double>(state
|
119
|
-
target
|
115
|
+
long double divident = GetAverageDivident<long double>(state.count, finalize_data.input.bind_data);
|
116
|
+
target = Hugeint::Cast<long double>(state.value) / divident;
|
120
117
|
}
|
121
118
|
}
|
122
119
|
};
|
123
120
|
|
124
121
|
struct NumericAverageOperation : public BaseSumOperation<AverageSetOperation, RegularAdd> {
|
125
122
|
template <class T, class STATE>
|
126
|
-
static void Finalize(
|
127
|
-
if (state
|
128
|
-
|
123
|
+
static void Finalize(STATE &state, T &target, AggregateFinalizeData &finalize_data) {
|
124
|
+
if (state.count == 0) {
|
125
|
+
finalize_data.ReturnNull();
|
129
126
|
} else {
|
130
|
-
target
|
127
|
+
target = state.value / state.count;
|
131
128
|
}
|
132
129
|
}
|
133
130
|
};
|
134
131
|
|
135
132
|
struct KahanAverageOperation : public BaseSumOperation<AverageSetOperation, KahanAdd> {
|
136
133
|
template <class T, class STATE>
|
137
|
-
static void Finalize(
|
138
|
-
if (state
|
139
|
-
|
134
|
+
static void Finalize(STATE &state, T &target, AggregateFinalizeData &finalize_data) {
|
135
|
+
if (state.count == 0) {
|
136
|
+
finalize_data.ReturnNull();
|
140
137
|
} else {
|
141
|
-
target
|
138
|
+
target = (state.value / state.count) + (state.err / state.count);
|
142
139
|
}
|
143
140
|
}
|
144
141
|
};
|
@@ -1,10 +1,6 @@
|
|
1
1
|
#include "duckdb/core_functions/aggregate/algebraic_functions.hpp"
|
2
|
-
#include "duckdb/common/exception.hpp"
|
3
2
|
#include "duckdb/common/types/null_value.hpp"
|
4
|
-
#include "duckdb/common/vector_operations/vector_operations.hpp"
|
5
|
-
#include "duckdb/function/function_set.hpp"
|
6
3
|
#include "duckdb/core_functions/aggregate/algebraic/covar.hpp"
|
7
|
-
#include <cmath>
|
8
4
|
|
9
5
|
namespace duckdb {
|
10
6
|
|