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
@@ -443,7 +443,7 @@ unique_ptr<GlobalSourceState> PhysicalNestedLoopJoin::GetGlobalSourceState(Clien
|
|
443
443
|
|
444
444
|
unique_ptr<LocalSourceState> PhysicalNestedLoopJoin::GetLocalSourceState(ExecutionContext &context,
|
445
445
|
GlobalSourceState &gstate) const {
|
446
|
-
return make_uniq<NestedLoopJoinLocalScanState>(*this, (
|
446
|
+
return make_uniq<NestedLoopJoinLocalScanState>(*this, gstate.Cast<NestedLoopJoinGlobalScanState>());
|
447
447
|
}
|
448
448
|
|
449
449
|
SourceResultType PhysicalNestedLoopJoin::GetData(ExecutionContext &context, DataChunk &chunk,
|
@@ -451,8 +451,8 @@ SourceResultType PhysicalNestedLoopJoin::GetData(ExecutionContext &context, Data
|
|
451
451
|
D_ASSERT(IsRightOuterJoin(join_type));
|
452
452
|
// check if we need to scan any unmatched tuples from the RHS for the full/right outer join
|
453
453
|
auto &sink = sink_state->Cast<NestedLoopJoinGlobalState>();
|
454
|
-
auto &gstate =
|
455
|
-
auto &lstate =
|
454
|
+
auto &gstate = input.global_state.Cast<NestedLoopJoinGlobalScanState>();
|
455
|
+
auto &lstate = input.local_state.Cast<NestedLoopJoinLocalScanState>();
|
456
456
|
|
457
457
|
// if the LHS is exhausted in a FULL/RIGHT OUTER JOIN, we scan chunks we still need to output
|
458
458
|
sink.right_outer.Scan(gstate.scan_state, lstate.scan_state, chunk);
|
@@ -385,7 +385,7 @@ static idx_t MergeJoinSimpleBlocks(PiecewiseMergeJoinState &lstate, MergeJoinGlo
|
|
385
385
|
|
386
386
|
void PhysicalPiecewiseMergeJoin::ResolveSimpleJoin(ExecutionContext &context, DataChunk &input, DataChunk &chunk,
|
387
387
|
OperatorState &state_p) const {
|
388
|
-
auto &state = (
|
388
|
+
auto &state = state_p.Cast<PiecewiseMergeJoinState>();
|
389
389
|
auto &gstate = sink_state->Cast<MergeJoinGlobalState>();
|
390
390
|
|
391
391
|
state.ResolveJoinKeys(input);
|
@@ -507,7 +507,7 @@ static idx_t MergeJoinComplexBlocks(BlockMergeInfo &l, BlockMergeInfo &r, const
|
|
507
507
|
|
508
508
|
OperatorResultType PhysicalPiecewiseMergeJoin::ResolveComplexJoin(ExecutionContext &context, DataChunk &input,
|
509
509
|
DataChunk &chunk, OperatorState &state_p) const {
|
510
|
-
auto &state = (
|
510
|
+
auto &state = state_p.Cast<PiecewiseMergeJoinState>();
|
511
511
|
auto &gstate = sink_state->Cast<MergeJoinGlobalState>();
|
512
512
|
auto &rsorted = *gstate.table->global_sort_state.sorted_blocks[0];
|
513
513
|
const auto left_cols = input.ColumnCount();
|
@@ -682,7 +682,7 @@ SourceResultType PhysicalPiecewiseMergeJoin::GetData(ExecutionContext &context,
|
|
682
682
|
D_ASSERT(IsRightOuterJoin(join_type));
|
683
683
|
// check if we need to scan any unmatched tuples from the RHS for the full/right outer join
|
684
684
|
auto &sink = sink_state->Cast<MergeJoinGlobalState>();
|
685
|
-
auto &state =
|
685
|
+
auto &state = input.global_state.Cast<PiecewiseJoinScanState>();
|
686
686
|
|
687
687
|
lock_guard<mutex> l(state.lock);
|
688
688
|
if (!state.scanner) {
|
@@ -276,7 +276,7 @@ void TopNHeap::Finalize() {
|
|
276
276
|
}
|
277
277
|
|
278
278
|
void TopNHeap::Reduce() {
|
279
|
-
idx_t min_sort_threshold = MaxValue<idx_t>(STANDARD_VECTOR_SIZE *
|
279
|
+
idx_t min_sort_threshold = MaxValue<idx_t>(STANDARD_VECTOR_SIZE * 5ULL, 2ULL * (limit + offset));
|
280
280
|
if (sort_state.count < min_sort_threshold) {
|
281
281
|
// only reduce when we pass two times the limit + offset, or 5 vectors (whichever comes first)
|
282
282
|
return;
|
@@ -186,8 +186,8 @@ static string TrimWhitespace(const string &col_name) {
|
|
186
186
|
|
187
187
|
static string NormalizeColumnName(const string &col_name) {
|
188
188
|
// normalize UTF8 characters to NFKD
|
189
|
-
auto nfkd = utf8proc_NFKD(
|
190
|
-
const string col_name_nfkd = string((
|
189
|
+
auto nfkd = utf8proc_NFKD(reinterpret_cast<const utf8proc_uint8_t *>(col_name.c_str()), col_name.size());
|
190
|
+
const string col_name_nfkd = string(const_char_ptr_cast(nfkd), strlen(const_char_ptr_cast(nfkd)));
|
191
191
|
free(nfkd);
|
192
192
|
|
193
193
|
// only keep ASCII characters 0-9 a-z A-Z and replace spaces with regular whitespace
|
@@ -99,7 +99,7 @@ idx_t CSVFileHandle::Read(void *buffer, idx_t nr_bytes) {
|
|
99
99
|
}
|
100
100
|
// we have data left to read from the file
|
101
101
|
// read directly into the buffer
|
102
|
-
auto bytes_read = file_handle->Read((
|
102
|
+
auto bytes_read = file_handle->Read(char_ptr_cast(buffer) + result_offset, nr_bytes - result_offset);
|
103
103
|
file_size = file_handle->GetFileSize();
|
104
104
|
read_position += bytes_read;
|
105
105
|
if (reset_enabled) {
|
@@ -114,7 +114,7 @@ idx_t CSVFileHandle::Read(void *buffer, idx_t nr_bytes) {
|
|
114
114
|
}
|
115
115
|
cached_buffer = std::move(new_buffer);
|
116
116
|
}
|
117
|
-
memcpy(cached_buffer.get() + buffer_size, (
|
117
|
+
memcpy(cached_buffer.get() + buffer_size, char_ptr_cast(buffer) + result_offset, bytes_read);
|
118
118
|
buffer_size += bytes_read;
|
119
119
|
}
|
120
120
|
|
@@ -279,9 +279,8 @@ unique_ptr<GlobalSinkState> PhysicalBatchInsert::GetGlobalSinkState(ClientContex
|
|
279
279
|
// CREATE TABLE AS
|
280
280
|
D_ASSERT(!insert_table);
|
281
281
|
auto &catalog = schema->catalog;
|
282
|
-
|
283
|
-
|
284
|
-
.get();
|
282
|
+
auto created_table = catalog.CreateTable(catalog.GetCatalogTransaction(context), *schema.get_mutable(), *info);
|
283
|
+
table = &created_table->Cast<TableCatalogEntry>();
|
285
284
|
} else {
|
286
285
|
D_ASSERT(insert_table);
|
287
286
|
D_ASSERT(insert_table->IsDuckTable());
|
@@ -63,7 +63,7 @@ PhysicalInsert::PhysicalInsert(LogicalOperator &op, SchemaCatalogEntry &schema,
|
|
63
63
|
|
64
64
|
void PhysicalInsert::GetInsertInfo(const BoundCreateTableInfo &info, vector<LogicalType> &insert_types,
|
65
65
|
vector<unique_ptr<Expression>> &bound_defaults) {
|
66
|
-
auto &create_info =
|
66
|
+
auto &create_info = info.base->Cast<CreateTableInfo>();
|
67
67
|
for (auto &col : create_info.columns.Physical()) {
|
68
68
|
insert_types.push_back(col.GetType());
|
69
69
|
bound_defaults.push_back(make_uniq<BoundConstantExpression>(Value(col.GetType())));
|
@@ -17,11 +17,11 @@ PhysicalPivot::PhysicalPivot(vector<LogicalType> types_p, unique_ptr<PhysicalOpe
|
|
17
17
|
}
|
18
18
|
// extract the empty aggregate expressions
|
19
19
|
for (auto &aggr_expr : bound_pivot.aggregates) {
|
20
|
-
auto &aggr = (
|
20
|
+
auto &aggr = aggr_expr->Cast<BoundAggregateExpression>();
|
21
21
|
// for each aggregate, initialize an empty aggregate state and finalize it immediately
|
22
22
|
auto state = make_unsafe_uniq_array<data_t>(aggr.function.state_size());
|
23
23
|
aggr.function.initialize(state.get());
|
24
|
-
Vector state_vector(Value::POINTER((
|
24
|
+
Vector state_vector(Value::POINTER(CastPointerToValue(state.get())));
|
25
25
|
Vector result_vector(aggr_expr->return_type);
|
26
26
|
AggregateInputData aggr_input_data(aggr.bind_info.get(), Allocator::DefaultAllocator());
|
27
27
|
aggr.function.finalize(state_vector, aggr_input_data, result_vector, 1, 0);
|
@@ -27,7 +27,7 @@ PhysicalProjection::PhysicalProjection(vector<LogicalType> types, vector<unique_
|
|
27
27
|
|
28
28
|
OperatorResultType PhysicalProjection::Execute(ExecutionContext &context, DataChunk &input, DataChunk &chunk,
|
29
29
|
GlobalOperatorState &gstate, OperatorState &state_p) const {
|
30
|
-
auto &state = (
|
30
|
+
auto &state = state_p.Cast<ProjectionState>();
|
31
31
|
state.executor.Execute(input, chunk);
|
32
32
|
return OperatorResultType::NEED_MORE_INPUT;
|
33
33
|
}
|
@@ -65,7 +65,7 @@ void UnnestOperatorState::SetLongestListLength() {
|
|
65
65
|
if (vector_data.validity.RowIsValid(current_idx)) {
|
66
66
|
|
67
67
|
// check if this list is longer
|
68
|
-
auto list_data = (
|
68
|
+
auto list_data = UnifiedVectorFormat::GetData<list_entry_t>(vector_data);
|
69
69
|
auto list_entry = list_data[current_idx];
|
70
70
|
if (list_entry.length > longest_list_length) {
|
71
71
|
longest_list_length = list_entry.length;
|
@@ -98,7 +98,7 @@ static void UnnestNull(idx_t start, idx_t end, Vector &result) {
|
|
98
98
|
template <class T>
|
99
99
|
static void TemplatedUnnest(UnifiedVectorFormat &vector_data, idx_t start, idx_t end, Vector &result) {
|
100
100
|
|
101
|
-
auto source_data = (
|
101
|
+
auto source_data = UnifiedVectorFormat::GetData<T>(vector_data);
|
102
102
|
auto &source_mask = vector_data.validity;
|
103
103
|
|
104
104
|
D_ASSERT(result.GetVectorType() == VectorType::FLAT_VECTOR);
|
@@ -314,7 +314,7 @@ OperatorResultType PhysicalUnnest::ExecuteInternal(ExecutionContext &context, Da
|
|
314
314
|
|
315
315
|
} else {
|
316
316
|
|
317
|
-
auto list_data = (
|
317
|
+
auto list_data = UnifiedVectorFormat::GetData<list_entry_t>(vector_data);
|
318
318
|
auto list_entry = list_data[current_idx];
|
319
319
|
|
320
320
|
idx_t list_count = 0;
|
@@ -1,6 +1,7 @@
|
|
1
1
|
#include "duckdb/execution/operator/scan/physical_column_data_scan.hpp"
|
2
2
|
|
3
3
|
#include "duckdb/execution/operator/join/physical_delim_join.hpp"
|
4
|
+
#include "duckdb/execution/operator/aggregate/physical_hash_aggregate.hpp"
|
4
5
|
#include "duckdb/parallel/meta_pipeline.hpp"
|
5
6
|
#include "duckdb/parallel/pipeline.hpp"
|
6
7
|
|
@@ -60,7 +61,7 @@ void PhysicalColumnDataScan::BuildPipelines(Pipeline ¤t, MetaPipeline &met
|
|
60
61
|
D_ASSERT(delim_sink->type == PhysicalOperatorType::DELIM_JOIN);
|
61
62
|
auto &delim_join = delim_sink->Cast<PhysicalDelimJoin>();
|
62
63
|
current.AddDependency(delim_dependency);
|
63
|
-
state.SetPipelineSource(current,
|
64
|
+
state.SetPipelineSource(current, delim_join.distinct->Cast<PhysicalOperator>());
|
64
65
|
return;
|
65
66
|
}
|
66
67
|
case PhysicalOperatorType::RECURSIVE_CTE_SCAN:
|
@@ -22,7 +22,7 @@ unique_ptr<OperatorState> PhysicalExpressionScan::GetOperatorState(ExecutionCont
|
|
22
22
|
|
23
23
|
OperatorResultType PhysicalExpressionScan::Execute(ExecutionContext &context, DataChunk &input, DataChunk &chunk,
|
24
24
|
GlobalOperatorState &gstate, OperatorState &state_p) const {
|
25
|
-
auto &state = (
|
25
|
+
auto &state = state_p.Cast<ExpressionScanState>();
|
26
26
|
|
27
27
|
for (; chunk.size() + input.size() <= STANDARD_VECTOR_SIZE && state.expression_index < expressions.size();
|
28
28
|
state.expression_index++) {
|
@@ -19,7 +19,7 @@ PhysicalPositionalScan::PhysicalPositionalScan(vector<LogicalType> types, unique
|
|
19
19
|
if (left->type == PhysicalOperatorType::TABLE_SCAN) {
|
20
20
|
child_tables.emplace_back(std::move(left));
|
21
21
|
} else if (left->type == PhysicalOperatorType::POSITIONAL_SCAN) {
|
22
|
-
auto &left_scan = (
|
22
|
+
auto &left_scan = left->Cast<PhysicalPositionalScan>();
|
23
23
|
child_tables = std::move(left_scan.child_tables);
|
24
24
|
} else {
|
25
25
|
throw InternalException("Invalid left input for PhysicalPositionalScan");
|
@@ -28,7 +28,7 @@ PhysicalPositionalScan::PhysicalPositionalScan(vector<LogicalType> types, unique
|
|
28
28
|
if (right->type == PhysicalOperatorType::TABLE_SCAN) {
|
29
29
|
child_tables.emplace_back(std::move(right));
|
30
30
|
} else if (right->type == PhysicalOperatorType::POSITIONAL_SCAN) {
|
31
|
-
auto &right_scan = (
|
31
|
+
auto &right_scan = right->Cast<PhysicalPositionalScan>();
|
32
32
|
auto &right_tables = right_scan.child_tables;
|
33
33
|
child_tables.reserve(child_tables.size() + right_tables.size());
|
34
34
|
std::move(right_tables.begin(), right_tables.end(), std::back_inserter(child_tables));
|
@@ -45,7 +45,7 @@ SinkResultType PhysicalCreateType::Sink(ExecutionContext &context, DataChunk &ch
|
|
45
45
|
gstate.capacity *= 2;
|
46
46
|
}
|
47
47
|
|
48
|
-
auto src_ptr = (
|
48
|
+
auto src_ptr = UnifiedVectorFormat::GetData<string_t>(sdata);
|
49
49
|
auto result_ptr = FlatVector::GetData<string_t>(gstate.result);
|
50
50
|
// Input vector has NULL value, we just throw an exception
|
51
51
|
for (idx_t i = 0; i < chunk.size(); i++) {
|
@@ -51,7 +51,7 @@ PerfectAggregateHashTable::~PerfectAggregateHashTable() {
|
|
51
51
|
template <class T>
|
52
52
|
static void ComputeGroupLocationTemplated(UnifiedVectorFormat &group_data, Value &min, uintptr_t *address_data,
|
53
53
|
idx_t current_shift, idx_t count) {
|
54
|
-
auto data = (
|
54
|
+
auto data = UnifiedVectorFormat::GetData<T>(group_data);
|
55
55
|
auto min_val = min.GetValueUnsafe<T>();
|
56
56
|
if (!group_data.validity.AllValid()) {
|
57
57
|
for (idx_t i = 0; i < count; i++) {
|
@@ -186,7 +186,7 @@ static bool PlanIndexJoin(ClientContext &context, LogicalComparisonJoin &op, uni
|
|
186
186
|
}
|
187
187
|
// index joins are not supported if there are pushed down table filters
|
188
188
|
D_ASSERT(right->type == PhysicalOperatorType::TABLE_SCAN);
|
189
|
-
auto &tbl_scan = (
|
189
|
+
auto &tbl_scan = right->Cast<PhysicalTableScan>();
|
190
190
|
// if (tbl_scan.table_filters && !tbl_scan.table_filters->filters.empty()) {
|
191
191
|
// return false;
|
192
192
|
// }
|
@@ -34,7 +34,7 @@ unique_ptr<PhysicalOperator> DuckCatalog::PlanCreateTableAs(ClientContext &conte
|
|
34
34
|
}
|
35
35
|
|
36
36
|
unique_ptr<PhysicalOperator> PhysicalPlanGenerator::CreatePlan(LogicalCreateTable &op) {
|
37
|
-
const auto &create_info =
|
37
|
+
const auto &create_info = op.info->base->Cast<CreateTableInfo>();
|
38
38
|
auto &catalog = op.info->schema.catalog;
|
39
39
|
auto existing_entry = catalog.GetEntry<TableCatalogEntry>(context, create_info.schema, create_info.table,
|
40
40
|
OnEntryNotFound::RETURN_NULL);
|
@@ -207,10 +207,10 @@ unique_ptr<PhysicalOperator> PhysicalPlanGenerator::CreatePlan(LogicalOperator &
|
|
207
207
|
plan = CreatePlan(op.Cast<LogicalReset>());
|
208
208
|
break;
|
209
209
|
case LogicalOperatorType::LOGICAL_PIVOT:
|
210
|
-
plan = CreatePlan((
|
210
|
+
plan = CreatePlan(op.Cast<LogicalPivot>());
|
211
211
|
break;
|
212
212
|
case LogicalOperatorType::LOGICAL_EXTENSION_OPERATOR:
|
213
|
-
plan = (
|
213
|
+
plan = op.Cast<LogicalExtensionOperator>().CreatePlan(context, *this);
|
214
214
|
|
215
215
|
if (!plan) {
|
216
216
|
throw InternalException("Missing PhysicalOperator for Extension Operator");
|
@@ -408,7 +408,7 @@ SourceResultType RadixPartitionedHashTable::GetData(ExecutionContext &context, D
|
|
408
408
|
aggr.function.initialize(aggr_state.get());
|
409
409
|
|
410
410
|
AggregateInputData aggr_input_data(aggr.bind_info.get(), Allocator::DefaultAllocator());
|
411
|
-
Vector state_vector(Value::POINTER((
|
411
|
+
Vector state_vector(Value::POINTER(CastPointerToValue(aggr_state.get())));
|
412
412
|
aggr.function.finalize(state_vector, aggr_input_data, chunk.data[null_groups.size() + i], 1, 0);
|
413
413
|
if (aggr.function.destructor) {
|
414
414
|
aggr.function.destructor(state_vector, aggr_input_data, 1);
|
@@ -186,7 +186,7 @@ void BaseReservoirSampling::InitializeReservoir(idx_t cur_size, idx_t sample_siz
|
|
186
186
|
//! we use a priority queue to extract the minimum key in O(1) time
|
187
187
|
for (idx_t i = 0; i < sample_size; i++) {
|
188
188
|
double k_i = random.NextRandom();
|
189
|
-
reservoir_weights.
|
189
|
+
reservoir_weights.emplace(-k_i, i);
|
190
190
|
}
|
191
191
|
SetNextEntry();
|
192
192
|
}
|
@@ -217,7 +217,7 @@ void BaseReservoirSampling::ReplaceElement() {
|
|
217
217
|
//! we generate a random number between (min_threshold, 1)
|
218
218
|
double r2 = random.NextRandom(min_threshold, 1);
|
219
219
|
//! now we insert the new weight into the reservoir
|
220
|
-
reservoir_weights.
|
220
|
+
reservoir_weights.emplace(-r2, min_entry);
|
221
221
|
//! we update the min entry with the new min entry in the reservoir
|
222
222
|
SetNextEntry();
|
223
223
|
}
|
@@ -12,7 +12,8 @@ namespace duckdb {
|
|
12
12
|
|
13
13
|
WindowAggregateState::WindowAggregateState(AggregateObject aggr, const LogicalType &result_type_p)
|
14
14
|
: aggr(std::move(aggr)), result_type(result_type_p), state(aggr.function.state_size()),
|
15
|
-
statev(Value::POINTER((
|
15
|
+
statev(Value::POINTER(CastPointerToValue(state.data()))),
|
16
|
+
statep(Value::POINTER(CastPointerToValue(state.data()))) {
|
16
17
|
statev.SetVectorType(VectorType::FLAT_VECTOR); // Prevent conversion of results to constants
|
17
18
|
}
|
18
19
|
|
@@ -180,11 +181,12 @@ void WindowConstantAggregate::Compute(Vector &target, idx_t rid, idx_t start, id
|
|
180
181
|
//===--------------------------------------------------------------------===//
|
181
182
|
// WindowSegmentTree
|
182
183
|
//===--------------------------------------------------------------------===//
|
183
|
-
WindowSegmentTree::WindowSegmentTree(AggregateObject
|
184
|
+
WindowSegmentTree::WindowSegmentTree(AggregateObject aggr_p, const LogicalType &result_type_p, DataChunk *input,
|
184
185
|
const ValidityMask &filter_mask_p, WindowAggregationMode mode_p)
|
185
|
-
: aggr(std::move(
|
186
|
-
statep(Value::POINTER((
|
187
|
-
internal_nodes(0), input_ref(input),
|
186
|
+
: aggr(std::move(aggr_p)), result_type(result_type_p), state(aggr.function.state_size()),
|
187
|
+
statep(Value::POINTER(CastPointerToValue(state.data()))), frame(0, 0),
|
188
|
+
statev(Value::POINTER(CastPointerToValue(state.data()))), internal_nodes(0), input_ref(input),
|
189
|
+
filter_mask(filter_mask_p), mode(mode_p) {
|
188
190
|
statep.Flatten(input->size());
|
189
191
|
statev.SetVectorType(VectorType::FLAT_VECTOR); // Prevent conversion of results to constants
|
190
192
|
|
@@ -212,7 +214,7 @@ WindowSegmentTree::~WindowSegmentTree() {
|
|
212
214
|
AggregateInputData aggr_input_data(aggr.GetFunctionData(), Allocator::DefaultAllocator());
|
213
215
|
// call the destructor for all the intermediate states
|
214
216
|
data_ptr_t address_data[STANDARD_VECTOR_SIZE];
|
215
|
-
Vector addresses(LogicalType::POINTER, (
|
217
|
+
Vector addresses(LogicalType::POINTER, data_ptr_cast(address_data));
|
216
218
|
idx_t count = 0;
|
217
219
|
for (idx_t i = 0; i < internal_nodes; i++) {
|
218
220
|
address_data[count++] = data_ptr_t(levels_flat_native.get() + i * state.size());
|
@@ -56,12 +56,12 @@ struct CountStarFunction : public BaseCountFunction {
|
|
56
56
|
|
57
57
|
struct CountFunction : public BaseCountFunction {
|
58
58
|
template <class INPUT_TYPE, class STATE, class OP>
|
59
|
-
static void Operation(STATE *state, AggregateInputData &, INPUT_TYPE *input, ValidityMask &mask, idx_t idx) {
|
59
|
+
static void Operation(STATE *state, AggregateInputData &, const INPUT_TYPE *input, ValidityMask &mask, idx_t idx) {
|
60
60
|
*state += 1;
|
61
61
|
}
|
62
62
|
|
63
63
|
template <class INPUT_TYPE, class STATE, class OP>
|
64
|
-
static void ConstantOperation(STATE *state, AggregateInputData &, INPUT_TYPE *input, ValidityMask &mask,
|
64
|
+
static void ConstantOperation(STATE *state, AggregateInputData &, const INPUT_TYPE *input, ValidityMask &mask,
|
65
65
|
idx_t count) {
|
66
66
|
*state += count;
|
67
67
|
}
|
@@ -27,7 +27,7 @@ struct FirstFunctionBase {
|
|
27
27
|
template <bool LAST, bool SKIP_NULLS>
|
28
28
|
struct FirstFunction : public FirstFunctionBase {
|
29
29
|
template <class INPUT_TYPE, class STATE, class OP>
|
30
|
-
static void Operation(STATE *state, AggregateInputData &, INPUT_TYPE *input, ValidityMask &mask, idx_t idx) {
|
30
|
+
static void Operation(STATE *state, AggregateInputData &, const INPUT_TYPE *input, ValidityMask &mask, idx_t idx) {
|
31
31
|
if (LAST || !state->is_set) {
|
32
32
|
if (!mask.RowIsValid(idx)) {
|
33
33
|
if (!SKIP_NULLS) {
|
@@ -43,7 +43,7 @@ struct FirstFunction : public FirstFunctionBase {
|
|
43
43
|
}
|
44
44
|
|
45
45
|
template <class INPUT_TYPE, class STATE, class OP>
|
46
|
-
static void ConstantOperation(STATE *state, AggregateInputData &aggr_input_data, INPUT_TYPE *input,
|
46
|
+
static void ConstantOperation(STATE *state, AggregateInputData &aggr_input_data, const INPUT_TYPE *input,
|
47
47
|
ValidityMask &mask, idx_t count) {
|
48
48
|
Operation<INPUT_TYPE, STATE, OP>(state, aggr_input_data, input, mask, 0);
|
49
49
|
}
|
@@ -94,7 +94,7 @@ struct FirstFunctionString : public FirstFunctionBase {
|
|
94
94
|
}
|
95
95
|
|
96
96
|
template <class INPUT_TYPE, class STATE, class OP>
|
97
|
-
static void Operation(STATE *state, AggregateInputData &input_data, INPUT_TYPE *input, ValidityMask &mask,
|
97
|
+
static void Operation(STATE *state, AggregateInputData &input_data, const INPUT_TYPE *input, ValidityMask &mask,
|
98
98
|
idx_t idx) {
|
99
99
|
if (LAST || !state->is_set) {
|
100
100
|
SetValue(state, input_data, input[idx], !mask.RowIsValid(idx));
|
@@ -102,7 +102,7 @@ struct FirstFunctionString : public FirstFunctionBase {
|
|
102
102
|
}
|
103
103
|
|
104
104
|
template <class INPUT_TYPE, class STATE, class OP>
|
105
|
-
static void ConstantOperation(STATE *state, AggregateInputData &aggr_input_data, INPUT_TYPE *input,
|
105
|
+
static void ConstantOperation(STATE *state, AggregateInputData &aggr_input_data, const INPUT_TYPE *input,
|
106
106
|
ValidityMask &mask, idx_t count) {
|
107
107
|
Operation<INPUT_TYPE, STATE, OP>(state, aggr_input_data, input, mask, 0);
|
108
108
|
}
|
@@ -171,7 +171,7 @@ struct FirstVectorFunction {
|
|
171
171
|
UnifiedVectorFormat sdata;
|
172
172
|
state_vector.ToUnifiedFormat(count, sdata);
|
173
173
|
|
174
|
-
auto states =
|
174
|
+
auto states = UnifiedVectorFormat::GetData<FirstStateVector *>(sdata);
|
175
175
|
for (idx_t i = 0; i < count; i++) {
|
176
176
|
const auto idx = idata.sel->get_index(i);
|
177
177
|
if (SKIP_NULLS && !idata.validity.RowIsValid(idx)) {
|
@@ -28,7 +28,7 @@ struct SortedAggregateBindData : public FunctionData {
|
|
28
28
|
}
|
29
29
|
sorted_on_args = (children.size() == order_bys.orders.size());
|
30
30
|
for (size_t i = 0; sorted_on_args && i < children.size(); ++i) {
|
31
|
-
sorted_on_args = children[i]->Equals(order_bys.orders[i].expression
|
31
|
+
sorted_on_args = children[i]->Equals(*order_bys.orders[i].expression);
|
32
32
|
}
|
33
33
|
}
|
34
34
|
|
@@ -49,7 +49,7 @@ struct SortedAggregateBindData : public FunctionData {
|
|
49
49
|
}
|
50
50
|
|
51
51
|
bool Equals(const FunctionData &other_p) const override {
|
52
|
-
auto &other = (
|
52
|
+
auto &other = other_p.Cast<SortedAggregateBindData>();
|
53
53
|
if (bind_info && other.bind_info) {
|
54
54
|
if (!bind_info->Equals(*other.bind_info)) {
|
55
55
|
return false;
|
@@ -288,7 +288,7 @@ struct SortedAggregateFunction {
|
|
288
288
|
DataChunk sort_chunk;
|
289
289
|
ProjectInputs(inputs, order_bind, input_count, count, arg_chunk, sort_chunk);
|
290
290
|
|
291
|
-
const auto order_state =
|
291
|
+
const auto order_state = reinterpret_cast<SortedAggregateState *>(state);
|
292
292
|
order_state->Update(order_bind, sort_chunk, arg_chunk);
|
293
293
|
}
|
294
294
|
|
@@ -310,7 +310,7 @@ struct SortedAggregateFunction {
|
|
310
310
|
states.ToUnifiedFormat(count, svdata);
|
311
311
|
|
312
312
|
// Size the selection vector for each state.
|
313
|
-
auto sdata =
|
313
|
+
auto sdata = UnifiedVectorFormat::GetDataNoConst<SortedAggregateState *>(svdata);
|
314
314
|
for (idx_t i = 0; i < count; ++i) {
|
315
315
|
auto sidx = svdata.sel->get_index(i);
|
316
316
|
auto order_state = sdata[sidx];
|
@@ -346,9 +346,9 @@ struct SortedAggregateFunction {
|
|
346
346
|
|
347
347
|
template <class STATE, class OP>
|
348
348
|
static void Combine(const STATE &source, STATE *target, AggregateInputData &aggr_input_data) {
|
349
|
-
|
349
|
+
auto &order_bind = aggr_input_data.bind_data->Cast<SortedAggregateBindData>();
|
350
350
|
auto &other = const_cast<STATE &>(source);
|
351
|
-
target->Combine(
|
351
|
+
target->Combine(order_bind, other);
|
352
352
|
}
|
353
353
|
|
354
354
|
static void Window(Vector inputs[], const ValidityMask &filter_mask, AggregateInputData &aggr_input_data,
|
@@ -359,7 +359,7 @@ struct SortedAggregateFunction {
|
|
359
359
|
|
360
360
|
static void Finalize(Vector &states, AggregateInputData &aggr_input_data, Vector &result, idx_t count,
|
361
361
|
const idx_t offset) {
|
362
|
-
|
362
|
+
auto &order_bind = aggr_input_data.bind_data->Cast<SortedAggregateBindData>();
|
363
363
|
auto &buffer_manager = order_bind.buffer_manager;
|
364
364
|
RowLayout payload_layout;
|
365
365
|
payload_layout.Initialize(order_bind.arg_types);
|
@@ -370,7 +370,7 @@ struct SortedAggregateFunction {
|
|
370
370
|
|
371
371
|
// Reusable inner state
|
372
372
|
vector<data_t> agg_state(order_bind.function.state_size());
|
373
|
-
Vector agg_state_vec(Value::POINTER((
|
373
|
+
Vector agg_state_vec(Value::POINTER(CastPointerToValue(agg_state.data())));
|
374
374
|
|
375
375
|
// State variables
|
376
376
|
auto bind_info = order_bind.bind_info.get();
|
@@ -158,7 +158,7 @@ int64_t CastFunctionSet::ImplicitCastCost(const LogicalType &source, const Logic
|
|
158
158
|
|
159
159
|
BoundCastInfo MapCastFunction(BindCastInput &input, const LogicalType &source, const LogicalType &target) {
|
160
160
|
D_ASSERT(input.info);
|
161
|
-
auto &map_info =
|
161
|
+
auto &map_info = input.info->Cast<MapCastInfo>();
|
162
162
|
auto entry = map_info.GetEntry(source, target);
|
163
163
|
if (entry) {
|
164
164
|
if (entry->bind_function) {
|
@@ -207,7 +207,7 @@ struct DecimalCastInput {
|
|
207
207
|
struct StringCastFromDecimalOperator {
|
208
208
|
template <class INPUT_TYPE, class RESULT_TYPE>
|
209
209
|
static RESULT_TYPE Operation(INPUT_TYPE input, ValidityMask &mask, idx_t idx, void *dataptr) {
|
210
|
-
auto data =
|
210
|
+
auto data = reinterpret_cast<DecimalCastInput *>(dataptr);
|
211
211
|
return StringCastFromDecimal::Operation<INPUT_TYPE>(input, data->width, data->scale, data->result);
|
212
212
|
}
|
213
213
|
};
|
@@ -17,7 +17,7 @@ bool EnumEnumCast(Vector &source, Vector &result, idx_t count, CastParameters &p
|
|
17
17
|
UnifiedVectorFormat vdata;
|
18
18
|
source.ToUnifiedFormat(count, vdata);
|
19
19
|
|
20
|
-
auto source_data = (
|
20
|
+
auto source_data = UnifiedVectorFormat::GetData<SRC_TYPE>(vdata);
|
21
21
|
auto source_sel = vdata.sel;
|
22
22
|
auto source_mask = vdata.validity;
|
23
23
|
|
@@ -71,7 +71,7 @@ static bool EnumToVarcharCast(Vector &source, Vector &result, idx_t count, CastP
|
|
71
71
|
UnifiedVectorFormat vdata;
|
72
72
|
source.ToUnifiedFormat(count, vdata);
|
73
73
|
|
74
|
-
auto source_data = (
|
74
|
+
auto source_data = UnifiedVectorFormat::GetData<SRC>(vdata);
|
75
75
|
for (idx_t i = 0; i < count; i++) {
|
76
76
|
auto source_idx = vdata.sel->get_index(i);
|
77
77
|
if (!vdata.validity.RowIsValid(source_idx)) {
|
@@ -8,7 +8,7 @@
|
|
8
8
|
namespace duckdb {
|
9
9
|
|
10
10
|
template <class T>
|
11
|
-
bool StringEnumCastLoop(string_t *source_data, ValidityMask &source_mask, const LogicalType &source_type,
|
11
|
+
bool StringEnumCastLoop(const string_t *source_data, ValidityMask &source_mask, const LogicalType &source_type,
|
12
12
|
T *result_data, ValidityMask &result_mask, const LogicalType &result_type, idx_t count,
|
13
13
|
string *error_message, const SelectionVector *sel) {
|
14
14
|
bool all_converted = true;
|
@@ -55,7 +55,7 @@ bool StringEnumCast(Vector &source, Vector &result, idx_t count, CastParameters
|
|
55
55
|
|
56
56
|
result.SetVectorType(VectorType::FLAT_VECTOR);
|
57
57
|
|
58
|
-
auto source_data = (
|
58
|
+
auto source_data = UnifiedVectorFormat::GetData<string_t>(vdata);
|
59
59
|
auto source_sel = vdata.sel;
|
60
60
|
auto source_mask = vdata.validity;
|
61
61
|
auto result_data = FlatVector::GetData<T>(result);
|
@@ -119,9 +119,9 @@ static BoundCastInfo VectorStringCastNumericSwitch(BindCastInput &input, const L
|
|
119
119
|
//===--------------------------------------------------------------------===//
|
120
120
|
// string -> list casting
|
121
121
|
//===--------------------------------------------------------------------===//
|
122
|
-
bool VectorStringToList::StringToNestedTypeCastLoop(string_t *source_data, ValidityMask &source_mask,
|
123
|
-
ValidityMask &result_mask, idx_t count,
|
124
|
-
const SelectionVector *sel) {
|
122
|
+
bool VectorStringToList::StringToNestedTypeCastLoop(const string_t *source_data, ValidityMask &source_mask,
|
123
|
+
Vector &result, ValidityMask &result_mask, idx_t count,
|
124
|
+
CastParameters ¶meters, const SelectionVector *sel) {
|
125
125
|
idx_t total_list_size = 0;
|
126
126
|
for (idx_t i = 0; i < count; i++) {
|
127
127
|
idx_t idx = i;
|
@@ -183,8 +183,8 @@ static LogicalType InitVarcharStructType(const LogicalType &target) {
|
|
183
183
|
//===--------------------------------------------------------------------===//
|
184
184
|
// string -> struct casting
|
185
185
|
//===--------------------------------------------------------------------===//
|
186
|
-
bool VectorStringToStruct::StringToNestedTypeCastLoop(string_t *source_data, ValidityMask &source_mask,
|
187
|
-
ValidityMask &result_mask, idx_t count,
|
186
|
+
bool VectorStringToStruct::StringToNestedTypeCastLoop(const string_t *source_data, ValidityMask &source_mask,
|
187
|
+
Vector &result, ValidityMask &result_mask, idx_t count,
|
188
188
|
CastParameters ¶meters, const SelectionVector *sel) {
|
189
189
|
auto varchar_struct_type = InitVarcharStructType(result.GetType());
|
190
190
|
Vector varchar_vector(varchar_struct_type, count);
|
@@ -253,9 +253,9 @@ unique_ptr<FunctionLocalState> InitMapCastLocalState(CastLocalStateParameters &p
|
|
253
253
|
return std::move(result);
|
254
254
|
}
|
255
255
|
|
256
|
-
bool VectorStringToMap::StringToNestedTypeCastLoop(string_t *source_data, ValidityMask &source_mask,
|
257
|
-
ValidityMask &result_mask, idx_t count,
|
258
|
-
const SelectionVector *sel) {
|
256
|
+
bool VectorStringToMap::StringToNestedTypeCastLoop(const string_t *source_data, ValidityMask &source_mask,
|
257
|
+
Vector &result, ValidityMask &result_mask, idx_t count,
|
258
|
+
CastParameters ¶meters, const SelectionVector *sel) {
|
259
259
|
idx_t total_elements = 0;
|
260
260
|
for (idx_t i = 0; i < count; i++) {
|
261
261
|
idx_t idx = i;
|
@@ -352,7 +352,7 @@ bool StringToNestedTypeCast(Vector &source, Vector &result, idx_t count, CastPar
|
|
352
352
|
|
353
353
|
source.ToUnifiedFormat(count, unified_source);
|
354
354
|
auto source_sel = unified_source.sel;
|
355
|
-
auto source_data = (
|
355
|
+
auto source_data = UnifiedVectorFormat::GetData<string_t>(unified_source);
|
356
356
|
auto &source_mask = unified_source.validity;
|
357
357
|
auto &result_mask = FlatVector::Validity(result);
|
358
358
|
|
@@ -293,7 +293,7 @@ static bool UnionToUnionCast(Vector &source, Vector &result, idx_t count, CastPa
|
|
293
293
|
auto source_row_idx = source_tag_format.sel->get_index(row_idx);
|
294
294
|
if (source_tag_format.validity.RowIsValid(source_row_idx)) {
|
295
295
|
// map the tag
|
296
|
-
auto source_tag = ((
|
296
|
+
auto source_tag = (UnifiedVectorFormat::GetData<union_tag_t>(source_tag_format))[source_row_idx];
|
297
297
|
auto target_tag = cast_data.tag_map[source_tag];
|
298
298
|
FlatVector::GetData<union_tag_t>(result_tag_vector)[row_idx] = target_tag;
|
299
299
|
} else {
|
@@ -339,7 +339,7 @@ static bool UnionToVarcharCast(Vector &source, Vector &result, idx_t count, Cast
|
|
339
339
|
auto mapped_idx = member_vdata.sel->get_index(i);
|
340
340
|
auto member_valid = member_vdata.validity.RowIsValid(mapped_idx);
|
341
341
|
if (member_valid) {
|
342
|
-
auto member_str = ((
|
342
|
+
auto member_str = (UnifiedVectorFormat::GetData<string_t>(member_vdata))[mapped_idx];
|
343
343
|
result_data[i] = StringVector::AddString(result, member_str);
|
344
344
|
} else {
|
345
345
|
result_data[i] = StringVector::AddString(result, "NULL");
|
@@ -299,8 +299,9 @@ static bool FindValueStruct(const char *buf, idx_t len, idx_t &pos, Vector &varc
|
|
299
299
|
return false;
|
300
300
|
}
|
301
301
|
|
302
|
-
bool VectorStringToStruct::SplitStruct(string_t &input, vector<unique_ptr<Vector>> &varchar_vectors,
|
303
|
-
string_map_t<idx_t> &child_names,
|
302
|
+
bool VectorStringToStruct::SplitStruct(const string_t &input, vector<unique_ptr<Vector>> &varchar_vectors,
|
303
|
+
idx_t &row_idx, string_map_t<idx_t> &child_names,
|
304
|
+
vector<ValidityMask *> &child_masks) {
|
304
305
|
const char *buf = input.GetData();
|
305
306
|
idx_t len = input.GetSize();
|
306
307
|
idx_t pos = 0;
|
@@ -25,8 +25,8 @@ static void ListConcatFunction(DataChunk &args, ExpressionState &state, Vector &
|
|
25
25
|
UnifiedVectorFormat rhs_data;
|
26
26
|
lhs.ToUnifiedFormat(count, lhs_data);
|
27
27
|
rhs.ToUnifiedFormat(count, rhs_data);
|
28
|
-
auto lhs_entries = (
|
29
|
-
auto rhs_entries = (
|
28
|
+
auto lhs_entries = UnifiedVectorFormat::GetData<list_entry_t>(lhs_data);
|
29
|
+
auto rhs_entries = UnifiedVectorFormat::GetData<list_entry_t>(rhs_data);
|
30
30
|
|
31
31
|
auto lhs_list_size = ListVector::GetListSize(lhs);
|
32
32
|
auto rhs_list_size = ListVector::GetListSize(rhs);
|