duckdb 0.8.1-dev31.0 → 0.8.1-dev327.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 +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_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/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/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/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
@@ -28,7 +28,7 @@ struct SortedAggregateBindData : public FunctionData {
|
|
28
28
|
}
|
29
29
|
sorted_on_args = (children.size() == order_bys.orders.size());
|
30
30
|
for (size_t i = 0; sorted_on_args && i < children.size(); ++i) {
|
31
|
-
sorted_on_args = children[i]->Equals(order_bys.orders[i].expression
|
31
|
+
sorted_on_args = children[i]->Equals(*order_bys.orders[i].expression);
|
32
32
|
}
|
33
33
|
}
|
34
34
|
|
@@ -49,7 +49,7 @@ struct SortedAggregateBindData : public FunctionData {
|
|
49
49
|
}
|
50
50
|
|
51
51
|
bool Equals(const FunctionData &other_p) const override {
|
52
|
-
auto &other = (
|
52
|
+
auto &other = other_p.Cast<SortedAggregateBindData>();
|
53
53
|
if (bind_info && other.bind_info) {
|
54
54
|
if (!bind_info->Equals(*other.bind_info)) {
|
55
55
|
return false;
|
@@ -253,13 +253,13 @@ struct SortedAggregateState {
|
|
253
253
|
|
254
254
|
struct SortedAggregateFunction {
|
255
255
|
template <typename STATE>
|
256
|
-
static void Initialize(STATE
|
257
|
-
new (state) STATE();
|
256
|
+
static void Initialize(STATE &state) {
|
257
|
+
new (&state) STATE();
|
258
258
|
}
|
259
259
|
|
260
260
|
template <typename STATE>
|
261
|
-
static void Destroy(
|
262
|
-
state
|
261
|
+
static void Destroy(STATE &state, AggregateInputData &aggr_input_data) {
|
262
|
+
state.~STATE();
|
263
263
|
}
|
264
264
|
|
265
265
|
static void ProjectInputs(Vector inputs[], const SortedAggregateBindData &order_bind, idx_t input_count,
|
@@ -288,7 +288,7 @@ struct SortedAggregateFunction {
|
|
288
288
|
DataChunk sort_chunk;
|
289
289
|
ProjectInputs(inputs, order_bind, input_count, count, arg_chunk, sort_chunk);
|
290
290
|
|
291
|
-
const auto order_state =
|
291
|
+
const auto order_state = reinterpret_cast<SortedAggregateState *>(state);
|
292
292
|
order_state->Update(order_bind, sort_chunk, arg_chunk);
|
293
293
|
}
|
294
294
|
|
@@ -310,7 +310,7 @@ struct SortedAggregateFunction {
|
|
310
310
|
states.ToUnifiedFormat(count, svdata);
|
311
311
|
|
312
312
|
// Size the selection vector for each state.
|
313
|
-
auto sdata =
|
313
|
+
auto sdata = UnifiedVectorFormat::GetDataNoConst<SortedAggregateState *>(svdata);
|
314
314
|
for (idx_t i = 0; i < count; ++i) {
|
315
315
|
auto sidx = svdata.sel->get_index(i);
|
316
316
|
auto order_state = sdata[sidx];
|
@@ -345,10 +345,10 @@ struct SortedAggregateFunction {
|
|
345
345
|
}
|
346
346
|
|
347
347
|
template <class STATE, class OP>
|
348
|
-
static void Combine(const STATE &source, STATE
|
349
|
-
|
348
|
+
static void Combine(const STATE &source, STATE &target, AggregateInputData &aggr_input_data) {
|
349
|
+
auto &order_bind = aggr_input_data.bind_data->Cast<SortedAggregateBindData>();
|
350
350
|
auto &other = const_cast<STATE &>(source);
|
351
|
-
target
|
351
|
+
target.Combine(order_bind, other);
|
352
352
|
}
|
353
353
|
|
354
354
|
static void Window(Vector inputs[], const ValidityMask &filter_mask, AggregateInputData &aggr_input_data,
|
@@ -359,7 +359,7 @@ struct SortedAggregateFunction {
|
|
359
359
|
|
360
360
|
static void Finalize(Vector &states, AggregateInputData &aggr_input_data, Vector &result, idx_t count,
|
361
361
|
const idx_t offset) {
|
362
|
-
|
362
|
+
auto &order_bind = aggr_input_data.bind_data->Cast<SortedAggregateBindData>();
|
363
363
|
auto &buffer_manager = order_bind.buffer_manager;
|
364
364
|
RowLayout payload_layout;
|
365
365
|
payload_layout.Initialize(order_bind.arg_types);
|
@@ -370,7 +370,7 @@ struct SortedAggregateFunction {
|
|
370
370
|
|
371
371
|
// Reusable inner state
|
372
372
|
vector<data_t> agg_state(order_bind.function.state_size());
|
373
|
-
Vector agg_state_vec(Value::POINTER((
|
373
|
+
Vector agg_state_vec(Value::POINTER(CastPointerToValue(agg_state.data())));
|
374
374
|
|
375
375
|
// State variables
|
376
376
|
auto bind_info = order_bind.bind_info.get();
|
@@ -158,7 +158,7 @@ int64_t CastFunctionSet::ImplicitCastCost(const LogicalType &source, const Logic
|
|
158
158
|
|
159
159
|
BoundCastInfo MapCastFunction(BindCastInput &input, const LogicalType &source, const LogicalType &target) {
|
160
160
|
D_ASSERT(input.info);
|
161
|
-
auto &map_info =
|
161
|
+
auto &map_info = input.info->Cast<MapCastInfo>();
|
162
162
|
auto entry = map_info.GetEntry(source, target);
|
163
163
|
if (entry) {
|
164
164
|
if (entry->bind_function) {
|
@@ -207,7 +207,7 @@ struct DecimalCastInput {
|
|
207
207
|
struct StringCastFromDecimalOperator {
|
208
208
|
template <class INPUT_TYPE, class RESULT_TYPE>
|
209
209
|
static RESULT_TYPE Operation(INPUT_TYPE input, ValidityMask &mask, idx_t idx, void *dataptr) {
|
210
|
-
auto data =
|
210
|
+
auto data = reinterpret_cast<DecimalCastInput *>(dataptr);
|
211
211
|
return StringCastFromDecimal::Operation<INPUT_TYPE>(input, data->width, data->scale, data->result);
|
212
212
|
}
|
213
213
|
};
|
@@ -17,7 +17,7 @@ bool EnumEnumCast(Vector &source, Vector &result, idx_t count, CastParameters &p
|
|
17
17
|
UnifiedVectorFormat vdata;
|
18
18
|
source.ToUnifiedFormat(count, vdata);
|
19
19
|
|
20
|
-
auto source_data = (
|
20
|
+
auto source_data = UnifiedVectorFormat::GetData<SRC_TYPE>(vdata);
|
21
21
|
auto source_sel = vdata.sel;
|
22
22
|
auto source_mask = vdata.validity;
|
23
23
|
|
@@ -71,7 +71,7 @@ static bool EnumToVarcharCast(Vector &source, Vector &result, idx_t count, CastP
|
|
71
71
|
UnifiedVectorFormat vdata;
|
72
72
|
source.ToUnifiedFormat(count, vdata);
|
73
73
|
|
74
|
-
auto source_data = (
|
74
|
+
auto source_data = UnifiedVectorFormat::GetData<SRC>(vdata);
|
75
75
|
for (idx_t i = 0; i < count; i++) {
|
76
76
|
auto source_idx = vdata.sel->get_index(i);
|
77
77
|
if (!vdata.validity.RowIsValid(source_idx)) {
|
@@ -51,12 +51,10 @@ bool ListCast::ListToListCast(Vector &source, Vector &result, idx_t count, CastP
|
|
51
51
|
auto &append_vector = ListVector::GetEntry(result);
|
52
52
|
|
53
53
|
CastParameters child_parameters(parameters, cast_data.child_cast_info.cast_data, parameters.local_state);
|
54
|
-
|
55
|
-
return false;
|
56
|
-
}
|
54
|
+
bool all_succeeded = cast_data.child_cast_info.function(source_cc, append_vector, source_size, child_parameters);
|
57
55
|
ListVector::SetListSize(result, source_size);
|
58
56
|
D_ASSERT(ListVector::GetListSize(result) == source_size);
|
59
|
-
return
|
57
|
+
return all_succeeded;
|
60
58
|
}
|
61
59
|
|
62
60
|
static bool ListToVarcharCast(Vector &source, Vector &result, idx_t count, CastParameters ¶meters) {
|
@@ -8,7 +8,7 @@
|
|
8
8
|
namespace duckdb {
|
9
9
|
|
10
10
|
template <class T>
|
11
|
-
bool StringEnumCastLoop(string_t *source_data, ValidityMask &source_mask, const LogicalType &source_type,
|
11
|
+
bool StringEnumCastLoop(const string_t *source_data, ValidityMask &source_mask, const LogicalType &source_type,
|
12
12
|
T *result_data, ValidityMask &result_mask, const LogicalType &result_type, idx_t count,
|
13
13
|
string *error_message, const SelectionVector *sel) {
|
14
14
|
bool all_converted = true;
|
@@ -55,7 +55,7 @@ bool StringEnumCast(Vector &source, Vector &result, idx_t count, CastParameters
|
|
55
55
|
|
56
56
|
result.SetVectorType(VectorType::FLAT_VECTOR);
|
57
57
|
|
58
|
-
auto source_data = (
|
58
|
+
auto source_data = UnifiedVectorFormat::GetData<string_t>(vdata);
|
59
59
|
auto source_sel = vdata.sel;
|
60
60
|
auto source_mask = vdata.validity;
|
61
61
|
auto result_data = FlatVector::GetData<T>(result);
|
@@ -119,9 +119,9 @@ static BoundCastInfo VectorStringCastNumericSwitch(BindCastInput &input, const L
|
|
119
119
|
//===--------------------------------------------------------------------===//
|
120
120
|
// string -> list casting
|
121
121
|
//===--------------------------------------------------------------------===//
|
122
|
-
bool VectorStringToList::StringToNestedTypeCastLoop(string_t *source_data, ValidityMask &source_mask,
|
123
|
-
ValidityMask &result_mask, idx_t count,
|
124
|
-
const SelectionVector *sel) {
|
122
|
+
bool VectorStringToList::StringToNestedTypeCastLoop(const string_t *source_data, ValidityMask &source_mask,
|
123
|
+
Vector &result, ValidityMask &result_mask, idx_t count,
|
124
|
+
CastParameters ¶meters, const SelectionVector *sel) {
|
125
125
|
idx_t total_list_size = 0;
|
126
126
|
for (idx_t i = 0; i < count; i++) {
|
127
127
|
idx_t idx = i;
|
@@ -183,8 +183,8 @@ static LogicalType InitVarcharStructType(const LogicalType &target) {
|
|
183
183
|
//===--------------------------------------------------------------------===//
|
184
184
|
// string -> struct casting
|
185
185
|
//===--------------------------------------------------------------------===//
|
186
|
-
bool VectorStringToStruct::StringToNestedTypeCastLoop(string_t *source_data, ValidityMask &source_mask,
|
187
|
-
ValidityMask &result_mask, idx_t count,
|
186
|
+
bool VectorStringToStruct::StringToNestedTypeCastLoop(const string_t *source_data, ValidityMask &source_mask,
|
187
|
+
Vector &result, ValidityMask &result_mask, idx_t count,
|
188
188
|
CastParameters ¶meters, const SelectionVector *sel) {
|
189
189
|
auto varchar_struct_type = InitVarcharStructType(result.GetType());
|
190
190
|
Vector varchar_vector(varchar_struct_type, count);
|
@@ -253,9 +253,9 @@ unique_ptr<FunctionLocalState> InitMapCastLocalState(CastLocalStateParameters &p
|
|
253
253
|
return std::move(result);
|
254
254
|
}
|
255
255
|
|
256
|
-
bool VectorStringToMap::StringToNestedTypeCastLoop(string_t *source_data, ValidityMask &source_mask,
|
257
|
-
ValidityMask &result_mask, idx_t count,
|
258
|
-
const SelectionVector *sel) {
|
256
|
+
bool VectorStringToMap::StringToNestedTypeCastLoop(const string_t *source_data, ValidityMask &source_mask,
|
257
|
+
Vector &result, ValidityMask &result_mask, idx_t count,
|
258
|
+
CastParameters ¶meters, const SelectionVector *sel) {
|
259
259
|
idx_t total_elements = 0;
|
260
260
|
for (idx_t i = 0; i < count; i++) {
|
261
261
|
idx_t idx = i;
|
@@ -352,7 +352,7 @@ bool StringToNestedTypeCast(Vector &source, Vector &result, idx_t count, CastPar
|
|
352
352
|
|
353
353
|
source.ToUnifiedFormat(count, unified_source);
|
354
354
|
auto source_sel = unified_source.sel;
|
355
|
-
auto source_data = (
|
355
|
+
auto source_data = UnifiedVectorFormat::GetData<string_t>(unified_source);
|
356
356
|
auto &source_mask = unified_source.validity;
|
357
357
|
auto &result_mask = FlatVector::Validity(result);
|
358
358
|
|
@@ -293,7 +293,7 @@ static bool UnionToUnionCast(Vector &source, Vector &result, idx_t count, CastPa
|
|
293
293
|
auto source_row_idx = source_tag_format.sel->get_index(row_idx);
|
294
294
|
if (source_tag_format.validity.RowIsValid(source_row_idx)) {
|
295
295
|
// map the tag
|
296
|
-
auto source_tag = ((
|
296
|
+
auto source_tag = (UnifiedVectorFormat::GetData<union_tag_t>(source_tag_format))[source_row_idx];
|
297
297
|
auto target_tag = cast_data.tag_map[source_tag];
|
298
298
|
FlatVector::GetData<union_tag_t>(result_tag_vector)[row_idx] = target_tag;
|
299
299
|
} else {
|
@@ -339,7 +339,7 @@ static bool UnionToVarcharCast(Vector &source, Vector &result, idx_t count, Cast
|
|
339
339
|
auto mapped_idx = member_vdata.sel->get_index(i);
|
340
340
|
auto member_valid = member_vdata.validity.RowIsValid(mapped_idx);
|
341
341
|
if (member_valid) {
|
342
|
-
auto member_str = ((
|
342
|
+
auto member_str = (UnifiedVectorFormat::GetData<string_t>(member_vdata))[mapped_idx];
|
343
343
|
result_data[i] = StringVector::AddString(result, member_str);
|
344
344
|
} else {
|
345
345
|
result_data[i] = StringVector::AddString(result, "NULL");
|
@@ -299,8 +299,9 @@ static bool FindValueStruct(const char *buf, idx_t len, idx_t &pos, Vector &varc
|
|
299
299
|
return false;
|
300
300
|
}
|
301
301
|
|
302
|
-
bool VectorStringToStruct::SplitStruct(string_t &input, vector<unique_ptr<Vector>> &varchar_vectors,
|
303
|
-
string_map_t<idx_t> &child_names,
|
302
|
+
bool VectorStringToStruct::SplitStruct(const string_t &input, vector<unique_ptr<Vector>> &varchar_vectors,
|
303
|
+
idx_t &row_idx, string_map_t<idx_t> &child_names,
|
304
|
+
vector<ValidityMask *> &child_masks) {
|
304
305
|
const char *buf = input.GetData();
|
305
306
|
idx_t len = input.GetSize();
|
306
307
|
idx_t pos = 0;
|
@@ -18,21 +18,18 @@ string PragmaTableInfo(ClientContext &context, const FunctionParameters ¶met
|
|
18
18
|
}
|
19
19
|
|
20
20
|
string PragmaShowTables(ClientContext &context, const FunctionParameters ¶meters) {
|
21
|
-
auto catalog = DatabaseManager::GetDefaultDatabase(context);
|
22
|
-
auto schema = ClientData::Get(context).catalog_search_path->GetDefault().schema;
|
23
|
-
schema = (schema == INVALID_SCHEMA) ? DEFAULT_SCHEMA : schema; // NOLINT
|
24
|
-
|
25
|
-
auto where_clause = StringUtil::Format("where ((database_name = '%s') and (schema_name = '%s'))", catalog, schema);
|
26
21
|
// clang-format off
|
27
|
-
|
22
|
+
return R"EOF(
|
28
23
|
with "tables" as
|
29
24
|
(
|
30
25
|
SELECT table_name as "name"
|
31
|
-
FROM duckdb_tables
|
26
|
+
FROM duckdb_tables
|
27
|
+
where in_search_path(database_name, schema_name)
|
32
28
|
), "views" as
|
33
29
|
(
|
34
30
|
SELECT view_name as "name"
|
35
|
-
FROM duckdb_views
|
31
|
+
FROM duckdb_views
|
32
|
+
where in_search_path(database_name, schema_name)
|
36
33
|
), db_objects as
|
37
34
|
(
|
38
35
|
SELECT "name" FROM "tables"
|
@@ -41,26 +38,39 @@ string PragmaShowTables(ClientContext &context, const FunctionParameters ¶me
|
|
41
38
|
)
|
42
39
|
SELECT "name"
|
43
40
|
FROM db_objects
|
44
|
-
ORDER BY "name";)EOF"
|
41
|
+
ORDER BY "name";)EOF";
|
45
42
|
// clang-format on
|
46
|
-
|
47
|
-
return pragma_query;
|
48
43
|
}
|
49
44
|
|
50
45
|
string PragmaShowTablesExpanded(ClientContext &context, const FunctionParameters ¶meters) {
|
51
46
|
return R"(
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
47
|
+
SELECT
|
48
|
+
t.database_name AS database,
|
49
|
+
t.schema_name AS schema,
|
50
|
+
t.table_name AS name,
|
51
|
+
LIST(c.column_name order by c.column_index) AS column_names,
|
52
|
+
LIST(c.data_type order by c.column_index) AS column_types,
|
53
|
+
FIRST(t.temporary) AS temporary,
|
54
|
+
FROM duckdb_tables t
|
55
|
+
JOIN duckdb_columns c
|
56
|
+
USING (table_oid)
|
57
|
+
GROUP BY database, schema, name
|
58
|
+
|
59
|
+
UNION ALL
|
60
|
+
|
61
|
+
SELECT
|
62
|
+
v.database_name AS database,
|
63
|
+
v.schema_name AS schema,
|
64
|
+
v.view_name AS name,
|
65
|
+
LIST(c.column_name order by c.column_index) AS column_names,
|
66
|
+
LIST(c.data_type order by c.column_index) AS column_types,
|
67
|
+
FIRST(v.temporary) AS temporary,
|
68
|
+
FROM duckdb_views v
|
69
|
+
JOIN duckdb_columns c
|
70
|
+
ON (v.view_oid=c.table_oid)
|
71
|
+
GROUP BY database, schema, name
|
72
|
+
|
73
|
+
ORDER BY database, schema, name
|
64
74
|
)";
|
65
75
|
}
|
66
76
|
|
@@ -25,8 +25,8 @@ static void ListConcatFunction(DataChunk &args, ExpressionState &state, Vector &
|
|
25
25
|
UnifiedVectorFormat rhs_data;
|
26
26
|
lhs.ToUnifiedFormat(count, lhs_data);
|
27
27
|
rhs.ToUnifiedFormat(count, rhs_data);
|
28
|
-
auto lhs_entries = (
|
29
|
-
auto rhs_entries = (
|
28
|
+
auto lhs_entries = UnifiedVectorFormat::GetData<list_entry_t>(lhs_data);
|
29
|
+
auto rhs_entries = UnifiedVectorFormat::GetData<list_entry_t>(rhs_data);
|
30
30
|
|
31
31
|
auto lhs_list_size = ListVector::GetListSize(lhs);
|
32
32
|
auto rhs_list_size = ListVector::GetListSize(rhs);
|
@@ -32,7 +32,7 @@ void ListExtractTemplate(idx_t count, UnifiedVectorFormat &list_data, UnifiedVec
|
|
32
32
|
|
33
33
|
// this is lifted from ExecuteGenericLoop because we can't push the list child data into this otherwise
|
34
34
|
// should have gone with GetValue perhaps
|
35
|
-
auto child_data = (
|
35
|
+
auto child_data = UnifiedVectorFormat::GetData<T>(child_format);
|
36
36
|
for (idx_t i = 0; i < count; i++) {
|
37
37
|
auto list_index = list_data.sel->get_index(i);
|
38
38
|
auto offsets_index = offsets_data.sel->get_index(i);
|
@@ -44,8 +44,8 @@ void ListExtractTemplate(idx_t count, UnifiedVectorFormat &list_data, UnifiedVec
|
|
44
44
|
result_mask.SetInvalid(i);
|
45
45
|
continue;
|
46
46
|
}
|
47
|
-
auto list_entry = ((
|
48
|
-
auto offsets_entry = ((
|
47
|
+
auto list_entry = (UnifiedVectorFormat::GetData<list_entry_t>(list_data))[list_index];
|
48
|
+
auto offsets_entry = (UnifiedVectorFormat::GetData<int64_t>(offsets_data))[offsets_index];
|
49
49
|
|
50
50
|
// 1-based indexing
|
51
51
|
if (offsets_entry == 0) {
|
@@ -249,9 +249,8 @@ unique_ptr<FunctionData> BindDecimalAddSubtract(ClientContext &context, ScalarFu
|
|
249
249
|
|
250
250
|
static void SerializeDecimalArithmetic(FieldWriter &writer, const FunctionData *bind_data_p,
|
251
251
|
const ScalarFunction &function) {
|
252
|
-
|
253
|
-
|
254
|
-
writer.WriteField(bind_data->check_overflow);
|
252
|
+
auto &bind_data = bind_data_p->Cast<DecimalArithmeticBindData>();
|
253
|
+
writer.WriteField(bind_data.check_overflow);
|
255
254
|
writer.WriteSerializable(function.return_type);
|
256
255
|
writer.WriteRegularSerializableList(function.arguments);
|
257
256
|
}
|
@@ -31,7 +31,7 @@ static void ConcatFunction(DataChunk &args, ExpressionState &state, Vector &resu
|
|
31
31
|
UnifiedVectorFormat vdata;
|
32
32
|
input.ToUnifiedFormat(args.size(), vdata);
|
33
33
|
|
34
|
-
auto input_data = (
|
34
|
+
auto input_data = UnifiedVectorFormat::GetData<string_t>(vdata);
|
35
35
|
// now add the length of each vector to the result length
|
36
36
|
for (idx_t i = 0; i < args.size(); i++) {
|
37
37
|
auto idx = vdata.sel->get_index(i);
|
@@ -77,7 +77,7 @@ static void ConcatFunction(DataChunk &args, ExpressionState &state, Vector &resu
|
|
77
77
|
UnifiedVectorFormat idata;
|
78
78
|
input.ToUnifiedFormat(args.size(), idata);
|
79
79
|
|
80
|
-
auto input_data = (
|
80
|
+
auto input_data = UnifiedVectorFormat::GetData<string_t>(idata);
|
81
81
|
for (idx_t i = 0; i < args.size(); i++) {
|
82
82
|
auto idx = idata.sel->get_index(i);
|
83
83
|
if (!idata.validity.RowIsValid(idx)) {
|
@@ -114,7 +114,7 @@ static void ConcatOperator(DataChunk &args, ExpressionState &state, Vector &resu
|
|
114
114
|
});
|
115
115
|
}
|
116
116
|
|
117
|
-
static void TemplatedConcatWS(DataChunk &args, string_t *sep_data, const SelectionVector &sep_sel,
|
117
|
+
static void TemplatedConcatWS(DataChunk &args, const string_t *sep_data, const SelectionVector &sep_sel,
|
118
118
|
const SelectionVector &rsel, idx_t count, Vector &result) {
|
119
119
|
vector<idx_t> result_lengths(args.size(), 0);
|
120
120
|
vector<bool> has_results(args.size(), false);
|
@@ -127,7 +127,7 @@ static void TemplatedConcatWS(DataChunk &args, string_t *sep_data, const Selecti
|
|
127
127
|
for (idx_t col_idx = 1; col_idx < args.ColumnCount(); col_idx++) {
|
128
128
|
auto &idata = orrified_data[col_idx - 1];
|
129
129
|
|
130
|
-
auto input_data = (
|
130
|
+
auto input_data = UnifiedVectorFormat::GetData<string_t>(idata);
|
131
131
|
for (idx_t i = 0; i < count; i++) {
|
132
132
|
auto ridx = rsel.get_index(i);
|
133
133
|
auto sep_idx = sep_sel.get_index(ridx);
|
@@ -157,7 +157,7 @@ static void TemplatedConcatWS(DataChunk &args, string_t *sep_data, const Selecti
|
|
157
157
|
// now that the empty space for the strings has been allocated, perform the concatenation
|
158
158
|
for (idx_t col_idx = 1; col_idx < args.ColumnCount(); col_idx++) {
|
159
159
|
auto &idata = orrified_data[col_idx - 1];
|
160
|
-
auto input_data = (
|
160
|
+
auto input_data = UnifiedVectorFormat::GetData<string_t>(idata);
|
161
161
|
for (idx_t i = 0; i < count; i++) {
|
162
162
|
auto ridx = rsel.get_index(i);
|
163
163
|
auto sep_idx = sep_sel.get_index(ridx);
|
@@ -206,7 +206,7 @@ static void ConcatWSFunction(DataChunk &args, ExpressionState &state, Vector &re
|
|
206
206
|
}
|
207
207
|
// no null values
|
208
208
|
auto sel = FlatVector::IncrementalSelectionVector();
|
209
|
-
TemplatedConcatWS(args, (
|
209
|
+
TemplatedConcatWS(args, UnifiedVectorFormat::GetData<string_t>(vdata), *vdata.sel, *sel, args.size(), result);
|
210
210
|
return;
|
211
211
|
}
|
212
212
|
default: {
|
@@ -221,7 +221,8 @@ static void ConcatWSFunction(DataChunk &args, ExpressionState &state, Vector &re
|
|
221
221
|
not_null_vector.set_index(not_null_count++, i);
|
222
222
|
}
|
223
223
|
}
|
224
|
-
TemplatedConcatWS(args, (
|
224
|
+
TemplatedConcatWS(args, UnifiedVectorFormat::GetData<string_t>(vdata), *vdata.sel, not_null_vector,
|
225
|
+
not_null_count, result);
|
225
226
|
return;
|
226
227
|
}
|
227
228
|
}
|
@@ -106,9 +106,9 @@ idx_t ContainsFun::Find(const unsigned char *haystack, idx_t haystack_size, cons
|
|
106
106
|
if (location == nullptr) {
|
107
107
|
return DConstants::INVALID_INDEX;
|
108
108
|
}
|
109
|
-
idx_t base_offset = (
|
109
|
+
idx_t base_offset = const_uchar_ptr_cast(location) - haystack;
|
110
110
|
haystack_size -= base_offset;
|
111
|
-
haystack = (
|
111
|
+
haystack = const_uchar_ptr_cast(location);
|
112
112
|
// switch algorithm depending on needle size
|
113
113
|
switch (needle_size) {
|
114
114
|
case 1:
|
@@ -133,9 +133,9 @@ idx_t ContainsFun::Find(const unsigned char *haystack, idx_t haystack_size, cons
|
|
133
133
|
}
|
134
134
|
|
135
135
|
idx_t ContainsFun::Find(const string_t &haystack_s, const string_t &needle_s) {
|
136
|
-
auto haystack = (
|
136
|
+
auto haystack = const_uchar_ptr_cast(haystack_s.GetData());
|
137
137
|
auto haystack_size = haystack_s.GetSize();
|
138
|
-
auto needle = (
|
138
|
+
auto needle = const_uchar_ptr_cast(needle_s.GetData());
|
139
139
|
auto needle_size = needle_s.GetSize();
|
140
140
|
if (needle_size == 0) {
|
141
141
|
// empty needle: always true
|
@@ -78,7 +78,7 @@ struct LikeMatcher : public FunctionData {
|
|
78
78
|
}
|
79
79
|
|
80
80
|
bool Match(string_t &str) {
|
81
|
-
auto str_data = (
|
81
|
+
auto str_data = const_uchar_ptr_cast(str.GetData());
|
82
82
|
auto str_len = str.GetSize();
|
83
83
|
idx_t segment_idx = 0;
|
84
84
|
idx_t end_idx = segments.size() - 1;
|
@@ -105,7 +105,7 @@ struct LikeMatcher : public FunctionData {
|
|
105
105
|
for (; segment_idx < end_idx; segment_idx++) {
|
106
106
|
auto &segment = segments[segment_idx];
|
107
107
|
// find the pattern of the current segment
|
108
|
-
idx_t next_offset = ContainsFun::Find(str_data, str_len, (
|
108
|
+
idx_t next_offset = ContainsFun::Find(str_data, str_len, const_uchar_ptr_cast(segment.pattern.c_str()),
|
109
109
|
segment.pattern.size());
|
110
110
|
if (next_offset == DConstants::INVALID_INDEX) {
|
111
111
|
// could not find this pattern in the string: no match
|
@@ -130,7 +130,7 @@ struct LikeMatcher : public FunctionData {
|
|
130
130
|
} else {
|
131
131
|
auto &segment = segments.back();
|
132
132
|
// find the pattern of the current segment
|
133
|
-
idx_t next_offset = ContainsFun::Find(str_data, str_len, (
|
133
|
+
idx_t next_offset = ContainsFun::Find(str_data, str_len, const_uchar_ptr_cast(segment.pattern.c_str()),
|
134
134
|
segment.pattern.size());
|
135
135
|
return next_offset != DConstants::INVALID_INDEX;
|
136
136
|
}
|
@@ -179,7 +179,7 @@ struct LikeMatcher : public FunctionData {
|
|
179
179
|
}
|
180
180
|
|
181
181
|
bool Equals(const FunctionData &other_p) const override {
|
182
|
-
auto &other = (
|
182
|
+
auto &other = other_p.Cast<LikeMatcher>();
|
183
183
|
return like_pattern == other.like_pattern;
|
184
184
|
}
|
185
185
|
|
@@ -491,7 +491,7 @@ template <class OP, bool INVERT>
|
|
491
491
|
static void RegularLikeFunction(DataChunk &input, ExpressionState &state, Vector &result) {
|
492
492
|
auto &func_expr = state.expr.Cast<BoundFunctionExpression>();
|
493
493
|
if (func_expr.bind_info) {
|
494
|
-
auto &matcher =
|
494
|
+
auto &matcher = func_expr.bind_info->Cast<LikeMatcher>();
|
495
495
|
// use fast like matcher
|
496
496
|
UnaryExecutor::Execute<string_t, bool>(input.data[0], result, input.size(), [&](string_t input) {
|
497
497
|
return INVERT ? !matcher.Match(input) : matcher.Match(input);
|
@@ -94,7 +94,7 @@ void ExtractSingleTuple(const string_t &string, duckdb_re2::RE2 &pattern, int32_
|
|
94
94
|
} else {
|
95
95
|
// Every group is a substring of the original, we can find out the offset using the pointer
|
96
96
|
// the 'match_group' address is guaranteed to be bigger than that of the source
|
97
|
-
D_ASSERT((
|
97
|
+
D_ASSERT(const_char_ptr_cast(match_group.begin()) >= string.GetData());
|
98
98
|
idx_t offset = match_group.begin() - string.GetData();
|
99
99
|
list_content[child_idx] = string_t(string.GetData() + offset, match_group.size());
|
100
100
|
}
|
@@ -119,7 +119,7 @@ int32_t GetGroupIndex(DataChunk &args, idx_t row, int32_t &result) {
|
|
119
119
|
if (!format.validity.RowIsValid(index)) {
|
120
120
|
return false;
|
121
121
|
}
|
122
|
-
result = (
|
122
|
+
result = UnifiedVectorFormat::GetData<int32_t>(format)[index];
|
123
123
|
return true;
|
124
124
|
}
|
125
125
|
|
@@ -188,7 +188,7 @@ void RegexpExtractAll::Execute(DataChunk &args, ExpressionState &state, Vector &
|
|
188
188
|
if (!pattern_data.validity.RowIsValid(pattern_idx)) {
|
189
189
|
pattern_valid = false;
|
190
190
|
} else {
|
191
|
-
auto &pattern_p = (
|
191
|
+
auto &pattern_p = UnifiedVectorFormat::GetData<string_t>(pattern_data)[pattern_idx];
|
192
192
|
auto pattern_strpiece = CreateStringPiece(pattern_p);
|
193
193
|
stored_re = make_uniq<duckdb_re2::RE2>(pattern_strpiece, info.options);
|
194
194
|
|
@@ -216,7 +216,7 @@ void RegexpExtractAll::Execute(DataChunk &args, ExpressionState &state, Vector &
|
|
216
216
|
|
217
217
|
auto &re = GetPattern(info, state, stored_re);
|
218
218
|
auto &groups = GetGroupsBuffer(info, state, non_const_args);
|
219
|
-
auto &string = (
|
219
|
+
auto &string = UnifiedVectorFormat::GetData<string_t>(strings_data)[string_idx];
|
220
220
|
ExtractSingleTuple(string, re, group_index, groups, result, row);
|
221
221
|
}
|
222
222
|
|
@@ -69,9 +69,13 @@ void ParseRegexOptions(ClientContext &context, Expression &expr, RE2::Options &t
|
|
69
69
|
throw InvalidInputException("Regex options field must be a constant");
|
70
70
|
}
|
71
71
|
Value options_str = ExpressionExecutor::EvaluateScalar(context, expr);
|
72
|
-
if (
|
73
|
-
|
72
|
+
if (options_str.IsNull()) {
|
73
|
+
throw InvalidInputException("Regex options field must not be NULL");
|
74
74
|
}
|
75
|
+
if (options_str.type().id() != LogicalTypeId::VARCHAR) {
|
76
|
+
throw InvalidInputException("Regex options field must be a string");
|
77
|
+
}
|
78
|
+
ParseRegexOptions(StringValue::Get(options_str), target, global_replace);
|
75
79
|
}
|
76
80
|
|
77
81
|
} // namespace regexp_util
|
@@ -146,7 +146,7 @@ unique_ptr<FunctionData> RegexpReplaceBindData::Copy() const {
|
|
146
146
|
}
|
147
147
|
|
148
148
|
bool RegexpReplaceBindData::Equals(const FunctionData &other_p) const {
|
149
|
-
auto &other = (
|
149
|
+
auto &other = other_p.Cast<RegexpReplaceBindData>();
|
150
150
|
return RegexpBaseBindData::Equals(other) && global_replace == other.global_replace;
|
151
151
|
}
|
152
152
|
|
@@ -214,7 +214,7 @@ unique_ptr<FunctionData> RegexpExtractBindData::Copy() const {
|
|
214
214
|
}
|
215
215
|
|
216
216
|
bool RegexpExtractBindData::Equals(const FunctionData &other_p) const {
|
217
|
-
auto &other = (
|
217
|
+
auto &other = other_p.Cast<RegexpExtractBindData>();
|
218
218
|
return RegexpBaseBindData::Equals(other) && group_string == other.group_string;
|
219
219
|
}
|
220
220
|
|
@@ -286,7 +286,7 @@ static void RegexExtractStructFunction(DataChunk &args, ExpressionState &state,
|
|
286
286
|
input.ToUnifiedFormat(count, iunified);
|
287
287
|
|
288
288
|
const auto &ivalidity = iunified.validity;
|
289
|
-
auto idata = (
|
289
|
+
auto idata = UnifiedVectorFormat::GetData<string_t>(iunified);
|
290
290
|
|
291
291
|
// Start with a valid flat vector
|
292
292
|
result.SetVectorType(VectorType::FLAT_VECTOR);
|
@@ -23,7 +23,7 @@ struct StripAccentsOperator {
|
|
23
23
|
|
24
24
|
// non-ascii, perform collation
|
25
25
|
auto stripped = utf8proc_remove_accents((const utf8proc_uint8_t *)input.GetData(), input.GetSize());
|
26
|
-
auto result_str = StringVector::AddString(result, (
|
26
|
+
auto result_str = StringVector::AddString(result, const_char_ptr_cast(stripped));
|
27
27
|
free(stripped);
|
28
28
|
return result_str;
|
29
29
|
}
|
@@ -21,7 +21,7 @@ public:
|
|
21
21
|
return make_uniq<StructExtractBindData>(key, index, type);
|
22
22
|
}
|
23
23
|
bool Equals(const FunctionData &other_p) const override {
|
24
|
-
auto &other = (
|
24
|
+
auto &other = other_p.Cast<StructExtractBindData>();
|
25
25
|
return key == other.key && index == other.index && type == other.type;
|
26
26
|
}
|
27
27
|
};
|