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
@@ -23,7 +23,7 @@ struct ExportAggregateBindData : public FunctionData {
|
|
23
23
|
}
|
24
24
|
|
25
25
|
bool Equals(const FunctionData &other_p) const override {
|
26
|
-
auto &other = (
|
26
|
+
auto &other = other_p.Cast<ExportAggregateBindData>();
|
27
27
|
return aggr == other.aggr && state_size == other.state_size;
|
28
28
|
}
|
29
29
|
|
@@ -42,14 +42,14 @@ struct CombineState : public FunctionLocalState {
|
|
42
42
|
explicit CombineState(idx_t state_size_p)
|
43
43
|
: state_size(state_size_p), state_buffer0(make_unsafe_uniq_array<data_t>(state_size_p)),
|
44
44
|
state_buffer1(make_unsafe_uniq_array<data_t>(state_size_p)),
|
45
|
-
state_vector0(Value::POINTER((
|
46
|
-
state_vector1(Value::POINTER((
|
45
|
+
state_vector0(Value::POINTER(CastPointerToValue(state_buffer0.get()))),
|
46
|
+
state_vector1(Value::POINTER(CastPointerToValue(state_buffer1.get()))) {
|
47
47
|
}
|
48
48
|
};
|
49
49
|
|
50
50
|
static unique_ptr<FunctionLocalState> InitCombineState(ExpressionState &state, const BoundFunctionExpression &expr,
|
51
51
|
FunctionData *bind_data_p) {
|
52
|
-
auto &bind_data =
|
52
|
+
auto &bind_data = bind_data_p->Cast<ExportAggregateBindData>();
|
53
53
|
return make_uniq<CombineState>(bind_data.state_size);
|
54
54
|
}
|
55
55
|
|
@@ -67,13 +67,13 @@ struct FinalizeState : public FunctionLocalState {
|
|
67
67
|
|
68
68
|
static unique_ptr<FunctionLocalState> InitFinalizeState(ExpressionState &state, const BoundFunctionExpression &expr,
|
69
69
|
FunctionData *bind_data_p) {
|
70
|
-
auto &bind_data =
|
70
|
+
auto &bind_data = bind_data_p->Cast<ExportAggregateBindData>();
|
71
71
|
return make_uniq<FinalizeState>(bind_data.state_size);
|
72
72
|
}
|
73
73
|
|
74
74
|
static void AggregateStateFinalize(DataChunk &input, ExpressionState &state_p, Vector &result) {
|
75
75
|
auto &bind_data = ExportAggregateBindData::GetFrom(state_p);
|
76
|
-
auto &local_state = (FinalizeState
|
76
|
+
auto &local_state = ExecuteFunctionState::GetFunctionState(state_p)->Cast<FinalizeState>();
|
77
77
|
|
78
78
|
D_ASSERT(bind_data.state_size == bind_data.aggr.state_size());
|
79
79
|
D_ASSERT(input.data.size() == 1);
|
@@ -86,8 +86,8 @@ static void AggregateStateFinalize(DataChunk &input, ExpressionState &state_p, V
|
|
86
86
|
input.data[0].ToUnifiedFormat(input.size(), state_data);
|
87
87
|
for (idx_t i = 0; i < input.size(); i++) {
|
88
88
|
auto state_idx = state_data.sel->get_index(i);
|
89
|
-
auto state_entry =
|
90
|
-
auto target_ptr = (
|
89
|
+
auto state_entry = UnifiedVectorFormat::GetData<string_t>(state_data) + state_idx;
|
90
|
+
auto target_ptr = char_ptr_cast(local_state.state_buffer.get()) + aligned_state_size * i;
|
91
91
|
|
92
92
|
if (state_data.validity.RowIsValid(state_idx)) {
|
93
93
|
D_ASSERT(state_entry->GetSize() == bind_data.state_size);
|
@@ -95,9 +95,9 @@ static void AggregateStateFinalize(DataChunk &input, ExpressionState &state_p, V
|
|
95
95
|
} else {
|
96
96
|
// create a dummy state because finalize does not understand NULLs in its input
|
97
97
|
// we put the NULL back in explicitly below
|
98
|
-
bind_data.aggr.initialize((
|
98
|
+
bind_data.aggr.initialize(data_ptr_cast(target_ptr));
|
99
99
|
}
|
100
|
-
state_vec_ptr[i] = (
|
100
|
+
state_vec_ptr[i] = data_ptr_cast(target_ptr);
|
101
101
|
}
|
102
102
|
|
103
103
|
AggregateInputData aggr_input_data(nullptr, Allocator::DefaultAllocator());
|
@@ -113,7 +113,7 @@ static void AggregateStateFinalize(DataChunk &input, ExpressionState &state_p, V
|
|
113
113
|
|
114
114
|
static void AggregateStateCombine(DataChunk &input, ExpressionState &state_p, Vector &result) {
|
115
115
|
auto &bind_data = ExportAggregateBindData::GetFrom(state_p);
|
116
|
-
auto &local_state = (CombineState
|
116
|
+
auto &local_state = ExecuteFunctionState::GetFunctionState(state_p)->Cast<CombineState>();
|
117
117
|
|
118
118
|
D_ASSERT(bind_data.state_size == bind_data.aggr.state_size());
|
119
119
|
|
@@ -136,8 +136,8 @@ static void AggregateStateCombine(DataChunk &input, ExpressionState &state_p, Ve
|
|
136
136
|
auto state0_idx = state0_data.sel->get_index(i);
|
137
137
|
auto state1_idx = state1_data.sel->get_index(i);
|
138
138
|
|
139
|
-
auto &state0 = (
|
140
|
-
auto &state1 = (
|
139
|
+
auto &state0 = UnifiedVectorFormat::GetData<string_t>(state0_data)[state0_idx];
|
140
|
+
auto &state1 = UnifiedVectorFormat::GetData<string_t>(state1_data)[state1_idx];
|
141
141
|
|
142
142
|
// if both are NULL, we return NULL. If either of them is not, the result is that one
|
143
143
|
if (!state0_data.validity.RowIsValid(state0_idx) && !state1_data.validity.RowIsValid(state1_idx)) {
|
@@ -145,11 +145,13 @@ static void AggregateStateCombine(DataChunk &input, ExpressionState &state_p, Ve
|
|
145
145
|
continue;
|
146
146
|
}
|
147
147
|
if (state0_data.validity.RowIsValid(state0_idx) && !state1_data.validity.RowIsValid(state1_idx)) {
|
148
|
-
result_ptr[i] =
|
148
|
+
result_ptr[i] =
|
149
|
+
StringVector::AddStringOrBlob(result, const_char_ptr_cast(state0.GetData()), bind_data.state_size);
|
149
150
|
continue;
|
150
151
|
}
|
151
152
|
if (!state0_data.validity.RowIsValid(state0_idx) && state1_data.validity.RowIsValid(state1_idx)) {
|
152
|
-
result_ptr[i] =
|
153
|
+
result_ptr[i] =
|
154
|
+
StringVector::AddStringOrBlob(result, const_char_ptr_cast(state1.GetData()), bind_data.state_size);
|
153
155
|
continue;
|
154
156
|
}
|
155
157
|
|
@@ -165,8 +167,8 @@ static void AggregateStateCombine(DataChunk &input, ExpressionState &state_p, Ve
|
|
165
167
|
AggregateInputData aggr_input_data(nullptr, Allocator::DefaultAllocator());
|
166
168
|
bind_data.aggr.combine(local_state.state_vector0, local_state.state_vector1, aggr_input_data, 1);
|
167
169
|
|
168
|
-
result_ptr[i] =
|
169
|
-
|
170
|
+
result_ptr[i] = StringVector::AddStringOrBlob(result, const_char_ptr_cast(local_state.state_buffer1.get()),
|
171
|
+
bind_data.state_size);
|
170
172
|
}
|
171
173
|
}
|
172
174
|
|
@@ -244,19 +246,19 @@ static unique_ptr<FunctionData> BindAggregateState(ClientContext &context, Scala
|
|
244
246
|
static void ExportAggregateFinalize(Vector &state, AggregateInputData &aggr_input_data, Vector &result, idx_t count,
|
245
247
|
idx_t offset) {
|
246
248
|
D_ASSERT(offset == 0);
|
247
|
-
auto bind_data =
|
248
|
-
auto state_size = bind_data
|
249
|
+
auto &bind_data = aggr_input_data.bind_data->Cast<ExportAggregateFunctionBindData>();
|
250
|
+
auto state_size = bind_data.aggregate->function.state_size();
|
249
251
|
auto blob_ptr = FlatVector::GetData<string_t>(result);
|
250
252
|
auto addresses_ptr = FlatVector::GetData<data_ptr_t>(state);
|
251
253
|
for (idx_t row_idx = 0; row_idx < count; row_idx++) {
|
252
254
|
auto data_ptr = addresses_ptr[row_idx];
|
253
|
-
blob_ptr[row_idx] = StringVector::AddStringOrBlob(result, (
|
255
|
+
blob_ptr[row_idx] = StringVector::AddStringOrBlob(result, const_char_ptr_cast(data_ptr), state_size);
|
254
256
|
}
|
255
257
|
}
|
256
258
|
|
257
259
|
ExportAggregateFunctionBindData::ExportAggregateFunctionBindData(unique_ptr<Expression> aggregate_p) {
|
258
260
|
D_ASSERT(aggregate_p->type == ExpressionType::BOUND_AGGREGATE);
|
259
|
-
aggregate =
|
261
|
+
aggregate = unique_ptr_cast<Expression, BoundAggregateExpression>(std::move(aggregate_p));
|
260
262
|
}
|
261
263
|
|
262
264
|
unique_ptr<FunctionData> ExportAggregateFunctionBindData::Copy() const {
|
@@ -264,8 +266,8 @@ unique_ptr<FunctionData> ExportAggregateFunctionBindData::Copy() const {
|
|
264
266
|
}
|
265
267
|
|
266
268
|
bool ExportAggregateFunctionBindData::Equals(const FunctionData &other_p) const {
|
267
|
-
auto &other = (
|
268
|
-
return aggregate->Equals(other.aggregate
|
269
|
+
auto &other = other_p.Cast<ExportAggregateFunctionBindData>();
|
270
|
+
return aggregate->Equals(*other.aggregate);
|
269
271
|
}
|
270
272
|
|
271
273
|
static void ExportStateAggregateSerialize(FieldWriter &writer, const FunctionData *bind_data_p,
|
@@ -59,8 +59,8 @@ bool ScalarFunction::Equal(const ScalarFunction &rhs) const {
|
|
59
59
|
bool ScalarFunction::CompareScalarFunctionT(const scalar_function_t &other) const {
|
60
60
|
typedef void(scalar_function_ptr_t)(DataChunk &, ExpressionState &, Vector &);
|
61
61
|
|
62
|
-
auto func_ptr = (scalar_function_ptr_t **)function.template target<scalar_function_ptr_t *>();
|
63
|
-
auto other_ptr = (scalar_function_ptr_t **)other.template target<scalar_function_ptr_t *>();
|
62
|
+
auto func_ptr = (scalar_function_ptr_t **)function.template target<scalar_function_ptr_t *>(); // NOLINT
|
63
|
+
auto other_ptr = (scalar_function_ptr_t **)other.template target<scalar_function_ptr_t *>(); // NOLINT
|
64
64
|
|
65
65
|
// Case the functions were created from lambdas the target will return a nullptr
|
66
66
|
if (!func_ptr && !other_ptr) {
|
@@ -70,7 +70,7 @@ bool ScalarFunction::CompareScalarFunctionT(const scalar_function_t &other) cons
|
|
70
70
|
// scalar_function_t (std::functions) from lambdas cannot be compared
|
71
71
|
return false;
|
72
72
|
}
|
73
|
-
return (
|
73
|
+
return CastPointerToValue(*func_ptr) == CastPointerToValue(*other_ptr);
|
74
74
|
}
|
75
75
|
|
76
76
|
void ScalarFunction::NopFunction(DataChunk &input, ExpressionState &state, Vector &result) {
|
@@ -193,8 +193,8 @@ void ArrowTableFunction::RenameArrowColumns(vector<string> &names) {
|
|
193
193
|
unique_ptr<FunctionData> ArrowTableFunction::ArrowScanBind(ClientContext &context, TableFunctionBindInput &input,
|
194
194
|
vector<LogicalType> &return_types, vector<string> &names) {
|
195
195
|
auto stream_factory_ptr = input.inputs[0].GetPointer();
|
196
|
-
auto stream_factory_produce = (stream_factory_produce_t)input.inputs[1].GetPointer();
|
197
|
-
auto stream_factory_get_schema = (stream_factory_get_schema_t)input.inputs[2].GetPointer();
|
196
|
+
auto stream_factory_produce = (stream_factory_produce_t)input.inputs[1].GetPointer(); // NOLINT
|
197
|
+
auto stream_factory_get_schema = (stream_factory_get_schema_t)input.inputs[2].GetPointer(); // NOLINT
|
198
198
|
|
199
199
|
auto res = make_uniq<ArrowScanFunctionData>(stream_factory_produce, stream_factory_ptr);
|
200
200
|
|
@@ -206,8 +206,8 @@ unique_ptr<FunctionData> ArrowTableFunction::ArrowScanBind(ClientContext &contex
|
|
206
206
|
throw InvalidInputException("arrow_scan: released schema passed");
|
207
207
|
}
|
208
208
|
if (schema.dictionary) {
|
209
|
-
res->arrow_convert_data
|
210
|
-
|
209
|
+
auto logical_type = GetArrowLogicalType(schema, res->arrow_convert_data, col_idx);
|
210
|
+
res->arrow_convert_data[col_idx] = make_uniq<ArrowConvertData>(std::move(logical_type));
|
211
211
|
return_types.emplace_back(GetArrowLogicalType(*schema.dictionary, res->arrow_convert_data, col_idx));
|
212
212
|
} else {
|
213
213
|
return_types.emplace_back(GetArrowLogicalType(schema, res->arrow_convert_data, col_idx));
|
@@ -269,7 +269,7 @@ bool ArrowTableFunction::ArrowScanParallelStateNext(ClientContext &context, cons
|
|
269
269
|
|
270
270
|
unique_ptr<GlobalTableFunctionState> ArrowTableFunction::ArrowScanInitGlobal(ClientContext &context,
|
271
271
|
TableFunctionInitInput &input) {
|
272
|
-
auto &bind_data =
|
272
|
+
auto &bind_data = input.bind_data->Cast<ArrowScanFunctionData>();
|
273
273
|
auto result = make_uniq<ArrowScanGlobalState>();
|
274
274
|
result->stream = ProduceArrowScan(bind_data, input.column_ids, input.filters.get());
|
275
275
|
result->max_threads = ArrowScanMaxThreads(context, input.bind_data.get());
|
@@ -314,7 +314,7 @@ void ArrowTableFunction::ArrowScanFunction(ClientContext &context, TableFunction
|
|
314
314
|
if (!data_p.local_state) {
|
315
315
|
return;
|
316
316
|
}
|
317
|
-
auto &data =
|
317
|
+
auto &data = data_p.bind_data->CastNoConst<ArrowScanFunctionData>(); // FIXME
|
318
318
|
auto &state = data_p.local_state->Cast<ArrowScanLocalState>();
|
319
319
|
auto &global_state = data_p.global_state->Cast<ArrowScanGlobalState>();
|
320
320
|
|
@@ -28,6 +28,11 @@ static void ShiftRight(unsigned char *ar, int size, int shift) {
|
|
28
28
|
}
|
29
29
|
}
|
30
30
|
|
31
|
+
template <class T>
|
32
|
+
T *ArrowBufferData(ArrowArray &array, idx_t buffer_idx) {
|
33
|
+
return (T *)array.buffers[buffer_idx]; // NOLINT
|
34
|
+
}
|
35
|
+
|
31
36
|
static void GetValidityMask(ValidityMask &mask, ArrowArray &array, ArrowScanLocalState &scan_state, idx_t size,
|
32
37
|
int64_t nested_offset = -1, bool add_null = false) {
|
33
38
|
// In certains we don't need to or cannot copy arrow's validity mask to duckdb.
|
@@ -46,18 +51,18 @@ static void GetValidityMask(ValidityMask &mask, ArrowArray &array, ArrowScanLoca
|
|
46
51
|
auto n_bitmask_bytes = (size + 8 - 1) / 8;
|
47
52
|
if (bit_offset % 8 == 0) {
|
48
53
|
//! just memcpy nullmask
|
49
|
-
memcpy((void *)mask.GetData(), (
|
54
|
+
memcpy((void *)mask.GetData(), ArrowBufferData<uint8_t>(array, 0) + bit_offset / 8, n_bitmask_bytes);
|
50
55
|
} else {
|
51
56
|
//! need to re-align nullmask
|
52
57
|
vector<uint8_t> temp_nullmask(n_bitmask_bytes + 1);
|
53
|
-
memcpy(temp_nullmask.data(), (
|
58
|
+
memcpy(temp_nullmask.data(), ArrowBufferData<uint8_t>(array, 0) + bit_offset / 8, n_bitmask_bytes + 1);
|
54
59
|
ShiftRight(temp_nullmask.data(), n_bitmask_bytes + 1,
|
55
60
|
bit_offset % 8); //! why this has to be a right shift is a mystery to me
|
56
|
-
memcpy((void *)mask.GetData(), (
|
61
|
+
memcpy((void *)mask.GetData(), data_ptr_cast(temp_nullmask.data()), n_bitmask_bytes);
|
57
62
|
}
|
58
63
|
#else
|
59
64
|
auto byte_offset = bit_offset / 8;
|
60
|
-
auto source_data = (
|
65
|
+
auto source_data = ArrowBufferData<uint8_t>(array, 0);
|
61
66
|
bit_offset %= 8;
|
62
67
|
for (idx_t i = 0; i < size; i++) {
|
63
68
|
mask.Set(i, source_data[byte_offset] & (1 << bit_offset));
|
@@ -115,9 +120,9 @@ static void ArrowToDuckDBList(Vector &vector, ArrowArray &array, ArrowScanLocalS
|
|
115
120
|
}
|
116
121
|
list_size = start_offset + cur_offset;
|
117
122
|
} else if (original_type.first == ArrowVariableSizeType::NORMAL) {
|
118
|
-
auto offsets = (
|
123
|
+
auto offsets = ArrowBufferData<uint32_t>(array, 1) + array.offset + scan_state.chunk_offset;
|
119
124
|
if (nested_offset != -1) {
|
120
|
-
offsets = (
|
125
|
+
offsets = ArrowBufferData<uint32_t>(array, 1) + nested_offset;
|
121
126
|
}
|
122
127
|
start_offset = offsets[0];
|
123
128
|
auto list_data = FlatVector::GetData<list_entry_t>(vector);
|
@@ -129,9 +134,9 @@ static void ArrowToDuckDBList(Vector &vector, ArrowArray &array, ArrowScanLocalS
|
|
129
134
|
}
|
130
135
|
list_size = offsets[size];
|
131
136
|
} else {
|
132
|
-
auto offsets = (
|
137
|
+
auto offsets = ArrowBufferData<uint64_t>(array, 1) + array.offset + scan_state.chunk_offset;
|
133
138
|
if (nested_offset != -1) {
|
134
|
-
offsets = (
|
139
|
+
offsets = ArrowBufferData<uint64_t>(array, 1) + nested_offset;
|
135
140
|
}
|
136
141
|
start_offset = offsets[0];
|
137
142
|
auto list_data = FlatVector::GetData<list_entry_t>(vector);
|
@@ -179,7 +184,7 @@ static void ArrowToDuckDBBlob(Vector &vector, ArrowArray &array, ArrowScanLocalS
|
|
179
184
|
if (nested_offset != -1) {
|
180
185
|
offset = original_type.second * nested_offset;
|
181
186
|
}
|
182
|
-
auto cdata = (
|
187
|
+
auto cdata = ArrowBufferData<char>(array, 1);
|
183
188
|
for (idx_t row_idx = 0; row_idx < size; row_idx++) {
|
184
189
|
if (FlatVector::IsNull(vector, row_idx)) {
|
185
190
|
continue;
|
@@ -190,11 +195,11 @@ static void ArrowToDuckDBBlob(Vector &vector, ArrowArray &array, ArrowScanLocalS
|
|
190
195
|
offset += blob_len;
|
191
196
|
}
|
192
197
|
} else if (original_type.first == ArrowVariableSizeType::NORMAL) {
|
193
|
-
auto offsets = (
|
198
|
+
auto offsets = ArrowBufferData<uint32_t>(array, 1) + array.offset + scan_state.chunk_offset;
|
194
199
|
if (nested_offset != -1) {
|
195
|
-
offsets = (
|
200
|
+
offsets = ArrowBufferData<uint32_t>(array, 1) + array.offset + nested_offset;
|
196
201
|
}
|
197
|
-
auto cdata = (
|
202
|
+
auto cdata = ArrowBufferData<char>(array, 2);
|
198
203
|
for (idx_t row_idx = 0; row_idx < size; row_idx++) {
|
199
204
|
if (FlatVector::IsNull(vector, row_idx)) {
|
200
205
|
continue;
|
@@ -205,14 +210,14 @@ static void ArrowToDuckDBBlob(Vector &vector, ArrowArray &array, ArrowScanLocalS
|
|
205
210
|
}
|
206
211
|
} else {
|
207
212
|
//! Check if last offset is higher than max uint32
|
208
|
-
if ((
|
213
|
+
if (ArrowBufferData<uint64_t>(array, 1)[array.length] > NumericLimits<uint32_t>::Maximum()) { // LCOV_EXCL_START
|
209
214
|
throw ConversionException("DuckDB does not support Blobs over 4GB");
|
210
215
|
} // LCOV_EXCL_STOP
|
211
|
-
auto offsets = (
|
216
|
+
auto offsets = ArrowBufferData<uint64_t>(array, 1) + array.offset + scan_state.chunk_offset;
|
212
217
|
if (nested_offset != -1) {
|
213
|
-
offsets = (
|
218
|
+
offsets = ArrowBufferData<uint64_t>(array, 1) + array.offset + nested_offset;
|
214
219
|
}
|
215
|
-
auto cdata = (
|
220
|
+
auto cdata = ArrowBufferData<char>(array, 2);
|
216
221
|
for (idx_t row_idx = 0; row_idx < size; row_idx++) {
|
217
222
|
if (FlatVector::IsNull(vector, row_idx)) {
|
218
223
|
continue;
|
@@ -263,9 +268,9 @@ static void SetVectorString(Vector &vector, idx_t size, char *cdata, T *offsets)
|
|
263
268
|
static void DirectConversion(Vector &vector, ArrowArray &array, ArrowScanLocalState &scan_state,
|
264
269
|
int64_t nested_offset) {
|
265
270
|
auto internal_type = GetTypeIdSize(vector.GetType().InternalType());
|
266
|
-
auto data_ptr = (
|
271
|
+
auto data_ptr = ArrowBufferData<data_t>(array, 1) + internal_type * (scan_state.chunk_offset + array.offset);
|
267
272
|
if (nested_offset != -1) {
|
268
|
-
data_ptr = (
|
273
|
+
data_ptr = ArrowBufferData<data_t>(array, 1) + internal_type * (array.offset + nested_offset);
|
269
274
|
}
|
270
275
|
FlatVector::SetData(vector, data_ptr);
|
271
276
|
}
|
@@ -273,7 +278,7 @@ static void DirectConversion(Vector &vector, ArrowArray &array, ArrowScanLocalSt
|
|
273
278
|
template <class T>
|
274
279
|
static void TimeConversion(Vector &vector, ArrowArray &array, ArrowScanLocalState &scan_state, int64_t nested_offset,
|
275
280
|
idx_t size, int64_t conversion) {
|
276
|
-
auto tgt_ptr =
|
281
|
+
auto tgt_ptr = FlatVector::GetData<dtime_t>(vector);
|
277
282
|
auto &validity_mask = FlatVector::Validity(vector);
|
278
283
|
auto src_ptr = (T *)array.buffers[1] + scan_state.chunk_offset + array.offset;
|
279
284
|
if (nested_offset != -1) {
|
@@ -291,11 +296,11 @@ static void TimeConversion(Vector &vector, ArrowArray &array, ArrowScanLocalStat
|
|
291
296
|
|
292
297
|
static void TimestampTZConversion(Vector &vector, ArrowArray &array, ArrowScanLocalState &scan_state,
|
293
298
|
int64_t nested_offset, idx_t size, int64_t conversion) {
|
294
|
-
auto tgt_ptr =
|
299
|
+
auto tgt_ptr = FlatVector::GetData<timestamp_t>(vector);
|
295
300
|
auto &validity_mask = FlatVector::Validity(vector);
|
296
|
-
auto src_ptr = (
|
301
|
+
auto src_ptr = ArrowBufferData<int64_t>(array, 1) + scan_state.chunk_offset + array.offset;
|
297
302
|
if (nested_offset != -1) {
|
298
|
-
src_ptr = (
|
303
|
+
src_ptr = ArrowBufferData<int64_t>(array, 1) + nested_offset + array.offset;
|
299
304
|
}
|
300
305
|
for (idx_t row = 0; row < size; row++) {
|
301
306
|
if (!validity_mask.RowIsValid(row)) {
|
@@ -309,10 +314,10 @@ static void TimestampTZConversion(Vector &vector, ArrowArray &array, ArrowScanLo
|
|
309
314
|
|
310
315
|
static void IntervalConversionUs(Vector &vector, ArrowArray &array, ArrowScanLocalState &scan_state,
|
311
316
|
int64_t nested_offset, idx_t size, int64_t conversion) {
|
312
|
-
auto tgt_ptr =
|
313
|
-
auto src_ptr = (
|
317
|
+
auto tgt_ptr = FlatVector::GetData<interval_t>(vector);
|
318
|
+
auto src_ptr = ArrowBufferData<int64_t>(array, 1) + scan_state.chunk_offset + array.offset;
|
314
319
|
if (nested_offset != -1) {
|
315
|
-
src_ptr = (
|
320
|
+
src_ptr = ArrowBufferData<int64_t>(array, 1) + nested_offset + array.offset;
|
316
321
|
}
|
317
322
|
for (idx_t row = 0; row < size; row++) {
|
318
323
|
tgt_ptr[row].days = 0;
|
@@ -325,10 +330,10 @@ static void IntervalConversionUs(Vector &vector, ArrowArray &array, ArrowScanLoc
|
|
325
330
|
|
326
331
|
static void IntervalConversionMonths(Vector &vector, ArrowArray &array, ArrowScanLocalState &scan_state,
|
327
332
|
int64_t nested_offset, idx_t size) {
|
328
|
-
auto tgt_ptr =
|
329
|
-
auto src_ptr = (
|
333
|
+
auto tgt_ptr = FlatVector::GetData<interval_t>(vector);
|
334
|
+
auto src_ptr = ArrowBufferData<int32_t>(array, 1) + scan_state.chunk_offset + array.offset;
|
330
335
|
if (nested_offset != -1) {
|
331
|
-
src_ptr = (
|
336
|
+
src_ptr = ArrowBufferData<int32_t>(array, 1) + nested_offset + array.offset;
|
332
337
|
}
|
333
338
|
for (idx_t row = 0; row < size; row++) {
|
334
339
|
tgt_ptr[row].days = 0;
|
@@ -339,10 +344,10 @@ static void IntervalConversionMonths(Vector &vector, ArrowArray &array, ArrowSca
|
|
339
344
|
|
340
345
|
static void IntervalConversionMonthDayNanos(Vector &vector, ArrowArray &array, ArrowScanLocalState &scan_state,
|
341
346
|
int64_t nested_offset, idx_t size) {
|
342
|
-
auto tgt_ptr =
|
343
|
-
auto src_ptr = (
|
347
|
+
auto tgt_ptr = FlatVector::GetData<interval_t>(vector);
|
348
|
+
auto src_ptr = ArrowBufferData<ArrowInterval>(array, 1) + scan_state.chunk_offset + array.offset;
|
344
349
|
if (nested_offset != -1) {
|
345
|
-
src_ptr = (
|
350
|
+
src_ptr = ArrowBufferData<ArrowInterval>(array, 1) + nested_offset + array.offset;
|
346
351
|
}
|
347
352
|
for (idx_t row = 0; row < size; row++) {
|
348
353
|
tgt_ptr[row].days = src_ptr[row].days;
|
@@ -362,10 +367,10 @@ static void ColumnArrowToDuckDB(Vector &vector, ArrowArray &array, ArrowScanLoca
|
|
362
367
|
case LogicalTypeId::BOOLEAN: {
|
363
368
|
//! Arrow bit-packs boolean values
|
364
369
|
//! Lets first figure out where we are in the source array
|
365
|
-
auto src_ptr = (
|
370
|
+
auto src_ptr = ArrowBufferData<uint8_t>(array, 1) + (scan_state.chunk_offset + array.offset) / 8;
|
366
371
|
|
367
372
|
if (nested_offset != -1) {
|
368
|
-
src_ptr = (
|
373
|
+
src_ptr = ArrowBufferData<uint8_t>(array, 1) + (nested_offset + array.offset) / 8;
|
369
374
|
}
|
370
375
|
auto tgt_ptr = (uint8_t *)FlatVector::GetData(vector);
|
371
376
|
int src_pos = 0;
|
@@ -407,17 +412,17 @@ static void ColumnArrowToDuckDB(Vector &vector, ArrowArray &array, ArrowScanLoca
|
|
407
412
|
}
|
408
413
|
case LogicalTypeId::VARCHAR: {
|
409
414
|
auto original_type = arrow_convert_data[col_idx]->variable_sz_type[arrow_convert_idx.variable_sized_index++];
|
410
|
-
auto cdata = (
|
415
|
+
auto cdata = ArrowBufferData<char>(array, 2);
|
411
416
|
if (original_type.first == ArrowVariableSizeType::SUPER_SIZE) {
|
412
|
-
auto offsets = (
|
417
|
+
auto offsets = ArrowBufferData<uint64_t>(array, 1) + array.offset + scan_state.chunk_offset;
|
413
418
|
if (nested_offset != -1) {
|
414
|
-
offsets = (
|
419
|
+
offsets = ArrowBufferData<uint64_t>(array, 1) + array.offset + nested_offset;
|
415
420
|
}
|
416
421
|
SetVectorString(vector, size, cdata, offsets);
|
417
422
|
} else {
|
418
|
-
auto offsets = (
|
423
|
+
auto offsets = ArrowBufferData<uint32_t>(array, 1) + array.offset + scan_state.chunk_offset;
|
419
424
|
if (nested_offset != -1) {
|
420
|
-
offsets = (
|
425
|
+
offsets = ArrowBufferData<uint32_t>(array, 1) + array.offset + nested_offset;
|
421
426
|
}
|
422
427
|
SetVectorString(vector, size, cdata, offsets);
|
423
428
|
}
|
@@ -432,11 +437,11 @@ static void ColumnArrowToDuckDB(Vector &vector, ArrowArray &array, ArrowScanLoca
|
|
432
437
|
}
|
433
438
|
case ArrowDateTimeType::MILLISECONDS: {
|
434
439
|
//! convert date from nanoseconds to days
|
435
|
-
auto src_ptr = (
|
440
|
+
auto src_ptr = ArrowBufferData<uint64_t>(array, 1) + scan_state.chunk_offset + array.offset;
|
436
441
|
if (nested_offset != -1) {
|
437
|
-
src_ptr = (
|
442
|
+
src_ptr = ArrowBufferData<uint64_t>(array, 1) + nested_offset + array.offset;
|
438
443
|
}
|
439
|
-
auto tgt_ptr =
|
444
|
+
auto tgt_ptr = FlatVector::GetData<date_t>(vector);
|
440
445
|
for (idx_t row = 0; row < size; row++) {
|
441
446
|
tgt_ptr[row] = date_t(int64_t(src_ptr[row]) / static_cast<int64_t>(1000 * 60 * 60 * 24));
|
442
447
|
}
|
@@ -463,10 +468,10 @@ static void ColumnArrowToDuckDB(Vector &vector, ArrowArray &array, ArrowScanLoca
|
|
463
468
|
break;
|
464
469
|
}
|
465
470
|
case ArrowDateTimeType::NANOSECONDS: {
|
466
|
-
auto tgt_ptr =
|
467
|
-
auto src_ptr = (
|
471
|
+
auto tgt_ptr = FlatVector::GetData<dtime_t>(vector);
|
472
|
+
auto src_ptr = ArrowBufferData<int64_t>(array, 1) + scan_state.chunk_offset + array.offset;
|
468
473
|
if (nested_offset != -1) {
|
469
|
-
src_ptr = (
|
474
|
+
src_ptr = ArrowBufferData<int64_t>(array, 1) + nested_offset + array.offset;
|
470
475
|
}
|
471
476
|
for (idx_t row = 0; row < size; row++) {
|
472
477
|
tgt_ptr[row].micros = src_ptr[row] / 1000;
|
@@ -494,10 +499,10 @@ static void ColumnArrowToDuckDB(Vector &vector, ArrowArray &array, ArrowScanLoca
|
|
494
499
|
break;
|
495
500
|
}
|
496
501
|
case ArrowDateTimeType::NANOSECONDS: {
|
497
|
-
auto tgt_ptr =
|
498
|
-
auto src_ptr = (
|
502
|
+
auto tgt_ptr = FlatVector::GetData<timestamp_t>(vector);
|
503
|
+
auto src_ptr = ArrowBufferData<int64_t>(array, 1) + scan_state.chunk_offset + array.offset;
|
499
504
|
if (nested_offset != -1) {
|
500
|
-
src_ptr = (
|
505
|
+
src_ptr = ArrowBufferData<int64_t>(array, 1) + nested_offset + array.offset;
|
501
506
|
}
|
502
507
|
for (idx_t row = 0; row < size; row++) {
|
503
508
|
tgt_ptr[row].value = src_ptr[row] / 1000;
|
@@ -526,10 +531,10 @@ static void ColumnArrowToDuckDB(Vector &vector, ArrowArray &array, ArrowScanLoca
|
|
526
531
|
break;
|
527
532
|
}
|
528
533
|
case ArrowDateTimeType::NANOSECONDS: {
|
529
|
-
auto tgt_ptr =
|
530
|
-
auto src_ptr = (
|
534
|
+
auto tgt_ptr = FlatVector::GetData<interval_t>(vector);
|
535
|
+
auto src_ptr = ArrowBufferData<int64_t>(array, 1) + scan_state.chunk_offset + array.offset;
|
531
536
|
if (nested_offset != -1) {
|
532
|
-
src_ptr = (
|
537
|
+
src_ptr = ArrowBufferData<int64_t>(array, 1) + nested_offset + array.offset;
|
533
538
|
}
|
534
539
|
for (idx_t row = 0; row < size; row++) {
|
535
540
|
tgt_ptr[row].micros = src_ptr[row] / 1000;
|
@@ -554,13 +559,13 @@ static void ColumnArrowToDuckDB(Vector &vector, ArrowArray &array, ArrowScanLoca
|
|
554
559
|
case LogicalTypeId::DECIMAL: {
|
555
560
|
auto val_mask = FlatVector::Validity(vector);
|
556
561
|
//! We have to convert from INT128
|
557
|
-
auto src_ptr = (
|
562
|
+
auto src_ptr = ArrowBufferData<hugeint_t>(array, 1) + scan_state.chunk_offset + array.offset;
|
558
563
|
if (nested_offset != -1) {
|
559
|
-
src_ptr = (
|
564
|
+
src_ptr = ArrowBufferData<hugeint_t>(array, 1) + nested_offset + array.offset;
|
560
565
|
}
|
561
566
|
switch (vector.GetType().InternalType()) {
|
562
567
|
case PhysicalType::INT16: {
|
563
|
-
auto tgt_ptr =
|
568
|
+
auto tgt_ptr = FlatVector::GetData<int16_t>(vector);
|
564
569
|
for (idx_t row = 0; row < size; row++) {
|
565
570
|
if (val_mask.RowIsValid(row)) {
|
566
571
|
auto result = Hugeint::TryCast(src_ptr[row], tgt_ptr[row]);
|
@@ -571,7 +576,7 @@ static void ColumnArrowToDuckDB(Vector &vector, ArrowArray &array, ArrowScanLoca
|
|
571
576
|
break;
|
572
577
|
}
|
573
578
|
case PhysicalType::INT32: {
|
574
|
-
auto tgt_ptr =
|
579
|
+
auto tgt_ptr = FlatVector::GetData<int32_t>(vector);
|
575
580
|
for (idx_t row = 0; row < size; row++) {
|
576
581
|
if (val_mask.RowIsValid(row)) {
|
577
582
|
auto result = Hugeint::TryCast(src_ptr[row], tgt_ptr[row]);
|
@@ -582,7 +587,7 @@ static void ColumnArrowToDuckDB(Vector &vector, ArrowArray &array, ArrowScanLoca
|
|
582
587
|
break;
|
583
588
|
}
|
584
589
|
case PhysicalType::INT64: {
|
585
|
-
auto tgt_ptr =
|
590
|
+
auto tgt_ptr = FlatVector::GetData<int64_t>(vector);
|
586
591
|
for (idx_t row = 0; row < size; row++) {
|
587
592
|
if (val_mask.RowIsValid(row)) {
|
588
593
|
auto result = Hugeint::TryCast(src_ptr[row], tgt_ptr[row]);
|
@@ -593,8 +598,9 @@ static void ColumnArrowToDuckDB(Vector &vector, ArrowArray &array, ArrowScanLoca
|
|
593
598
|
break;
|
594
599
|
}
|
595
600
|
case PhysicalType::INT128: {
|
596
|
-
FlatVector::SetData(vector,
|
597
|
-
|
601
|
+
FlatVector::SetData(vector,
|
602
|
+
ArrowBufferData<data_t>(array, 1) + GetTypeIdSize(vector.GetType().InternalType()) *
|
603
|
+
(scan_state.chunk_offset + array.offset));
|
598
604
|
break;
|
599
605
|
}
|
600
606
|
default:
|
@@ -645,7 +651,7 @@ static void ColumnArrowToDuckDB(Vector &vector, ArrowArray &array, ArrowScanLoca
|
|
645
651
|
|
646
652
|
template <class T>
|
647
653
|
static void SetSelectionVectorLoop(SelectionVector &sel, data_ptr_t indices_p, idx_t size) {
|
648
|
-
auto indices =
|
654
|
+
auto indices = reinterpret_cast<T *>(indices_p);
|
649
655
|
for (idx_t row = 0; row < size; row++) {
|
650
656
|
sel.set_index(row, indices[row]);
|
651
657
|
}
|
@@ -654,7 +660,7 @@ static void SetSelectionVectorLoop(SelectionVector &sel, data_ptr_t indices_p, i
|
|
654
660
|
template <class T>
|
655
661
|
static void SetSelectionVectorLoopWithChecks(SelectionVector &sel, data_ptr_t indices_p, idx_t size) {
|
656
662
|
|
657
|
-
auto indices =
|
663
|
+
auto indices = reinterpret_cast<T *>(indices_p);
|
658
664
|
for (idx_t row = 0; row < size; row++) {
|
659
665
|
if (indices[row] > NumericLimits<uint32_t>::Maximum()) {
|
660
666
|
throw ConversionException("DuckDB only supports indices that fit on an uint32");
|
@@ -666,7 +672,7 @@ static void SetSelectionVectorLoopWithChecks(SelectionVector &sel, data_ptr_t in
|
|
666
672
|
template <class T>
|
667
673
|
static void SetMaskedSelectionVectorLoop(SelectionVector &sel, data_ptr_t indices_p, idx_t size, ValidityMask &mask,
|
668
674
|
idx_t last_element_pos) {
|
669
|
-
auto indices =
|
675
|
+
auto indices = reinterpret_cast<T *>(indices_p);
|
670
676
|
for (idx_t row = 0; row < size; row++) {
|
671
677
|
if (mask.RowIsValid(row)) {
|
672
678
|
sel.set_index(row, indices[row]);
|
@@ -782,7 +788,7 @@ static void ColumnArrowToDuckDBDictionary(Vector &vector, ArrowArray &array, Arr
|
|
782
788
|
}
|
783
789
|
auto dictionary_type = arrow_convert_data[col_idx]->dictionary_type;
|
784
790
|
//! Get Pointer to Indices of Dictionary
|
785
|
-
auto indices = (
|
791
|
+
auto indices = ArrowBufferData<data_t>(array, 1) +
|
786
792
|
GetTypeIdSize(dictionary_type.InternalType()) * (scan_state.chunk_offset + array.offset);
|
787
793
|
if (array.null_count > 0) {
|
788
794
|
ValidityMask indices_validity;
|
@@ -187,13 +187,13 @@ static bool RequiresQuotes(WriteCSVData &csv_data, const char *str, idx_t len) {
|
|
187
187
|
|
188
188
|
// check for delimiter
|
189
189
|
if (options.delimiter.length() != 0 &&
|
190
|
-
ContainsFun::Find((
|
190
|
+
ContainsFun::Find(const_uchar_ptr_cast(str), len, const_uchar_ptr_cast(options.delimiter.c_str()),
|
191
191
|
options.delimiter.size()) != DConstants::INVALID_INDEX) {
|
192
192
|
return true;
|
193
193
|
}
|
194
194
|
// check for quote
|
195
195
|
if (options.quote.length() != 0 &&
|
196
|
-
ContainsFun::Find((
|
196
|
+
ContainsFun::Find(const_uchar_ptr_cast(str), len, const_uchar_ptr_cast(options.quote.c_str()),
|
197
197
|
options.quote.size()) != DConstants::INVALID_INDEX) {
|
198
198
|
return true;
|
199
199
|
}
|
@@ -224,11 +224,11 @@ static void WriteQuotedString(Serializer &serializer, WriteCSVData &csv_data, co
|
|
224
224
|
// complex CSV
|
225
225
|
// check for quote or escape separately
|
226
226
|
if (options.quote.length() != 0 &&
|
227
|
-
ContainsFun::Find((
|
227
|
+
ContainsFun::Find(const_uchar_ptr_cast(str), len, const_uchar_ptr_cast(options.quote.c_str()),
|
228
228
|
options.quote.size()) != DConstants::INVALID_INDEX) {
|
229
229
|
requires_escape = true;
|
230
230
|
} else if (options.escape.length() != 0 &&
|
231
|
-
ContainsFun::Find((
|
231
|
+
ContainsFun::Find(const_uchar_ptr_cast(str), len, const_uchar_ptr_cast(options.escape.c_str()),
|
232
232
|
options.escape.size()) != DConstants::INVALID_INDEX) {
|
233
233
|
requires_escape = true;
|
234
234
|
}
|
@@ -236,7 +236,7 @@ static void WriteQuotedString(Serializer &serializer, WriteCSVData &csv_data, co
|
|
236
236
|
if (!requires_escape) {
|
237
237
|
// fast path: no need to escape anything
|
238
238
|
serializer.WriteBufferData(options.quote);
|
239
|
-
serializer.WriteData((
|
239
|
+
serializer.WriteData(const_data_ptr_cast(str), len);
|
240
240
|
serializer.WriteBufferData(options.quote);
|
241
241
|
return;
|
242
242
|
}
|
@@ -252,7 +252,7 @@ static void WriteQuotedString(Serializer &serializer, WriteCSVData &csv_data, co
|
|
252
252
|
serializer.WriteBufferData(new_val);
|
253
253
|
serializer.WriteBufferData(options.quote);
|
254
254
|
} else {
|
255
|
-
serializer.WriteData((
|
255
|
+
serializer.WriteData(const_data_ptr_cast(str), len);
|
256
256
|
}
|
257
257
|
}
|
258
258
|
|
@@ -281,6 +281,10 @@ struct GlobalWriteCSVData : public GlobalFunctionData {
|
|
281
281
|
handle->Write((void *)data, size);
|
282
282
|
}
|
283
283
|
|
284
|
+
void WriteData(const char *data, idx_t size) {
|
285
|
+
WriteData(const_data_ptr_cast(data), size);
|
286
|
+
}
|
287
|
+
|
284
288
|
//! Write rows
|
285
289
|
void WriteRows(const_data_ptr_t data, idx_t size, const string &newline) {
|
286
290
|
lock_guard<mutex> flock(lock);
|
@@ -321,7 +325,7 @@ static unique_ptr<GlobalFunctionData> WriteCSVInitializeGlobal(ClientContext &co
|
|
321
325
|
make_uniq<GlobalWriteCSVData>(FileSystem::GetFileSystem(context), file_path, options.compression);
|
322
326
|
|
323
327
|
if (!options.prefix.empty()) {
|
324
|
-
global_data->WriteData(
|
328
|
+
global_data->WriteData(options.prefix.c_str(), options.prefix.size());
|
325
329
|
}
|
326
330
|
|
327
331
|
if (options.header) {
|
@@ -33,7 +33,7 @@ static unique_ptr<GlobalTableFunctionState> GlobFunctionInit(ClientContext &cont
|
|
33
33
|
|
34
34
|
static void GlobFunction(ClientContext &context, TableFunctionInput &data_p, DataChunk &output) {
|
35
35
|
auto &bind_data = data_p.bind_data->Cast<GlobFunctionBindData>();
|
36
|
-
auto &state =
|
36
|
+
auto &state = data_p.global_state->Cast<GlobFunctionState>();
|
37
37
|
|
38
38
|
idx_t count = 0;
|
39
39
|
idx_t next_idx = MinValue<idx_t>(state.current_idx + STANDARD_VECTOR_SIZE, bind_data.files.size());
|