duckdb 0.8.1-dev65.0 → 0.8.1
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 +3 -1
- package/src/duckdb/extension/icu/icu-datepart.cpp +2 -2
- package/src/duckdb/extension/icu/icu-extension.cpp +1 -1
- package/src/duckdb/extension/icu/icu-makedate.cpp +5 -4
- package/src/duckdb/extension/icu/icu-strptime.cpp +1 -1
- package/src/duckdb/extension/icu/third_party/icu/i18n/nfsubs.cpp +0 -2
- 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 +5 -2
- package/src/duckdb/extension/json/json_functions/json_contains.cpp +5 -0
- 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 +43 -27
- 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 +27 -2
- 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 +7 -1
- package/src/duckdb/src/catalog/catalog_entry/table_catalog_entry.cpp +121 -0
- 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/common/adbc/adbc.cpp +118 -12
- package/src/duckdb/src/common/adbc/driver_manager.cpp +0 -20
- package/src/duckdb/src/common/arrow/arrow_appender.cpp +12 -12
- package/src/duckdb/src/common/arrow/arrow_converter.cpp +11 -12
- package/src/duckdb/src/common/arrow/arrow_wrapper.cpp +11 -10
- 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 +24 -15
- package/src/duckdb/src/common/field_writer.cpp +1 -1
- 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/random_engine.cpp +1 -1
- 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/time.cpp +2 -8
- 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 +48 -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 +33 -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 +37 -38
- package/src/duckdb/src/core_functions/aggregate/distributive/sum.cpp +22 -22
- package/src/duckdb/src/core_functions/aggregate/holistic/approximate_quantile.cpp +49 -85
- package/src/duckdb/src/core_functions/aggregate/holistic/mode.cpp +49 -51
- package/src/duckdb/src/core_functions/aggregate/holistic/quantile.cpp +116 -134
- package/src/duckdb/src/core_functions/aggregate/holistic/reservoir_quantile.cpp +63 -100
- 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 +46 -46
- package/src/duckdb/src/core_functions/scalar/date/make_date.cpp +3 -0
- 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 +4 -4
- package/src/duckdb/src/core_functions/scalar/list/flatten.cpp +2 -4
- package/src/duckdb/src/core_functions/scalar/list/list_aggregates.cpp +26 -9
- package/src/duckdb/src/core_functions/scalar/list/list_lambdas.cpp +7 -9
- 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 +6 -6
- 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 +11 -11
- package/src/duckdb/src/execution/index/art/leaf_segment.cpp +10 -0
- package/src/duckdb/src/execution/index/art/node.cpp +48 -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 +6 -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_iejoin.cpp +3 -6
- 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_tableinout_function.cpp +1 -0
- package/src/duckdb/src/execution/operator/projection/physical_unnest.cpp +10 -5
- 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_attach.cpp +0 -1
- 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 +20 -6
- package/src/duckdb/src/execution/window_segment_tree.cpp +8 -6
- package/src/duckdb/src/function/aggregate/distributive/count.cpp +159 -21
- package/src/duckdb/src/function/aggregate/distributive/first.cpp +68 -75
- package/src/duckdb/src/function/aggregate/sorted_aggregate_function.cpp +14 -14
- 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 +4 -4
- package/src/duckdb/src/function/scalar/operators/arithmetic.cpp +3 -4
- 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 +27 -25
- 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 +4 -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 +19 -21
- 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/pragma_storage_info.cpp +4 -4
- package/src/duckdb/src/function/table/system/test_vector_types.cpp +82 -26
- package/src/duckdb/src/function/table/table_scan.cpp +4 -4
- 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 +11 -1
- 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/allocator.hpp +15 -4
- package/src/duckdb/src/include/duckdb/common/arrow/arrow_appender.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/arrow/arrow_buffer.hpp +7 -2
- package/src/duckdb/src/include/duckdb/common/arrow/arrow_converter.hpp +2 -3
- package/src/duckdb/src/include/duckdb/common/arrow/arrow_options.hpp +8 -1
- package/src/duckdb/src/include/duckdb/common/arrow/result_arrow_wrapper.hpp +0 -1
- package/src/duckdb/src/include/duckdb/common/bit_utils.hpp +16 -22
- 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/time.hpp +2 -0
- 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 +9 -30
- 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 +4 -2
- 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/nested_functions.hpp +1 -1
- package/src/duckdb/src/include/duckdb/function/scalar_function.hpp +4 -3
- package/src/duckdb/src/include/duckdb/function/table_function.hpp +9 -8
- package/src/duckdb/src/include/duckdb/main/attached_database.hpp +4 -1
- package/src/duckdb/src/include/duckdb/main/capi/capi_internal.hpp +3 -1
- package/src/duckdb/src/include/duckdb/main/capi/cast/utils.hpp +1 -1
- package/src/duckdb/src/include/duckdb/main/config.hpp +5 -0
- package/src/duckdb/src/include/duckdb/main/database_manager.hpp +1 -0
- package/src/duckdb/src/include/duckdb/main/extension_entries.hpp +142 -136
- 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 +23 -0
- package/src/duckdb/src/include/duckdb/main/relation.hpp +12 -0
- package/src/duckdb/src/include/duckdb/main/settings.hpp +19 -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/parallel/meta_pipeline.hpp +12 -3
- 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 +3 -3
- 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 +37 -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/data_table.hpp +1 -1
- 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/column_data.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/table/list_column_data.hpp +2 -1
- package/src/duckdb/src/include/duckdb/storage/table/row_group.hpp +2 -2
- package/src/duckdb/src/include/duckdb/storage/table/row_group_collection.hpp +2 -1
- package/src/duckdb/src/include/duckdb/storage/table/scan_state.hpp +22 -0
- package/src/duckdb/src/include/duckdb/storage/table/standard_column_data.hpp +2 -1
- package/src/duckdb/src/include/duckdb/storage/table/struct_column_data.hpp +2 -1
- package/src/duckdb/src/include/duckdb/storage/table_storage_info.hpp +0 -2
- 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/attached_database.cpp +8 -0
- package/src/duckdb/src/main/capi/appender-c.cpp +5 -5
- package/src/duckdb/src/main/capi/arrow-c.cpp +13 -13
- 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 +7 -6
- package/src/duckdb/src/main/config.cpp +2 -0
- package/src/duckdb/src/main/database.cpp +1 -0
- package/src/duckdb/src/main/database_manager.cpp +22 -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/query_result.cpp +6 -2
- 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 +41 -6
- package/src/duckdb/src/optimizer/deliminator.cpp +12 -12
- package/src/duckdb/src/optimizer/filter_combiner.cpp +3 -3
- package/src/duckdb/src/optimizer/join_order/cardinality_estimator.cpp +10 -10
- package/src/duckdb/src/optimizer/matcher/expression_matcher.cpp +1 -1
- package/src/duckdb/src/optimizer/pullup/pullup_projection.cpp +2 -2
- package/src/duckdb/src/optimizer/regex_range_filter.cpp +2 -4
- package/src/duckdb/src/optimizer/rule/distributivity.cpp +2 -2
- package/src/duckdb/src/optimizer/statistics/operator/propagate_filter.cpp +6 -6
- package/src/duckdb/src/optimizer/statistics/operator/propagate_get.cpp +2 -2
- package/src/duckdb/src/optimizer/unnest_rewriter.cpp +27 -16
- package/src/duckdb/src/parallel/executor.cpp +39 -15
- package/src/duckdb/src/parallel/meta_pipeline.cpp +17 -3
- 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 +98 -38
- 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 +31 -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 -3
- 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 +39 -23
- 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 +7 -2
- package/src/duckdb/src/planner/binder/tableref/bind_table_function.cpp +7 -2
- package/src/duckdb/src/planner/binder.cpp +1 -1
- package/src/duckdb/src/planner/bound_result_modifier.cpp +30 -11
- package/src/duckdb/src/planner/expression/bound_aggregate_expression.cpp +11 -10
- 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_default_expression.cpp +7 -1
- 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 +18 -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_distinct.cpp +5 -4
- 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 +12 -10
- package/src/duckdb/src/storage/index.cpp +13 -0
- 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/storage_manager.cpp +6 -0
- package/src/duckdb/src/storage/table/chunk_info.cpp +2 -2
- package/src/duckdb/src/storage/table/column_data.cpp +7 -3
- package/src/duckdb/src/storage/table/column_segment.cpp +3 -3
- package/src/duckdb/src/storage/table/list_column_data.cpp +8 -7
- package/src/duckdb/src/storage/table/row_group.cpp +8 -7
- package/src/duckdb/src/storage/table/row_group_collection.cpp +6 -3
- package/src/duckdb/src/storage/table/standard_column_data.cpp +5 -4
- package/src/duckdb/src/storage/table/struct_column_data.cpp +4 -3
- 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/test/extension.test.ts +11 -0
- 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
@@ -4,94 +4,18 @@
|
|
4
4
|
#include "duckdb/catalog/catalog_entry/type_catalog_entry.hpp"
|
5
5
|
#include "duckdb/common/string_util.hpp"
|
6
6
|
#include "duckdb/parser/parsed_data/create_type_info.hpp"
|
7
|
+
#include "duckdb/catalog/default/builtin_types/types.hpp"
|
7
8
|
|
8
9
|
namespace duckdb {
|
9
10
|
|
10
|
-
struct DefaultType {
|
11
|
-
const char *name;
|
12
|
-
LogicalTypeId type;
|
13
|
-
};
|
14
|
-
|
15
|
-
static DefaultType internal_types[] = {{"int", LogicalTypeId::INTEGER},
|
16
|
-
{"int4", LogicalTypeId::INTEGER},
|
17
|
-
{"signed", LogicalTypeId::INTEGER},
|
18
|
-
{"integer", LogicalTypeId::INTEGER},
|
19
|
-
{"integral", LogicalTypeId::INTEGER},
|
20
|
-
{"int32", LogicalTypeId::INTEGER},
|
21
|
-
{"varchar", LogicalTypeId::VARCHAR},
|
22
|
-
{"bpchar", LogicalTypeId::VARCHAR},
|
23
|
-
{"text", LogicalTypeId::VARCHAR},
|
24
|
-
{"string", LogicalTypeId::VARCHAR},
|
25
|
-
{"char", LogicalTypeId::VARCHAR},
|
26
|
-
{"nvarchar", LogicalTypeId::VARCHAR},
|
27
|
-
{"bytea", LogicalTypeId::BLOB},
|
28
|
-
{"blob", LogicalTypeId::BLOB},
|
29
|
-
{"varbinary", LogicalTypeId::BLOB},
|
30
|
-
{"binary", LogicalTypeId::BLOB},
|
31
|
-
{"bit", LogicalTypeId::BIT},
|
32
|
-
{"bitstring", LogicalTypeId::BIT},
|
33
|
-
{"int8", LogicalTypeId::BIGINT},
|
34
|
-
{"bigint", LogicalTypeId::BIGINT},
|
35
|
-
{"int64", LogicalTypeId::BIGINT},
|
36
|
-
{"long", LogicalTypeId::BIGINT},
|
37
|
-
{"oid", LogicalTypeId::BIGINT},
|
38
|
-
{"int2", LogicalTypeId::SMALLINT},
|
39
|
-
{"smallint", LogicalTypeId::SMALLINT},
|
40
|
-
{"short", LogicalTypeId::SMALLINT},
|
41
|
-
{"int16", LogicalTypeId::SMALLINT},
|
42
|
-
{"timestamp", LogicalTypeId::TIMESTAMP},
|
43
|
-
{"datetime", LogicalTypeId::TIMESTAMP},
|
44
|
-
{"timestamp_us", LogicalTypeId::TIMESTAMP},
|
45
|
-
{"timestamp_ms", LogicalTypeId::TIMESTAMP_MS},
|
46
|
-
{"timestamp_ns", LogicalTypeId::TIMESTAMP_NS},
|
47
|
-
{"timestamp_s", LogicalTypeId::TIMESTAMP_SEC},
|
48
|
-
{"bool", LogicalTypeId::BOOLEAN},
|
49
|
-
{"boolean", LogicalTypeId::BOOLEAN},
|
50
|
-
{"logical", LogicalTypeId::BOOLEAN},
|
51
|
-
{"decimal", LogicalTypeId::DECIMAL},
|
52
|
-
{"dec", LogicalTypeId::DECIMAL},
|
53
|
-
{"numeric", LogicalTypeId::DECIMAL},
|
54
|
-
{"real", LogicalTypeId::FLOAT},
|
55
|
-
{"float4", LogicalTypeId::FLOAT},
|
56
|
-
{"float", LogicalTypeId::FLOAT},
|
57
|
-
{"double", LogicalTypeId::DOUBLE},
|
58
|
-
{"float8", LogicalTypeId::DOUBLE},
|
59
|
-
{"tinyint", LogicalTypeId::TINYINT},
|
60
|
-
{"int1", LogicalTypeId::TINYINT},
|
61
|
-
{"date", LogicalTypeId::DATE},
|
62
|
-
{"time", LogicalTypeId::TIME},
|
63
|
-
{"interval", LogicalTypeId::INTERVAL},
|
64
|
-
{"hugeint", LogicalTypeId::HUGEINT},
|
65
|
-
{"int128", LogicalTypeId::HUGEINT},
|
66
|
-
{"uuid", LogicalTypeId::UUID},
|
67
|
-
{"guid", LogicalTypeId::UUID},
|
68
|
-
{"struct", LogicalTypeId::STRUCT},
|
69
|
-
{"row", LogicalTypeId::STRUCT},
|
70
|
-
{"list", LogicalTypeId::LIST},
|
71
|
-
{"map", LogicalTypeId::MAP},
|
72
|
-
{"utinyint", LogicalTypeId::UTINYINT},
|
73
|
-
{"uint8", LogicalTypeId::UTINYINT},
|
74
|
-
{"usmallint", LogicalTypeId::USMALLINT},
|
75
|
-
{"uint16", LogicalTypeId::USMALLINT},
|
76
|
-
{"uinteger", LogicalTypeId::UINTEGER},
|
77
|
-
{"uint32", LogicalTypeId::UINTEGER},
|
78
|
-
{"ubigint", LogicalTypeId::UBIGINT},
|
79
|
-
{"uint64", LogicalTypeId::UBIGINT},
|
80
|
-
{"union", LogicalTypeId::UNION},
|
81
|
-
{"timestamptz", LogicalTypeId::TIMESTAMP_TZ},
|
82
|
-
{"timetz", LogicalTypeId::TIME_TZ},
|
83
|
-
{"enum", LogicalTypeId::ENUM},
|
84
|
-
{"null", LogicalTypeId::SQLNULL},
|
85
|
-
{nullptr, LogicalTypeId::INVALID}};
|
86
|
-
|
87
11
|
LogicalTypeId DefaultTypeGenerator::GetDefaultType(const string &name) {
|
88
|
-
auto
|
89
|
-
for (
|
90
|
-
if (
|
91
|
-
return
|
12
|
+
auto &internal_types = BUILTIN_TYPES;
|
13
|
+
for (auto &type : internal_types) {
|
14
|
+
if (StringUtil::CIEquals(name, type.name)) {
|
15
|
+
return type.type;
|
92
16
|
}
|
93
17
|
}
|
94
|
-
return
|
18
|
+
return LogicalType::INVALID;
|
95
19
|
}
|
96
20
|
|
97
21
|
DefaultTypeGenerator::DefaultTypeGenerator(Catalog &catalog, SchemaCatalogEntry &schema)
|
@@ -119,8 +43,9 @@ vector<string> DefaultTypeGenerator::GetDefaultEntries() {
|
|
119
43
|
if (schema.name != DEFAULT_SCHEMA) {
|
120
44
|
return result;
|
121
45
|
}
|
122
|
-
|
123
|
-
|
46
|
+
auto &internal_types = BUILTIN_TYPES;
|
47
|
+
for (auto &type : internal_types) {
|
48
|
+
result.emplace_back(StringUtil::Lower(type.name));
|
124
49
|
}
|
125
50
|
return result;
|
126
51
|
}
|
@@ -220,8 +220,8 @@ void DependencyManager::AddOwnership(CatalogTransaction transaction, CatalogEntr
|
|
220
220
|
// Emplace guarantees that the same object cannot be inserted twice in the unordered_set
|
221
221
|
// In the case AddOwnership is called twice, because of emplace, the object will not be repeated in the set.
|
222
222
|
// We use an automatic dependency because if the Owner gets deleted, then the owned objects are also deleted
|
223
|
-
dependents_map[owner].emplace(
|
224
|
-
dependents_map[entry].emplace(
|
223
|
+
dependents_map[owner].emplace(entry, DependencyType::DEPENDENCY_OWNS);
|
224
|
+
dependents_map[entry].emplace(owner, DependencyType::DEPENDENCY_OWNED_BY);
|
225
225
|
dependencies_map[owner].emplace(entry);
|
226
226
|
}
|
227
227
|
|
@@ -5,10 +5,13 @@
|
|
5
5
|
#include "duckdb/common/string_util.hpp"
|
6
6
|
|
7
7
|
#include "duckdb.h"
|
8
|
-
#include "duckdb/main/connection.hpp"
|
9
8
|
#include "duckdb/common/arrow/arrow_wrapper.hpp"
|
10
9
|
#include "duckdb/common/arrow/arrow.hpp"
|
11
10
|
|
11
|
+
#ifndef DUCKDB_AMALGAMATION
|
12
|
+
#include "duckdb/main/connection.hpp"
|
13
|
+
#endif
|
14
|
+
|
12
15
|
#include <string.h>
|
13
16
|
#include <stdlib.h>
|
14
17
|
|
@@ -37,6 +40,10 @@ duckdb_adbc::AdbcStatusCode duckdb_adbc_init(size_t count, struct duckdb_adbc::A
|
|
37
40
|
driver->StatementSetOption = duckdb_adbc::StatementSetOption;
|
38
41
|
driver->StatementSetSqlQuery = duckdb_adbc::StatementSetSqlQuery;
|
39
42
|
driver->ConnectionGetObjects = duckdb_adbc::ConnectionGetObjects;
|
43
|
+
driver->ConnectionCommit = duckdb_adbc::ConnectionCommit;
|
44
|
+
driver->ConnectionRollback = duckdb_adbc::ConnectionRollback;
|
45
|
+
driver->ConnectionReadPartition = duckdb_adbc::ConnectionReadPartition;
|
46
|
+
driver->StatementExecutePartitions = duckdb_adbc::StatementExecutePartitions;
|
40
47
|
return ADBC_STATUS_OK;
|
41
48
|
}
|
42
49
|
|
@@ -162,10 +169,104 @@ AdbcStatusCode ConnectionNew(struct AdbcConnection *connection, struct AdbcError
|
|
162
169
|
return ADBC_STATUS_OK;
|
163
170
|
}
|
164
171
|
|
172
|
+
AdbcStatusCode ExecuteQuery(duckdb::Connection *conn, const char *query, struct AdbcError *error) {
|
173
|
+
auto res = conn->Query(query);
|
174
|
+
if (res->HasError()) {
|
175
|
+
auto error_message = "Failed to execute query \"" + std::string(query) + "\": " + res->GetError();
|
176
|
+
SetError(error, error_message);
|
177
|
+
return ADBC_STATUS_INTERNAL;
|
178
|
+
}
|
179
|
+
return ADBC_STATUS_OK;
|
180
|
+
}
|
181
|
+
|
165
182
|
AdbcStatusCode ConnectionSetOption(struct AdbcConnection *connection, const char *key, const char *value,
|
166
183
|
struct AdbcError *error) {
|
167
|
-
|
168
|
-
|
184
|
+
if (!connection) {
|
185
|
+
SetError(error, "Connection is not set");
|
186
|
+
return ADBC_STATUS_INVALID_ARGUMENT;
|
187
|
+
}
|
188
|
+
auto conn = (duckdb::Connection *)connection->private_data;
|
189
|
+
if (strcmp(key, ADBC_CONNECTION_OPTION_AUTOCOMMIT) == 0) {
|
190
|
+
if (strcmp(value, ADBC_OPTION_VALUE_ENABLED) == 0) {
|
191
|
+
if (conn->HasActiveTransaction()) {
|
192
|
+
AdbcStatusCode status = ExecuteQuery(conn, "COMMIT", error);
|
193
|
+
if (status != ADBC_STATUS_OK) {
|
194
|
+
return status;
|
195
|
+
}
|
196
|
+
} else {
|
197
|
+
// no-op
|
198
|
+
}
|
199
|
+
} else if (strcmp(value, ADBC_OPTION_VALUE_DISABLED) == 0) {
|
200
|
+
if (conn->HasActiveTransaction()) {
|
201
|
+
// no-op
|
202
|
+
} else {
|
203
|
+
// begin
|
204
|
+
AdbcStatusCode status = ExecuteQuery(conn, "START TRANSACTION", error);
|
205
|
+
if (status != ADBC_STATUS_OK) {
|
206
|
+
return status;
|
207
|
+
}
|
208
|
+
}
|
209
|
+
} else {
|
210
|
+
auto error_message = "Invalid connection option value " + std::string(key) + "=" + std::string(value);
|
211
|
+
SetError(error, error_message);
|
212
|
+
return ADBC_STATUS_INVALID_ARGUMENT;
|
213
|
+
}
|
214
|
+
return ADBC_STATUS_OK;
|
215
|
+
}
|
216
|
+
auto error_message =
|
217
|
+
"Unknown connection option " + std::string(key) + "=" + (value ? std::string(value) : "(NULL)");
|
218
|
+
SetError(error, error_message);
|
219
|
+
return ADBC_STATUS_NOT_IMPLEMENTED;
|
220
|
+
}
|
221
|
+
|
222
|
+
AdbcStatusCode ConnectionReadPartition(struct AdbcConnection *connection, const uint8_t *serialized_partition,
|
223
|
+
size_t serialized_length, struct ArrowArrayStream *out,
|
224
|
+
struct AdbcError *error) {
|
225
|
+
SetError(error, "Read Partitions are not supported in DuckDB");
|
226
|
+
return ADBC_STATUS_NOT_IMPLEMENTED;
|
227
|
+
}
|
228
|
+
|
229
|
+
AdbcStatusCode StatementExecutePartitions(struct AdbcStatement *statement, struct ArrowSchema *schema,
|
230
|
+
struct AdbcPartitions *partitions, int64_t *rows_affected,
|
231
|
+
struct AdbcError *error) {
|
232
|
+
SetError(error, "Execute Partitions are not supported in DuckDB");
|
233
|
+
return ADBC_STATUS_NOT_IMPLEMENTED;
|
234
|
+
}
|
235
|
+
|
236
|
+
AdbcStatusCode ConnectionCommit(struct AdbcConnection *connection, struct AdbcError *error) {
|
237
|
+
if (!connection) {
|
238
|
+
SetError(error, "Connection is not set");
|
239
|
+
return ADBC_STATUS_INVALID_ARGUMENT;
|
240
|
+
}
|
241
|
+
auto conn = (duckdb::Connection *)connection->private_data;
|
242
|
+
if (!conn->HasActiveTransaction()) {
|
243
|
+
SetError(error, "No active transaction, cannot commit");
|
244
|
+
return ADBC_STATUS_INVALID_STATE;
|
245
|
+
}
|
246
|
+
|
247
|
+
AdbcStatusCode status = ExecuteQuery(conn, "COMMIT", error);
|
248
|
+
if (status != ADBC_STATUS_OK) {
|
249
|
+
return status;
|
250
|
+
}
|
251
|
+
return ExecuteQuery(conn, "START TRANSACTION", error);
|
252
|
+
}
|
253
|
+
|
254
|
+
AdbcStatusCode ConnectionRollback(struct AdbcConnection *connection, struct AdbcError *error) {
|
255
|
+
if (!connection) {
|
256
|
+
SetError(error, "Connection is not set");
|
257
|
+
return ADBC_STATUS_INVALID_ARGUMENT;
|
258
|
+
}
|
259
|
+
auto conn = (duckdb::Connection *)connection->private_data;
|
260
|
+
if (!conn->HasActiveTransaction()) {
|
261
|
+
SetError(error, "No active transaction, cannot rollback");
|
262
|
+
return ADBC_STATUS_INVALID_STATE;
|
263
|
+
}
|
264
|
+
|
265
|
+
AdbcStatusCode status = ExecuteQuery(conn, "ROLLBACK", error);
|
266
|
+
if (status != ADBC_STATUS_OK) {
|
267
|
+
return status;
|
268
|
+
}
|
269
|
+
return ExecuteQuery(conn, "START TRANSACTION", error);
|
169
270
|
}
|
170
271
|
|
171
272
|
AdbcStatusCode ConnectionInit(struct AdbcConnection *connection, struct AdbcDatabase *database,
|
@@ -219,11 +320,11 @@ void release(struct ArrowArrayStream *stream) {
|
|
219
320
|
if (!stream || !stream->release) {
|
220
321
|
return;
|
221
322
|
}
|
222
|
-
stream->release = nullptr;
|
223
323
|
if (stream->private_data) {
|
224
324
|
duckdb_destroy_arrow((duckdb_arrow *)&stream->private_data);
|
225
325
|
stream->private_data = nullptr;
|
226
326
|
}
|
327
|
+
stream->release = nullptr;
|
227
328
|
}
|
228
329
|
|
229
330
|
const char *get_last_error(struct ArrowArrayStream *stream) {
|
@@ -270,16 +371,21 @@ AdbcStatusCode Ingest(duckdb_connection connection, const char *table_name, stru
|
|
270
371
|
if (status != ADBC_STATUS_OK) {
|
271
372
|
return status;
|
272
373
|
}
|
374
|
+
auto cconn = (duckdb::Connection *)connection;
|
273
375
|
|
376
|
+
auto has_table = cconn->TableInfo(table_name);
|
377
|
+
auto arrow_scan = cconn->TableFunction("arrow_scan", {duckdb::Value::POINTER((uintptr_t)input),
|
378
|
+
duckdb::Value::POINTER((uintptr_t)stream_produce),
|
379
|
+
duckdb::Value::POINTER((uintptr_t)get_schema)});
|
274
380
|
try {
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
381
|
+
if (!has_table) {
|
382
|
+
// We create the table based on an Arrow Scanner
|
383
|
+
arrow_scan->Create(table_name);
|
384
|
+
} else {
|
385
|
+
arrow_scan->CreateView("temp_adbc_view", true, true);
|
386
|
+
auto query = "insert into " + std::string(table_name) + " select * from temp_adbc_view";
|
387
|
+
auto result = cconn->Query(query);
|
388
|
+
}
|
283
389
|
// After creating a table, the arrow array stream is released. Hence we must set it as released to avoid
|
284
390
|
// double-releasing it
|
285
391
|
input->release = nullptr;
|
@@ -133,10 +133,6 @@ static AdbcStatusCode ReleaseDriver(struct AdbcDriver *driver, struct AdbcError
|
|
133
133
|
|
134
134
|
// Default stubs
|
135
135
|
|
136
|
-
AdbcStatusCode ConnectionCommit(struct AdbcConnection *, struct AdbcError *error) {
|
137
|
-
return ADBC_STATUS_NOT_IMPLEMENTED;
|
138
|
-
}
|
139
|
-
|
140
136
|
AdbcStatusCode ConnectionGetInfo(struct AdbcConnection *connection, uint32_t *info_codes, size_t info_codes_length,
|
141
137
|
struct ArrowArrayStream *out, struct AdbcError *error) {
|
142
138
|
return ADBC_STATUS_NOT_IMPLEMENTED;
|
@@ -147,27 +143,11 @@ AdbcStatusCode ConnectionGetTableSchema(struct AdbcConnection *, const char *, c
|
|
147
143
|
return ADBC_STATUS_NOT_IMPLEMENTED;
|
148
144
|
}
|
149
145
|
|
150
|
-
AdbcStatusCode ConnectionReadPartition(struct AdbcConnection *connection, const uint8_t *serialized_partition,
|
151
|
-
size_t serialized_length, struct ArrowArrayStream *out,
|
152
|
-
struct AdbcError *error) {
|
153
|
-
return ADBC_STATUS_NOT_IMPLEMENTED;
|
154
|
-
}
|
155
|
-
|
156
|
-
AdbcStatusCode ConnectionRollback(struct AdbcConnection *, struct AdbcError *error) {
|
157
|
-
return ADBC_STATUS_NOT_IMPLEMENTED;
|
158
|
-
}
|
159
|
-
|
160
146
|
AdbcStatusCode StatementBind(struct AdbcStatement *, struct ArrowArray *, struct ArrowSchema *,
|
161
147
|
struct AdbcError *error) {
|
162
148
|
return ADBC_STATUS_NOT_IMPLEMENTED;
|
163
149
|
}
|
164
150
|
|
165
|
-
AdbcStatusCode StatementExecutePartitions(struct AdbcStatement *statement, struct ArrowSchema *schema,
|
166
|
-
struct AdbcPartitions *partitions, int64_t *rows_affected,
|
167
|
-
struct AdbcError *error) {
|
168
|
-
return ADBC_STATUS_NOT_IMPLEMENTED;
|
169
|
-
}
|
170
|
-
|
171
151
|
AdbcStatusCode StatementGetParameterSchema(struct AdbcStatement *statement, struct ArrowSchema *schema,
|
172
152
|
struct AdbcError *error) {
|
173
153
|
return ADBC_STATUS_NOT_IMPLEMENTED;
|
@@ -162,8 +162,8 @@ struct ArrowScalarBaseData {
|
|
162
162
|
|
163
163
|
// append the main data
|
164
164
|
append_data.main_buffer.resize(append_data.main_buffer.size() + sizeof(TGT) * size);
|
165
|
-
auto data = (
|
166
|
-
auto result_data =
|
165
|
+
auto data = UnifiedVectorFormat::GetData<SRC>(format);
|
166
|
+
auto result_data = append_data.main_buffer.GetData<TGT>();
|
167
167
|
|
168
168
|
for (idx_t i = from; i < to; i++) {
|
169
169
|
auto source_idx = format.sel->get_index(i);
|
@@ -210,8 +210,8 @@ struct ArrowEnumData : public ArrowScalarBaseData<TGT> {
|
|
210
210
|
|
211
211
|
// resize the offset buffer - the offset buffer holds the offsets into the child array
|
212
212
|
append_data.main_buffer.resize(append_data.main_buffer.size() + sizeof(uint32_t) * (size + 1));
|
213
|
-
auto data =
|
214
|
-
auto offset_data =
|
213
|
+
auto data = FlatVector::GetData<string_t>(input);
|
214
|
+
auto offset_data = append_data.main_buffer.GetData<uint32_t>();
|
215
215
|
if (append_data.row_count == 0) {
|
216
216
|
// first entry
|
217
217
|
offset_data[0] = 0;
|
@@ -269,10 +269,10 @@ struct ArrowBoolData {
|
|
269
269
|
// we initialize both the validity and the bit set to 1's
|
270
270
|
ResizeValidity(append_data.validity, append_data.row_count + size);
|
271
271
|
ResizeValidity(append_data.main_buffer, append_data.row_count + size);
|
272
|
-
auto data = (
|
272
|
+
auto data = UnifiedVectorFormat::GetData<bool>(format);
|
273
273
|
|
274
|
-
auto result_data =
|
275
|
-
auto validity_data =
|
274
|
+
auto result_data = append_data.main_buffer.GetData<uint8_t>();
|
275
|
+
auto validity_data = append_data.validity.GetData<uint8_t>();
|
276
276
|
uint8_t current_bit;
|
277
277
|
idx_t current_byte;
|
278
278
|
GetBitPosition(append_data.row_count, current_byte, current_bit);
|
@@ -318,7 +318,7 @@ struct ArrowUUIDConverter {
|
|
318
318
|
|
319
319
|
template <class SRC>
|
320
320
|
static void WriteData(data_ptr_t target, SRC input) {
|
321
|
-
UUID::ToString(input, (
|
321
|
+
UUID::ToString(input, char_ptr_cast(target));
|
322
322
|
}
|
323
323
|
};
|
324
324
|
|
@@ -341,8 +341,8 @@ struct ArrowVarcharData {
|
|
341
341
|
|
342
342
|
// resize the offset buffer - the offset buffer holds the offsets into the child array
|
343
343
|
append_data.main_buffer.resize(append_data.main_buffer.size() + sizeof(BUFTYPE) * (size + 1));
|
344
|
-
auto data = (
|
345
|
-
auto offset_data =
|
344
|
+
auto data = UnifiedVectorFormat::GetData<SRC>(format);
|
345
|
+
auto offset_data = append_data.main_buffer.GetData<BUFTYPE>();
|
346
346
|
if (append_data.row_count == 0) {
|
347
347
|
// first entry
|
348
348
|
offset_data[0] = 0;
|
@@ -441,8 +441,8 @@ void AppendListOffsets(ArrowAppendData &append_data, UnifiedVectorFormat &format
|
|
441
441
|
// resize the offset buffer - the offset buffer holds the offsets into the child array
|
442
442
|
idx_t size = to - from;
|
443
443
|
append_data.main_buffer.resize(append_data.main_buffer.size() + sizeof(uint32_t) * (size + 1));
|
444
|
-
auto data = (
|
445
|
-
auto offset_data =
|
444
|
+
auto data = UnifiedVectorFormat::GetData<list_entry_t>(format);
|
445
|
+
auto offset_data = append_data.main_buffer.GetData<uint32_t>();
|
446
446
|
if (append_data.row_count == 0) {
|
447
447
|
// first entry
|
448
448
|
offset_data[0] = 0;
|
@@ -16,7 +16,7 @@
|
|
16
16
|
namespace duckdb {
|
17
17
|
|
18
18
|
void ArrowConverter::ToArrowArray(DataChunk &input, ArrowArray *out_array, ArrowOptions options) {
|
19
|
-
ArrowAppender appender(input.GetTypes(), input.size(), options);
|
19
|
+
ArrowAppender appender(input.GetTypes(), input.size(), std::move(options));
|
20
20
|
appender.Append(input, 0, input.size(), input.size());
|
21
21
|
*out_array = appender.Finalize();
|
22
22
|
}
|
@@ -59,10 +59,10 @@ void InitializeChild(ArrowSchema &child, const string &name = "") {
|
|
59
59
|
child.dictionary = nullptr;
|
60
60
|
}
|
61
61
|
void SetArrowFormat(DuckDBArrowSchemaHolder &root_holder, ArrowSchema &child, const LogicalType &type,
|
62
|
-
const
|
62
|
+
const ArrowOptions &options);
|
63
63
|
|
64
64
|
void SetArrowMapFormat(DuckDBArrowSchemaHolder &root_holder, ArrowSchema &child, const LogicalType &type,
|
65
|
-
const
|
65
|
+
const ArrowOptions &options) {
|
66
66
|
child.format = "+m";
|
67
67
|
//! Map has one child which is a struct
|
68
68
|
child.n_children = 1;
|
@@ -73,11 +73,11 @@ void SetArrowMapFormat(DuckDBArrowSchemaHolder &root_holder, ArrowSchema &child,
|
|
73
73
|
InitializeChild(root_holder.nested_children.back()[0]);
|
74
74
|
child.children = &root_holder.nested_children_ptr.back()[0];
|
75
75
|
child.children[0]->name = "entries";
|
76
|
-
SetArrowFormat(root_holder, **child.children, ListType::GetChildType(type),
|
76
|
+
SetArrowFormat(root_holder, **child.children, ListType::GetChildType(type), options);
|
77
77
|
}
|
78
78
|
|
79
79
|
void SetArrowFormat(DuckDBArrowSchemaHolder &root_holder, ArrowSchema &child, const LogicalType &type,
|
80
|
-
const
|
80
|
+
const ArrowOptions &options) {
|
81
81
|
switch (type.id()) {
|
82
82
|
case LogicalTypeId::BOOLEAN:
|
83
83
|
child.format = "b";
|
@@ -134,7 +134,7 @@ void SetArrowFormat(DuckDBArrowSchemaHolder &root_holder, ArrowSchema &child, co
|
|
134
134
|
child.format = "tsu:";
|
135
135
|
break;
|
136
136
|
case LogicalTypeId::TIMESTAMP_TZ: {
|
137
|
-
string format = "tsu:" +
|
137
|
+
string format = "tsu:" + options.time_zone;
|
138
138
|
auto format_ptr = make_unsafe_uniq_array<char>(format.size() + 1);
|
139
139
|
for (size_t i = 0; i < format.size(); i++) {
|
140
140
|
format_ptr[i] = format[i];
|
@@ -192,7 +192,7 @@ void SetArrowFormat(DuckDBArrowSchemaHolder &root_holder, ArrowSchema &child, co
|
|
192
192
|
InitializeChild(root_holder.nested_children.back()[0]);
|
193
193
|
child.children = &root_holder.nested_children_ptr.back()[0];
|
194
194
|
child.children[0]->name = "l";
|
195
|
-
SetArrowFormat(root_holder, **child.children, ListType::GetChildType(type),
|
195
|
+
SetArrowFormat(root_holder, **child.children, ListType::GetChildType(type), options);
|
196
196
|
break;
|
197
197
|
}
|
198
198
|
case LogicalTypeId::STRUCT: {
|
@@ -220,13 +220,12 @@ void SetArrowFormat(DuckDBArrowSchemaHolder &root_holder, ArrowSchema &child, co
|
|
220
220
|
root_holder.owned_type_names.push_back(std::move(name_ptr));
|
221
221
|
|
222
222
|
child.children[type_idx]->name = root_holder.owned_type_names.back().get();
|
223
|
-
SetArrowFormat(root_holder, *child.children[type_idx], child_types[type_idx].second,
|
224
|
-
options);
|
223
|
+
SetArrowFormat(root_holder, *child.children[type_idx], child_types[type_idx].second, options);
|
225
224
|
}
|
226
225
|
break;
|
227
226
|
}
|
228
227
|
case LogicalTypeId::MAP: {
|
229
|
-
SetArrowMapFormat(root_holder, child, type,
|
228
|
+
SetArrowMapFormat(root_holder, child, type, options);
|
230
229
|
break;
|
231
230
|
}
|
232
231
|
case LogicalTypeId::ENUM: {
|
@@ -259,7 +258,7 @@ void SetArrowFormat(DuckDBArrowSchemaHolder &root_holder, ArrowSchema &child, co
|
|
259
258
|
}
|
260
259
|
|
261
260
|
void ArrowConverter::ToArrowSchema(ArrowSchema *out_schema, const vector<LogicalType> &types,
|
262
|
-
const vector<string> &names, const
|
261
|
+
const vector<string> &names, const ArrowOptions &options) {
|
263
262
|
D_ASSERT(out_schema);
|
264
263
|
D_ASSERT(types.size() == names.size());
|
265
264
|
idx_t column_count = types.size();
|
@@ -287,7 +286,7 @@ void ArrowConverter::ToArrowSchema(ArrowSchema *out_schema, const vector<Logical
|
|
287
286
|
|
288
287
|
auto &child = root_holder->children[col_idx];
|
289
288
|
InitializeChild(child, names[col_idx]);
|
290
|
-
SetArrowFormat(*root_holder, child, types[col_idx],
|
289
|
+
SetArrowFormat(*root_holder, child, types[col_idx], options);
|
291
290
|
}
|
292
291
|
|
293
292
|
// Release ownership to caller
|
@@ -77,10 +77,10 @@ int ResultArrowArrayStreamWrapper::MyStreamGetSchema(struct ArrowArrayStream *st
|
|
77
77
|
if (!stream->release) {
|
78
78
|
return -1;
|
79
79
|
}
|
80
|
-
auto my_stream =
|
80
|
+
auto my_stream = reinterpret_cast<ResultArrowArrayStreamWrapper *>(stream->private_data);
|
81
81
|
if (!my_stream->column_types.empty()) {
|
82
82
|
ArrowConverter::ToArrowSchema(out, my_stream->column_types, my_stream->column_names,
|
83
|
-
my_stream->
|
83
|
+
QueryResult::GetArrowOptions(*my_stream->result));
|
84
84
|
return 0;
|
85
85
|
}
|
86
86
|
|
@@ -90,7 +90,7 @@ int ResultArrowArrayStreamWrapper::MyStreamGetSchema(struct ArrowArrayStream *st
|
|
90
90
|
return -1;
|
91
91
|
}
|
92
92
|
if (result.type == QueryResultType::STREAM_RESULT) {
|
93
|
-
auto &stream_result = (
|
93
|
+
auto &stream_result = result.Cast<StreamQueryResult>();
|
94
94
|
if (!stream_result.IsOpen()) {
|
95
95
|
my_stream->last_error = PreservedError("Query Stream is closed");
|
96
96
|
return -1;
|
@@ -100,7 +100,8 @@ int ResultArrowArrayStreamWrapper::MyStreamGetSchema(struct ArrowArrayStream *st
|
|
100
100
|
my_stream->column_types = result.types;
|
101
101
|
my_stream->column_names = result.names;
|
102
102
|
}
|
103
|
-
ArrowConverter::ToArrowSchema(out, my_stream->column_types, my_stream->column_names,
|
103
|
+
ArrowConverter::ToArrowSchema(out, my_stream->column_types, my_stream->column_names,
|
104
|
+
QueryResult::GetArrowOptions(*my_stream->result));
|
104
105
|
return 0;
|
105
106
|
}
|
106
107
|
|
@@ -108,14 +109,14 @@ int ResultArrowArrayStreamWrapper::MyStreamGetNext(struct ArrowArrayStream *stre
|
|
108
109
|
if (!stream->release) {
|
109
110
|
return -1;
|
110
111
|
}
|
111
|
-
auto my_stream =
|
112
|
+
auto my_stream = reinterpret_cast<ResultArrowArrayStreamWrapper *>(stream->private_data);
|
112
113
|
auto &result = *my_stream->result;
|
113
114
|
if (result.HasError()) {
|
114
115
|
my_stream->last_error = result.GetErrorObject();
|
115
116
|
return -1;
|
116
117
|
}
|
117
118
|
if (result.type == QueryResultType::STREAM_RESULT) {
|
118
|
-
auto &stream_result = (
|
119
|
+
auto &stream_result = result.Cast<StreamQueryResult>();
|
119
120
|
if (!stream_result.IsOpen()) {
|
120
121
|
// Nothing to output
|
121
122
|
out->release = nullptr;
|
@@ -145,7 +146,7 @@ void ResultArrowArrayStreamWrapper::MyStreamRelease(struct ArrowArrayStream *str
|
|
145
146
|
return;
|
146
147
|
}
|
147
148
|
stream->release = nullptr;
|
148
|
-
delete
|
149
|
+
delete reinterpret_cast<ResultArrowArrayStreamWrapper *>(stream->private_data);
|
149
150
|
}
|
150
151
|
|
151
152
|
const char *ResultArrowArrayStreamWrapper::MyStreamGetLastError(struct ArrowArrayStream *stream) {
|
@@ -153,7 +154,7 @@ const char *ResultArrowArrayStreamWrapper::MyStreamGetLastError(struct ArrowArra
|
|
153
154
|
return "stream was released";
|
154
155
|
}
|
155
156
|
D_ASSERT(stream->private_data);
|
156
|
-
auto my_stream =
|
157
|
+
auto my_stream = reinterpret_cast<ResultArrowArrayStreamWrapper *>(stream->private_data);
|
157
158
|
return my_stream->last_error.Message().c_str();
|
158
159
|
}
|
159
160
|
|
@@ -175,7 +176,7 @@ ResultArrowArrayStreamWrapper::ResultArrowArrayStreamWrapper(unique_ptr<QueryRes
|
|
175
176
|
|
176
177
|
bool ArrowUtil::TryFetchNext(QueryResult &result, unique_ptr<DataChunk> &chunk, PreservedError &error) {
|
177
178
|
if (result.type == QueryResultType::STREAM_RESULT) {
|
178
|
-
auto &stream_result = (
|
179
|
+
auto &stream_result = result.Cast<StreamQueryResult>();
|
179
180
|
if (!stream_result.IsOpen()) {
|
180
181
|
return true;
|
181
182
|
}
|
@@ -186,7 +187,7 @@ bool ArrowUtil::TryFetchNext(QueryResult &result, unique_ptr<DataChunk> &chunk,
|
|
186
187
|
bool ArrowUtil::TryFetchChunk(QueryResult *result, idx_t chunk_size, ArrowArray *out, idx_t &count,
|
187
188
|
PreservedError &error) {
|
188
189
|
count = 0;
|
189
|
-
ArrowAppender appender(result->types, chunk_size);
|
190
|
+
ArrowAppender appender(result->types, chunk_size, QueryResult::GetArrowOptions(*result));
|
190
191
|
auto ¤t_chunk = result->current_chunk;
|
191
192
|
if (current_chunk.Valid()) {
|
192
193
|
// We start by scanning the non-finished current chunk
|
@@ -9,7 +9,7 @@ hash_t Checksum(uint64_t x) {
|
|
9
9
|
|
10
10
|
uint64_t Checksum(uint8_t *buffer, size_t size) {
|
11
11
|
uint64_t result = 5381;
|
12
|
-
uint64_t *ptr =
|
12
|
+
uint64_t *ptr = reinterpret_cast<uint64_t *>(buffer);
|
13
13
|
size_t i;
|
14
14
|
// for efficiency, we first checksum uint64_t values
|
15
15
|
for (i = 0; i < size / 8; i++) {
|
@@ -115,28 +115,28 @@ void CompressedFile::Close() {
|
|
115
115
|
}
|
116
116
|
|
117
117
|
int64_t CompressedFileSystem::Read(FileHandle &handle, void *buffer, int64_t nr_bytes) {
|
118
|
-
auto &compressed_file = (
|
118
|
+
auto &compressed_file = handle.Cast<CompressedFile>();
|
119
119
|
return compressed_file.ReadData(buffer, nr_bytes);
|
120
120
|
}
|
121
121
|
|
122
122
|
int64_t CompressedFileSystem::Write(FileHandle &handle, void *buffer, int64_t nr_bytes) {
|
123
|
-
auto &compressed_file = (
|
124
|
-
return compressed_file.WriteData((
|
123
|
+
auto &compressed_file = handle.Cast<CompressedFile>();
|
124
|
+
return compressed_file.WriteData(data_ptr_cast(buffer), nr_bytes);
|
125
125
|
}
|
126
126
|
|
127
127
|
void CompressedFileSystem::Reset(FileHandle &handle) {
|
128
|
-
auto &compressed_file = (
|
128
|
+
auto &compressed_file = handle.Cast<CompressedFile>();
|
129
129
|
compressed_file.child_handle->Reset();
|
130
130
|
compressed_file.Initialize(compressed_file.write);
|
131
131
|
}
|
132
132
|
|
133
133
|
int64_t CompressedFileSystem::GetFileSize(FileHandle &handle) {
|
134
|
-
auto &compressed_file = (
|
134
|
+
auto &compressed_file = handle.Cast<CompressedFile>();
|
135
135
|
return compressed_file.child_handle->GetFileSize();
|
136
136
|
}
|
137
137
|
|
138
138
|
bool CompressedFileSystem::OnDiskFile(FileHandle &handle) {
|
139
|
-
auto &compressed_file = (
|
139
|
+
auto &compressed_file = handle.Cast<CompressedFile>();
|
140
140
|
return compressed_file.child_handle->OnDiskFile();
|
141
141
|
}
|
142
142
|
|