duckdb 0.8.1-dev0.0 → 0.8.1-dev125.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/package.json +1 -1
- package/src/duckdb/extension/icu/icu-datepart.cpp +1 -1
- package/src/duckdb/extension/json/include/json_common.hpp +1 -1
- package/src/duckdb/extension/json/include/json_executors.hpp +1 -1
- package/src/duckdb/extension/json/json_functions/json_create.cpp +6 -6
- package/src/duckdb/extension/json/json_functions/json_merge_patch.cpp +1 -1
- package/src/duckdb/extension/json/json_functions/json_transform.cpp +1 -1
- 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 -8
- 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 +32 -12
- package/src/duckdb/src/catalog/catalog_set.cpp +1 -1
- 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 +183 -94
- package/src/duckdb/src/common/adbc/driver_manager.cpp +10 -2
- 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/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/tuple_data_allocator.cpp +5 -3
- package/src/duckdb/src/common/types/row/tuple_data_scatter_gather.cpp +17 -17
- package/src/duckdb/src/common/types/string_heap.cpp +1 -1
- package/src/duckdb/src/common/types/value.cpp +2 -2
- package/src/duckdb/src/common/types/vector.cpp +101 -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 +43 -43
- 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 +83 -119
- 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/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/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 +1 -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 +33 -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/filter/physical_filter.cpp +1 -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/csv_reader_options.cpp +2 -0
- 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/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/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.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 +4 -4
- 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 +4 -7
- package/src/duckdb/src/function/table/repeat.cpp +2 -2
- package/src/duckdb/src/function/table/repeat_row.cpp +2 -2
- package/src/duckdb/src/function/table/system/duckdb_functions.cpp +1 -1
- package/src/duckdb/src/function/table/system/test_vector_types.cpp +1 -1
- 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 -2
- 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 +6 -2
- 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/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/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 +6 -6
- package/src/duckdb/src/include/duckdb/main/capi/cast/utils.hpp +1 -1
- 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/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/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 +1 -1
- 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 +1 -1
- 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/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 +2 -2
- package/src/duckdb/src/include/duckdb/planner/operator/logical_pivot.hpp +3 -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 +1 -1
- 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/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 +2 -2
- 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/join_order/join_order_optimizer.cpp +4 -7
- 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/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 +3 -3
- 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 +27 -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 +6 -6
- 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_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 +13 -5
- 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 +1 -1
- package/src/duckdb/src/planner/binder/tableref/bind_table_function.cpp +14 -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_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/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 +2 -2
- 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 +8 -7
- 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 +1 -1
- 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/src_backend_parser_gram.cpp +13479 -13564
- package/src/duckdb/third_party/pcg/pcg_extras.hpp +1 -1
@@ -58,7 +58,7 @@ struct UnaryStringOperator {
|
|
58
58
|
struct UnaryExecutor {
|
59
59
|
private:
|
60
60
|
template <class INPUT_TYPE, class RESULT_TYPE, class OPWRAPPER, class OP>
|
61
|
-
static inline void ExecuteLoop(INPUT_TYPE *__restrict ldata, RESULT_TYPE *__restrict result_data, idx_t count,
|
61
|
+
static inline void ExecuteLoop(const INPUT_TYPE *__restrict ldata, RESULT_TYPE *__restrict result_data, idx_t count,
|
62
62
|
const SelectionVector *__restrict sel_vector, ValidityMask &mask,
|
63
63
|
ValidityMask &result_mask, void *dataptr, bool adds_nulls) {
|
64
64
|
#ifdef DEBUG
|
@@ -95,7 +95,7 @@ private:
|
|
95
95
|
}
|
96
96
|
|
97
97
|
template <class INPUT_TYPE, class RESULT_TYPE, class OPWRAPPER, class OP>
|
98
|
-
static inline void ExecuteFlat(INPUT_TYPE *__restrict ldata, RESULT_TYPE *__restrict result_data, idx_t count,
|
98
|
+
static inline void ExecuteFlat(const INPUT_TYPE *__restrict ldata, RESULT_TYPE *__restrict result_data, idx_t count,
|
99
99
|
ValidityMask &mask, ValidityMask &result_mask, void *dataptr, bool adds_nulls) {
|
100
100
|
ASSERT_RESTRICT(ldata, ldata + count, result_data, result_data + count);
|
101
101
|
|
@@ -175,7 +175,7 @@ private:
|
|
175
175
|
|
176
176
|
result.SetVectorType(VectorType::FLAT_VECTOR);
|
177
177
|
auto result_data = FlatVector::GetData<RESULT_TYPE>(result);
|
178
|
-
auto ldata = (
|
178
|
+
auto ldata = UnifiedVectorFormat::GetData<INPUT_TYPE>(vdata);
|
179
179
|
|
180
180
|
ExecuteLoop<INPUT_TYPE, RESULT_TYPE, OPWRAPPER, OP>(ldata, result_data, count, vdata.sel, vdata.validity,
|
181
181
|
FlatVector::Validity(result), dataptr, adds_nulls);
|
@@ -24,49 +24,45 @@ struct CorrState {
|
|
24
24
|
// CORR(y, x) = COVAR_POP(y, x) / (STDDEV_POP(x) * STDDEV_POP(y))
|
25
25
|
struct CorrOperation {
|
26
26
|
template <class STATE>
|
27
|
-
static void Initialize(STATE
|
28
|
-
CovarOperation::Initialize<CovarState>(
|
29
|
-
STDDevBaseOperation::Initialize<StddevState>(
|
30
|
-
STDDevBaseOperation::Initialize<StddevState>(
|
27
|
+
static void Initialize(STATE &state) {
|
28
|
+
CovarOperation::Initialize<CovarState>(state.cov_pop);
|
29
|
+
STDDevBaseOperation::Initialize<StddevState>(state.dev_pop_x);
|
30
|
+
STDDevBaseOperation::Initialize<StddevState>(state.dev_pop_y);
|
31
31
|
}
|
32
32
|
|
33
33
|
template <class A_TYPE, class B_TYPE, class STATE, class OP>
|
34
|
-
static void Operation(STATE
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
STDDevBaseOperation::Operation<A_TYPE, StddevState, OP>(&state->dev_pop_x, aggr_input_data, x_data, amask,
|
39
|
-
xidx);
|
40
|
-
STDDevBaseOperation::Operation<B_TYPE, StddevState, OP>(&state->dev_pop_y, aggr_input_data, y_data, bmask,
|
41
|
-
yidx);
|
34
|
+
static void Operation(STATE &state, const A_TYPE &x_input, const B_TYPE &y_input, AggregateBinaryInput &idata) {
|
35
|
+
CovarOperation::Operation<A_TYPE, B_TYPE, CovarState, OP>(state.cov_pop, x_input, y_input, idata);
|
36
|
+
STDDevBaseOperation::Execute<A_TYPE, StddevState>(state.dev_pop_x, x_input);
|
37
|
+
STDDevBaseOperation::Execute<B_TYPE, StddevState>(state.dev_pop_y, y_input);
|
42
38
|
}
|
43
39
|
|
44
40
|
template <class STATE, class OP>
|
45
|
-
static void Combine(const STATE &source, STATE
|
46
|
-
CovarOperation::Combine<CovarState, OP>(source.cov_pop,
|
47
|
-
STDDevBaseOperation::Combine<StddevState, OP>(source.dev_pop_x,
|
48
|
-
STDDevBaseOperation::Combine<StddevState, OP>(source.dev_pop_y,
|
41
|
+
static void Combine(const STATE &source, STATE &target, AggregateInputData &aggr_input_data) {
|
42
|
+
CovarOperation::Combine<CovarState, OP>(source.cov_pop, target.cov_pop, aggr_input_data);
|
43
|
+
STDDevBaseOperation::Combine<StddevState, OP>(source.dev_pop_x, target.dev_pop_x, aggr_input_data);
|
44
|
+
STDDevBaseOperation::Combine<StddevState, OP>(source.dev_pop_y, target.dev_pop_y, aggr_input_data);
|
49
45
|
}
|
50
46
|
|
51
47
|
template <class T, class STATE>
|
52
|
-
static void Finalize(
|
53
|
-
if (state
|
54
|
-
|
48
|
+
static void Finalize(STATE &state, T &target, AggregateFinalizeData &finalize_data) {
|
49
|
+
if (state.cov_pop.count == 0 || state.dev_pop_x.count == 0 || state.dev_pop_y.count == 0) {
|
50
|
+
finalize_data.ReturnNull();
|
55
51
|
} else {
|
56
|
-
auto cov = state
|
57
|
-
auto std_x = state
|
52
|
+
auto cov = state.cov_pop.co_moment / state.cov_pop.count;
|
53
|
+
auto std_x = state.dev_pop_x.count > 1 ? sqrt(state.dev_pop_x.dsquared / state.dev_pop_x.count) : 0;
|
58
54
|
if (!Value::DoubleIsFinite(std_x)) {
|
59
55
|
throw OutOfRangeException("STDDEV_POP for X is out of range!");
|
60
56
|
}
|
61
|
-
auto std_y = state
|
57
|
+
auto std_y = state.dev_pop_y.count > 1 ? sqrt(state.dev_pop_y.dsquared / state.dev_pop_y.count) : 0;
|
62
58
|
if (!Value::DoubleIsFinite(std_y)) {
|
63
59
|
throw OutOfRangeException("STDDEV_POP for Y is out of range!");
|
64
60
|
}
|
65
61
|
if (std_x * std_y == 0) {
|
66
|
-
|
62
|
+
finalize_data.ReturnNull();
|
67
63
|
return;
|
68
64
|
}
|
69
|
-
target
|
65
|
+
target = cov / (std_x * std_y);
|
70
66
|
}
|
71
67
|
}
|
72
68
|
|
@@ -21,51 +21,48 @@ struct CovarState {
|
|
21
21
|
|
22
22
|
struct CovarOperation {
|
23
23
|
template <class STATE>
|
24
|
-
static void Initialize(STATE
|
25
|
-
state
|
26
|
-
state
|
27
|
-
state
|
28
|
-
state
|
24
|
+
static void Initialize(STATE &state) {
|
25
|
+
state.count = 0;
|
26
|
+
state.meanx = 0;
|
27
|
+
state.meany = 0;
|
28
|
+
state.co_moment = 0;
|
29
29
|
}
|
30
30
|
|
31
31
|
template <class A_TYPE, class B_TYPE, class STATE, class OP>
|
32
|
-
static void Operation(STATE
|
33
|
-
ValidityMask &bmask, idx_t xidx, idx_t yidx) {
|
32
|
+
static void Operation(STATE &state, const A_TYPE &x, const B_TYPE &y, AggregateBinaryInput &idata) {
|
34
33
|
// update running mean and d^2
|
35
|
-
const uint64_t n = ++(state
|
34
|
+
const uint64_t n = ++(state.count);
|
36
35
|
|
37
|
-
const
|
38
|
-
const double
|
39
|
-
const double meanx = state->meanx + dx / n;
|
36
|
+
const double dx = (x - state.meanx);
|
37
|
+
const double meanx = state.meanx + dx / n;
|
40
38
|
|
41
|
-
const
|
42
|
-
const double
|
43
|
-
const double meany = state->meany + dy / n;
|
39
|
+
const double dy = (y - state.meany);
|
40
|
+
const double meany = state.meany + dy / n;
|
44
41
|
|
45
|
-
const double C = state
|
42
|
+
const double C = state.co_moment + dx * (y - meany);
|
46
43
|
|
47
|
-
state
|
48
|
-
state
|
49
|
-
state
|
44
|
+
state.meanx = meanx;
|
45
|
+
state.meany = meany;
|
46
|
+
state.co_moment = C;
|
50
47
|
}
|
51
48
|
|
52
49
|
template <class STATE, class OP>
|
53
|
-
static void Combine(const STATE &source, STATE
|
54
|
-
if (target
|
55
|
-
|
50
|
+
static void Combine(const STATE &source, STATE &target, AggregateInputData &) {
|
51
|
+
if (target.count == 0) {
|
52
|
+
target = source;
|
56
53
|
} else if (source.count > 0) {
|
57
|
-
const auto count = target
|
58
|
-
const auto meanx = (source.count * source.meanx + target
|
59
|
-
const auto meany = (source.count * source.meany + target
|
54
|
+
const auto count = target.count + source.count;
|
55
|
+
const auto meanx = (source.count * source.meanx + target.count * target.meanx) / count;
|
56
|
+
const auto meany = (source.count * source.meany + target.count * target.meany) / count;
|
60
57
|
|
61
58
|
// Schubert and Gertz SSDBM 2018, equation 21
|
62
|
-
const auto deltax = target
|
63
|
-
const auto deltay = target
|
64
|
-
target
|
65
|
-
source.co_moment + target
|
66
|
-
target
|
67
|
-
target
|
68
|
-
target
|
59
|
+
const auto deltax = target.meanx - source.meanx;
|
60
|
+
const auto deltay = target.meany - source.meany;
|
61
|
+
target.co_moment =
|
62
|
+
source.co_moment + target.co_moment + deltax * deltay * source.count * target.count / count;
|
63
|
+
target.meanx = meanx;
|
64
|
+
target.meany = meany;
|
65
|
+
target.count = count;
|
69
66
|
}
|
70
67
|
}
|
71
68
|
|
@@ -76,22 +73,22 @@ struct CovarOperation {
|
|
76
73
|
|
77
74
|
struct CovarPopOperation : public CovarOperation {
|
78
75
|
template <class T, class STATE>
|
79
|
-
static void Finalize(
|
80
|
-
if (state
|
81
|
-
|
76
|
+
static void Finalize(STATE &state, T &target, AggregateFinalizeData &finalize_data) {
|
77
|
+
if (state.count == 0) {
|
78
|
+
finalize_data.ReturnNull();
|
82
79
|
} else {
|
83
|
-
target
|
80
|
+
target = state.co_moment / state.count;
|
84
81
|
}
|
85
82
|
}
|
86
83
|
};
|
87
84
|
|
88
85
|
struct CovarSampOperation : public CovarOperation {
|
89
86
|
template <class T, class STATE>
|
90
|
-
static void Finalize(
|
91
|
-
if (
|
92
|
-
|
87
|
+
static void Finalize(STATE &state, T &target, AggregateFinalizeData &finalize_data) {
|
88
|
+
if (state.count < 2) {
|
89
|
+
finalize_data.ReturnNull();
|
93
90
|
} else {
|
94
|
-
target
|
91
|
+
target = state.co_moment / (state.count - 1);
|
95
92
|
}
|
96
93
|
}
|
97
94
|
};
|
@@ -23,46 +23,50 @@ struct StddevState {
|
|
23
23
|
// method, DOI: 10.2307/1266577
|
24
24
|
struct STDDevBaseOperation {
|
25
25
|
template <class STATE>
|
26
|
-
static void Initialize(STATE
|
27
|
-
state
|
28
|
-
state
|
29
|
-
state
|
26
|
+
static void Initialize(STATE &state) {
|
27
|
+
state.count = 0;
|
28
|
+
state.mean = 0;
|
29
|
+
state.dsquared = 0;
|
30
30
|
}
|
31
31
|
|
32
|
-
template <class INPUT_TYPE, class STATE
|
33
|
-
static void
|
32
|
+
template <class INPUT_TYPE, class STATE>
|
33
|
+
static void Execute(STATE &state, const INPUT_TYPE &input) {
|
34
34
|
// update running mean and d^2
|
35
|
-
state
|
36
|
-
const double
|
37
|
-
const double
|
38
|
-
const double
|
39
|
-
const double
|
40
|
-
|
41
|
-
|
42
|
-
state
|
43
|
-
|
35
|
+
state.count++;
|
36
|
+
const double mean_differential = (input - state.mean) / state.count;
|
37
|
+
const double new_mean = state.mean + mean_differential;
|
38
|
+
const double dsquared_increment = (input - new_mean) * (input - state.mean);
|
39
|
+
const double new_dsquared = state.dsquared + dsquared_increment;
|
40
|
+
|
41
|
+
state.mean = new_mean;
|
42
|
+
state.dsquared = new_dsquared;
|
43
|
+
|
44
|
+
}
|
45
|
+
|
46
|
+
template <class INPUT_TYPE, class STATE, class OP>
|
47
|
+
static void Operation(STATE &state, const INPUT_TYPE &input, AggregateUnaryInput &) {
|
48
|
+
Execute(state, input);
|
44
49
|
}
|
45
50
|
|
46
51
|
template <class INPUT_TYPE, class STATE, class OP>
|
47
|
-
static void ConstantOperation(STATE
|
48
|
-
ValidityMask &mask, idx_t count) {
|
52
|
+
static void ConstantOperation(STATE &state, const INPUT_TYPE &input, AggregateUnaryInput &unary_input, idx_t count) {
|
49
53
|
for (idx_t i = 0; i < count; i++) {
|
50
|
-
Operation<INPUT_TYPE, STATE, OP>(state,
|
54
|
+
Operation<INPUT_TYPE, STATE, OP>(state, input, unary_input);
|
51
55
|
}
|
52
56
|
}
|
53
57
|
|
54
58
|
template <class STATE, class OP>
|
55
|
-
static void Combine(const STATE &source, STATE
|
56
|
-
if (target
|
57
|
-
|
59
|
+
static void Combine(const STATE &source, STATE &target, AggregateInputData &) {
|
60
|
+
if (target.count == 0) {
|
61
|
+
target = source;
|
58
62
|
} else if (source.count > 0) {
|
59
|
-
const auto count = target
|
60
|
-
const auto mean = (source.count * source.mean + target
|
61
|
-
const auto delta = source.mean - target
|
62
|
-
target
|
63
|
-
source.dsquared + target
|
64
|
-
target
|
65
|
-
target
|
63
|
+
const auto count = target.count + source.count;
|
64
|
+
const auto mean = (source.count * source.mean + target.count * target.mean) / count;
|
65
|
+
const auto delta = source.mean - target.mean;
|
66
|
+
target.dsquared =
|
67
|
+
source.dsquared + target.dsquared + delta * delta * source.count * target.count / count;
|
68
|
+
target.mean = mean;
|
69
|
+
target.count = count;
|
66
70
|
}
|
67
71
|
}
|
68
72
|
|
@@ -73,12 +77,12 @@ struct STDDevBaseOperation {
|
|
73
77
|
|
74
78
|
struct VarSampOperation : public STDDevBaseOperation {
|
75
79
|
template <class T, class STATE>
|
76
|
-
static void Finalize(
|
77
|
-
if (state
|
78
|
-
|
80
|
+
static void Finalize(STATE &state, T &target, AggregateFinalizeData &finalize_data) {
|
81
|
+
if (state.count <= 1) {
|
82
|
+
finalize_data.ReturnNull();
|
79
83
|
} else {
|
80
|
-
target
|
81
|
-
if (!Value::DoubleIsFinite(target
|
84
|
+
target = state.dsquared / (state.count - 1);
|
85
|
+
if (!Value::DoubleIsFinite(target)) {
|
82
86
|
throw OutOfRangeException("VARSAMP is out of range!");
|
83
87
|
}
|
84
88
|
}
|
@@ -87,12 +91,12 @@ struct VarSampOperation : public STDDevBaseOperation {
|
|
87
91
|
|
88
92
|
struct VarPopOperation : public STDDevBaseOperation {
|
89
93
|
template <class T, class STATE>
|
90
|
-
static void Finalize(
|
91
|
-
if (state
|
92
|
-
|
94
|
+
static void Finalize(STATE &state, T &target, AggregateFinalizeData &finalize_data) {
|
95
|
+
if (state.count == 0) {
|
96
|
+
finalize_data.ReturnNull();
|
93
97
|
} else {
|
94
|
-
target
|
95
|
-
if (!Value::DoubleIsFinite(target
|
98
|
+
target = state.count > 1 ? (state.dsquared / state.count) : 0;
|
99
|
+
if (!Value::DoubleIsFinite(target)) {
|
96
100
|
throw OutOfRangeException("VARPOP is out of range!");
|
97
101
|
}
|
98
102
|
}
|
@@ -101,12 +105,12 @@ struct VarPopOperation : public STDDevBaseOperation {
|
|
101
105
|
|
102
106
|
struct STDDevSampOperation : public STDDevBaseOperation {
|
103
107
|
template <class T, class STATE>
|
104
|
-
static void Finalize(
|
105
|
-
if (state
|
106
|
-
|
108
|
+
static void Finalize(STATE &state, T &target, AggregateFinalizeData &finalize_data) {
|
109
|
+
if (state.count <= 1) {
|
110
|
+
finalize_data.ReturnNull();
|
107
111
|
} else {
|
108
|
-
target
|
109
|
-
if (!Value::DoubleIsFinite(target
|
112
|
+
target = sqrt(state.dsquared / (state.count - 1));
|
113
|
+
if (!Value::DoubleIsFinite(target)) {
|
110
114
|
throw OutOfRangeException("STDDEV_SAMP is out of range!");
|
111
115
|
}
|
112
116
|
}
|
@@ -115,12 +119,12 @@ struct STDDevSampOperation : public STDDevBaseOperation {
|
|
115
119
|
|
116
120
|
struct STDDevPopOperation : public STDDevBaseOperation {
|
117
121
|
template <class T, class STATE>
|
118
|
-
static void Finalize(
|
119
|
-
if (state
|
120
|
-
|
122
|
+
static void Finalize(STATE &state, T &target, AggregateFinalizeData &finalize_data) {
|
123
|
+
if (state.count == 0) {
|
124
|
+
finalize_data.ReturnNull();
|
121
125
|
} else {
|
122
|
-
target
|
123
|
-
if (!Value::DoubleIsFinite(target
|
126
|
+
target = state.count > 1 ? sqrt(state.dsquared / state.count) : 0;
|
127
|
+
if (!Value::DoubleIsFinite(target)) {
|
124
128
|
throw OutOfRangeException("STDDEV_POP is out of range!");
|
125
129
|
}
|
126
130
|
}
|
@@ -129,12 +133,12 @@ struct STDDevPopOperation : public STDDevBaseOperation {
|
|
129
133
|
|
130
134
|
struct StandardErrorOfTheMeanOperation : public STDDevBaseOperation {
|
131
135
|
template <class T, class STATE>
|
132
|
-
static void Finalize(
|
133
|
-
if (state
|
134
|
-
|
136
|
+
static void Finalize(STATE &state, T &target, AggregateFinalizeData &finalize_data) {
|
137
|
+
if (state.count == 0) {
|
138
|
+
finalize_data.ReturnNull();
|
135
139
|
} else {
|
136
|
-
target
|
137
|
-
if (!Value::DoubleIsFinite(target
|
140
|
+
target = sqrt(state.dsquared / state.count) / sqrt((state.count));
|
141
|
+
if (!Value::DoubleIsFinite(target)) {
|
138
142
|
throw OutOfRangeException("SEM is out of range!");
|
139
143
|
}
|
140
144
|
}
|
@@ -16,26 +16,25 @@ namespace duckdb {
|
|
16
16
|
|
17
17
|
struct RegrCountFunction {
|
18
18
|
template <class STATE>
|
19
|
-
static void Initialize(STATE
|
20
|
-
|
19
|
+
static void Initialize(STATE &state) {
|
20
|
+
state = 0;
|
21
21
|
}
|
22
22
|
|
23
23
|
template <class STATE, class OP>
|
24
|
-
static void Combine(const STATE &source, STATE
|
25
|
-
|
24
|
+
static void Combine(const STATE &source, STATE &target, AggregateInputData &) {
|
25
|
+
target += source;
|
26
26
|
}
|
27
27
|
|
28
28
|
template <class T, class STATE>
|
29
|
-
static void Finalize(
|
30
|
-
target
|
29
|
+
static void Finalize(STATE &state, T &target, AggregateFinalizeData &finalize_data) {
|
30
|
+
target = state;
|
31
31
|
}
|
32
32
|
static bool IgnoreNull() {
|
33
33
|
return true;
|
34
34
|
}
|
35
35
|
template <class A_TYPE, class B_TYPE, class STATE, class OP>
|
36
|
-
static void Operation(STATE
|
37
|
-
|
38
|
-
*state += 1;
|
36
|
+
static void Operation(STATE &state, const A_TYPE &, const B_TYPE &, AggregateBinaryInput &) {
|
37
|
+
state += 1;
|
39
38
|
}
|
40
39
|
};
|
41
40
|
|
@@ -19,40 +19,38 @@ struct RegrSlopeState {
|
|
19
19
|
|
20
20
|
struct RegrSlopeOperation {
|
21
21
|
template <class STATE>
|
22
|
-
static void Initialize(STATE
|
23
|
-
CovarOperation::Initialize<CovarState>(
|
24
|
-
STDDevBaseOperation::Initialize<StddevState>(
|
22
|
+
static void Initialize(STATE &state) {
|
23
|
+
CovarOperation::Initialize<CovarState>(state.cov_pop);
|
24
|
+
STDDevBaseOperation::Initialize<StddevState>(state.var_pop);
|
25
25
|
}
|
26
26
|
|
27
27
|
template <class A_TYPE, class B_TYPE, class STATE, class OP>
|
28
|
-
static void Operation(STATE
|
29
|
-
|
30
|
-
|
31
|
-
bmask, amask, yidx, xidx);
|
32
|
-
STDDevBaseOperation::Operation<A_TYPE, StddevState, OP>(&state->var_pop, aggr_input_data, y_data, bmask, yidx);
|
28
|
+
static void Operation(STATE &state, const A_TYPE &x, const B_TYPE &y, AggregateBinaryInput &idata) {
|
29
|
+
CovarOperation::Operation<A_TYPE, B_TYPE, CovarState, OP>(state.cov_pop, x, y, idata);
|
30
|
+
STDDevBaseOperation::Execute<A_TYPE, StddevState>(state.var_pop, y);
|
33
31
|
}
|
34
32
|
|
35
33
|
template <class STATE, class OP>
|
36
|
-
static void Combine(const STATE &source, STATE
|
37
|
-
CovarOperation::Combine<CovarState, OP>(source.cov_pop,
|
38
|
-
STDDevBaseOperation::Combine<StddevState, OP>(source.var_pop,
|
34
|
+
static void Combine(const STATE &source, STATE &target, AggregateInputData &aggr_input_data) {
|
35
|
+
CovarOperation::Combine<CovarState, OP>(source.cov_pop, target.cov_pop, aggr_input_data);
|
36
|
+
STDDevBaseOperation::Combine<StddevState, OP>(source.var_pop, target.var_pop, aggr_input_data);
|
39
37
|
}
|
40
38
|
|
41
39
|
template <class T, class STATE>
|
42
|
-
static void Finalize(
|
43
|
-
if (state
|
44
|
-
|
40
|
+
static void Finalize(STATE &state, T &target, AggregateFinalizeData &finalize_data) {
|
41
|
+
if (state.cov_pop.count == 0 || state.var_pop.count == 0) {
|
42
|
+
finalize_data.ReturnNull();
|
45
43
|
} else {
|
46
|
-
auto cov = state
|
47
|
-
auto var_pop = state
|
44
|
+
auto cov = state.cov_pop.co_moment / state.cov_pop.count;
|
45
|
+
auto var_pop = state.var_pop.count > 1 ? (state.var_pop.dsquared / state.var_pop.count) : 0;
|
48
46
|
if (!Value::DoubleIsFinite(var_pop)) {
|
49
47
|
throw OutOfRangeException("VARPOP is out of range!");
|
50
48
|
}
|
51
49
|
if (var_pop == 0) {
|
52
|
-
|
50
|
+
finalize_data.ReturnNull();
|
53
51
|
return;
|
54
52
|
}
|
55
|
-
target
|
53
|
+
target = cov / var_pop;
|
56
54
|
}
|
57
55
|
}
|
58
56
|
|
@@ -133,27 +133,26 @@ struct HugeintAdd {
|
|
133
133
|
template <class STATEOP, class ADDOP>
|
134
134
|
struct BaseSumOperation {
|
135
135
|
template <class STATE>
|
136
|
-
static void Initialize(STATE
|
137
|
-
state
|
136
|
+
static void Initialize(STATE &state) {
|
137
|
+
state.value = 0;
|
138
138
|
STATEOP::template Initialize<STATE>(state);
|
139
139
|
}
|
140
140
|
|
141
141
|
template <class STATE, class OP>
|
142
|
-
static void Combine(const STATE &source, STATE
|
142
|
+
static void Combine(const STATE &source, STATE &target, AggregateInputData &aggr_input_data) {
|
143
143
|
STATEOP::template Combine<STATE>(source, target, aggr_input_data);
|
144
144
|
}
|
145
145
|
|
146
146
|
template <class INPUT_TYPE, class STATE, class OP>
|
147
|
-
static void Operation(STATE
|
147
|
+
static void Operation(STATE &state, const INPUT_TYPE &input, AggregateUnaryInput &) {
|
148
148
|
STATEOP::template AddValues<STATE>(state, 1);
|
149
|
-
ADDOP::template AddNumber<STATE, INPUT_TYPE>(
|
149
|
+
ADDOP::template AddNumber<STATE, INPUT_TYPE>(state, input);
|
150
150
|
}
|
151
151
|
|
152
152
|
template <class INPUT_TYPE, class STATE, class OP>
|
153
|
-
static void ConstantOperation(STATE
|
154
|
-
idx_t count) {
|
153
|
+
static void ConstantOperation(STATE &state, const INPUT_TYPE &input, AggregateUnaryInput &, idx_t count) {
|
155
154
|
STATEOP::template AddValues<STATE>(state, count);
|
156
|
-
ADDOP::template AddConstant<STATE, INPUT_TYPE>(
|
155
|
+
ADDOP::template AddConstant<STATE, INPUT_TYPE>(state, input, count);
|
157
156
|
}
|
158
157
|
|
159
158
|
static bool IgnoreNull() {
|
@@ -39,6 +39,18 @@ public:
|
|
39
39
|
DUCKDB_API ClientContext &GetContext();
|
40
40
|
|
41
41
|
void Verify(ExpressionExecutorState &root);
|
42
|
+
|
43
|
+
public:
|
44
|
+
template <class TARGET>
|
45
|
+
TARGET &Cast() {
|
46
|
+
D_ASSERT(dynamic_cast<TARGET *>(this));
|
47
|
+
return reinterpret_cast<TARGET &>(*this);
|
48
|
+
}
|
49
|
+
template <class TARGET>
|
50
|
+
const TARGET &Cast() const {
|
51
|
+
D_ASSERT(dynamic_cast<const TARGET *>(this));
|
52
|
+
return reinterpret_cast<const TARGET &>(*this);
|
53
|
+
}
|
42
54
|
};
|
43
55
|
|
44
56
|
struct ExecuteFunctionState : public ExpressionState {
|
@@ -48,8 +60,8 @@ struct ExecuteFunctionState : public ExpressionState {
|
|
48
60
|
unique_ptr<FunctionLocalState> local_state;
|
49
61
|
|
50
62
|
public:
|
51
|
-
static FunctionLocalState
|
52
|
-
return (
|
63
|
+
static optional_ptr<FunctionLocalState> GetFunctionState(ExpressionState &state) {
|
64
|
+
return state.Cast<ExecuteFunctionState>().local_state.get();
|
53
65
|
}
|
54
66
|
};
|
55
67
|
|
@@ -110,13 +110,13 @@ private:
|
|
110
110
|
//! Find the node with a matching key, or return nullptr if not found
|
111
111
|
Node Lookup(Node node, const ARTKey &key, idx_t depth);
|
112
112
|
//! Returns all row IDs belonging to a key greater (or equal) than the search key
|
113
|
-
bool SearchGreater(ARTIndexScanState
|
113
|
+
bool SearchGreater(ARTIndexScanState &state, ARTKey &key, bool inclusive, idx_t max_count,
|
114
114
|
vector<row_t> &result_ids);
|
115
115
|
//! Returns all row IDs belonging to a key less (or equal) than the upper_bound
|
116
|
-
bool SearchLess(ARTIndexScanState
|
116
|
+
bool SearchLess(ARTIndexScanState &state, ARTKey &upper_bound, bool inclusive, idx_t max_count,
|
117
117
|
vector<row_t> &result_ids);
|
118
118
|
//! Returns all row IDs belonging to a key within the range of lower_bound and upper_bound
|
119
|
-
bool SearchCloseRange(ARTIndexScanState
|
119
|
+
bool SearchCloseRange(ARTIndexScanState &state, ARTKey &lower_bound, ARTKey &upper_bound, bool left_inclusive,
|
120
120
|
bool right_inclusive, idx_t max_count, vector<row_t> &result_ids);
|
121
121
|
|
122
122
|
//! Initializes a merge operation by returning a set containing the buffer count of each fixed-size allocator
|
package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_result_collector.hpp
CHANGED
@@ -16,6 +16,9 @@ class PreparedStatementData;
|
|
16
16
|
|
17
17
|
//! PhysicalResultCollector is an abstract class that is used to generate the final result of a query
|
18
18
|
class PhysicalResultCollector : public PhysicalOperator {
|
19
|
+
public:
|
20
|
+
static constexpr const PhysicalOperatorType TYPE = PhysicalOperatorType::RESULT_COLLECTOR;
|
21
|
+
|
19
22
|
public:
|
20
23
|
explicit PhysicalResultCollector(PreparedStatementData &data);
|
21
24
|
|
@@ -30,6 +30,9 @@ class MetaPipeline;
|
|
30
30
|
//! PhysicalOperator is the base class of the physical operators present in the
|
31
31
|
//! execution plan
|
32
32
|
class PhysicalOperator {
|
33
|
+
public:
|
34
|
+
static constexpr const PhysicalOperatorType TYPE = PhysicalOperatorType::INVALID;
|
35
|
+
|
33
36
|
public:
|
34
37
|
PhysicalOperator(PhysicalOperatorType type, vector<LogicalType> types, idx_t estimated_cardinality)
|
35
38
|
: type(type), types(std::move(types)), estimated_cardinality(estimated_cardinality) {
|
@@ -184,7 +187,7 @@ public:
|
|
184
187
|
if (TARGET::TYPE != PhysicalOperatorType::INVALID && type != TARGET::TYPE) {
|
185
188
|
throw InternalException("Failed to cast physical operator to type - physical operator type mismatch");
|
186
189
|
}
|
187
|
-
return
|
190
|
+
return reinterpret_cast<TARGET &>(*this);
|
188
191
|
}
|
189
192
|
|
190
193
|
template <class TARGET>
|
@@ -192,7 +195,7 @@ public:
|
|
192
195
|
if (TARGET::TYPE != PhysicalOperatorType::INVALID && type != TARGET::TYPE) {
|
193
196
|
throw InternalException("Failed to cast physical operator to type - physical operator type mismatch");
|
194
197
|
}
|
195
|
-
return
|
198
|
+
return reinterpret_cast<const TARGET &>(*this);
|
196
199
|
}
|
197
200
|
};
|
198
201
|
|