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
@@ -72,12 +72,12 @@ public:
|
|
72
72
|
template <class TARGET>
|
73
73
|
TARGET &Cast() {
|
74
74
|
D_ASSERT(dynamic_cast<TARGET *>(this));
|
75
|
-
return
|
75
|
+
return reinterpret_cast<TARGET &>(*this);
|
76
76
|
}
|
77
77
|
template <class TARGET>
|
78
78
|
const TARGET &Cast() const {
|
79
79
|
D_ASSERT(dynamic_cast<const TARGET *>(this));
|
80
|
-
return
|
80
|
+
return reinterpret_cast<const TARGET &>(*this);
|
81
81
|
}
|
82
82
|
};
|
83
83
|
|
@@ -26,6 +26,17 @@ struct PrivateAllocatorData {
|
|
26
26
|
virtual ~PrivateAllocatorData();
|
27
27
|
|
28
28
|
unique_ptr<AllocatorDebugInfo> debug_info;
|
29
|
+
|
30
|
+
template <class TARGET>
|
31
|
+
TARGET &Cast() {
|
32
|
+
D_ASSERT(dynamic_cast<TARGET *>(this));
|
33
|
+
return reinterpret_cast<TARGET &>(*this);
|
34
|
+
}
|
35
|
+
template <class TARGET>
|
36
|
+
const TARGET &Cast() const {
|
37
|
+
D_ASSERT(dynamic_cast<const TARGET *>(this));
|
38
|
+
return reinterpret_cast<const TARGET &>(*this);
|
39
|
+
}
|
29
40
|
};
|
30
41
|
|
31
42
|
typedef data_ptr_t (*allocate_function_ptr_t)(PrivateAllocatorData *private_data, idx_t size);
|
@@ -85,14 +96,14 @@ public:
|
|
85
96
|
return AllocatedData(*this, AllocateData(size), size);
|
86
97
|
}
|
87
98
|
static data_ptr_t DefaultAllocate(PrivateAllocatorData *private_data, idx_t size) {
|
88
|
-
return (
|
99
|
+
return data_ptr_cast(malloc(size));
|
89
100
|
}
|
90
101
|
static void DefaultFree(PrivateAllocatorData *private_data, data_ptr_t pointer, idx_t size) {
|
91
102
|
free(pointer);
|
92
103
|
}
|
93
104
|
static data_ptr_t DefaultReallocate(PrivateAllocatorData *private_data, data_ptr_t pointer, idx_t old_size,
|
94
105
|
idx_t size) {
|
95
|
-
return (
|
106
|
+
return data_ptr_cast(realloc(pointer, size));
|
96
107
|
}
|
97
108
|
static Allocator &Get(ClientContext &context);
|
98
109
|
static Allocator &Get(DatabaseInstance &db);
|
@@ -120,7 +131,7 @@ T *AllocateArray(idx_t size) {
|
|
120
131
|
|
121
132
|
template <class T>
|
122
133
|
void DeleteArray(T *ptr, idx_t size) {
|
123
|
-
Allocator::DefaultAllocator().FreeData((
|
134
|
+
Allocator::DefaultAllocator().FreeData(data_ptr_cast(ptr), size * sizeof(T));
|
124
135
|
}
|
125
136
|
|
126
137
|
template <typename T, typename... ARGS>
|
@@ -132,7 +143,7 @@ T *AllocateObject(ARGS &&... args) {
|
|
132
143
|
template <typename T>
|
133
144
|
void DestroyObject(T *ptr) {
|
134
145
|
ptr->~T();
|
135
|
-
Allocator::DefaultAllocator().FreeData((
|
146
|
+
Allocator::DefaultAllocator().FreeData(data_ptr_cast(ptr), sizeof(T));
|
136
147
|
}
|
137
148
|
|
138
149
|
//! The BufferAllocator is a wrapper around the global allocator class that sends any allocations made through the
|
@@ -73,12 +73,17 @@ struct ArrowBuffer {
|
|
73
73
|
return dataptr;
|
74
74
|
}
|
75
75
|
|
76
|
+
template <class T>
|
77
|
+
T *GetData() {
|
78
|
+
return reinterpret_cast<T *>(data());
|
79
|
+
}
|
80
|
+
|
76
81
|
private:
|
77
82
|
void ReserveInternal(idx_t bytes) {
|
78
83
|
if (dataptr) {
|
79
|
-
dataptr = (
|
84
|
+
dataptr = data_ptr_cast(realloc(dataptr, bytes));
|
80
85
|
} else {
|
81
|
-
dataptr = (
|
86
|
+
dataptr = data_ptr_cast(malloc(bytes));
|
82
87
|
}
|
83
88
|
capacity = bytes;
|
84
89
|
}
|
@@ -26,10 +26,10 @@ public:
|
|
26
26
|
}
|
27
27
|
void Add(const char *data);
|
28
28
|
void Add(string_t string) {
|
29
|
-
MD5Update((
|
29
|
+
MD5Update(const_data_ptr_cast(string.GetData()), string.GetSize());
|
30
30
|
}
|
31
31
|
void Add(const string &data) {
|
32
|
-
MD5Update((
|
32
|
+
MD5Update(const_data_ptr_cast(data.c_str()), data.size());
|
33
33
|
}
|
34
34
|
|
35
35
|
//! Write the 16-byte (binary) digest to the specified location
|
@@ -22,8 +22,8 @@ enum class PhysicalType : uint8_t;
|
|
22
22
|
struct LogicalType;
|
23
23
|
struct hugeint_t;
|
24
24
|
|
25
|
-
inline void assert_restrict_function(void *left_start, void *left_end, void *right_start,
|
26
|
-
const char *fname, int linenr) {
|
25
|
+
inline void assert_restrict_function(const void *left_start, const void *left_end, const void *right_start,
|
26
|
+
const void *right_end, const char *fname, int linenr) {
|
27
27
|
// assert that the two pointers do not overlap
|
28
28
|
#ifdef DEBUG
|
29
29
|
if (!(left_end <= right_start || right_end <= left_start)) {
|
@@ -34,12 +34,12 @@ public:
|
|
34
34
|
static_assert(std::is_trivially_destructible<T>(), "WriteField object must be trivially destructible");
|
35
35
|
|
36
36
|
AddField();
|
37
|
-
WriteData((
|
37
|
+
WriteData(const_data_ptr_cast(&element), sizeof(T));
|
38
38
|
}
|
39
39
|
|
40
40
|
//! Write a string with a length prefix
|
41
41
|
void WriteString(const string &val) {
|
42
|
-
WriteStringLen((
|
42
|
+
WriteStringLen(const_data_ptr_cast(val.c_str()), val.size());
|
43
43
|
}
|
44
44
|
void WriteStringLen(const_data_ptr_t val, idx_t len) {
|
45
45
|
AddField();
|
@@ -135,7 +135,7 @@ public:
|
|
135
135
|
private:
|
136
136
|
template <class T>
|
137
137
|
void Write(const T &element) {
|
138
|
-
WriteData((
|
138
|
+
WriteData(const_data_ptr_cast(&element), sizeof(T));
|
139
139
|
}
|
140
140
|
|
141
141
|
DUCKDB_API void WriteData(const_data_ptr_t buffer, idx_t write_size);
|
@@ -77,6 +77,17 @@ public:
|
|
77
77
|
return path;
|
78
78
|
}
|
79
79
|
|
80
|
+
template <class TARGET>
|
81
|
+
TARGET &Cast() {
|
82
|
+
D_ASSERT(dynamic_cast<TARGET *>(this));
|
83
|
+
return reinterpret_cast<TARGET &>(*this);
|
84
|
+
}
|
85
|
+
template <class TARGET>
|
86
|
+
const TARGET &Cast() const {
|
87
|
+
D_ASSERT(dynamic_cast<const TARGET *>(this));
|
88
|
+
return reinterpret_cast<const TARGET &>(*this);
|
89
|
+
}
|
90
|
+
|
80
91
|
public:
|
81
92
|
FileSystem &file_system;
|
82
93
|
string path;
|
@@ -12,9 +12,8 @@ namespace duckdb {
|
|
12
12
|
|
13
13
|
class FSSTPrimitives {
|
14
14
|
public:
|
15
|
-
static string_t DecompressValue(void *duckdb_fsst_decoder, Vector &result,
|
15
|
+
static string_t DecompressValue(void *duckdb_fsst_decoder, Vector &result, const char *compressed_string,
|
16
16
|
idx_t compressed_string_len);
|
17
|
-
static Value DecompressValue(void *duckdb_fsst_decoder,
|
18
|
-
idx_t compressed_string_len);
|
17
|
+
static Value DecompressValue(void *duckdb_fsst_decoder, const char *compressed_string, idx_t compressed_string_len);
|
19
18
|
};
|
20
19
|
} // namespace duckdb
|
@@ -36,7 +36,7 @@ struct Radix {
|
|
36
36
|
public:
|
37
37
|
static inline bool IsLittleEndian() {
|
38
38
|
int n = 1;
|
39
|
-
if (*(
|
39
|
+
if (*char_ptr_cast(&n) == 1) {
|
40
40
|
return true;
|
41
41
|
} else {
|
42
42
|
return false;
|
@@ -81,7 +81,7 @@ public:
|
|
81
81
|
if (x < -FLT_MAX) {
|
82
82
|
return 0;
|
83
83
|
}
|
84
|
-
buff = Load<uint32_t>((
|
84
|
+
buff = Load<uint32_t>(const_data_ptr_cast(&x));
|
85
85
|
if ((buff & (1u << 31)) == 0) { //! +0 and positive numbers
|
86
86
|
buff |= (1u << 31);
|
87
87
|
} else { //! negative numbers
|
@@ -111,7 +111,7 @@ public:
|
|
111
111
|
if (x < -DBL_MAX) {
|
112
112
|
return 0;
|
113
113
|
}
|
114
|
-
buff = Load<uint64_t>((
|
114
|
+
buff = Load<uint64_t>(const_data_ptr_cast(&x));
|
115
115
|
if (buff < (1ull << 63)) { //! +0 and positive numbers
|
116
116
|
buff += (1ull << 63);
|
117
117
|
} else { //! negative numbers
|
@@ -24,12 +24,15 @@ private:
|
|
24
24
|
template <class T>
|
25
25
|
void Write(T element) {
|
26
26
|
static_assert(std::is_trivially_destructible<T>(), "Write element must be trivially destructible");
|
27
|
-
WriteData((
|
27
|
+
WriteData(const_data_ptr_cast(&element), sizeof(T));
|
28
28
|
}
|
29
29
|
void WriteData(const_data_ptr_t buffer, idx_t write_size) {
|
30
30
|
data.insert(data.end(), buffer, buffer + write_size);
|
31
31
|
stack.back().size += write_size;
|
32
32
|
}
|
33
|
+
void WriteData(const char *ptr, idx_t write_size) {
|
34
|
+
WriteData(const_data_ptr_cast(ptr), write_size);
|
35
|
+
}
|
33
36
|
|
34
37
|
explicit BinarySerializer() {
|
35
38
|
serialize_enum_as_string = false;
|
@@ -46,16 +46,16 @@ public:
|
|
46
46
|
void Write(T element) {
|
47
47
|
static_assert(std::is_trivially_destructible<T>(), "Write element must be trivially destructible");
|
48
48
|
|
49
|
-
WriteData((
|
49
|
+
WriteData(const_data_ptr_cast(&element), sizeof(T));
|
50
50
|
}
|
51
51
|
|
52
52
|
//! Write data from a string buffer directly (without length prefix)
|
53
53
|
void WriteBufferData(const string &str) {
|
54
|
-
WriteData((
|
54
|
+
WriteData(const_data_ptr_cast(str.c_str()), str.size());
|
55
55
|
}
|
56
56
|
//! Write a string with a length prefix
|
57
57
|
void WriteString(const string &val) {
|
58
|
-
WriteStringLen((
|
58
|
+
WriteStringLen(const_data_ptr_cast(val.c_str()), val.size());
|
59
59
|
}
|
60
60
|
void WriteStringLen(const_data_ptr_t val, idx_t len) {
|
61
61
|
Write<uint32_t>((uint32_t)len);
|
@@ -127,7 +127,7 @@ public:
|
|
127
127
|
template <class T>
|
128
128
|
T Read() {
|
129
129
|
T value;
|
130
|
-
ReadData((
|
130
|
+
ReadData(data_ptr_cast(&value), sizeof(T));
|
131
131
|
return value;
|
132
132
|
}
|
133
133
|
|
@@ -28,4 +28,34 @@ typedef idx_t column_t;
|
|
28
28
|
//! Type used for storage (column) identifiers
|
29
29
|
typedef idx_t storage_t;
|
30
30
|
|
31
|
+
template <class SRC>
|
32
|
+
data_ptr_t data_ptr_cast(SRC *src) {
|
33
|
+
return reinterpret_cast<data_ptr_t>(src);
|
34
|
+
}
|
35
|
+
|
36
|
+
template <class SRC>
|
37
|
+
const_data_ptr_t const_data_ptr_cast(const SRC *src) {
|
38
|
+
return reinterpret_cast<const_data_ptr_t>(src);
|
39
|
+
}
|
40
|
+
|
41
|
+
template <class SRC>
|
42
|
+
char *char_ptr_cast(SRC *src) {
|
43
|
+
return reinterpret_cast<char *>(src);
|
44
|
+
}
|
45
|
+
|
46
|
+
template <class SRC>
|
47
|
+
const char *const_char_ptr_cast(const SRC *src) {
|
48
|
+
return reinterpret_cast<const char *>(src);
|
49
|
+
}
|
50
|
+
|
51
|
+
template <class SRC>
|
52
|
+
const unsigned char *const_uchar_ptr_cast(const SRC *src) {
|
53
|
+
return reinterpret_cast<const unsigned char *>(src);
|
54
|
+
}
|
55
|
+
|
56
|
+
template <class SRC>
|
57
|
+
uintptr_t CastPointerToValue(SRC *src) {
|
58
|
+
return uintptr_t(src);
|
59
|
+
}
|
60
|
+
|
31
61
|
} // namespace duckdb
|
@@ -108,6 +108,18 @@ protected:
|
|
108
108
|
mutex lock;
|
109
109
|
shared_ptr<PartitionColumnDataAllocators> allocators;
|
110
110
|
vector<unique_ptr<ColumnDataCollection>> partitions;
|
111
|
+
|
112
|
+
public:
|
113
|
+
template <class TARGET>
|
114
|
+
TARGET &Cast() {
|
115
|
+
D_ASSERT(dynamic_cast<TARGET *>(this));
|
116
|
+
return reinterpret_cast<TARGET &>(*this);
|
117
|
+
}
|
118
|
+
template <class TARGET>
|
119
|
+
const TARGET &Cast() const {
|
120
|
+
D_ASSERT(dynamic_cast<const TARGET *>(this));
|
121
|
+
return reinterpret_cast<const TARGET &>(*this);
|
122
|
+
}
|
111
123
|
};
|
112
124
|
|
113
125
|
} // namespace duckdb
|
@@ -12,6 +12,10 @@
|
|
12
12
|
#include "duckdb/common/types/vector.hpp"
|
13
13
|
#include "hyperloglog.hpp"
|
14
14
|
|
15
|
+
namespace duckdb_hll {
|
16
|
+
struct robj;
|
17
|
+
}
|
18
|
+
|
15
19
|
namespace duckdb {
|
16
20
|
|
17
21
|
enum class HLLStorageType { UNCOMPRESSED = 1 };
|
@@ -58,9 +62,9 @@ public:
|
|
58
62
|
void AddToLog(UnifiedVectorFormat &vdata, idx_t count, uint64_t indices[], uint8_t counts[]);
|
59
63
|
|
60
64
|
private:
|
61
|
-
explicit HyperLogLog(
|
65
|
+
explicit HyperLogLog(duckdb_hll::robj *hll);
|
62
66
|
|
63
|
-
|
67
|
+
duckdb_hll::robj *hll;
|
64
68
|
mutex lock;
|
65
69
|
};
|
66
70
|
} // namespace duckdb
|
@@ -135,6 +135,18 @@ protected:
|
|
135
135
|
mutex lock;
|
136
136
|
shared_ptr<PartitionTupleDataAllocators> allocators;
|
137
137
|
vector<unique_ptr<TupleDataCollection>> partitions;
|
138
|
+
|
139
|
+
public:
|
140
|
+
template <class TARGET>
|
141
|
+
TARGET &Cast() {
|
142
|
+
D_ASSERT(dynamic_cast<TARGET *>(this));
|
143
|
+
return reinterpret_cast<TARGET &>(*this);
|
144
|
+
}
|
145
|
+
template <class TARGET>
|
146
|
+
const TARGET &Cast() const {
|
147
|
+
D_ASSERT(dynamic_cast<const TARGET *>(this));
|
148
|
+
return reinterpret_cast<const TARGET &>(*this);
|
149
|
+
}
|
138
150
|
};
|
139
151
|
|
140
152
|
} // namespace duckdb
|
@@ -55,7 +55,7 @@ public:
|
|
55
55
|
#else
|
56
56
|
memset(value.pointer.prefix, 0, PREFIX_BYTES);
|
57
57
|
#endif
|
58
|
-
value.pointer.ptr = (char *)data;
|
58
|
+
value.pointer.ptr = (char *)data; // NOLINT
|
59
59
|
}
|
60
60
|
}
|
61
61
|
string_t(const char *data) : string_t(data, strlen(data)) { // NOLINT: Allow implicit conversion from `const char*`
|
@@ -69,14 +69,14 @@ public:
|
|
69
69
|
}
|
70
70
|
|
71
71
|
const char *GetData() const {
|
72
|
-
return IsInlined() ? (
|
72
|
+
return IsInlined() ? const_char_ptr_cast(value.inlined.inlined) : value.pointer.ptr;
|
73
73
|
}
|
74
74
|
const char *GetDataUnsafe() const {
|
75
75
|
return GetData();
|
76
76
|
}
|
77
77
|
|
78
78
|
char *GetDataWriteable() const {
|
79
|
-
return IsInlined() ? (char *)value.inlined.inlined : value.pointer.ptr;
|
79
|
+
return IsInlined() ? (char *)value.inlined.inlined : value.pointer.ptr; // NOLINT
|
80
80
|
}
|
81
81
|
|
82
82
|
const char *GetPrefix() const {
|
@@ -110,7 +110,7 @@ public:
|
|
110
110
|
} else {
|
111
111
|
// copy the data into the prefix
|
112
112
|
#ifndef DUCKDB_DEBUG_NO_INLINE
|
113
|
-
auto dataptr =
|
113
|
+
auto dataptr = GetData();
|
114
114
|
memcpy(value.pointer.prefix, dataptr, PREFIX_LENGTH);
|
115
115
|
#else
|
116
116
|
memset(value.pointer.prefix, 0, PREFIX_BYTES);
|
@@ -128,15 +128,15 @@ public:
|
|
128
128
|
return false;
|
129
129
|
return (memcmp(a.GetData(), b.GetData(), a.GetSize()) == 0);
|
130
130
|
#endif
|
131
|
-
uint64_t A = Load<uint64_t>((
|
132
|
-
uint64_t B = Load<uint64_t>((
|
131
|
+
uint64_t A = Load<uint64_t>(const_data_ptr_cast(&a));
|
132
|
+
uint64_t B = Load<uint64_t>(const_data_ptr_cast(&b));
|
133
133
|
if (A != B) {
|
134
134
|
// Either length or prefix are different -> not equal
|
135
135
|
return false;
|
136
136
|
}
|
137
137
|
// they have the same length and same prefix!
|
138
|
-
A = Load<uint64_t>((
|
139
|
-
B = Load<uint64_t>((
|
138
|
+
A = Load<uint64_t>(const_data_ptr_cast(&a) + 8u);
|
139
|
+
B = Load<uint64_t>(const_data_ptr_cast(&b) + 8u);
|
140
140
|
if (A == B) {
|
141
141
|
// either they are both inlined (so compare equal) or point to the same string (so compare equal)
|
142
142
|
return true;
|
@@ -159,8 +159,8 @@ public:
|
|
159
159
|
const uint32_t min_length = std::min<uint32_t>(left_length, right_length);
|
160
160
|
|
161
161
|
#ifndef DUCKDB_DEBUG_NO_INLINE
|
162
|
-
uint32_t A = Load<uint32_t>((
|
163
|
-
uint32_t B = Load<uint32_t>((
|
162
|
+
uint32_t A = Load<uint32_t>(const_data_ptr_cast(left.GetPrefix()));
|
163
|
+
uint32_t B = Load<uint32_t>(const_data_ptr_cast(right.GetPrefix()));
|
164
164
|
|
165
165
|
// Utility to move 0xa1b2c3d4 into 0xd4c3b2a1, basically inverting the order byte-a-byte
|
166
166
|
auto bswap = [](uint32_t v) -> uint32_t {
|
@@ -166,7 +166,7 @@ public:
|
|
166
166
|
//! Create a blob Value from a data pointer and a length: no bytes are interpreted
|
167
167
|
DUCKDB_API static Value BLOB(const_data_ptr_t data, idx_t len);
|
168
168
|
static Value BLOB_RAW(const string &data) { // NOLINT
|
169
|
-
return Value::BLOB((
|
169
|
+
return Value::BLOB(const_data_ptr_cast(data.c_str()), data.size());
|
170
170
|
}
|
171
171
|
//! Creates a blob by casting a specified string to a blob (i.e. interpreting \x characters)
|
172
172
|
DUCKDB_API static Value BLOB(const string &data);
|
@@ -24,6 +24,15 @@ struct UnifiedVectorFormat {
|
|
24
24
|
data_ptr_t data;
|
25
25
|
ValidityMask validity;
|
26
26
|
SelectionVector owned_sel;
|
27
|
+
|
28
|
+
template <class T>
|
29
|
+
static inline const T *GetData(const UnifiedVectorFormat &format) {
|
30
|
+
return reinterpret_cast<const T *>(format.data);
|
31
|
+
}
|
32
|
+
template <class T>
|
33
|
+
static inline T *GetDataNoConst(UnifiedVectorFormat &format) {
|
34
|
+
return reinterpret_cast<T *>(format.data);
|
35
|
+
}
|
27
36
|
};
|
28
37
|
|
29
38
|
class VectorCache;
|
@@ -52,7 +52,7 @@ public:
|
|
52
52
|
if (type != TARGET::TYPE) {
|
53
53
|
throw InternalException("Failed to cast vector auxiliary data to type - type mismatch");
|
54
54
|
}
|
55
|
-
return
|
55
|
+
return reinterpret_cast<TARGET &>(*this);
|
56
56
|
}
|
57
57
|
|
58
58
|
template <class TARGET>
|
@@ -60,7 +60,7 @@ public:
|
|
60
60
|
if (type != TARGET::TYPE) {
|
61
61
|
throw InternalException("Failed to cast vector auxiliary data to type - type mismatch");
|
62
62
|
}
|
63
|
-
return
|
63
|
+
return reinterpret_cast<const TARGET &>(*this);
|
64
64
|
}
|
65
65
|
};
|
66
66
|
|
@@ -121,6 +121,18 @@ protected:
|
|
121
121
|
VectorBufferType buffer_type;
|
122
122
|
unique_ptr<VectorAuxiliaryData> aux_data;
|
123
123
|
unsafe_unique_array<data_t> data;
|
124
|
+
|
125
|
+
public:
|
126
|
+
template <class TARGET>
|
127
|
+
TARGET &Cast() {
|
128
|
+
D_ASSERT(dynamic_cast<TARGET *>(this));
|
129
|
+
return reinterpret_cast<TARGET &>(*this);
|
130
|
+
}
|
131
|
+
template <class TARGET>
|
132
|
+
const TARGET &Cast() const {
|
133
|
+
D_ASSERT(dynamic_cast<const TARGET *>(this));
|
134
|
+
return reinterpret_cast<const TARGET &>(*this);
|
135
|
+
}
|
124
136
|
};
|
125
137
|
|
126
138
|
//! The DictionaryBuffer holds a selection vector
|
@@ -154,7 +166,7 @@ private:
|
|
154
166
|
class VectorStringBuffer : public VectorBuffer {
|
155
167
|
public:
|
156
168
|
VectorStringBuffer();
|
157
|
-
VectorStringBuffer(VectorBufferType type);
|
169
|
+
explicit VectorStringBuffer(VectorBufferType type);
|
158
170
|
|
159
171
|
public:
|
160
172
|
string_t AddString(const char *data, idx_t len) {
|
@@ -207,7 +219,7 @@ private:
|
|
207
219
|
class VectorStructBuffer : public VectorBuffer {
|
208
220
|
public:
|
209
221
|
VectorStructBuffer();
|
210
|
-
VectorStructBuffer(const LogicalType &struct_type, idx_t capacity = STANDARD_VECTOR_SIZE);
|
222
|
+
explicit VectorStructBuffer(const LogicalType &struct_type, idx_t capacity = STANDARD_VECTOR_SIZE);
|
211
223
|
VectorStructBuffer(Vector &other, const SelectionVector &sel, idx_t count);
|
212
224
|
~VectorStructBuffer() override;
|
213
225
|
|
@@ -226,8 +238,8 @@ private:
|
|
226
238
|
|
227
239
|
class VectorListBuffer : public VectorBuffer {
|
228
240
|
public:
|
229
|
-
VectorListBuffer(unique_ptr<Vector> vector, idx_t initial_capacity = STANDARD_VECTOR_SIZE);
|
230
|
-
VectorListBuffer(const LogicalType &list_type, idx_t initial_capacity = STANDARD_VECTOR_SIZE);
|
241
|
+
explicit VectorListBuffer(unique_ptr<Vector> vector, idx_t initial_capacity = STANDARD_VECTOR_SIZE);
|
242
|
+
explicit VectorListBuffer(const LogicalType &list_type, idx_t initial_capacity = STANDARD_VECTOR_SIZE);
|
231
243
|
~VectorListBuffer() override;
|
232
244
|
|
233
245
|
public:
|
@@ -39,7 +39,7 @@ private:
|
|
39
39
|
}
|
40
40
|
|
41
41
|
template <class STATE_TYPE, class INPUT_TYPE, class OP>
|
42
|
-
static inline void UnaryFlatLoop(INPUT_TYPE *__restrict idata, AggregateInputData &aggr_input_data,
|
42
|
+
static inline void UnaryFlatLoop(const INPUT_TYPE *__restrict idata, AggregateInputData &aggr_input_data,
|
43
43
|
STATE_TYPE **__restrict states, ValidityMask &mask, idx_t count) {
|
44
44
|
if (!mask.AllValid()) {
|
45
45
|
idx_t base_idx = 0;
|
@@ -76,7 +76,7 @@ private:
|
|
76
76
|
}
|
77
77
|
|
78
78
|
template <class STATE_TYPE, class INPUT_TYPE, class OP>
|
79
|
-
static inline void UnaryScatterLoop(INPUT_TYPE *__restrict idata, AggregateInputData &aggr_input_data,
|
79
|
+
static inline void UnaryScatterLoop(const INPUT_TYPE *__restrict idata, AggregateInputData &aggr_input_data,
|
80
80
|
STATE_TYPE **__restrict states, const SelectionVector &isel,
|
81
81
|
const SelectionVector &ssel, ValidityMask &mask, idx_t count) {
|
82
82
|
if (OP::IgnoreNull() && !mask.AllValid()) {
|
@@ -99,7 +99,7 @@ private:
|
|
99
99
|
}
|
100
100
|
|
101
101
|
template <class STATE_TYPE, class INPUT_TYPE, class OP>
|
102
|
-
static inline void UnaryFlatUpdateLoop(INPUT_TYPE *__restrict idata, AggregateInputData &aggr_input_data,
|
102
|
+
static inline void UnaryFlatUpdateLoop(const INPUT_TYPE *__restrict idata, AggregateInputData &aggr_input_data,
|
103
103
|
STATE_TYPE *__restrict state, idx_t count, ValidityMask &mask) {
|
104
104
|
idx_t base_idx = 0;
|
105
105
|
auto entry_count = ValidityMask::EntryCount(count);
|
@@ -129,7 +129,7 @@ private:
|
|
129
129
|
}
|
130
130
|
|
131
131
|
template <class STATE_TYPE, class INPUT_TYPE, class OP>
|
132
|
-
static inline void UnaryUpdateLoop(INPUT_TYPE *__restrict idata, AggregateInputData &aggr_input_data,
|
132
|
+
static inline void UnaryUpdateLoop(const INPUT_TYPE *__restrict idata, AggregateInputData &aggr_input_data,
|
133
133
|
STATE_TYPE *__restrict state, idx_t count, ValidityMask &mask,
|
134
134
|
const SelectionVector &__restrict sel_vector) {
|
135
135
|
if (OP::IgnoreNull() && !mask.AllValid()) {
|
@@ -150,8 +150,8 @@ private:
|
|
150
150
|
}
|
151
151
|
|
152
152
|
template <class STATE_TYPE, class A_TYPE, class B_TYPE, class OP>
|
153
|
-
static inline void BinaryScatterLoop(A_TYPE *__restrict adata, AggregateInputData &aggr_input_data,
|
154
|
-
B_TYPE *__restrict bdata, STATE_TYPE **__restrict states, idx_t count,
|
153
|
+
static inline void BinaryScatterLoop(const A_TYPE *__restrict adata, AggregateInputData &aggr_input_data,
|
154
|
+
const B_TYPE *__restrict bdata, STATE_TYPE **__restrict states, idx_t count,
|
155
155
|
const SelectionVector &asel, const SelectionVector &bsel,
|
156
156
|
const SelectionVector &ssel, ValidityMask &avalidity,
|
157
157
|
ValidityMask &bvalidity) {
|
@@ -179,8 +179,8 @@ private:
|
|
179
179
|
}
|
180
180
|
|
181
181
|
template <class STATE_TYPE, class A_TYPE, class B_TYPE, class OP>
|
182
|
-
static inline void BinaryUpdateLoop(A_TYPE *__restrict adata, AggregateInputData &aggr_input_data,
|
183
|
-
B_TYPE *__restrict bdata, STATE_TYPE *__restrict state, idx_t count,
|
182
|
+
static inline void BinaryUpdateLoop(const A_TYPE *__restrict adata, AggregateInputData &aggr_input_data,
|
183
|
+
const B_TYPE *__restrict bdata, STATE_TYPE *__restrict state, idx_t count,
|
184
184
|
const SelectionVector &asel, const SelectionVector &bsel,
|
185
185
|
ValidityMask &avalidity, ValidityMask &bvalidity) {
|
186
186
|
if (OP::IgnoreNull() && (!avalidity.AllValid() || !bvalidity.AllValid())) {
|
@@ -248,9 +248,9 @@ public:
|
|
248
248
|
UnifiedVectorFormat idata, sdata;
|
249
249
|
input.ToUnifiedFormat(count, idata);
|
250
250
|
states.ToUnifiedFormat(count, sdata);
|
251
|
-
UnaryScatterLoop<STATE_TYPE, INPUT_TYPE, OP>((
|
252
|
-
(STATE_TYPE **)sdata.data, *idata.sel,
|
253
|
-
idata.validity, count);
|
251
|
+
UnaryScatterLoop<STATE_TYPE, INPUT_TYPE, OP>(UnifiedVectorFormat::GetData<INPUT_TYPE>(idata),
|
252
|
+
aggr_input_data, (STATE_TYPE **)sdata.data, *idata.sel,
|
253
|
+
*sdata.sel, idata.validity, count);
|
254
254
|
}
|
255
255
|
}
|
256
256
|
|
@@ -275,8 +275,9 @@ public:
|
|
275
275
|
default: {
|
276
276
|
UnifiedVectorFormat idata;
|
277
277
|
input.ToUnifiedFormat(count, idata);
|
278
|
-
UnaryUpdateLoop<STATE_TYPE, INPUT_TYPE, OP>((
|
279
|
-
count, idata.validity,
|
278
|
+
UnaryUpdateLoop<STATE_TYPE, INPUT_TYPE, OP>(UnifiedVectorFormat::GetData<INPUT_TYPE>(idata),
|
279
|
+
aggr_input_data, (STATE_TYPE *)state, count, idata.validity,
|
280
|
+
*idata.sel);
|
280
281
|
break;
|
281
282
|
}
|
282
283
|
}
|
@@ -290,9 +291,9 @@ public:
|
|
290
291
|
b.ToUnifiedFormat(count, bdata);
|
291
292
|
states.ToUnifiedFormat(count, sdata);
|
292
293
|
|
293
|
-
BinaryScatterLoop<STATE_TYPE, A_TYPE, B_TYPE, OP>(
|
294
|
-
|
295
|
-
|
294
|
+
BinaryScatterLoop<STATE_TYPE, A_TYPE, B_TYPE, OP>(
|
295
|
+
UnifiedVectorFormat::GetData<A_TYPE>(adata), aggr_input_data, UnifiedVectorFormat::GetData<B_TYPE>(bdata),
|
296
|
+
(STATE_TYPE **)sdata.data, count, *adata.sel, *bdata.sel, *sdata.sel, adata.validity, bdata.validity);
|
296
297
|
}
|
297
298
|
|
298
299
|
template <class STATE_TYPE, class A_TYPE, class B_TYPE, class OP>
|
@@ -302,9 +303,9 @@ public:
|
|
302
303
|
a.ToUnifiedFormat(count, adata);
|
303
304
|
b.ToUnifiedFormat(count, bdata);
|
304
305
|
|
305
|
-
BinaryUpdateLoop<STATE_TYPE, A_TYPE, B_TYPE, OP>(
|
306
|
-
|
307
|
-
|
306
|
+
BinaryUpdateLoop<STATE_TYPE, A_TYPE, B_TYPE, OP>(
|
307
|
+
UnifiedVectorFormat::GetData<A_TYPE>(adata), aggr_input_data, UnifiedVectorFormat::GetData<B_TYPE>(bdata),
|
308
|
+
(STATE_TYPE *)state, count, *adata.sel, *bdata.sel, adata.validity, bdata.validity);
|
308
309
|
}
|
309
310
|
|
310
311
|
template <class STATE_TYPE, class OP>
|