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
@@ -70,7 +70,7 @@ struct BinaryLambdaWrapperWithNulls {
|
|
70
70
|
struct BinaryExecutor {
|
71
71
|
template <class LEFT_TYPE, class RIGHT_TYPE, class RESULT_TYPE, class OPWRAPPER, class OP, class FUNC,
|
72
72
|
bool LEFT_CONSTANT, bool RIGHT_CONSTANT>
|
73
|
-
static void ExecuteFlatLoop(LEFT_TYPE *__restrict ldata, RIGHT_TYPE *__restrict rdata,
|
73
|
+
static void ExecuteFlatLoop(const LEFT_TYPE *__restrict ldata, const RIGHT_TYPE *__restrict rdata,
|
74
74
|
RESULT_TYPE *__restrict result_data, idx_t count, ValidityMask &mask, FUNC fun) {
|
75
75
|
if (!LEFT_CONSTANT) {
|
76
76
|
ASSERT_RESTRICT(ldata, ldata + count, result_data, result_data + count);
|
@@ -184,7 +184,7 @@ struct BinaryExecutor {
|
|
184
184
|
}
|
185
185
|
|
186
186
|
template <class LEFT_TYPE, class RIGHT_TYPE, class RESULT_TYPE, class OPWRAPPER, class OP, class FUNC>
|
187
|
-
static void ExecuteGenericLoop(LEFT_TYPE *__restrict ldata, RIGHT_TYPE *__restrict rdata,
|
187
|
+
static void ExecuteGenericLoop(const LEFT_TYPE *__restrict ldata, const RIGHT_TYPE *__restrict rdata,
|
188
188
|
RESULT_TYPE *__restrict result_data, const SelectionVector *__restrict lsel,
|
189
189
|
const SelectionVector *__restrict rsel, idx_t count, ValidityMask &lvalidity,
|
190
190
|
ValidityMask &rvalidity, ValidityMask &result_validity, FUNC fun) {
|
@@ -221,8 +221,9 @@ struct BinaryExecutor {
|
|
221
221
|
result.SetVectorType(VectorType::FLAT_VECTOR);
|
222
222
|
auto result_data = FlatVector::GetData<RESULT_TYPE>(result);
|
223
223
|
ExecuteGenericLoop<LEFT_TYPE, RIGHT_TYPE, RESULT_TYPE, OPWRAPPER, OP, FUNC>(
|
224
|
-
(
|
225
|
-
rdata.validity, FlatVector::Validity(result),
|
224
|
+
UnifiedVectorFormat::GetData<LEFT_TYPE>(ldata), UnifiedVectorFormat::GetData<RIGHT_TYPE>(rdata),
|
225
|
+
result_data, ldata.sel, rdata.sel, count, ldata.validity, rdata.validity, FlatVector::Validity(result),
|
226
|
+
fun);
|
226
227
|
}
|
227
228
|
|
228
229
|
template <class LEFT_TYPE, class RIGHT_TYPE, class RESULT_TYPE, class OPWRAPPER, class OP, class FUNC>
|
@@ -300,7 +301,7 @@ public:
|
|
300
301
|
|
301
302
|
template <class LEFT_TYPE, class RIGHT_TYPE, class OP, bool LEFT_CONSTANT, bool RIGHT_CONSTANT, bool HAS_TRUE_SEL,
|
302
303
|
bool HAS_FALSE_SEL>
|
303
|
-
static inline idx_t SelectFlatLoop(LEFT_TYPE *__restrict ldata, RIGHT_TYPE *__restrict rdata,
|
304
|
+
static inline idx_t SelectFlatLoop(const LEFT_TYPE *__restrict ldata, const RIGHT_TYPE *__restrict rdata,
|
304
305
|
const SelectionVector *sel, idx_t count, ValidityMask &validity_mask,
|
305
306
|
SelectionVector *true_sel, SelectionVector *false_sel) {
|
306
307
|
idx_t true_count = 0, false_count = 0;
|
@@ -364,7 +365,7 @@ public:
|
|
364
365
|
}
|
365
366
|
|
366
367
|
template <class LEFT_TYPE, class RIGHT_TYPE, class OP, bool LEFT_CONSTANT, bool RIGHT_CONSTANT>
|
367
|
-
static inline idx_t SelectFlatLoopSwitch(LEFT_TYPE *__restrict ldata, RIGHT_TYPE *__restrict rdata,
|
368
|
+
static inline idx_t SelectFlatLoopSwitch(const LEFT_TYPE *__restrict ldata, const RIGHT_TYPE *__restrict rdata,
|
368
369
|
const SelectionVector *sel, idx_t count, ValidityMask &mask,
|
369
370
|
SelectionVector *true_sel, SelectionVector *false_sel) {
|
370
371
|
if (true_sel && false_sel) {
|
@@ -419,10 +420,10 @@ public:
|
|
419
420
|
|
420
421
|
template <class LEFT_TYPE, class RIGHT_TYPE, class OP, bool NO_NULL, bool HAS_TRUE_SEL, bool HAS_FALSE_SEL>
|
421
422
|
static inline idx_t
|
422
|
-
SelectGenericLoop(LEFT_TYPE *__restrict ldata, RIGHT_TYPE *__restrict rdata,
|
423
|
-
const SelectionVector *__restrict
|
424
|
-
|
425
|
-
SelectionVector *false_sel) {
|
423
|
+
SelectGenericLoop(const LEFT_TYPE *__restrict ldata, const RIGHT_TYPE *__restrict rdata,
|
424
|
+
const SelectionVector *__restrict lsel, const SelectionVector *__restrict rsel,
|
425
|
+
const SelectionVector *__restrict result_sel, idx_t count, ValidityMask &lvalidity,
|
426
|
+
ValidityMask &rvalidity, SelectionVector *true_sel, SelectionVector *false_sel) {
|
426
427
|
idx_t true_count = 0, false_count = 0;
|
427
428
|
for (idx_t i = 0; i < count; i++) {
|
428
429
|
auto result_idx = result_sel->get_index(i);
|
@@ -447,7 +448,7 @@ public:
|
|
447
448
|
}
|
448
449
|
template <class LEFT_TYPE, class RIGHT_TYPE, class OP, bool NO_NULL>
|
449
450
|
static inline idx_t
|
450
|
-
SelectGenericLoopSelSwitch(LEFT_TYPE *__restrict ldata, RIGHT_TYPE *__restrict rdata,
|
451
|
+
SelectGenericLoopSelSwitch(const LEFT_TYPE *__restrict ldata, const RIGHT_TYPE *__restrict rdata,
|
451
452
|
const SelectionVector *__restrict lsel, const SelectionVector *__restrict rsel,
|
452
453
|
const SelectionVector *__restrict result_sel, idx_t count, ValidityMask &lvalidity,
|
453
454
|
ValidityMask &rvalidity, SelectionVector *true_sel, SelectionVector *false_sel) {
|
@@ -466,7 +467,7 @@ public:
|
|
466
467
|
|
467
468
|
template <class LEFT_TYPE, class RIGHT_TYPE, class OP>
|
468
469
|
static inline idx_t
|
469
|
-
SelectGenericLoopSwitch(LEFT_TYPE *__restrict ldata, RIGHT_TYPE *__restrict rdata,
|
470
|
+
SelectGenericLoopSwitch(const LEFT_TYPE *__restrict ldata, const RIGHT_TYPE *__restrict rdata,
|
470
471
|
const SelectionVector *__restrict lsel, const SelectionVector *__restrict rsel,
|
471
472
|
const SelectionVector *__restrict result_sel, idx_t count, ValidityMask &lvalidity,
|
472
473
|
ValidityMask &rvalidity, SelectionVector *true_sel, SelectionVector *false_sel) {
|
@@ -487,9 +488,9 @@ public:
|
|
487
488
|
left.ToUnifiedFormat(count, ldata);
|
488
489
|
right.ToUnifiedFormat(count, rdata);
|
489
490
|
|
490
|
-
return SelectGenericLoopSwitch<LEFT_TYPE, RIGHT_TYPE, OP>(
|
491
|
-
|
492
|
-
|
491
|
+
return SelectGenericLoopSwitch<LEFT_TYPE, RIGHT_TYPE, OP>(
|
492
|
+
UnifiedVectorFormat::GetData<LEFT_TYPE>(ldata), UnifiedVectorFormat::GetData<RIGHT_TYPE>(rdata), ldata.sel,
|
493
|
+
rdata.sel, sel, count, ldata.validity, rdata.validity, true_sel, false_sel);
|
493
494
|
}
|
494
495
|
|
495
496
|
template <class LEFT_TYPE, class RIGHT_TYPE, class OP>
|
@@ -38,7 +38,7 @@ struct PrimitiveType {
|
|
38
38
|
static bool ConstructType(STRUCT_STATE &state, idx_t i, PrimitiveType<INPUT_TYPE> &result) {
|
39
39
|
auto &vdata = state.main_data;
|
40
40
|
auto idx = vdata.sel->get_index(i);
|
41
|
-
auto ptr = (
|
41
|
+
auto ptr = UnifiedVectorFormat::GetData<INPUT_TYPE>(vdata);
|
42
42
|
result.val = ptr[idx];
|
43
43
|
return true;
|
44
44
|
}
|
@@ -77,7 +77,7 @@ struct StructTypeUnary {
|
|
77
77
|
if (!a_data.validity.RowIsValid(a_idx)) {
|
78
78
|
return false;
|
79
79
|
}
|
80
|
-
auto a_ptr = (
|
80
|
+
auto a_ptr = UnifiedVectorFormat::GetData<A_TYPE>(a_data);
|
81
81
|
result.a_val = a_ptr[a_idx];
|
82
82
|
return true;
|
83
83
|
}
|
@@ -106,8 +106,8 @@ struct StructTypeBinary {
|
|
106
106
|
if (!a_data.validity.RowIsValid(a_idx) || !b_data.validity.RowIsValid(b_idx)) {
|
107
107
|
return false;
|
108
108
|
}
|
109
|
-
auto a_ptr = (
|
110
|
-
auto b_ptr = (
|
109
|
+
auto a_ptr = UnifiedVectorFormat::GetData<A_TYPE>(a_data);
|
110
|
+
auto b_ptr = UnifiedVectorFormat::GetData<B_TYPE>(b_data);
|
111
111
|
result.a_val = a_ptr[a_idx];
|
112
112
|
result.b_val = b_ptr[b_idx];
|
113
113
|
return true;
|
@@ -143,9 +143,9 @@ struct StructTypeTernary {
|
|
143
143
|
!c_data.validity.RowIsValid(c_idx)) {
|
144
144
|
return false;
|
145
145
|
}
|
146
|
-
auto a_ptr = (
|
147
|
-
auto b_ptr = (
|
148
|
-
auto c_ptr = (
|
146
|
+
auto a_ptr = UnifiedVectorFormat::GetData<A_TYPE>(a_data);
|
147
|
+
auto b_ptr = UnifiedVectorFormat::GetData<B_TYPE>(b_data);
|
148
|
+
auto c_ptr = UnifiedVectorFormat::GetData<C_TYPE>(c_data);
|
149
149
|
result.a_val = a_ptr[a_idx];
|
150
150
|
result.b_val = b_ptr[b_idx];
|
151
151
|
result.c_val = c_ptr[c_idx];
|
@@ -188,10 +188,10 @@ struct StructTypeQuaternary {
|
|
188
188
|
!c_data.validity.RowIsValid(c_idx) || !d_data.validity.RowIsValid(d_idx)) {
|
189
189
|
return false;
|
190
190
|
}
|
191
|
-
auto a_ptr = (
|
192
|
-
auto b_ptr = (
|
193
|
-
auto c_ptr = (
|
194
|
-
auto d_ptr = (
|
191
|
+
auto a_ptr = UnifiedVectorFormat::GetData<A_TYPE>(a_data);
|
192
|
+
auto b_ptr = UnifiedVectorFormat::GetData<B_TYPE>(b_data);
|
193
|
+
auto c_ptr = UnifiedVectorFormat::GetData<C_TYPE>(c_data);
|
194
|
+
auto d_ptr = UnifiedVectorFormat::GetData<D_TYPE>(d_data);
|
195
195
|
result.a_val = a_ptr[a_idx];
|
196
196
|
result.b_val = b_ptr[b_idx];
|
197
197
|
result.c_val = c_ptr[c_idx];
|
@@ -41,11 +41,11 @@ struct TernaryLambdaWrapperWithNulls {
|
|
41
41
|
struct TernaryExecutor {
|
42
42
|
private:
|
43
43
|
template <class A_TYPE, class B_TYPE, class C_TYPE, class RESULT_TYPE, class OPWRAPPER, class FUN>
|
44
|
-
static inline void ExecuteLoop(A_TYPE *__restrict adata, B_TYPE *__restrict bdata,
|
45
|
-
RESULT_TYPE *__restrict result_data, idx_t count,
|
46
|
-
const SelectionVector &
|
47
|
-
|
48
|
-
FUN fun) {
|
44
|
+
static inline void ExecuteLoop(const A_TYPE *__restrict adata, const B_TYPE *__restrict bdata,
|
45
|
+
const C_TYPE *__restrict cdata, RESULT_TYPE *__restrict result_data, idx_t count,
|
46
|
+
const SelectionVector &asel, const SelectionVector &bsel,
|
47
|
+
const SelectionVector &csel, ValidityMask &avalidity, ValidityMask &bvalidity,
|
48
|
+
ValidityMask &cvalidity, ValidityMask &result_validity, FUN fun) {
|
49
49
|
if (!avalidity.AllValid() || !bvalidity.AllValid() || !cvalidity.AllValid()) {
|
50
50
|
for (idx_t i = 0; i < count; i++) {
|
51
51
|
auto aidx = asel.get_index(i);
|
@@ -95,9 +95,10 @@ public:
|
|
95
95
|
c.ToUnifiedFormat(count, cdata);
|
96
96
|
|
97
97
|
ExecuteLoop<A_TYPE, B_TYPE, C_TYPE, RESULT_TYPE, OPWRAPPER>(
|
98
|
-
(
|
99
|
-
FlatVector::GetData<RESULT_TYPE>(result), count,
|
100
|
-
bdata.
|
98
|
+
UnifiedVectorFormat::GetData<A_TYPE>(adata), UnifiedVectorFormat::GetData<B_TYPE>(bdata),
|
99
|
+
UnifiedVectorFormat::GetData<C_TYPE>(cdata), FlatVector::GetData<RESULT_TYPE>(result), count,
|
100
|
+
*adata.sel, *bdata.sel, *cdata.sel, adata.validity, bdata.validity, cdata.validity,
|
101
|
+
FlatVector::Validity(result), fun);
|
101
102
|
}
|
102
103
|
}
|
103
104
|
|
@@ -122,11 +123,11 @@ public:
|
|
122
123
|
|
123
124
|
private:
|
124
125
|
template <class A_TYPE, class B_TYPE, class C_TYPE, class OP, bool NO_NULL, bool HAS_TRUE_SEL, bool HAS_FALSE_SEL>
|
125
|
-
static inline idx_t SelectLoop(A_TYPE *__restrict adata, B_TYPE *__restrict bdata,
|
126
|
-
const SelectionVector *result_sel, idx_t count,
|
127
|
-
const SelectionVector &
|
128
|
-
|
129
|
-
SelectionVector *false_sel) {
|
126
|
+
static inline idx_t SelectLoop(const A_TYPE *__restrict adata, const B_TYPE *__restrict bdata,
|
127
|
+
const C_TYPE *__restrict cdata, const SelectionVector *result_sel, idx_t count,
|
128
|
+
const SelectionVector &asel, const SelectionVector &bsel,
|
129
|
+
const SelectionVector &csel, ValidityMask &avalidity, ValidityMask &bvalidity,
|
130
|
+
ValidityMask &cvalidity, SelectionVector *true_sel, SelectionVector *false_sel) {
|
130
131
|
idx_t true_count = 0, false_count = 0;
|
131
132
|
for (idx_t i = 0; i < count; i++) {
|
132
133
|
auto result_idx = result_sel->get_index(i);
|
@@ -158,17 +159,20 @@ private:
|
|
158
159
|
SelectionVector *true_sel, SelectionVector *false_sel) {
|
159
160
|
if (true_sel && false_sel) {
|
160
161
|
return SelectLoop<A_TYPE, B_TYPE, C_TYPE, OP, NO_NULL, true, true>(
|
161
|
-
(
|
162
|
-
|
162
|
+
UnifiedVectorFormat::GetData<A_TYPE>(adata), UnifiedVectorFormat::GetData<B_TYPE>(bdata),
|
163
|
+
UnifiedVectorFormat::GetData<C_TYPE>(cdata), sel, count, *adata.sel, *bdata.sel, *cdata.sel,
|
164
|
+
adata.validity, bdata.validity, cdata.validity, true_sel, false_sel);
|
163
165
|
} else if (true_sel) {
|
164
166
|
return SelectLoop<A_TYPE, B_TYPE, C_TYPE, OP, NO_NULL, true, false>(
|
165
|
-
(
|
166
|
-
|
167
|
+
UnifiedVectorFormat::GetData<A_TYPE>(adata), UnifiedVectorFormat::GetData<B_TYPE>(bdata),
|
168
|
+
UnifiedVectorFormat::GetData<C_TYPE>(cdata), sel, count, *adata.sel, *bdata.sel, *cdata.sel,
|
169
|
+
adata.validity, bdata.validity, cdata.validity, true_sel, false_sel);
|
167
170
|
} else {
|
168
171
|
D_ASSERT(false_sel);
|
169
172
|
return SelectLoop<A_TYPE, B_TYPE, C_TYPE, OP, NO_NULL, false, true>(
|
170
|
-
(
|
171
|
-
|
173
|
+
UnifiedVectorFormat::GetData<A_TYPE>(adata), UnifiedVectorFormat::GetData<B_TYPE>(bdata),
|
174
|
+
UnifiedVectorFormat::GetData<C_TYPE>(cdata), sel, count, *adata.sel, *bdata.sel, *cdata.sel,
|
175
|
+
adata.validity, bdata.validity, cdata.validity, true_sel, false_sel);
|
172
176
|
}
|
173
177
|
}
|
174
178
|
|
@@ -58,7 +58,7 @@ struct UnaryStringOperator {
|
|
58
58
|
struct UnaryExecutor {
|
59
59
|
private:
|
60
60
|
template <class INPUT_TYPE, class RESULT_TYPE, class OPWRAPPER, class OP>
|
61
|
-
static inline void ExecuteLoop(INPUT_TYPE *__restrict ldata, RESULT_TYPE *__restrict result_data, idx_t count,
|
61
|
+
static inline void ExecuteLoop(const INPUT_TYPE *__restrict ldata, RESULT_TYPE *__restrict result_data, idx_t count,
|
62
62
|
const SelectionVector *__restrict sel_vector, ValidityMask &mask,
|
63
63
|
ValidityMask &result_mask, void *dataptr, bool adds_nulls) {
|
64
64
|
#ifdef DEBUG
|
@@ -95,7 +95,7 @@ private:
|
|
95
95
|
}
|
96
96
|
|
97
97
|
template <class INPUT_TYPE, class RESULT_TYPE, class OPWRAPPER, class OP>
|
98
|
-
static inline void ExecuteFlat(INPUT_TYPE *__restrict ldata, RESULT_TYPE *__restrict result_data, idx_t count,
|
98
|
+
static inline void ExecuteFlat(const INPUT_TYPE *__restrict ldata, RESULT_TYPE *__restrict result_data, idx_t count,
|
99
99
|
ValidityMask &mask, ValidityMask &result_mask, void *dataptr, bool adds_nulls) {
|
100
100
|
ASSERT_RESTRICT(ldata, ldata + count, result_data, result_data + count);
|
101
101
|
|
@@ -175,7 +175,7 @@ private:
|
|
175
175
|
|
176
176
|
result.SetVectorType(VectorType::FLAT_VECTOR);
|
177
177
|
auto result_data = FlatVector::GetData<RESULT_TYPE>(result);
|
178
|
-
auto ldata = (
|
178
|
+
auto ldata = UnifiedVectorFormat::GetData<INPUT_TYPE>(vdata);
|
179
179
|
|
180
180
|
ExecuteLoop<INPUT_TYPE, RESULT_TYPE, OPWRAPPER, OP>(ldata, result_data, count, vdata.sel, vdata.validity,
|
181
181
|
FlatVector::Validity(result), dataptr, adds_nulls);
|
@@ -31,7 +31,7 @@ struct CorrOperation {
|
|
31
31
|
}
|
32
32
|
|
33
33
|
template <class A_TYPE, class B_TYPE, class STATE, class OP>
|
34
|
-
static void Operation(STATE *state, AggregateInputData &aggr_input_data, A_TYPE *x_data, B_TYPE *y_data,
|
34
|
+
static void Operation(STATE *state, AggregateInputData &aggr_input_data, const A_TYPE *x_data, const B_TYPE *y_data,
|
35
35
|
ValidityMask &amask, ValidityMask &bmask, idx_t xidx, idx_t yidx) {
|
36
36
|
CovarOperation::Operation<A_TYPE, B_TYPE, CovarState, OP>(&state->cov_pop, aggr_input_data, x_data, y_data,
|
37
37
|
amask, bmask, xidx, yidx);
|
@@ -29,7 +29,7 @@ struct CovarOperation {
|
|
29
29
|
}
|
30
30
|
|
31
31
|
template <class A_TYPE, class B_TYPE, class STATE, class OP>
|
32
|
-
static void Operation(STATE *state, AggregateInputData &, A_TYPE *x_data, B_TYPE *y_data, ValidityMask &amask,
|
32
|
+
static void Operation(STATE *state, AggregateInputData &, const A_TYPE *x_data, const B_TYPE *y_data, ValidityMask &amask,
|
33
33
|
ValidityMask &bmask, idx_t xidx, idx_t yidx) {
|
34
34
|
// update running mean and d^2
|
35
35
|
const uint64_t n = ++(state->count);
|
@@ -30,7 +30,7 @@ struct STDDevBaseOperation {
|
|
30
30
|
}
|
31
31
|
|
32
32
|
template <class INPUT_TYPE, class STATE, class OP>
|
33
|
-
static void Operation(STATE *state, AggregateInputData &, INPUT_TYPE *input_data, ValidityMask &mask, idx_t idx) {
|
33
|
+
static void Operation(STATE *state, AggregateInputData &, const INPUT_TYPE *input_data, ValidityMask &mask, idx_t idx) {
|
34
34
|
// update running mean and d^2
|
35
35
|
state->count++;
|
36
36
|
const double input = input_data[idx];
|
@@ -33,7 +33,7 @@ struct RegrCountFunction {
|
|
33
33
|
return true;
|
34
34
|
}
|
35
35
|
template <class A_TYPE, class B_TYPE, class STATE, class OP>
|
36
|
-
static void Operation(STATE *state, AggregateInputData &, A_TYPE *x_data, B_TYPE *y_data, ValidityMask &amask,
|
36
|
+
static void Operation(STATE *state, AggregateInputData &, const A_TYPE *x_data, const B_TYPE *y_data, ValidityMask &amask,
|
37
37
|
ValidityMask &bmask, idx_t xidx, idx_t yidx) {
|
38
38
|
*state += 1;
|
39
39
|
}
|
@@ -25,7 +25,7 @@ struct RegrSlopeOperation {
|
|
25
25
|
}
|
26
26
|
|
27
27
|
template <class A_TYPE, class B_TYPE, class STATE, class OP>
|
28
|
-
static void Operation(STATE *state, AggregateInputData &aggr_input_data, A_TYPE *x_data, B_TYPE *y_data,
|
28
|
+
static void Operation(STATE *state, AggregateInputData &aggr_input_data, const A_TYPE *x_data, const B_TYPE *y_data,
|
29
29
|
ValidityMask &amask, ValidityMask &bmask, idx_t xidx, idx_t yidx) {
|
30
30
|
CovarOperation::Operation<A_TYPE, B_TYPE, CovarState, OP>(&state->cov_pop, aggr_input_data, y_data, x_data,
|
31
31
|
bmask, amask, yidx, xidx);
|
@@ -144,13 +144,13 @@ struct BaseSumOperation {
|
|
144
144
|
}
|
145
145
|
|
146
146
|
template <class INPUT_TYPE, class STATE, class OP>
|
147
|
-
static void Operation(STATE *state, AggregateInputData &, INPUT_TYPE *input, ValidityMask &mask, idx_t idx) {
|
147
|
+
static void Operation(STATE *state, AggregateInputData &, const INPUT_TYPE *input, ValidityMask &mask, idx_t idx) {
|
148
148
|
STATEOP::template AddValues<STATE>(state, 1);
|
149
149
|
ADDOP::template AddNumber<STATE, INPUT_TYPE>(*state, input[idx]);
|
150
150
|
}
|
151
151
|
|
152
152
|
template <class INPUT_TYPE, class STATE, class OP>
|
153
|
-
static void ConstantOperation(STATE *state, AggregateInputData &, INPUT_TYPE *input, ValidityMask &mask,
|
153
|
+
static void ConstantOperation(STATE *state, AggregateInputData &, const INPUT_TYPE *input, ValidityMask &mask,
|
154
154
|
idx_t count) {
|
155
155
|
STATEOP::template AddValues<STATE>(state, count);
|
156
156
|
ADDOP::template AddConstant<STATE, INPUT_TYPE>(*state, *input, count);
|
@@ -39,6 +39,18 @@ public:
|
|
39
39
|
DUCKDB_API ClientContext &GetContext();
|
40
40
|
|
41
41
|
void Verify(ExpressionExecutorState &root);
|
42
|
+
|
43
|
+
public:
|
44
|
+
template <class TARGET>
|
45
|
+
TARGET &Cast() {
|
46
|
+
D_ASSERT(dynamic_cast<TARGET *>(this));
|
47
|
+
return reinterpret_cast<TARGET &>(*this);
|
48
|
+
}
|
49
|
+
template <class TARGET>
|
50
|
+
const TARGET &Cast() const {
|
51
|
+
D_ASSERT(dynamic_cast<const TARGET *>(this));
|
52
|
+
return reinterpret_cast<const TARGET &>(*this);
|
53
|
+
}
|
42
54
|
};
|
43
55
|
|
44
56
|
struct ExecuteFunctionState : public ExpressionState {
|
@@ -48,8 +60,8 @@ struct ExecuteFunctionState : public ExpressionState {
|
|
48
60
|
unique_ptr<FunctionLocalState> local_state;
|
49
61
|
|
50
62
|
public:
|
51
|
-
static FunctionLocalState
|
52
|
-
return (
|
63
|
+
static optional_ptr<FunctionLocalState> GetFunctionState(ExpressionState &state) {
|
64
|
+
return state.Cast<ExecuteFunctionState>().local_state.get();
|
53
65
|
}
|
54
66
|
};
|
55
67
|
|
@@ -110,13 +110,13 @@ private:
|
|
110
110
|
//! Find the node with a matching key, or return nullptr if not found
|
111
111
|
Node Lookup(Node node, const ARTKey &key, idx_t depth);
|
112
112
|
//! Returns all row IDs belonging to a key greater (or equal) than the search key
|
113
|
-
bool SearchGreater(ARTIndexScanState
|
113
|
+
bool SearchGreater(ARTIndexScanState &state, ARTKey &key, bool inclusive, idx_t max_count,
|
114
114
|
vector<row_t> &result_ids);
|
115
115
|
//! Returns all row IDs belonging to a key less (or equal) than the upper_bound
|
116
|
-
bool SearchLess(ARTIndexScanState
|
116
|
+
bool SearchLess(ARTIndexScanState &state, ARTKey &upper_bound, bool inclusive, idx_t max_count,
|
117
117
|
vector<row_t> &result_ids);
|
118
118
|
//! Returns all row IDs belonging to a key within the range of lower_bound and upper_bound
|
119
|
-
bool SearchCloseRange(ARTIndexScanState
|
119
|
+
bool SearchCloseRange(ARTIndexScanState &state, ARTKey &lower_bound, ARTKey &upper_bound, bool left_inclusive,
|
120
120
|
bool right_inclusive, idx_t max_count, vector<row_t> &result_ids);
|
121
121
|
|
122
122
|
//! Initializes a merge operation by returning a set containing the buffer count of each fixed-size allocator
|
package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_result_collector.hpp
CHANGED
@@ -16,6 +16,9 @@ class PreparedStatementData;
|
|
16
16
|
|
17
17
|
//! PhysicalResultCollector is an abstract class that is used to generate the final result of a query
|
18
18
|
class PhysicalResultCollector : public PhysicalOperator {
|
19
|
+
public:
|
20
|
+
static constexpr const PhysicalOperatorType TYPE = PhysicalOperatorType::RESULT_COLLECTOR;
|
21
|
+
|
19
22
|
public:
|
20
23
|
explicit PhysicalResultCollector(PreparedStatementData &data);
|
21
24
|
|
@@ -30,6 +30,9 @@ class MetaPipeline;
|
|
30
30
|
//! PhysicalOperator is the base class of the physical operators present in the
|
31
31
|
//! execution plan
|
32
32
|
class PhysicalOperator {
|
33
|
+
public:
|
34
|
+
static constexpr const PhysicalOperatorType TYPE = PhysicalOperatorType::INVALID;
|
35
|
+
|
33
36
|
public:
|
34
37
|
PhysicalOperator(PhysicalOperatorType type, vector<LogicalType> types, idx_t estimated_cardinality)
|
35
38
|
: type(type), types(std::move(types)), estimated_cardinality(estimated_cardinality) {
|
@@ -184,7 +187,7 @@ public:
|
|
184
187
|
if (TARGET::TYPE != PhysicalOperatorType::INVALID && type != TARGET::TYPE) {
|
185
188
|
throw InternalException("Failed to cast physical operator to type - physical operator type mismatch");
|
186
189
|
}
|
187
|
-
return
|
190
|
+
return reinterpret_cast<TARGET &>(*this);
|
188
191
|
}
|
189
192
|
|
190
193
|
template <class TARGET>
|
@@ -192,7 +195,7 @@ public:
|
|
192
195
|
if (TARGET::TYPE != PhysicalOperatorType::INVALID && type != TARGET::TYPE) {
|
193
196
|
throw InternalException("Failed to cast physical operator to type - physical operator type mismatch");
|
194
197
|
}
|
195
|
-
return
|
198
|
+
return reinterpret_cast<const TARGET &>(*this);
|
196
199
|
}
|
197
200
|
};
|
198
201
|
|
@@ -48,12 +48,12 @@ public:
|
|
48
48
|
template <class TARGET>
|
49
49
|
TARGET &Cast() {
|
50
50
|
D_ASSERT(dynamic_cast<TARGET *>(this));
|
51
|
-
return
|
51
|
+
return reinterpret_cast<TARGET &>(*this);
|
52
52
|
}
|
53
53
|
template <class TARGET>
|
54
54
|
const TARGET &Cast() const {
|
55
55
|
D_ASSERT(dynamic_cast<const TARGET *>(this));
|
56
|
-
return
|
56
|
+
return reinterpret_cast<const TARGET &>(*this);
|
57
57
|
}
|
58
58
|
};
|
59
59
|
|
@@ -65,12 +65,12 @@ public:
|
|
65
65
|
template <class TARGET>
|
66
66
|
TARGET &Cast() {
|
67
67
|
D_ASSERT(dynamic_cast<TARGET *>(this));
|
68
|
-
return
|
68
|
+
return reinterpret_cast<TARGET &>(*this);
|
69
69
|
}
|
70
70
|
template <class TARGET>
|
71
71
|
const TARGET &Cast() const {
|
72
72
|
D_ASSERT(dynamic_cast<const TARGET *>(this));
|
73
|
-
return
|
73
|
+
return reinterpret_cast<const TARGET &>(*this);
|
74
74
|
}
|
75
75
|
};
|
76
76
|
|
@@ -86,12 +86,12 @@ public:
|
|
86
86
|
template <class TARGET>
|
87
87
|
TARGET &Cast() {
|
88
88
|
D_ASSERT(dynamic_cast<TARGET *>(this));
|
89
|
-
return
|
89
|
+
return reinterpret_cast<TARGET &>(*this);
|
90
90
|
}
|
91
91
|
template <class TARGET>
|
92
92
|
const TARGET &Cast() const {
|
93
93
|
D_ASSERT(dynamic_cast<const TARGET *>(this));
|
94
|
-
return
|
94
|
+
return reinterpret_cast<const TARGET &>(*this);
|
95
95
|
}
|
96
96
|
};
|
97
97
|
|
@@ -106,12 +106,12 @@ public:
|
|
106
106
|
template <class TARGET>
|
107
107
|
TARGET &Cast() {
|
108
108
|
D_ASSERT(dynamic_cast<TARGET *>(this));
|
109
|
-
return
|
109
|
+
return reinterpret_cast<TARGET &>(*this);
|
110
110
|
}
|
111
111
|
template <class TARGET>
|
112
112
|
const TARGET &Cast() const {
|
113
113
|
D_ASSERT(dynamic_cast<const TARGET *>(this));
|
114
|
-
return
|
114
|
+
return reinterpret_cast<const TARGET &>(*this);
|
115
115
|
}
|
116
116
|
};
|
117
117
|
|
@@ -127,12 +127,12 @@ public:
|
|
127
127
|
template <class TARGET>
|
128
128
|
TARGET &Cast() {
|
129
129
|
D_ASSERT(dynamic_cast<TARGET *>(this));
|
130
|
-
return
|
130
|
+
return reinterpret_cast<TARGET &>(*this);
|
131
131
|
}
|
132
132
|
template <class TARGET>
|
133
133
|
const TARGET &Cast() const {
|
134
134
|
D_ASSERT(dynamic_cast<const TARGET *>(this));
|
135
|
-
return
|
135
|
+
return reinterpret_cast<const TARGET &>(*this);
|
136
136
|
}
|
137
137
|
};
|
138
138
|
|
@@ -144,12 +144,12 @@ public:
|
|
144
144
|
template <class TARGET>
|
145
145
|
TARGET &Cast() {
|
146
146
|
D_ASSERT(dynamic_cast<TARGET *>(this));
|
147
|
-
return
|
147
|
+
return reinterpret_cast<TARGET &>(*this);
|
148
148
|
}
|
149
149
|
template <class TARGET>
|
150
150
|
const TARGET &Cast() const {
|
151
151
|
D_ASSERT(dynamic_cast<const TARGET *>(this));
|
152
|
-
return
|
152
|
+
return reinterpret_cast<const TARGET &>(*this);
|
153
153
|
}
|
154
154
|
};
|
155
155
|
|
@@ -22,6 +22,17 @@ struct FunctionLocalState;
|
|
22
22
|
//! Extra data that can be attached to a bind function of a cast, and is available during binding
|
23
23
|
struct BindCastInfo {
|
24
24
|
DUCKDB_API virtual ~BindCastInfo();
|
25
|
+
|
26
|
+
template <class TARGET>
|
27
|
+
TARGET &Cast() {
|
28
|
+
D_ASSERT(dynamic_cast<TARGET *>(this));
|
29
|
+
return reinterpret_cast<TARGET &>(*this);
|
30
|
+
}
|
31
|
+
template <class TARGET>
|
32
|
+
const TARGET &Cast() const {
|
33
|
+
D_ASSERT(dynamic_cast<const TARGET *>(this));
|
34
|
+
return reinterpret_cast<const TARGET &>(*this);
|
35
|
+
}
|
25
36
|
};
|
26
37
|
|
27
38
|
//! Extra data that can be returned by the bind of a cast, and is available during execution of a cast
|
@@ -33,12 +44,12 @@ struct BoundCastData {
|
|
33
44
|
template <class TARGET>
|
34
45
|
TARGET &Cast() {
|
35
46
|
D_ASSERT(dynamic_cast<TARGET *>(this));
|
36
|
-
return
|
47
|
+
return reinterpret_cast<TARGET &>(*this);
|
37
48
|
}
|
38
49
|
template <class TARGET>
|
39
50
|
const TARGET &Cast() const {
|
40
51
|
D_ASSERT(dynamic_cast<const TARGET *>(this));
|
41
|
-
return
|
52
|
+
return reinterpret_cast<const TARGET &>(*this);
|
42
53
|
}
|
43
54
|
};
|
44
55
|
|
@@ -201,15 +201,15 @@ struct VectorCastHelpers {
|
|
201
201
|
struct VectorStringToList {
|
202
202
|
static idx_t CountPartsList(const string_t &input);
|
203
203
|
static bool SplitStringList(const string_t &input, string_t *child_data, idx_t &child_start, Vector &child);
|
204
|
-
static bool StringToNestedTypeCastLoop(string_t *source_data, ValidityMask &source_mask, Vector &result,
|
204
|
+
static bool StringToNestedTypeCastLoop(const string_t *source_data, ValidityMask &source_mask, Vector &result,
|
205
205
|
ValidityMask &result_mask, idx_t count, CastParameters ¶meters,
|
206
206
|
const SelectionVector *sel);
|
207
207
|
};
|
208
208
|
|
209
209
|
struct VectorStringToStruct {
|
210
|
-
static bool SplitStruct(string_t &input, vector<unique_ptr<Vector>> &varchar_vectors, idx_t &row_idx,
|
210
|
+
static bool SplitStruct(const string_t &input, vector<unique_ptr<Vector>> &varchar_vectors, idx_t &row_idx,
|
211
211
|
string_map_t<idx_t> &child_names, vector<ValidityMask *> &child_masks);
|
212
|
-
static bool StringToNestedTypeCastLoop(string_t *source_data, ValidityMask &source_mask, Vector &result,
|
212
|
+
static bool StringToNestedTypeCastLoop(const string_t *source_data, ValidityMask &source_mask, Vector &result,
|
213
213
|
ValidityMask &result_mask, idx_t count, CastParameters ¶meters,
|
214
214
|
const SelectionVector *sel);
|
215
215
|
};
|
@@ -218,7 +218,7 @@ struct VectorStringToMap {
|
|
218
218
|
static idx_t CountPartsMap(const string_t &input);
|
219
219
|
static bool SplitStringMap(const string_t &input, string_t *child_key_data, string_t *child_val_data,
|
220
220
|
idx_t &child_start, Vector &varchar_key, Vector &varchar_val);
|
221
|
-
static bool StringToNestedTypeCastLoop(string_t *source_data, ValidityMask &source_mask, Vector &result,
|
221
|
+
static bool StringToNestedTypeCastLoop(const string_t *source_data, ValidityMask &source_mask, Vector &result,
|
222
222
|
ValidityMask &result_mask, idx_t count, CastParameters ¶meters,
|
223
223
|
const SelectionVector *sel);
|
224
224
|
};
|
@@ -29,16 +29,49 @@ struct SegmentScanState;
|
|
29
29
|
struct AnalyzeState {
|
30
30
|
virtual ~AnalyzeState() {
|
31
31
|
}
|
32
|
+
|
33
|
+
template <class TARGET>
|
34
|
+
TARGET &Cast() {
|
35
|
+
D_ASSERT(dynamic_cast<TARGET *>(this));
|
36
|
+
return reinterpret_cast<TARGET &>(*this);
|
37
|
+
}
|
38
|
+
template <class TARGET>
|
39
|
+
const TARGET &Cast() const {
|
40
|
+
D_ASSERT(dynamic_cast<const TARGET *>(this));
|
41
|
+
return reinterpret_cast<const TARGET &>(*this);
|
42
|
+
}
|
32
43
|
};
|
33
44
|
|
34
45
|
struct CompressionState {
|
35
46
|
virtual ~CompressionState() {
|
36
47
|
}
|
48
|
+
|
49
|
+
template <class TARGET>
|
50
|
+
TARGET &Cast() {
|
51
|
+
D_ASSERT(dynamic_cast<TARGET *>(this));
|
52
|
+
return reinterpret_cast<TARGET &>(*this);
|
53
|
+
}
|
54
|
+
template <class TARGET>
|
55
|
+
const TARGET &Cast() const {
|
56
|
+
D_ASSERT(dynamic_cast<const TARGET *>(this));
|
57
|
+
return reinterpret_cast<const TARGET &>(*this);
|
58
|
+
}
|
37
59
|
};
|
38
60
|
|
39
61
|
struct CompressedSegmentState {
|
40
62
|
virtual ~CompressedSegmentState() {
|
41
63
|
}
|
64
|
+
|
65
|
+
template <class TARGET>
|
66
|
+
TARGET &Cast() {
|
67
|
+
D_ASSERT(dynamic_cast<TARGET *>(this));
|
68
|
+
return reinterpret_cast<TARGET &>(*this);
|
69
|
+
}
|
70
|
+
template <class TARGET>
|
71
|
+
const TARGET &Cast() const {
|
72
|
+
D_ASSERT(dynamic_cast<const TARGET *>(this));
|
73
|
+
return reinterpret_cast<const TARGET &>(*this);
|
74
|
+
}
|
42
75
|
};
|
43
76
|
|
44
77
|
struct CompressionAppendState {
|
@@ -48,6 +81,17 @@ struct CompressionAppendState {
|
|
48
81
|
}
|
49
82
|
|
50
83
|
BufferHandle handle;
|
84
|
+
|
85
|
+
template <class TARGET>
|
86
|
+
TARGET &Cast() {
|
87
|
+
D_ASSERT(dynamic_cast<TARGET *>(this));
|
88
|
+
return reinterpret_cast<TARGET &>(*this);
|
89
|
+
}
|
90
|
+
template <class TARGET>
|
91
|
+
const TARGET &Cast() const {
|
92
|
+
D_ASSERT(dynamic_cast<const TARGET *>(this));
|
93
|
+
return reinterpret_cast<const TARGET &>(*this);
|
94
|
+
}
|
51
95
|
};
|
52
96
|
|
53
97
|
//===--------------------------------------------------------------------===//
|