duckdb 0.8.1-dev26.0 → 0.8.1-dev287.0
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 +1 -1
- package/src/duckdb/extension/icu/icu-datepart.cpp +1 -1
- package/src/duckdb/extension/icu/icu-makedate.cpp +5 -4
- 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 +3 -1
- 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 +40 -25
- 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 +1 -1
- 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 +113 -0
- package/src/duckdb/src/catalog/catalog_entry/table_catalog_entry.cpp +7 -0
- package/src/duckdb/src/catalog/catalog_entry.cpp +4 -4
- 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/catalog/duck_catalog.cpp +1 -0
- package/src/duckdb/src/common/adbc/adbc.cpp +301 -106
- package/src/duckdb/src/common/adbc/driver_manager.cpp +10 -22
- package/src/duckdb/src/common/arrow/arrow_appender.cpp +12 -12
- package/src/duckdb/src/common/arrow/arrow_wrapper.cpp +7 -7
- 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 +19 -14
- package/src/duckdb/src/common/field_writer.cpp +1 -1
- package/src/duckdb/src/common/file_system.cpp +15 -2
- 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/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/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 +44 -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 +32 -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 +36 -37
- package/src/duckdb/src/core_functions/aggregate/distributive/sum.cpp +22 -22
- package/src/duckdb/src/core_functions/aggregate/holistic/approximate_quantile.cpp +48 -84
- package/src/duckdb/src/core_functions/aggregate/holistic/mode.cpp +49 -51
- package/src/duckdb/src/core_functions/aggregate/holistic/quantile.cpp +97 -121
- package/src/duckdb/src/core_functions/aggregate/holistic/reservoir_quantile.cpp +62 -99
- 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 +45 -45
- 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 +3 -3
- package/src/duckdb/src/core_functions/scalar/list/flatten.cpp +2 -4
- package/src/duckdb/src/core_functions/scalar/list/list_aggregates.cpp +3 -3
- package/src/duckdb/src/core_functions/scalar/list/list_lambdas.cpp +6 -7
- 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 +3 -3
- 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 +30 -32
- package/src/duckdb/src/execution/index/art/fixed_size_allocator.cpp +3 -4
- package/src/duckdb/src/execution/join_hashtable.cpp +4 -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 +25 -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_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_unnest.cpp +3 -3
- 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_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 +2 -2
- package/src/duckdb/src/execution/window_segment_tree.cpp +8 -6
- package/src/duckdb/src/function/aggregate/distributive/count.cpp +158 -20
- package/src/duckdb/src/function/aggregate/distributive/first.cpp +66 -74
- package/src/duckdb/src/function/aggregate/sorted_aggregate_function.cpp +13 -13
- 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 +3 -3
- package/src/duckdb/src/function/scalar/operators/arithmetic.cpp +2 -3
- 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 +25 -23
- 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 +1 -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 +15 -20
- package/src/duckdb/src/function/table/repeat.cpp +2 -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/test_vector_types.cpp +82 -26
- package/src/duckdb/src/function/table/table_scan.cpp +2 -2
- 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 +6 -0
- 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/adbc/adbc.hpp +5 -0
- package/src/duckdb/src/include/duckdb/common/allocator.hpp +15 -4
- package/src/duckdb/src/include/duckdb/common/arrow/arrow_buffer.hpp +7 -2
- 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/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 +3 -3
- 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 +8 -29
- 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 +3 -1
- 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_function.hpp +2 -2
- package/src/duckdb/src/include/duckdb/function/table_function.hpp +8 -7
- package/src/duckdb/src/include/duckdb/main/capi/cast/utils.hpp +1 -1
- package/src/duckdb/src/include/duckdb/main/config.hpp +2 -0
- 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 +17 -0
- package/src/duckdb/src/include/duckdb/main/relation.hpp +12 -0
- package/src/duckdb/src/include/duckdb/main/settings.hpp +9 -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/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 +1 -1
- 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 +107 -91
- 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 +34 -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/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/index.hpp +2 -2
- package/src/duckdb/src/include/duckdb/storage/partial_block_manager.hpp +1 -1
- 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/scan_state.hpp +22 -0
- 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/capi/appender-c.cpp +5 -5
- package/src/duckdb/src/main/capi/arrow-c.cpp +10 -10
- 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 +3 -3
- package/src/duckdb/src/main/config.cpp +1 -0
- package/src/duckdb/src/main/database_manager.cpp +1 -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/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 +22 -6
- package/src/duckdb/src/optimizer/deliminator.cpp +12 -12
- package/src/duckdb/src/optimizer/expression_heuristics.cpp +1 -0
- 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/parallel/executor.cpp +1 -1
- 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_expression.cpp +34 -18
- package/src/duckdb/src/parser/parsed_expression_iterator.cpp +4 -4
- package/src/duckdb/src/parser/parser.cpp +4 -4
- 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 +28 -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/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_database.cpp +3 -4
- 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 -22
- 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 +46 -46
- package/src/duckdb/src/planner/bind_context.cpp +9 -10
- package/src/duckdb/src/planner/binder/expression/bind_function_expression.cpp +1 -1
- 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 +8 -8
- 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 -1
- package/src/duckdb/src/planner/binder/statement/bind_create_table.cpp +18 -1
- 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 +4 -2
- package/src/duckdb/src/planner/binder/tableref/bind_table_function.cpp +17 -7
- package/src/duckdb/src/planner/binder.cpp +1 -1
- package/src/duckdb/src/planner/bound_result_modifier.cpp +16 -11
- package/src/duckdb/src/planner/expression/bound_aggregate_expression.cpp +5 -5
- 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_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 +15 -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/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 +8 -7
- package/src/duckdb/src/storage/index.cpp +1 -3
- package/src/duckdb/src/storage/local_storage.cpp +2 -1
- package/src/duckdb/src/storage/magic_bytes.cpp +1 -1
- 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/table/chunk_info.cpp +2 -2
- package/src/duckdb/src/storage/table/column_segment.cpp +3 -3
- package/src/duckdb/src/storage/table/list_column_data.cpp +3 -3
- package/src/duckdb/src/storage/table/row_group.cpp +4 -4
- package/src/duckdb/src/storage/table/standard_column_data.cpp +1 -1
- 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/pcg/pcg_extras.hpp +1 -1
- package/src/duckdb/ub_extension_icu_third_party_icu_i18n.cpp +5 -5
@@ -59,7 +59,7 @@ SwizzleablePointer FixedSizeAllocator::New() {
|
|
59
59
|
buffers_with_free_space.insert(buffer_id);
|
60
60
|
|
61
61
|
// set the bitmask
|
62
|
-
ValidityMask mask(
|
62
|
+
ValidityMask mask(reinterpret_cast<validity_t *>(buffer));
|
63
63
|
mask.SetAllValid(allocations_per_buffer);
|
64
64
|
}
|
65
65
|
|
@@ -67,7 +67,7 @@ SwizzleablePointer FixedSizeAllocator::New() {
|
|
67
67
|
D_ASSERT(!buffers_with_free_space.empty());
|
68
68
|
auto buffer_id = (uint32_t)*buffers_with_free_space.begin();
|
69
69
|
|
70
|
-
auto bitmask_ptr =
|
70
|
+
auto bitmask_ptr = reinterpret_cast<validity_t *>(buffers[buffer_id].ptr);
|
71
71
|
ValidityMask mask(bitmask_ptr);
|
72
72
|
auto offset = GetOffset(mask, buffers[buffer_id].allocation_count);
|
73
73
|
|
@@ -81,8 +81,7 @@ SwizzleablePointer FixedSizeAllocator::New() {
|
|
81
81
|
}
|
82
82
|
|
83
83
|
void FixedSizeAllocator::Free(const SwizzleablePointer ptr) {
|
84
|
-
|
85
|
-
auto bitmask_ptr = (validity_t *)buffers[ptr.buffer_id].ptr;
|
84
|
+
auto bitmask_ptr = reinterpret_cast<validity_t *>(buffers[ptr.buffer_id].ptr);
|
86
85
|
ValidityMask mask(bitmask_ptr);
|
87
86
|
D_ASSERT(!mask.RowIsValid(ptr.offset));
|
88
87
|
mask.SetValid(ptr.offset);
|
@@ -102,9 +102,9 @@ void JoinHashTable::ApplyBitmask(Vector &hashes, const SelectionVector &sel, idx
|
|
102
102
|
UnifiedVectorFormat hdata;
|
103
103
|
hashes.ToUnifiedFormat(count, hdata);
|
104
104
|
|
105
|
-
auto hash_data = (
|
105
|
+
auto hash_data = UnifiedVectorFormat::GetData<hash_t>(hdata);
|
106
106
|
auto result_data = FlatVector::GetData<data_ptr_t *>(pointers);
|
107
|
-
auto main_ht =
|
107
|
+
auto main_ht = reinterpret_cast<data_ptr_t *>(hash_map.get());
|
108
108
|
for (idx_t i = 0; i < count; i++) {
|
109
109
|
auto rindex = sel.get_index(i);
|
110
110
|
auto hindex = hdata.sel->get_index(rindex);
|
@@ -269,7 +269,7 @@ void JoinHashTable::InsertHashes(Vector &hashes, idx_t count, data_ptr_t key_loc
|
|
269
269
|
hashes.Flatten(count);
|
270
270
|
D_ASSERT(hashes.GetVectorType() == VectorType::FLAT_VECTOR);
|
271
271
|
|
272
|
-
auto pointers =
|
272
|
+
auto pointers = reinterpret_cast<atomic<data_ptr_t> *>(hash_map.get());
|
273
273
|
auto indices = FlatVector::GetData<hash_t>(hashes);
|
274
274
|
|
275
275
|
if (parallel) {
|
@@ -300,7 +300,7 @@ void JoinHashTable::InitializePointerTable() {
|
|
300
300
|
D_ASSERT(hash_map.GetSize() == capacity * sizeof(data_ptr_t));
|
301
301
|
|
302
302
|
// initialize HT with all-zero entries
|
303
|
-
std::fill_n(
|
303
|
+
std::fill_n(reinterpret_cast<data_ptr_t *>(hash_map.get()), capacity, nullptr);
|
304
304
|
|
305
305
|
bitmask = capacity - 1;
|
306
306
|
}
|
@@ -24,8 +24,8 @@ struct InitialNestedLoopJoin {
|
|
24
24
|
left.ToUnifiedFormat(left_size, left_data);
|
25
25
|
right.ToUnifiedFormat(right_size, right_data);
|
26
26
|
|
27
|
-
auto ldata = (
|
28
|
-
auto rdata = (
|
27
|
+
auto ldata = UnifiedVectorFormat::GetData<T>(left_data);
|
28
|
+
auto rdata = UnifiedVectorFormat::GetData<T>(right_data);
|
29
29
|
idx_t result_count = 0;
|
30
30
|
for (; rpos < right_size; rpos++) {
|
31
31
|
idx_t right_position = right_data.sel->get_index(rpos);
|
@@ -62,8 +62,8 @@ struct RefineNestedLoopJoin {
|
|
62
62
|
// refine lvector and rvector based on matches of subsequent conditions (in case there are multiple conditions
|
63
63
|
// in the join)
|
64
64
|
D_ASSERT(current_match_count > 0);
|
65
|
-
auto ldata = (
|
66
|
-
auto rdata = (
|
65
|
+
auto ldata = UnifiedVectorFormat::GetData<T>(left_data);
|
66
|
+
auto rdata = UnifiedVectorFormat::GetData<T>(right_data);
|
67
67
|
idx_t result_count = 0;
|
68
68
|
for (idx_t i = 0; i < current_match_count; i++) {
|
69
69
|
auto lidx = lvector.get_index(i);
|
@@ -10,8 +10,8 @@ static void TemplatedMarkJoin(Vector &left, Vector &right, idx_t lcount, idx_t r
|
|
10
10
|
left.ToUnifiedFormat(lcount, left_data);
|
11
11
|
right.ToUnifiedFormat(rcount, right_data);
|
12
12
|
|
13
|
-
auto ldata = (
|
14
|
-
auto rdata = (
|
13
|
+
auto ldata = UnifiedVectorFormat::GetData<T>(left_data);
|
14
|
+
auto rdata = UnifiedVectorFormat::GetData<T>(right_data);
|
15
15
|
for (idx_t i = 0; i < lcount; i++) {
|
16
16
|
if (found_match[i]) {
|
17
17
|
continue;
|
@@ -124,7 +124,7 @@ struct FindMatchingAggregate {
|
|
124
124
|
if (other.children.size() != aggr.children.size()) {
|
125
125
|
return false;
|
126
126
|
}
|
127
|
-
if (!Expression::Equals(aggr.filter
|
127
|
+
if (!Expression::Equals(aggr.filter, other.filter)) {
|
128
128
|
return false;
|
129
129
|
}
|
130
130
|
for (idx_t i = 0; i < aggr.children.size(); i++) {
|
@@ -186,7 +186,7 @@ unique_ptr<GlobalSourceState> PhysicalPerfectHashAggregate::GetGlobalSourceState
|
|
186
186
|
|
187
187
|
SourceResultType PhysicalPerfectHashAggregate::GetData(ExecutionContext &context, DataChunk &chunk,
|
188
188
|
OperatorSourceInput &input) const {
|
189
|
-
auto &state =
|
189
|
+
auto &state = input.global_state.Cast<PerfectHashAggregateState>();
|
190
190
|
auto &gstate = sink_state->Cast<PerfectHashAggregateGlobalState>();
|
191
191
|
|
192
192
|
gstate.ht->Scan(state.ht_scan_position, chunk);
|
@@ -26,7 +26,7 @@ class StreamingWindowState : public OperatorState {
|
|
26
26
|
public:
|
27
27
|
using StateBuffer = vector<data_t>;
|
28
28
|
|
29
|
-
StreamingWindowState() : initialized(false), statev(LogicalType::POINTER, (
|
29
|
+
StreamingWindowState() : initialized(false), statev(LogicalType::POINTER, data_ptr_cast(&state_ptr)) {
|
30
30
|
}
|
31
31
|
|
32
32
|
~StreamingWindowState() override {
|
@@ -109,7 +109,7 @@ unique_ptr<OperatorState> PhysicalStreamingWindow::GetOperatorState(ExecutionCon
|
|
109
109
|
OperatorResultType PhysicalStreamingWindow::Execute(ExecutionContext &context, DataChunk &input, DataChunk &chunk,
|
110
110
|
GlobalOperatorState &gstate_p, OperatorState &state_p) const {
|
111
111
|
auto &gstate = gstate_p.Cast<StreamingWindowGlobalState>();
|
112
|
-
auto &state = (
|
112
|
+
auto &state = state_p.Cast<StreamingWindowState>();
|
113
113
|
if (!state.initialized) {
|
114
114
|
state.Initialize(context.client, input, select_list);
|
115
115
|
}
|
@@ -55,7 +55,7 @@ struct AggregateState {
|
|
55
55
|
if (!destructors[i]) {
|
56
56
|
continue;
|
57
57
|
}
|
58
|
-
Vector state_vector(Value::POINTER((
|
58
|
+
Vector state_vector(Value::POINTER(CastPointerToValue(aggregates[i].get())));
|
59
59
|
state_vector.SetVectorType(VectorType::FLAT_VECTOR);
|
60
60
|
|
61
61
|
AggregateInputData aggr_input_data(bind_data[i], Allocator::DefaultAllocator());
|
@@ -332,8 +332,8 @@ void PhysicalUngroupedAggregate::Combine(ExecutionContext &context, GlobalSinkSt
|
|
332
332
|
continue;
|
333
333
|
}
|
334
334
|
|
335
|
-
Vector source_state(Value::POINTER((
|
336
|
-
Vector dest_state(Value::POINTER((
|
335
|
+
Vector source_state(Value::POINTER(CastPointerToValue(source.state.aggregates[aggr_idx].get())));
|
336
|
+
Vector dest_state(Value::POINTER(CastPointerToValue(gstate.state.aggregates[aggr_idx].get())));
|
337
337
|
|
338
338
|
AggregateInputData aggr_input_data(aggregate.bind_info.get(), Allocator::DefaultAllocator());
|
339
339
|
aggregate.function.combine(source_state, dest_state, aggr_input_data, 1);
|
@@ -565,7 +565,7 @@ SourceResultType PhysicalUngroupedAggregate::GetData(ExecutionContext &context,
|
|
565
565
|
for (idx_t aggr_idx = 0; aggr_idx < aggregates.size(); aggr_idx++) {
|
566
566
|
auto &aggregate = aggregates[aggr_idx]->Cast<BoundAggregateExpression>();
|
567
567
|
|
568
|
-
Vector state_vector(Value::POINTER((
|
568
|
+
Vector state_vector(Value::POINTER(CastPointerToValue(gstate.state.aggregates[aggr_idx].get())));
|
569
569
|
AggregateInputData aggr_input_data(aggregate.bind_info.get(), Allocator::DefaultAllocator());
|
570
570
|
aggregate.function.finalize(state_vector, aggr_input_data, chunk.data[aggr_idx], 1, 0);
|
571
571
|
}
|
@@ -1,7 +1,9 @@
|
|
1
1
|
#include "duckdb/execution/operator/aggregate/physical_window.hpp"
|
2
2
|
|
3
|
+
#include "duckdb/common/operator/add.hpp"
|
3
4
|
#include "duckdb/common/operator/cast_operators.hpp"
|
4
5
|
#include "duckdb/common/operator/comparison_operators.hpp"
|
6
|
+
#include "duckdb/common/operator/subtract.hpp"
|
5
7
|
#include "duckdb/common/optional_ptr.hpp"
|
6
8
|
#include "duckdb/common/radix_partitioning.hpp"
|
7
9
|
#include "duckdb/common/row_operations/row_operations.hpp"
|
@@ -224,12 +226,14 @@ struct WindowInputColumn {
|
|
224
226
|
}
|
225
227
|
|
226
228
|
void Append(DataChunk &input_chunk) {
|
227
|
-
if (input_expr.expr
|
228
|
-
|
229
|
-
auto &source = input_expr.chunk.data[0];
|
230
|
-
const auto source_count = input_expr.chunk.size();
|
229
|
+
if (input_expr.expr) {
|
230
|
+
const auto source_count = input_chunk.size();
|
231
231
|
D_ASSERT(count + source_count <= capacity);
|
232
|
-
|
232
|
+
if (!input_expr.scalar || !count) {
|
233
|
+
input_expr.Execute(input_chunk);
|
234
|
+
auto &source = input_expr.chunk.data[0];
|
235
|
+
VectorOperations::Copy(source, *target, source_count, 0, count);
|
236
|
+
}
|
233
237
|
count += source_count;
|
234
238
|
}
|
235
239
|
}
|
@@ -527,11 +531,17 @@ void WindowBoundariesState::Update(const idx_t row_idx, WindowInputColumn &range
|
|
527
531
|
bounds.window_start = bounds.peer_start;
|
528
532
|
break;
|
529
533
|
case WindowBoundary::EXPR_PRECEDING_ROWS: {
|
530
|
-
|
534
|
+
if (!TrySubtractOperator::Operation(int64_t(row_idx), boundary_start.GetCell<int64_t>(expr_idx),
|
535
|
+
bounds.window_start)) {
|
536
|
+
throw OutOfRangeException("Overflow computing ROWS PRECEDING start");
|
537
|
+
}
|
531
538
|
break;
|
532
539
|
}
|
533
540
|
case WindowBoundary::EXPR_FOLLOWING_ROWS: {
|
534
|
-
|
541
|
+
if (!TryAddOperator::Operation(int64_t(row_idx), boundary_start.GetCell<int64_t>(expr_idx),
|
542
|
+
bounds.window_start)) {
|
543
|
+
throw OutOfRangeException("Overflow computing ROWS FOLLOWING start");
|
544
|
+
}
|
535
545
|
break;
|
536
546
|
}
|
537
547
|
case WindowBoundary::EXPR_PRECEDING_RANGE: {
|
@@ -567,10 +577,16 @@ void WindowBoundariesState::Update(const idx_t row_idx, WindowInputColumn &range
|
|
567
577
|
bounds.window_end = bounds.partition_end;
|
568
578
|
break;
|
569
579
|
case WindowBoundary::EXPR_PRECEDING_ROWS:
|
570
|
-
|
580
|
+
if (!TrySubtractOperator::Operation(int64_t(row_idx + 1), boundary_end.GetCell<int64_t>(expr_idx),
|
581
|
+
bounds.window_end)) {
|
582
|
+
throw OutOfRangeException("Overflow computing ROWS PRECEDING end");
|
583
|
+
}
|
571
584
|
break;
|
572
585
|
case WindowBoundary::EXPR_FOLLOWING_ROWS:
|
573
|
-
|
586
|
+
if (!TryAddOperator::Operation(int64_t(row_idx + 1), boundary_end.GetCell<int64_t>(expr_idx),
|
587
|
+
bounds.window_end)) {
|
588
|
+
throw OutOfRangeException("Overflow computing ROWS FOLLOWING end");
|
589
|
+
}
|
574
590
|
break;
|
575
591
|
case WindowBoundary::EXPR_PRECEDING_RANGE: {
|
576
592
|
if (boundary_end.CellIsNull(expr_idx)) {
|
@@ -41,7 +41,7 @@ unique_ptr<OperatorState> PhysicalFilter::GetOperatorState(ExecutionContext &con
|
|
41
41
|
|
42
42
|
OperatorResultType PhysicalFilter::ExecuteInternal(ExecutionContext &context, DataChunk &input, DataChunk &chunk,
|
43
43
|
GlobalOperatorState &gstate, OperatorState &state_p) const {
|
44
|
-
auto &state = (
|
44
|
+
auto &state = state_p.Cast<FilterState>();
|
45
45
|
idx_t result_count = state.executor.SelectExpression(input, state.sel);
|
46
46
|
if (result_count == input.size()) {
|
47
47
|
// nothing was filtered: skip adding any selection vectors
|
@@ -20,10 +20,14 @@ void PhysicalReset::ResetExtensionVariable(ExecutionContext &context, DBConfig &
|
|
20
20
|
}
|
21
21
|
|
22
22
|
SourceResultType PhysicalReset::GetData(ExecutionContext &context, DataChunk &chunk, OperatorSourceInput &input) const {
|
23
|
+
auto &config = DBConfig::GetConfig(context.client);
|
24
|
+
if (config.options.lock_configuration) {
|
25
|
+
throw InvalidInputException("Cannot reset configuration option \"%s\" - the configuration has been locked",
|
26
|
+
name);
|
27
|
+
}
|
23
28
|
auto option = DBConfig::GetOptionByName(name);
|
24
29
|
if (!option) {
|
25
30
|
// check if this is an extra extension variable
|
26
|
-
auto &config = DBConfig::GetConfig(context.client);
|
27
31
|
auto entry = config.extension_parameters.find(name);
|
28
32
|
if (entry == config.extension_parameters.end()) {
|
29
33
|
throw Catalog::UnrecognizedConfigurationError(context.client, name);
|
@@ -49,7 +53,6 @@ SourceResultType PhysicalReset::GetData(ExecutionContext &context, DataChunk &ch
|
|
49
53
|
throw CatalogException("option \"%s\" cannot be reset globally", name);
|
50
54
|
}
|
51
55
|
auto &db = DatabaseInstance::GetDatabase(context.client);
|
52
|
-
auto &config = DBConfig::GetConfig(context.client);
|
53
56
|
config.ResetOption(&db, *option);
|
54
57
|
break;
|
55
58
|
}
|
@@ -23,10 +23,14 @@ void PhysicalSet::SetExtensionVariable(ClientContext &context, ExtensionOption &
|
|
23
23
|
}
|
24
24
|
|
25
25
|
SourceResultType PhysicalSet::GetData(ExecutionContext &context, DataChunk &chunk, OperatorSourceInput &input) const {
|
26
|
+
auto &config = DBConfig::GetConfig(context.client);
|
27
|
+
if (config.options.lock_configuration) {
|
28
|
+
throw InvalidInputException("Cannot change configuration option \"%s\" - the configuration has been locked",
|
29
|
+
name);
|
30
|
+
}
|
26
31
|
auto option = DBConfig::GetOptionByName(name);
|
27
32
|
if (!option) {
|
28
33
|
// check if this is an extra extension variable
|
29
|
-
auto &config = DBConfig::GetConfig(context.client);
|
30
34
|
auto entry = config.extension_parameters.find(name);
|
31
35
|
if (entry == config.extension_parameters.end()) {
|
32
36
|
throw Catalog::UnrecognizedConfigurationError(context.client, name);
|
@@ -63,7 +63,7 @@ void OuterJoinMarker::ConstructLeftJoinResult(DataChunk &left, DataChunk &result
|
|
63
63
|
}
|
64
64
|
|
65
65
|
idx_t OuterJoinMarker::MaxThreads() const {
|
66
|
-
return count / (STANDARD_VECTOR_SIZE *
|
66
|
+
return count / (STANDARD_VECTOR_SIZE * 10ULL);
|
67
67
|
}
|
68
68
|
|
69
69
|
void OuterJoinMarker::InitializeScan(ColumnDataCollection &data, OuterJoinGlobalScanState &gstate) {
|
@@ -168,7 +168,7 @@ unique_ptr<OperatorState> PerfectHashJoinExecutor::GetOperatorState(ExecutionCon
|
|
168
168
|
|
169
169
|
OperatorResultType PerfectHashJoinExecutor::ProbePerfectHashTable(ExecutionContext &context, DataChunk &input,
|
170
170
|
DataChunk &result, OperatorState &state_p) {
|
171
|
-
auto &state = (
|
171
|
+
auto &state = state_p.Cast<PerfectHashJoinState>();
|
172
172
|
// keeps track of how many probe keys have a match
|
173
173
|
idx_t probe_sel_count = 0;
|
174
174
|
|
@@ -305,7 +305,7 @@ void AsOfLocalState::ResolveJoinKeys(DataChunk &input) {
|
|
305
305
|
|
306
306
|
DataChunk payload_chunk;
|
307
307
|
payload_chunk.InitializeEmpty({LogicalType::UINTEGER});
|
308
|
-
FlatVector::SetData(payload_chunk.data[0], (
|
308
|
+
FlatVector::SetData(payload_chunk.data[0], data_ptr_cast(lhs_sel.data()));
|
309
309
|
payload_chunk.SetCardinality(lhs_valid);
|
310
310
|
local_sort.SinkChunk(lhs_keys, payload_chunk);
|
311
311
|
|
@@ -338,7 +338,7 @@ void AsOfLocalState::ResolveJoin(DataChunk &input, bool *found_match, std::pair<
|
|
338
338
|
// But they may be constant, so unify.
|
339
339
|
UnifiedVectorFormat bin_unified;
|
340
340
|
bin_vector.ToUnifiedFormat(lhs_valid, bin_unified);
|
341
|
-
const auto bins = (
|
341
|
+
const auto bins = UnifiedVectorFormat::GetData<hash_t>(bin_unified);
|
342
342
|
|
343
343
|
hash_t prev_bin = global_partition.bin_groups.size();
|
344
344
|
optional_ptr<PartitionGlobalHashGroup> hash_group;
|
@@ -111,7 +111,7 @@ OperatorResultType PhysicalBlockwiseNLJoin::ExecuteInternal(ExecutionContext &co
|
|
111
111
|
DataChunk &chunk, GlobalOperatorState &gstate_p,
|
112
112
|
OperatorState &state_p) const {
|
113
113
|
D_ASSERT(input.size() > 0);
|
114
|
-
auto &state = (
|
114
|
+
auto &state = state_p.Cast<BlockwiseNLJoinState>();
|
115
115
|
auto &gstate = sink_state->Cast<BlockwiseNLJoinGlobalState>();
|
116
116
|
|
117
117
|
if (gstate.right_chunks.Count() == 0) {
|
@@ -244,7 +244,7 @@ unique_ptr<GlobalSourceState> PhysicalBlockwiseNLJoin::GetGlobalSourceState(Clie
|
|
244
244
|
|
245
245
|
unique_ptr<LocalSourceState> PhysicalBlockwiseNLJoin::GetLocalSourceState(ExecutionContext &context,
|
246
246
|
GlobalSourceState &gstate) const {
|
247
|
-
return make_uniq<BlockwiseNLJoinLocalScanState>(*this, (
|
247
|
+
return make_uniq<BlockwiseNLJoinLocalScanState>(*this, gstate.Cast<BlockwiseNLJoinGlobalScanState>());
|
248
248
|
}
|
249
249
|
|
250
250
|
SourceResultType PhysicalBlockwiseNLJoin::GetData(ExecutionContext &context, DataChunk &chunk,
|
@@ -252,8 +252,8 @@ SourceResultType PhysicalBlockwiseNLJoin::GetData(ExecutionContext &context, Dat
|
|
252
252
|
D_ASSERT(IsRightOuterJoin(join_type));
|
253
253
|
// check if we need to scan any unmatched tuples from the RHS for the full/right outer join
|
254
254
|
auto &sink = sink_state->Cast<BlockwiseNLJoinGlobalState>();
|
255
|
-
auto &gstate =
|
256
|
-
auto &lstate =
|
255
|
+
auto &gstate = input.global_state.Cast<BlockwiseNLJoinGlobalScanState>();
|
256
|
+
auto &lstate = input.local_state.Cast<BlockwiseNLJoinLocalScanState>();
|
257
257
|
|
258
258
|
// if the LHS is exhausted in a FULL/RIGHT OUTER JOIN, we scan chunks we still need to output
|
259
259
|
sink.right_outer.Scan(gstate.scan_state, lstate.scan_state, chunk);
|
@@ -67,7 +67,7 @@ PhysicalIndexJoin::PhysicalIndexJoin(LogicalOperator &op, unique_ptr<PhysicalOpe
|
|
67
67
|
left_projection_map(left_projection_map_p), right_projection_map(std::move(right_projection_map_p)),
|
68
68
|
index(index_p), conditions(std::move(cond)), join_type(join_type), lhs_first(lhs_first) {
|
69
69
|
D_ASSERT(right->type == PhysicalOperatorType::TABLE_SCAN);
|
70
|
-
auto &tbl_scan = (
|
70
|
+
auto &tbl_scan = right->Cast<PhysicalTableScan>();
|
71
71
|
column_ids = std::move(column_ids_p);
|
72
72
|
children.push_back(std::move(left));
|
73
73
|
children.push_back(std::move(right));
|
@@ -109,7 +109,7 @@ unique_ptr<OperatorState> PhysicalIndexJoin::GetOperatorState(ExecutionContext &
|
|
109
109
|
|
110
110
|
void PhysicalIndexJoin::Output(ExecutionContext &context, DataChunk &input, DataChunk &chunk,
|
111
111
|
OperatorState &state_p) const {
|
112
|
-
auto &phy_tbl_scan =
|
112
|
+
auto &phy_tbl_scan = children[1]->Cast<PhysicalTableScan>();
|
113
113
|
auto &bind_tbl = phy_tbl_scan.bind_data->Cast<TableScanBindData>();
|
114
114
|
auto &transaction = DuckTransaction::Get(context.client, bind_tbl.table.catalog);
|
115
115
|
auto &state = state_p.Cast<IndexJoinOperatorState>();
|
@@ -139,7 +139,7 @@ void PhysicalIndexJoin::Output(ExecutionContext &context, DataChunk &input, Data
|
|
139
139
|
}
|
140
140
|
state.rhs_chunk.Reset();
|
141
141
|
state.fetch_state = make_uniq<ColumnFetchState>();
|
142
|
-
Vector row_ids(LogicalType::ROW_TYPE, (
|
142
|
+
Vector row_ids(LogicalType::ROW_TYPE, data_ptr_cast(&fetch_rows[0]));
|
143
143
|
tbl.Fetch(transaction, state.rhs_chunk, fetch_ids, row_ids, output_sel_idx, *state.fetch_state);
|
144
144
|
}
|
145
145
|
|
@@ -443,7 +443,7 @@ unique_ptr<GlobalSourceState> PhysicalNestedLoopJoin::GetGlobalSourceState(Clien
|
|
443
443
|
|
444
444
|
unique_ptr<LocalSourceState> PhysicalNestedLoopJoin::GetLocalSourceState(ExecutionContext &context,
|
445
445
|
GlobalSourceState &gstate) const {
|
446
|
-
return make_uniq<NestedLoopJoinLocalScanState>(*this, (
|
446
|
+
return make_uniq<NestedLoopJoinLocalScanState>(*this, gstate.Cast<NestedLoopJoinGlobalScanState>());
|
447
447
|
}
|
448
448
|
|
449
449
|
SourceResultType PhysicalNestedLoopJoin::GetData(ExecutionContext &context, DataChunk &chunk,
|
@@ -451,8 +451,8 @@ SourceResultType PhysicalNestedLoopJoin::GetData(ExecutionContext &context, Data
|
|
451
451
|
D_ASSERT(IsRightOuterJoin(join_type));
|
452
452
|
// check if we need to scan any unmatched tuples from the RHS for the full/right outer join
|
453
453
|
auto &sink = sink_state->Cast<NestedLoopJoinGlobalState>();
|
454
|
-
auto &gstate =
|
455
|
-
auto &lstate =
|
454
|
+
auto &gstate = input.global_state.Cast<NestedLoopJoinGlobalScanState>();
|
455
|
+
auto &lstate = input.local_state.Cast<NestedLoopJoinLocalScanState>();
|
456
456
|
|
457
457
|
// if the LHS is exhausted in a FULL/RIGHT OUTER JOIN, we scan chunks we still need to output
|
458
458
|
sink.right_outer.Scan(gstate.scan_state, lstate.scan_state, chunk);
|
@@ -385,7 +385,7 @@ static idx_t MergeJoinSimpleBlocks(PiecewiseMergeJoinState &lstate, MergeJoinGlo
|
|
385
385
|
|
386
386
|
void PhysicalPiecewiseMergeJoin::ResolveSimpleJoin(ExecutionContext &context, DataChunk &input, DataChunk &chunk,
|
387
387
|
OperatorState &state_p) const {
|
388
|
-
auto &state = (
|
388
|
+
auto &state = state_p.Cast<PiecewiseMergeJoinState>();
|
389
389
|
auto &gstate = sink_state->Cast<MergeJoinGlobalState>();
|
390
390
|
|
391
391
|
state.ResolveJoinKeys(input);
|
@@ -507,7 +507,7 @@ static idx_t MergeJoinComplexBlocks(BlockMergeInfo &l, BlockMergeInfo &r, const
|
|
507
507
|
|
508
508
|
OperatorResultType PhysicalPiecewiseMergeJoin::ResolveComplexJoin(ExecutionContext &context, DataChunk &input,
|
509
509
|
DataChunk &chunk, OperatorState &state_p) const {
|
510
|
-
auto &state = (
|
510
|
+
auto &state = state_p.Cast<PiecewiseMergeJoinState>();
|
511
511
|
auto &gstate = sink_state->Cast<MergeJoinGlobalState>();
|
512
512
|
auto &rsorted = *gstate.table->global_sort_state.sorted_blocks[0];
|
513
513
|
const auto left_cols = input.ColumnCount();
|
@@ -682,7 +682,7 @@ SourceResultType PhysicalPiecewiseMergeJoin::GetData(ExecutionContext &context,
|
|
682
682
|
D_ASSERT(IsRightOuterJoin(join_type));
|
683
683
|
// check if we need to scan any unmatched tuples from the RHS for the full/right outer join
|
684
684
|
auto &sink = sink_state->Cast<MergeJoinGlobalState>();
|
685
|
-
auto &state =
|
685
|
+
auto &state = input.global_state.Cast<PiecewiseJoinScanState>();
|
686
686
|
|
687
687
|
lock_guard<mutex> l(state.lock);
|
688
688
|
if (!state.scanner) {
|
@@ -276,7 +276,7 @@ void TopNHeap::Finalize() {
|
|
276
276
|
}
|
277
277
|
|
278
278
|
void TopNHeap::Reduce() {
|
279
|
-
idx_t min_sort_threshold = MaxValue<idx_t>(STANDARD_VECTOR_SIZE *
|
279
|
+
idx_t min_sort_threshold = MaxValue<idx_t>(STANDARD_VECTOR_SIZE * 5ULL, 2ULL * (limit + offset));
|
280
280
|
if (sort_state.count < min_sort_threshold) {
|
281
281
|
// only reduce when we pass two times the limit + offset, or 5 vectors (whichever comes first)
|
282
282
|
return;
|
@@ -186,8 +186,8 @@ static string TrimWhitespace(const string &col_name) {
|
|
186
186
|
|
187
187
|
static string NormalizeColumnName(const string &col_name) {
|
188
188
|
// normalize UTF8 characters to NFKD
|
189
|
-
auto nfkd = utf8proc_NFKD(
|
190
|
-
const string col_name_nfkd = string((
|
189
|
+
auto nfkd = utf8proc_NFKD(reinterpret_cast<const utf8proc_uint8_t *>(col_name.c_str()), col_name.size());
|
190
|
+
const string col_name_nfkd = string(const_char_ptr_cast(nfkd), strlen(const_char_ptr_cast(nfkd)));
|
191
191
|
free(nfkd);
|
192
192
|
|
193
193
|
// only keep ASCII characters 0-9 a-z A-Z and replace spaces with regular whitespace
|
@@ -99,7 +99,7 @@ idx_t CSVFileHandle::Read(void *buffer, idx_t nr_bytes) {
|
|
99
99
|
}
|
100
100
|
// we have data left to read from the file
|
101
101
|
// read directly into the buffer
|
102
|
-
auto bytes_read = file_handle->Read((
|
102
|
+
auto bytes_read = file_handle->Read(char_ptr_cast(buffer) + result_offset, nr_bytes - result_offset);
|
103
103
|
file_size = file_handle->GetFileSize();
|
104
104
|
read_position += bytes_read;
|
105
105
|
if (reset_enabled) {
|
@@ -114,7 +114,7 @@ idx_t CSVFileHandle::Read(void *buffer, idx_t nr_bytes) {
|
|
114
114
|
}
|
115
115
|
cached_buffer = std::move(new_buffer);
|
116
116
|
}
|
117
|
-
memcpy(cached_buffer.get() + buffer_size, (
|
117
|
+
memcpy(cached_buffer.get() + buffer_size, char_ptr_cast(buffer) + result_offset, bytes_read);
|
118
118
|
buffer_size += bytes_read;
|
119
119
|
}
|
120
120
|
|
@@ -279,9 +279,8 @@ unique_ptr<GlobalSinkState> PhysicalBatchInsert::GetGlobalSinkState(ClientContex
|
|
279
279
|
// CREATE TABLE AS
|
280
280
|
D_ASSERT(!insert_table);
|
281
281
|
auto &catalog = schema->catalog;
|
282
|
-
|
283
|
-
|
284
|
-
.get();
|
282
|
+
auto created_table = catalog.CreateTable(catalog.GetCatalogTransaction(context), *schema.get_mutable(), *info);
|
283
|
+
table = &created_table->Cast<TableCatalogEntry>();
|
285
284
|
} else {
|
286
285
|
D_ASSERT(insert_table);
|
287
286
|
D_ASSERT(insert_table->IsDuckTable());
|
@@ -63,7 +63,7 @@ PhysicalInsert::PhysicalInsert(LogicalOperator &op, SchemaCatalogEntry &schema,
|
|
63
63
|
|
64
64
|
void PhysicalInsert::GetInsertInfo(const BoundCreateTableInfo &info, vector<LogicalType> &insert_types,
|
65
65
|
vector<unique_ptr<Expression>> &bound_defaults) {
|
66
|
-
auto &create_info =
|
66
|
+
auto &create_info = info.base->Cast<CreateTableInfo>();
|
67
67
|
for (auto &col : create_info.columns.Physical()) {
|
68
68
|
insert_types.push_back(col.GetType());
|
69
69
|
bound_defaults.push_back(make_uniq<BoundConstantExpression>(Value(col.GetType())));
|
@@ -17,11 +17,11 @@ PhysicalPivot::PhysicalPivot(vector<LogicalType> types_p, unique_ptr<PhysicalOpe
|
|
17
17
|
}
|
18
18
|
// extract the empty aggregate expressions
|
19
19
|
for (auto &aggr_expr : bound_pivot.aggregates) {
|
20
|
-
auto &aggr = (
|
20
|
+
auto &aggr = aggr_expr->Cast<BoundAggregateExpression>();
|
21
21
|
// for each aggregate, initialize an empty aggregate state and finalize it immediately
|
22
22
|
auto state = make_unsafe_uniq_array<data_t>(aggr.function.state_size());
|
23
23
|
aggr.function.initialize(state.get());
|
24
|
-
Vector state_vector(Value::POINTER((
|
24
|
+
Vector state_vector(Value::POINTER(CastPointerToValue(state.get())));
|
25
25
|
Vector result_vector(aggr_expr->return_type);
|
26
26
|
AggregateInputData aggr_input_data(aggr.bind_info.get(), Allocator::DefaultAllocator());
|
27
27
|
aggr.function.finalize(state_vector, aggr_input_data, result_vector, 1, 0);
|
@@ -27,7 +27,7 @@ PhysicalProjection::PhysicalProjection(vector<LogicalType> types, vector<unique_
|
|
27
27
|
|
28
28
|
OperatorResultType PhysicalProjection::Execute(ExecutionContext &context, DataChunk &input, DataChunk &chunk,
|
29
29
|
GlobalOperatorState &gstate, OperatorState &state_p) const {
|
30
|
-
auto &state = (
|
30
|
+
auto &state = state_p.Cast<ProjectionState>();
|
31
31
|
state.executor.Execute(input, chunk);
|
32
32
|
return OperatorResultType::NEED_MORE_INPUT;
|
33
33
|
}
|
@@ -65,7 +65,7 @@ void UnnestOperatorState::SetLongestListLength() {
|
|
65
65
|
if (vector_data.validity.RowIsValid(current_idx)) {
|
66
66
|
|
67
67
|
// check if this list is longer
|
68
|
-
auto list_data = (
|
68
|
+
auto list_data = UnifiedVectorFormat::GetData<list_entry_t>(vector_data);
|
69
69
|
auto list_entry = list_data[current_idx];
|
70
70
|
if (list_entry.length > longest_list_length) {
|
71
71
|
longest_list_length = list_entry.length;
|
@@ -98,7 +98,7 @@ static void UnnestNull(idx_t start, idx_t end, Vector &result) {
|
|
98
98
|
template <class T>
|
99
99
|
static void TemplatedUnnest(UnifiedVectorFormat &vector_data, idx_t start, idx_t end, Vector &result) {
|
100
100
|
|
101
|
-
auto source_data = (
|
101
|
+
auto source_data = UnifiedVectorFormat::GetData<T>(vector_data);
|
102
102
|
auto &source_mask = vector_data.validity;
|
103
103
|
|
104
104
|
D_ASSERT(result.GetVectorType() == VectorType::FLAT_VECTOR);
|
@@ -314,7 +314,7 @@ OperatorResultType PhysicalUnnest::ExecuteInternal(ExecutionContext &context, Da
|
|
314
314
|
|
315
315
|
} else {
|
316
316
|
|
317
|
-
auto list_data = (
|
317
|
+
auto list_data = UnifiedVectorFormat::GetData<list_entry_t>(vector_data);
|
318
318
|
auto list_entry = list_data[current_idx];
|
319
319
|
|
320
320
|
idx_t list_count = 0;
|
@@ -1,6 +1,7 @@
|
|
1
1
|
#include "duckdb/execution/operator/scan/physical_column_data_scan.hpp"
|
2
2
|
|
3
3
|
#include "duckdb/execution/operator/join/physical_delim_join.hpp"
|
4
|
+
#include "duckdb/execution/operator/aggregate/physical_hash_aggregate.hpp"
|
4
5
|
#include "duckdb/parallel/meta_pipeline.hpp"
|
5
6
|
#include "duckdb/parallel/pipeline.hpp"
|
6
7
|
|
@@ -60,7 +61,7 @@ void PhysicalColumnDataScan::BuildPipelines(Pipeline ¤t, MetaPipeline &met
|
|
60
61
|
D_ASSERT(delim_sink->type == PhysicalOperatorType::DELIM_JOIN);
|
61
62
|
auto &delim_join = delim_sink->Cast<PhysicalDelimJoin>();
|
62
63
|
current.AddDependency(delim_dependency);
|
63
|
-
state.SetPipelineSource(current,
|
64
|
+
state.SetPipelineSource(current, delim_join.distinct->Cast<PhysicalOperator>());
|
64
65
|
return;
|
65
66
|
}
|
66
67
|
case PhysicalOperatorType::RECURSIVE_CTE_SCAN:
|
@@ -22,7 +22,7 @@ unique_ptr<OperatorState> PhysicalExpressionScan::GetOperatorState(ExecutionCont
|
|
22
22
|
|
23
23
|
OperatorResultType PhysicalExpressionScan::Execute(ExecutionContext &context, DataChunk &input, DataChunk &chunk,
|
24
24
|
GlobalOperatorState &gstate, OperatorState &state_p) const {
|
25
|
-
auto &state = (
|
25
|
+
auto &state = state_p.Cast<ExpressionScanState>();
|
26
26
|
|
27
27
|
for (; chunk.size() + input.size() <= STANDARD_VECTOR_SIZE && state.expression_index < expressions.size();
|
28
28
|
state.expression_index++) {
|
@@ -19,7 +19,7 @@ PhysicalPositionalScan::PhysicalPositionalScan(vector<LogicalType> types, unique
|
|
19
19
|
if (left->type == PhysicalOperatorType::TABLE_SCAN) {
|
20
20
|
child_tables.emplace_back(std::move(left));
|
21
21
|
} else if (left->type == PhysicalOperatorType::POSITIONAL_SCAN) {
|
22
|
-
auto &left_scan = (
|
22
|
+
auto &left_scan = left->Cast<PhysicalPositionalScan>();
|
23
23
|
child_tables = std::move(left_scan.child_tables);
|
24
24
|
} else {
|
25
25
|
throw InternalException("Invalid left input for PhysicalPositionalScan");
|
@@ -28,7 +28,7 @@ PhysicalPositionalScan::PhysicalPositionalScan(vector<LogicalType> types, unique
|
|
28
28
|
if (right->type == PhysicalOperatorType::TABLE_SCAN) {
|
29
29
|
child_tables.emplace_back(std::move(right));
|
30
30
|
} else if (right->type == PhysicalOperatorType::POSITIONAL_SCAN) {
|
31
|
-
auto &right_scan = (
|
31
|
+
auto &right_scan = right->Cast<PhysicalPositionalScan>();
|
32
32
|
auto &right_tables = right_scan.child_tables;
|
33
33
|
child_tables.reserve(child_tables.size() + right_tables.size());
|
34
34
|
std::move(right_tables.begin(), right_tables.end(), std::back_inserter(child_tables));
|
@@ -45,7 +45,7 @@ SinkResultType PhysicalCreateType::Sink(ExecutionContext &context, DataChunk &ch
|
|
45
45
|
gstate.capacity *= 2;
|
46
46
|
}
|
47
47
|
|
48
|
-
auto src_ptr = (
|
48
|
+
auto src_ptr = UnifiedVectorFormat::GetData<string_t>(sdata);
|
49
49
|
auto result_ptr = FlatVector::GetData<string_t>(gstate.result);
|
50
50
|
// Input vector has NULL value, we just throw an exception
|
51
51
|
for (idx_t i = 0; i < chunk.size(); i++) {
|
@@ -51,7 +51,7 @@ PerfectAggregateHashTable::~PerfectAggregateHashTable() {
|
|
51
51
|
template <class T>
|
52
52
|
static void ComputeGroupLocationTemplated(UnifiedVectorFormat &group_data, Value &min, uintptr_t *address_data,
|
53
53
|
idx_t current_shift, idx_t count) {
|
54
|
-
auto data = (
|
54
|
+
auto data = UnifiedVectorFormat::GetData<T>(group_data);
|
55
55
|
auto min_val = min.GetValueUnsafe<T>();
|
56
56
|
if (!group_data.validity.AllValid()) {
|
57
57
|
for (idx_t i = 0; i < count; i++) {
|
@@ -186,7 +186,7 @@ static bool PlanIndexJoin(ClientContext &context, LogicalComparisonJoin &op, uni
|
|
186
186
|
}
|
187
187
|
// index joins are not supported if there are pushed down table filters
|
188
188
|
D_ASSERT(right->type == PhysicalOperatorType::TABLE_SCAN);
|
189
|
-
auto &tbl_scan = (
|
189
|
+
auto &tbl_scan = right->Cast<PhysicalTableScan>();
|
190
190
|
// if (tbl_scan.table_filters && !tbl_scan.table_filters->filters.empty()) {
|
191
191
|
// return false;
|
192
192
|
// }
|