duckdb 0.8.1-dev31.0 → 0.8.1-dev341.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 +25 -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/timestamp.cpp +37 -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 +115 -133
- 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 +110 -39
- package/src/duckdb/src/execution/index/art/fixed_size_allocator.cpp +23 -5
- package/src/duckdb/src/execution/index/art/leaf.cpp +10 -11
- package/src/duckdb/src/execution/index/art/leaf_segment.cpp +10 -0
- package/src/duckdb/src/execution/index/art/node.cpp +47 -35
- package/src/duckdb/src/execution/index/art/node16.cpp +3 -0
- package/src/duckdb/src/execution/index/art/node256.cpp +1 -0
- package/src/duckdb/src/execution/index/art/node4.cpp +3 -0
- package/src/duckdb/src/execution/index/art/node48.cpp +2 -0
- package/src/duckdb/src/execution/index/art/prefix.cpp +2 -0
- 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 +26 -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_index.cpp +29 -3
- 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 +17 -20
- package/src/duckdb/src/function/table/repeat.cpp +5 -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/timestamp.hpp +4 -14
- 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 +13 -7
- package/src/duckdb/src/include/duckdb/execution/index/art/fixed_size_allocator.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/index/art/leaf.hpp +1 -1
- package/src/duckdb/src/include/duckdb/execution/index/art/leaf_segment.hpp +2 -0
- package/src/duckdb/src/include/duckdb/execution/index/art/node.hpp +13 -3
- package/src/duckdb/src/include/duckdb/execution/index/art/node48.hpp +1 -0
- 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/optimizer/unnest_rewriter.hpp +4 -0
- 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 +106 -92
- 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/algorithm/byte_reader.hpp +4 -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/in_memory_block_manager.hpp +13 -13
- package/src/duckdb/src/include/duckdb/storage/index.hpp +6 -4
- package/src/duckdb/src/include/duckdb/storage/partial_block_manager.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/storage_extension.hpp +0 -6
- 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/optimizer/unnest_rewriter.cpp +27 -16
- 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_data/create_info.cpp +0 -3
- 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/nodetype_to_string.cpp +0 -2
- 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_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 -25
- 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 +45 -47
- 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 -28
- package/src/duckdb/src/planner/binder/statement/bind_create_table.cpp +18 -1
- package/src/duckdb/src/planner/binder/statement/bind_drop.cpp +0 -25
- 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 +5 -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_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/operator/logical_pivot.cpp +14 -2
- 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 +14 -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/libpg_query/include/nodes/nodes.hpp +0 -1
- package/src/duckdb/third_party/libpg_query/include/nodes/parsenodes.hpp +0 -14
- package/src/duckdb/third_party/libpg_query/src_backend_parser_gram.cpp +12828 -12956
- package/src/duckdb/third_party/pcg/pcg_extras.hpp +1 -1
- package/src/duckdb/third_party/zstd/compress/zstd_compress.cpp +3 -0
- package/src/duckdb/third_party/zstd/include/zstd/compress/zstd_cwksp.h +4 -0
- package/src/duckdb/ub_extension_icu_third_party_icu_i18n.cpp +5 -5
- package/src/duckdb/ub_src_parser_transform_statement.cpp +0 -2
- package/src/duckdb/src/include/duckdb/parser/parsed_data/create_database_info.hpp +0 -46
- package/src/duckdb/src/parser/transform/statement/transform_create_database.cpp +0 -28
@@ -2,7 +2,6 @@
|
|
2
2
|
#include "duckdb/common/exception.hpp"
|
3
3
|
#include "duckdb/common/types/hash.hpp"
|
4
4
|
#include "duckdb/common/types/hyperloglog.hpp"
|
5
|
-
#include "duckdb/common/vector_operations/vector_operations.hpp"
|
6
5
|
#include "duckdb/function/function_set.hpp"
|
7
6
|
#include "duckdb/planner/expression/bound_aggregate_expression.hpp"
|
8
7
|
|
@@ -16,52 +15,50 @@ struct ApproxDistinctCountState {
|
|
16
15
|
delete log;
|
17
16
|
}
|
18
17
|
}
|
19
|
-
void Resize(idx_t count) {
|
20
|
-
indices.resize(count);
|
21
|
-
counts.resize(count);
|
22
|
-
}
|
23
18
|
|
24
19
|
HyperLogLog *log;
|
25
|
-
vector<uint64_t> indices;
|
26
|
-
vector<uint8_t> counts;
|
27
20
|
};
|
28
21
|
|
29
22
|
struct ApproxCountDistinctFunction {
|
30
23
|
template <class STATE>
|
31
|
-
static void Initialize(STATE
|
32
|
-
|
24
|
+
static void Initialize(STATE &state) {
|
25
|
+
state.log = nullptr;
|
33
26
|
}
|
34
27
|
|
35
28
|
template <class STATE, class OP>
|
36
|
-
static void Combine(const STATE &source, STATE
|
29
|
+
static void Combine(const STATE &source, STATE &target, AggregateInputData &) {
|
37
30
|
if (!source.log) {
|
38
31
|
return;
|
39
32
|
}
|
40
|
-
if (!target
|
41
|
-
target
|
33
|
+
if (!target.log) {
|
34
|
+
target.log = new HyperLogLog();
|
42
35
|
}
|
43
|
-
D_ASSERT(target
|
36
|
+
D_ASSERT(target.log);
|
44
37
|
D_ASSERT(source.log);
|
45
|
-
auto new_log = target
|
46
|
-
delete target
|
47
|
-
target
|
38
|
+
auto new_log = target.log->MergePointer(*source.log);
|
39
|
+
delete target.log;
|
40
|
+
target.log = new_log;
|
48
41
|
}
|
49
42
|
|
50
43
|
template <class T, class STATE>
|
51
|
-
static void Finalize(
|
52
|
-
if (state
|
53
|
-
target
|
44
|
+
static void Finalize(STATE &state, T &target, AggregateFinalizeData &finalize_data) {
|
45
|
+
if (state.log) {
|
46
|
+
target = state.log->Count();
|
54
47
|
} else {
|
55
|
-
target
|
48
|
+
target = 0;
|
56
49
|
}
|
57
50
|
}
|
58
51
|
|
59
52
|
static bool IgnoreNull() {
|
60
53
|
return true;
|
61
54
|
}
|
55
|
+
|
62
56
|
template <class STATE>
|
63
|
-
static void Destroy(
|
64
|
-
state
|
57
|
+
static void Destroy(STATE &state, AggregateInputData &aggr_input_data) {
|
58
|
+
if (state.log) {
|
59
|
+
delete state.log;
|
60
|
+
state.log = nullptr;
|
61
|
+
}
|
65
62
|
}
|
66
63
|
};
|
67
64
|
|
@@ -69,7 +66,7 @@ static void ApproxCountDistinctSimpleUpdateFunction(Vector inputs[], AggregateIn
|
|
69
66
|
data_ptr_t state, idx_t count) {
|
70
67
|
D_ASSERT(input_count == 1);
|
71
68
|
|
72
|
-
auto agg_state =
|
69
|
+
auto agg_state = reinterpret_cast<ApproxDistinctCountState *>(state);
|
73
70
|
if (!agg_state->log) {
|
74
71
|
agg_state->log = new HyperLogLog();
|
75
72
|
}
|
@@ -77,10 +74,11 @@ static void ApproxCountDistinctSimpleUpdateFunction(Vector inputs[], AggregateIn
|
|
77
74
|
UnifiedVectorFormat vdata;
|
78
75
|
inputs[0].ToUnifiedFormat(count, vdata);
|
79
76
|
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
77
|
+
if (count > STANDARD_VECTOR_SIZE) {
|
78
|
+
throw InternalException("ApproxCountDistinct - count must be at most vector size");
|
79
|
+
}
|
80
|
+
uint64_t indices[STANDARD_VECTOR_SIZE];
|
81
|
+
uint8_t counts[STANDARD_VECTOR_SIZE];
|
84
82
|
HyperLogLog::ProcessEntries(vdata, inputs[0].GetType(), indices, counts, count);
|
85
83
|
agg_state->log->AddToLog(vdata, count, indices, counts);
|
86
84
|
}
|
@@ -91,27 +89,25 @@ static void ApproxCountDistinctUpdateFunction(Vector inputs[], AggregateInputDat
|
|
91
89
|
|
92
90
|
UnifiedVectorFormat sdata;
|
93
91
|
state_vector.ToUnifiedFormat(count, sdata);
|
94
|
-
auto states =
|
92
|
+
auto states = UnifiedVectorFormat::GetDataNoConst<ApproxDistinctCountState *>(sdata);
|
95
93
|
|
96
|
-
uint64_t *indices = nullptr;
|
97
|
-
uint8_t *counts = nullptr;
|
98
94
|
for (idx_t i = 0; i < count; i++) {
|
99
95
|
auto agg_state = states[sdata.sel->get_index(i)];
|
100
96
|
if (!agg_state->log) {
|
101
97
|
agg_state->log = new HyperLogLog();
|
102
98
|
}
|
103
|
-
if (i == 0) {
|
104
|
-
agg_state->Resize(count);
|
105
|
-
indices = agg_state->indices.data();
|
106
|
-
counts = agg_state->counts.data();
|
107
|
-
}
|
108
99
|
}
|
109
100
|
|
110
101
|
UnifiedVectorFormat vdata;
|
111
102
|
inputs[0].ToUnifiedFormat(count, vdata);
|
112
103
|
|
104
|
+
if (count > STANDARD_VECTOR_SIZE) {
|
105
|
+
throw InternalException("ApproxCountDistinct - count must be at most vector size");
|
106
|
+
}
|
107
|
+
uint64_t indices[STANDARD_VECTOR_SIZE];
|
108
|
+
uint8_t counts[STANDARD_VECTOR_SIZE];
|
113
109
|
HyperLogLog::ProcessEntries(vdata, inputs[0].GetType(), indices, counts, count);
|
114
|
-
HyperLogLog::AddToLogs(vdata, count, indices, counts,
|
110
|
+
HyperLogLog::AddToLogs(vdata, count, indices, counts, reinterpret_cast<HyperLogLog ***>(states), sdata.sel);
|
115
111
|
}
|
116
112
|
|
117
113
|
AggregateFunction GetApproxCountDistinctFunction(const LogicalType &input_type) {
|
@@ -25,8 +25,8 @@ struct ArgMinMaxStateBase {
|
|
25
25
|
}
|
26
26
|
|
27
27
|
template <typename T>
|
28
|
-
static inline void ReadValue(Vector &result, T &arg, T
|
29
|
-
target
|
28
|
+
static inline void ReadValue(Vector &result, T &arg, T &target) {
|
29
|
+
target = arg;
|
30
30
|
}
|
31
31
|
|
32
32
|
bool is_initialized;
|
@@ -69,8 +69,8 @@ void ArgMinMaxStateBase::AssignValue(string_t &target, string_t new_value, bool
|
|
69
69
|
}
|
70
70
|
|
71
71
|
template <>
|
72
|
-
void ArgMinMaxStateBase::ReadValue(Vector &result, string_t &arg, string_t
|
73
|
-
target
|
72
|
+
void ArgMinMaxStateBase::ReadValue(Vector &result, string_t &arg, string_t &target) {
|
73
|
+
target = StringVector::AddStringOrBlob(result, arg);
|
74
74
|
}
|
75
75
|
|
76
76
|
template <class A, class B>
|
@@ -97,54 +97,54 @@ struct ArgMinMaxState : public ArgMinMaxStateBase {
|
|
97
97
|
|
98
98
|
template <class COMPARATOR>
|
99
99
|
struct ArgMinMaxBase {
|
100
|
+
|
100
101
|
template <class STATE>
|
101
|
-
static void
|
102
|
-
state
|
102
|
+
static void Initialize(STATE &state) {
|
103
|
+
new (&state) STATE;
|
103
104
|
}
|
104
105
|
|
105
106
|
template <class STATE>
|
106
|
-
static void
|
107
|
-
|
107
|
+
static void Destroy(STATE &state, AggregateInputData &aggr_input_data) {
|
108
|
+
state.~STATE();
|
108
109
|
}
|
109
110
|
|
110
111
|
template <class A_TYPE, class B_TYPE, class STATE, class OP>
|
111
|
-
static void Operation(STATE
|
112
|
-
|
113
|
-
|
114
|
-
STATE::template AssignValue<
|
115
|
-
|
116
|
-
state->is_initialized = true;
|
112
|
+
static void Operation(STATE &state, const A_TYPE &x, const B_TYPE &y, AggregateBinaryInput &) {
|
113
|
+
if (!state.is_initialized) {
|
114
|
+
STATE::template AssignValue<A_TYPE>(state.arg, x, false);
|
115
|
+
STATE::template AssignValue<B_TYPE>(state.value, y, false);
|
116
|
+
state.is_initialized = true;
|
117
117
|
} else {
|
118
|
-
OP::template Execute<A_TYPE, B_TYPE, STATE>(state,
|
118
|
+
OP::template Execute<A_TYPE, B_TYPE, STATE>(state, x, y);
|
119
119
|
}
|
120
120
|
}
|
121
121
|
|
122
122
|
template <class A_TYPE, class B_TYPE, class STATE>
|
123
|
-
static void Execute(STATE
|
124
|
-
if (COMPARATOR::Operation(y_data, state
|
125
|
-
STATE::template AssignValue<A_TYPE>(state
|
126
|
-
STATE::template AssignValue<B_TYPE>(state
|
123
|
+
static void Execute(STATE &state, A_TYPE x_data, B_TYPE y_data) {
|
124
|
+
if (COMPARATOR::Operation(y_data, state.value)) {
|
125
|
+
STATE::template AssignValue<A_TYPE>(state.arg, x_data, true);
|
126
|
+
STATE::template AssignValue<B_TYPE>(state.value, y_data, true);
|
127
127
|
}
|
128
128
|
}
|
129
129
|
|
130
130
|
template <class STATE, class OP>
|
131
|
-
static void Combine(const STATE &source, STATE
|
131
|
+
static void Combine(const STATE &source, STATE &target, AggregateInputData &) {
|
132
132
|
if (!source.is_initialized) {
|
133
133
|
return;
|
134
134
|
}
|
135
|
-
if (!target
|
136
|
-
STATE::template AssignValue(target
|
137
|
-
STATE::template AssignValue(target
|
138
|
-
target
|
135
|
+
if (!target.is_initialized || COMPARATOR::Operation(source.value, target.value)) {
|
136
|
+
STATE::template AssignValue(target.arg, source.arg, target.is_initialized);
|
137
|
+
STATE::template AssignValue(target.value, source.value, target.is_initialized);
|
138
|
+
target.is_initialized = true;
|
139
139
|
}
|
140
140
|
}
|
141
141
|
|
142
142
|
template <class T, class STATE>
|
143
|
-
static void Finalize(
|
144
|
-
if (!state
|
145
|
-
|
143
|
+
static void Finalize(STATE &state, T &target, AggregateFinalizeData &finalize_data) {
|
144
|
+
if (!state.is_initialized) {
|
145
|
+
finalize_data.ReturnNull();
|
146
146
|
} else {
|
147
|
-
STATE::template ReadValue(result, state
|
147
|
+
STATE::template ReadValue(finalize_data.result, state.arg, target);
|
148
148
|
}
|
149
149
|
}
|
150
150
|
|
@@ -156,14 +156,14 @@ struct ArgMinMaxBase {
|
|
156
156
|
template <typename COMPARATOR>
|
157
157
|
struct VectorArgMinMaxBase : ArgMinMaxBase<COMPARATOR> {
|
158
158
|
template <class STATE>
|
159
|
-
static void AssignVector(STATE
|
160
|
-
if (!state
|
161
|
-
state
|
162
|
-
state
|
159
|
+
static void AssignVector(STATE &state, Vector &arg, const idx_t idx) {
|
160
|
+
if (!state.is_initialized) {
|
161
|
+
state.arg = new Vector(arg.GetType());
|
162
|
+
state.arg->SetVectorType(VectorType::CONSTANT_VECTOR);
|
163
163
|
}
|
164
164
|
sel_t selv = idx;
|
165
165
|
SelectionVector sel(&selv);
|
166
|
-
VectorOperations::Copy(arg, *state
|
166
|
+
VectorOperations::Copy(arg, *state.arg, sel, 1, 0, 0);
|
167
167
|
}
|
168
168
|
|
169
169
|
template <class STATE>
|
@@ -176,7 +176,7 @@ struct VectorArgMinMaxBase : ArgMinMaxBase<COMPARATOR> {
|
|
176
176
|
auto &by = inputs[1];
|
177
177
|
UnifiedVectorFormat bdata;
|
178
178
|
by.ToUnifiedFormat(count, bdata);
|
179
|
-
const auto bys = (
|
179
|
+
const auto bys = UnifiedVectorFormat::GetData<BY_TYPE>(bdata);
|
180
180
|
|
181
181
|
UnifiedVectorFormat sdata;
|
182
182
|
state_vector.ToUnifiedFormat(count, sdata);
|
@@ -190,49 +190,37 @@ struct VectorArgMinMaxBase : ArgMinMaxBase<COMPARATOR> {
|
|
190
190
|
const auto bval = bys[bidx];
|
191
191
|
|
192
192
|
const auto sidx = sdata.sel->get_index(i);
|
193
|
-
auto state = states[sidx];
|
194
|
-
if (!state
|
195
|
-
STATE::template AssignValue<BY_TYPE>(state
|
193
|
+
auto &state = *states[sidx];
|
194
|
+
if (!state.is_initialized) {
|
195
|
+
STATE::template AssignValue<BY_TYPE>(state.value, bval, false);
|
196
196
|
AssignVector(state, arg, i);
|
197
|
-
state
|
197
|
+
state.is_initialized = true;
|
198
198
|
|
199
|
-
} else if (COMPARATOR::template Operation<BY_TYPE>(bval, state
|
200
|
-
STATE::template AssignValue<BY_TYPE>(state
|
199
|
+
} else if (COMPARATOR::template Operation<BY_TYPE>(bval, state.value)) {
|
200
|
+
STATE::template AssignValue<BY_TYPE>(state.value, bval, true);
|
201
201
|
AssignVector(state, arg, i);
|
202
202
|
}
|
203
203
|
}
|
204
204
|
}
|
205
205
|
|
206
206
|
template <class STATE, class OP>
|
207
|
-
static void Combine(const STATE &source, STATE
|
207
|
+
static void Combine(const STATE &source, STATE &target, AggregateInputData &) {
|
208
208
|
if (!source.is_initialized) {
|
209
209
|
return;
|
210
210
|
}
|
211
|
-
if (!target
|
212
|
-
STATE::template AssignValue(target
|
211
|
+
if (!target.is_initialized || COMPARATOR::Operation(source.value, target.value)) {
|
212
|
+
STATE::template AssignValue(target.value, source.value, target.is_initialized);
|
213
213
|
AssignVector(target, *source.arg, 0);
|
214
|
-
target
|
214
|
+
target.is_initialized = true;
|
215
215
|
}
|
216
216
|
}
|
217
217
|
|
218
|
-
template <class
|
219
|
-
static void Finalize(
|
220
|
-
if (!state
|
221
|
-
|
222
|
-
// since for STRUCT columns only setting the validity mask of the struct is incorrect
|
223
|
-
// as for a struct column, we need to also set ALL child columns to NULL
|
224
|
-
switch (result.GetVectorType()) {
|
225
|
-
case VectorType::FLAT_VECTOR:
|
226
|
-
FlatVector::SetNull(result, idx, true);
|
227
|
-
break;
|
228
|
-
case VectorType::CONSTANT_VECTOR:
|
229
|
-
ConstantVector::SetNull(result, true);
|
230
|
-
break;
|
231
|
-
default:
|
232
|
-
throw InternalException("Invalid result vector type for nested arg_min/max");
|
233
|
-
}
|
218
|
+
template <class STATE>
|
219
|
+
static void Finalize(STATE &state, AggregateFinalizeData &finalize_data) {
|
220
|
+
if (!state.is_initialized) {
|
221
|
+
finalize_data.ReturnNull();
|
234
222
|
} else {
|
235
|
-
VectorOperations::Copy(*state
|
223
|
+
VectorOperations::Copy(*state.arg, finalize_data.result, 1, 0, finalize_data.result_idx);
|
236
224
|
}
|
237
225
|
}
|
238
226
|
|
@@ -247,11 +235,10 @@ struct VectorArgMinMaxBase : ArgMinMaxBase<COMPARATOR> {
|
|
247
235
|
template <class OP, class ARG_TYPE, class BY_TYPE>
|
248
236
|
AggregateFunction GetVectorArgMinMaxFunctionInternal(const LogicalType &by_type, const LogicalType &type) {
|
249
237
|
using STATE = ArgMinMaxState<ARG_TYPE, BY_TYPE>;
|
250
|
-
return AggregateFunction(
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
AggregateFunction::StateDestroy<STATE, OP>);
|
238
|
+
return AggregateFunction(
|
239
|
+
{type, by_type}, type, AggregateFunction::StateSize<STATE>, AggregateFunction::StateInitialize<STATE, OP>,
|
240
|
+
OP::template Update<STATE>, AggregateFunction::StateCombine<STATE, OP>,
|
241
|
+
AggregateFunction::StateVoidFinalize<STATE, OP>, nullptr, OP::Bind, AggregateFunction::StateDestroy<STATE, OP>);
|
255
242
|
}
|
256
243
|
|
257
244
|
template <class OP, class ARG_TYPE>
|
@@ -42,53 +42,53 @@ static AggregateFunction GetBitfieldUnaryAggregate(LogicalType type) {
|
|
42
42
|
|
43
43
|
struct BitwiseOperation {
|
44
44
|
template <class STATE>
|
45
|
-
static void Initialize(STATE
|
45
|
+
static void Initialize(STATE &state) {
|
46
46
|
// If there are no matching rows, returns a null value.
|
47
|
-
state
|
47
|
+
state.is_set = false;
|
48
48
|
}
|
49
49
|
|
50
50
|
template <class INPUT_TYPE, class STATE, class OP>
|
51
|
-
static void Operation(STATE
|
52
|
-
if (!state
|
53
|
-
OP::template Assign(state, input
|
54
|
-
state
|
51
|
+
static void Operation(STATE &state, const INPUT_TYPE &input, AggregateUnaryInput &) {
|
52
|
+
if (!state.is_set) {
|
53
|
+
OP::template Assign(state, input);
|
54
|
+
state.is_set = true;
|
55
55
|
} else {
|
56
|
-
OP::template Execute(state, input
|
56
|
+
OP::template Execute(state, input);
|
57
57
|
}
|
58
58
|
}
|
59
59
|
|
60
60
|
template <class INPUT_TYPE, class STATE, class OP>
|
61
|
-
static void ConstantOperation(STATE
|
62
|
-
|
63
|
-
OP::template Operation<INPUT_TYPE, STATE, OP>(state,
|
61
|
+
static void ConstantOperation(STATE &state, const INPUT_TYPE &input, AggregateUnaryInput &unary_input,
|
62
|
+
idx_t count) {
|
63
|
+
OP::template Operation<INPUT_TYPE, STATE, OP>(state, input, unary_input);
|
64
64
|
}
|
65
65
|
|
66
66
|
template <class INPUT_TYPE, class STATE>
|
67
|
-
static void Assign(STATE
|
68
|
-
state
|
67
|
+
static void Assign(STATE &state, INPUT_TYPE input) {
|
68
|
+
state.value = input;
|
69
69
|
}
|
70
70
|
|
71
71
|
template <class STATE, class OP>
|
72
|
-
static void Combine(const STATE &source, STATE
|
72
|
+
static void Combine(const STATE &source, STATE &target, AggregateInputData &) {
|
73
73
|
if (!source.is_set) {
|
74
74
|
// source is NULL, nothing to do.
|
75
75
|
return;
|
76
76
|
}
|
77
|
-
if (!target
|
77
|
+
if (!target.is_set) {
|
78
78
|
// target is NULL, use source value directly.
|
79
79
|
OP::template Assign(target, source.value);
|
80
|
-
target
|
80
|
+
target.is_set = true;
|
81
81
|
} else {
|
82
82
|
OP::template Execute(target, source.value);
|
83
83
|
}
|
84
84
|
}
|
85
85
|
|
86
86
|
template <class T, class STATE>
|
87
|
-
static void Finalize(
|
88
|
-
if (!state
|
89
|
-
|
87
|
+
static void Finalize(STATE &state, T &target, AggregateFinalizeData &finalize_data) {
|
88
|
+
if (!state.is_set) {
|
89
|
+
finalize_data.ReturnNull();
|
90
90
|
} else {
|
91
|
-
target
|
91
|
+
target = state.value;
|
92
92
|
}
|
93
93
|
}
|
94
94
|
|
@@ -99,61 +99,61 @@ struct BitwiseOperation {
|
|
99
99
|
|
100
100
|
struct BitAndOperation : public BitwiseOperation {
|
101
101
|
template <class INPUT_TYPE, class STATE>
|
102
|
-
static void Execute(STATE
|
103
|
-
state
|
102
|
+
static void Execute(STATE &state, INPUT_TYPE input) {
|
103
|
+
state.value &= input;
|
104
104
|
}
|
105
105
|
};
|
106
106
|
|
107
107
|
struct BitOrOperation : public BitwiseOperation {
|
108
108
|
template <class INPUT_TYPE, class STATE>
|
109
|
-
static void Execute(STATE
|
110
|
-
state
|
109
|
+
static void Execute(STATE &state, INPUT_TYPE input) {
|
110
|
+
state.value |= input;
|
111
111
|
}
|
112
112
|
};
|
113
113
|
|
114
114
|
struct BitXorOperation : public BitwiseOperation {
|
115
115
|
template <class INPUT_TYPE, class STATE>
|
116
|
-
static void Execute(STATE
|
117
|
-
state
|
116
|
+
static void Execute(STATE &state, INPUT_TYPE input) {
|
117
|
+
state.value ^= input;
|
118
118
|
}
|
119
119
|
|
120
120
|
template <class INPUT_TYPE, class STATE, class OP>
|
121
|
-
static void ConstantOperation(STATE
|
122
|
-
|
121
|
+
static void ConstantOperation(STATE &state, const INPUT_TYPE &input, AggregateUnaryInput &unary_input,
|
122
|
+
idx_t count) {
|
123
123
|
for (idx_t i = 0; i < count; i++) {
|
124
|
-
Operation<INPUT_TYPE, STATE, OP>(state,
|
124
|
+
Operation<INPUT_TYPE, STATE, OP>(state, input, unary_input);
|
125
125
|
}
|
126
126
|
}
|
127
127
|
};
|
128
128
|
|
129
129
|
struct BitStringBitwiseOperation : public BitwiseOperation {
|
130
130
|
template <class STATE>
|
131
|
-
static void Destroy(
|
132
|
-
if (state
|
133
|
-
delete[] state
|
131
|
+
static void Destroy(STATE &state, AggregateInputData &aggr_input_data) {
|
132
|
+
if (state.is_set && !state.value.IsInlined()) {
|
133
|
+
delete[] state.value.GetData();
|
134
134
|
}
|
135
135
|
}
|
136
136
|
|
137
137
|
template <class INPUT_TYPE, class STATE>
|
138
|
-
static void Assign(STATE
|
139
|
-
D_ASSERT(state
|
138
|
+
static void Assign(STATE &state, INPUT_TYPE input) {
|
139
|
+
D_ASSERT(state.is_set == false);
|
140
140
|
if (input.IsInlined()) {
|
141
|
-
state
|
141
|
+
state.value = input;
|
142
142
|
} else { // non-inlined string, need to allocate space for it
|
143
143
|
auto len = input.GetSize();
|
144
144
|
auto ptr = new char[len];
|
145
145
|
memcpy(ptr, input.GetData(), len);
|
146
146
|
|
147
|
-
state
|
147
|
+
state.value = string_t(ptr, len);
|
148
148
|
}
|
149
149
|
}
|
150
150
|
|
151
151
|
template <class T, class STATE>
|
152
|
-
static void Finalize(
|
153
|
-
if (!state
|
154
|
-
|
152
|
+
static void Finalize(STATE &state, T &target, AggregateFinalizeData &finalize_data) {
|
153
|
+
if (!state.is_set) {
|
154
|
+
finalize_data.ReturnNull();
|
155
155
|
} else {
|
156
|
-
target
|
156
|
+
target = finalize_data.ReturnString(state.value);
|
157
157
|
}
|
158
158
|
}
|
159
159
|
};
|
@@ -161,30 +161,30 @@ struct BitStringBitwiseOperation : public BitwiseOperation {
|
|
161
161
|
struct BitStringAndOperation : public BitStringBitwiseOperation {
|
162
162
|
|
163
163
|
template <class INPUT_TYPE, class STATE>
|
164
|
-
static void Execute(STATE
|
165
|
-
Bit::BitwiseAnd(input, state
|
164
|
+
static void Execute(STATE &state, INPUT_TYPE input) {
|
165
|
+
Bit::BitwiseAnd(input, state.value, state.value);
|
166
166
|
}
|
167
167
|
};
|
168
168
|
|
169
169
|
struct BitStringOrOperation : public BitStringBitwiseOperation {
|
170
170
|
|
171
171
|
template <class INPUT_TYPE, class STATE>
|
172
|
-
static void Execute(STATE
|
173
|
-
Bit::BitwiseOr(input, state
|
172
|
+
static void Execute(STATE &state, INPUT_TYPE input) {
|
173
|
+
Bit::BitwiseOr(input, state.value, state.value);
|
174
174
|
}
|
175
175
|
};
|
176
176
|
|
177
177
|
struct BitStringXorOperation : public BitStringBitwiseOperation {
|
178
178
|
template <class INPUT_TYPE, class STATE>
|
179
|
-
static void Execute(STATE
|
180
|
-
Bit::BitwiseXor(input, state
|
179
|
+
static void Execute(STATE &state, INPUT_TYPE input) {
|
180
|
+
Bit::BitwiseXor(input, state.value, state.value);
|
181
181
|
}
|
182
182
|
|
183
183
|
template <class INPUT_TYPE, class STATE, class OP>
|
184
|
-
static void ConstantOperation(STATE
|
185
|
-
|
184
|
+
static void ConstantOperation(STATE &state, const INPUT_TYPE &input, AggregateUnaryInput &unary_input,
|
185
|
+
idx_t count) {
|
186
186
|
for (idx_t i = 0; i < count; i++) {
|
187
|
-
Operation<INPUT_TYPE, STATE, OP>(state,
|
187
|
+
Operation<INPUT_TYPE, STATE, OP>(state, input, unary_input);
|
188
188
|
}
|
189
189
|
}
|
190
190
|
};
|