duckdb 0.8.1-dev26.0 → 0.8.1-dev287.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/binding.gyp +8 -8
- package/package.json +1 -1
- package/src/duckdb/extension/icu/icu-datepart.cpp +1 -1
- package/src/duckdb/extension/icu/icu-makedate.cpp +5 -4
- package/src/duckdb/extension/json/buffered_json_reader.cpp +23 -14
- package/src/duckdb/extension/json/include/buffered_json_reader.hpp +6 -6
- package/src/duckdb/extension/json/include/json_common.hpp +13 -3
- package/src/duckdb/extension/json/include/json_executors.hpp +1 -1
- package/src/duckdb/extension/json/include/json_scan.hpp +3 -1
- package/src/duckdb/extension/json/json_functions/json_create.cpp +16 -16
- package/src/duckdb/extension/json/json_functions/json_merge_patch.cpp +3 -3
- package/src/duckdb/extension/json/json_functions/json_serialize_sql.cpp +2 -2
- package/src/duckdb/extension/json/json_functions/json_structure.cpp +5 -3
- package/src/duckdb/extension/json/json_functions/json_transform.cpp +12 -12
- package/src/duckdb/extension/json/json_functions/read_json.cpp +2 -1
- package/src/duckdb/extension/json/json_functions.cpp +6 -3
- package/src/duckdb/extension/json/json_scan.cpp +40 -25
- package/src/duckdb/extension/parquet/column_reader.cpp +57 -52
- package/src/duckdb/extension/parquet/column_writer.cpp +57 -45
- package/src/duckdb/extension/parquet/include/cast_column_reader.hpp +1 -1
- package/src/duckdb/extension/parquet/include/column_reader.hpp +5 -4
- package/src/duckdb/extension/parquet/include/column_writer.hpp +24 -0
- package/src/duckdb/extension/parquet/include/decode_utils.hpp +6 -0
- package/src/duckdb/extension/parquet/include/list_column_reader.hpp +1 -1
- package/src/duckdb/extension/parquet/include/parquet_dbp_decoder.hpp +4 -4
- package/src/duckdb/extension/parquet/include/parquet_rle_bp_decoder.hpp +4 -5
- package/src/duckdb/extension/parquet/include/resizable_buffer.hpp +4 -4
- package/src/duckdb/extension/parquet/include/row_number_column_reader.hpp +1 -1
- package/src/duckdb/extension/parquet/include/struct_column_reader.hpp +1 -1
- package/src/duckdb/extension/parquet/parquet-extension.cpp +1 -1
- package/src/duckdb/extension/parquet/parquet_metadata.cpp +1 -1
- package/src/duckdb/extension/parquet/parquet_reader.cpp +18 -18
- package/src/duckdb/extension/parquet/parquet_statistics.cpp +23 -26
- package/src/duckdb/extension/parquet/parquet_timestamp.cpp +2 -2
- package/src/duckdb/extension/parquet/parquet_writer.cpp +3 -3
- package/src/duckdb/extension/parquet/zstd_file_system.cpp +3 -3
- package/src/duckdb/src/catalog/catalog.cpp +5 -17
- package/src/duckdb/src/catalog/catalog_entry/duck_table_entry.cpp +113 -0
- package/src/duckdb/src/catalog/catalog_entry/table_catalog_entry.cpp +7 -0
- package/src/duckdb/src/catalog/catalog_entry.cpp +4 -4
- package/src/duckdb/src/catalog/catalog_search_path.cpp +49 -12
- package/src/duckdb/src/catalog/catalog_set.cpp +1 -1
- package/src/duckdb/src/catalog/default/default_types.cpp +9 -84
- package/src/duckdb/src/catalog/dependency_manager.cpp +2 -2
- package/src/duckdb/src/catalog/duck_catalog.cpp +1 -0
- package/src/duckdb/src/common/adbc/adbc.cpp +301 -106
- package/src/duckdb/src/common/adbc/driver_manager.cpp +10 -22
- 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/exception.cpp +4 -1
- package/src/duckdb/src/common/exception_format_value.cpp +19 -14
- 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/multi_file_reader.cpp +3 -0
- 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/row_data_collection_scanner.cpp +5 -4
- 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 +61 -24
- package/src/duckdb/src/common/types/string_heap.cpp +1 -1
- package/src/duckdb/src/common/types/value.cpp +3 -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/algebraic/avg.cpp +30 -33
- package/src/duckdb/src/core_functions/aggregate/algebraic/covar.cpp +0 -4
- package/src/duckdb/src/core_functions/aggregate/distributive/approx_count.cpp +32 -36
- package/src/duckdb/src/core_functions/aggregate/distributive/arg_min_max.cpp +53 -66
- package/src/duckdb/src/core_functions/aggregate/distributive/bitagg.cpp +48 -48
- package/src/duckdb/src/core_functions/aggregate/distributive/bitstring_agg.cpp +44 -44
- package/src/duckdb/src/core_functions/aggregate/distributive/bool.cpp +32 -32
- package/src/duckdb/src/core_functions/aggregate/distributive/entropy.cpp +34 -34
- package/src/duckdb/src/core_functions/aggregate/distributive/kurtosis.cpp +30 -31
- package/src/duckdb/src/core_functions/aggregate/distributive/minmax.cpp +91 -103
- package/src/duckdb/src/core_functions/aggregate/distributive/product.cpp +17 -17
- package/src/duckdb/src/core_functions/aggregate/distributive/skew.cpp +25 -27
- package/src/duckdb/src/core_functions/aggregate/distributive/string_agg.cpp +36 -37
- package/src/duckdb/src/core_functions/aggregate/distributive/sum.cpp +22 -22
- package/src/duckdb/src/core_functions/aggregate/holistic/approximate_quantile.cpp +48 -84
- package/src/duckdb/src/core_functions/aggregate/holistic/mode.cpp +49 -51
- package/src/duckdb/src/core_functions/aggregate/holistic/quantile.cpp +97 -121
- package/src/duckdb/src/core_functions/aggregate/holistic/reservoir_quantile.cpp +62 -99
- package/src/duckdb/src/core_functions/aggregate/nested/histogram.cpp +24 -26
- package/src/duckdb/src/core_functions/aggregate/nested/list.cpp +22 -23
- package/src/duckdb/src/core_functions/aggregate/regression/regr_avg.cpp +16 -18
- package/src/duckdb/src/core_functions/aggregate/regression/regr_intercept.cpp +22 -25
- package/src/duckdb/src/core_functions/aggregate/regression/regr_r2.cpp +19 -24
- package/src/duckdb/src/core_functions/aggregate/regression/regr_sxx_syy.cpp +18 -23
- package/src/duckdb/src/core_functions/aggregate/regression/regr_sxy.cpp +14 -18
- package/src/duckdb/src/core_functions/function_list.cpp +1 -0
- 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/generic/system_functions.cpp +14 -0
- 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 +4 -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/aggregate/physical_window.cpp +25 -9
- package/src/duckdb/src/execution/operator/filter/physical_filter.cpp +1 -1
- package/src/duckdb/src/execution/operator/helper/physical_reset.cpp +5 -2
- package/src/duckdb/src/execution/operator/helper/physical_set.cpp +5 -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 +158 -20
- package/src/duckdb/src/function/aggregate/distributive/first.cpp +66 -74
- package/src/duckdb/src/function/aggregate/sorted_aggregate_function.cpp +13 -13
- package/src/duckdb/src/function/cast/cast_function_set.cpp +1 -1
- package/src/duckdb/src/function/cast/decimal_cast.cpp +1 -1
- package/src/duckdb/src/function/cast/enum_casts.cpp +2 -2
- package/src/duckdb/src/function/cast/list_casts.cpp +2 -4
- 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/pragma/pragma_queries.cpp +33 -23
- 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/regexp_util.cpp +6 -2
- 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 +6 -6
- 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 +15 -20
- package/src/duckdb/src/function/table/repeat.cpp +2 -2
- package/src/duckdb/src/function/table/repeat_row.cpp +10 -3
- package/src/duckdb/src/function/table/system/duckdb_functions.cpp +1 -1
- package/src/duckdb/src/function/table/system/test_vector_types.cpp +82 -26
- 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 -5
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/duck_table_entry.hpp +2 -0
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/table_catalog_entry.hpp +6 -0
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry.hpp +2 -2
- package/src/duckdb/src/include/duckdb/catalog/catalog_search_path.hpp +8 -2
- package/src/duckdb/src/include/duckdb/catalog/default/builtin_types/types.hpp +97 -0
- package/src/duckdb/src/include/duckdb/common/adbc/adbc.hpp +5 -0
- package/src/duckdb/src/include/duckdb/common/allocator.hpp +15 -4
- package/src/duckdb/src/include/duckdb/common/arrow/arrow_buffer.hpp +7 -2
- package/src/duckdb/src/include/duckdb/common/crypto/md5.hpp +2 -2
- package/src/duckdb/src/include/duckdb/common/exception.hpp +5 -2
- package/src/duckdb/src/include/duckdb/common/field_writer.hpp +3 -3
- package/src/duckdb/src/include/duckdb/common/file_system.hpp +11 -0
- package/src/duckdb/src/include/duckdb/common/fsst.hpp +2 -3
- package/src/duckdb/src/include/duckdb/common/radix.hpp +3 -3
- package/src/duckdb/src/include/duckdb/common/serializer/binary_deserializer.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/serializer/binary_serializer.hpp +4 -1
- package/src/duckdb/src/include/duckdb/common/serializer.hpp +4 -4
- package/src/duckdb/src/include/duckdb/common/typedefs.hpp +30 -0
- package/src/duckdb/src/include/duckdb/common/types/column/partitioned_column_data.hpp +12 -0
- package/src/duckdb/src/include/duckdb/common/types/hyperloglog.hpp +6 -2
- package/src/duckdb/src/include/duckdb/common/types/null_value.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/types/row/partitioned_tuple_data.hpp +12 -0
- package/src/duckdb/src/include/duckdb/common/types/string_type.hpp +10 -10
- package/src/duckdb/src/include/duckdb/common/types/value.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/types/vector.hpp +9 -0
- package/src/duckdb/src/include/duckdb/common/types/vector_buffer.hpp +18 -6
- package/src/duckdb/src/include/duckdb/common/vector_operations/aggregate_executor.hpp +112 -76
- package/src/duckdb/src/include/duckdb/common/vector_operations/binary_executor.hpp +16 -15
- package/src/duckdb/src/include/duckdb/common/vector_operations/generic_executor.hpp +11 -11
- package/src/duckdb/src/include/duckdb/common/vector_operations/ternary_executor.hpp +23 -19
- package/src/duckdb/src/include/duckdb/common/vector_operations/unary_executor.hpp +3 -3
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/algebraic/corr.hpp +20 -24
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/algebraic/covar.hpp +36 -39
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/algebraic/stddev.hpp +57 -53
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/regression/regr_count.hpp +8 -9
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/regression/regr_slope.hpp +16 -18
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/sum_helpers.hpp +7 -8
- package/src/duckdb/src/include/duckdb/core_functions/scalar/generic_functions.hpp +9 -0
- package/src/duckdb/src/include/duckdb/core_functions/scalar/map_functions.hpp +2 -6
- package/src/duckdb/src/include/duckdb/core_functions/scalar/string_functions.hpp +16 -36
- package/src/duckdb/src/include/duckdb/execution/expression_executor_state.hpp +14 -2
- package/src/duckdb/src/include/duckdb/execution/index/art/art.hpp +3 -3
- package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_result_collector.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/operator/persistent/csv_buffer.hpp +1 -1
- package/src/duckdb/src/include/duckdb/execution/physical_operator.hpp +5 -2
- package/src/duckdb/src/include/duckdb/execution/physical_operator_states.hpp +12 -12
- package/src/duckdb/src/include/duckdb/function/aggregate_function.hpp +8 -29
- package/src/duckdb/src/include/duckdb/function/aggregate_state.hpp +95 -0
- package/src/duckdb/src/include/duckdb/function/cast/default_casts.hpp +13 -2
- package/src/duckdb/src/include/duckdb/function/cast/vector_cast_helpers.hpp +4 -4
- package/src/duckdb/src/include/duckdb/function/compression_function.hpp +44 -0
- package/src/duckdb/src/include/duckdb/function/copy_function.hpp +6 -6
- package/src/duckdb/src/include/duckdb/function/function.hpp +3 -3
- package/src/duckdb/src/include/duckdb/function/function_serialization.hpp +3 -1
- 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 +8 -7
- package/src/duckdb/src/include/duckdb/main/capi/cast/utils.hpp +1 -1
- package/src/duckdb/src/include/duckdb/main/config.hpp +2 -0
- 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/settings.hpp +9 -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/parser.hpp +2 -0
- 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 +2 -2
- 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 +2 -2
- 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/expression_binder.hpp +1 -1
- 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 +7 -2
- package/src/duckdb/src/include/duckdb/planner/operator/logical_copy_to_file.hpp +6 -2
- package/src/duckdb/src/include/duckdb/planner/operator/logical_execute.hpp +4 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_explain.hpp +5 -1
- package/src/duckdb/src/include/duckdb/planner/operator/logical_get.hpp +5 -1
- package/src/duckdb/src/include/duckdb/planner/operator/logical_pivot.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_pragma.hpp +6 -2
- package/src/duckdb/src/include/duckdb/planner/operator/logical_prepare.hpp +4 -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 +3 -6
- 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/config.cpp +1 -0
- 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/main/settings/settings.cpp +22 -6
- package/src/duckdb/src/optimizer/deliminator.cpp +12 -12
- package/src/duckdb/src/optimizer/expression_heuristics.cpp +1 -0
- package/src/duckdb/src/optimizer/filter_combiner.cpp +3 -3
- package/src/duckdb/src/optimizer/join_order/cardinality_estimator.cpp +10 -10
- package/src/duckdb/src/optimizer/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/column_definition.cpp +5 -8
- 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 +4 -4
- package/src/duckdb/src/parser/query_node/select_node.cpp +6 -13
- package/src/duckdb/src/parser/query_node.cpp +7 -6
- package/src/duckdb/src/parser/result_modifier.cpp +25 -18
- package/src/duckdb/src/parser/statement/select_statement.cpp +3 -3
- package/src/duckdb/src/parser/tableref/basetableref.cpp +4 -4
- package/src/duckdb/src/parser/tableref/emptytableref.cpp +1 -1
- package/src/duckdb/src/parser/tableref/expressionlistref.cpp +5 -5
- package/src/duckdb/src/parser/tableref/joinref.cpp +6 -6
- package/src/duckdb/src/parser/tableref/pivotref.cpp +10 -15
- package/src/duckdb/src/parser/tableref/subqueryref.cpp +3 -3
- package/src/duckdb/src/parser/tableref/table_function.cpp +3 -3
- package/src/duckdb/src/parser/tableref.cpp +12 -3
- package/src/duckdb/src/parser/transform/expression/transform_array_access.cpp +7 -7
- package/src/duckdb/src/parser/transform/expression/transform_bool_expr.cpp +4 -4
- package/src/duckdb/src/parser/transform/expression/transform_boolean_test.cpp +4 -4
- package/src/duckdb/src/parser/transform/expression/transform_case.cpp +8 -10
- package/src/duckdb/src/parser/transform/expression/transform_cast.cpp +7 -9
- package/src/duckdb/src/parser/transform/expression/transform_coalesce.cpp +3 -5
- package/src/duckdb/src/parser/transform/expression/transform_columnref.cpp +22 -22
- package/src/duckdb/src/parser/transform/expression/transform_constant.cpp +2 -2
- package/src/duckdb/src/parser/transform/expression/transform_expression.cpp +42 -44
- package/src/duckdb/src/parser/transform/expression/transform_function.cpp +70 -75
- package/src/duckdb/src/parser/transform/expression/transform_grouping_function.cpp +4 -4
- package/src/duckdb/src/parser/transform/expression/transform_interval.cpp +7 -7
- package/src/duckdb/src/parser/transform/expression/transform_is_null.cpp +4 -5
- package/src/duckdb/src/parser/transform/expression/transform_lambda.cpp +5 -6
- package/src/duckdb/src/parser/transform/expression/transform_operator.cpp +28 -29
- package/src/duckdb/src/parser/transform/expression/transform_param_ref.cpp +13 -14
- package/src/duckdb/src/parser/transform/expression/transform_positional_reference.cpp +4 -4
- package/src/duckdb/src/parser/transform/expression/transform_subquery.cpp +9 -10
- package/src/duckdb/src/parser/transform/helpers/transform_cte.cpp +28 -32
- package/src/duckdb/src/parser/transform/helpers/transform_groupby.cpp +18 -18
- package/src/duckdb/src/parser/transform/helpers/transform_sample.cpp +3 -3
- package/src/duckdb/src/parser/transform/helpers/transform_typename.cpp +27 -26
- package/src/duckdb/src/parser/transform/statement/transform_alter_sequence.cpp +11 -14
- package/src/duckdb/src/parser/transform/statement/transform_alter_table.cpp +14 -16
- package/src/duckdb/src/parser/transform/statement/transform_attach.cpp +8 -9
- package/src/duckdb/src/parser/transform/statement/transform_call.cpp +2 -5
- package/src/duckdb/src/parser/transform/statement/transform_checkpoint.cpp +4 -6
- package/src/duckdb/src/parser/transform/statement/transform_copy.cpp +22 -23
- package/src/duckdb/src/parser/transform/statement/transform_create_database.cpp +3 -4
- package/src/duckdb/src/parser/transform/statement/transform_create_function.cpp +14 -18
- package/src/duckdb/src/parser/transform/statement/transform_create_index.cpp +13 -15
- package/src/duckdb/src/parser/transform/statement/transform_create_schema.cpp +8 -10
- package/src/duckdb/src/parser/transform/statement/transform_create_sequence.cpp +8 -10
- package/src/duckdb/src/parser/transform/statement/transform_create_table.cpp +26 -28
- package/src/duckdb/src/parser/transform/statement/transform_create_table_as.cpp +8 -10
- package/src/duckdb/src/parser/transform/statement/transform_create_type.cpp +12 -15
- package/src/duckdb/src/parser/transform/statement/transform_create_view.cpp +13 -18
- package/src/duckdb/src/parser/transform/statement/transform_delete.cpp +11 -13
- package/src/duckdb/src/parser/transform/statement/transform_detach.cpp +3 -4
- package/src/duckdb/src/parser/transform/statement/transform_drop.cpp +20 -22
- package/src/duckdb/src/parser/transform/statement/transform_explain.cpp +5 -7
- package/src/duckdb/src/parser/transform/statement/transform_export.cpp +5 -6
- package/src/duckdb/src/parser/transform/statement/transform_import.cpp +2 -3
- package/src/duckdb/src/parser/transform/statement/transform_insert.cpp +21 -24
- package/src/duckdb/src/parser/transform/statement/transform_load.cpp +4 -5
- package/src/duckdb/src/parser/transform/statement/transform_pivot_stmt.cpp +7 -7
- package/src/duckdb/src/parser/transform/statement/transform_pragma.cpp +7 -9
- package/src/duckdb/src/parser/transform/statement/transform_prepare.cpp +11 -19
- package/src/duckdb/src/parser/transform/statement/transform_rename.cpp +12 -14
- package/src/duckdb/src/parser/transform/statement/transform_select.cpp +12 -9
- package/src/duckdb/src/parser/transform/statement/transform_select_node.cpp +34 -34
- package/src/duckdb/src/parser/transform/statement/transform_set.cpp +18 -19
- package/src/duckdb/src/parser/transform/statement/transform_show.cpp +5 -7
- package/src/duckdb/src/parser/transform/statement/transform_show_select.cpp +4 -5
- package/src/duckdb/src/parser/transform/statement/transform_transaction.cpp +3 -5
- package/src/duckdb/src/parser/transform/statement/transform_update.cpp +10 -13
- package/src/duckdb/src/parser/transform/statement/transform_upsert.cpp +4 -4
- package/src/duckdb/src/parser/transform/statement/transform_use.cpp +2 -3
- package/src/duckdb/src/parser/transform/statement/transform_vacuum.cpp +6 -10
- package/src/duckdb/src/parser/transform/tableref/transform_base_tableref.cpp +18 -18
- package/src/duckdb/src/parser/transform/tableref/transform_from.cpp +5 -5
- package/src/duckdb/src/parser/transform/tableref/transform_join.cpp +11 -11
- package/src/duckdb/src/parser/transform/tableref/transform_pivot.cpp +30 -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 +9 -10
- 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_positional_reference_expression.cpp +8 -3
- 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_create_table.cpp +18 -1
- package/src/duckdb/src/planner/binder/statement/bind_insert.cpp +2 -2
- package/src/duckdb/src/planner/binder/statement/bind_update.cpp +2 -114
- package/src/duckdb/src/planner/binder/tableref/bind_pivot.cpp +4 -2
- package/src/duckdb/src/planner/binder/tableref/bind_table_function.cpp +17 -7
- package/src/duckdb/src/planner/binder.cpp +1 -1
- package/src/duckdb/src/planner/bound_result_modifier.cpp +16 -11
- package/src/duckdb/src/planner/expression/bound_aggregate_expression.cpp +5 -5
- package/src/duckdb/src/planner/expression/bound_between_expression.cpp +5 -5
- package/src/duckdb/src/planner/expression/bound_case_expression.cpp +5 -5
- package/src/duckdb/src/planner/expression/bound_cast_expression.cpp +3 -3
- package/src/duckdb/src/planner/expression/bound_columnref_expression.cpp +2 -2
- package/src/duckdb/src/planner/expression/bound_comparison_expression.cpp +4 -4
- package/src/duckdb/src/planner/expression/bound_conjunction_expression.cpp +2 -2
- package/src/duckdb/src/planner/expression/bound_constant_expression.cpp +2 -2
- package/src/duckdb/src/planner/expression/bound_expression.cpp +1 -1
- package/src/duckdb/src/planner/expression/bound_function_expression.cpp +3 -4
- package/src/duckdb/src/planner/expression/bound_lambda_expression.cpp +4 -5
- package/src/duckdb/src/planner/expression/bound_lambdaref_expression.cpp +2 -2
- package/src/duckdb/src/planner/expression/bound_operator_expression.cpp +3 -4
- package/src/duckdb/src/planner/expression/bound_parameter_expression.cpp +2 -2
- package/src/duckdb/src/planner/expression/bound_reference_expression.cpp +2 -2
- package/src/duckdb/src/planner/expression/bound_subquery_expression.cpp +1 -1
- package/src/duckdb/src/planner/expression/bound_unnest_expression.cpp +3 -3
- package/src/duckdb/src/planner/expression/bound_window_expression.cpp +8 -21
- package/src/duckdb/src/planner/expression.cpp +15 -0
- package/src/duckdb/src/planner/expression_binder/base_select_binder.cpp +2 -2
- package/src/duckdb/src/planner/expression_binder.cpp +3 -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/planner.cpp +5 -15
- 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 +8 -7
- package/src/duckdb/src/storage/index.cpp +1 -3
- package/src/duckdb/src/storage/local_storage.cpp +2 -1
- package/src/duckdb/src/storage/magic_bytes.cpp +1 -1
- package/src/duckdb/src/storage/single_file_block_manager.cpp +3 -3
- package/src/duckdb/src/storage/standard_buffer_manager.cpp +3 -3
- package/src/duckdb/src/storage/statistics/list_stats.cpp +1 -1
- package/src/duckdb/src/storage/statistics/numeric_stats.cpp +1 -1
- package/src/duckdb/src/storage/statistics/string_stats.cpp +15 -14
- package/src/duckdb/src/storage/table/chunk_info.cpp +2 -2
- package/src/duckdb/src/storage/table/column_segment.cpp +3 -3
- package/src/duckdb/src/storage/table/list_column_data.cpp +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 +5 -6
- 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
- package/src/duckdb/ub_extension_icu_third_party_icu_i18n.cpp +5 -5
@@ -31,8 +31,7 @@ struct StartsWithFun {
|
|
31
31
|
struct ASCIIFun {
|
32
32
|
static constexpr const char *Name = "ascii";
|
33
33
|
static constexpr const char *Parameters = "string";
|
34
|
-
static constexpr const char *Description =
|
35
|
-
"Returns an integer that represents the Unicode code point of the first character of the string.";
|
34
|
+
static constexpr const char *Description = "Returns an integer that represents the Unicode code point of the first character of the string.";
|
36
35
|
static constexpr const char *Example = "ascii('Ω')";
|
37
36
|
|
38
37
|
static ScalarFunction GetFunction();
|
@@ -41,8 +40,7 @@ struct ASCIIFun {
|
|
41
40
|
struct BarFun {
|
42
41
|
static constexpr const char *Name = "bar";
|
43
42
|
static constexpr const char *Parameters = "x,min,max,width";
|
44
|
-
static constexpr const char *Description = "Draw a band whose width is proportional to (x - min) and equal to "
|
45
|
-
"width characters when x = max. width defaults to 80.";
|
43
|
+
static constexpr const char *Description = "Draw a band whose width is proportional to (x - min) and equal to width characters when x = max. width defaults to 80.";
|
46
44
|
static constexpr const char *Example = "bar(5, 0, 20, 10)";
|
47
45
|
|
48
46
|
static ScalarFunctionSet GetFunctions();
|
@@ -66,8 +64,7 @@ struct ToBinaryFun {
|
|
66
64
|
struct ChrFun {
|
67
65
|
static constexpr const char *Name = "chr";
|
68
66
|
static constexpr const char *Parameters = "code_point";
|
69
|
-
static constexpr const char *Description =
|
70
|
-
"returns a character which is corresponding the ASCII code value or Unicode code point";
|
67
|
+
static constexpr const char *Description = "returns a character which is corresponding the ASCII code value or Unicode code point";
|
71
68
|
static constexpr const char *Example = "chr(65)";
|
72
69
|
|
73
70
|
static ScalarFunction GetFunction();
|
@@ -76,10 +73,7 @@ struct ChrFun {
|
|
76
73
|
struct DamerauLevenshteinFun {
|
77
74
|
static constexpr const char *Name = "damerau_levenshtein";
|
78
75
|
static constexpr const char *Parameters = "str1,str2";
|
79
|
-
static constexpr const char *Description =
|
80
|
-
"Extension of Levenshtein distance to also include transposition of adjacent characters as an allowed edit "
|
81
|
-
"operation. In other words, the minimum number of edit operations (insertions, deletions, substitutions or "
|
82
|
-
"transpositions) required to change one string to another. Different case is considered different.";
|
76
|
+
static constexpr const char *Description = "Extension of Levenshtein distance to also include transposition of adjacent characters as an allowed edit operation. In other words, the minimum number of edit operations (insertions, deletions, substitutions or transpositions) required to change one string to another. Different case is considered different.";
|
83
77
|
static constexpr const char *Example = "damerau_levenshtein('hello', 'world')";
|
84
78
|
|
85
79
|
static ScalarFunction GetFunction();
|
@@ -112,8 +106,7 @@ struct FormatreadabledecimalsizeFun {
|
|
112
106
|
struct HammingFun {
|
113
107
|
static constexpr const char *Name = "hamming";
|
114
108
|
static constexpr const char *Parameters = "str1,str2";
|
115
|
-
static constexpr const char *Description = "The number of positions with different characters for 2 strings of "
|
116
|
-
"equal length. Different case is considered different.";
|
109
|
+
static constexpr const char *Description = "The number of positions with different characters for 2 strings of equal length. Different case is considered different.";
|
117
110
|
static constexpr const char *Example = "hamming('duck','luck')";
|
118
111
|
|
119
112
|
static ScalarFunction GetFunction();
|
@@ -143,8 +136,7 @@ struct ToHexFun {
|
|
143
136
|
struct InstrFun {
|
144
137
|
static constexpr const char *Name = "instr";
|
145
138
|
static constexpr const char *Parameters = "haystack,needle";
|
146
|
-
static constexpr const char *Description =
|
147
|
-
"Return location of first occurrence of needle in haystack, counting from 1. Returns 0 if no match found.";
|
139
|
+
static constexpr const char *Description = "Return location of first occurrence of needle in haystack, counting from 1. Returns 0 if no match found.";
|
148
140
|
static constexpr const char *Example = "instr('test test','es')";
|
149
141
|
|
150
142
|
static ScalarFunction GetFunction();
|
@@ -165,8 +157,7 @@ struct PositionFun {
|
|
165
157
|
struct JaccardFun {
|
166
158
|
static constexpr const char *Name = "jaccard";
|
167
159
|
static constexpr const char *Parameters = "str1,str2";
|
168
|
-
static constexpr const char *Description = "The Jaccard similarity between two strings. Different case is "
|
169
|
-
"considered different. Returns a number between 0 and 1.";
|
160
|
+
static constexpr const char *Description = "The Jaccard similarity between two strings. Different case is considered different. Returns a number between 0 and 1.";
|
170
161
|
static constexpr const char *Example = "jaccard('duck','luck')";
|
171
162
|
|
172
163
|
static ScalarFunction GetFunction();
|
@@ -175,8 +166,7 @@ struct JaccardFun {
|
|
175
166
|
struct JaroSimilarityFun {
|
176
167
|
static constexpr const char *Name = "jaro_similarity";
|
177
168
|
static constexpr const char *Parameters = "str1,str2";
|
178
|
-
static constexpr const char *Description = "The Jaro similarity between two strings. Different case is considered "
|
179
|
-
"different. Returns a number between 0 and 1.";
|
169
|
+
static constexpr const char *Description = "The Jaro similarity between two strings. Different case is considered different. Returns a number between 0 and 1.";
|
180
170
|
static constexpr const char *Example = "jaro_similarity('duck','duckdb')";
|
181
171
|
|
182
172
|
static ScalarFunction GetFunction();
|
@@ -185,8 +175,7 @@ struct JaroSimilarityFun {
|
|
185
175
|
struct JaroWinklerSimilarityFun {
|
186
176
|
static constexpr const char *Name = "jaro_winkler_similarity";
|
187
177
|
static constexpr const char *Parameters = "str1,str2";
|
188
|
-
static constexpr const char *Description = "The Jaro-Winkler similarity between two strings. Different case is "
|
189
|
-
"considered different. Returns a number between 0 and 1.";
|
178
|
+
static constexpr const char *Description = "The Jaro-Winkler similarity between two strings. Different case is considered different. Returns a number between 0 and 1.";
|
190
179
|
static constexpr const char *Example = "jaro_winkler_similarity('duck','duckdb')";
|
191
180
|
|
192
181
|
static ScalarFunction GetFunction();
|
@@ -213,9 +202,7 @@ struct LeftGraphemeFun {
|
|
213
202
|
struct LevenshteinFun {
|
214
203
|
static constexpr const char *Name = "levenshtein";
|
215
204
|
static constexpr const char *Parameters = "str1,str2";
|
216
|
-
static constexpr const char *Description =
|
217
|
-
"The minimum number of single-character edits (insertions, deletions or substitutions) required to change one "
|
218
|
-
"string to the other. Different case is considered different.";
|
205
|
+
static constexpr const char *Description = "The minimum number of single-character edits (insertions, deletions or substitutions) required to change one string to the other. Different case is considered different.";
|
219
206
|
static constexpr const char *Example = "levenshtein('duck','db')";
|
220
207
|
|
221
208
|
static ScalarFunction GetFunction();
|
@@ -230,8 +217,7 @@ struct Editdist3Fun {
|
|
230
217
|
struct LpadFun {
|
231
218
|
static constexpr const char *Name = "lpad";
|
232
219
|
static constexpr const char *Parameters = "string,count,character";
|
233
|
-
static constexpr const char *Description =
|
234
|
-
"Pads the string with the character from the left until it has count characters";
|
220
|
+
static constexpr const char *Description = "Pads the string with the character from the left until it has count characters";
|
235
221
|
static constexpr const char *Example = "lpad('hello', 10, '>')";
|
236
222
|
|
237
223
|
static ScalarFunction GetFunction();
|
@@ -240,8 +226,7 @@ struct LpadFun {
|
|
240
226
|
struct LtrimFun {
|
241
227
|
static constexpr const char *Name = "ltrim";
|
242
228
|
static constexpr const char *Parameters = "string,characters";
|
243
|
-
static constexpr const char *Description =
|
244
|
-
"Removes any occurrences of any of the characters from the left side of the string";
|
229
|
+
static constexpr const char *Description = "Removes any occurrences of any of the characters from the left side of the string";
|
245
230
|
static constexpr const char *Example = "ltrim('>>>>test<<', '><')";
|
246
231
|
|
247
232
|
static ScalarFunctionSet GetFunctions();
|
@@ -340,8 +325,7 @@ struct RightGraphemeFun {
|
|
340
325
|
struct RpadFun {
|
341
326
|
static constexpr const char *Name = "rpad";
|
342
327
|
static constexpr const char *Parameters = "string,count,character";
|
343
|
-
static constexpr const char *Description =
|
344
|
-
"Pads the string with the character from the right until it has count characters";
|
328
|
+
static constexpr const char *Description = "Pads the string with the character from the right until it has count characters";
|
345
329
|
static constexpr const char *Example = "rpad('hello', 10, '<')";
|
346
330
|
|
347
331
|
static ScalarFunction GetFunction();
|
@@ -350,8 +334,7 @@ struct RpadFun {
|
|
350
334
|
struct RtrimFun {
|
351
335
|
static constexpr const char *Name = "rtrim";
|
352
336
|
static constexpr const char *Parameters = "string,characters";
|
353
|
-
static constexpr const char *Description =
|
354
|
-
"Removes any occurrences of any of the characters from the right side of the string";
|
337
|
+
static constexpr const char *Description = "Removes any occurrences of any of the characters from the right side of the string";
|
355
338
|
static constexpr const char *Example = "rtrim('>>>>test<<', '><')";
|
356
339
|
|
357
340
|
static ScalarFunctionSet GetFunctions();
|
@@ -408,9 +391,7 @@ struct RegexpSplitToArrayFun {
|
|
408
391
|
struct TranslateFun {
|
409
392
|
static constexpr const char *Name = "translate";
|
410
393
|
static constexpr const char *Parameters = "string,from,to";
|
411
|
-
static constexpr const char *Description =
|
412
|
-
"Replaces each character in string that matches a character in the from set with the corresponding character "
|
413
|
-
"in the to set. If from is longer than to, occurrences of the extra characters in from are deleted.";
|
394
|
+
static constexpr const char *Description = "Replaces each character in string that matches a character in the from set with the corresponding character in the to set. If from is longer than to, occurrences of the extra characters in from are deleted.";
|
414
395
|
static constexpr const char *Example = "translate('12345', '143', 'ax')";
|
415
396
|
|
416
397
|
static ScalarFunction GetFunction();
|
@@ -419,8 +400,7 @@ struct TranslateFun {
|
|
419
400
|
struct TrimFun {
|
420
401
|
static constexpr const char *Name = "trim";
|
421
402
|
static constexpr const char *Parameters = "string,characters";
|
422
|
-
static constexpr const char *Description =
|
423
|
-
"Removes any occurrences of any of the characters from either side of the string";
|
403
|
+
static constexpr const char *Description = "Removes any occurrences of any of the characters from either side of the string";
|
424
404
|
static constexpr const char *Example = "trim('>>>>test<<', '><')";
|
425
405
|
|
426
406
|
static ScalarFunctionSet GetFunctions();
|
@@ -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
|
|
@@ -8,40 +8,13 @@
|
|
8
8
|
|
9
9
|
#pragma once
|
10
10
|
|
11
|
-
#include "duckdb/function/
|
12
|
-
#include "duckdb/storage/statistics/base_statistics.hpp"
|
13
|
-
#include "duckdb/storage/statistics/node_statistics.hpp"
|
11
|
+
#include "duckdb/function/aggregate_state.hpp"
|
14
12
|
#include "duckdb/planner/bound_result_modifier.hpp"
|
15
13
|
#include "duckdb/planner/expression.hpp"
|
16
14
|
#include "duckdb/common/vector_operations/aggregate_executor.hpp"
|
17
15
|
|
18
16
|
namespace duckdb {
|
19
17
|
|
20
|
-
enum class AggregateType : uint8_t { NON_DISTINCT = 1, DISTINCT = 2 };
|
21
|
-
//! Whether or not the input order influences the result of the aggregate
|
22
|
-
enum class AggregateOrderDependent : uint8_t { ORDER_DEPENDENT = 1, NOT_ORDER_DEPENDENT = 2 };
|
23
|
-
|
24
|
-
class BoundAggregateExpression;
|
25
|
-
|
26
|
-
struct AggregateInputData {
|
27
|
-
AggregateInputData(FunctionData *bind_data_p, Allocator &allocator_p)
|
28
|
-
: bind_data(bind_data_p), allocator(allocator_p) {
|
29
|
-
}
|
30
|
-
FunctionData *bind_data;
|
31
|
-
Allocator &allocator;
|
32
|
-
};
|
33
|
-
|
34
|
-
struct AggregateStatisticsInput {
|
35
|
-
AggregateStatisticsInput(FunctionData *bind_data_p, vector<BaseStatistics> &child_stats_p,
|
36
|
-
NodeStatistics *node_stats_p)
|
37
|
-
: bind_data(bind_data_p), child_stats(child_stats_p), node_stats(node_stats_p) {
|
38
|
-
}
|
39
|
-
|
40
|
-
FunctionData *bind_data;
|
41
|
-
vector<BaseStatistics> &child_stats;
|
42
|
-
NodeStatistics *node_stats;
|
43
|
-
};
|
44
|
-
|
45
18
|
//! The type used for sizing hashed aggregate function states
|
46
19
|
typedef idx_t (*aggregate_size_t)();
|
47
20
|
//! The type used for initializing hashed aggregate function states
|
@@ -215,7 +188,7 @@ public:
|
|
215
188
|
|
216
189
|
template <class STATE, class OP>
|
217
190
|
static void StateInitialize(data_ptr_t state) {
|
218
|
-
OP::Initialize(
|
191
|
+
OP::Initialize(*reinterpret_cast<STATE *>(state));
|
219
192
|
}
|
220
193
|
|
221
194
|
template <class STATE, class OP>
|
@@ -281,6 +254,12 @@ public:
|
|
281
254
|
AggregateExecutor::Finalize<STATE, RESULT_TYPE, OP>(states, aggr_input_data, result, count, offset);
|
282
255
|
}
|
283
256
|
|
257
|
+
template <class STATE, class OP>
|
258
|
+
static void StateVoidFinalize(Vector &states, AggregateInputData &aggr_input_data, Vector &result, idx_t count,
|
259
|
+
idx_t offset) {
|
260
|
+
AggregateExecutor::VoidFinalize<STATE, OP>(states, aggr_input_data, result, count, offset);
|
261
|
+
}
|
262
|
+
|
284
263
|
template <class STATE, class OP>
|
285
264
|
static void StateDestroy(Vector &states, AggregateInputData &aggr_input_data, idx_t count) {
|
286
265
|
AggregateExecutor::Destroy<STATE, OP>(states, aggr_input_data, count);
|
@@ -0,0 +1,95 @@
|
|
1
|
+
//===----------------------------------------------------------------------===//
|
2
|
+
// DuckDB
|
3
|
+
//
|
4
|
+
// duckdb/function/aggregate_state.hpp
|
5
|
+
//
|
6
|
+
//
|
7
|
+
//===----------------------------------------------------------------------===//
|
8
|
+
|
9
|
+
#pragma once
|
10
|
+
|
11
|
+
#include "duckdb/function/function.hpp"
|
12
|
+
#include "duckdb/storage/statistics/base_statistics.hpp"
|
13
|
+
#include "duckdb/storage/statistics/node_statistics.hpp"
|
14
|
+
|
15
|
+
namespace duckdb {
|
16
|
+
|
17
|
+
enum class AggregateType : uint8_t { NON_DISTINCT = 1, DISTINCT = 2 };
|
18
|
+
//! Whether or not the input order influences the result of the aggregate
|
19
|
+
enum class AggregateOrderDependent : uint8_t { ORDER_DEPENDENT = 1, NOT_ORDER_DEPENDENT = 2 };
|
20
|
+
|
21
|
+
class BoundAggregateExpression;
|
22
|
+
|
23
|
+
struct AggregateInputData {
|
24
|
+
AggregateInputData(optional_ptr<FunctionData> bind_data_p, Allocator &allocator_p)
|
25
|
+
: bind_data(bind_data_p), allocator(allocator_p) {
|
26
|
+
}
|
27
|
+
optional_ptr<FunctionData> bind_data;
|
28
|
+
Allocator &allocator;
|
29
|
+
};
|
30
|
+
|
31
|
+
struct AggregateUnaryInput {
|
32
|
+
AggregateUnaryInput(AggregateInputData &input_p, ValidityMask &input_mask_p)
|
33
|
+
: input(input_p), input_mask(input_mask_p), input_idx(0) {
|
34
|
+
}
|
35
|
+
|
36
|
+
AggregateInputData &input;
|
37
|
+
ValidityMask &input_mask;
|
38
|
+
idx_t input_idx;
|
39
|
+
|
40
|
+
inline bool RowIsValid() {
|
41
|
+
return input_mask.RowIsValid(input_idx);
|
42
|
+
}
|
43
|
+
};
|
44
|
+
|
45
|
+
struct AggregateBinaryInput {
|
46
|
+
AggregateBinaryInput(AggregateInputData &input_p, ValidityMask &left_mask_p, ValidityMask &right_mask_p)
|
47
|
+
: input(input_p), left_mask(left_mask_p), right_mask(right_mask_p) {
|
48
|
+
}
|
49
|
+
|
50
|
+
AggregateInputData &input;
|
51
|
+
ValidityMask &left_mask;
|
52
|
+
ValidityMask &right_mask;
|
53
|
+
idx_t lidx;
|
54
|
+
idx_t ridx;
|
55
|
+
};
|
56
|
+
|
57
|
+
struct AggregateFinalizeData {
|
58
|
+
AggregateFinalizeData(Vector &result_p, AggregateInputData &input_p)
|
59
|
+
: result(result_p), input(input_p), result_idx(0) {
|
60
|
+
}
|
61
|
+
|
62
|
+
Vector &result;
|
63
|
+
AggregateInputData &input;
|
64
|
+
idx_t result_idx;
|
65
|
+
|
66
|
+
inline void ReturnNull() {
|
67
|
+
switch (result.GetVectorType()) {
|
68
|
+
case VectorType::FLAT_VECTOR:
|
69
|
+
FlatVector::SetNull(result, result_idx, true);
|
70
|
+
break;
|
71
|
+
case VectorType::CONSTANT_VECTOR:
|
72
|
+
ConstantVector::SetNull(result, true);
|
73
|
+
break;
|
74
|
+
default:
|
75
|
+
throw InternalException("Invalid result vector type for aggregate");
|
76
|
+
}
|
77
|
+
}
|
78
|
+
|
79
|
+
inline string_t ReturnString(string_t value) {
|
80
|
+
return StringVector::AddStringOrBlob(result, value);
|
81
|
+
}
|
82
|
+
};
|
83
|
+
|
84
|
+
struct AggregateStatisticsInput {
|
85
|
+
AggregateStatisticsInput(optional_ptr<FunctionData> bind_data_p, vector<BaseStatistics> &child_stats_p,
|
86
|
+
optional_ptr<NodeStatistics> node_stats_p)
|
87
|
+
: bind_data(bind_data_p), child_stats(child_stats_p), node_stats(node_stats_p) {
|
88
|
+
}
|
89
|
+
|
90
|
+
optional_ptr<FunctionData> bind_data;
|
91
|
+
vector<BaseStatistics> &child_stats;
|
92
|
+
optional_ptr<NodeStatistics> node_stats;
|
93
|
+
};
|
94
|
+
|
95
|
+
} // namespace duckdb
|
@@ -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
|
//===--------------------------------------------------------------------===//
|