duckdb 0.8.0 → 0.8.1-dev111.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/duckdb/extension/icu/icu-datepart.cpp +1 -1
- package/src/duckdb/extension/json/include/json_common.hpp +1 -1
- package/src/duckdb/extension/json/include/json_executors.hpp +1 -1
- package/src/duckdb/extension/json/json_functions/json_create.cpp +6 -6
- package/src/duckdb/extension/json/json_functions/json_merge_patch.cpp +1 -1
- package/src/duckdb/extension/json/json_functions/json_transform.cpp +1 -1
- package/src/duckdb/extension/parquet/column_reader.cpp +57 -52
- package/src/duckdb/extension/parquet/column_writer.cpp +57 -45
- package/src/duckdb/extension/parquet/include/cast_column_reader.hpp +1 -1
- package/src/duckdb/extension/parquet/include/column_reader.hpp +5 -4
- package/src/duckdb/extension/parquet/include/column_writer.hpp +24 -0
- package/src/duckdb/extension/parquet/include/decode_utils.hpp +6 -0
- package/src/duckdb/extension/parquet/include/list_column_reader.hpp +1 -1
- package/src/duckdb/extension/parquet/include/parquet_dbp_decoder.hpp +4 -4
- package/src/duckdb/extension/parquet/include/parquet_rle_bp_decoder.hpp +4 -5
- package/src/duckdb/extension/parquet/include/resizable_buffer.hpp +4 -4
- package/src/duckdb/extension/parquet/include/row_number_column_reader.hpp +1 -1
- package/src/duckdb/extension/parquet/include/struct_column_reader.hpp +1 -1
- package/src/duckdb/extension/parquet/parquet-extension.cpp +1 -1
- package/src/duckdb/extension/parquet/parquet_metadata.cpp +1 -1
- package/src/duckdb/extension/parquet/parquet_reader.cpp +18 -18
- package/src/duckdb/extension/parquet/parquet_statistics.cpp +23 -26
- package/src/duckdb/extension/parquet/parquet_timestamp.cpp +2 -2
- package/src/duckdb/extension/parquet/parquet_writer.cpp +3 -3
- package/src/duckdb/extension/parquet/zstd_file_system.cpp +3 -3
- package/src/duckdb/src/catalog/catalog.cpp +0 -4
- package/src/duckdb/src/catalog/catalog_entry/table_catalog_entry.cpp +3 -0
- package/src/duckdb/src/catalog/catalog_entry.cpp +4 -4
- package/src/duckdb/src/catalog/catalog_set.cpp +1 -1
- package/src/duckdb/src/catalog/dependency_manager.cpp +2 -2
- package/src/duckdb/src/catalog/duck_catalog.cpp +1 -0
- package/src/duckdb/src/common/adbc/adbc.cpp +183 -94
- package/src/duckdb/src/common/adbc/driver_manager.cpp +10 -2
- package/src/duckdb/src/common/arrow/arrow_appender.cpp +12 -12
- package/src/duckdb/src/common/arrow/arrow_wrapper.cpp +7 -7
- package/src/duckdb/src/common/checksum.cpp +1 -1
- package/src/duckdb/src/common/compressed_file_system.cpp +6 -6
- package/src/duckdb/src/common/crypto/md5.cpp +9 -9
- package/src/duckdb/src/common/field_writer.cpp +1 -1
- package/src/duckdb/src/common/file_system.cpp +15 -2
- package/src/duckdb/src/common/fsst.cpp +11 -6
- package/src/duckdb/src/common/gzip_file_system.cpp +8 -8
- package/src/duckdb/src/common/hive_partitioning.cpp +1 -1
- package/src/duckdb/src/common/local_file_system.cpp +11 -11
- package/src/duckdb/src/common/operator/cast_operators.cpp +1 -1
- package/src/duckdb/src/common/pipe_file_system.cpp +2 -2
- package/src/duckdb/src/common/radix_partitioning.cpp +2 -2
- package/src/duckdb/src/common/row_operations/row_heap_gather.cpp +1 -1
- package/src/duckdb/src/common/row_operations/row_heap_scatter.cpp +5 -5
- package/src/duckdb/src/common/row_operations/row_match.cpp +1 -1
- package/src/duckdb/src/common/row_operations/row_radix_scatter.cpp +2 -2
- package/src/duckdb/src/common/row_operations/row_scatter.cpp +4 -4
- package/src/duckdb/src/common/serializer/binary_deserializer.cpp +1 -1
- package/src/duckdb/src/common/serializer/binary_serializer.cpp +3 -3
- package/src/duckdb/src/common/serializer.cpp +1 -1
- package/src/duckdb/src/common/sort/comparators.cpp +1 -1
- package/src/duckdb/src/common/sort/merge_sorter.cpp +7 -2
- package/src/duckdb/src/common/sort/partition_state.cpp +2 -2
- package/src/duckdb/src/common/types/bit.cpp +5 -5
- package/src/duckdb/src/common/types/blob.cpp +8 -8
- package/src/duckdb/src/common/types/column/column_data_allocator.cpp +4 -4
- package/src/duckdb/src/common/types/column/column_data_collection.cpp +3 -3
- package/src/duckdb/src/common/types/column/column_data_collection_segment.cpp +1 -1
- package/src/duckdb/src/common/types/column/partitioned_column_data.cpp +2 -2
- package/src/duckdb/src/common/types/hash.cpp +2 -2
- package/src/duckdb/src/common/types/hyperloglog.cpp +22 -21
- package/src/duckdb/src/common/types/list_segment.cpp +77 -49
- package/src/duckdb/src/common/types/row/partitioned_tuple_data.cpp +1 -1
- package/src/duckdb/src/common/types/row/tuple_data_allocator.cpp +5 -3
- package/src/duckdb/src/common/types/row/tuple_data_scatter_gather.cpp +17 -17
- package/src/duckdb/src/common/types/string_heap.cpp +1 -1
- package/src/duckdb/src/common/types/value.cpp +2 -2
- package/src/duckdb/src/common/types/vector.cpp +101 -101
- package/src/duckdb/src/common/types/vector_cache.cpp +6 -6
- package/src/duckdb/src/common/types/vector_constants.cpp +2 -1
- package/src/duckdb/src/common/types.cpp +44 -33
- package/src/duckdb/src/common/vector_operations/boolean_operators.cpp +2 -2
- package/src/duckdb/src/common/vector_operations/is_distinct_from.cpp +12 -12
- package/src/duckdb/src/common/vector_operations/vector_hash.cpp +13 -11
- package/src/duckdb/src/common/vector_operations/vector_storage.cpp +1 -1
- package/src/duckdb/src/core_functions/aggregate/algebraic/avg.cpp +30 -33
- package/src/duckdb/src/core_functions/aggregate/algebraic/covar.cpp +0 -4
- package/src/duckdb/src/core_functions/aggregate/distributive/approx_count.cpp +32 -36
- package/src/duckdb/src/core_functions/aggregate/distributive/arg_min_max.cpp +53 -66
- package/src/duckdb/src/core_functions/aggregate/distributive/bitagg.cpp +48 -48
- package/src/duckdb/src/core_functions/aggregate/distributive/bitstring_agg.cpp +43 -43
- package/src/duckdb/src/core_functions/aggregate/distributive/bool.cpp +32 -32
- package/src/duckdb/src/core_functions/aggregate/distributive/entropy.cpp +34 -34
- package/src/duckdb/src/core_functions/aggregate/distributive/kurtosis.cpp +30 -31
- package/src/duckdb/src/core_functions/aggregate/distributive/minmax.cpp +91 -103
- package/src/duckdb/src/core_functions/aggregate/distributive/product.cpp +17 -17
- package/src/duckdb/src/core_functions/aggregate/distributive/skew.cpp +25 -27
- package/src/duckdb/src/core_functions/aggregate/distributive/string_agg.cpp +36 -37
- package/src/duckdb/src/core_functions/aggregate/distributive/sum.cpp +22 -22
- package/src/duckdb/src/core_functions/aggregate/holistic/approximate_quantile.cpp +48 -84
- package/src/duckdb/src/core_functions/aggregate/holistic/mode.cpp +49 -51
- package/src/duckdb/src/core_functions/aggregate/holistic/quantile.cpp +83 -119
- package/src/duckdb/src/core_functions/aggregate/holistic/reservoir_quantile.cpp +62 -99
- package/src/duckdb/src/core_functions/aggregate/nested/histogram.cpp +24 -26
- package/src/duckdb/src/core_functions/aggregate/nested/list.cpp +22 -23
- package/src/duckdb/src/core_functions/aggregate/regression/regr_avg.cpp +16 -18
- package/src/duckdb/src/core_functions/aggregate/regression/regr_intercept.cpp +22 -25
- package/src/duckdb/src/core_functions/aggregate/regression/regr_r2.cpp +19 -24
- package/src/duckdb/src/core_functions/aggregate/regression/regr_sxx_syy.cpp +18 -23
- package/src/duckdb/src/core_functions/aggregate/regression/regr_sxy.cpp +14 -18
- package/src/duckdb/src/core_functions/scalar/blob/base64.cpp +1 -1
- package/src/duckdb/src/core_functions/scalar/date/date_part.cpp +45 -45
- package/src/duckdb/src/core_functions/scalar/date/strftime.cpp +2 -2
- package/src/duckdb/src/core_functions/scalar/generic/current_setting.cpp +1 -1
- package/src/duckdb/src/core_functions/scalar/generic/least.cpp +2 -2
- package/src/duckdb/src/core_functions/scalar/generic/stats.cpp +1 -1
- package/src/duckdb/src/core_functions/scalar/list/array_slice.cpp +3 -3
- package/src/duckdb/src/core_functions/scalar/list/flatten.cpp +2 -4
- package/src/duckdb/src/core_functions/scalar/list/list_aggregates.cpp +3 -3
- package/src/duckdb/src/core_functions/scalar/list/list_lambdas.cpp +6 -7
- package/src/duckdb/src/core_functions/scalar/list/list_sort.cpp +1 -1
- package/src/duckdb/src/core_functions/scalar/map/cardinality.cpp +1 -1
- package/src/duckdb/src/core_functions/scalar/map/map.cpp +2 -2
- package/src/duckdb/src/core_functions/scalar/map/map_concat.cpp +1 -1
- package/src/duckdb/src/core_functions/scalar/map/map_extract.cpp +5 -9
- package/src/duckdb/src/core_functions/scalar/math/numeric.cpp +3 -3
- package/src/duckdb/src/core_functions/scalar/string/starts_with.cpp +3 -2
- package/src/duckdb/src/core_functions/scalar/string/string_split.cpp +4 -4
- package/src/duckdb/src/core_functions/scalar/string/trim.cpp +1 -1
- package/src/duckdb/src/core_functions/scalar/union/union_extract.cpp +1 -1
- package/src/duckdb/src/execution/adaptive_filter.cpp +1 -1
- package/src/duckdb/src/execution/expression_executor/execute_case.cpp +10 -10
- package/src/duckdb/src/execution/expression_executor/execute_conjunction.cpp +7 -7
- package/src/duckdb/src/execution/expression_executor.cpp +33 -28
- package/src/duckdb/src/execution/index/art/art.cpp +30 -32
- package/src/duckdb/src/execution/index/art/fixed_size_allocator.cpp +3 -4
- package/src/duckdb/src/execution/join_hashtable.cpp +4 -4
- package/src/duckdb/src/execution/nested_loop_join/nested_loop_join_inner.cpp +4 -4
- package/src/duckdb/src/execution/nested_loop_join/nested_loop_join_mark.cpp +2 -2
- package/src/duckdb/src/execution/operator/aggregate/distinct_aggregate_data.cpp +1 -1
- package/src/duckdb/src/execution/operator/aggregate/physical_perfecthash_aggregate.cpp +1 -1
- package/src/duckdb/src/execution/operator/aggregate/physical_streaming_window.cpp +2 -2
- package/src/duckdb/src/execution/operator/aggregate/physical_ungrouped_aggregate.cpp +4 -4
- package/src/duckdb/src/execution/operator/filter/physical_filter.cpp +1 -1
- package/src/duckdb/src/execution/operator/join/outer_join_marker.cpp +1 -1
- package/src/duckdb/src/execution/operator/join/perfect_hash_join_executor.cpp +1 -1
- package/src/duckdb/src/execution/operator/join/physical_asof_join.cpp +2 -2
- package/src/duckdb/src/execution/operator/join/physical_blockwise_nl_join.cpp +4 -4
- package/src/duckdb/src/execution/operator/join/physical_index_join.cpp +3 -3
- package/src/duckdb/src/execution/operator/join/physical_nested_loop_join.cpp +3 -3
- package/src/duckdb/src/execution/operator/join/physical_piecewise_merge_join.cpp +3 -3
- package/src/duckdb/src/execution/operator/order/physical_top_n.cpp +1 -1
- package/src/duckdb/src/execution/operator/persistent/buffered_csv_reader.cpp +2 -2
- package/src/duckdb/src/execution/operator/persistent/csv_file_handle.cpp +2 -2
- package/src/duckdb/src/execution/operator/persistent/csv_reader_options.cpp +2 -0
- package/src/duckdb/src/execution/operator/persistent/physical_batch_insert.cpp +2 -3
- package/src/duckdb/src/execution/operator/persistent/physical_insert.cpp +1 -1
- package/src/duckdb/src/execution/operator/projection/physical_pivot.cpp +2 -2
- package/src/duckdb/src/execution/operator/projection/physical_projection.cpp +1 -1
- package/src/duckdb/src/execution/operator/projection/physical_unnest.cpp +3 -3
- package/src/duckdb/src/execution/operator/scan/physical_column_data_scan.cpp +2 -1
- package/src/duckdb/src/execution/operator/scan/physical_expression_scan.cpp +1 -1
- package/src/duckdb/src/execution/operator/scan/physical_positional_scan.cpp +2 -2
- package/src/duckdb/src/execution/operator/schema/physical_create_type.cpp +1 -1
- package/src/duckdb/src/execution/perfect_aggregate_hashtable.cpp +1 -1
- package/src/duckdb/src/execution/physical_plan/plan_comparison_join.cpp +1 -1
- package/src/duckdb/src/execution/physical_plan/plan_create_table.cpp +1 -1
- package/src/duckdb/src/execution/physical_plan_generator.cpp +2 -2
- package/src/duckdb/src/execution/radix_partitioned_hashtable.cpp +1 -1
- package/src/duckdb/src/execution/reservoir_sample.cpp +2 -2
- package/src/duckdb/src/execution/window_segment_tree.cpp +8 -6
- package/src/duckdb/src/function/aggregate/distributive/count.cpp +158 -20
- package/src/duckdb/src/function/aggregate/distributive/first.cpp +66 -74
- package/src/duckdb/src/function/aggregate/sorted_aggregate_function.cpp +13 -13
- package/src/duckdb/src/function/cast/cast_function_set.cpp +1 -1
- package/src/duckdb/src/function/cast/decimal_cast.cpp +1 -1
- package/src/duckdb/src/function/cast/enum_casts.cpp +2 -2
- package/src/duckdb/src/function/cast/string_cast.cpp +11 -11
- package/src/duckdb/src/function/cast/union_casts.cpp +2 -2
- package/src/duckdb/src/function/cast/vector_cast_helpers.cpp +3 -2
- package/src/duckdb/src/function/scalar/generic/constant_or_null.cpp +1 -1
- package/src/duckdb/src/function/scalar/list/list_concat.cpp +2 -2
- package/src/duckdb/src/function/scalar/list/list_extract.cpp +3 -3
- package/src/duckdb/src/function/scalar/operators/arithmetic.cpp +2 -3
- package/src/duckdb/src/function/scalar/string/concat.cpp +8 -7
- package/src/duckdb/src/function/scalar/string/contains.cpp +4 -4
- package/src/duckdb/src/function/scalar/string/like.cpp +5 -5
- package/src/duckdb/src/function/scalar/string/regexp/regexp_extract_all.cpp +4 -4
- package/src/duckdb/src/function/scalar/string/regexp.cpp +3 -3
- package/src/duckdb/src/function/scalar/string/strip_accents.cpp +1 -1
- package/src/duckdb/src/function/scalar/struct/struct_extract.cpp +1 -1
- package/src/duckdb/src/function/scalar/system/aggregate_export.cpp +25 -23
- package/src/duckdb/src/function/scalar_function.cpp +3 -3
- package/src/duckdb/src/function/table/arrow.cpp +4 -4
- package/src/duckdb/src/function/table/arrow_conversion.cpp +67 -61
- package/src/duckdb/src/function/table/checkpoint.cpp +1 -1
- package/src/duckdb/src/function/table/copy_csv.cpp +11 -7
- package/src/duckdb/src/function/table/glob.cpp +1 -1
- package/src/duckdb/src/function/table/pragma_last_profiling_output.cpp +1 -1
- package/src/duckdb/src/function/table/range.cpp +4 -4
- package/src/duckdb/src/function/table/read_csv.cpp +4 -7
- package/src/duckdb/src/function/table/repeat.cpp +2 -2
- package/src/duckdb/src/function/table/repeat_row.cpp +2 -2
- package/src/duckdb/src/function/table/system/duckdb_functions.cpp +1 -1
- package/src/duckdb/src/function/table/system/test_vector_types.cpp +1 -1
- package/src/duckdb/src/function/table/table_scan.cpp +2 -2
- package/src/duckdb/src/function/table/unnest.cpp +1 -1
- package/src/duckdb/src/function/table/version/pragma_version.cpp +3 -3
- package/src/duckdb/src/include/duckdb/catalog/catalog.hpp +2 -2
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry.hpp +2 -2
- package/src/duckdb/src/include/duckdb/common/adbc/adbc.hpp +5 -0
- package/src/duckdb/src/include/duckdb/common/allocator.hpp +15 -4
- package/src/duckdb/src/include/duckdb/common/arrow/arrow_buffer.hpp +7 -2
- package/src/duckdb/src/include/duckdb/common/crypto/md5.hpp +2 -2
- package/src/duckdb/src/include/duckdb/common/exception.hpp +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 +112 -76
- package/src/duckdb/src/include/duckdb/common/vector_operations/binary_executor.hpp +16 -15
- package/src/duckdb/src/include/duckdb/common/vector_operations/generic_executor.hpp +11 -11
- package/src/duckdb/src/include/duckdb/common/vector_operations/ternary_executor.hpp +23 -19
- package/src/duckdb/src/include/duckdb/common/vector_operations/unary_executor.hpp +3 -3
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/algebraic/corr.hpp +20 -24
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/algebraic/covar.hpp +36 -39
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/algebraic/stddev.hpp +57 -53
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/regression/regr_count.hpp +8 -9
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/regression/regr_slope.hpp +16 -18
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/sum_helpers.hpp +7 -8
- package/src/duckdb/src/include/duckdb/execution/expression_executor_state.hpp +14 -2
- package/src/duckdb/src/include/duckdb/execution/index/art/art.hpp +3 -3
- package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_result_collector.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/operator/persistent/csv_buffer.hpp +1 -1
- package/src/duckdb/src/include/duckdb/execution/physical_operator.hpp +5 -2
- package/src/duckdb/src/include/duckdb/execution/physical_operator_states.hpp +12 -12
- package/src/duckdb/src/include/duckdb/function/aggregate_function.hpp +8 -29
- package/src/duckdb/src/include/duckdb/function/aggregate_state.hpp +95 -0
- package/src/duckdb/src/include/duckdb/function/cast/default_casts.hpp +13 -2
- package/src/duckdb/src/include/duckdb/function/cast/vector_cast_helpers.hpp +4 -4
- package/src/duckdb/src/include/duckdb/function/compression_function.hpp +44 -0
- package/src/duckdb/src/include/duckdb/function/copy_function.hpp +6 -6
- package/src/duckdb/src/include/duckdb/function/function.hpp +3 -3
- package/src/duckdb/src/include/duckdb/function/macro_function.hpp +2 -2
- package/src/duckdb/src/include/duckdb/function/scalar/list/contains_or_position.hpp +3 -3
- package/src/duckdb/src/include/duckdb/function/scalar_function.hpp +2 -2
- package/src/duckdb/src/include/duckdb/function/table_function.hpp +6 -6
- package/src/duckdb/src/include/duckdb/main/capi/cast/utils.hpp +1 -1
- package/src/duckdb/src/include/duckdb/main/materialized_query_result.hpp +3 -0
- package/src/duckdb/src/include/duckdb/main/pending_query_result.hpp +3 -0
- package/src/duckdb/src/include/duckdb/main/query_result.hpp +17 -0
- package/src/duckdb/src/include/duckdb/main/relation.hpp +12 -0
- package/src/duckdb/src/include/duckdb/main/stream_query_result.hpp +3 -0
- package/src/duckdb/src/include/duckdb/optimizer/join_order/cardinality_estimator.hpp +2 -2
- package/src/duckdb/src/include/duckdb/parser/base_expression.hpp +6 -12
- package/src/duckdb/src/include/duckdb/parser/constraint.hpp +2 -2
- package/src/duckdb/src/include/duckdb/parser/expression/between_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/bound_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/case_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/cast_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/collate_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/columnref_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/comparison_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/conjunction_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/constant_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/function_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/lambda_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/operator_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/parameter_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/positional_reference_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/star_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/subquery_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/window_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression_map.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/parsed_data/parse_info.hpp +2 -2
- package/src/duckdb/src/include/duckdb/parser/parsed_expression.hpp +5 -1
- package/src/duckdb/src/include/duckdb/parser/query_node.hpp +2 -2
- package/src/duckdb/src/include/duckdb/parser/result_modifier.hpp +36 -5
- package/src/duckdb/src/include/duckdb/parser/sql_statement.hpp +7 -4
- package/src/duckdb/src/include/duckdb/parser/statement/select_statement.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/tableref/basetableref.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/tableref/emptytableref.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/tableref/expressionlistref.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/tableref/joinref.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/tableref/pivotref.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/tableref/subqueryref.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/tableref/table_function_ref.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/tableref.hpp +4 -3
- package/src/duckdb/src/include/duckdb/parser/transformer.hpp +107 -91
- package/src/duckdb/src/include/duckdb/planner/bind_context.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/bound_constraint.hpp +2 -2
- package/src/duckdb/src/include/duckdb/planner/bound_query_node.hpp +2 -2
- package/src/duckdb/src/include/duckdb/planner/bound_result_modifier.hpp +34 -1
- package/src/duckdb/src/include/duckdb/planner/bound_tableref.hpp +2 -2
- package/src/duckdb/src/include/duckdb/planner/expression/bound_aggregate_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_between_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_case_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_cast_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_columnref_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_comparison_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_conjunction_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_constant_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_function_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_lambda_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_lambdaref_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_operator_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_parameter_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_reference_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_subquery_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_unnest_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_window_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression.hpp +5 -7
- package/src/duckdb/src/include/duckdb/planner/filter/conjunction_filter.hpp +6 -0
- package/src/duckdb/src/include/duckdb/planner/filter/constant_filter.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/filter/null_filter.hpp +6 -0
- package/src/duckdb/src/include/duckdb/planner/logical_operator.hpp +2 -2
- package/src/duckdb/src/include/duckdb/planner/operator/logical_pivot.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/table_binding.hpp +26 -0
- package/src/duckdb/src/include/duckdb/planner/table_filter.hpp +17 -0
- package/src/duckdb/src/include/duckdb/planner/tableref/bound_pivotref.hpp +3 -0
- package/src/duckdb/src/include/duckdb/storage/compression/chimp/chimp_analyze.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/compression/chimp/chimp_compress.hpp +2 -2
- package/src/duckdb/src/include/duckdb/storage/compression/patas/patas_analyze.hpp +2 -2
- package/src/duckdb/src/include/duckdb/storage/compression/patas/patas_compress.hpp +2 -2
- package/src/duckdb/src/include/duckdb/storage/index.hpp +2 -2
- package/src/duckdb/src/include/duckdb/storage/partial_block_manager.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/storage_manager.hpp +12 -0
- package/src/duckdb/src/include/duckdb/storage/string_uncompressed.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/table/chunk_info.hpp +25 -2
- package/src/duckdb/src/include/duckdb/storage/table/column_checkpoint_state.hpp +12 -0
- package/src/duckdb/src/include/duckdb/storage/table/scan_state.hpp +22 -0
- package/src/duckdb/src/include/duckdb/transaction/duck_transaction_manager.hpp +2 -2
- package/src/duckdb/src/include/duckdb/transaction/transaction.hpp +2 -2
- package/src/duckdb/src/main/capi/appender-c.cpp +5 -5
- package/src/duckdb/src/main/capi/arrow-c.cpp +10 -10
- package/src/duckdb/src/main/capi/cast/from_decimal-c.cpp +1 -1
- package/src/duckdb/src/main/capi/cast/utils-c.cpp +1 -1
- package/src/duckdb/src/main/capi/config-c.cpp +1 -1
- package/src/duckdb/src/main/capi/data_chunk-c.cpp +17 -17
- package/src/duckdb/src/main/capi/duckdb-c.cpp +4 -4
- package/src/duckdb/src/main/capi/duckdb_value-c.cpp +4 -4
- package/src/duckdb/src/main/capi/logical_types-c.cpp +22 -21
- package/src/duckdb/src/main/capi/pending-c.cpp +6 -6
- package/src/duckdb/src/main/capi/prepared-c.cpp +10 -10
- package/src/duckdb/src/main/capi/replacement_scan-c.cpp +6 -6
- package/src/duckdb/src/main/capi/result-c.cpp +23 -23
- package/src/duckdb/src/main/capi/table_function-c.cpp +1 -1
- package/src/duckdb/src/main/client_context.cpp +3 -3
- package/src/duckdb/src/main/database_manager.cpp +1 -1
- package/src/duckdb/src/main/error_manager.cpp +1 -1
- package/src/duckdb/src/main/extension/extension_load.cpp +1 -1
- package/src/duckdb/src/main/relation/create_table_relation.cpp +1 -1
- package/src/duckdb/src/main/relation/create_view_relation.cpp +1 -1
- package/src/duckdb/src/main/relation/delete_relation.cpp +1 -1
- package/src/duckdb/src/main/relation/explain_relation.cpp +1 -1
- package/src/duckdb/src/main/relation/insert_relation.cpp +1 -1
- package/src/duckdb/src/main/relation/update_relation.cpp +1 -1
- package/src/duckdb/src/main/relation/write_csv_relation.cpp +1 -1
- package/src/duckdb/src/main/relation/write_parquet_relation.cpp +1 -1
- package/src/duckdb/src/main/relation.cpp +1 -1
- package/src/duckdb/src/optimizer/deliminator.cpp +12 -12
- package/src/duckdb/src/optimizer/expression_heuristics.cpp +1 -0
- package/src/duckdb/src/optimizer/filter_combiner.cpp +3 -3
- package/src/duckdb/src/optimizer/join_order/cardinality_estimator.cpp +10 -10
- package/src/duckdb/src/optimizer/join_order/join_order_optimizer.cpp +4 -7
- package/src/duckdb/src/optimizer/matcher/expression_matcher.cpp +1 -1
- package/src/duckdb/src/optimizer/pullup/pullup_projection.cpp +2 -2
- package/src/duckdb/src/optimizer/regex_range_filter.cpp +2 -4
- package/src/duckdb/src/optimizer/rule/distributivity.cpp +2 -2
- package/src/duckdb/src/optimizer/statistics/operator/propagate_filter.cpp +6 -6
- package/src/duckdb/src/optimizer/statistics/operator/propagate_get.cpp +2 -2
- package/src/duckdb/src/parallel/executor.cpp +1 -1
- package/src/duckdb/src/parser/base_expression.cpp +2 -5
- package/src/duckdb/src/parser/expression/between_expression.cpp +4 -4
- package/src/duckdb/src/parser/expression/case_expression.cpp +6 -6
- package/src/duckdb/src/parser/expression/cast_expression.cpp +4 -4
- package/src/duckdb/src/parser/expression/collate_expression.cpp +3 -3
- package/src/duckdb/src/parser/expression/columnref_expression.cpp +4 -4
- package/src/duckdb/src/parser/expression/comparison_expression.cpp +3 -3
- package/src/duckdb/src/parser/expression/conjunction_expression.cpp +2 -2
- package/src/duckdb/src/parser/expression/constant_expression.cpp +2 -2
- package/src/duckdb/src/parser/expression/function_expression.cpp +10 -14
- package/src/duckdb/src/parser/expression/lambda_expression.cpp +2 -2
- package/src/duckdb/src/parser/expression/operator_expression.cpp +4 -4
- package/src/duckdb/src/parser/expression/parameter_expression.cpp +2 -2
- package/src/duckdb/src/parser/expression/positional_reference_expression.cpp +3 -3
- package/src/duckdb/src/parser/expression/star_expression.cpp +9 -9
- package/src/duckdb/src/parser/expression/subquery_expression.cpp +5 -5
- package/src/duckdb/src/parser/expression/window_expression.cpp +13 -24
- package/src/duckdb/src/parser/parsed_expression.cpp +34 -18
- package/src/duckdb/src/parser/parsed_expression_iterator.cpp +4 -4
- package/src/duckdb/src/parser/parser.cpp +3 -3
- package/src/duckdb/src/parser/query_node/select_node.cpp +6 -13
- package/src/duckdb/src/parser/query_node.cpp +7 -6
- package/src/duckdb/src/parser/result_modifier.cpp +25 -18
- package/src/duckdb/src/parser/statement/select_statement.cpp +3 -3
- package/src/duckdb/src/parser/tableref/basetableref.cpp +4 -4
- package/src/duckdb/src/parser/tableref/emptytableref.cpp +1 -1
- package/src/duckdb/src/parser/tableref/expressionlistref.cpp +5 -5
- package/src/duckdb/src/parser/tableref/joinref.cpp +6 -6
- package/src/duckdb/src/parser/tableref/pivotref.cpp +10 -15
- package/src/duckdb/src/parser/tableref/subqueryref.cpp +3 -3
- package/src/duckdb/src/parser/tableref/table_function.cpp +3 -3
- package/src/duckdb/src/parser/tableref.cpp +12 -3
- package/src/duckdb/src/parser/transform/expression/transform_array_access.cpp +7 -7
- package/src/duckdb/src/parser/transform/expression/transform_bool_expr.cpp +4 -4
- package/src/duckdb/src/parser/transform/expression/transform_boolean_test.cpp +4 -4
- package/src/duckdb/src/parser/transform/expression/transform_case.cpp +8 -10
- package/src/duckdb/src/parser/transform/expression/transform_cast.cpp +7 -9
- package/src/duckdb/src/parser/transform/expression/transform_coalesce.cpp +3 -5
- package/src/duckdb/src/parser/transform/expression/transform_columnref.cpp +22 -22
- package/src/duckdb/src/parser/transform/expression/transform_constant.cpp +2 -2
- package/src/duckdb/src/parser/transform/expression/transform_expression.cpp +42 -44
- package/src/duckdb/src/parser/transform/expression/transform_function.cpp +70 -75
- package/src/duckdb/src/parser/transform/expression/transform_grouping_function.cpp +4 -4
- package/src/duckdb/src/parser/transform/expression/transform_interval.cpp +7 -7
- package/src/duckdb/src/parser/transform/expression/transform_is_null.cpp +4 -5
- package/src/duckdb/src/parser/transform/expression/transform_lambda.cpp +5 -6
- package/src/duckdb/src/parser/transform/expression/transform_operator.cpp +28 -29
- package/src/duckdb/src/parser/transform/expression/transform_param_ref.cpp +13 -14
- package/src/duckdb/src/parser/transform/expression/transform_positional_reference.cpp +4 -4
- package/src/duckdb/src/parser/transform/expression/transform_subquery.cpp +9 -10
- package/src/duckdb/src/parser/transform/helpers/transform_cte.cpp +28 -32
- package/src/duckdb/src/parser/transform/helpers/transform_groupby.cpp +18 -18
- package/src/duckdb/src/parser/transform/helpers/transform_sample.cpp +3 -3
- package/src/duckdb/src/parser/transform/helpers/transform_typename.cpp +27 -26
- package/src/duckdb/src/parser/transform/statement/transform_alter_sequence.cpp +11 -14
- package/src/duckdb/src/parser/transform/statement/transform_alter_table.cpp +14 -16
- package/src/duckdb/src/parser/transform/statement/transform_attach.cpp +8 -9
- package/src/duckdb/src/parser/transform/statement/transform_call.cpp +2 -5
- package/src/duckdb/src/parser/transform/statement/transform_checkpoint.cpp +4 -6
- package/src/duckdb/src/parser/transform/statement/transform_copy.cpp +22 -23
- package/src/duckdb/src/parser/transform/statement/transform_create_database.cpp +3 -4
- package/src/duckdb/src/parser/transform/statement/transform_create_function.cpp +14 -18
- package/src/duckdb/src/parser/transform/statement/transform_create_index.cpp +13 -15
- package/src/duckdb/src/parser/transform/statement/transform_create_schema.cpp +8 -10
- package/src/duckdb/src/parser/transform/statement/transform_create_sequence.cpp +8 -10
- package/src/duckdb/src/parser/transform/statement/transform_create_table.cpp +26 -28
- package/src/duckdb/src/parser/transform/statement/transform_create_table_as.cpp +8 -10
- package/src/duckdb/src/parser/transform/statement/transform_create_type.cpp +12 -15
- package/src/duckdb/src/parser/transform/statement/transform_create_view.cpp +13 -18
- package/src/duckdb/src/parser/transform/statement/transform_delete.cpp +11 -13
- package/src/duckdb/src/parser/transform/statement/transform_detach.cpp +3 -4
- package/src/duckdb/src/parser/transform/statement/transform_drop.cpp +20 -22
- package/src/duckdb/src/parser/transform/statement/transform_explain.cpp +5 -7
- package/src/duckdb/src/parser/transform/statement/transform_export.cpp +5 -6
- package/src/duckdb/src/parser/transform/statement/transform_import.cpp +2 -3
- package/src/duckdb/src/parser/transform/statement/transform_insert.cpp +21 -24
- package/src/duckdb/src/parser/transform/statement/transform_load.cpp +4 -5
- package/src/duckdb/src/parser/transform/statement/transform_pivot_stmt.cpp +7 -7
- package/src/duckdb/src/parser/transform/statement/transform_pragma.cpp +7 -9
- package/src/duckdb/src/parser/transform/statement/transform_prepare.cpp +11 -19
- package/src/duckdb/src/parser/transform/statement/transform_rename.cpp +12 -14
- package/src/duckdb/src/parser/transform/statement/transform_select.cpp +12 -9
- package/src/duckdb/src/parser/transform/statement/transform_select_node.cpp +34 -34
- package/src/duckdb/src/parser/transform/statement/transform_set.cpp +18 -19
- package/src/duckdb/src/parser/transform/statement/transform_show.cpp +5 -7
- package/src/duckdb/src/parser/transform/statement/transform_show_select.cpp +4 -5
- package/src/duckdb/src/parser/transform/statement/transform_transaction.cpp +3 -5
- package/src/duckdb/src/parser/transform/statement/transform_update.cpp +10 -13
- package/src/duckdb/src/parser/transform/statement/transform_upsert.cpp +4 -4
- package/src/duckdb/src/parser/transform/statement/transform_use.cpp +2 -3
- package/src/duckdb/src/parser/transform/statement/transform_vacuum.cpp +6 -10
- package/src/duckdb/src/parser/transform/tableref/transform_base_tableref.cpp +18 -18
- package/src/duckdb/src/parser/transform/tableref/transform_from.cpp +5 -5
- package/src/duckdb/src/parser/transform/tableref/transform_join.cpp +11 -11
- package/src/duckdb/src/parser/transform/tableref/transform_pivot.cpp +27 -27
- package/src/duckdb/src/parser/transform/tableref/transform_subquery.cpp +5 -5
- package/src/duckdb/src/parser/transform/tableref/transform_table_function.cpp +13 -12
- package/src/duckdb/src/parser/transform/tableref/transform_tableref.cpp +8 -8
- package/src/duckdb/src/parser/transformer.cpp +46 -46
- package/src/duckdb/src/planner/bind_context.cpp +6 -6
- package/src/duckdb/src/planner/binder/expression/bind_function_expression.cpp +1 -1
- package/src/duckdb/src/planner/binder/expression/bind_lambda.cpp +1 -1
- package/src/duckdb/src/planner/binder/expression/bind_star_expression.cpp +1 -1
- package/src/duckdb/src/planner/binder/expression/bind_subquery_expression.cpp +6 -3
- package/src/duckdb/src/planner/binder/query_node/bind_select_node.cpp +8 -8
- package/src/duckdb/src/planner/binder/query_node/plan_query_node.cpp +4 -4
- package/src/duckdb/src/planner/binder/statement/bind_create.cpp +13 -5
- package/src/duckdb/src/planner/binder/statement/bind_insert.cpp +2 -2
- package/src/duckdb/src/planner/binder/statement/bind_update.cpp +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 +14 -7
- package/src/duckdb/src/planner/binder.cpp +1 -1
- package/src/duckdb/src/planner/bound_result_modifier.cpp +16 -11
- package/src/duckdb/src/planner/expression/bound_aggregate_expression.cpp +5 -5
- package/src/duckdb/src/planner/expression/bound_between_expression.cpp +5 -5
- package/src/duckdb/src/planner/expression/bound_case_expression.cpp +5 -5
- package/src/duckdb/src/planner/expression/bound_cast_expression.cpp +3 -3
- package/src/duckdb/src/planner/expression/bound_columnref_expression.cpp +2 -2
- package/src/duckdb/src/planner/expression/bound_comparison_expression.cpp +4 -4
- package/src/duckdb/src/planner/expression/bound_conjunction_expression.cpp +2 -2
- package/src/duckdb/src/planner/expression/bound_constant_expression.cpp +2 -2
- package/src/duckdb/src/planner/expression/bound_expression.cpp +1 -1
- package/src/duckdb/src/planner/expression/bound_function_expression.cpp +3 -4
- package/src/duckdb/src/planner/expression/bound_lambda_expression.cpp +4 -5
- package/src/duckdb/src/planner/expression/bound_lambdaref_expression.cpp +2 -2
- package/src/duckdb/src/planner/expression/bound_operator_expression.cpp +3 -4
- package/src/duckdb/src/planner/expression/bound_parameter_expression.cpp +2 -2
- package/src/duckdb/src/planner/expression/bound_reference_expression.cpp +2 -2
- package/src/duckdb/src/planner/expression/bound_subquery_expression.cpp +1 -1
- package/src/duckdb/src/planner/expression/bound_unnest_expression.cpp +3 -3
- package/src/duckdb/src/planner/expression/bound_window_expression.cpp +8 -21
- package/src/duckdb/src/planner/expression.cpp +15 -0
- package/src/duckdb/src/planner/expression_binder/base_select_binder.cpp +2 -2
- package/src/duckdb/src/planner/expression_iterator.cpp +2 -2
- package/src/duckdb/src/planner/filter/conjunction_filter.cpp +2 -2
- package/src/duckdb/src/planner/filter/constant_filter.cpp +1 -1
- package/src/duckdb/src/planner/logical_operator.cpp +3 -4
- package/src/duckdb/src/planner/logical_operator_visitor.cpp +1 -1
- package/src/duckdb/src/planner/table_filter.cpp +1 -1
- package/src/duckdb/src/storage/arena_allocator.cpp +2 -2
- package/src/duckdb/src/storage/buffer/block_handle.cpp +1 -1
- package/src/duckdb/src/storage/checkpoint/write_overflow_strings_to_disk.cpp +2 -2
- package/src/duckdb/src/storage/checkpoint_manager.cpp +3 -3
- package/src/duckdb/src/storage/compression/bitpacking.cpp +8 -8
- package/src/duckdb/src/storage/compression/dictionary_compression.cpp +36 -36
- package/src/duckdb/src/storage/compression/fixed_size_uncompressed.cpp +11 -11
- package/src/duckdb/src/storage/compression/fsst.cpp +34 -34
- package/src/duckdb/src/storage/compression/rle.cpp +8 -8
- package/src/duckdb/src/storage/compression/string_uncompressed.cpp +13 -13
- package/src/duckdb/src/storage/compression/validity_uncompressed.cpp +11 -11
- package/src/duckdb/src/storage/data_table.cpp +2 -2
- package/src/duckdb/src/storage/index.cpp +1 -3
- package/src/duckdb/src/storage/local_storage.cpp +2 -1
- package/src/duckdb/src/storage/magic_bytes.cpp +1 -1
- package/src/duckdb/src/storage/single_file_block_manager.cpp +3 -3
- package/src/duckdb/src/storage/standard_buffer_manager.cpp +3 -3
- package/src/duckdb/src/storage/statistics/list_stats.cpp +1 -1
- package/src/duckdb/src/storage/statistics/numeric_stats.cpp +1 -1
- package/src/duckdb/src/storage/statistics/string_stats.cpp +15 -14
- package/src/duckdb/src/storage/table/chunk_info.cpp +2 -2
- package/src/duckdb/src/storage/table/column_segment.cpp +3 -3
- package/src/duckdb/src/storage/table/list_column_data.cpp +8 -7
- package/src/duckdb/src/storage/table/row_group.cpp +4 -4
- package/src/duckdb/src/storage/table/standard_column_data.cpp +1 -1
- package/src/duckdb/src/storage/table/update_segment.cpp +12 -12
- package/src/duckdb/src/storage/wal_replay.cpp +1 -1
- package/src/duckdb/src/transaction/cleanup_state.cpp +3 -3
- package/src/duckdb/src/transaction/commit_state.cpp +8 -8
- package/src/duckdb/src/transaction/duck_transaction.cpp +9 -7
- package/src/duckdb/src/transaction/duck_transaction_manager.cpp +16 -16
- package/src/duckdb/src/transaction/rollback_state.cpp +3 -3
- package/src/duckdb/src/verification/prepared_statement_verifier.cpp +1 -1
- package/src/duckdb/src/verification/statement_verifier.cpp +3 -4
- package/src/duckdb/third_party/hyperloglog/hyperloglog.hpp +2 -2
- package/src/duckdb/third_party/libpg_query/src_backend_parser_gram.cpp +13479 -13564
- package/src/duckdb/third_party/pcg/pcg_extras.hpp +1 -1
@@ -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++) {
|
@@ -30,7 +30,7 @@ inline void TupleDataValueStore(const string_t &source, const data_ptr_t &row_lo
|
|
30
30
|
Store<string_t>(source, row_location + offset_in_row);
|
31
31
|
} else {
|
32
32
|
memcpy(heap_location, source.GetData(), source.GetSize());
|
33
|
-
Store<string_t>(string_t((
|
33
|
+
Store<string_t>(string_t(const_char_ptr_cast(heap_location), source.GetSize()), row_location + offset_in_row);
|
34
34
|
heap_location += source.GetSize();
|
35
35
|
}
|
36
36
|
}
|
@@ -57,7 +57,7 @@ static inline T TupleDataWithinListValueLoad(const data_ptr_t &location, data_pt
|
|
57
57
|
template <>
|
58
58
|
inline string_t TupleDataWithinListValueLoad(const data_ptr_t &location, data_ptr_t &heap_location) {
|
59
59
|
const auto size = Load<uint32_t>(location);
|
60
|
-
string_t result((
|
60
|
+
string_t result(const_char_ptr_cast(heap_location), size);
|
61
61
|
heap_location += size;
|
62
62
|
return result;
|
63
63
|
}
|
@@ -96,7 +96,7 @@ void TupleDataCollection::ComputeHeapSizes(Vector &heap_sizes_v, const Vector &s
|
|
96
96
|
switch (type) {
|
97
97
|
case PhysicalType::VARCHAR: {
|
98
98
|
// Only non-inlined strings are stored in the heap
|
99
|
-
const auto source_data = (
|
99
|
+
const auto source_data = UnifiedVectorFormat::GetData<string_t>(source_vector_data);
|
100
100
|
for (idx_t i = 0; i < append_count; i++) {
|
101
101
|
const auto source_idx = source_sel.get_index(append_sel.get_index(i));
|
102
102
|
if (source_validity.RowIsValid(source_idx)) {
|
@@ -175,7 +175,7 @@ void TupleDataCollection::ComputeFixedWithinListHeapSizes(Vector &heap_sizes_v,
|
|
175
175
|
const UnifiedVectorFormat &list_data) {
|
176
176
|
// List data
|
177
177
|
const auto list_sel = *list_data.sel;
|
178
|
-
const auto list_entries = (
|
178
|
+
const auto list_entries = UnifiedVectorFormat::GetData<list_entry_t>(list_data);
|
179
179
|
const auto &list_validity = list_data.validity;
|
180
180
|
|
181
181
|
// Target
|
@@ -206,12 +206,12 @@ void TupleDataCollection::StringWithinListComputeHeapSizes(Vector &heap_sizes_v,
|
|
206
206
|
// Source
|
207
207
|
const auto &source_data = source_format.data;
|
208
208
|
const auto source_sel = *source_data.sel;
|
209
|
-
const auto data = (
|
209
|
+
const auto data = UnifiedVectorFormat::GetData<string_t>(source_data);
|
210
210
|
const auto &source_validity = source_data.validity;
|
211
211
|
|
212
212
|
// List data
|
213
213
|
const auto list_sel = *list_data.sel;
|
214
|
-
const auto list_entries = (
|
214
|
+
const auto list_entries = UnifiedVectorFormat::GetData<list_entry_t>(list_data);
|
215
215
|
const auto &list_validity = list_data.validity;
|
216
216
|
|
217
217
|
// Target
|
@@ -249,7 +249,7 @@ void TupleDataCollection::StructWithinListComputeHeapSizes(Vector &heap_sizes_v,
|
|
249
249
|
const UnifiedVectorFormat &list_data) {
|
250
250
|
// List data
|
251
251
|
const auto list_sel = *list_data.sel;
|
252
|
-
const auto list_entries = (
|
252
|
+
const auto list_entries = UnifiedVectorFormat::GetData<list_entry_t>(list_data);
|
253
253
|
const auto &list_validity = list_data.validity;
|
254
254
|
|
255
255
|
// Target
|
@@ -305,13 +305,13 @@ void TupleDataCollection::ListWithinListComputeHeapSizes(Vector &heap_sizes_v, c
|
|
305
305
|
const UnifiedVectorFormat &list_data) {
|
306
306
|
// List data (of the list Vector that "source_v" is in)
|
307
307
|
const auto list_sel = *list_data.sel;
|
308
|
-
const auto list_entries = (
|
308
|
+
const auto list_entries = UnifiedVectorFormat::GetData<list_entry_t>(list_data);
|
309
309
|
const auto &list_validity = list_data.validity;
|
310
310
|
|
311
311
|
// Child list
|
312
312
|
const auto &child_list_data = source_format.data;
|
313
313
|
const auto child_list_sel = *child_list_data.sel;
|
314
|
-
const auto child_list_entries = (
|
314
|
+
const auto child_list_entries = UnifiedVectorFormat::GetData<list_entry_t>(child_list_data);
|
315
315
|
const auto &child_list_validity = child_list_data.validity;
|
316
316
|
|
317
317
|
// Figure out actual child list size (differs from ListVector::GetListSize if dict/const vector)
|
@@ -384,7 +384,7 @@ void TupleDataCollection::ListWithinListComputeHeapSizes(Vector &heap_sizes_v, c
|
|
384
384
|
// Create a combined child_list_data to be used as list_data in the recursion
|
385
385
|
auto &combined_child_list_data = combined_list_data.combined_data;
|
386
386
|
combined_child_list_data.sel = list_data.sel;
|
387
|
-
combined_child_list_data.data = (
|
387
|
+
combined_child_list_data.data = data_ptr_cast(combined_list_entries);
|
388
388
|
combined_child_list_data.validity = list_data.validity;
|
389
389
|
|
390
390
|
// Combine the selection vectors
|
@@ -439,7 +439,7 @@ static void TupleDataTemplatedScatter(const Vector &source, const TupleDataVecto
|
|
439
439
|
// Source
|
440
440
|
const auto &source_data = source_format.data;
|
441
441
|
const auto source_sel = *source_data.sel;
|
442
|
-
const auto data = (
|
442
|
+
const auto data = UnifiedVectorFormat::GetData<T>(source_data);
|
443
443
|
const auto &validity = source_data.validity;
|
444
444
|
|
445
445
|
// Target
|
@@ -535,7 +535,7 @@ static void TupleDataListScatter(const Vector &source, const TupleDataVectorForm
|
|
535
535
|
// Source
|
536
536
|
const auto &source_data = source_format.data;
|
537
537
|
const auto source_sel = *source_data.sel;
|
538
|
-
const auto data = (
|
538
|
+
const auto data = UnifiedVectorFormat::GetData<list_entry_t>(source_data);
|
539
539
|
const auto &validity = source_data.validity;
|
540
540
|
|
541
541
|
// Target
|
@@ -582,12 +582,12 @@ static void TupleDataTemplatedWithinListScatter(const Vector &source, const Tupl
|
|
582
582
|
// Source
|
583
583
|
const auto &source_data = source_format.data;
|
584
584
|
const auto source_sel = *source_data.sel;
|
585
|
-
const auto data = (
|
585
|
+
const auto data = UnifiedVectorFormat::GetData<T>(source_data);
|
586
586
|
const auto &source_validity = source_data.validity;
|
587
587
|
|
588
588
|
// List data
|
589
589
|
const auto list_sel = *list_data.sel;
|
590
|
-
const auto list_entries = (
|
590
|
+
const auto list_entries = UnifiedVectorFormat::GetData<list_entry_t>(list_data);
|
591
591
|
const auto &list_validity = list_data.validity;
|
592
592
|
|
593
593
|
// Target
|
@@ -641,7 +641,7 @@ static void TupleDataStructWithinListScatter(const Vector &source, const TupleDa
|
|
641
641
|
|
642
642
|
// List data
|
643
643
|
const auto list_sel = *list_data.sel;
|
644
|
-
const auto list_entries = (
|
644
|
+
const auto list_entries = UnifiedVectorFormat::GetData<list_entry_t>(list_data);
|
645
645
|
const auto &list_validity = list_data.validity;
|
646
646
|
|
647
647
|
// Target
|
@@ -693,13 +693,13 @@ static void TupleDataListWithinListScatter(const Vector &child_list, const Tuple
|
|
693
693
|
const vector<TupleDataScatterFunction> &child_functions) {
|
694
694
|
// List data (of the list Vector that "child_list" is in)
|
695
695
|
const auto list_sel = *list_data.sel;
|
696
|
-
const auto list_entries = (
|
696
|
+
const auto list_entries = UnifiedVectorFormat::GetData<list_entry_t>(list_data);
|
697
697
|
const auto &list_validity = list_data.validity;
|
698
698
|
|
699
699
|
// Child list
|
700
700
|
const auto &child_list_data = child_list_format.data;
|
701
701
|
const auto child_list_sel = *child_list_data.sel;
|
702
|
-
const auto child_list_entries = (
|
702
|
+
const auto child_list_entries = UnifiedVectorFormat::GetData<list_entry_t>(child_list_data);
|
703
703
|
const auto &child_list_validity = child_list_data.validity;
|
704
704
|
|
705
705
|
// Target
|
@@ -51,7 +51,7 @@ string_t StringHeap::AddBlob(const string_t &data) {
|
|
51
51
|
|
52
52
|
string_t StringHeap::EmptyString(idx_t len) {
|
53
53
|
D_ASSERT(len > string_t::INLINE_LENGTH);
|
54
|
-
auto insert_pos = (
|
54
|
+
auto insert_pos = const_char_ptr_cast(allocator.Allocate(len));
|
55
55
|
return string_t(insert_pos, len);
|
56
56
|
}
|
57
57
|
|
@@ -730,7 +730,7 @@ Value Value::EMPTYLIST(const LogicalType &child_type) {
|
|
730
730
|
Value Value::BLOB(const_data_ptr_t data, idx_t len) {
|
731
731
|
Value result(LogicalType::BLOB);
|
732
732
|
result.is_null = false;
|
733
|
-
result.value_info_ = make_shared<StringValueInfo>(string((
|
733
|
+
result.value_info_ = make_shared<StringValueInfo>(string(const_char_ptr_cast(data), len));
|
734
734
|
return result;
|
735
735
|
}
|
736
736
|
|
@@ -744,7 +744,7 @@ Value Value::BLOB(const string &data) {
|
|
744
744
|
Value Value::BIT(const_data_ptr_t data, idx_t len) {
|
745
745
|
Value result(LogicalType::BIT);
|
746
746
|
result.is_null = false;
|
747
|
-
result.value_info_ = make_shared<StringValueInfo>(string((
|
747
|
+
result.value_info_ = make_shared<StringValueInfo>(string(const_char_ptr_cast(data), len));
|
748
748
|
return result;
|
749
749
|
}
|
750
750
|
|