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
@@ -19,9 +19,9 @@ PartitionedColumnData::PartitionedColumnData(const PartitionedColumnData &other)
|
|
19
19
|
unique_ptr<PartitionedColumnData> PartitionedColumnData::CreateShared() {
|
20
20
|
switch (type) {
|
21
21
|
case PartitionedColumnDataType::RADIX:
|
22
|
-
return make_uniq<RadixPartitionedColumnData>((
|
22
|
+
return make_uniq<RadixPartitionedColumnData>(Cast<RadixPartitionedColumnData>());
|
23
23
|
case PartitionedColumnDataType::HIVE:
|
24
|
-
return make_uniq<HivePartitionedColumnData>((
|
24
|
+
return make_uniq<HivePartitionedColumnData>(Cast<HivePartitionedColumnData>());
|
25
25
|
default:
|
26
26
|
throw NotImplementedException("CreateShared for this type of PartitionedColumnData");
|
27
27
|
}
|
@@ -40,7 +40,7 @@ template <>
|
|
40
40
|
hash_t Hash(float val) {
|
41
41
|
static_assert(sizeof(float) == sizeof(uint32_t), "");
|
42
42
|
FloatingPointEqualityTransform<float>::OP(val);
|
43
|
-
uint32_t uval = Load<uint32_t>((
|
43
|
+
uint32_t uval = Load<uint32_t>(const_data_ptr_cast(&val));
|
44
44
|
return murmurhash64(uval);
|
45
45
|
}
|
46
46
|
|
@@ -48,7 +48,7 @@ template <>
|
|
48
48
|
hash_t Hash(double val) {
|
49
49
|
static_assert(sizeof(double) == sizeof(uint64_t), "");
|
50
50
|
FloatingPointEqualityTransform<double>::OP(val);
|
51
|
-
uint64_t uval = Load<uint64_t>((
|
51
|
+
uint64_t uval = Load<uint64_t>(const_data_ptr_cast(&val));
|
52
52
|
return murmurhash64(uval);
|
53
53
|
}
|
54
54
|
|
@@ -9,18 +9,18 @@ namespace duckdb {
|
|
9
9
|
HyperLogLog::HyperLogLog() : hll(nullptr) {
|
10
10
|
hll = duckdb_hll::hll_create();
|
11
11
|
// Insert into a dense hll can be vectorized, sparse cannot, so we immediately convert
|
12
|
-
duckdb_hll::hllSparseToDense(
|
12
|
+
duckdb_hll::hllSparseToDense(hll);
|
13
13
|
}
|
14
14
|
|
15
|
-
HyperLogLog::HyperLogLog(
|
15
|
+
HyperLogLog::HyperLogLog(duckdb_hll::robj *hll) : hll(hll) {
|
16
16
|
}
|
17
17
|
|
18
18
|
HyperLogLog::~HyperLogLog() {
|
19
|
-
duckdb_hll::hll_destroy(
|
19
|
+
duckdb_hll::hll_destroy(hll);
|
20
20
|
}
|
21
21
|
|
22
22
|
void HyperLogLog::Add(data_ptr_t element, idx_t size) {
|
23
|
-
if (duckdb_hll::hll_add(
|
23
|
+
if (duckdb_hll::hll_add(hll, element, size) == HLL_C_ERR) {
|
24
24
|
throw InternalException("Could not add to HLL?");
|
25
25
|
}
|
26
26
|
}
|
@@ -29,7 +29,7 @@ idx_t HyperLogLog::Count() const {
|
|
29
29
|
// exception from size_t ban
|
30
30
|
size_t result;
|
31
31
|
|
32
|
-
if (duckdb_hll::hll_count(
|
32
|
+
if (duckdb_hll::hll_count(hll, &result) != HLL_C_OK) {
|
33
33
|
throw InternalException("Could not count HLL?");
|
34
34
|
}
|
35
35
|
return result;
|
@@ -37,24 +37,24 @@ idx_t HyperLogLog::Count() const {
|
|
37
37
|
|
38
38
|
unique_ptr<HyperLogLog> HyperLogLog::Merge(HyperLogLog &other) {
|
39
39
|
duckdb_hll::robj *hlls[2];
|
40
|
-
hlls[0] =
|
41
|
-
hlls[1] =
|
40
|
+
hlls[0] = hll;
|
41
|
+
hlls[1] = other.hll;
|
42
42
|
auto new_hll = duckdb_hll::hll_merge(hlls, 2);
|
43
43
|
if (!new_hll) {
|
44
44
|
throw InternalException("Could not merge HLLs");
|
45
45
|
}
|
46
|
-
return unique_ptr<HyperLogLog>(new HyperLogLog(
|
46
|
+
return unique_ptr<HyperLogLog>(new HyperLogLog(new_hll));
|
47
47
|
}
|
48
48
|
|
49
49
|
HyperLogLog *HyperLogLog::MergePointer(HyperLogLog &other) {
|
50
50
|
duckdb_hll::robj *hlls[2];
|
51
|
-
hlls[0] =
|
52
|
-
hlls[1] =
|
51
|
+
hlls[0] = hll;
|
52
|
+
hlls[1] = other.hll;
|
53
53
|
auto new_hll = duckdb_hll::hll_merge(hlls, 2);
|
54
54
|
if (!new_hll) {
|
55
55
|
throw Exception("Could not merge HLLs");
|
56
56
|
}
|
57
|
-
return new HyperLogLog(
|
57
|
+
return new HyperLogLog(new_hll);
|
58
58
|
}
|
59
59
|
|
60
60
|
unique_ptr<HyperLogLog> HyperLogLog::Merge(HyperLogLog logs[], idx_t count) {
|
@@ -63,13 +63,13 @@ unique_ptr<HyperLogLog> HyperLogLog::Merge(HyperLogLog logs[], idx_t count) {
|
|
63
63
|
};
|
64
64
|
auto hlls = hlls_uptr.get();
|
65
65
|
for (idx_t i = 0; i < count; i++) {
|
66
|
-
hlls[i] =
|
66
|
+
hlls[i] = logs[i].hll;
|
67
67
|
}
|
68
68
|
auto new_hll = duckdb_hll::hll_merge(hlls, count);
|
69
69
|
if (!new_hll) {
|
70
70
|
throw InternalException("Could not merge HLLs");
|
71
71
|
}
|
72
|
-
return unique_ptr<HyperLogLog>(new HyperLogLog(
|
72
|
+
return unique_ptr<HyperLogLog>(new HyperLogLog(new_hll));
|
73
73
|
}
|
74
74
|
|
75
75
|
idx_t HyperLogLog::GetSize() {
|
@@ -77,7 +77,7 @@ idx_t HyperLogLog::GetSize() {
|
|
77
77
|
}
|
78
78
|
|
79
79
|
data_ptr_t HyperLogLog::GetPtr() const {
|
80
|
-
return (
|
80
|
+
return data_ptr_cast((hll)->ptr);
|
81
81
|
}
|
82
82
|
|
83
83
|
unique_ptr<HyperLogLog> HyperLogLog::Copy() {
|
@@ -123,21 +123,22 @@ inline uint64_t TemplatedHash(const T &elem) {
|
|
123
123
|
|
124
124
|
template <>
|
125
125
|
inline uint64_t TemplatedHash(const hugeint_t &elem) {
|
126
|
-
return TemplatedHash<uint64_t>(Load<uint64_t>((
|
126
|
+
return TemplatedHash<uint64_t>(Load<uint64_t>(const_data_ptr_cast(&elem.upper))) ^
|
127
|
+
TemplatedHash<uint64_t>(elem.lower);
|
127
128
|
}
|
128
129
|
|
129
130
|
template <idx_t rest>
|
130
|
-
inline void CreateIntegerRecursive(
|
131
|
+
inline void CreateIntegerRecursive(const_data_ptr_t &data, uint64_t &x) {
|
131
132
|
x ^= (uint64_t)data[rest - 1] << ((rest - 1) * 8);
|
132
133
|
return CreateIntegerRecursive<rest - 1>(data, x);
|
133
134
|
}
|
134
135
|
|
135
136
|
template <>
|
136
|
-
inline void CreateIntegerRecursive<1>(
|
137
|
+
inline void CreateIntegerRecursive<1>(const_data_ptr_t &data, uint64_t &x) {
|
137
138
|
x ^= (uint64_t)data[0];
|
138
139
|
}
|
139
140
|
|
140
|
-
inline uint64_t HashOtherSize(
|
141
|
+
inline uint64_t HashOtherSize(const_data_ptr_t &data, const idx_t &len) {
|
141
142
|
uint64_t x = 0;
|
142
143
|
switch (len & 7) {
|
143
144
|
case 7:
|
@@ -169,7 +170,7 @@ inline uint64_t HashOtherSize(const data_ptr_t &data, const idx_t &len) {
|
|
169
170
|
|
170
171
|
template <>
|
171
172
|
inline uint64_t TemplatedHash(const string_t &elem) {
|
172
|
-
|
173
|
+
auto data = const_data_ptr_cast(elem.GetData());
|
173
174
|
const auto &len = elem.GetSize();
|
174
175
|
uint64_t h = 0;
|
175
176
|
for (idx_t i = 0; i + sizeof(uint64_t) <= len; i += sizeof(uint64_t)) {
|
@@ -194,7 +195,7 @@ inline uint64_t TemplatedHash(const string_t &elem) {
|
|
194
195
|
|
195
196
|
template <class T>
|
196
197
|
void TemplatedComputeHashes(UnifiedVectorFormat &vdata, const idx_t &count, uint64_t hashes[]) {
|
197
|
-
|
198
|
+
auto data = UnifiedVectorFormat::GetData<T>(vdata);
|
198
199
|
for (idx_t i = 0; i < count; i++) {
|
199
200
|
auto idx = vdata.sel->get_index(i);
|
200
201
|
if (vdata.validity.RowIsValid(idx)) {
|
@@ -262,7 +263,7 @@ void HyperLogLog::ProcessEntries(UnifiedVectorFormat &vdata, const LogicalType &
|
|
262
263
|
|
263
264
|
void HyperLogLog::AddToLogs(UnifiedVectorFormat &vdata, idx_t count, uint64_t indices[], uint8_t counts[],
|
264
265
|
HyperLogLog **logs[], const SelectionVector *log_sel) {
|
265
|
-
AddToLogsInternal(vdata, count, indices, counts,
|
266
|
+
AddToLogsInternal(vdata, count, indices, counts, reinterpret_cast<void ****>(logs), log_sel);
|
266
267
|
}
|
267
268
|
|
268
269
|
void HyperLogLog::AddToLog(UnifiedVectorFormat &vdata, idx_t count, uint64_t indices[], uint8_t counts[]) {
|
@@ -17,8 +17,14 @@ static data_ptr_t AllocatePrimitiveData(Allocator &allocator, uint16_t capacity)
|
|
17
17
|
}
|
18
18
|
|
19
19
|
template <class T>
|
20
|
-
static T *GetPrimitiveData(
|
21
|
-
return
|
20
|
+
static T *GetPrimitiveData(ListSegment *segment) {
|
21
|
+
return reinterpret_cast<T *>(data_ptr_cast(segment) + sizeof(ListSegment) + segment->capacity * sizeof(bool));
|
22
|
+
}
|
23
|
+
|
24
|
+
template <class T>
|
25
|
+
static const T *GetPrimitiveData(const ListSegment *segment) {
|
26
|
+
return reinterpret_cast<const T *>(const_data_ptr_cast(segment) + sizeof(ListSegment) +
|
27
|
+
segment->capacity * sizeof(bool));
|
22
28
|
}
|
23
29
|
|
24
30
|
//===--------------------------------------------------------------------===//
|
@@ -32,13 +38,24 @@ static data_ptr_t AllocateListData(Allocator &allocator, uint16_t capacity) {
|
|
32
38
|
return allocator.AllocateData(GetAllocationSizeList(capacity));
|
33
39
|
}
|
34
40
|
|
35
|
-
static uint64_t *GetListLengthData(
|
36
|
-
return
|
41
|
+
static uint64_t *GetListLengthData(ListSegment *segment) {
|
42
|
+
return reinterpret_cast<uint64_t *>(data_ptr_cast(segment) + sizeof(ListSegment) +
|
43
|
+
segment->capacity * sizeof(bool));
|
44
|
+
}
|
45
|
+
|
46
|
+
static const uint64_t *GetListLengthData(const ListSegment *segment) {
|
47
|
+
return reinterpret_cast<const uint64_t *>(const_data_ptr_cast(segment) + sizeof(ListSegment) +
|
48
|
+
segment->capacity * sizeof(bool));
|
49
|
+
}
|
50
|
+
|
51
|
+
static const LinkedList *GetListChildData(const ListSegment *segment) {
|
52
|
+
return reinterpret_cast<const LinkedList *>(const_data_ptr_cast(segment) + sizeof(ListSegment) +
|
53
|
+
segment->capacity * (sizeof(bool) + sizeof(uint64_t)));
|
37
54
|
}
|
38
55
|
|
39
|
-
static LinkedList *GetListChildData(
|
40
|
-
return
|
41
|
-
|
56
|
+
static LinkedList *GetListChildData(ListSegment *segment) {
|
57
|
+
return reinterpret_cast<LinkedList *>(data_ptr_cast(segment) + sizeof(ListSegment) +
|
58
|
+
segment->capacity * (sizeof(bool) + sizeof(uint64_t)));
|
42
59
|
}
|
43
60
|
|
44
61
|
//===--------------------------------------------------------------------===//
|
@@ -52,12 +69,22 @@ static data_ptr_t AllocateStructData(Allocator &allocator, uint16_t capacity, id
|
|
52
69
|
return allocator.AllocateData(GetAllocationSizeStruct(capacity, child_count));
|
53
70
|
}
|
54
71
|
|
55
|
-
static ListSegment **GetStructData(
|
56
|
-
return
|
72
|
+
static ListSegment **GetStructData(ListSegment *segment) {
|
73
|
+
return reinterpret_cast<ListSegment **>(data_ptr_cast(segment) + +sizeof(ListSegment) +
|
74
|
+
segment->capacity * sizeof(bool));
|
57
75
|
}
|
58
76
|
|
59
|
-
static
|
60
|
-
return
|
77
|
+
static const ListSegment *const *GetStructData(const ListSegment *segment) {
|
78
|
+
return reinterpret_cast<const ListSegment *const *>(const_data_ptr_cast(segment) + sizeof(ListSegment) +
|
79
|
+
segment->capacity * sizeof(bool));
|
80
|
+
}
|
81
|
+
|
82
|
+
static bool *GetNullMask(ListSegment *segment) {
|
83
|
+
return reinterpret_cast<bool *>(data_ptr_cast(segment) + sizeof(ListSegment));
|
84
|
+
}
|
85
|
+
|
86
|
+
static const bool *GetNullMask(const ListSegment *segment) {
|
87
|
+
return reinterpret_cast<const bool *>(const_data_ptr_cast(segment) + sizeof(ListSegment));
|
61
88
|
}
|
62
89
|
|
63
90
|
static uint16_t GetCapacityForNewSegment(uint16_t capacity) {
|
@@ -96,12 +123,12 @@ static ListSegment *CreatePrimitiveSegment(const ListSegmentFunctions &, Allocat
|
|
96
123
|
template <class T>
|
97
124
|
void DestroyPrimitiveSegment(const ListSegmentFunctions &, ListSegment *segment, Allocator &allocator) {
|
98
125
|
D_ASSERT(segment);
|
99
|
-
allocator.FreeData((
|
126
|
+
allocator.FreeData(data_ptr_cast(segment), GetAllocationSize<T>(segment->capacity));
|
100
127
|
}
|
101
128
|
|
102
129
|
static ListSegment *CreateListSegment(const ListSegmentFunctions &, Allocator &allocator, uint16_t capacity) {
|
103
130
|
// allocate data and set the header
|
104
|
-
auto segment =
|
131
|
+
auto segment = reinterpret_cast<ListSegment *>(AllocateListData(allocator, capacity));
|
105
132
|
segment->capacity = capacity;
|
106
133
|
segment->count = 0;
|
107
134
|
segment->next = nullptr;
|
@@ -109,24 +136,25 @@ static ListSegment *CreateListSegment(const ListSegmentFunctions &, Allocator &a
|
|
109
136
|
// create an empty linked list for the child vector
|
110
137
|
auto linked_child_list = GetListChildData(segment);
|
111
138
|
LinkedList linked_list(0, nullptr, nullptr);
|
112
|
-
Store<LinkedList>(linked_list, (
|
139
|
+
Store<LinkedList>(linked_list, data_ptr_cast(linked_child_list));
|
113
140
|
|
114
141
|
return segment;
|
115
142
|
}
|
116
143
|
|
117
144
|
void DestroyListSegment(const ListSegmentFunctions &functions, ListSegment *segment, Allocator &allocator) {
|
118
145
|
// destroy the child list
|
119
|
-
auto linked_child_list = Load<LinkedList>((
|
146
|
+
auto linked_child_list = Load<LinkedList>(data_ptr_cast(GetListChildData(segment)));
|
120
147
|
DestroyLinkedList(functions.child_functions[0], allocator, linked_child_list);
|
121
148
|
|
122
149
|
// destroy the list segment itself
|
123
|
-
allocator.FreeData((
|
150
|
+
allocator.FreeData(data_ptr_cast(segment), GetAllocationSizeList(segment->capacity));
|
124
151
|
}
|
125
152
|
|
126
153
|
static ListSegment *CreateStructSegment(const ListSegmentFunctions &functions, Allocator &allocator,
|
127
154
|
uint16_t capacity) {
|
128
155
|
// allocate data and set header
|
129
|
-
auto segment =
|
156
|
+
auto segment =
|
157
|
+
reinterpret_cast<ListSegment *>(AllocateStructData(allocator, capacity, functions.child_functions.size()));
|
130
158
|
segment->capacity = capacity;
|
131
159
|
segment->count = 0;
|
132
160
|
segment->next = nullptr;
|
@@ -136,7 +164,7 @@ static ListSegment *CreateStructSegment(const ListSegmentFunctions &functions, A
|
|
136
164
|
for (idx_t i = 0; i < functions.child_functions.size(); i++) {
|
137
165
|
auto child_function = functions.child_functions[i];
|
138
166
|
auto child_segment = child_function.create_segment(child_function, allocator, capacity);
|
139
|
-
Store<ListSegment *>(child_segment, (
|
167
|
+
Store<ListSegment *>(child_segment, data_ptr_cast(child_segments + i));
|
140
168
|
}
|
141
169
|
|
142
170
|
return segment;
|
@@ -147,12 +175,12 @@ void DestroyStructSegment(const ListSegmentFunctions &functions, ListSegment *se
|
|
147
175
|
auto child_segments = GetStructData(segment);
|
148
176
|
for (idx_t i = 0; i < functions.child_functions.size(); i++) {
|
149
177
|
auto child_function = functions.child_functions[i];
|
150
|
-
auto child_segment = Load<ListSegment *>((
|
178
|
+
auto child_segment = Load<ListSegment *>(data_ptr_cast(child_segments + i));
|
151
179
|
child_function.destroy(child_function, child_segment, allocator);
|
152
180
|
}
|
153
181
|
|
154
182
|
// destroy the struct segment itself
|
155
|
-
allocator.FreeData((
|
183
|
+
allocator.FreeData(data_ptr_cast(segment),
|
156
184
|
GetAllocationSizeStruct(segment->capacity, functions.child_functions.size()));
|
157
185
|
}
|
158
186
|
|
@@ -200,7 +228,7 @@ static void WriteDataToPrimitiveSegment(const ListSegmentFunctions &functions, A
|
|
200
228
|
// write value
|
201
229
|
if (!is_null) {
|
202
230
|
auto data = GetPrimitiveData<T>(segment);
|
203
|
-
Store<T>(((T *)input_data)[entry_idx], (
|
231
|
+
Store<T>(((T *)input_data)[entry_idx], data_ptr_cast(data + segment->count));
|
204
232
|
}
|
205
233
|
}
|
206
234
|
|
@@ -208,7 +236,7 @@ static void WriteDataToVarcharSegment(const ListSegmentFunctions &functions, All
|
|
208
236
|
Vector &input, idx_t &entry_idx, idx_t &count) {
|
209
237
|
|
210
238
|
// get the vector data and the source index of the entry that we want to write
|
211
|
-
auto input_data = FlatVector::GetData(input);
|
239
|
+
auto input_data = FlatVector::GetData<string_t>(input);
|
212
240
|
|
213
241
|
// write null validity
|
214
242
|
auto null_mask = GetNullMask(segment);
|
@@ -222,19 +250,19 @@ static void WriteDataToVarcharSegment(const ListSegmentFunctions &functions, All
|
|
222
250
|
// get the string
|
223
251
|
string_t str_t;
|
224
252
|
if (!is_null) {
|
225
|
-
str_t =
|
253
|
+
str_t = input_data[entry_idx];
|
226
254
|
str_length = str_t.GetSize();
|
227
255
|
}
|
228
256
|
|
229
257
|
// we can reconstruct the offset from the length
|
230
|
-
Store<uint64_t>(str_length, (
|
258
|
+
Store<uint64_t>(str_length, data_ptr_cast(str_length_data + segment->count));
|
231
259
|
|
232
260
|
if (is_null) {
|
233
261
|
return;
|
234
262
|
}
|
235
263
|
|
236
264
|
// write the characters to the linked list of child segments
|
237
|
-
auto child_segments = Load<LinkedList>((
|
265
|
+
auto child_segments = Load<LinkedList>(data_ptr_cast(GetListChildData(segment)));
|
238
266
|
for (char &c : str_t.GetString()) {
|
239
267
|
auto child_segment = GetSegment(functions.child_functions.back(), allocator, child_segments);
|
240
268
|
auto data = GetPrimitiveData<char>(child_segment);
|
@@ -244,14 +272,14 @@ static void WriteDataToVarcharSegment(const ListSegmentFunctions &functions, All
|
|
244
272
|
}
|
245
273
|
|
246
274
|
// store the updated linked list
|
247
|
-
Store<LinkedList>(child_segments, (
|
275
|
+
Store<LinkedList>(child_segments, data_ptr_cast(GetListChildData(segment)));
|
248
276
|
}
|
249
277
|
|
250
278
|
static void WriteDataToListSegment(const ListSegmentFunctions &functions, Allocator &allocator, ListSegment *segment,
|
251
279
|
Vector &input, idx_t &entry_idx, idx_t &count) {
|
252
280
|
|
253
281
|
// get the vector data and the source index of the entry that we want to write
|
254
|
-
auto input_data = FlatVector::GetData(input);
|
282
|
+
auto input_data = FlatVector::GetData<list_entry_t>(input);
|
255
283
|
|
256
284
|
// write null validity
|
257
285
|
auto null_mask = GetNullMask(segment);
|
@@ -264,7 +292,7 @@ static void WriteDataToListSegment(const ListSegmentFunctions &functions, Alloca
|
|
264
292
|
|
265
293
|
if (!is_null) {
|
266
294
|
// get list entry information
|
267
|
-
auto list_entries =
|
295
|
+
auto list_entries = input_data;
|
268
296
|
const auto &list_entry = list_entries[entry_idx];
|
269
297
|
list_length = list_entry.length;
|
270
298
|
|
@@ -273,7 +301,7 @@ static void WriteDataToListSegment(const ListSegmentFunctions &functions, Alloca
|
|
273
301
|
auto &child_vector = ListVector::GetEntry(input);
|
274
302
|
|
275
303
|
// loop over the child vector entries and recurse on them
|
276
|
-
auto child_segments = Load<LinkedList>((
|
304
|
+
auto child_segments = Load<LinkedList>(data_ptr_cast(GetListChildData(segment)));
|
277
305
|
D_ASSERT(functions.child_functions.size() == 1);
|
278
306
|
for (idx_t child_idx = 0; child_idx < list_entry.length; child_idx++) {
|
279
307
|
auto source_idx_child = list_entry.offset + child_idx;
|
@@ -281,10 +309,10 @@ static void WriteDataToListSegment(const ListSegmentFunctions &functions, Alloca
|
|
281
309
|
lists_size);
|
282
310
|
}
|
283
311
|
// store the updated linked list
|
284
|
-
Store<LinkedList>(child_segments, (
|
312
|
+
Store<LinkedList>(child_segments, data_ptr_cast(GetListChildData(segment)));
|
285
313
|
}
|
286
314
|
|
287
|
-
Store<uint64_t>(list_length, (
|
315
|
+
Store<uint64_t>(list_length, data_ptr_cast(list_length_data + segment->count));
|
288
316
|
}
|
289
317
|
|
290
318
|
static void WriteDataToStructSegment(const ListSegmentFunctions &functions, Allocator &allocator, ListSegment *segment,
|
@@ -302,7 +330,7 @@ static void WriteDataToStructSegment(const ListSegmentFunctions &functions, Allo
|
|
302
330
|
|
303
331
|
// write the data of each of the children of the struct
|
304
332
|
for (idx_t child_count = 0; child_count < children.size(); child_count++) {
|
305
|
-
auto child_list_segment = Load<ListSegment *>((
|
333
|
+
auto child_list_segment = Load<ListSegment *>(data_ptr_cast(child_list + child_count));
|
306
334
|
auto &child_function = functions.child_functions[child_count];
|
307
335
|
child_function.write_data(child_function, allocator, child_list_segment, *children[child_count], entry_idx,
|
308
336
|
count);
|
@@ -339,13 +367,13 @@ static void ReadDataFromPrimitiveSegment(const ListSegmentFunctions &, const Lis
|
|
339
367
|
}
|
340
368
|
}
|
341
369
|
|
342
|
-
auto aggr_vector_data = FlatVector::GetData(result);
|
370
|
+
auto aggr_vector_data = FlatVector::GetData<T>(result);
|
343
371
|
|
344
372
|
// load values
|
345
373
|
for (idx_t i = 0; i < segment->count; i++) {
|
346
374
|
if (aggr_vector_validity.RowIsValid(total_count + i)) {
|
347
375
|
auto data = GetPrimitiveData<T>(segment);
|
348
|
-
|
376
|
+
aggr_vector_data[total_count + i] = Load<T>(const_data_ptr_cast(data + i));
|
349
377
|
}
|
350
378
|
}
|
351
379
|
}
|
@@ -365,7 +393,7 @@ static void ReadDataFromVarcharSegment(const ListSegmentFunctions &, const ListS
|
|
365
393
|
|
366
394
|
// append all the child chars to one string
|
367
395
|
string str = "";
|
368
|
-
auto linked_child_list = Load<LinkedList>((
|
396
|
+
auto linked_child_list = Load<LinkedList>(const_data_ptr_cast(GetListChildData(segment)));
|
369
397
|
while (linked_child_list.first_segment) {
|
370
398
|
auto child_segment = linked_child_list.first_segment;
|
371
399
|
auto data = GetPrimitiveData<char>(child_segment);
|
@@ -375,17 +403,17 @@ static void ReadDataFromVarcharSegment(const ListSegmentFunctions &, const ListS
|
|
375
403
|
linked_child_list.last_segment = nullptr;
|
376
404
|
|
377
405
|
// use length and (reconstructed) offset to get the correct substrings
|
378
|
-
auto aggr_vector_data = FlatVector::GetData(result);
|
406
|
+
auto aggr_vector_data = FlatVector::GetData<string_t>(result);
|
379
407
|
auto str_length_data = GetListLengthData(segment);
|
380
408
|
|
381
409
|
// get the substrings and write them to the result vector
|
382
410
|
idx_t offset = 0;
|
383
411
|
for (idx_t i = 0; i < segment->count; i++) {
|
384
412
|
if (!null_mask[i]) {
|
385
|
-
auto str_length = Load<uint64_t>((
|
413
|
+
auto str_length = Load<uint64_t>(const_data_ptr_cast(str_length_data + i));
|
386
414
|
auto substr = str.substr(offset, str_length);
|
387
415
|
auto str_t = StringVector::AddStringOrBlob(result, substr);
|
388
|
-
|
416
|
+
aggr_vector_data[total_count + i] = str_t;
|
389
417
|
offset += str_length;
|
390
418
|
}
|
391
419
|
}
|
@@ -416,14 +444,14 @@ static void ReadDataFromListSegment(const ListSegmentFunctions &functions, const
|
|
416
444
|
// set length and offsets
|
417
445
|
auto list_length_data = GetListLengthData(segment);
|
418
446
|
for (idx_t i = 0; i < segment->count; i++) {
|
419
|
-
auto list_length = Load<uint64_t>((
|
447
|
+
auto list_length = Load<uint64_t>(const_data_ptr_cast(list_length_data + i));
|
420
448
|
list_vector_data[total_count + i].length = list_length;
|
421
449
|
list_vector_data[total_count + i].offset = offset;
|
422
450
|
offset += list_length;
|
423
451
|
}
|
424
452
|
|
425
453
|
auto &child_vector = ListVector::GetEntry(result);
|
426
|
-
auto linked_child_list = Load<LinkedList>((
|
454
|
+
auto linked_child_list = Load<LinkedList>(const_data_ptr_cast(GetListChildData(segment)));
|
427
455
|
ListVector::Reserve(result, offset);
|
428
456
|
|
429
457
|
// recurse into the linked list of child values
|
@@ -451,7 +479,7 @@ static void ReadDataFromStructSegment(const ListSegmentFunctions &functions, con
|
|
451
479
|
D_ASSERT(children.size() == functions.child_functions.size());
|
452
480
|
auto struct_children = GetStructData(segment);
|
453
481
|
for (idx_t child_count = 0; child_count < children.size(); child_count++) {
|
454
|
-
auto struct_children_segment = Load<ListSegment *>((
|
482
|
+
auto struct_children_segment = Load<ListSegment *>(const_data_ptr_cast(struct_children + child_count));
|
455
483
|
auto &child_function = functions.child_functions[child_count];
|
456
484
|
child_function.read_data(child_function, struct_children_segment, *children[child_count], total_count);
|
457
485
|
}
|
@@ -487,25 +515,25 @@ static ListSegment *CopyDataFromListSegment(const ListSegmentFunctions &function
|
|
487
515
|
Allocator &allocator) {
|
488
516
|
|
489
517
|
// create an empty linked list for the child vector of target
|
490
|
-
auto source_linked_child_list = Load<LinkedList>((
|
518
|
+
auto source_linked_child_list = Load<LinkedList>(const_data_ptr_cast(GetListChildData(source)));
|
491
519
|
|
492
520
|
// create the segment
|
493
|
-
auto target =
|
521
|
+
auto target = reinterpret_cast<ListSegment *>(AllocateListData(allocator, source->capacity));
|
494
522
|
memcpy(target, source,
|
495
523
|
sizeof(ListSegment) + source->capacity * (sizeof(bool) + sizeof(uint64_t)) + sizeof(LinkedList));
|
496
524
|
target->next = nullptr;
|
497
525
|
|
498
526
|
auto target_linked_list = GetListChildData(target);
|
499
527
|
LinkedList linked_list(source_linked_child_list.total_capacity, nullptr, nullptr);
|
500
|
-
Store<LinkedList>(linked_list, (
|
528
|
+
Store<LinkedList>(linked_list, data_ptr_cast(target_linked_list));
|
501
529
|
|
502
530
|
// recurse to copy the linked child list
|
503
|
-
auto target_linked_child_list = Load<LinkedList>((
|
531
|
+
auto target_linked_child_list = Load<LinkedList>(data_ptr_cast(GetListChildData(target)));
|
504
532
|
D_ASSERT(functions.child_functions.size() == 1);
|
505
533
|
functions.child_functions[0].CopyLinkedList(source_linked_child_list, target_linked_child_list, allocator);
|
506
534
|
|
507
535
|
// store the updated linked list
|
508
|
-
Store<LinkedList>(target_linked_child_list, (
|
536
|
+
Store<LinkedList>(target_linked_child_list, data_ptr_cast(GetListChildData(target)));
|
509
537
|
return target;
|
510
538
|
}
|
511
539
|
|
@@ -513,7 +541,7 @@ static ListSegment *CopyDataFromStructSegment(const ListSegmentFunctions &functi
|
|
513
541
|
Allocator &allocator) {
|
514
542
|
|
515
543
|
auto source_child_count = functions.child_functions.size();
|
516
|
-
auto target =
|
544
|
+
auto target = reinterpret_cast<ListSegment *>(AllocateStructData(allocator, source->capacity, source_child_count));
|
517
545
|
memcpy(target, source,
|
518
546
|
sizeof(ListSegment) + source->capacity * sizeof(bool) + source_child_count * sizeof(ListSegment *));
|
519
547
|
target->next = nullptr;
|
@@ -524,9 +552,9 @@ static ListSegment *CopyDataFromStructSegment(const ListSegmentFunctions &functi
|
|
524
552
|
|
525
553
|
for (idx_t i = 0; i < functions.child_functions.size(); i++) {
|
526
554
|
auto child_function = functions.child_functions[i];
|
527
|
-
auto source_child_segment = Load<ListSegment *>((
|
555
|
+
auto source_child_segment = Load<ListSegment *>(const_data_ptr_cast(source_child_segments + i));
|
528
556
|
auto target_child_segment = child_function.copy_data(child_function, source_child_segment, allocator);
|
529
|
-
Store<ListSegment *>(target_child_segment, (
|
557
|
+
Store<ListSegment *>(target_child_segment, data_ptr_cast(target_child_segments + i));
|
530
558
|
}
|
531
559
|
return target;
|
532
560
|
}
|
@@ -19,7 +19,7 @@ PartitionedTupleData::PartitionedTupleData(const PartitionedTupleData &other)
|
|
19
19
|
unique_ptr<PartitionedTupleData> PartitionedTupleData::CreateShared() {
|
20
20
|
switch (type) {
|
21
21
|
case PartitionedTupleDataType::RADIX:
|
22
|
-
return make_uniq<RadixPartitionedTupleData>((
|
22
|
+
return make_uniq<RadixPartitionedTupleData>(Cast<RadixPartitionedTupleData>());
|
23
23
|
default:
|
24
24
|
throw NotImplementedException("CreateShared for this type of PartitionedTupleData");
|
25
25
|
}
|
@@ -241,8 +241,10 @@ void TupleDataAllocator::InitializeChunkStateInternal(TupleDataPinState &pin_sta
|
|
241
241
|
lock_guard<mutex> guard(part->lock);
|
242
242
|
const auto old_base_heap_ptr = part->base_heap_ptr;
|
243
243
|
if (old_base_heap_ptr != new_base_heap_ptr) {
|
244
|
-
Vector old_heap_ptrs(
|
245
|
-
|
244
|
+
Vector old_heap_ptrs(
|
245
|
+
Value::POINTER(CastPointerToValue(old_base_heap_ptr + part->heap_block_offset)));
|
246
|
+
Vector new_heap_ptrs(
|
247
|
+
Value::POINTER(CastPointerToValue(new_base_heap_ptr + part->heap_block_offset)));
|
246
248
|
RecomputeHeapPointers(old_heap_ptrs, *ConstantVector::ZeroSelectionVector(), row_locations,
|
247
249
|
new_heap_ptrs, offset, next, layout, 0);
|
248
250
|
part->base_heap_ptr = new_base_heap_ptr;
|
@@ -298,7 +300,7 @@ void TupleDataAllocator::RecomputeHeapPointers(Vector &old_heap_ptrs, const Sele
|
|
298
300
|
|
299
301
|
UnifiedVectorFormat new_heap_data;
|
300
302
|
new_heap_ptrs.ToUnifiedFormat(offset + count, new_heap_data);
|
301
|
-
const auto new_heap_locations = (
|
303
|
+
const auto new_heap_locations = UnifiedVectorFormat::GetData<data_ptr_t>(new_heap_data);
|
302
304
|
const auto new_heap_sel = *new_heap_data.sel;
|
303
305
|
|
304
306
|
for (idx_t col_idx = 0; col_idx < layout.ColumnCount(); col_idx++) {
|