duckdb 0.8.1-dev51.0 → 0.8.1-dev96.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 +52 -51
- 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/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_set.cpp +1 -1
- package/src/duckdb/src/catalog/dependency_manager.cpp +2 -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/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 +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/distributive/approx_count.cpp +3 -3
- package/src/duckdb/src/core_functions/aggregate/distributive/arg_min_max.cpp +3 -3
- package/src/duckdb/src/core_functions/aggregate/distributive/bitagg.cpp +4 -4
- package/src/duckdb/src/core_functions/aggregate/distributive/bitstring_agg.cpp +12 -11
- package/src/duckdb/src/core_functions/aggregate/distributive/bool.cpp +3 -3
- package/src/duckdb/src/core_functions/aggregate/distributive/entropy.cpp +3 -3
- package/src/duckdb/src/core_functions/aggregate/distributive/kurtosis.cpp +2 -2
- package/src/duckdb/src/core_functions/aggregate/distributive/minmax.cpp +7 -7
- package/src/duckdb/src/core_functions/aggregate/distributive/product.cpp +2 -2
- package/src/duckdb/src/core_functions/aggregate/distributive/skew.cpp +2 -2
- package/src/duckdb/src/core_functions/aggregate/distributive/string_agg.cpp +2 -2
- package/src/duckdb/src/core_functions/aggregate/holistic/approximate_quantile.cpp +14 -14
- package/src/duckdb/src/core_functions/aggregate/holistic/mode.cpp +2 -2
- package/src/duckdb/src/core_functions/aggregate/holistic/quantile.cpp +21 -21
- package/src/duckdb/src/core_functions/aggregate/holistic/reservoir_quantile.cpp +18 -19
- package/src/duckdb/src/core_functions/aggregate/nested/histogram.cpp +3 -4
- package/src/duckdb/src/core_functions/aggregate/nested/list.cpp +4 -4
- package/src/duckdb/src/core_functions/aggregate/regression/regr_avg.cpp +4 -4
- package/src/duckdb/src/core_functions/aggregate/regression/regr_intercept.cpp +1 -1
- package/src/duckdb/src/core_functions/aggregate/regression/regr_r2.cpp +1 -1
- package/src/duckdb/src/core_functions/aggregate/regression/regr_sxx_syy.cpp +2 -2
- package/src/duckdb/src/core_functions/aggregate/regression/regr_sxy.cpp +1 -1
- 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 +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/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/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 +2 -2
- package/src/duckdb/src/function/aggregate/distributive/first.cpp +5 -5
- package/src/duckdb/src/function/aggregate/sorted_aggregate_function.cpp +8 -8
- 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 -4
- 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.hpp +2 -2
- 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 +2 -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 +20 -19
- 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 +1 -1
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/algebraic/covar.hpp +1 -1
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/algebraic/stddev.hpp +1 -1
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/regression/regr_count.hpp +1 -1
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/regression/regr_slope.hpp +1 -1
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/sum_helpers.hpp +2 -2
- 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/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/optimizer/deliminator.cpp +12 -12
- package/src/duckdb/src/optimizer/filter_combiner.cpp +3 -3
- package/src/duckdb/src/optimizer/join_order/cardinality_estimator.cpp +10 -10
- package/src/duckdb/src/optimizer/matcher/expression_matcher.cpp +1 -1
- package/src/duckdb/src/optimizer/pullup/pullup_projection.cpp +2 -2
- package/src/duckdb/src/optimizer/regex_range_filter.cpp +2 -4
- package/src/duckdb/src/optimizer/rule/distributivity.cpp +2 -2
- package/src/duckdb/src/optimizer/statistics/operator/propagate_filter.cpp +6 -6
- package/src/duckdb/src/optimizer/statistics/operator/propagate_get.cpp +2 -2
- package/src/duckdb/src/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 +69 -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 +1 -1
- package/src/duckdb/src/planner/binder/statement/bind_insert.cpp +2 -2
- package/src/duckdb/src/planner/binder/statement/bind_update.cpp +1 -1
- package/src/duckdb/src/planner/binder/tableref/bind_pivot.cpp +1 -1
- package/src/duckdb/src/planner/binder/tableref/bind_table_function.cpp +2 -2
- 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/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 +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/pcg/pcg_extras.hpp +1 -1
@@ -22,7 +22,7 @@ struct KurtosisOperation {
|
|
22
22
|
}
|
23
23
|
|
24
24
|
template <class INPUT_TYPE, class STATE, class OP>
|
25
|
-
static void ConstantOperation(STATE *state, AggregateInputData &aggr_input_data, INPUT_TYPE *input,
|
25
|
+
static void ConstantOperation(STATE *state, AggregateInputData &aggr_input_data, const INPUT_TYPE *input,
|
26
26
|
ValidityMask &mask, idx_t count) {
|
27
27
|
for (idx_t i = 0; i < count; i++) {
|
28
28
|
Operation<INPUT_TYPE, STATE, OP>(state, aggr_input_data, input, mask, 0);
|
@@ -30,7 +30,7 @@ struct KurtosisOperation {
|
|
30
30
|
}
|
31
31
|
|
32
32
|
template <class INPUT_TYPE, class STATE, class OP>
|
33
|
-
static void Operation(STATE *state, AggregateInputData &, INPUT_TYPE *data, ValidityMask &mask, idx_t idx) {
|
33
|
+
static void Operation(STATE *state, AggregateInputData &, const INPUT_TYPE *data, ValidityMask &mask, idx_t idx) {
|
34
34
|
state->n++;
|
35
35
|
state->sum += data[idx];
|
36
36
|
state->sum_sqr += pow(data[idx], 2);
|
@@ -54,8 +54,8 @@ struct MinMaxBase {
|
|
54
54
|
}
|
55
55
|
|
56
56
|
template <class INPUT_TYPE, class STATE, class OP>
|
57
|
-
static void ConstantOperation(STATE *state, AggregateInputData &input_data, INPUT_TYPE *input,
|
58
|
-
idx_t count) {
|
57
|
+
static void ConstantOperation(STATE *state, AggregateInputData &input_data, const INPUT_TYPE *input,
|
58
|
+
ValidityMask &mask, idx_t count) {
|
59
59
|
D_ASSERT(mask.RowIsValid(0));
|
60
60
|
if (!state->isset) {
|
61
61
|
OP::template Assign<INPUT_TYPE, STATE>(state, input_data, input[0]);
|
@@ -66,7 +66,7 @@ struct MinMaxBase {
|
|
66
66
|
}
|
67
67
|
|
68
68
|
template <class INPUT_TYPE, class STATE, class OP>
|
69
|
-
static void Operation(STATE *state, AggregateInputData &input_data, INPUT_TYPE *input, ValidityMask &mask,
|
69
|
+
static void Operation(STATE *state, AggregateInputData &input_data, const INPUT_TYPE *input, ValidityMask &mask,
|
70
70
|
idx_t idx) {
|
71
71
|
if (!state->isset) {
|
72
72
|
OP::template Assign<INPUT_TYPE, STATE>(state, input_data, input[idx]);
|
@@ -215,8 +215,8 @@ static bool TemplatedOptimumType(Vector &left, idx_t lidx, idx_t lcount, Vector
|
|
215
215
|
lidx = lvdata.sel->get_index(lidx);
|
216
216
|
ridx = rvdata.sel->get_index(ridx);
|
217
217
|
|
218
|
-
auto ldata = (
|
219
|
-
auto rdata = (
|
218
|
+
auto ldata = UnifiedVectorFormat::GetData<T>(lvdata);
|
219
|
+
auto rdata = UnifiedVectorFormat::GetData<T>(rvdata);
|
220
220
|
|
221
221
|
auto &lval = ldata[lidx];
|
222
222
|
auto &rval = rdata[ridx];
|
@@ -341,8 +341,8 @@ static bool TemplatedOptimumList(Vector &left, idx_t lidx, idx_t lcount, Vector
|
|
341
341
|
auto &lchild = ListVector::GetEntry(left);
|
342
342
|
auto &rchild = ListVector::GetEntry(right);
|
343
343
|
|
344
|
-
auto ldata = (
|
345
|
-
auto rdata = (
|
344
|
+
auto ldata = UnifiedVectorFormat::GetData<list_entry_t>(lvdata);
|
345
|
+
auto rdata = UnifiedVectorFormat::GetData<list_entry_t>(rvdata);
|
346
346
|
|
347
347
|
auto &lval = ldata[lidx];
|
348
348
|
auto &rval = rdata[ridx];
|
@@ -33,7 +33,7 @@ struct ProductFunction {
|
|
33
33
|
target[idx] = state->val;
|
34
34
|
}
|
35
35
|
template <class INPUT_TYPE, class STATE, class OP>
|
36
|
-
static void Operation(STATE *state, AggregateInputData &, INPUT_TYPE *input, ValidityMask &mask, idx_t idx) {
|
36
|
+
static void Operation(STATE *state, AggregateInputData &, const INPUT_TYPE *input, ValidityMask &mask, idx_t idx) {
|
37
37
|
if (state->empty) {
|
38
38
|
state->empty = false;
|
39
39
|
}
|
@@ -41,7 +41,7 @@ struct ProductFunction {
|
|
41
41
|
}
|
42
42
|
|
43
43
|
template <class INPUT_TYPE, class STATE, class OP>
|
44
|
-
static void ConstantOperation(STATE *state, AggregateInputData &aggr_input_data, INPUT_TYPE *input,
|
44
|
+
static void ConstantOperation(STATE *state, AggregateInputData &aggr_input_data, const INPUT_TYPE *input,
|
45
45
|
ValidityMask &mask, idx_t count) {
|
46
46
|
for (idx_t i = 0; i < count; i++) {
|
47
47
|
Operation<INPUT_TYPE, STATE, OP>(state, aggr_input_data, input, mask, 0);
|
@@ -21,7 +21,7 @@ struct SkewnessOperation {
|
|
21
21
|
}
|
22
22
|
|
23
23
|
template <class INPUT_TYPE, class STATE, class OP>
|
24
|
-
static void ConstantOperation(STATE *state, AggregateInputData &aggr_input_data, INPUT_TYPE *input,
|
24
|
+
static void ConstantOperation(STATE *state, AggregateInputData &aggr_input_data, const INPUT_TYPE *input,
|
25
25
|
ValidityMask &mask, idx_t count) {
|
26
26
|
for (idx_t i = 0; i < count; i++) {
|
27
27
|
Operation<INPUT_TYPE, STATE, OP>(state, aggr_input_data, input, mask, 0);
|
@@ -29,7 +29,7 @@ struct SkewnessOperation {
|
|
29
29
|
}
|
30
30
|
|
31
31
|
template <class INPUT_TYPE, class STATE, class OP>
|
32
|
-
static void Operation(STATE *state, AggregateInputData &, INPUT_TYPE *data, ValidityMask &mask, idx_t idx) {
|
32
|
+
static void Operation(STATE *state, AggregateInputData &, const INPUT_TYPE *data, ValidityMask &mask, idx_t idx) {
|
33
33
|
state->n++;
|
34
34
|
state->sum += data[idx];
|
35
35
|
state->sum_sqr += pow(data[idx], 2);
|
@@ -94,13 +94,13 @@ struct StringAggFunction {
|
|
94
94
|
}
|
95
95
|
|
96
96
|
template <class INPUT_TYPE, class STATE, class OP>
|
97
|
-
static void Operation(STATE *state, AggregateInputData &aggr_input_data, INPUT_TYPE *str_data,
|
97
|
+
static void Operation(STATE *state, AggregateInputData &aggr_input_data, const INPUT_TYPE *str_data,
|
98
98
|
ValidityMask &str_mask, idx_t str_idx) {
|
99
99
|
PerformOperation(state, str_data[str_idx], aggr_input_data.bind_data);
|
100
100
|
}
|
101
101
|
|
102
102
|
template <class INPUT_TYPE, class STATE, class OP>
|
103
|
-
static void ConstantOperation(STATE *state, AggregateInputData &aggr_input_data, INPUT_TYPE *input,
|
103
|
+
static void ConstantOperation(STATE *state, AggregateInputData &aggr_input_data, const INPUT_TYPE *input,
|
104
104
|
ValidityMask &mask, idx_t count) {
|
105
105
|
for (idx_t i = 0; i < count; i++) {
|
106
106
|
Operation<INPUT_TYPE, STATE, OP>(state, aggr_input_data, input, mask, 0);
|
@@ -38,8 +38,8 @@ struct ApproximateQuantileBindData : public FunctionData {
|
|
38
38
|
|
39
39
|
static void Serialize(FieldWriter &writer, const FunctionData *bind_data_p, const AggregateFunction &function) {
|
40
40
|
D_ASSERT(bind_data_p);
|
41
|
-
auto bind_data = (
|
42
|
-
writer.WriteList<float>(bind_data
|
41
|
+
auto &bind_data = bind_data_p->Cast<ApproximateQuantileBindData>();
|
42
|
+
writer.WriteList<float>(bind_data.quantiles);
|
43
43
|
}
|
44
44
|
|
45
45
|
static unique_ptr<FunctionData> Deserialize(ClientContext &context, FieldReader &reader,
|
@@ -61,7 +61,7 @@ struct ApproxQuantileOperation {
|
|
61
61
|
}
|
62
62
|
|
63
63
|
template <class INPUT_TYPE, class STATE, class OP>
|
64
|
-
static void ConstantOperation(STATE *state, AggregateInputData &aggr_input_data, INPUT_TYPE *input,
|
64
|
+
static void ConstantOperation(STATE *state, AggregateInputData &aggr_input_data, const INPUT_TYPE *input,
|
65
65
|
ValidityMask &mask, idx_t count) {
|
66
66
|
for (idx_t i = 0; i < count; i++) {
|
67
67
|
Operation<INPUT_TYPE, STATE, OP>(state, aggr_input_data, input, mask, 0);
|
@@ -69,7 +69,7 @@ struct ApproxQuantileOperation {
|
|
69
69
|
}
|
70
70
|
|
71
71
|
template <class INPUT_TYPE, class STATE, class OP>
|
72
|
-
static void Operation(STATE *state, AggregateInputData &, INPUT_TYPE *data, ValidityMask &mask, idx_t idx) {
|
72
|
+
static void Operation(STATE *state, AggregateInputData &, const INPUT_TYPE *data, ValidityMask &mask, idx_t idx) {
|
73
73
|
auto val = Cast::template Operation<INPUT_TYPE, SAVE_TYPE>(data[idx]);
|
74
74
|
if (!Value::DoubleIsFinite(val)) {
|
75
75
|
return;
|
@@ -119,9 +119,9 @@ struct ApproxQuantileScalarOperation : public ApproxQuantileOperation {
|
|
119
119
|
D_ASSERT(state->h);
|
120
120
|
D_ASSERT(aggr_input_data.bind_data);
|
121
121
|
state->h->compress();
|
122
|
-
auto bind_data =
|
123
|
-
D_ASSERT(bind_data
|
124
|
-
target[idx] = Cast::template Operation<SAVE_TYPE, TARGET_TYPE>(state->h->quantile(bind_data
|
122
|
+
auto &bind_data = aggr_input_data.bind_data->template Cast<ApproximateQuantileBindData>();
|
123
|
+
D_ASSERT(bind_data.quantiles.size() == 1);
|
124
|
+
target[idx] = Cast::template Operation<SAVE_TYPE, TARGET_TYPE>(state->h->quantile(bind_data.quantiles[0]));
|
125
125
|
}
|
126
126
|
};
|
127
127
|
|
@@ -220,11 +220,11 @@ struct ApproxQuantileListOperation : public ApproxQuantileOperation {
|
|
220
220
|
}
|
221
221
|
|
222
222
|
D_ASSERT(aggr_input_data.bind_data);
|
223
|
-
auto bind_data =
|
223
|
+
auto &bind_data = aggr_input_data.bind_data->template Cast<ApproximateQuantileBindData>();
|
224
224
|
|
225
225
|
auto &result = ListVector::GetEntry(result_list);
|
226
226
|
auto ridx = ListVector::GetListSize(result_list);
|
227
|
-
ListVector::Reserve(result_list, ridx + bind_data
|
227
|
+
ListVector::Reserve(result_list, ridx + bind_data.quantiles.size());
|
228
228
|
auto rdata = FlatVector::GetData<CHILD_TYPE>(result);
|
229
229
|
|
230
230
|
D_ASSERT(state->h);
|
@@ -232,9 +232,9 @@ struct ApproxQuantileListOperation : public ApproxQuantileOperation {
|
|
232
232
|
|
233
233
|
auto &entry = target[idx];
|
234
234
|
entry.offset = ridx;
|
235
|
-
entry.length = bind_data
|
235
|
+
entry.length = bind_data.quantiles.size();
|
236
236
|
for (size_t q = 0; q < entry.length; ++q) {
|
237
|
-
const auto &quantile = bind_data
|
237
|
+
const auto &quantile = bind_data.quantiles[q];
|
238
238
|
rdata[ridx + q] = Cast::template Operation<SAVE_TYPE, CHILD_TYPE>(state->h->quantile(quantile));
|
239
239
|
}
|
240
240
|
|
@@ -247,11 +247,11 @@ struct ApproxQuantileListOperation : public ApproxQuantileOperation {
|
|
247
247
|
D_ASSERT(result.GetType().id() == LogicalTypeId::LIST);
|
248
248
|
|
249
249
|
D_ASSERT(aggr_input_data.bind_data);
|
250
|
-
auto bind_data =
|
250
|
+
auto &bind_data = aggr_input_data.bind_data->template Cast<ApproximateQuantileBindData>();
|
251
251
|
|
252
252
|
if (states.GetVectorType() == VectorType::CONSTANT_VECTOR) {
|
253
253
|
result.SetVectorType(VectorType::CONSTANT_VECTOR);
|
254
|
-
ListVector::Reserve(result, bind_data
|
254
|
+
ListVector::Reserve(result, bind_data.quantiles.size());
|
255
255
|
|
256
256
|
auto sdata = ConstantVector::GetData<STATE_TYPE *>(states);
|
257
257
|
auto rdata = ConstantVector::GetData<RESULT_TYPE>(result);
|
@@ -260,7 +260,7 @@ struct ApproxQuantileListOperation : public ApproxQuantileOperation {
|
|
260
260
|
} else {
|
261
261
|
D_ASSERT(states.GetVectorType() == VectorType::FLAT_VECTOR);
|
262
262
|
result.SetVectorType(VectorType::FLAT_VECTOR);
|
263
|
-
ListVector::Reserve(result, (offset + count) * bind_data
|
263
|
+
ListVector::Reserve(result, (offset + count) * bind_data.quantiles.size());
|
264
264
|
|
265
265
|
auto sdata = FlatVector::GetData<STATE_TYPE *>(states);
|
266
266
|
auto rdata = FlatVector::GetData<RESULT_TYPE>(result);
|
@@ -155,7 +155,7 @@ struct ModeFunction {
|
|
155
155
|
}
|
156
156
|
|
157
157
|
template <class INPUT_TYPE, class STATE, class OP>
|
158
|
-
static void Operation(STATE *state, AggregateInputData &, INPUT_TYPE *input, ValidityMask &mask, idx_t idx) {
|
158
|
+
static void Operation(STATE *state, AggregateInputData &, const INPUT_TYPE *input, ValidityMask &mask, idx_t idx) {
|
159
159
|
if (!state->frequency_map) {
|
160
160
|
state->frequency_map = new typename STATE::Counts();
|
161
161
|
}
|
@@ -199,7 +199,7 @@ struct ModeFunction {
|
|
199
199
|
}
|
200
200
|
}
|
201
201
|
template <class INPUT_TYPE, class STATE, class OP>
|
202
|
-
static void ConstantOperation(STATE *state, AggregateInputData &, INPUT_TYPE *input, ValidityMask &mask,
|
202
|
+
static void ConstantOperation(STATE *state, AggregateInputData &, const INPUT_TYPE *input, ValidityMask &mask,
|
203
203
|
idx_t count) {
|
204
204
|
if (!state->frequency_map) {
|
205
205
|
state->frequency_map = new typename STATE::Counts();
|
@@ -464,7 +464,7 @@ struct QuantileOperation {
|
|
464
464
|
}
|
465
465
|
|
466
466
|
template <class INPUT_TYPE, class STATE, class OP>
|
467
|
-
static void Operation(STATE *state, AggregateInputData &, INPUT_TYPE *data, ValidityMask &mask, idx_t idx) {
|
467
|
+
static void Operation(STATE *state, AggregateInputData &, const INPUT_TYPE *data, ValidityMask &mask, idx_t idx) {
|
468
468
|
state->v.emplace_back(data[idx]);
|
469
469
|
}
|
470
470
|
|
@@ -493,11 +493,11 @@ static void ExecuteListFinalize(Vector &states, AggregateInputData &aggr_input_d
|
|
493
493
|
D_ASSERT(result.GetType().id() == LogicalTypeId::LIST);
|
494
494
|
|
495
495
|
D_ASSERT(aggr_input_data.bind_data);
|
496
|
-
auto bind_data =
|
496
|
+
auto &bind_data = aggr_input_data.bind_data->Cast<QuantileBindData>();
|
497
497
|
|
498
498
|
if (states.GetVectorType() == VectorType::CONSTANT_VECTOR) {
|
499
499
|
result.SetVectorType(VectorType::CONSTANT_VECTOR);
|
500
|
-
ListVector::Reserve(result, bind_data
|
500
|
+
ListVector::Reserve(result, bind_data.quantiles.size());
|
501
501
|
|
502
502
|
auto sdata = ConstantVector::GetData<STATE_TYPE *>(states);
|
503
503
|
auto rdata = ConstantVector::GetData<RESULT_TYPE>(result);
|
@@ -506,7 +506,7 @@ static void ExecuteListFinalize(Vector &states, AggregateInputData &aggr_input_d
|
|
506
506
|
} else {
|
507
507
|
D_ASSERT(states.GetVectorType() == VectorType::FLAT_VECTOR);
|
508
508
|
result.SetVectorType(VectorType::FLAT_VECTOR);
|
509
|
-
ListVector::Reserve(result, (offset + count) * bind_data
|
509
|
+
ListVector::Reserve(result, (offset + count) * bind_data.quantiles.size());
|
510
510
|
|
511
511
|
auto sdata = FlatVector::GetData<STATE_TYPE *>(states);
|
512
512
|
auto rdata = FlatVector::GetData<RESULT_TYPE>(result);
|
@@ -540,9 +540,9 @@ struct QuantileScalarOperation : public QuantileOperation {
|
|
540
540
|
return;
|
541
541
|
}
|
542
542
|
D_ASSERT(aggr_input_data.bind_data);
|
543
|
-
auto bind_data =
|
544
|
-
D_ASSERT(bind_data
|
545
|
-
Interpolator<DISCRETE> interp(bind_data
|
543
|
+
auto &bind_data = aggr_input_data.bind_data->Cast<QuantileBindData>();
|
544
|
+
D_ASSERT(bind_data.quantiles.size() == 1);
|
545
|
+
Interpolator<DISCRETE> interp(bind_data.quantiles[0], state->v.size(), bind_data.desc);
|
546
546
|
target[idx] = interp.template Operation<typename STATE::SaveType, RESULT_TYPE>(state->v.data(), result);
|
547
547
|
}
|
548
548
|
|
@@ -563,10 +563,10 @@ struct QuantileScalarOperation : public QuantileOperation {
|
|
563
563
|
D_ASSERT(index);
|
564
564
|
|
565
565
|
D_ASSERT(aggr_input_data.bind_data);
|
566
|
-
auto bind_data =
|
566
|
+
auto &bind_data = aggr_input_data.bind_data->Cast<QuantileBindData>();
|
567
567
|
|
568
568
|
// Find the two positions needed
|
569
|
-
const auto q = bind_data
|
569
|
+
const auto q = bind_data.quantiles[0];
|
570
570
|
|
571
571
|
bool replace = false;
|
572
572
|
if (frame.first == prev.first + 1 && frame.second == prev.second + 1) {
|
@@ -670,11 +670,11 @@ struct QuantileListOperation : public QuantileOperation {
|
|
670
670
|
}
|
671
671
|
|
672
672
|
D_ASSERT(aggr_input_data.bind_data);
|
673
|
-
auto bind_data =
|
673
|
+
auto &bind_data = aggr_input_data.bind_data->Cast<QuantileBindData>();
|
674
674
|
|
675
675
|
auto &result = ListVector::GetEntry(result_list);
|
676
676
|
auto ridx = ListVector::GetListSize(result_list);
|
677
|
-
ListVector::Reserve(result_list, ridx + bind_data
|
677
|
+
ListVector::Reserve(result_list, ridx + bind_data.quantiles.size());
|
678
678
|
auto rdata = FlatVector::GetData<CHILD_TYPE>(result);
|
679
679
|
|
680
680
|
auto v_t = state->v.data();
|
@@ -683,14 +683,14 @@ struct QuantileListOperation : public QuantileOperation {
|
|
683
683
|
auto &entry = target[idx];
|
684
684
|
entry.offset = ridx;
|
685
685
|
idx_t lower = 0;
|
686
|
-
for (const auto &q : bind_data
|
687
|
-
const auto &quantile = bind_data
|
688
|
-
Interpolator<DISCRETE> interp(quantile, state->v.size(), bind_data
|
686
|
+
for (const auto &q : bind_data.order) {
|
687
|
+
const auto &quantile = bind_data.quantiles[q];
|
688
|
+
Interpolator<DISCRETE> interp(quantile, state->v.size(), bind_data.desc);
|
689
689
|
interp.begin = lower;
|
690
690
|
rdata[ridx + q] = interp.template Operation<typename STATE::SaveType, CHILD_TYPE>(v_t, result);
|
691
691
|
lower = interp.FRN;
|
692
692
|
}
|
693
|
-
entry.length = bind_data
|
693
|
+
entry.length = bind_data.quantiles.size();
|
694
694
|
|
695
695
|
ListVector::SetListSize(result_list, entry.offset + entry.length);
|
696
696
|
}
|
@@ -700,7 +700,7 @@ struct QuantileListOperation : public QuantileOperation {
|
|
700
700
|
AggregateInputData &aggr_input_data, STATE *state, const FrameBounds &frame,
|
701
701
|
const FrameBounds &prev, Vector &list, idx_t lidx, idx_t bias) {
|
702
702
|
D_ASSERT(aggr_input_data.bind_data);
|
703
|
-
auto bind_data =
|
703
|
+
auto &bind_data = aggr_input_data.bind_data->Cast<QuantileBindData>();
|
704
704
|
|
705
705
|
QuantileIncluded included(fmask, dmask, bias);
|
706
706
|
|
@@ -709,7 +709,7 @@ struct QuantileListOperation : public QuantileOperation {
|
|
709
709
|
auto &lmask = FlatVector::Validity(list);
|
710
710
|
auto &lentry = ldata[lidx];
|
711
711
|
lentry.offset = ListVector::GetListSize(list);
|
712
|
-
lentry.length = bind_data
|
712
|
+
lentry.length = bind_data.quantiles.size();
|
713
713
|
|
714
714
|
ListVector::Reserve(list, lentry.offset + lentry.length);
|
715
715
|
ListVector::SetListSize(list, lentry.offset + lentry.length);
|
@@ -734,8 +734,8 @@ struct QuantileListOperation : public QuantileOperation {
|
|
734
734
|
const auto j = ReplaceIndex(index, frame, prev);
|
735
735
|
// We can only replace if the number of NULLs has not changed
|
736
736
|
if (included.AllValid() || included(prev.first) == included(prev.second)) {
|
737
|
-
for (const auto &q : bind_data
|
738
|
-
const auto &quantile = bind_data
|
737
|
+
for (const auto &q : bind_data.order) {
|
738
|
+
const auto &quantile = bind_data.quantiles[q];
|
739
739
|
Interpolator<DISCRETE> interp(quantile, prev_pos, false);
|
740
740
|
const auto replace = CanReplace(index, data, j, interp.FRN, interp.CRN, included);
|
741
741
|
if (replace < 0) {
|
@@ -765,8 +765,8 @@ struct QuantileListOperation : public QuantileOperation {
|
|
765
765
|
if (state->pos) {
|
766
766
|
using ID = QuantileIndirect<INPUT_TYPE>;
|
767
767
|
ID indirect(data);
|
768
|
-
for (const auto &q : bind_data
|
769
|
-
const auto &quantile = bind_data
|
768
|
+
for (const auto &q : bind_data.order) {
|
769
|
+
const auto &quantile = bind_data.quantiles[q];
|
770
770
|
Interpolator<DISCRETE> interp(quantile, state->pos, false);
|
771
771
|
if (replaceable.first <= interp.FRN && interp.CRN <= replaceable.second) {
|
772
772
|
rdata[lentry.offset + q] = interp.template Replace<idx_t, CHILD_TYPE, ID>(index, result, indirect);
|
@@ -66,9 +66,9 @@ struct ReservoirQuantileBindData : public FunctionData {
|
|
66
66
|
|
67
67
|
static void Serialize(FieldWriter &writer, const FunctionData *bind_data_p, const AggregateFunction &function) {
|
68
68
|
D_ASSERT(bind_data_p);
|
69
|
-
auto bind_data = (
|
70
|
-
writer.WriteList<double>(bind_data
|
71
|
-
writer.WriteField<int32_t>(bind_data
|
69
|
+
auto &bind_data = bind_data_p->Cast<ReservoirQuantileBindData>();
|
70
|
+
writer.WriteList<double>(bind_data.quantiles);
|
71
|
+
writer.WriteField<int32_t>(bind_data.sample_size);
|
72
72
|
}
|
73
73
|
|
74
74
|
static unique_ptr<FunctionData> Deserialize(ClientContext &context, FieldReader &reader,
|
@@ -92,7 +92,7 @@ struct ReservoirQuantileOperation {
|
|
92
92
|
}
|
93
93
|
|
94
94
|
template <class INPUT_TYPE, class STATE, class OP>
|
95
|
-
static void ConstantOperation(STATE *state, AggregateInputData &aggr_input_data, INPUT_TYPE *input,
|
95
|
+
static void ConstantOperation(STATE *state, AggregateInputData &aggr_input_data, const INPUT_TYPE *input,
|
96
96
|
ValidityMask &mask, idx_t count) {
|
97
97
|
for (idx_t i = 0; i < count; i++) {
|
98
98
|
Operation<INPUT_TYPE, STATE, OP>(state, aggr_input_data, input, mask, 0);
|
@@ -100,18 +100,17 @@ struct ReservoirQuantileOperation {
|
|
100
100
|
}
|
101
101
|
|
102
102
|
template <class INPUT_TYPE, class STATE, class OP>
|
103
|
-
static void Operation(STATE *state, AggregateInputData &aggr_input_data, INPUT_TYPE *data, ValidityMask &mask,
|
103
|
+
static void Operation(STATE *state, AggregateInputData &aggr_input_data, const INPUT_TYPE *data, ValidityMask &mask,
|
104
104
|
idx_t idx) {
|
105
|
-
auto bind_data =
|
106
|
-
D_ASSERT(bind_data);
|
105
|
+
auto &bind_data = aggr_input_data.bind_data->template Cast<ReservoirQuantileBindData>();
|
107
106
|
if (state->pos == 0) {
|
108
|
-
state->Resize(bind_data
|
107
|
+
state->Resize(bind_data.sample_size);
|
109
108
|
}
|
110
109
|
if (!state->r_samp) {
|
111
110
|
state->r_samp = new BaseReservoirSampling();
|
112
111
|
}
|
113
112
|
D_ASSERT(state->v);
|
114
|
-
state->FillReservoir(bind_data
|
113
|
+
state->FillReservoir(bind_data.sample_size, data[idx]);
|
115
114
|
}
|
116
115
|
|
117
116
|
template <class STATE, class OP>
|
@@ -157,10 +156,10 @@ struct ReservoirQuantileScalarOperation : public ReservoirQuantileOperation {
|
|
157
156
|
}
|
158
157
|
D_ASSERT(state->v);
|
159
158
|
D_ASSERT(aggr_input_data.bind_data);
|
160
|
-
auto bind_data =
|
159
|
+
auto &bind_data = aggr_input_data.bind_data->template Cast<ReservoirQuantileBindData>();
|
161
160
|
auto v_t = state->v;
|
162
|
-
D_ASSERT(bind_data
|
163
|
-
auto offset = (idx_t)((double)(state->pos - 1) * bind_data
|
161
|
+
D_ASSERT(bind_data.quantiles.size() == 1);
|
162
|
+
auto offset = (idx_t)((double)(state->pos - 1) * bind_data.quantiles[0]);
|
164
163
|
std::nth_element(v_t, v_t + offset, v_t + state->pos);
|
165
164
|
target[idx] = v_t[offset];
|
166
165
|
}
|
@@ -217,11 +216,11 @@ struct ReservoirQuantileListOperation : public ReservoirQuantileOperation {
|
|
217
216
|
}
|
218
217
|
|
219
218
|
D_ASSERT(aggr_input_data.bind_data);
|
220
|
-
auto bind_data =
|
219
|
+
auto &bind_data = aggr_input_data.bind_data->template Cast<ReservoirQuantileBindData>();
|
221
220
|
|
222
221
|
auto &result = ListVector::GetEntry(result_list);
|
223
222
|
auto ridx = ListVector::GetListSize(result_list);
|
224
|
-
ListVector::Reserve(result_list, ridx + bind_data
|
223
|
+
ListVector::Reserve(result_list, ridx + bind_data.quantiles.size());
|
225
224
|
auto rdata = FlatVector::GetData<CHILD_TYPE>(result);
|
226
225
|
|
227
226
|
auto v_t = state->v;
|
@@ -229,9 +228,9 @@ struct ReservoirQuantileListOperation : public ReservoirQuantileOperation {
|
|
229
228
|
|
230
229
|
auto &entry = target[idx];
|
231
230
|
entry.offset = ridx;
|
232
|
-
entry.length = bind_data
|
231
|
+
entry.length = bind_data.quantiles.size();
|
233
232
|
for (size_t q = 0; q < entry.length; ++q) {
|
234
|
-
const auto &quantile = bind_data
|
233
|
+
const auto &quantile = bind_data.quantiles[q];
|
235
234
|
auto offset = (idx_t)((double)(state->pos - 1) * quantile);
|
236
235
|
std::nth_element(v_t, v_t + offset, v_t + state->pos);
|
237
236
|
rdata[ridx + q] = v_t[offset];
|
@@ -246,11 +245,11 @@ struct ReservoirQuantileListOperation : public ReservoirQuantileOperation {
|
|
246
245
|
D_ASSERT(result.GetType().id() == LogicalTypeId::LIST);
|
247
246
|
|
248
247
|
D_ASSERT(aggr_input_data.bind_data);
|
249
|
-
auto bind_data =
|
248
|
+
auto &bind_data = aggr_input_data.bind_data->Cast<ReservoirQuantileBindData>();
|
250
249
|
|
251
250
|
if (states.GetVectorType() == VectorType::CONSTANT_VECTOR) {
|
252
251
|
result.SetVectorType(VectorType::CONSTANT_VECTOR);
|
253
|
-
ListVector::Reserve(result, bind_data
|
252
|
+
ListVector::Reserve(result, bind_data.quantiles.size());
|
254
253
|
|
255
254
|
auto sdata = ConstantVector::GetData<STATE_TYPE *>(states);
|
256
255
|
auto rdata = ConstantVector::GetData<RESULT_TYPE>(result);
|
@@ -259,7 +258,7 @@ struct ReservoirQuantileListOperation : public ReservoirQuantileOperation {
|
|
259
258
|
} else {
|
260
259
|
D_ASSERT(states.GetVectorType() == VectorType::FLAT_VECTOR);
|
261
260
|
result.SetVectorType(VectorType::FLAT_VECTOR);
|
262
|
-
ListVector::Reserve(result, (offset + count) * bind_data
|
261
|
+
ListVector::Reserve(result, (offset + count) * bind_data.quantiles.size());
|
263
262
|
|
264
263
|
auto sdata = FlatVector::GetData<STATE_TYPE *>(states);
|
265
264
|
auto rdata = FlatVector::GetData<RESULT_TYPE>(result);
|
@@ -18,7 +18,7 @@ struct HistogramFunctor {
|
|
18
18
|
if (!state->hist) {
|
19
19
|
state->hist = new MAP_TYPE();
|
20
20
|
}
|
21
|
-
auto value = (
|
21
|
+
auto value = UnifiedVectorFormat::GetData<T>(input_data);
|
22
22
|
(*state->hist)[value[input_data.sel->get_index(i)]]++;
|
23
23
|
}
|
24
24
|
}
|
@@ -33,16 +33,15 @@ struct HistogramFunctor {
|
|
33
33
|
struct HistogramStringFunctor {
|
34
34
|
template <class T, class MAP_TYPE = map<T, idx_t>>
|
35
35
|
static void HistogramUpdate(UnifiedVectorFormat &sdata, UnifiedVectorFormat &input_data, idx_t count) {
|
36
|
-
|
37
36
|
auto states = (HistogramAggState<T, MAP_TYPE> **)sdata.data;
|
37
|
+
auto input_strings = UnifiedVectorFormat::GetData<string_t>(input_data);
|
38
38
|
for (idx_t i = 0; i < count; i++) {
|
39
39
|
if (input_data.validity.RowIsValid(input_data.sel->get_index(i))) {
|
40
40
|
auto state = states[sdata.sel->get_index(i)];
|
41
41
|
if (!state->hist) {
|
42
42
|
state->hist = new MAP_TYPE();
|
43
43
|
}
|
44
|
-
|
45
|
-
(*state->hist)[value[input_data.sel->get_index(i)].GetString()]++;
|
44
|
+
(*state->hist)[input_strings[input_data.sel->get_index(i)].GetString()]++;
|
46
45
|
}
|
47
46
|
}
|
48
47
|
}
|
@@ -35,7 +35,7 @@ struct ListBindData : public FunctionData {
|
|
35
35
|
}
|
36
36
|
|
37
37
|
bool Equals(const FunctionData &other_p) const override {
|
38
|
-
auto &other = (
|
38
|
+
auto &other = other_p.Cast<ListBindData>();
|
39
39
|
return stype == other.stype;
|
40
40
|
}
|
41
41
|
};
|
@@ -80,7 +80,7 @@ static void ListUpdateFunction(Vector inputs[], AggregateInputData &aggr_input_d
|
|
80
80
|
UnifiedVectorFormat sdata;
|
81
81
|
state_vector.ToUnifiedFormat(count, sdata);
|
82
82
|
|
83
|
-
auto states =
|
83
|
+
auto states = UnifiedVectorFormat::GetData<ListAggState *>(sdata);
|
84
84
|
RecursiveFlatten(input, count);
|
85
85
|
|
86
86
|
auto &list_bind_data = aggr_input_data.bind_data->Cast<ListBindData>();
|
@@ -94,7 +94,7 @@ static void ListUpdateFunction(Vector inputs[], AggregateInputData &aggr_input_d
|
|
94
94
|
static void ListCombineFunction(Vector &state, Vector &combined, AggregateInputData &aggr_input_data, idx_t count) {
|
95
95
|
UnifiedVectorFormat sdata;
|
96
96
|
state.ToUnifiedFormat(count, sdata);
|
97
|
-
auto states_ptr =
|
97
|
+
auto states_ptr = UnifiedVectorFormat::GetData<ListAggState *>(sdata);
|
98
98
|
|
99
99
|
auto &list_bind_data = aggr_input_data.bind_data->Cast<ListBindData>();
|
100
100
|
|
@@ -125,7 +125,7 @@ static void ListFinalize(Vector &state_vector, AggregateInputData &aggr_input_da
|
|
125
125
|
idx_t offset) {
|
126
126
|
UnifiedVectorFormat sdata;
|
127
127
|
state_vector.ToUnifiedFormat(count, sdata);
|
128
|
-
auto states =
|
128
|
+
auto states = UnifiedVectorFormat::GetData<ListAggState *>(sdata);
|
129
129
|
|
130
130
|
D_ASSERT(result.GetType().id() == LogicalTypeId::LIST);
|
131
131
|
|
@@ -37,8 +37,8 @@ struct RegrAvgFunction {
|
|
37
37
|
};
|
38
38
|
struct RegrAvgXFunction : RegrAvgFunction {
|
39
39
|
template <class A_TYPE, class B_TYPE, class STATE, class OP>
|
40
|
-
static void Operation(STATE *state, AggregateInputData &, A_TYPE *x_data, B_TYPE *y_data,
|
41
|
-
ValidityMask &bmask, idx_t xidx, idx_t yidx) {
|
40
|
+
static void Operation(STATE *state, AggregateInputData &, const A_TYPE *x_data, const B_TYPE *y_data,
|
41
|
+
ValidityMask &amask, ValidityMask &bmask, idx_t xidx, idx_t yidx) {
|
42
42
|
state->sum += y_data[yidx];
|
43
43
|
state->count++;
|
44
44
|
}
|
@@ -46,8 +46,8 @@ struct RegrAvgXFunction : RegrAvgFunction {
|
|
46
46
|
|
47
47
|
struct RegrAvgYFunction : RegrAvgFunction {
|
48
48
|
template <class A_TYPE, class B_TYPE, class STATE, class OP>
|
49
|
-
static void Operation(STATE *state, AggregateInputData &, A_TYPE *x_data, B_TYPE *y_data,
|
50
|
-
ValidityMask &bmask, idx_t xidx, idx_t yidx) {
|
49
|
+
static void Operation(STATE *state, AggregateInputData &, const A_TYPE *x_data, const B_TYPE *y_data,
|
50
|
+
ValidityMask &amask, ValidityMask &bmask, idx_t xidx, idx_t yidx) {
|
51
51
|
state->sum += x_data[xidx];
|
52
52
|
state->count++;
|
53
53
|
}
|
@@ -23,7 +23,7 @@ struct RegrInterceptOperation {
|
|
23
23
|
}
|
24
24
|
|
25
25
|
template <class A_TYPE, class B_TYPE, class STATE, class OP>
|
26
|
-
static void Operation(STATE *state, AggregateInputData &aggr_input_data, A_TYPE *x_data, B_TYPE *y_data,
|
26
|
+
static void Operation(STATE *state, AggregateInputData &aggr_input_data, const A_TYPE *x_data, const B_TYPE *y_data,
|
27
27
|
ValidityMask &amask, ValidityMask &bmask, idx_t xidx, idx_t yidx) {
|
28
28
|
state->count++;
|
29
29
|
state->sum_x += y_data[yidx];
|
@@ -24,7 +24,7 @@ struct RegrR2Operation {
|
|
24
24
|
}
|
25
25
|
|
26
26
|
template <class A_TYPE, class B_TYPE, class STATE, class OP>
|
27
|
-
static void Operation(STATE *state, AggregateInputData &aggr_input_data, A_TYPE *x_data, B_TYPE *y_data,
|
27
|
+
static void Operation(STATE *state, AggregateInputData &aggr_input_data, const A_TYPE *x_data, const B_TYPE *y_data,
|
28
28
|
ValidityMask &amask, ValidityMask &bmask, idx_t xidx, idx_t yidx) {
|
29
29
|
CorrOperation::Operation<A_TYPE, B_TYPE, CorrState, OP>(&state->corr, aggr_input_data, y_data, x_data, bmask,
|
30
30
|
amask, yidx, xidx);
|
@@ -49,7 +49,7 @@ struct RegrBaseOperation {
|
|
49
49
|
|
50
50
|
struct RegrSXXOperation : RegrBaseOperation {
|
51
51
|
template <class A_TYPE, class B_TYPE, class STATE, class OP>
|
52
|
-
static void Operation(STATE *state, AggregateInputData &aggr_input_data, A_TYPE *x_data, B_TYPE *y_data,
|
52
|
+
static void Operation(STATE *state, AggregateInputData &aggr_input_data, const A_TYPE *x_data, const B_TYPE *y_data,
|
53
53
|
ValidityMask &amask, ValidityMask &bmask, idx_t xidx, idx_t yidx) {
|
54
54
|
RegrCountFunction::Operation<A_TYPE, B_TYPE, size_t, OP>(&state->count, aggr_input_data, y_data, x_data, bmask,
|
55
55
|
amask, yidx, xidx);
|
@@ -59,7 +59,7 @@ struct RegrSXXOperation : RegrBaseOperation {
|
|
59
59
|
|
60
60
|
struct RegrSYYOperation : RegrBaseOperation {
|
61
61
|
template <class A_TYPE, class B_TYPE, class STATE, class OP>
|
62
|
-
static void Operation(STATE *state, AggregateInputData &aggr_input_data, A_TYPE *x_data, B_TYPE *y_data,
|
62
|
+
static void Operation(STATE *state, AggregateInputData &aggr_input_data, const A_TYPE *x_data, const B_TYPE *y_data,
|
63
63
|
ValidityMask &amask, ValidityMask &bmask, idx_t xidx, idx_t yidx) {
|
64
64
|
RegrCountFunction::Operation<A_TYPE, B_TYPE, size_t, OP>(&state->count, aggr_input_data, y_data, x_data, bmask,
|
65
65
|
amask, yidx, xidx);
|
@@ -20,7 +20,7 @@ struct RegrSXYOperation {
|
|
20
20
|
}
|
21
21
|
|
22
22
|
template <class A_TYPE, class B_TYPE, class STATE, class OP>
|
23
|
-
static void Operation(STATE *state, AggregateInputData &aggr_input_data, A_TYPE *x_data, B_TYPE *y_data,
|
23
|
+
static void Operation(STATE *state, AggregateInputData &aggr_input_data, const A_TYPE *x_data, const B_TYPE *y_data,
|
24
24
|
ValidityMask &amask, ValidityMask &bmask, idx_t xidx, idx_t yidx) {
|
25
25
|
RegrCountFunction::Operation<A_TYPE, B_TYPE, size_t, OP>(&state->count, aggr_input_data, y_data, x_data, bmask,
|
26
26
|
amask, yidx, xidx);
|
@@ -18,7 +18,7 @@ struct Base64DecodeOperator {
|
|
18
18
|
static RESULT_TYPE Operation(INPUT_TYPE input, Vector &result) {
|
19
19
|
auto result_size = Blob::FromBase64Size(input);
|
20
20
|
auto result_blob = StringVector::EmptyString(result, result_size);
|
21
|
-
Blob::FromBase64(input, (
|
21
|
+
Blob::FromBase64(input, data_ptr_cast(result_blob.GetDataWriteable()), result_size);
|
22
22
|
result_blob.Finalize();
|
23
23
|
return result_blob;
|
24
24
|
}
|