duckdb 0.9.3-dev0.0 → 0.9.3-dev14.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/LICENSE +1 -1
- package/binding.gyp +32 -7
- package/package.json +1 -1
- package/src/connection.cpp +6 -6
- package/src/database.cpp +12 -10
- package/src/duckdb/extension/icu/icu-datefunc.cpp +22 -10
- package/src/duckdb/extension/icu/icu-datepart.cpp +42 -22
- package/src/duckdb/extension/icu/icu-datetrunc.cpp +40 -7
- package/src/duckdb/extension/icu/icu-strptime.cpp +14 -8
- package/src/duckdb/extension/icu/icu-table-range.cpp +1 -1
- package/src/duckdb/extension/icu/icu-timezone.cpp +43 -16
- package/src/duckdb/extension/icu/icu_extension.cpp +1 -1
- package/src/duckdb/extension/icu/include/icu-datefunc.hpp +3 -0
- package/src/duckdb/extension/icu/third_party/icu/stubdata/stubdata.cpp +1 -1
- package/src/duckdb/extension/json/buffered_json_reader.cpp +78 -62
- package/src/duckdb/extension/json/include/buffered_json_reader.hpp +11 -7
- package/src/duckdb/extension/json/include/json_common.hpp +0 -14
- package/src/duckdb/extension/json/include/json_deserializer.hpp +1 -0
- package/src/duckdb/extension/json/include/json_functions.hpp +1 -0
- package/src/duckdb/extension/json/include/json_scan.hpp +19 -5
- package/src/duckdb/extension/json/include/json_serializer.hpp +2 -1
- package/src/duckdb/extension/json/include/json_structure.hpp +12 -10
- package/src/duckdb/extension/json/json_common.cpp +1 -0
- package/src/duckdb/extension/json/json_deserializer.cpp +13 -0
- package/src/duckdb/extension/json/json_extension.cpp +3 -3
- package/src/duckdb/extension/json/json_functions/copy_json.cpp +8 -4
- package/src/duckdb/extension/json/json_functions/json_array_length.cpp +1 -1
- package/src/duckdb/extension/json/json_functions/json_contains.cpp +3 -3
- package/src/duckdb/extension/json/json_functions/json_create.cpp +53 -8
- package/src/duckdb/extension/json/json_functions/json_extract.cpp +10 -6
- package/src/duckdb/extension/json/json_functions/json_keys.cpp +1 -1
- package/src/duckdb/extension/json/json_functions/json_merge_patch.cpp +2 -3
- package/src/duckdb/extension/json/json_functions/json_serialize_plan.cpp +210 -0
- package/src/duckdb/extension/json/json_functions/json_serialize_sql.cpp +22 -19
- package/src/duckdb/extension/json/json_functions/json_structure.cpp +71 -43
- package/src/duckdb/extension/json/json_functions/json_transform.cpp +105 -8
- package/src/duckdb/extension/json/json_functions/json_type.cpp +1 -1
- package/src/duckdb/extension/json/json_functions/json_valid.cpp +1 -1
- package/src/duckdb/extension/json/json_functions/read_json.cpp +43 -18
- package/src/duckdb/extension/json/json_functions/read_json_objects.cpp +1 -1
- package/src/duckdb/extension/json/json_functions.cpp +9 -5
- package/src/duckdb/extension/json/json_scan.cpp +147 -125
- package/src/duckdb/extension/json/json_serializer.cpp +9 -0
- package/src/duckdb/extension/json/serialize_json.cpp +6 -0
- package/src/duckdb/extension/parquet/column_reader.cpp +53 -18
- package/src/duckdb/extension/parquet/column_writer.cpp +29 -6
- package/src/duckdb/extension/parquet/include/column_reader.hpp +0 -1
- package/src/duckdb/extension/parquet/include/decode_utils.hpp +2 -2
- package/src/duckdb/extension/parquet/include/parquet_crypto.hpp +87 -0
- package/src/duckdb/extension/parquet/include/parquet_dbp_decoder.hpp +4 -3
- package/src/duckdb/extension/parquet/include/parquet_decimal_utils.hpp +16 -3
- package/src/duckdb/extension/parquet/include/parquet_metadata.hpp +10 -0
- package/src/duckdb/extension/parquet/include/parquet_reader.hpp +34 -6
- package/src/duckdb/extension/parquet/include/parquet_statistics.hpp +3 -2
- package/src/duckdb/extension/parquet/include/parquet_timestamp.hpp +2 -0
- package/src/duckdb/extension/parquet/include/parquet_writer.hpp +21 -1
- package/src/duckdb/extension/parquet/parquet_crypto.cpp +370 -0
- package/src/duckdb/extension/parquet/parquet_extension.cpp +254 -24
- package/src/duckdb/extension/parquet/parquet_metadata.cpp +204 -16
- package/src/duckdb/extension/parquet/parquet_reader.cpp +108 -34
- package/src/duckdb/extension/parquet/parquet_statistics.cpp +75 -30
- package/src/duckdb/extension/parquet/parquet_timestamp.cpp +15 -8
- package/src/duckdb/extension/parquet/parquet_writer.cpp +62 -10
- package/src/duckdb/extension/parquet/serialize_parquet.cpp +60 -0
- package/src/duckdb/src/catalog/catalog.cpp +23 -25
- package/src/duckdb/src/catalog/catalog_entry/column_dependency_manager.cpp +1 -0
- package/src/duckdb/src/catalog/catalog_entry/dependency/dependency_dependent_entry.cpp +31 -0
- package/src/duckdb/src/catalog/catalog_entry/dependency/dependency_entry.cpp +44 -0
- package/src/duckdb/src/catalog/catalog_entry/dependency/dependency_subject_entry.cpp +31 -0
- package/src/duckdb/src/catalog/catalog_entry/duck_index_entry.cpp +35 -10
- package/src/duckdb/src/catalog/catalog_entry/duck_schema_entry.cpp +22 -6
- package/src/duckdb/src/catalog/catalog_entry/duck_table_entry.cpp +110 -33
- package/src/duckdb/src/catalog/catalog_entry/index_catalog_entry.cpp +33 -17
- package/src/duckdb/src/catalog/catalog_entry/macro_catalog_entry.cpp +16 -0
- package/src/duckdb/src/catalog/catalog_entry/schema_catalog_entry.cpp +7 -6
- package/src/duckdb/src/catalog/catalog_entry/sequence_catalog_entry.cpp +88 -14
- package/src/duckdb/src/catalog/catalog_entry/table_catalog_entry.cpp +6 -15
- package/src/duckdb/src/catalog/catalog_entry/type_catalog_entry.cpp +20 -20
- package/src/duckdb/src/catalog/catalog_entry/view_catalog_entry.cpp +4 -0
- package/src/duckdb/src/catalog/catalog_entry.cpp +29 -0
- package/src/duckdb/src/catalog/catalog_set.cpp +358 -343
- package/src/duckdb/src/catalog/catalog_transaction.cpp +4 -0
- package/src/duckdb/src/catalog/default/default_functions.cpp +13 -4
- package/src/duckdb/src/catalog/default/default_schemas.cpp +5 -1
- package/src/duckdb/src/catalog/default/default_views.cpp +6 -2
- package/src/duckdb/src/catalog/dependency_catalog_set.cpp +51 -0
- package/src/duckdb/src/catalog/dependency_manager.cpp +510 -114
- package/src/duckdb/src/catalog/duck_catalog.cpp +4 -4
- package/src/duckdb/src/common/adbc/adbc.cpp +73 -53
- package/src/duckdb/src/common/adbc/driver_manager.cpp +1101 -268
- package/src/duckdb/src/common/arrow/arrow_wrapper.cpp +20 -9
- package/src/duckdb/src/common/bind_helpers.cpp +1 -0
- package/src/duckdb/src/common/box_renderer.cpp +52 -1
- package/src/duckdb/src/common/compressed_file_system.cpp +1 -0
- package/src/duckdb/src/common/constants.cpp +0 -1
- package/src/duckdb/src/common/enum_util.cpp +522 -107
- package/src/duckdb/src/common/enums/catalog_type.cpp +64 -1
- package/src/duckdb/src/common/enums/compression_type.cpp +14 -0
- package/src/duckdb/src/common/enums/date_part_specifier.cpp +1 -0
- package/src/duckdb/src/common/enums/expression_type.cpp +4 -0
- package/src/duckdb/src/common/enums/file_compression_type.cpp +1 -0
- package/src/duckdb/src/common/enums/join_type.cpp +33 -0
- package/src/duckdb/src/common/enums/logical_operator_type.cpp +5 -3
- package/src/duckdb/src/common/enums/optimizer_type.cpp +9 -1
- package/src/duckdb/src/common/enums/physical_operator_type.cpp +8 -4
- package/src/duckdb/src/common/enums/statement_type.cpp +2 -2
- package/src/duckdb/src/common/error_data.cpp +113 -0
- package/src/duckdb/src/common/exception/binder_exception.cpp +47 -0
- package/src/duckdb/src/common/exception/catalog_exception.cpp +55 -0
- package/src/duckdb/src/common/exception/parser_exception.cpp +19 -0
- package/src/duckdb/src/common/exception.cpp +110 -121
- package/src/duckdb/src/common/exception_format_value.cpp +9 -1
- package/src/duckdb/src/common/extra_type_info.cpp +48 -0
- package/src/duckdb/src/common/file_system.cpp +12 -7
- package/src/duckdb/src/common/gzip_file_system.cpp +18 -18
- package/src/duckdb/src/common/hive_partitioning.cpp +5 -1
- package/src/duckdb/src/common/http_state.cpp +20 -3
- package/src/duckdb/src/common/local_file_system.cpp +214 -15
- package/src/duckdb/src/common/multi_file_reader.cpp +20 -7
- package/src/duckdb/src/common/operator/cast_operators.cpp +397 -414
- package/src/duckdb/src/common/operator/convert_to_string.cpp +4 -0
- package/src/duckdb/src/common/operator/string_cast.cpp +5 -0
- package/src/duckdb/src/common/progress_bar/progress_bar.cpp +61 -12
- package/src/duckdb/src/common/progress_bar/terminal_progress_bar_display.cpp +13 -4
- package/src/duckdb/src/common/radix_partitioning.cpp +1 -1
- package/src/duckdb/src/common/row_operations/row_aggregate.cpp +2 -1
- package/src/duckdb/src/common/row_operations/row_gather.cpp +7 -1
- package/src/duckdb/src/common/row_operations/row_heap_gather.cpp +78 -12
- package/src/duckdb/src/common/row_operations/row_heap_scatter.cpp +222 -61
- package/src/duckdb/src/common/row_operations/row_matcher.cpp +6 -1
- package/src/duckdb/src/common/row_operations/row_radix_scatter.cpp +51 -0
- package/src/duckdb/src/common/row_operations/row_scatter.cpp +8 -1
- package/src/duckdb/src/common/serializer/binary_deserializer.cpp +6 -0
- package/src/duckdb/src/common/serializer/binary_serializer.cpp +5 -0
- package/src/duckdb/src/common/serializer/serializer.cpp +19 -0
- package/src/duckdb/src/common/sort/comparators.cpp +126 -0
- package/src/duckdb/src/common/sort/partition_state.cpp +17 -17
- package/src/duckdb/src/common/sort/radix_sort.cpp +2 -1
- package/src/duckdb/src/common/sort/sort_state.cpp +10 -5
- package/src/duckdb/src/common/sort/sorted_block.cpp +7 -6
- package/src/duckdb/src/common/string_util.cpp +302 -24
- package/src/duckdb/src/common/tree_renderer.cpp +8 -6
- package/src/duckdb/src/common/types/cast_helpers.cpp +6 -0
- package/src/duckdb/src/common/types/column/column_data_allocator.cpp +1 -1
- package/src/duckdb/src/common/types/column/column_data_collection.cpp +58 -0
- package/src/duckdb/src/common/types/column/column_data_collection_segment.cpp +8 -1
- package/src/duckdb/src/common/types/data_chunk.cpp +9 -0
- package/src/duckdb/src/common/types/date.cpp +2 -2
- package/src/duckdb/src/common/types/hash.cpp +9 -1
- package/src/duckdb/src/common/types/hugeint.cpp +229 -51
- package/src/duckdb/src/common/types/hyperloglog.cpp +10 -3
- package/src/duckdb/src/common/types/interval.cpp +67 -12
- package/src/duckdb/src/common/types/list_segment.cpp +98 -4
- package/src/duckdb/src/common/types/row/partitioned_tuple_data.cpp +11 -1
- package/src/duckdb/src/common/types/row/row_data_collection.cpp +1 -1
- package/src/duckdb/src/common/types/row/row_data_collection_scanner.cpp +2 -2
- package/src/duckdb/src/common/types/row/tuple_data_allocator.cpp +3 -2
- package/src/duckdb/src/common/types/row/tuple_data_collection.cpp +63 -3
- package/src/duckdb/src/common/types/row/tuple_data_scatter_gather.cpp +331 -127
- package/src/duckdb/src/common/types/time.cpp +47 -75
- package/src/duckdb/src/common/types/timestamp.cpp +16 -3
- package/src/duckdb/src/common/types/uhugeint.cpp +746 -0
- package/src/duckdb/src/common/types/validity_mask.cpp +6 -2
- package/src/duckdb/src/common/types/value.cpp +183 -27
- package/src/duckdb/src/common/types/vector.cpp +331 -30
- package/src/duckdb/src/common/types/vector_buffer.cpp +29 -1
- package/src/duckdb/src/common/types/vector_cache.cpp +22 -1
- package/src/duckdb/src/common/types.cpp +606 -90
- package/src/duckdb/src/common/value_operations/comparison_operations.cpp +21 -1
- package/src/duckdb/src/common/vector_operations/comparison_operators.cpp +5 -0
- package/src/duckdb/src/common/vector_operations/generators.cpp +2 -2
- package/src/duckdb/src/common/vector_operations/is_distinct_from.cpp +131 -2
- package/src/duckdb/src/common/vector_operations/vector_copy.cpp +26 -4
- package/src/duckdb/src/common/vector_operations/vector_hash.cpp +41 -0
- package/src/duckdb/src/common/vector_operations/vector_storage.cpp +7 -0
- package/src/duckdb/src/common/virtual_file_system.cpp +0 -1
- package/src/duckdb/src/core_functions/aggregate/distributive/approx_count.cpp +2 -1
- package/src/duckdb/src/core_functions/aggregate/distributive/arg_min_max.cpp +144 -56
- package/src/duckdb/src/core_functions/aggregate/distributive/bitagg.cpp +2 -0
- package/src/duckdb/src/core_functions/aggregate/distributive/bitstring_agg.cpp +27 -0
- package/src/duckdb/src/core_functions/aggregate/distributive/entropy.cpp +4 -3
- package/src/duckdb/src/core_functions/aggregate/distributive/kurtosis.cpp +25 -5
- package/src/duckdb/src/core_functions/aggregate/distributive/minmax.cpp +100 -3
- package/src/duckdb/src/core_functions/aggregate/distributive/string_agg.cpp +2 -1
- package/src/duckdb/src/core_functions/aggregate/holistic/approximate_quantile.cpp +9 -1
- package/src/duckdb/src/core_functions/aggregate/holistic/mode.cpp +83 -52
- package/src/duckdb/src/core_functions/aggregate/holistic/quantile.cpp +485 -289
- package/src/duckdb/src/core_functions/aggregate/holistic/reservoir_quantile.cpp +3 -3
- package/src/duckdb/src/core_functions/aggregate/nested/histogram.cpp +24 -26
- package/src/duckdb/src/core_functions/aggregate/nested/list.cpp +34 -37
- package/src/duckdb/src/core_functions/function_list.cpp +30 -1
- package/src/duckdb/src/core_functions/lambda_functions.cpp +416 -0
- package/src/duckdb/src/core_functions/scalar/array/array_functions.cpp +294 -0
- package/src/duckdb/src/core_functions/scalar/array/array_value.cpp +87 -0
- package/src/duckdb/src/core_functions/scalar/blob/create_sort_key.cpp +686 -0
- package/src/duckdb/src/core_functions/scalar/blob/encode.cpp +1 -0
- package/src/duckdb/src/core_functions/scalar/date/current.cpp +3 -3
- package/src/duckdb/src/core_functions/scalar/date/date_part.cpp +295 -20
- package/src/duckdb/src/core_functions/scalar/date/make_date.cpp +1 -0
- package/src/duckdb/src/core_functions/scalar/date/strftime.cpp +8 -7
- package/src/duckdb/src/core_functions/scalar/date/to_interval.cpp +84 -23
- package/src/duckdb/src/core_functions/scalar/generic/error.cpp +4 -4
- package/src/duckdb/src/core_functions/scalar/generic/least.cpp +7 -8
- package/src/duckdb/src/core_functions/scalar/generic/stats.cpp +1 -1
- package/src/duckdb/src/core_functions/scalar/generic/system_functions.cpp +17 -6
- package/src/duckdb/src/core_functions/scalar/list/array_slice.cpp +8 -0
- package/src/duckdb/src/core_functions/scalar/list/list_aggregates.cpp +28 -14
- package/src/duckdb/src/core_functions/scalar/list/list_filter.cpp +49 -0
- package/src/duckdb/src/core_functions/scalar/list/list_reduce.cpp +230 -0
- package/src/duckdb/src/core_functions/scalar/list/list_sort.cpp +85 -16
- package/src/duckdb/src/core_functions/scalar/list/list_transform.cpp +41 -0
- package/src/duckdb/src/core_functions/scalar/list/list_value.cpp +21 -2
- package/src/duckdb/src/core_functions/scalar/map/map.cpp +6 -5
- package/src/duckdb/src/core_functions/scalar/map/map_entries.cpp +2 -2
- package/src/duckdb/src/core_functions/scalar/map/map_from_entries.cpp +1 -2
- package/src/duckdb/src/core_functions/scalar/math/numeric.cpp +24 -4
- package/src/duckdb/src/core_functions/scalar/operators/bitwise.cpp +6 -0
- package/src/duckdb/src/core_functions/scalar/random/random.cpp +2 -2
- package/src/duckdb/src/core_functions/scalar/random/setseed.cpp +2 -2
- package/src/duckdb/src/core_functions/scalar/secret/which_secret.cpp +28 -0
- package/src/duckdb/src/core_functions/scalar/string/bar.cpp +9 -4
- package/src/duckdb/src/core_functions/scalar/string/format_bytes.cpp +7 -2
- package/src/duckdb/src/core_functions/scalar/string/hex.cpp +63 -4
- package/src/duckdb/src/core_functions/scalar/string/pad.cpp +2 -2
- package/src/duckdb/src/core_functions/scalar/string/parse_path.cpp +348 -0
- package/src/duckdb/src/core_functions/scalar/string/regexp_escape.cpp +22 -0
- package/src/duckdb/src/core_functions/scalar/string/string_split.cpp +6 -5
- package/src/duckdb/src/core_functions/scalar/struct/struct_insert.cpp +3 -3
- package/src/duckdb/src/core_functions/scalar/struct/struct_pack.cpp +1 -1
- package/src/duckdb/src/execution/aggregate_hashtable.cpp +9 -2
- package/src/duckdb/src/execution/column_binding_resolver.cpp +44 -10
- package/src/duckdb/src/execution/expression_executor/execute_between.cpp +4 -0
- package/src/duckdb/src/execution/expression_executor/execute_case.cpp +4 -0
- package/src/duckdb/src/execution/expression_executor/execute_comparison.cpp +4 -0
- package/src/duckdb/src/execution/expression_executor.cpp +2 -1
- package/src/duckdb/src/execution/index/art/art.cpp +202 -53
- package/src/duckdb/src/execution/index/art/art_key.cpp +20 -27
- package/src/duckdb/src/execution/index/fixed_size_allocator.cpp +52 -17
- package/src/duckdb/src/execution/index/fixed_size_buffer.cpp +14 -8
- package/src/duckdb/src/execution/index/index_type_set.cpp +32 -0
- package/src/duckdb/src/execution/index/unknown_index.cpp +65 -0
- package/src/duckdb/src/execution/join_hashtable.cpp +151 -174
- package/src/duckdb/src/execution/nested_loop_join/nested_loop_join_inner.cpp +4 -0
- package/src/duckdb/src/execution/nested_loop_join/nested_loop_join_mark.cpp +4 -0
- package/src/duckdb/src/execution/operator/aggregate/aggregate_object.cpp +2 -1
- package/src/duckdb/src/execution/operator/aggregate/physical_hash_aggregate.cpp +82 -36
- package/src/duckdb/src/execution/operator/aggregate/physical_ungrouped_aggregate.cpp +58 -32
- package/src/duckdb/src/execution/operator/aggregate/physical_window.cpp +35 -19
- package/src/duckdb/src/execution/operator/csv_scanner/buffer_manager/csv_buffer.cpp +90 -0
- package/src/duckdb/src/execution/operator/csv_scanner/buffer_manager/csv_buffer_manager.cpp +124 -0
- package/src/duckdb/src/execution/operator/csv_scanner/buffer_manager/csv_file_handle.cpp +97 -0
- package/src/duckdb/src/execution/operator/csv_scanner/scanner/base_scanner.cpp +71 -0
- package/src/duckdb/src/execution/operator/csv_scanner/scanner/column_count_scanner.cpp +98 -0
- package/src/duckdb/src/execution/operator/csv_scanner/scanner/scanner_boundary.cpp +105 -0
- package/src/duckdb/src/execution/operator/csv_scanner/scanner/skip_scanner.cpp +63 -0
- package/src/duckdb/src/execution/operator/csv_scanner/scanner/string_value_scanner.cpp +1091 -0
- package/src/duckdb/src/execution/operator/csv_scanner/sniffer/csv_sniffer.cpp +124 -26
- package/src/duckdb/src/execution/operator/csv_scanner/sniffer/dialect_detection.cpp +117 -129
- package/src/duckdb/src/execution/operator/csv_scanner/sniffer/header_detection.cpp +46 -22
- package/src/duckdb/src/execution/operator/csv_scanner/sniffer/type_detection.cpp +83 -199
- package/src/duckdb/src/execution/operator/csv_scanner/sniffer/type_refinement.cpp +21 -122
- package/src/duckdb/src/execution/operator/csv_scanner/sniffer/type_replacement.cpp +18 -17
- package/src/duckdb/src/execution/operator/csv_scanner/state_machine/csv_state_machine.cpp +22 -0
- package/src/duckdb/src/execution/operator/csv_scanner/state_machine/csv_state_machine_cache.cpp +201 -0
- package/src/duckdb/src/execution/operator/csv_scanner/table_function/csv_file_scanner.cpp +221 -0
- package/src/duckdb/src/execution/operator/csv_scanner/table_function/global_csv_state.cpp +204 -0
- package/src/duckdb/src/execution/operator/csv_scanner/util/csv_error.cpp +186 -0
- package/src/duckdb/src/execution/operator/csv_scanner/util/csv_reader_options.cpp +532 -0
- package/src/duckdb/src/execution/operator/helper/physical_buffered_collector.cpp +85 -0
- package/src/duckdb/src/execution/operator/helper/physical_create_secret.cpp +21 -0
- package/src/duckdb/src/execution/operator/helper/physical_materialized_collector.cpp +1 -1
- package/src/duckdb/src/execution/operator/helper/physical_pragma.cpp +2 -2
- package/src/duckdb/src/execution/operator/helper/physical_reservoir_sample.cpp +34 -9
- package/src/duckdb/src/execution/operator/helper/physical_result_collector.cpp +10 -0
- package/src/duckdb/src/execution/operator/helper/physical_transaction.cpp +1 -0
- package/src/duckdb/src/execution/operator/helper/physical_vacuum.cpp +25 -10
- package/src/duckdb/src/execution/operator/join/perfect_hash_join_executor.cpp +7 -8
- package/src/duckdb/src/execution/operator/join/physical_asof_join.cpp +1 -1
- package/src/duckdb/src/execution/operator/join/physical_blockwise_nl_join.cpp +5 -2
- package/src/duckdb/src/execution/operator/join/physical_comparison_join.cpp +1 -1
- package/src/duckdb/src/execution/operator/join/physical_delim_join.cpp +5 -127
- package/src/duckdb/src/execution/operator/join/physical_hash_join.cpp +221 -61
- package/src/duckdb/src/execution/operator/join/physical_iejoin.cpp +18 -21
- package/src/duckdb/src/execution/operator/join/physical_join.cpp +10 -5
- package/src/duckdb/src/execution/operator/join/physical_left_delim_join.cpp +137 -0
- package/src/duckdb/src/execution/operator/join/physical_nested_loop_join.cpp +11 -4
- package/src/duckdb/src/execution/operator/join/physical_piecewise_merge_join.cpp +2 -2
- package/src/duckdb/src/execution/operator/join/physical_range_join.cpp +19 -4
- package/src/duckdb/src/execution/operator/join/physical_right_delim_join.cpp +121 -0
- package/src/duckdb/src/execution/operator/persistent/physical_batch_insert.cpp +3 -2
- package/src/duckdb/src/execution/operator/persistent/physical_copy_database.cpp +59 -0
- package/src/duckdb/src/execution/operator/persistent/physical_copy_to_file.cpp +132 -92
- package/src/duckdb/src/execution/operator/persistent/physical_export.cpp +54 -54
- package/src/duckdb/src/execution/operator/persistent/physical_insert.cpp +1 -1
- package/src/duckdb/src/execution/operator/projection/physical_unnest.cpp +4 -0
- package/src/duckdb/src/execution/operator/scan/physical_column_data_scan.cpp +21 -3
- package/src/duckdb/src/execution/operator/schema/physical_alter.cpp +1 -0
- package/src/duckdb/src/execution/operator/schema/physical_attach.cpp +61 -43
- package/src/duckdb/src/execution/operator/schema/physical_create_art_index.cpp +15 -13
- package/src/duckdb/src/execution/operator/schema/physical_create_schema.cpp +1 -0
- package/src/duckdb/src/execution/operator/schema/physical_drop.cpp +10 -0
- package/src/duckdb/src/execution/operator/set/physical_cte.cpp +44 -90
- package/src/duckdb/src/execution/operator/set/physical_recursive_cte.cpp +3 -0
- package/src/duckdb/src/execution/operator/set/physical_union.cpp +8 -4
- package/src/duckdb/src/execution/physical_operator.cpp +3 -1
- package/src/duckdb/src/execution/physical_plan/plan_comparison_join.cpp +30 -143
- package/src/duckdb/src/execution/physical_plan/plan_copy_database.cpp +12 -0
- package/src/duckdb/src/execution/physical_plan/plan_copy_to_file.cpp +11 -4
- package/src/duckdb/src/execution/physical_plan/plan_create_index.cpp +8 -8
- package/src/duckdb/src/execution/physical_plan/plan_create_secret.cpp +11 -0
- package/src/duckdb/src/execution/physical_plan/plan_create_table.cpp +9 -8
- package/src/duckdb/src/execution/physical_plan/plan_cte.cpp +5 -3
- package/src/duckdb/src/execution/physical_plan/plan_delim_join.cpp +15 -6
- package/src/duckdb/src/execution/physical_plan/plan_positional_join.cpp +1 -0
- package/src/duckdb/src/execution/physical_plan/plan_pragma.cpp +1 -1
- package/src/duckdb/src/execution/physical_plan/plan_recursive_cte.cpp +3 -1
- package/src/duckdb/src/execution/physical_plan/plan_set_operation.cpp +90 -12
- package/src/duckdb/src/execution/physical_plan/plan_window.cpp +67 -22
- package/src/duckdb/src/execution/physical_plan_generator.cpp +6 -3
- package/src/duckdb/src/execution/radix_partitioned_hashtable.cpp +163 -32
- package/src/duckdb/src/execution/reservoir_sample.cpp +112 -32
- package/src/duckdb/src/execution/window_executor.cpp +291 -26
- package/src/duckdb/src/execution/window_segment_tree.cpp +958 -114
- package/src/duckdb/src/function/aggregate/distributive/count.cpp +18 -16
- package/src/duckdb/src/function/aggregate/distributive/first.cpp +11 -4
- package/src/duckdb/src/function/aggregate/sorted_aggregate_function.cpp +303 -131
- package/src/duckdb/src/function/cast/array_casts.cpp +226 -0
- package/src/duckdb/src/function/cast/bit_cast.cpp +2 -0
- package/src/duckdb/src/function/cast/cast_function_set.cpp +13 -2
- package/src/duckdb/src/function/cast/decimal_cast.cpp +2 -0
- package/src/duckdb/src/function/cast/default_casts.cpp +4 -1
- package/src/duckdb/src/function/cast/list_casts.cpp +151 -6
- package/src/duckdb/src/function/cast/numeric_casts.cpp +4 -0
- package/src/duckdb/src/function/cast/string_cast.cpp +95 -5
- package/src/duckdb/src/function/cast/struct_cast.cpp +53 -19
- package/src/duckdb/src/function/cast/time_casts.cpp +23 -1
- package/src/duckdb/src/function/cast/union/from_struct.cpp +1 -0
- package/src/duckdb/src/function/cast/union_casts.cpp +4 -3
- package/src/duckdb/src/function/cast/vector_cast_helpers.cpp +8 -4
- package/src/duckdb/src/function/cast_rules.cpp +197 -31
- package/src/duckdb/src/function/compression_config.cpp +4 -0
- package/src/duckdb/src/function/function.cpp +15 -9
- package/src/duckdb/src/function/function_binder.cpp +80 -29
- package/src/duckdb/src/function/function_set.cpp +6 -6
- package/src/duckdb/src/function/pragma/pragma_functions.cpp +10 -8
- package/src/duckdb/src/function/pragma/pragma_queries.cpp +34 -38
- package/src/duckdb/src/function/scalar/compressed_materialization/compress_integral.cpp +12 -0
- package/src/duckdb/src/function/scalar/list/contains_or_position.cpp +10 -1
- package/src/duckdb/src/function/scalar/list/list_concat.cpp +11 -1
- package/src/duckdb/src/function/scalar/list/list_extract.cpp +14 -3
- package/src/duckdb/src/function/scalar/list/list_resize.cpp +4 -0
- package/src/duckdb/src/function/scalar/list/list_select.cpp +176 -0
- package/src/duckdb/src/function/scalar/list/list_zip.cpp +165 -0
- package/src/duckdb/src/function/scalar/nested_functions.cpp +33 -0
- package/src/duckdb/src/function/scalar/operators/add.cpp +53 -6
- package/src/duckdb/src/function/scalar/operators/arithmetic.cpp +48 -14
- package/src/duckdb/src/function/scalar/operators/multiply.cpp +9 -1
- package/src/duckdb/src/function/scalar/operators/subtract.cpp +19 -4
- package/src/duckdb/src/function/scalar/sequence/nextval.cpp +28 -55
- package/src/duckdb/src/function/scalar/strftime_format.cpp +242 -19
- package/src/duckdb/src/function/scalar/string/caseconvert.cpp +2 -2
- package/src/duckdb/src/function/scalar/string/concat.cpp +16 -6
- package/src/duckdb/src/function/scalar/string/length.cpp +124 -24
- package/src/duckdb/src/function/scalar/string/regexp.cpp +27 -27
- package/src/duckdb/src/function/scalar/struct/struct_extract.cpp +64 -15
- package/src/duckdb/src/function/scalar/system/aggregate_export.cpp +4 -3
- package/src/duckdb/src/function/scalar_function.cpp +8 -7
- package/src/duckdb/src/function/table/arrow/arrow_duck_schema.cpp +12 -0
- package/src/duckdb/src/function/table/arrow.cpp +20 -27
- package/src/duckdb/src/function/table/arrow_conversion.cpp +433 -150
- package/src/duckdb/src/function/table/copy_csv.cpp +62 -62
- package/src/duckdb/src/function/table/range.cpp +6 -3
- package/src/duckdb/src/function/table/read_csv.cpp +107 -759
- package/src/duckdb/src/function/table/read_file.cpp +242 -0
- package/src/duckdb/src/function/table/sniff_csv.cpp +275 -0
- package/src/duckdb/src/function/table/system/duckdb_columns.cpp +15 -3
- package/src/duckdb/src/function/table/system/duckdb_databases.cpp +5 -0
- package/src/duckdb/src/function/table/system/duckdb_dependencies.cpp +9 -13
- package/src/duckdb/src/function/table/system/duckdb_functions.cpp +67 -14
- package/src/duckdb/src/function/table/system/duckdb_indexes.cpp +12 -15
- package/src/duckdb/src/function/table/system/duckdb_memory.cpp +63 -0
- package/src/duckdb/src/function/table/system/duckdb_optimizers.cpp +57 -0
- package/src/duckdb/src/function/table/system/duckdb_schemas.cpp +5 -0
- package/src/duckdb/src/function/table/system/duckdb_secrets.cpp +128 -0
- package/src/duckdb/src/function/table/system/duckdb_sequences.cpp +12 -6
- package/src/duckdb/src/function/table/system/duckdb_settings.cpp +0 -1
- package/src/duckdb/src/function/table/system/duckdb_tables.cpp +5 -0
- package/src/duckdb/src/function/table/system/duckdb_types.cpp +6 -0
- package/src/duckdb/src/function/table/system/duckdb_views.cpp +5 -0
- package/src/duckdb/src/function/table/system/pragma_table_info.cpp +166 -64
- package/src/duckdb/src/function/table/system/test_all_types.cpp +2 -1
- package/src/duckdb/src/function/table/system_functions.cpp +3 -2
- package/src/duckdb/src/function/table/table_scan.cpp +50 -110
- package/src/duckdb/src/function/table/version/pragma_version.cpp +4 -44
- package/src/duckdb/src/function/table_function.cpp +2 -2
- package/src/duckdb/src/include/duckdb/catalog/catalog.hpp +4 -3
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/dependency/dependency_dependent_entry.hpp +27 -0
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/dependency/dependency_entry.hpp +66 -0
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/dependency/dependency_subject_entry.hpp +27 -0
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/duck_index_entry.hpp +25 -5
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/duck_schema_entry.hpp +3 -1
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/duck_table_entry.hpp +2 -1
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/index_catalog_entry.hpp +19 -5
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/list.hpp +1 -0
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/scalar_macro_catalog_entry.hpp +2 -0
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/schema_catalog_entry.hpp +1 -1
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/sequence_catalog_entry.hpp +26 -11
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/table_catalog_entry.hpp +1 -0
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/table_macro_catalog_entry.hpp +2 -0
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/type_catalog_entry.hpp +1 -0
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/view_catalog_entry.hpp +2 -0
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry.hpp +15 -0
- package/src/duckdb/src/include/duckdb/catalog/catalog_set.hpp +41 -49
- package/src/duckdb/src/include/duckdb/catalog/catalog_transaction.hpp +1 -0
- package/src/duckdb/src/include/duckdb/catalog/default/builtin_types/types.hpp +3 -1
- package/src/duckdb/src/include/duckdb/catalog/dependency.hpp +120 -8
- package/src/duckdb/src/include/duckdb/catalog/dependency_catalog_set.hpp +32 -0
- package/src/duckdb/src/include/duckdb/catalog/dependency_list.hpp +2 -0
- package/src/duckdb/src/include/duckdb/catalog/dependency_manager.hpp +92 -12
- package/src/duckdb/src/include/duckdb/catalog/standard_entry.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/adbc/adbc-init.hpp +4 -2
- package/src/duckdb/src/include/duckdb/common/adbc/adbc.h +1153 -12
- package/src/duckdb/src/include/duckdb/common/adbc/adbc.hpp +6 -6
- package/src/duckdb/src/include/duckdb/common/adbc/driver_manager.h +0 -2
- package/src/duckdb/src/include/duckdb/common/adbc/options.h +64 -0
- package/src/duckdb/src/include/duckdb/common/adbc/single_batch_array_stream.hpp +8 -0
- package/src/duckdb/src/include/duckdb/common/arrow/arrow.hpp +25 -6
- package/src/duckdb/src/include/duckdb/common/arrow/arrow_wrapper.hpp +3 -3
- package/src/duckdb/src/include/duckdb/common/arrow/result_arrow_wrapper.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/bit_utils.hpp +30 -0
- package/src/duckdb/src/include/duckdb/common/bitpacking.hpp +6 -6
- package/src/duckdb/src/include/duckdb/common/case_insensitive_map.hpp +10 -0
- package/src/duckdb/src/include/duckdb/common/constants.hpp +1 -0
- package/src/duckdb/src/include/duckdb/common/enum_util.hpp +75 -19
- package/src/duckdb/src/include/duckdb/common/enums/catalog_type.hpp +11 -1
- package/src/duckdb/src/include/duckdb/common/enums/compression_type.hpp +3 -0
- package/src/duckdb/src/include/duckdb/common/enums/expression_type.hpp +2 -0
- package/src/duckdb/src/include/duckdb/common/enums/index_constraint_type.hpp +35 -0
- package/src/duckdb/src/include/duckdb/common/enums/join_type.hpp +16 -3
- package/src/duckdb/src/include/duckdb/common/enums/logical_operator_type.hpp +6 -5
- package/src/duckdb/src/include/duckdb/common/enums/memory_tag.hpp +32 -0
- package/src/duckdb/src/include/duckdb/common/enums/on_create_conflict.hpp +26 -0
- package/src/duckdb/src/include/duckdb/common/enums/optimizer_type.hpp +2 -0
- package/src/duckdb/src/include/duckdb/common/enums/pending_execution_result.hpp +7 -1
- package/src/duckdb/src/include/duckdb/common/enums/physical_operator_type.hpp +9 -3
- package/src/duckdb/src/include/duckdb/common/enums/statement_type.hpp +6 -5
- package/src/duckdb/src/include/duckdb/common/enums/tableref_type.hpp +3 -2
- package/src/duckdb/src/include/duckdb/common/enums/wal_type.hpp +1 -0
- package/src/duckdb/src/include/duckdb/common/error_data.hpp +72 -0
- package/src/duckdb/src/include/duckdb/common/exception/binder_exception.hpp +47 -0
- package/src/duckdb/src/include/duckdb/common/exception/catalog_exception.hpp +39 -0
- package/src/duckdb/src/include/duckdb/common/exception/conversion_exception.hpp +27 -0
- package/src/duckdb/src/include/duckdb/common/exception/http_exception.hpp +62 -0
- package/src/duckdb/src/include/duckdb/common/exception/list.hpp +6 -0
- package/src/duckdb/src/include/duckdb/common/exception/parser_exception.hpp +29 -0
- package/src/duckdb/src/include/duckdb/common/exception/transaction_exception.hpp +25 -0
- package/src/duckdb/src/include/duckdb/common/exception.hpp +52 -166
- package/src/duckdb/src/include/duckdb/common/exception_format_value.hpp +7 -4
- package/src/duckdb/src/include/duckdb/common/extra_type_info.hpp +53 -1
- package/src/duckdb/src/include/duckdb/common/helper.hpp +13 -3
- package/src/duckdb/src/include/duckdb/common/http_state.hpp +18 -4
- package/src/duckdb/src/include/duckdb/common/hugeint.hpp +5 -1
- package/src/duckdb/src/include/duckdb/common/limits.hpp +19 -1
- package/src/duckdb/src/include/duckdb/common/local_file_system.hpp +1 -0
- package/src/duckdb/src/include/duckdb/common/multi_file_reader.hpp +7 -2
- package/src/duckdb/src/include/duckdb/common/numeric_utils.hpp +16 -3
- package/src/duckdb/src/include/duckdb/common/operator/add.hpp +13 -2
- package/src/duckdb/src/include/duckdb/common/operator/cast_operators.hpp +114 -5
- package/src/duckdb/src/include/duckdb/common/operator/comparison_operators.hpp +0 -4
- package/src/duckdb/src/include/duckdb/common/operator/convert_to_string.hpp +2 -0
- package/src/duckdb/src/include/duckdb/common/operator/decimal_cast_operators.hpp +29 -0
- package/src/duckdb/src/include/duckdb/common/operator/double_cast_operator.hpp +52 -0
- package/src/duckdb/src/include/duckdb/common/operator/integer_cast_operator.hpp +459 -0
- package/src/duckdb/src/include/duckdb/common/operator/multiply.hpp +2 -0
- package/src/duckdb/src/include/duckdb/common/operator/numeric_cast.hpp +136 -0
- package/src/duckdb/src/include/duckdb/common/operator/string_cast.hpp +2 -0
- package/src/duckdb/src/include/duckdb/common/operator/subtract.hpp +7 -1
- package/src/duckdb/src/include/duckdb/common/optional_idx.hpp +7 -5
- package/src/duckdb/src/include/duckdb/common/platform.h +53 -0
- package/src/duckdb/src/include/duckdb/common/progress_bar/display/terminal_progress_bar_display.hpp +5 -5
- package/src/duckdb/src/include/duckdb/common/progress_bar/progress_bar.hpp +22 -6
- package/src/duckdb/src/include/duckdb/common/radix.hpp +6 -0
- package/src/duckdb/src/include/duckdb/common/row_operations/row_operations.hpp +20 -6
- package/src/duckdb/src/include/duckdb/common/serializer/binary_deserializer.hpp +1 -0
- package/src/duckdb/src/include/duckdb/common/serializer/binary_serializer.hpp +1 -0
- package/src/duckdb/src/include/duckdb/common/serializer/deserializer.hpp +43 -4
- package/src/duckdb/src/include/duckdb/common/serializer/serialization_traits.hpp +1 -0
- package/src/duckdb/src/include/duckdb/common/serializer/serializer.hpp +15 -0
- package/src/duckdb/src/include/duckdb/common/sort/comparators.hpp +2 -0
- package/src/duckdb/src/include/duckdb/common/sort/partition_state.hpp +12 -2
- package/src/duckdb/src/include/duckdb/common/sort/sort.hpp +81 -0
- package/src/duckdb/src/include/duckdb/common/sort/sorted_block.hpp +0 -78
- package/src/duckdb/src/include/duckdb/common/string_util.hpp +23 -1
- package/src/duckdb/src/include/duckdb/common/type_util.hpp +5 -1
- package/src/duckdb/src/include/duckdb/common/types/cast_helpers.hpp +26 -3
- package/src/duckdb/src/include/duckdb/common/types/conflict_manager.hpp +8 -0
- package/src/duckdb/src/include/duckdb/common/types/data_chunk.hpp +3 -0
- package/src/duckdb/src/include/duckdb/common/types/date.hpp +3 -0
- package/src/duckdb/src/include/duckdb/common/types/datetime.hpp +5 -3
- package/src/duckdb/src/include/duckdb/common/types/hash.hpp +2 -0
- package/src/duckdb/src/include/duckdb/common/types/hugeint.hpp +81 -15
- package/src/duckdb/src/include/duckdb/common/types/interval.hpp +57 -29
- package/src/duckdb/src/include/duckdb/common/types/list_segment.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/types/row/partitioned_tuple_data.hpp +4 -2
- package/src/duckdb/src/include/duckdb/common/types/row/row_data_collection.hpp +2 -2
- package/src/duckdb/src/include/duckdb/common/types/row/tuple_data_collection.hpp +26 -22
- package/src/duckdb/src/include/duckdb/common/types/row/tuple_data_states.hpp +7 -0
- package/src/duckdb/src/include/duckdb/common/types/string_type.hpp +7 -5
- package/src/duckdb/src/include/duckdb/common/types/time.hpp +6 -2
- package/src/duckdb/src/include/duckdb/common/types/timestamp.hpp +2 -0
- package/src/duckdb/src/include/duckdb/common/types/uhugeint.hpp +216 -0
- package/src/duckdb/src/include/duckdb/common/types/validity_mask.hpp +18 -10
- package/src/duckdb/src/include/duckdb/common/types/value.hpp +31 -0
- package/src/duckdb/src/include/duckdb/common/types/vector.hpp +18 -2
- package/src/duckdb/src/include/duckdb/common/types/vector_buffer.hpp +22 -1
- package/src/duckdb/src/include/duckdb/common/types.hpp +151 -49
- package/src/duckdb/src/include/duckdb/common/uhugeint.hpp +81 -0
- package/src/duckdb/src/include/duckdb/common/vector_operations/aggregate_executor.hpp +70 -6
- package/src/duckdb/src/include/duckdb/common/vector_size.hpp +6 -6
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/distributive_functions.hpp +29 -2
- package/src/duckdb/src/include/duckdb/core_functions/lambda_functions.hpp +131 -0
- package/src/duckdb/src/include/duckdb/core_functions/scalar/array_functions.hpp +69 -0
- package/src/duckdb/src/include/duckdb/core_functions/scalar/blob_functions.hpp +9 -0
- package/src/duckdb/src/include/duckdb/core_functions/scalar/date_functions.hpp +40 -4
- package/src/duckdb/src/include/duckdb/core_functions/scalar/list_functions.hpp +42 -0
- package/src/duckdb/src/include/duckdb/core_functions/scalar/secret_functions.hpp +27 -0
- package/src/duckdb/src/include/duckdb/core_functions/scalar/string_functions.hpp +56 -2
- package/src/duckdb/src/include/duckdb/core_functions/to_interval.hpp +29 -0
- package/src/duckdb/src/include/duckdb/execution/aggregate_hashtable.hpp +2 -2
- package/src/duckdb/src/include/duckdb/execution/executor.hpp +11 -13
- package/src/duckdb/src/include/duckdb/execution/index/art/art.hpp +34 -19
- package/src/duckdb/src/include/duckdb/execution/index/fixed_size_allocator.hpp +18 -14
- package/src/duckdb/src/include/duckdb/execution/index/fixed_size_buffer.hpp +2 -1
- package/src/duckdb/src/include/duckdb/execution/index/index_type.hpp +57 -0
- package/src/duckdb/src/include/duckdb/execution/index/index_type_set.hpp +29 -0
- package/src/duckdb/src/include/duckdb/execution/index/unknown_index.hpp +65 -0
- package/src/duckdb/src/include/duckdb/execution/join_hashtable.hpp +35 -24
- package/src/duckdb/src/include/duckdb/execution/merge_sort_tree.hpp +630 -0
- package/src/duckdb/src/include/duckdb/execution/operator/aggregate/physical_hash_aggregate.hpp +2 -0
- package/src/duckdb/src/include/duckdb/execution/operator/aggregate/physical_window.hpp +3 -2
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/buffer_manager/csv_buffer.hpp +103 -0
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/buffer_manager/csv_buffer_manager.hpp +74 -0
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/buffer_manager/csv_file_handle.hpp +60 -0
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/options/csv_option.hpp +155 -0
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/options/csv_reader_options.hpp +163 -0
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/options/state_machine_options.hpp +35 -0
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/scanner/base_scanner.hpp +228 -0
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/scanner/column_count_scanner.hpp +70 -0
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/scanner/scanner_boundary.hpp +93 -0
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/scanner/skip_scanner.hpp +60 -0
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/scanner/string_value_scanner.hpp +197 -0
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/sniffer/csv_sniffer.hpp +189 -0
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/sniffer/quote_rules.hpp +21 -0
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/state_machine/csv_state.hpp +30 -0
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/state_machine/csv_state_machine.hpp +99 -0
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/state_machine/csv_state_machine_cache.hpp +87 -0
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/table_function/csv_file_scanner.hpp +70 -0
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/table_function/global_csv_state.hpp +80 -0
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/util/csv_casting.hpp +137 -0
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/util/csv_error.hpp +104 -0
- package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_batch_collector.hpp +0 -4
- package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_buffered_collector.hpp +37 -0
- package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_create_secret.hpp +38 -0
- package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_pragma.hpp +4 -7
- package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_reservoir_sample.hpp +6 -2
- package/src/duckdb/src/include/duckdb/execution/operator/join/physical_blockwise_nl_join.hpp +1 -2
- package/src/duckdb/src/include/duckdb/execution/operator/join/physical_delim_join.hpp +5 -18
- package/src/duckdb/src/include/duckdb/execution/operator/join/physical_hash_join.hpp +14 -5
- package/src/duckdb/src/include/duckdb/execution/operator/join/physical_iejoin.hpp +2 -2
- package/src/duckdb/src/include/duckdb/execution/operator/join/physical_join.hpp +2 -1
- package/src/duckdb/src/include/duckdb/execution/operator/join/physical_left_delim_join.hpp +37 -0
- package/src/duckdb/src/include/duckdb/execution/operator/join/physical_nested_loop_join.hpp +1 -2
- package/src/duckdb/src/include/duckdb/execution/operator/join/physical_piecewise_merge_join.hpp +1 -1
- package/src/duckdb/src/include/duckdb/execution/operator/join/physical_range_join.hpp +1 -1
- package/src/duckdb/src/include/duckdb/execution/operator/join/physical_right_delim_join.hpp +37 -0
- package/src/duckdb/src/include/duckdb/execution/operator/order/physical_order.hpp +0 -1
- package/src/duckdb/src/include/duckdb/execution/operator/order/physical_top_n.hpp +0 -1
- package/src/duckdb/src/include/duckdb/execution/operator/persistent/physical_copy_database.hpp +35 -0
- package/src/duckdb/src/include/duckdb/execution/operator/persistent/physical_copy_to_file.hpp +8 -3
- package/src/duckdb/src/include/duckdb/execution/operator/persistent/physical_export.hpp +14 -0
- package/src/duckdb/src/include/duckdb/execution/operator/scan/physical_column_data_scan.hpp +1 -4
- package/src/duckdb/src/include/duckdb/execution/operator/scan/physical_expression_scan.hpp +0 -1
- package/src/duckdb/src/include/duckdb/execution/operator/set/physical_cte.hpp +17 -12
- package/src/duckdb/src/include/duckdb/execution/operator/set/physical_recursive_cte.hpp +4 -0
- package/src/duckdb/src/include/duckdb/execution/operator/set/physical_union.hpp +3 -1
- package/src/duckdb/src/include/duckdb/execution/physical_operator.hpp +2 -1
- package/src/duckdb/src/include/duckdb/execution/physical_plan_generator.hpp +6 -2
- package/src/duckdb/src/include/duckdb/execution/radix_partitioned_hashtable.hpp +3 -1
- package/src/duckdb/src/include/duckdb/execution/reservoir_sample.hpp +32 -18
- package/src/duckdb/src/include/duckdb/execution/task_error_manager.hpp +57 -0
- package/src/duckdb/src/include/duckdb/execution/window_executor.hpp +2 -0
- package/src/duckdb/src/include/duckdb/execution/window_segment_tree.hpp +101 -19
- package/src/duckdb/src/include/duckdb/function/aggregate_function.hpp +46 -14
- package/src/duckdb/src/include/duckdb/function/aggregate_state.hpp +6 -2
- package/src/duckdb/src/include/duckdb/function/built_in_functions.hpp +1 -0
- package/src/duckdb/src/include/duckdb/function/cast/bound_cast_data.hpp +26 -1
- package/src/duckdb/src/include/duckdb/function/cast/cast_function_set.hpp +3 -0
- package/src/duckdb/src/include/duckdb/function/cast/default_casts.hpp +1 -0
- package/src/duckdb/src/include/duckdb/function/cast/vector_cast_helpers.hpp +7 -1
- package/src/duckdb/src/include/duckdb/function/compression/compression.hpp +10 -0
- package/src/duckdb/src/include/duckdb/function/copy_function.hpp +16 -4
- package/src/duckdb/src/include/duckdb/function/function.hpp +12 -7
- package/src/duckdb/src/include/duckdb/function/function_binder.hpp +15 -12
- package/src/duckdb/src/include/duckdb/function/function_serialization.hpp +4 -3
- package/src/duckdb/src/include/duckdb/function/macro_function.hpp +3 -3
- package/src/duckdb/src/include/duckdb/function/pragma/pragma_functions.hpp +4 -1
- package/src/duckdb/src/include/duckdb/function/scalar/list/contains_or_position.hpp +3 -0
- package/src/duckdb/src/include/duckdb/function/scalar/nested_functions.hpp +21 -1
- package/src/duckdb/src/include/duckdb/function/scalar/sequence_functions.hpp +22 -0
- package/src/duckdb/src/include/duckdb/function/scalar/strftime_format.hpp +16 -2
- package/src/duckdb/src/include/duckdb/function/scalar_function.hpp +22 -8
- package/src/duckdb/src/include/duckdb/function/table/arrow/arrow_duck_schema.hpp +6 -0
- package/src/duckdb/src/include/duckdb/function/table/arrow.hpp +35 -3
- package/src/duckdb/src/include/duckdb/function/table/list.hpp +1 -0
- package/src/duckdb/src/include/duckdb/function/table/range.hpp +12 -0
- package/src/duckdb/src/include/duckdb/function/table/read_csv.hpp +14 -16
- package/src/duckdb/src/include/duckdb/function/table/system_functions.hpp +12 -8
- package/src/duckdb/src/include/duckdb/function/table/table_scan.hpp +0 -2
- package/src/duckdb/src/include/duckdb/function/table_function.hpp +8 -3
- package/src/duckdb/src/include/duckdb/main/appender.hpp +3 -1
- package/src/duckdb/src/include/duckdb/main/attached_database.hpp +3 -2
- package/src/duckdb/src/include/duckdb/main/buffered_data/buffered_data.hpp +89 -0
- package/src/duckdb/src/include/duckdb/main/buffered_data/simple_buffered_data.hpp +53 -0
- package/src/duckdb/src/include/duckdb/main/capi/capi_internal.hpp +2 -1
- package/src/duckdb/src/include/duckdb/main/capi/cast/generic.hpp +2 -0
- package/src/duckdb/src/include/duckdb/main/chunk_scan_state/query_result.hpp +4 -4
- package/src/duckdb/src/include/duckdb/main/chunk_scan_state.hpp +3 -3
- package/src/duckdb/src/include/duckdb/main/client_config.hpp +8 -10
- package/src/duckdb/src/include/duckdb/main/client_context.hpp +22 -23
- package/src/duckdb/src/include/duckdb/main/client_context_state.hpp +37 -0
- package/src/duckdb/src/include/duckdb/main/client_data.hpp +1 -7
- package/src/duckdb/src/include/duckdb/main/config.hpp +24 -7
- package/src/duckdb/src/include/duckdb/main/connection.hpp +8 -1
- package/src/duckdb/src/include/duckdb/main/connection_manager.hpp +17 -26
- package/src/duckdb/src/include/duckdb/main/database.hpp +4 -2
- package/src/duckdb/src/include/duckdb/main/database_manager.hpp +39 -7
- package/src/duckdb/src/include/duckdb/main/database_path_and_type.hpp +5 -4
- package/src/duckdb/src/include/duckdb/main/error_manager.hpp +4 -1
- package/src/duckdb/src/include/duckdb/main/extension_entries.hpp +203 -197
- package/src/duckdb/src/include/duckdb/main/extension_helper.hpp +42 -16
- package/src/duckdb/src/include/duckdb/main/extension_util.hpp +8 -1
- package/src/duckdb/src/include/duckdb/main/materialized_query_result.hpp +1 -1
- package/src/duckdb/src/include/duckdb/main/pending_query_result.hpp +5 -2
- package/src/duckdb/src/include/duckdb/main/prepared_statement.hpp +4 -4
- package/src/duckdb/src/include/duckdb/main/prepared_statement_data.hpp +2 -0
- package/src/duckdb/src/include/duckdb/main/query_profiler.hpp +0 -32
- package/src/duckdb/src/include/duckdb/main/query_result.hpp +13 -12
- package/src/duckdb/src/include/duckdb/main/relation/read_csv_relation.hpp +6 -6
- package/src/duckdb/src/include/duckdb/main/relation/setop_relation.hpp +3 -1
- package/src/duckdb/src/include/duckdb/main/secret/secret.hpp +206 -0
- package/src/duckdb/src/include/duckdb/main/secret/secret_manager.hpp +211 -0
- package/src/duckdb/src/include/duckdb/main/secret/secret_storage.hpp +164 -0
- package/src/duckdb/src/include/duckdb/main/settings.hpp +52 -13
- package/src/duckdb/src/include/duckdb/main/stream_query_result.hpp +9 -1
- package/src/duckdb/src/include/duckdb/optimizer/deliminator.hpp +4 -1
- package/src/duckdb/src/include/duckdb/optimizer/filter_pushdown.hpp +2 -0
- package/src/duckdb/src/include/duckdb/optimizer/join_order/join_node.hpp +1 -1
- package/src/duckdb/src/include/duckdb/optimizer/join_order/join_relation.hpp +2 -0
- package/src/duckdb/src/include/duckdb/optimizer/join_order/query_graph_manager.hpp +3 -0
- package/src/duckdb/src/include/duckdb/optimizer/join_order/relation_statistics_helper.hpp +1 -0
- package/src/duckdb/src/include/duckdb/parallel/event.hpp +2 -2
- package/src/duckdb/src/include/duckdb/parallel/meta_pipeline.hpp +14 -22
- package/src/duckdb/src/include/duckdb/parallel/pipeline.hpp +20 -0
- package/src/duckdb/src/include/duckdb/parallel/pipeline_executor.hpp +3 -5
- package/src/duckdb/src/include/duckdb/parallel/task.hpp +7 -0
- package/src/duckdb/src/include/duckdb/parallel/task_scheduler.hpp +10 -4
- package/src/duckdb/src/include/duckdb/parser/base_expression.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/column_definition.hpp +8 -1
- package/src/duckdb/src/include/duckdb/parser/expression/function_expression.hpp +11 -4
- package/src/duckdb/src/include/duckdb/parser/expression/lambda_expression.hpp +16 -9
- package/src/duckdb/src/include/duckdb/parser/expression/lambdaref_expression.hpp +47 -0
- package/src/duckdb/src/include/duckdb/parser/expression/list.hpp +1 -0
- package/src/duckdb/src/include/duckdb/parser/expression/window_expression.hpp +29 -2
- package/src/duckdb/src/include/duckdb/parser/parsed_data/alter_info.hpp +2 -1
- package/src/duckdb/src/include/duckdb/parser/parsed_data/alter_table_info.hpp +47 -2
- package/src/duckdb/src/include/duckdb/parser/parsed_data/attach_info.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/parsed_data/bound_pragma_info.hpp +29 -0
- package/src/duckdb/src/include/duckdb/parser/parsed_data/comment_on_info.hpp +45 -0
- package/src/duckdb/src/include/duckdb/parser/parsed_data/create_index_info.hpp +21 -22
- package/src/duckdb/src/include/duckdb/parser/parsed_data/create_info.hpp +5 -11
- package/src/duckdb/src/include/duckdb/parser/parsed_data/create_schema_info.hpp +23 -0
- package/src/duckdb/src/include/duckdb/parser/parsed_data/create_secret_info.hpp +47 -0
- package/src/duckdb/src/include/duckdb/parser/parsed_data/create_table_info.hpp +3 -1
- package/src/duckdb/src/include/duckdb/parser/parsed_data/create_type_info.hpp +2 -0
- package/src/duckdb/src/include/duckdb/parser/parsed_data/create_view_info.hpp +4 -0
- package/src/duckdb/src/include/duckdb/parser/parsed_data/drop_info.hpp +6 -1
- package/src/duckdb/src/include/duckdb/parser/parsed_data/extra_drop_info.hpp +66 -0
- package/src/duckdb/src/include/duckdb/parser/parsed_data/parse_info.hpp +3 -1
- package/src/duckdb/src/include/duckdb/parser/parsed_data/pragma_info.hpp +8 -4
- package/src/duckdb/src/include/duckdb/parser/parsed_expression.hpp +1 -3
- package/src/duckdb/src/include/duckdb/parser/parser_extension.hpp +2 -0
- package/src/duckdb/src/include/duckdb/parser/qualified_name.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/query_error_context.hpp +5 -22
- package/src/duckdb/src/include/duckdb/parser/query_node/set_operation_node.hpp +2 -0
- package/src/duckdb/src/include/duckdb/parser/statement/copy_database_statement.hpp +40 -0
- package/src/duckdb/src/include/duckdb/parser/statement/list.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/statement/set_statement.hpp +4 -3
- package/src/duckdb/src/include/duckdb/parser/tableref/emptytableref.hpp +2 -2
- package/src/duckdb/src/include/duckdb/parser/tableref/list.hpp +1 -0
- package/src/duckdb/src/include/duckdb/parser/tableref/showref.hpp +47 -0
- package/src/duckdb/src/include/duckdb/parser/tableref.hpp +2 -1
- package/src/duckdb/src/include/duckdb/parser/tokens.hpp +2 -1
- package/src/duckdb/src/include/duckdb/parser/transformer.hpp +20 -3
- package/src/duckdb/src/include/duckdb/planner/bind_context.hpp +5 -1
- package/src/duckdb/src/include/duckdb/planner/binder.hpp +24 -27
- package/src/duckdb/src/include/duckdb/planner/bound_result_modifier.hpp +4 -0
- package/src/duckdb/src/include/duckdb/planner/expression/bound_cast_expression.hpp +4 -0
- package/src/duckdb/src/include/duckdb/planner/expression/bound_comparison_expression.hpp +4 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_function_expression.hpp +2 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_lambda_expression.hpp +4 -2
- package/src/duckdb/src/include/duckdb/planner/expression/bound_lambdaref_expression.hpp +5 -6
- package/src/duckdb/src/include/duckdb/planner/expression/bound_window_expression.hpp +11 -0
- package/src/duckdb/src/include/duckdb/planner/expression.hpp +2 -1
- package/src/duckdb/src/include/duckdb/planner/expression_binder/column_alias_binder.hpp +2 -2
- package/src/duckdb/src/include/duckdb/planner/expression_binder/index_binder.hpp +3 -2
- package/src/duckdb/src/include/duckdb/planner/expression_binder/order_binder.hpp +2 -1
- package/src/duckdb/src/include/duckdb/planner/expression_binder/table_function_binder.hpp +2 -1
- package/src/duckdb/src/include/duckdb/planner/expression_binder.hpp +65 -22
- package/src/duckdb/src/include/duckdb/planner/filter/struct_filter.hpp +41 -0
- package/src/duckdb/src/include/duckdb/planner/logical_tokens.hpp +2 -1
- package/src/duckdb/src/include/duckdb/planner/operator/list.hpp +2 -1
- package/src/duckdb/src/include/duckdb/planner/operator/logical_comparison_join.hpp +2 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_copy_database.hpp +45 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_copy_to_file.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_create_secret.hpp +43 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_cteref.hpp +3 -2
- package/src/duckdb/src/include/duckdb/planner/operator/logical_pragma.hpp +5 -10
- package/src/duckdb/src/include/duckdb/planner/operator/logical_recursive_cte.hpp +2 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_set_operation.hpp +11 -4
- package/src/duckdb/src/include/duckdb/planner/parsed_data/bound_create_table_info.hpp +3 -3
- package/src/duckdb/src/include/duckdb/planner/pragma_handler.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/query_node/bound_set_operation_node.hpp +2 -0
- package/src/duckdb/src/include/duckdb/planner/subquery/flatten_dependent_join.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/subquery/rewrite_cte_scan.hpp +29 -0
- package/src/duckdb/src/include/duckdb/planner/table_binding.hpp +9 -7
- package/src/duckdb/src/include/duckdb/planner/table_filter.hpp +2 -1
- package/src/duckdb/src/include/duckdb/planner/tableref/bound_dummytableref.hpp +3 -2
- package/src/duckdb/src/include/duckdb/storage/buffer/block_handle.hpp +9 -5
- package/src/duckdb/src/include/duckdb/storage/buffer/buffer_pool.hpp +23 -6
- package/src/duckdb/src/include/duckdb/storage/buffer/temporary_file_information.hpp +7 -0
- package/src/duckdb/src/include/duckdb/storage/buffer_manager.hpp +11 -4
- package/src/duckdb/src/include/duckdb/storage/checkpoint/row_group_writer.hpp +0 -3
- package/src/duckdb/src/include/duckdb/storage/checkpoint/string_checkpoint_state.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/checkpoint/table_data_writer.hpp +7 -7
- package/src/duckdb/src/include/duckdb/storage/checkpoint_manager.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/compression/alp/algorithm/alp.hpp +408 -0
- package/src/duckdb/src/include/duckdb/storage/compression/alp/alp_analyze.hpp +173 -0
- package/src/duckdb/src/include/duckdb/storage/compression/alp/alp_compress.hpp +283 -0
- package/src/duckdb/src/include/duckdb/storage/compression/alp/alp_constants.hpp +134 -0
- package/src/duckdb/src/include/duckdb/storage/compression/alp/alp_fetch.hpp +42 -0
- package/src/duckdb/src/include/duckdb/storage/compression/alp/alp_scan.hpp +244 -0
- package/src/duckdb/src/include/duckdb/storage/compression/alp/alp_utils.hpp +103 -0
- package/src/duckdb/src/include/duckdb/storage/compression/alprd/algorithm/alprd.hpp +235 -0
- package/src/duckdb/src/include/duckdb/storage/compression/alprd/alprd_analyze.hpp +134 -0
- package/src/duckdb/src/include/duckdb/storage/compression/alprd/alprd_compress.hpp +301 -0
- package/src/duckdb/src/include/duckdb/storage/compression/alprd/alprd_constants.hpp +35 -0
- package/src/duckdb/src/include/duckdb/storage/compression/alprd/alprd_fetch.hpp +41 -0
- package/src/duckdb/src/include/duckdb/storage/compression/alprd/alprd_scan.hpp +252 -0
- package/src/duckdb/src/include/duckdb/storage/compression/chimp/chimp_analyze.hpp +7 -103
- package/src/duckdb/src/include/duckdb/storage/compression/chimp/chimp_compress.hpp +5 -234
- package/src/duckdb/src/include/duckdb/storage/compression/chimp/chimp_scan.hpp +2 -2
- package/src/duckdb/src/include/duckdb/storage/compression/patas/patas_analyze.hpp +7 -107
- package/src/duckdb/src/include/duckdb/storage/compression/patas/patas_compress.hpp +5 -184
- package/src/duckdb/src/include/duckdb/storage/data_table.hpp +12 -17
- package/src/duckdb/src/include/duckdb/storage/database_size.hpp +1 -0
- package/src/duckdb/src/include/duckdb/storage/index.hpp +40 -42
- package/src/duckdb/src/include/duckdb/storage/index_storage_info.hpp +77 -0
- package/src/duckdb/src/include/duckdb/storage/metadata/metadata_manager.hpp +6 -2
- package/src/duckdb/src/include/duckdb/storage/object_cache.hpp +0 -1
- package/src/duckdb/src/include/duckdb/storage/partial_block_manager.hpp +12 -6
- package/src/duckdb/src/include/duckdb/storage/segment/uncompressed.hpp +8 -3
- package/src/duckdb/src/include/duckdb/storage/standard_buffer_manager.hpp +17 -17
- package/src/duckdb/src/include/duckdb/storage/statistics/array_stats.hpp +40 -0
- package/src/duckdb/src/include/duckdb/storage/statistics/base_statistics.hpp +12 -3
- package/src/duckdb/src/include/duckdb/storage/statistics/numeric_stats_union.hpp +3 -0
- package/src/duckdb/src/include/duckdb/storage/storage_extension.hpp +3 -2
- package/src/duckdb/src/include/duckdb/storage/storage_info.hpp +49 -24
- package/src/duckdb/src/include/duckdb/storage/storage_manager.hpp +8 -4
- package/src/duckdb/src/include/duckdb/storage/table/array_column_data.hpp +67 -0
- package/src/duckdb/src/include/duckdb/storage/table/column_data.hpp +3 -3
- package/src/duckdb/src/include/duckdb/storage/table/column_data_checkpointer.hpp +1 -0
- package/src/duckdb/src/include/duckdb/storage/table/column_segment.hpp +1 -2
- package/src/duckdb/src/include/duckdb/storage/table/data_table_info.hpp +8 -3
- package/src/duckdb/src/include/duckdb/storage/table/list_column_data.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/table/row_group.hpp +4 -2
- package/src/duckdb/src/include/duckdb/storage/table/row_group_collection.hpp +7 -0
- package/src/duckdb/src/include/duckdb/storage/table/scan_state.hpp +12 -1
- package/src/duckdb/src/include/duckdb/storage/table/standard_column_data.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/table/struct_column_data.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/table/table_index_list.hpp +16 -12
- package/src/duckdb/src/include/duckdb/storage/table/table_statistics.hpp +4 -0
- package/src/duckdb/src/include/duckdb/storage/table_storage_info.hpp +6 -9
- package/src/duckdb/src/include/duckdb/storage/temporary_memory_manager.hpp +119 -0
- package/src/duckdb/src/include/duckdb/storage/write_ahead_log.hpp +13 -55
- package/src/duckdb/src/include/duckdb/transaction/duck_transaction.hpp +1 -1
- package/src/duckdb/src/include/duckdb/transaction/duck_transaction_manager.hpp +4 -5
- package/src/duckdb/src/include/duckdb/transaction/local_storage.hpp +2 -2
- package/src/duckdb/src/include/duckdb/transaction/meta_transaction.hpp +6 -3
- package/src/duckdb/src/include/duckdb/transaction/transaction_context.hpp +4 -4
- package/src/duckdb/src/include/duckdb/transaction/transaction_manager.hpp +3 -3
- package/src/duckdb/src/include/duckdb/verification/fetch_row_verifier.hpp +25 -0
- package/src/duckdb/src/include/duckdb/verification/statement_verifier.hpp +5 -0
- package/src/duckdb/src/include/duckdb.h +571 -143
- package/src/duckdb/src/main/appender.cpp +17 -2
- package/src/duckdb/src/main/attached_database.cpp +24 -12
- package/src/duckdb/src/main/buffered_data/simple_buffered_data.cpp +96 -0
- package/src/duckdb/src/main/capi/appender-c.cpp +42 -3
- package/src/duckdb/src/main/capi/arrow-c.cpp +32 -9
- package/src/duckdb/src/main/capi/datetime-c.cpp +22 -0
- package/src/duckdb/src/main/capi/duckdb-c.cpp +14 -4
- package/src/duckdb/src/main/capi/duckdb_value-c.cpp +66 -2
- package/src/duckdb/src/main/capi/helper-c.cpp +76 -2
- package/src/duckdb/src/main/capi/hugeint-c.cpp +23 -0
- package/src/duckdb/src/main/capi/logical_types-c.cpp +27 -3
- package/src/duckdb/src/main/capi/pending-c.cpp +43 -9
- package/src/duckdb/src/main/capi/prepared-c.cpp +38 -2
- package/src/duckdb/src/main/capi/result-c.cpp +54 -3
- package/src/duckdb/src/main/capi/table_function-c.cpp +4 -4
- package/src/duckdb/src/main/capi/value-c.cpp +10 -0
- package/src/duckdb/src/main/chunk_scan_state/query_result.cpp +3 -3
- package/src/duckdb/src/main/client_context.cpp +259 -250
- package/src/duckdb/src/main/client_data.cpp +0 -1
- package/src/duckdb/src/main/client_verify.cpp +26 -8
- package/src/duckdb/src/main/config.cpp +34 -13
- package/src/duckdb/src/main/connection.cpp +27 -6
- package/src/duckdb/src/main/connection_manager.cpp +54 -0
- package/src/duckdb/src/main/database.cpp +44 -39
- package/src/duckdb/src/main/database_manager.cpp +106 -8
- package/src/duckdb/src/main/database_path_and_type.cpp +27 -8
- package/src/duckdb/src/main/db_instance_cache.cpp +4 -4
- package/src/duckdb/src/main/error_manager.cpp +12 -3
- package/src/duckdb/src/main/extension/extension_alias.cpp +2 -2
- package/src/duckdb/src/main/extension/extension_helper.cpp +15 -16
- package/src/duckdb/src/main/extension/extension_install.cpp +33 -24
- package/src/duckdb/src/main/extension/extension_load.cpp +22 -21
- package/src/duckdb/src/main/extension/extension_util.cpp +12 -0
- package/src/duckdb/src/main/materialized_query_result.cpp +1 -1
- package/src/duckdb/src/main/pending_query_result.cpp +25 -8
- package/src/duckdb/src/main/prepared_statement.cpp +5 -5
- package/src/duckdb/src/main/prepared_statement_data.cpp +8 -1
- package/src/duckdb/src/main/query_profiler.cpp +11 -11
- package/src/duckdb/src/main/query_result.cpp +32 -6
- package/src/duckdb/src/main/relation/cross_product_relation.cpp +1 -1
- package/src/duckdb/src/main/relation/join_relation.cpp +2 -2
- package/src/duckdb/src/main/relation/read_csv_relation.cpp +38 -32
- package/src/duckdb/src/main/relation/setop_relation.cpp +5 -3
- package/src/duckdb/src/main/relation.cpp +5 -5
- package/src/duckdb/src/main/secret/secret.cpp +135 -0
- package/src/duckdb/src/main/secret/secret_manager.cpp +634 -0
- package/src/duckdb/src/main/secret/secret_storage.cpp +233 -0
- package/src/duckdb/src/main/settings/settings.cpp +133 -38
- package/src/duckdb/src/main/stream_query_result.cpp +53 -14
- package/src/duckdb/src/optimizer/column_lifetime_analyzer.cpp +6 -0
- package/src/duckdb/src/optimizer/cse_optimizer.cpp +1 -1
- package/src/duckdb/src/optimizer/deliminator.cpp +136 -14
- package/src/duckdb/src/optimizer/filter_combiner.cpp +72 -26
- package/src/duckdb/src/optimizer/filter_pushdown.cpp +3 -0
- package/src/duckdb/src/optimizer/join_order/cardinality_estimator.cpp +2 -1
- package/src/duckdb/src/optimizer/join_order/cost_model.cpp +0 -1
- package/src/duckdb/src/optimizer/join_order/join_node.cpp +4 -0
- package/src/duckdb/src/optimizer/join_order/join_order_optimizer.cpp +3 -6
- package/src/duckdb/src/optimizer/join_order/join_relation_set.cpp +20 -0
- package/src/duckdb/src/optimizer/join_order/query_graph_manager.cpp +71 -40
- package/src/duckdb/src/optimizer/join_order/relation_manager.cpp +12 -3
- package/src/duckdb/src/optimizer/join_order/relation_statistics_helper.cpp +77 -3
- package/src/duckdb/src/optimizer/pushdown/pushdown_projection.cpp +7 -7
- package/src/duckdb/src/optimizer/pushdown/pushdown_semi_anti_join.cpp +56 -0
- package/src/duckdb/src/optimizer/remove_unused_columns.cpp +21 -0
- package/src/duckdb/src/optimizer/rule/date_part_simplification.cpp +2 -2
- package/src/duckdb/src/optimizer/rule/move_constants.cpp +15 -10
- package/src/duckdb/src/optimizer/rule/ordered_aggregate_optimizer.cpp +70 -0
- package/src/duckdb/src/optimizer/rule/regex_optimizations.cpp +17 -5
- package/src/duckdb/src/optimizer/statistics/expression/propagate_cast.cpp +1 -0
- package/src/duckdb/src/optimizer/statistics/expression/propagate_comparison.cpp +1 -0
- package/src/duckdb/src/optimizer/statistics/operator/propagate_filter.cpp +1 -2
- package/src/duckdb/src/optimizer/statistics/operator/propagate_join.cpp +22 -9
- package/src/duckdb/src/optimizer/statistics/operator/propagate_window.cpp +28 -4
- package/src/duckdb/src/optimizer/unnest_rewriter.cpp +12 -7
- package/src/duckdb/src/parallel/event.cpp +2 -2
- package/src/duckdb/src/parallel/executor.cpp +114 -81
- package/src/duckdb/src/parallel/executor_task.cpp +2 -4
- package/src/duckdb/src/parallel/meta_pipeline.cpp +28 -29
- package/src/duckdb/src/parallel/pipeline.cpp +41 -41
- package/src/duckdb/src/parallel/pipeline_event.cpp +2 -4
- package/src/duckdb/src/parallel/pipeline_executor.cpp +13 -75
- package/src/duckdb/src/parallel/task_scheduler.cpp +22 -13
- package/src/duckdb/src/parser/column_definition.cpp +22 -4
- package/src/duckdb/src/parser/column_list.cpp +2 -1
- package/src/duckdb/src/parser/expression/function_expression.cpp +1 -1
- package/src/duckdb/src/parser/expression/lambda_expression.cpp +51 -0
- package/src/duckdb/src/parser/expression/lambdaref_expression.cpp +59 -0
- package/src/duckdb/src/parser/expression/window_expression.cpp +9 -1
- package/src/duckdb/src/parser/parsed_data/alter_table_info.cpp +40 -0
- package/src/duckdb/src/parser/parsed_data/attach_info.cpp +1 -0
- package/src/duckdb/src/parser/parsed_data/comment_on_info.cpp +19 -0
- package/src/duckdb/src/parser/parsed_data/create_index_info.cpp +11 -9
- package/src/duckdb/src/parser/parsed_data/create_info.cpp +1 -0
- package/src/duckdb/src/parser/parsed_data/create_secret_info.cpp +22 -0
- package/src/duckdb/src/parser/parsed_data/create_table_info.cpp +17 -0
- package/src/duckdb/src/parser/parsed_data/create_type_info.cpp +19 -0
- package/src/duckdb/src/parser/parsed_data/create_view_info.cpp +13 -9
- package/src/duckdb/src/parser/parsed_data/drop_info.cpp +8 -9
- package/src/duckdb/src/parser/parsed_data/extra_drop_info.cpp +16 -0
- package/src/duckdb/src/parser/parsed_expression_iterator.cpp +3 -1
- package/src/duckdb/src/parser/parser.cpp +14 -8
- package/src/duckdb/src/parser/query_error_context.cpp +12 -13
- package/src/duckdb/src/parser/query_node/select_node.cpp +5 -1
- package/src/duckdb/src/parser/query_node/set_operation_node.cpp +8 -13
- package/src/duckdb/src/parser/statement/copy_database_statement.cpp +41 -0
- package/src/duckdb/src/parser/statement/set_statement.cpp +5 -1
- package/src/duckdb/src/parser/tableref/basetableref.cpp +1 -0
- package/src/duckdb/src/parser/tableref/showref.cpp +47 -0
- package/src/duckdb/src/parser/transform/constraint/transform_constraint.cpp +6 -2
- package/src/duckdb/src/parser/transform/expression/transform_bool_expr.cpp +1 -0
- package/src/duckdb/src/parser/transform/expression/transform_boolean_test.cpp +30 -15
- package/src/duckdb/src/parser/transform/expression/transform_case.cpp +1 -0
- package/src/duckdb/src/parser/transform/expression/transform_columnref.cpp +3 -2
- package/src/duckdb/src/parser/transform/expression/transform_constant.cpp +34 -4
- package/src/duckdb/src/parser/transform/expression/transform_function.cpp +26 -12
- package/src/duckdb/src/parser/transform/expression/transform_grouping_function.cpp +1 -1
- package/src/duckdb/src/parser/transform/expression/transform_interval.cpp +34 -5
- package/src/duckdb/src/parser/transform/expression/transform_is_null.cpp +3 -1
- package/src/duckdb/src/parser/transform/expression/transform_lambda.cpp +3 -1
- package/src/duckdb/src/parser/transform/expression/transform_multi_assign_reference.cpp +3 -3
- package/src/duckdb/src/parser/transform/expression/transform_operator.cpp +3 -3
- package/src/duckdb/src/parser/transform/expression/transform_positional_reference.cpp +1 -1
- package/src/duckdb/src/parser/transform/expression/transform_subquery.cpp +13 -13
- package/src/duckdb/src/parser/transform/helpers/nodetype_to_string.cpp +2 -0
- package/src/duckdb/src/parser/transform/helpers/transform_cte.cpp +1 -1
- package/src/duckdb/src/parser/transform/helpers/transform_typename.cpp +32 -1
- package/src/duckdb/src/parser/transform/statement/transform_alter_table.cpp +1 -1
- package/src/duckdb/src/parser/transform/statement/transform_attach.cpp +1 -0
- package/src/duckdb/src/parser/transform/statement/transform_comment_on.cpp +108 -0
- package/src/duckdb/src/parser/transform/statement/transform_copy.cpp +45 -37
- package/src/duckdb/src/parser/transform/statement/transform_copy_database.cpp +29 -0
- package/src/duckdb/src/parser/transform/statement/transform_create_index.cpp +5 -14
- package/src/duckdb/src/parser/transform/statement/transform_create_table.cpp +0 -1
- package/src/duckdb/src/parser/transform/statement/transform_delete.cpp +1 -1
- package/src/duckdb/src/parser/transform/statement/transform_drop.cpp +25 -6
- package/src/duckdb/src/parser/transform/statement/transform_import.cpp +2 -1
- package/src/duckdb/src/parser/transform/statement/transform_pragma.cpp +6 -14
- package/src/duckdb/src/parser/transform/statement/transform_secret.cpp +103 -0
- package/src/duckdb/src/parser/transform/statement/transform_select.cpp +8 -1
- package/src/duckdb/src/parser/transform/statement/transform_select_node.cpp +4 -8
- package/src/duckdb/src/parser/transform/statement/transform_set.cpp +18 -5
- package/src/duckdb/src/parser/transform/statement/transform_show.cpp +14 -41
- package/src/duckdb/src/parser/transform/statement/transform_show_select.cpp +13 -6
- package/src/duckdb/src/parser/transform/statement/transform_use.cpp +3 -1
- package/src/duckdb/src/parser/transform/tableref/transform_base_tableref.cpp +1 -1
- package/src/duckdb/src/parser/transform/tableref/transform_join.cpp +1 -2
- package/src/duckdb/src/parser/transform/tableref/transform_pivot.cpp +6 -5
- package/src/duckdb/src/parser/transform/tableref/transform_table_function.cpp +1 -1
- package/src/duckdb/src/parser/transformer.cpp +22 -0
- package/src/duckdb/src/planner/bind_context.cpp +23 -14
- package/src/duckdb/src/planner/binder/expression/bind_aggregate_expression.cpp +15 -14
- package/src/duckdb/src/planner/binder/expression/bind_between_expression.cpp +20 -9
- package/src/duckdb/src/planner/binder/expression/bind_case_expression.cpp +12 -7
- package/src/duckdb/src/planner/binder/expression/bind_cast_expression.cpp +4 -4
- package/src/duckdb/src/planner/binder/expression/bind_collate_expression.cpp +3 -3
- package/src/duckdb/src/planner/binder/expression/bind_columnref_expression.cpp +279 -195
- package/src/duckdb/src/planner/binder/expression/bind_comparison_expression.cpp +103 -17
- package/src/duckdb/src/planner/binder/expression/bind_conjunction_expression.cpp +3 -3
- package/src/duckdb/src/planner/binder/expression/bind_function_expression.cpp +91 -68
- package/src/duckdb/src/planner/binder/expression/bind_lambda.cpp +116 -84
- package/src/duckdb/src/planner/binder/expression/bind_macro_expression.cpp +85 -15
- package/src/duckdb/src/planner/binder/expression/bind_operator_expression.cpp +68 -31
- package/src/duckdb/src/planner/binder/expression/bind_star_expression.cpp +7 -7
- package/src/duckdb/src/planner/binder/expression/bind_subquery_expression.cpp +11 -7
- package/src/duckdb/src/planner/binder/expression/bind_unnest_expression.cpp +42 -19
- package/src/duckdb/src/planner/binder/expression/bind_window_expression.cpp +38 -16
- package/src/duckdb/src/planner/binder/query_node/bind_cte_node.cpp +16 -7
- package/src/duckdb/src/planner/binder/query_node/bind_recursive_cte_node.cpp +3 -0
- package/src/duckdb/src/planner/binder/query_node/bind_select_node.cpp +83 -12
- package/src/duckdb/src/planner/binder/query_node/bind_setop_node.cpp +28 -37
- package/src/duckdb/src/planner/binder/query_node/bind_table_macro_node.cpp +3 -4
- package/src/duckdb/src/planner/binder/query_node/plan_cte_node.cpp +2 -2
- package/src/duckdb/src/planner/binder/query_node/plan_recursive_cte_node.cpp +3 -3
- package/src/duckdb/src/planner/binder/query_node/plan_setop.cpp +7 -5
- package/src/duckdb/src/planner/binder/query_node/plan_subquery.cpp +10 -0
- package/src/duckdb/src/planner/binder/statement/bind_copy.cpp +48 -50
- package/src/duckdb/src/planner/binder/statement/bind_copy_database.cpp +187 -0
- package/src/duckdb/src/planner/binder/statement/bind_create.cpp +38 -22
- package/src/duckdb/src/planner/binder/statement/bind_create_table.cpp +8 -15
- package/src/duckdb/src/planner/binder/statement/bind_drop.cpp +6 -1
- package/src/duckdb/src/planner/binder/statement/bind_export.cpp +2 -2
- package/src/duckdb/src/planner/binder/statement/bind_insert.cpp +12 -10
- package/src/duckdb/src/planner/binder/statement/bind_pragma.cpp +37 -13
- package/src/duckdb/src/planner/binder/statement/bind_set.cpp +8 -2
- package/src/duckdb/src/planner/binder/statement/bind_simple.cpp +2 -0
- package/src/duckdb/src/planner/binder/statement/bind_summarize.cpp +29 -14
- package/src/duckdb/src/planner/binder/statement/bind_vacuum.cpp +1 -1
- package/src/duckdb/src/planner/binder/tableref/bind_basetableref.cpp +16 -6
- package/src/duckdb/src/planner/binder/tableref/bind_expressionlistref.cpp +11 -4
- package/src/duckdb/src/planner/binder/tableref/bind_joinref.cpp +1 -1
- package/src/duckdb/src/planner/binder/tableref/bind_named_parameters.cpp +2 -2
- package/src/duckdb/src/planner/binder/tableref/bind_pivot.cpp +18 -17
- package/src/duckdb/src/planner/binder/tableref/bind_showref.cpp +85 -0
- package/src/duckdb/src/planner/binder/tableref/bind_table_function.cpp +11 -17
- package/src/duckdb/src/planner/binder/tableref/plan_cteref.cpp +1 -9
- package/src/duckdb/src/planner/binder.cpp +31 -26
- package/src/duckdb/src/planner/bound_result_modifier.cpp +24 -0
- package/src/duckdb/src/planner/expression/bound_aggregate_expression.cpp +1 -1
- package/src/duckdb/src/planner/expression/bound_cast_expression.cpp +10 -1
- package/src/duckdb/src/planner/expression/bound_function_expression.cpp +20 -4
- package/src/duckdb/src/planner/expression/bound_lambdaref_expression.cpp +9 -10
- package/src/duckdb/src/planner/expression/bound_window_expression.cpp +65 -3
- package/src/duckdb/src/planner/expression.cpp +15 -5
- package/src/duckdb/src/planner/expression_binder/base_select_binder.cpp +5 -6
- package/src/duckdb/src/planner/expression_binder/check_binder.cpp +9 -8
- package/src/duckdb/src/planner/expression_binder/column_alias_binder.cpp +10 -7
- package/src/duckdb/src/planner/expression_binder/having_binder.cpp +9 -4
- package/src/duckdb/src/planner/expression_binder/index_binder.cpp +0 -25
- package/src/duckdb/src/planner/expression_binder/order_binder.cpp +8 -11
- package/src/duckdb/src/planner/expression_binder/qualify_binder.cpp +3 -2
- package/src/duckdb/src/planner/expression_binder/table_function_binder.cpp +15 -8
- package/src/duckdb/src/planner/expression_binder/where_binder.cpp +3 -4
- package/src/duckdb/src/planner/expression_binder.cpp +51 -25
- package/src/duckdb/src/planner/expression_iterator.cpp +2 -1
- package/src/duckdb/src/planner/filter/constant_filter.cpp +1 -0
- package/src/duckdb/src/planner/filter/struct_filter.cpp +33 -0
- package/src/duckdb/src/planner/joinside.cpp +1 -1
- package/src/duckdb/src/planner/logical_operator.cpp +2 -1
- package/src/duckdb/src/planner/operator/logical_copy_database.cpp +32 -0
- package/src/duckdb/src/planner/operator/logical_copy_to_file.cpp +13 -4
- package/src/duckdb/src/planner/operator/logical_create_table.cpp +2 -0
- package/src/duckdb/src/planner/operator/logical_get.cpp +4 -1
- package/src/duckdb/src/planner/operator/logical_join.cpp +8 -0
- package/src/duckdb/src/planner/planner.cpp +24 -23
- package/src/duckdb/src/planner/pragma_handler.cpp +10 -19
- package/src/duckdb/src/planner/subquery/flatten_dependent_join.cpp +99 -6
- package/src/duckdb/src/planner/subquery/rewrite_cte_scan.cpp +36 -0
- package/src/duckdb/src/planner/table_binding.cpp +14 -12
- package/src/duckdb/src/storage/buffer/block_handle.cpp +12 -10
- package/src/duckdb/src/storage/buffer/block_manager.cpp +1 -1
- package/src/duckdb/src/storage/buffer/buffer_pool.cpp +25 -9
- package/src/duckdb/src/storage/buffer/buffer_pool_reservation.cpp +4 -3
- package/src/duckdb/src/storage/buffer_manager.cpp +14 -3
- package/src/duckdb/src/storage/checkpoint/row_group_writer.cpp +0 -8
- package/src/duckdb/src/storage/checkpoint/table_data_writer.cpp +15 -7
- package/src/duckdb/src/storage/checkpoint/write_overflow_strings_to_disk.cpp +1 -1
- package/src/duckdb/src/storage/checkpoint_manager.cpp +94 -41
- package/src/duckdb/src/storage/compression/alp/alp.cpp +57 -0
- package/src/duckdb/src/storage/compression/alp/alp_constants.cpp +13 -0
- package/src/duckdb/src/storage/compression/alprd.cpp +57 -0
- package/src/duckdb/src/storage/compression/bitpacking.cpp +86 -55
- package/src/duckdb/src/storage/compression/bitpacking_hugeint.cpp +41 -41
- package/src/duckdb/src/storage/compression/dictionary_compression.cpp +1 -3
- package/src/duckdb/src/storage/compression/fixed_size_uncompressed.cpp +2 -0
- package/src/duckdb/src/storage/compression/fsst.cpp +4 -4
- package/src/duckdb/src/storage/compression/numeric_constant.cpp +3 -0
- package/src/duckdb/src/storage/compression/rle.cpp +6 -4
- package/src/duckdb/src/storage/compression/string_uncompressed.cpp +7 -7
- package/src/duckdb/src/storage/compression/uncompressed.cpp +1 -0
- package/src/duckdb/src/storage/compression/validity_uncompressed.cpp +6 -6
- package/src/duckdb/src/storage/data_table.cpp +32 -96
- package/src/duckdb/src/storage/index.cpp +23 -11
- package/src/duckdb/src/storage/local_storage.cpp +36 -19
- package/src/duckdb/src/storage/metadata/metadata_manager.cpp +2 -2
- package/src/duckdb/src/storage/partial_block_manager.cpp +1 -1
- package/src/duckdb/src/storage/serialization/serialize_create_info.cpp +9 -4
- package/src/duckdb/src/storage/serialization/serialize_expression.cpp +3 -3
- package/src/duckdb/src/storage/serialization/serialize_extra_drop_info.cpp +42 -0
- package/src/duckdb/src/storage/serialization/serialize_logical_operator.cpp +7 -17
- package/src/duckdb/src/storage/serialization/serialize_macro_function.cpp +2 -2
- package/src/duckdb/src/storage/serialization/serialize_nodes.cpp +84 -77
- package/src/duckdb/src/storage/serialization/serialize_parse_info.cpp +63 -4
- package/src/duckdb/src/storage/serialization/serialize_parsed_expression.cpp +23 -0
- package/src/duckdb/src/storage/serialization/serialize_query_node.cpp +2 -0
- package/src/duckdb/src/storage/serialization/serialize_storage.cpp +35 -0
- package/src/duckdb/src/storage/serialization/serialize_table_filter.cpp +19 -0
- package/src/duckdb/src/storage/serialization/serialize_tableref.cpp +22 -1
- package/src/duckdb/src/storage/serialization/serialize_types.cpp +50 -0
- package/src/duckdb/src/storage/single_file_block_manager.cpp +46 -7
- package/src/duckdb/src/storage/standard_buffer_manager.cpp +57 -28
- package/src/duckdb/src/storage/statistics/array_stats.cpp +131 -0
- package/src/duckdb/src/storage/statistics/base_statistics.cpp +62 -4
- package/src/duckdb/src/storage/statistics/column_statistics.cpp +1 -0
- package/src/duckdb/src/storage/statistics/distinct_statistics.cpp +3 -1
- package/src/duckdb/src/storage/statistics/numeric_stats.cpp +21 -0
- package/src/duckdb/src/storage/statistics/numeric_stats_union.cpp +5 -0
- package/src/duckdb/src/storage/statistics/string_stats.cpp +2 -2
- package/src/duckdb/src/storage/storage_info.cpp +1 -1
- package/src/duckdb/src/storage/storage_manager.cpp +47 -22
- package/src/duckdb/src/storage/table/array_column_data.cpp +241 -0
- package/src/duckdb/src/storage/table/chunk_info.cpp +2 -1
- package/src/duckdb/src/storage/table/column_checkpoint_state.cpp +3 -1
- package/src/duckdb/src/storage/table/column_data.cpp +41 -18
- package/src/duckdb/src/storage/table/column_data_checkpointer.cpp +12 -3
- package/src/duckdb/src/storage/table/column_segment.cpp +40 -6
- package/src/duckdb/src/storage/table/list_column_data.cpp +18 -15
- package/src/duckdb/src/storage/table/row_group.cpp +73 -21
- package/src/duckdb/src/storage/table/row_group_collection.cpp +395 -20
- package/src/duckdb/src/storage/table/row_version_manager.cpp +2 -1
- package/src/duckdb/src/storage/table/scan_state.cpp +4 -0
- package/src/duckdb/src/storage/table/standard_column_data.cpp +11 -5
- package/src/duckdb/src/storage/table/struct_column_data.cpp +30 -10
- package/src/duckdb/src/storage/table/table_statistics.cpp +7 -1
- package/src/duckdb/src/storage/table/update_segment.cpp +18 -2
- package/src/duckdb/src/storage/table_index_list.cpp +73 -7
- package/src/duckdb/src/storage/temporary_memory_manager.cpp +148 -0
- package/src/duckdb/src/storage/wal_replay.cpp +329 -152
- package/src/duckdb/src/storage/write_ahead_log.cpp +157 -137
- package/src/duckdb/src/transaction/cleanup_state.cpp +3 -2
- package/src/duckdb/src/transaction/commit_state.cpp +89 -63
- package/src/duckdb/src/transaction/duck_transaction.cpp +5 -3
- package/src/duckdb/src/transaction/duck_transaction_manager.cpp +26 -54
- package/src/duckdb/src/transaction/meta_transaction.cpp +37 -23
- package/src/duckdb/src/transaction/transaction_context.cpp +23 -4
- package/src/duckdb/src/transaction/undo_buffer.cpp +16 -2
- package/src/duckdb/src/verification/fetch_row_verifier.cpp +13 -0
- package/src/duckdb/src/verification/prepared_statement_verifier.cpp +5 -7
- package/src/duckdb/src/verification/statement_verifier.cpp +6 -5
- package/src/duckdb/third_party/fast_float/fast_float/fast_float.h +100 -29
- package/src/duckdb/third_party/fmt/include/fmt/format-inl.h +1 -1
- package/src/duckdb/third_party/fmt/include/fmt/format.h +4 -2
- package/src/duckdb/third_party/fmt/include/fmt/printf.h +5 -5
- package/src/duckdb/third_party/libpg_query/include/nodes/nodes.hpp +4 -0
- package/src/duckdb/third_party/libpg_query/include/nodes/parsenodes.hpp +82 -21
- package/src/duckdb/third_party/libpg_query/include/parser/gram.hpp +551 -1004
- package/src/duckdb/third_party/libpg_query/include/parser/kwlist.hpp +17 -3
- package/src/duckdb/third_party/libpg_query/src_backend_parser_gram.cpp +24861 -23465
- package/src/duckdb/third_party/libpg_query/src_backend_parser_scan.cpp +420 -389
- package/src/duckdb/third_party/mbedtls/include/mbedtls/aes.h +640 -1
- package/src/duckdb/third_party/mbedtls/include/mbedtls/aes_alt.h +1 -0
- package/src/duckdb/third_party/mbedtls/include/mbedtls/aria.h +358 -0
- package/src/duckdb/third_party/mbedtls/include/mbedtls/aria_alt.h +1 -0
- package/src/duckdb/third_party/mbedtls/include/mbedtls/camellia.h +316 -0
- package/src/duckdb/third_party/mbedtls/include/mbedtls/camellia_alt.h +1 -0
- package/src/duckdb/third_party/mbedtls/include/mbedtls/ccm.h +1 -1
- package/src/duckdb/third_party/mbedtls/include/mbedtls/ccm_alt.h +1 -0
- package/src/duckdb/third_party/mbedtls/include/mbedtls/chacha20.h +1 -0
- package/src/duckdb/third_party/mbedtls/include/mbedtls/chachapoly.h +1 -0
- package/src/duckdb/third_party/mbedtls/include/mbedtls/cipher.h +124 -124
- package/src/duckdb/third_party/mbedtls/include/mbedtls/cmac.h +1 -0
- package/src/duckdb/third_party/mbedtls/include/mbedtls/entropy.h +293 -0
- package/src/duckdb/third_party/mbedtls/include/mbedtls/gcm.h +383 -0
- package/src/duckdb/third_party/mbedtls/include/mbedtls/gcm_alt.h +1 -0
- package/src/duckdb/third_party/mbedtls/include/mbedtls/mbedtls_config.h +9 -0
- package/src/duckdb/third_party/mbedtls/include/mbedtls/nist_kw.h +1 -0
- package/src/duckdb/third_party/mbedtls/include/mbedtls/timing.h +1 -0
- package/src/duckdb/third_party/mbedtls/include/mbedtls_wrapper.hpp +35 -6
- package/src/duckdb/third_party/mbedtls/library/aes.cpp +2171 -0
- package/src/duckdb/third_party/mbedtls/library/aesni.h +1 -0
- package/src/duckdb/third_party/mbedtls/library/aria.cpp +1058 -0
- package/src/duckdb/third_party/mbedtls/library/camellia.cpp +1087 -0
- package/src/duckdb/third_party/mbedtls/library/cipher.cpp +1633 -0
- package/src/duckdb/third_party/mbedtls/library/cipher_wrap.cpp +2270 -0
- package/src/duckdb/third_party/mbedtls/library/cipher_wrap.h +146 -0
- package/src/duckdb/third_party/mbedtls/library/entropy.cpp +701 -0
- package/src/duckdb/third_party/mbedtls/library/entropy_poll.cpp +237 -0
- package/src/duckdb/third_party/mbedtls/library/entropy_poll.h +76 -0
- package/src/duckdb/third_party/mbedtls/library/gcm.cpp +1161 -0
- package/src/duckdb/third_party/mbedtls/library/padlock.h +1 -0
- package/src/duckdb/third_party/mbedtls/mbedtls_wrapper.cpp +132 -24
- package/src/duckdb/third_party/pcg/pcg_uint128.hpp +1 -1
- package/src/duckdb/third_party/skiplist/HeadNode.h +934 -0
- package/src/duckdb/third_party/skiplist/IntegrityEnums.h +62 -0
- package/src/duckdb/third_party/skiplist/Node.h +641 -0
- package/src/duckdb/third_party/skiplist/NodeRefs.h +251 -0
- package/src/duckdb/third_party/skiplist/RollingMedian.h +202 -0
- package/src/duckdb/third_party/skiplist/SkipList.cpp +40 -0
- package/src/duckdb/third_party/skiplist/SkipList.h +549 -0
- package/src/duckdb/third_party/thrift/thrift/thrift-config.h +1 -1
- package/src/duckdb/ub_extension_json_json_functions.cpp +2 -0
- package/src/duckdb/ub_src_catalog.cpp +3 -1
- package/src/duckdb/ub_src_catalog_catalog_entry_dependency.cpp +6 -0
- package/src/duckdb/ub_src_common.cpp +1 -1
- package/src/duckdb/ub_src_common_exception.cpp +6 -0
- package/src/duckdb/ub_src_common_types.cpp +2 -2
- package/src/duckdb/ub_src_core_functions.cpp +2 -0
- package/src/duckdb/ub_src_core_functions_scalar_array.cpp +4 -0
- package/src/duckdb/ub_src_core_functions_scalar_blob.cpp +2 -0
- package/src/duckdb/ub_src_core_functions_scalar_list.cpp +7 -3
- package/src/duckdb/ub_src_core_functions_scalar_secret.cpp +2 -0
- package/src/duckdb/ub_src_core_functions_scalar_string.cpp +4 -0
- package/src/duckdb/ub_src_execution_index.cpp +4 -0
- package/src/duckdb/ub_src_execution_operator_csv_scanner_buffer_manager.cpp +6 -0
- package/src/duckdb/ub_src_execution_operator_csv_scanner_scanner.cpp +10 -0
- package/src/duckdb/ub_src_execution_operator_csv_scanner_state_machine.cpp +4 -0
- package/src/duckdb/ub_src_execution_operator_csv_scanner_table_function.cpp +4 -0
- package/src/duckdb/ub_src_execution_operator_csv_scanner_util.cpp +4 -0
- package/src/duckdb/ub_src_execution_operator_helper.cpp +4 -0
- package/src/duckdb/ub_src_execution_operator_join.cpp +4 -2
- package/src/duckdb/ub_src_execution_operator_persistent.cpp +2 -0
- package/src/duckdb/ub_src_execution_physical_plan.cpp +4 -2
- package/src/duckdb/ub_src_function_cast.cpp +2 -0
- package/src/duckdb/ub_src_function_scalar_list.cpp +4 -0
- package/src/duckdb/ub_src_function_table.cpp +4 -4
- package/src/duckdb/ub_src_function_table_system.cpp +6 -0
- package/src/duckdb/ub_src_main.cpp +2 -0
- package/src/duckdb/ub_src_main_buffered_data.cpp +2 -0
- package/src/duckdb/ub_src_main_secret.cpp +6 -0
- package/src/duckdb/ub_src_optimizer_pushdown.cpp +2 -0
- package/src/duckdb/ub_src_parser_expression.cpp +2 -0
- package/src/duckdb/ub_src_parser_parsed_data.cpp +6 -0
- package/src/duckdb/ub_src_parser_statement.cpp +2 -2
- package/src/duckdb/ub_src_parser_tableref.cpp +2 -0
- package/src/duckdb/ub_src_parser_transform_statement.cpp +6 -0
- package/src/duckdb/ub_src_planner_binder_statement.cpp +2 -2
- package/src/duckdb/ub_src_planner_binder_tableref.cpp +2 -0
- package/src/duckdb/ub_src_planner_filter.cpp +2 -0
- package/src/duckdb/ub_src_planner_operator.cpp +2 -0
- package/src/duckdb/ub_src_planner_subquery.cpp +2 -0
- package/src/duckdb/ub_src_storage.cpp +2 -0
- package/src/duckdb/ub_src_storage_compression.cpp +2 -0
- package/src/duckdb/ub_src_storage_compression_alp.cpp +4 -0
- package/src/duckdb/ub_src_storage_serialization.cpp +2 -0
- package/src/duckdb/ub_src_storage_statistics.cpp +2 -0
- package/src/duckdb/ub_src_storage_table.cpp +2 -0
- package/src/duckdb_node.hpp +1 -1
- package/src/statement.cpp +18 -8
- package/src/utils.cpp +1 -15
- package/test/columns.test.ts +2 -1
- package/test/config.test.ts +30 -0
- package/test/test_all_types.test.ts +9 -4
@@ -1,3 +1,9 @@
|
|
1
|
+
////////////////////////////////////////////////////////////////////
|
2
|
+
////////////////////////////////////////////////////////////////////
|
3
|
+
// THIS FILE IS GENERATED BY apache/arrow, DO NOT EDIT MANUALLY //
|
4
|
+
////////////////////////////////////////////////////////////////////
|
5
|
+
////////////////////////////////////////////////////////////////////
|
6
|
+
|
1
7
|
// Licensed to the Apache Software Foundation (ASF) under one
|
2
8
|
// or more contributor license agreements. See the NOTICE file
|
3
9
|
// distributed with this work for additional information
|
@@ -35,7 +41,7 @@
|
|
35
41
|
/// but not concurrent access. Specific implementations may permit
|
36
42
|
/// multiple threads.
|
37
43
|
///
|
38
|
-
/// \version 1.
|
44
|
+
/// \version 1.1.0
|
39
45
|
|
40
46
|
#pragma once
|
41
47
|
|
@@ -51,18 +57,103 @@
|
|
51
57
|
/// @{
|
52
58
|
|
53
59
|
//! @cond Doxygen_Suppress
|
54
|
-
namespace duckdb_adbc {
|
55
|
-
|
56
60
|
#ifdef __cplusplus
|
57
61
|
extern "C" {
|
58
62
|
#endif
|
59
63
|
|
60
|
-
|
61
|
-
#
|
64
|
+
// Extra guard for versions of Arrow without the canonical guard
|
65
|
+
#ifndef ARROW_FLAG_DICTIONARY_ORDERED
|
66
|
+
|
67
|
+
#ifndef ARROW_C_DATA_INTERFACE
|
68
|
+
#define ARROW_C_DATA_INTERFACE
|
69
|
+
|
70
|
+
#define ARROW_FLAG_DICTIONARY_ORDERED 1
|
71
|
+
#define ARROW_FLAG_NULLABLE 2
|
72
|
+
#define ARROW_FLAG_MAP_KEYS_SORTED 4
|
73
|
+
|
74
|
+
struct ArrowSchema {
|
75
|
+
// Array type description
|
76
|
+
const char *format;
|
77
|
+
const char *name;
|
78
|
+
const char *metadata;
|
79
|
+
int64_t flags;
|
80
|
+
int64_t n_children;
|
81
|
+
struct ArrowSchema **children;
|
82
|
+
struct ArrowSchema *dictionary;
|
83
|
+
|
84
|
+
// Release callback
|
85
|
+
void (*release)(struct ArrowSchema *);
|
86
|
+
// Opaque producer-specific data
|
87
|
+
void *private_data;
|
88
|
+
};
|
89
|
+
|
90
|
+
struct ArrowArray {
|
91
|
+
// Array data description
|
92
|
+
int64_t length;
|
93
|
+
int64_t null_count;
|
94
|
+
int64_t offset;
|
95
|
+
int64_t n_buffers;
|
96
|
+
int64_t n_children;
|
97
|
+
const void **buffers;
|
98
|
+
struct ArrowArray **children;
|
99
|
+
struct ArrowArray *dictionary;
|
100
|
+
|
101
|
+
// Release callback
|
102
|
+
void (*release)(struct ArrowArray *);
|
103
|
+
// Opaque producer-specific data
|
104
|
+
void *private_data;
|
105
|
+
};
|
106
|
+
|
107
|
+
#endif // ARROW_C_DATA_INTERFACE
|
108
|
+
|
109
|
+
#ifndef ARROW_C_STREAM_INTERFACE
|
110
|
+
#define ARROW_C_STREAM_INTERFACE
|
111
|
+
|
112
|
+
struct ArrowArrayStream {
|
113
|
+
// Callback to get the stream type
|
114
|
+
// (will be the same for all arrays in the stream).
|
115
|
+
//
|
116
|
+
// Return value: 0 if successful, an `errno`-compatible error code otherwise.
|
117
|
+
//
|
118
|
+
// If successful, the ArrowSchema must be released independently from the stream.
|
119
|
+
int (*get_schema)(struct ArrowArrayStream *, struct ArrowSchema *out);
|
120
|
+
|
121
|
+
// Callback to get the next array
|
122
|
+
// (if no error and the array is released, the stream has ended)
|
123
|
+
//
|
124
|
+
// Return value: 0 if successful, an `errno`-compatible error code otherwise.
|
125
|
+
//
|
126
|
+
// If successful, the ArrowArray must be released independently from the stream.
|
127
|
+
int (*get_next)(struct ArrowArrayStream *, struct ArrowArray *out);
|
128
|
+
|
129
|
+
// Callback to get optional detailed error information.
|
130
|
+
// This must only be called if the last stream operation failed
|
131
|
+
// with a non-0 return code.
|
132
|
+
//
|
133
|
+
// Return value: pointer to a null-terminated character array describing
|
134
|
+
// the last error, or NULL if no description is available.
|
135
|
+
//
|
136
|
+
// The returned pointer is only valid until the next operation on this stream
|
137
|
+
// (including release).
|
138
|
+
const char *(*get_last_error)(struct ArrowArrayStream *);
|
139
|
+
|
140
|
+
// Release callback: release the stream's own resources.
|
141
|
+
// Note that arrays returned by `get_next` must be individually released.
|
142
|
+
void (*release)(struct ArrowArrayStream *);
|
143
|
+
|
144
|
+
// Opaque producer-specific data
|
145
|
+
void *private_data;
|
146
|
+
};
|
147
|
+
|
148
|
+
#endif // ARROW_C_STREAM_INTERFACE
|
149
|
+
#endif // ARROW_FLAG_DICTIONARY_ORDERED
|
150
|
+
|
151
|
+
//! @endcond
|
152
|
+
|
153
|
+
/// @}
|
62
154
|
|
63
155
|
#ifndef ADBC_EXPORTING
|
64
156
|
#define ADBC_EXPORTING
|
65
|
-
#endif
|
66
157
|
|
67
158
|
// Storage class macros for Windows
|
68
159
|
// Allow overriding/aliasing with application-defined macros
|
@@ -163,7 +254,24 @@ typedef uint8_t AdbcStatusCode;
|
|
163
254
|
/// May indicate a database-side error only.
|
164
255
|
#define ADBC_STATUS_UNAUTHORIZED 14
|
165
256
|
|
257
|
+
/// \brief Inform the driver/driver manager that we are using the extended
|
258
|
+
/// AdbcError struct from ADBC 1.1.0.
|
259
|
+
///
|
260
|
+
/// See the AdbcError documentation for usage.
|
261
|
+
///
|
262
|
+
/// \since ADBC API revision 1.1.0
|
263
|
+
#define ADBC_ERROR_VENDOR_CODE_PRIVATE_DATA INT32_MIN
|
264
|
+
|
166
265
|
/// \brief A detailed error message for an operation.
|
266
|
+
///
|
267
|
+
/// The caller must zero-initialize this struct (clarified in ADBC 1.1.0).
|
268
|
+
///
|
269
|
+
/// The structure was extended in ADBC 1.1.0. Drivers and clients using ADBC
|
270
|
+
/// 1.0.0 will not have the private_data or private_driver fields. Drivers
|
271
|
+
/// should read/write these fields if and only if vendor_code is equal to
|
272
|
+
/// ADBC_ERROR_VENDOR_CODE_PRIVATE_DATA. Clients are required to initialize
|
273
|
+
/// this struct to avoid the possibility of uninitialized values confusing the
|
274
|
+
/// driver.
|
167
275
|
struct ADBC_EXPORT AdbcError {
|
168
276
|
/// \brief The error message.
|
169
277
|
char *message;
|
@@ -181,8 +289,105 @@ struct ADBC_EXPORT AdbcError {
|
|
181
289
|
/// Unlike other structures, this is an embedded callback to make it
|
182
290
|
/// easier for the driver manager and driver to cooperate.
|
183
291
|
void (*release)(struct AdbcError *error);
|
292
|
+
|
293
|
+
/// \brief Opaque implementation-defined state.
|
294
|
+
///
|
295
|
+
/// This field may not be used unless vendor_code is
|
296
|
+
/// ADBC_ERROR_VENDOR_CODE_PRIVATE_DATA. If present, this field is NULLPTR
|
297
|
+
/// iff the error is unintialized/freed.
|
298
|
+
///
|
299
|
+
/// \since ADBC API revision 1.1.0
|
300
|
+
void *private_data;
|
301
|
+
|
302
|
+
/// \brief The associated driver (used by the driver manager to help
|
303
|
+
/// track state).
|
304
|
+
///
|
305
|
+
/// This field may not be used unless vendor_code is
|
306
|
+
/// ADBC_ERROR_VENDOR_CODE_PRIVATE_DATA.
|
307
|
+
///
|
308
|
+
/// \since ADBC API revision 1.1.0
|
309
|
+
struct AdbcDriver *private_driver;
|
184
310
|
};
|
185
311
|
|
312
|
+
#ifdef __cplusplus
|
313
|
+
/// \brief A helper to initialize the full AdbcError structure.
|
314
|
+
///
|
315
|
+
/// \since ADBC API revision 1.1.0
|
316
|
+
#define ADBC_ERROR_INIT \
|
317
|
+
(AdbcError {nullptr, ADBC_ERROR_VENDOR_CODE_PRIVATE_DATA, {0, 0, 0, 0, 0}, nullptr, nullptr, nullptr})
|
318
|
+
#else
|
319
|
+
/// \brief A helper to initialize the full AdbcError structure.
|
320
|
+
///
|
321
|
+
/// \since ADBC API revision 1.1.0
|
322
|
+
#define ADBC_ERROR_INIT \
|
323
|
+
((struct AdbcError) {NULL, ADBC_ERROR_VENDOR_CODE_PRIVATE_DATA, {0, 0, 0, 0, 0}, NULL, NULL, NULL})
|
324
|
+
#endif
|
325
|
+
|
326
|
+
/// \brief The size of the AdbcError structure in ADBC 1.0.0.
|
327
|
+
///
|
328
|
+
/// Drivers written for ADBC 1.1.0 and later should never touch more than this
|
329
|
+
/// portion of an AdbcDriver struct when vendor_code is not
|
330
|
+
/// ADBC_ERROR_VENDOR_CODE_PRIVATE_DATA.
|
331
|
+
///
|
332
|
+
/// \since ADBC API revision 1.1.0
|
333
|
+
#define ADBC_ERROR_1_0_0_SIZE (offsetof(struct AdbcError, private_data))
|
334
|
+
/// \brief The size of the AdbcError structure in ADBC 1.1.0.
|
335
|
+
///
|
336
|
+
/// Drivers written for ADBC 1.1.0 and later should never touch more than this
|
337
|
+
/// portion of an AdbcDriver struct when vendor_code is
|
338
|
+
/// ADBC_ERROR_VENDOR_CODE_PRIVATE_DATA.
|
339
|
+
///
|
340
|
+
/// \since ADBC API revision 1.1.0
|
341
|
+
#define ADBC_ERROR_1_1_0_SIZE (sizeof(struct AdbcError))
|
342
|
+
|
343
|
+
/// \brief Extra key-value metadata for an error.
|
344
|
+
///
|
345
|
+
/// The fields here are owned by the driver and should not be freed. The
|
346
|
+
/// fields here are invalidated when the release callback in AdbcError is
|
347
|
+
/// called.
|
348
|
+
///
|
349
|
+
/// \since ADBC API revision 1.1.0
|
350
|
+
struct ADBC_EXPORT AdbcErrorDetail {
|
351
|
+
/// \brief The metadata key.
|
352
|
+
const char *key;
|
353
|
+
/// \brief The binary metadata value.
|
354
|
+
const uint8_t *value;
|
355
|
+
/// \brief The length of the metadata value.
|
356
|
+
size_t value_length;
|
357
|
+
};
|
358
|
+
|
359
|
+
/// \brief Get the number of metadata values available in an error.
|
360
|
+
///
|
361
|
+
/// \since ADBC API revision 1.1.0
|
362
|
+
ADBC_EXPORT
|
363
|
+
int AdbcErrorGetDetailCount(const struct AdbcError *error);
|
364
|
+
|
365
|
+
/// \brief Get a metadata value in an error by index.
|
366
|
+
///
|
367
|
+
/// If index is invalid, returns an AdbcErrorDetail initialized with NULL/0
|
368
|
+
/// fields.
|
369
|
+
///
|
370
|
+
/// \since ADBC API revision 1.1.0
|
371
|
+
ADBC_EXPORT
|
372
|
+
struct AdbcErrorDetail AdbcErrorGetDetail(const struct AdbcError *error, int index);
|
373
|
+
|
374
|
+
/// \brief Get an ADBC error from an ArrowArrayStream created by a driver.
|
375
|
+
///
|
376
|
+
/// This allows retrieving error details and other metadata that would
|
377
|
+
/// normally be suppressed by the Arrow C Stream Interface.
|
378
|
+
///
|
379
|
+
/// The caller MUST NOT release the error; it is managed by the release
|
380
|
+
/// callback in the stream itself.
|
381
|
+
///
|
382
|
+
/// \param[in] stream The stream to query.
|
383
|
+
/// \param[out] status The ADBC status code, or ADBC_STATUS_OK if there is no
|
384
|
+
/// error. Not written to if the stream does not contain an ADBC error or
|
385
|
+
/// if the pointer is NULL.
|
386
|
+
/// \return NULL if not supported.
|
387
|
+
/// \since ADBC API revision 1.1.0
|
388
|
+
ADBC_EXPORT
|
389
|
+
const struct AdbcError *AdbcErrorFromArrayStream(struct ArrowArrayStream *stream, AdbcStatusCode *status);
|
390
|
+
|
186
391
|
/// @}
|
187
392
|
|
188
393
|
/// \defgroup adbc-constants Constants
|
@@ -194,6 +399,14 @@ struct ADBC_EXPORT AdbcError {
|
|
194
399
|
/// point to an AdbcDriver.
|
195
400
|
#define ADBC_VERSION_1_0_0 1000000
|
196
401
|
|
402
|
+
/// \brief ADBC revision 1.1.0.
|
403
|
+
///
|
404
|
+
/// When passed to an AdbcDriverInitFunc(), the driver parameter must
|
405
|
+
/// point to an AdbcDriver.
|
406
|
+
///
|
407
|
+
/// \since ADBC API revision 1.1.0
|
408
|
+
#define ADBC_VERSION_1_1_0 1001000
|
409
|
+
|
197
410
|
/// \brief Canonical option value for enabling an option.
|
198
411
|
///
|
199
412
|
/// For use as the value in SetOption calls.
|
@@ -203,6 +416,34 @@ struct ADBC_EXPORT AdbcError {
|
|
203
416
|
/// For use as the value in SetOption calls.
|
204
417
|
#define ADBC_OPTION_VALUE_DISABLED "false"
|
205
418
|
|
419
|
+
/// \brief Canonical option name for URIs.
|
420
|
+
///
|
421
|
+
/// Should be used as the expected option name to specify a URI for
|
422
|
+
/// any ADBC driver.
|
423
|
+
///
|
424
|
+
/// The type is char*.
|
425
|
+
///
|
426
|
+
/// \since ADBC API revision 1.1.0
|
427
|
+
#define ADBC_OPTION_URI "uri"
|
428
|
+
/// \brief Canonical option name for usernames.
|
429
|
+
///
|
430
|
+
/// Should be used as the expected option name to specify a username
|
431
|
+
/// to a driver for authentication.
|
432
|
+
///
|
433
|
+
/// The type is char*.
|
434
|
+
///
|
435
|
+
/// \since ADBC API revision 1.1.0
|
436
|
+
#define ADBC_OPTION_USERNAME "username"
|
437
|
+
/// \brief Canonical option name for passwords.
|
438
|
+
///
|
439
|
+
/// Should be used as the expected option name to specify a password
|
440
|
+
/// for authentication to a driver.
|
441
|
+
///
|
442
|
+
/// The type is char*.
|
443
|
+
///
|
444
|
+
/// \since ADBC API revision 1.1.0
|
445
|
+
#define ADBC_OPTION_PASSWORD "password"
|
446
|
+
|
206
447
|
/// \brief The database vendor/product name (e.g. the server name).
|
207
448
|
/// (type: utf8).
|
208
449
|
///
|
@@ -230,6 +471,15 @@ struct ADBC_EXPORT AdbcError {
|
|
230
471
|
///
|
231
472
|
/// \see AdbcConnectionGetInfo
|
232
473
|
#define ADBC_INFO_DRIVER_ARROW_VERSION 102
|
474
|
+
/// \brief The driver ADBC API version (type: int64).
|
475
|
+
///
|
476
|
+
/// The value should be one of the ADBC_VERSION constants.
|
477
|
+
///
|
478
|
+
/// \since ADBC API revision 1.1.0
|
479
|
+
/// \see AdbcConnectionGetInfo
|
480
|
+
/// \see ADBC_VERSION_1_0_0
|
481
|
+
/// \see ADBC_VERSION_1_1_0
|
482
|
+
#define ADBC_INFO_DRIVER_ADBC_VERSION 103
|
233
483
|
|
234
484
|
/// \brief Return metadata on catalogs, schemas, tables, and columns.
|
235
485
|
///
|
@@ -252,18 +502,133 @@ struct ADBC_EXPORT AdbcError {
|
|
252
502
|
/// \see AdbcConnectionGetObjects
|
253
503
|
#define ADBC_OBJECT_DEPTH_COLUMNS ADBC_OBJECT_DEPTH_ALL
|
254
504
|
|
505
|
+
/// \defgroup adbc-table-statistics ADBC Statistic Types
|
506
|
+
/// Standard statistic names for AdbcConnectionGetStatistics.
|
507
|
+
/// @{
|
508
|
+
|
509
|
+
/// \brief The dictionary-encoded name of the average byte width statistic.
|
510
|
+
#define ADBC_STATISTIC_AVERAGE_BYTE_WIDTH_KEY 0
|
511
|
+
/// \brief The average byte width statistic. The average size in bytes of a
|
512
|
+
/// row in the column. Value type is float64.
|
513
|
+
///
|
514
|
+
/// For example, this is roughly the average length of a string for a string
|
515
|
+
/// column.
|
516
|
+
#define ADBC_STATISTIC_AVERAGE_BYTE_WIDTH_NAME "adbc.statistic.byte_width"
|
517
|
+
/// \brief The dictionary-encoded name of the distinct value count statistic.
|
518
|
+
#define ADBC_STATISTIC_DISTINCT_COUNT_KEY 1
|
519
|
+
/// \brief The distinct value count (NDV) statistic. The number of distinct
|
520
|
+
/// values in the column. Value type is int64 (when not approximate) or
|
521
|
+
/// float64 (when approximate).
|
522
|
+
#define ADBC_STATISTIC_DISTINCT_COUNT_NAME "adbc.statistic.distinct_count"
|
523
|
+
/// \brief The dictionary-encoded name of the max byte width statistic.
|
524
|
+
#define ADBC_STATISTIC_MAX_BYTE_WIDTH_KEY 2
|
525
|
+
/// \brief The max byte width statistic. The maximum size in bytes of a row
|
526
|
+
/// in the column. Value type is int64 (when not approximate) or float64
|
527
|
+
/// (when approximate).
|
528
|
+
///
|
529
|
+
/// For example, this is the maximum length of a string for a string column.
|
530
|
+
#define ADBC_STATISTIC_MAX_BYTE_WIDTH_NAME "adbc.statistic.byte_width"
|
531
|
+
/// \brief The dictionary-encoded name of the max value statistic.
|
532
|
+
#define ADBC_STATISTIC_MAX_VALUE_KEY 3
|
533
|
+
/// \brief The max value statistic. Value type is column-dependent.
|
534
|
+
#define ADBC_STATISTIC_MAX_VALUE_NAME "adbc.statistic.byte_width"
|
535
|
+
/// \brief The dictionary-encoded name of the min value statistic.
|
536
|
+
#define ADBC_STATISTIC_MIN_VALUE_KEY 4
|
537
|
+
/// \brief The min value statistic. Value type is column-dependent.
|
538
|
+
#define ADBC_STATISTIC_MIN_VALUE_NAME "adbc.statistic.byte_width"
|
539
|
+
/// \brief The dictionary-encoded name of the null count statistic.
|
540
|
+
#define ADBC_STATISTIC_NULL_COUNT_KEY 5
|
541
|
+
/// \brief The null count statistic. The number of values that are null in
|
542
|
+
/// the column. Value type is int64 (when not approximate) or float64
|
543
|
+
/// (when approximate).
|
544
|
+
#define ADBC_STATISTIC_NULL_COUNT_NAME "adbc.statistic.null_count"
|
545
|
+
/// \brief The dictionary-encoded name of the row count statistic.
|
546
|
+
#define ADBC_STATISTIC_ROW_COUNT_KEY 6
|
547
|
+
/// \brief The row count statistic. The number of rows in the column or
|
548
|
+
/// table. Value type is int64 (when not approximate) or float64 (when
|
549
|
+
/// approximate).
|
550
|
+
#define ADBC_STATISTIC_ROW_COUNT_NAME "adbc.statistic.row_count"
|
551
|
+
/// @}
|
552
|
+
|
255
553
|
/// \brief The name of the canonical option for whether autocommit is
|
256
554
|
/// enabled.
|
257
555
|
///
|
556
|
+
/// The type is char*.
|
557
|
+
///
|
258
558
|
/// \see AdbcConnectionSetOption
|
259
559
|
#define ADBC_CONNECTION_OPTION_AUTOCOMMIT "adbc.connection.autocommit"
|
260
560
|
|
261
561
|
/// \brief The name of the canonical option for whether the current
|
262
562
|
/// connection should be restricted to being read-only.
|
263
563
|
///
|
564
|
+
/// The type is char*.
|
565
|
+
///
|
264
566
|
/// \see AdbcConnectionSetOption
|
265
567
|
#define ADBC_CONNECTION_OPTION_READ_ONLY "adbc.connection.readonly"
|
266
568
|
|
569
|
+
/// \brief The name of the canonical option for the current catalog.
|
570
|
+
///
|
571
|
+
/// The type is char*.
|
572
|
+
///
|
573
|
+
/// \see AdbcConnectionGetOption
|
574
|
+
/// \see AdbcConnectionSetOption
|
575
|
+
/// \since ADBC API revision 1.1.0
|
576
|
+
#define ADBC_CONNECTION_OPTION_CURRENT_CATALOG "adbc.connection.catalog"
|
577
|
+
|
578
|
+
/// \brief The name of the canonical option for the current schema.
|
579
|
+
///
|
580
|
+
/// The type is char*.
|
581
|
+
///
|
582
|
+
/// \see AdbcConnectionGetOption
|
583
|
+
/// \see AdbcConnectionSetOption
|
584
|
+
/// \since ADBC API revision 1.1.0
|
585
|
+
#define ADBC_CONNECTION_OPTION_CURRENT_DB_SCHEMA "adbc.connection.db_schema"
|
586
|
+
|
587
|
+
/// \brief The name of the canonical option for making query execution
|
588
|
+
/// nonblocking.
|
589
|
+
///
|
590
|
+
/// When enabled, AdbcStatementExecutePartitions will return
|
591
|
+
/// partitions as soon as they are available, instead of returning
|
592
|
+
/// them all at the end. When there are no more to return, it will
|
593
|
+
/// return an empty set of partitions. AdbcStatementExecuteQuery and
|
594
|
+
/// AdbcStatementExecuteSchema are not affected.
|
595
|
+
///
|
596
|
+
/// The default is ADBC_OPTION_VALUE_DISABLED.
|
597
|
+
///
|
598
|
+
/// The type is char*.
|
599
|
+
///
|
600
|
+
/// \see AdbcStatementSetOption
|
601
|
+
/// \since ADBC API revision 1.1.0
|
602
|
+
#define ADBC_STATEMENT_OPTION_INCREMENTAL "adbc.statement.exec.incremental"
|
603
|
+
|
604
|
+
/// \brief The name of the option for getting the progress of a query.
|
605
|
+
///
|
606
|
+
/// The value is not necessarily in any particular range or have any
|
607
|
+
/// particular units. (For example, it might be a percentage, bytes of data,
|
608
|
+
/// rows of data, number of workers, etc.) The max value can be retrieved via
|
609
|
+
/// ADBC_STATEMENT_OPTION_MAX_PROGRESS. This represents the progress of
|
610
|
+
/// execution, not of consumption (i.e., it is independent of how much of the
|
611
|
+
/// result set has been read by the client via ArrowArrayStream.get_next().)
|
612
|
+
///
|
613
|
+
/// The type is double.
|
614
|
+
///
|
615
|
+
/// \see AdbcStatementGetOptionDouble
|
616
|
+
/// \since ADBC API revision 1.1.0
|
617
|
+
#define ADBC_STATEMENT_OPTION_PROGRESS "adbc.statement.exec.progress"
|
618
|
+
|
619
|
+
/// \brief The name of the option for getting the maximum progress of a query.
|
620
|
+
///
|
621
|
+
/// This is the value of ADBC_STATEMENT_OPTION_PROGRESS for a completed query.
|
622
|
+
/// If not supported, or if the value is nonpositive, then the maximum is not
|
623
|
+
/// known. (For instance, the query may be fully streaming and the driver
|
624
|
+
/// does not know when the result set will end.)
|
625
|
+
///
|
626
|
+
/// The type is double.
|
627
|
+
///
|
628
|
+
/// \see AdbcStatementGetOptionDouble
|
629
|
+
/// \since ADBC API revision 1.1.0
|
630
|
+
#define ADBC_STATEMENT_OPTION_MAX_PROGRESS "adbc.statement.exec.max_progress"
|
631
|
+
|
267
632
|
/// \brief The name of the canonical option for setting the isolation
|
268
633
|
/// level of a transaction.
|
269
634
|
///
|
@@ -272,6 +637,8 @@ struct ADBC_EXPORT AdbcError {
|
|
272
637
|
/// isolation level is not supported by a driver, it should return an
|
273
638
|
/// appropriate error.
|
274
639
|
///
|
640
|
+
/// The type is char*.
|
641
|
+
///
|
275
642
|
/// \see AdbcConnectionSetOption
|
276
643
|
#define ADBC_CONNECTION_OPTION_ISOLATION_LEVEL "adbc.connection.transaction.isolation_level"
|
277
644
|
|
@@ -356,8 +723,12 @@ struct ADBC_EXPORT AdbcError {
|
|
356
723
|
/// exist. If the table exists but has a different schema,
|
357
724
|
/// ADBC_STATUS_ALREADY_EXISTS should be raised. Else, data should be
|
358
725
|
/// appended to the target table.
|
726
|
+
///
|
727
|
+
/// The type is char*.
|
359
728
|
#define ADBC_INGEST_OPTION_TARGET_TABLE "adbc.ingest.target_table"
|
360
729
|
/// \brief Whether to create (the default) or append.
|
730
|
+
///
|
731
|
+
/// The type is char*.
|
361
732
|
#define ADBC_INGEST_OPTION_MODE "adbc.ingest.mode"
|
362
733
|
/// \brief Create the table and insert data; error if the table exists.
|
363
734
|
#define ADBC_INGEST_OPTION_MODE_CREATE "adbc.ingest.mode.create"
|
@@ -365,6 +736,15 @@ struct ADBC_EXPORT AdbcError {
|
|
365
736
|
/// table does not exist (ADBC_STATUS_NOT_FOUND) or does not match
|
366
737
|
/// the schema of the data to append (ADBC_STATUS_ALREADY_EXISTS).
|
367
738
|
#define ADBC_INGEST_OPTION_MODE_APPEND "adbc.ingest.mode.append"
|
739
|
+
/// \brief Create the table and insert data; drop the original table
|
740
|
+
/// if it already exists.
|
741
|
+
/// \since ADBC API revision 1.1.0
|
742
|
+
#define ADBC_INGEST_OPTION_MODE_REPLACE "adbc.ingest.mode.replace"
|
743
|
+
/// \brief Insert data; create the table if it does not exist, or
|
744
|
+
/// error if the table exists, but the schema does not match the
|
745
|
+
/// schema of the data to append (ADBC_STATUS_ALREADY_EXISTS).
|
746
|
+
/// \since ADBC API revision 1.1.0
|
747
|
+
#define ADBC_INGEST_OPTION_MODE_CREATE_APPEND "adbc.ingest.mode.create_append"
|
368
748
|
|
369
749
|
/// @}
|
370
750
|
|
@@ -530,7 +910,7 @@ struct ADBC_EXPORT AdbcDriver {
|
|
530
910
|
AdbcStatusCode (*DatabaseRelease)(struct AdbcDatabase *, struct AdbcError *);
|
531
911
|
|
532
912
|
AdbcStatusCode (*ConnectionCommit)(struct AdbcConnection *, struct AdbcError *);
|
533
|
-
AdbcStatusCode (*ConnectionGetInfo)(struct AdbcConnection *, uint32_t *, size_t, struct ArrowArrayStream *,
|
913
|
+
AdbcStatusCode (*ConnectionGetInfo)(struct AdbcConnection *, const uint32_t *, size_t, struct ArrowArrayStream *,
|
534
914
|
struct AdbcError *);
|
535
915
|
AdbcStatusCode (*ConnectionGetObjects)(struct AdbcConnection *, int, const char *, const char *, const char *,
|
536
916
|
const char **, const char *, struct ArrowArrayStream *, struct AdbcError *);
|
@@ -559,8 +939,89 @@ struct ADBC_EXPORT AdbcDriver {
|
|
559
939
|
AdbcStatusCode (*StatementSetOption)(struct AdbcStatement *, const char *, const char *, struct AdbcError *);
|
560
940
|
AdbcStatusCode (*StatementSetSqlQuery)(struct AdbcStatement *, const char *, struct AdbcError *);
|
561
941
|
AdbcStatusCode (*StatementSetSubstraitPlan)(struct AdbcStatement *, const uint8_t *, size_t, struct AdbcError *);
|
942
|
+
|
943
|
+
/// \defgroup adbc-1.1.0 ADBC API Revision 1.1.0
|
944
|
+
///
|
945
|
+
/// Functions added in ADBC 1.1.0. For backwards compatibility,
|
946
|
+
/// these members must not be accessed unless the version passed to
|
947
|
+
/// the AdbcDriverInitFunc is greater than or equal to
|
948
|
+
/// ADBC_VERSION_1_1_0.
|
949
|
+
///
|
950
|
+
/// For a 1.0.0 driver being loaded by a 1.1.0 driver manager: the
|
951
|
+
/// 1.1.0 manager will allocate the new, expanded AdbcDriver struct
|
952
|
+
/// and attempt to have the driver initialize it with
|
953
|
+
/// ADBC_VERSION_1_1_0. This must return an error, after which the
|
954
|
+
/// driver will try again with ADBC_VERSION_1_0_0. The driver must
|
955
|
+
/// not access the new fields, which will carry undefined values.
|
956
|
+
///
|
957
|
+
/// For a 1.1.0 driver being loaded by a 1.0.0 driver manager: the
|
958
|
+
/// 1.0.0 manager will allocate the old AdbcDriver struct and
|
959
|
+
/// attempt to have the driver initialize it with
|
960
|
+
/// ADBC_VERSION_1_0_0. The driver must not access the new fields,
|
961
|
+
/// and should initialize the old fields.
|
962
|
+
///
|
963
|
+
/// @{
|
964
|
+
|
965
|
+
int (*ErrorGetDetailCount)(const struct AdbcError *error);
|
966
|
+
struct AdbcErrorDetail (*ErrorGetDetail)(const struct AdbcError *error, int index);
|
967
|
+
const struct AdbcError *(*ErrorFromArrayStream)(struct ArrowArrayStream *stream, AdbcStatusCode *status);
|
968
|
+
|
969
|
+
AdbcStatusCode (*DatabaseGetOption)(struct AdbcDatabase *, const char *, char *, size_t *, struct AdbcError *);
|
970
|
+
AdbcStatusCode (*DatabaseGetOptionBytes)(struct AdbcDatabase *, const char *, uint8_t *, size_t *,
|
971
|
+
struct AdbcError *);
|
972
|
+
AdbcStatusCode (*DatabaseGetOptionDouble)(struct AdbcDatabase *, const char *, double *, struct AdbcError *);
|
973
|
+
AdbcStatusCode (*DatabaseGetOptionInt)(struct AdbcDatabase *, const char *, int64_t *, struct AdbcError *);
|
974
|
+
AdbcStatusCode (*DatabaseSetOptionBytes)(struct AdbcDatabase *, const char *, const uint8_t *, size_t,
|
975
|
+
struct AdbcError *);
|
976
|
+
AdbcStatusCode (*DatabaseSetOptionDouble)(struct AdbcDatabase *, const char *, double, struct AdbcError *);
|
977
|
+
AdbcStatusCode (*DatabaseSetOptionInt)(struct AdbcDatabase *, const char *, int64_t, struct AdbcError *);
|
978
|
+
|
979
|
+
AdbcStatusCode (*ConnectionCancel)(struct AdbcConnection *, struct AdbcError *);
|
980
|
+
AdbcStatusCode (*ConnectionGetOption)(struct AdbcConnection *, const char *, char *, size_t *, struct AdbcError *);
|
981
|
+
AdbcStatusCode (*ConnectionGetOptionBytes)(struct AdbcConnection *, const char *, uint8_t *, size_t *,
|
982
|
+
struct AdbcError *);
|
983
|
+
AdbcStatusCode (*ConnectionGetOptionDouble)(struct AdbcConnection *, const char *, double *, struct AdbcError *);
|
984
|
+
AdbcStatusCode (*ConnectionGetOptionInt)(struct AdbcConnection *, const char *, int64_t *, struct AdbcError *);
|
985
|
+
AdbcStatusCode (*ConnectionGetStatistics)(struct AdbcConnection *, const char *, const char *, const char *, char,
|
986
|
+
struct ArrowArrayStream *, struct AdbcError *);
|
987
|
+
AdbcStatusCode (*ConnectionGetStatisticNames)(struct AdbcConnection *, struct ArrowArrayStream *,
|
988
|
+
struct AdbcError *);
|
989
|
+
AdbcStatusCode (*ConnectionSetOptionBytes)(struct AdbcConnection *, const char *, const uint8_t *, size_t,
|
990
|
+
struct AdbcError *);
|
991
|
+
AdbcStatusCode (*ConnectionSetOptionDouble)(struct AdbcConnection *, const char *, double, struct AdbcError *);
|
992
|
+
AdbcStatusCode (*ConnectionSetOptionInt)(struct AdbcConnection *, const char *, int64_t, struct AdbcError *);
|
993
|
+
|
994
|
+
AdbcStatusCode (*StatementCancel)(struct AdbcStatement *, struct AdbcError *);
|
995
|
+
AdbcStatusCode (*StatementExecuteSchema)(struct AdbcStatement *, struct ArrowSchema *, struct AdbcError *);
|
996
|
+
AdbcStatusCode (*StatementGetOption)(struct AdbcStatement *, const char *, char *, size_t *, struct AdbcError *);
|
997
|
+
AdbcStatusCode (*StatementGetOptionBytes)(struct AdbcStatement *, const char *, uint8_t *, size_t *,
|
998
|
+
struct AdbcError *);
|
999
|
+
AdbcStatusCode (*StatementGetOptionDouble)(struct AdbcStatement *, const char *, double *, struct AdbcError *);
|
1000
|
+
AdbcStatusCode (*StatementGetOptionInt)(struct AdbcStatement *, const char *, int64_t *, struct AdbcError *);
|
1001
|
+
AdbcStatusCode (*StatementSetOptionBytes)(struct AdbcStatement *, const char *, const uint8_t *, size_t,
|
1002
|
+
struct AdbcError *);
|
1003
|
+
AdbcStatusCode (*StatementSetOptionDouble)(struct AdbcStatement *, const char *, double, struct AdbcError *);
|
1004
|
+
AdbcStatusCode (*StatementSetOptionInt)(struct AdbcStatement *, const char *, int64_t, struct AdbcError *);
|
1005
|
+
|
1006
|
+
/// @}
|
562
1007
|
};
|
563
1008
|
|
1009
|
+
/// \brief The size of the AdbcDriver structure in ADBC 1.0.0.
|
1010
|
+
/// Drivers written for ADBC 1.1.0 and later should never touch more
|
1011
|
+
/// than this portion of an AdbcDriver struct when given
|
1012
|
+
/// ADBC_VERSION_1_0_0.
|
1013
|
+
///
|
1014
|
+
/// \since ADBC API revision 1.1.0
|
1015
|
+
#define ADBC_DRIVER_1_0_0_SIZE (offsetof(struct AdbcDriver, ErrorGetDetailCount))
|
1016
|
+
|
1017
|
+
/// \brief The size of the AdbcDriver structure in ADBC 1.1.0.
|
1018
|
+
/// Drivers written for ADBC 1.1.0 and later should never touch more
|
1019
|
+
/// than this portion of an AdbcDriver struct when given
|
1020
|
+
/// ADBC_VERSION_1_1_0.
|
1021
|
+
///
|
1022
|
+
/// \since ADBC API revision 1.1.0
|
1023
|
+
#define ADBC_DRIVER_1_1_0_SIZE (sizeof(struct AdbcDriver))
|
1024
|
+
|
564
1025
|
/// @}
|
565
1026
|
|
566
1027
|
/// \addtogroup adbc-database
|
@@ -576,16 +1037,186 @@ struct ADBC_EXPORT AdbcDriver {
|
|
576
1037
|
ADBC_EXPORT
|
577
1038
|
AdbcStatusCode AdbcDatabaseNew(struct AdbcDatabase *database, struct AdbcError *error);
|
578
1039
|
|
1040
|
+
/// \brief Get a string option of the database.
|
1041
|
+
///
|
1042
|
+
/// This must always be thread-safe (other operations are not), though
|
1043
|
+
/// given the semantics here, it is not recommended to call GetOption
|
1044
|
+
/// concurrently with itself.
|
1045
|
+
///
|
1046
|
+
/// length must be provided and must be the size of the buffer pointed
|
1047
|
+
/// to by value. If there is sufficient space, the driver will copy
|
1048
|
+
/// the option value (including the null terminator) to buffer and set
|
1049
|
+
/// length to the size of the actual value. If the buffer is too
|
1050
|
+
/// small, no data will be written and length will be set to the
|
1051
|
+
/// required length.
|
1052
|
+
///
|
1053
|
+
/// In other words:
|
1054
|
+
///
|
1055
|
+
/// - If output length <= input length, value will contain a value
|
1056
|
+
/// with length bytes.
|
1057
|
+
/// - If output length > input length, nothing has been written to
|
1058
|
+
/// value.
|
1059
|
+
///
|
1060
|
+
/// For standard options, drivers must always support getting the
|
1061
|
+
/// option value (if they support getting option values at all) via
|
1062
|
+
/// the type specified in the option. (For example, an option set via
|
1063
|
+
/// SetOptionDouble must be retrievable via GetOptionDouble.) Drivers
|
1064
|
+
/// may also support getting a converted option value via other
|
1065
|
+
/// getters if needed. (For example, getting the string
|
1066
|
+
/// representation of a double option.)
|
1067
|
+
///
|
1068
|
+
/// \since ADBC API revision 1.1.0
|
1069
|
+
/// \param[in] database The database.
|
1070
|
+
/// \param[in] key The option to get.
|
1071
|
+
/// \param[out] value The option value.
|
1072
|
+
/// \param[in,out] length The length of value.
|
1073
|
+
/// \param[out] error An optional location to return an error
|
1074
|
+
/// message if necessary.
|
1075
|
+
/// \return ADBC_STATUS_NOT_FOUND if the option is not recognized.
|
1076
|
+
ADBC_EXPORT
|
1077
|
+
AdbcStatusCode AdbcDatabaseGetOption(struct AdbcDatabase *database, const char *key, char *value, size_t *length,
|
1078
|
+
struct AdbcError *error);
|
1079
|
+
|
1080
|
+
/// \brief Get a bytestring option of the database.
|
1081
|
+
///
|
1082
|
+
/// This must always be thread-safe (other operations are not), though
|
1083
|
+
/// given the semantics here, it is not recommended to call
|
1084
|
+
/// GetOptionBytes concurrently with itself.
|
1085
|
+
///
|
1086
|
+
/// length must be provided and must be the size of the buffer pointed
|
1087
|
+
/// to by value. If there is sufficient space, the driver will copy
|
1088
|
+
/// the option value to buffer and set length to the size of the
|
1089
|
+
/// actual value. If the buffer is too small, no data will be written
|
1090
|
+
/// and length will be set to the required length.
|
1091
|
+
///
|
1092
|
+
/// In other words:
|
1093
|
+
///
|
1094
|
+
/// - If output length <= input length, value will contain a value
|
1095
|
+
/// with length bytes.
|
1096
|
+
/// - If output length > input length, nothing has been written to
|
1097
|
+
/// value.
|
1098
|
+
///
|
1099
|
+
/// For standard options, drivers must always support getting the
|
1100
|
+
/// option value (if they support getting option values at all) via
|
1101
|
+
/// the type specified in the option. (For example, an option set via
|
1102
|
+
/// SetOptionDouble must be retrievable via GetOptionDouble.) Drivers
|
1103
|
+
/// may also support getting a converted option value via other
|
1104
|
+
/// getters if needed. (For example, getting the string
|
1105
|
+
/// representation of a double option.)
|
1106
|
+
///
|
1107
|
+
/// \since ADBC API revision 1.1.0
|
1108
|
+
/// \param[in] database The database.
|
1109
|
+
/// \param[in] key The option to get.
|
1110
|
+
/// \param[out] value The option value.
|
1111
|
+
/// \param[in,out] length The option value length.
|
1112
|
+
/// \param[out] error An optional location to return an error
|
1113
|
+
/// message if necessary.
|
1114
|
+
/// \return ADBC_STATUS_NOT_FOUND if the option is not recognized.
|
1115
|
+
ADBC_EXPORT
|
1116
|
+
AdbcStatusCode AdbcDatabaseGetOptionBytes(struct AdbcDatabase *database, const char *key, uint8_t *value,
|
1117
|
+
size_t *length, struct AdbcError *error);
|
1118
|
+
|
1119
|
+
/// \brief Get a double option of the database.
|
1120
|
+
///
|
1121
|
+
/// This must always be thread-safe (other operations are not).
|
1122
|
+
///
|
1123
|
+
/// For standard options, drivers must always support getting the
|
1124
|
+
/// option value (if they support getting option values at all) via
|
1125
|
+
/// the type specified in the option. (For example, an option set via
|
1126
|
+
/// SetOptionDouble must be retrievable via GetOptionDouble.) Drivers
|
1127
|
+
/// may also support getting a converted option value via other
|
1128
|
+
/// getters if needed. (For example, getting the double
|
1129
|
+
/// representation of an integer option.)
|
1130
|
+
///
|
1131
|
+
/// \since ADBC API revision 1.1.0
|
1132
|
+
/// \param[in] database The database.
|
1133
|
+
/// \param[in] key The option to get.
|
1134
|
+
/// \param[out] value The option value.
|
1135
|
+
/// \param[out] error An optional location to return an error
|
1136
|
+
/// message if necessary.
|
1137
|
+
/// \return ADBC_STATUS_NOT_FOUND if the option is not recognized.
|
1138
|
+
ADBC_EXPORT
|
1139
|
+
AdbcStatusCode AdbcDatabaseGetOptionDouble(struct AdbcDatabase *database, const char *key, double *value,
|
1140
|
+
struct AdbcError *error);
|
1141
|
+
|
1142
|
+
/// \brief Get an integer option of the database.
|
1143
|
+
///
|
1144
|
+
/// This must always be thread-safe (other operations are not).
|
1145
|
+
///
|
1146
|
+
/// For standard options, drivers must always support getting the
|
1147
|
+
/// option value (if they support getting option values at all) via
|
1148
|
+
/// the type specified in the option. (For example, an option set via
|
1149
|
+
/// SetOptionDouble must be retrievable via GetOptionDouble.) Drivers
|
1150
|
+
/// may also support getting a converted option value via other
|
1151
|
+
/// getters if needed. (For example, getting the integer
|
1152
|
+
/// representation of a double option.)
|
1153
|
+
///
|
1154
|
+
/// \since ADBC API revision 1.1.0
|
1155
|
+
/// \param[in] database The database.
|
1156
|
+
/// \param[in] key The option to get.
|
1157
|
+
/// \param[out] value The option value.
|
1158
|
+
/// \param[out] error An optional location to return an error
|
1159
|
+
/// message if necessary.
|
1160
|
+
/// \return ADBC_STATUS_NOT_FOUND if the option is not recognized.
|
1161
|
+
ADBC_EXPORT
|
1162
|
+
AdbcStatusCode AdbcDatabaseGetOptionInt(struct AdbcDatabase *database, const char *key, int64_t *value,
|
1163
|
+
struct AdbcError *error);
|
1164
|
+
|
579
1165
|
/// \brief Set a char* option.
|
580
1166
|
///
|
581
1167
|
/// Options may be set before AdbcDatabaseInit. Some drivers may
|
582
1168
|
/// support setting options after initialization as well.
|
583
1169
|
///
|
1170
|
+
/// \param[in] database The database.
|
1171
|
+
/// \param[in] key The option to set.
|
1172
|
+
/// \param[in] value The option value.
|
1173
|
+
/// \param[out] error An optional location to return an error
|
1174
|
+
/// message if necessary.
|
584
1175
|
/// \return ADBC_STATUS_NOT_IMPLEMENTED if the option is not recognized
|
585
1176
|
ADBC_EXPORT
|
586
1177
|
AdbcStatusCode AdbcDatabaseSetOption(struct AdbcDatabase *database, const char *key, const char *value,
|
587
1178
|
struct AdbcError *error);
|
588
1179
|
|
1180
|
+
/// \brief Set a bytestring option on a database.
|
1181
|
+
///
|
1182
|
+
/// \since ADBC API revision 1.1.0
|
1183
|
+
/// \param[in] database The database.
|
1184
|
+
/// \param[in] key The option to set.
|
1185
|
+
/// \param[in] value The option value.
|
1186
|
+
/// \param[in] length The option value length.
|
1187
|
+
/// \param[out] error An optional location to return an error
|
1188
|
+
/// message if necessary.
|
1189
|
+
/// \return ADBC_STATUS_NOT_IMPLEMENTED if the option is not recognized
|
1190
|
+
ADBC_EXPORT
|
1191
|
+
AdbcStatusCode AdbcDatabaseSetOptionBytes(struct AdbcDatabase *database, const char *key, const uint8_t *value,
|
1192
|
+
size_t length, struct AdbcError *error);
|
1193
|
+
|
1194
|
+
/// \brief Set a double option on a database.
|
1195
|
+
///
|
1196
|
+
/// \since ADBC API revision 1.1.0
|
1197
|
+
/// \param[in] database The database.
|
1198
|
+
/// \param[in] key The option to set.
|
1199
|
+
/// \param[in] value The option value.
|
1200
|
+
/// \param[out] error An optional location to return an error
|
1201
|
+
/// message if necessary.
|
1202
|
+
/// \return ADBC_STATUS_NOT_IMPLEMENTED if the option is not recognized
|
1203
|
+
ADBC_EXPORT
|
1204
|
+
AdbcStatusCode AdbcDatabaseSetOptionDouble(struct AdbcDatabase *database, const char *key, double value,
|
1205
|
+
struct AdbcError *error);
|
1206
|
+
|
1207
|
+
/// \brief Set an integer option on a database.
|
1208
|
+
///
|
1209
|
+
/// \since ADBC API revision 1.1.0
|
1210
|
+
/// \param[in] database The database.
|
1211
|
+
/// \param[in] key The option to set.
|
1212
|
+
/// \param[in] value The option value.
|
1213
|
+
/// \param[out] error An optional location to return an error
|
1214
|
+
/// message if necessary.
|
1215
|
+
/// \return ADBC_STATUS_NOT_IMPLEMENTED if the option is not recognized
|
1216
|
+
ADBC_EXPORT
|
1217
|
+
AdbcStatusCode AdbcDatabaseSetOptionInt(struct AdbcDatabase *database, const char *key, int64_t value,
|
1218
|
+
struct AdbcError *error);
|
1219
|
+
|
589
1220
|
/// \brief Finish setting options and initialize the database.
|
590
1221
|
///
|
591
1222
|
/// Some drivers may support setting options after initialization
|
@@ -620,11 +1251,62 @@ AdbcStatusCode AdbcConnectionNew(struct AdbcConnection *connection, struct AdbcE
|
|
620
1251
|
/// Options may be set before AdbcConnectionInit. Some drivers may
|
621
1252
|
/// support setting options after initialization as well.
|
622
1253
|
///
|
1254
|
+
/// \param[in] connection The database connection.
|
1255
|
+
/// \param[in] key The option to set.
|
1256
|
+
/// \param[in] value The option value.
|
1257
|
+
/// \param[out] error An optional location to return an error
|
1258
|
+
/// message if necessary.
|
623
1259
|
/// \return ADBC_STATUS_NOT_IMPLEMENTED if the option is not recognized
|
624
1260
|
ADBC_EXPORT
|
625
1261
|
AdbcStatusCode AdbcConnectionSetOption(struct AdbcConnection *connection, const char *key, const char *value,
|
626
1262
|
struct AdbcError *error);
|
627
1263
|
|
1264
|
+
/// \brief Set a bytestring option on a connection.
|
1265
|
+
///
|
1266
|
+
/// \since ADBC API revision 1.1.0
|
1267
|
+
/// \param[in] connection The connection.
|
1268
|
+
/// \param[in] key The option to set.
|
1269
|
+
/// \param[in] value The option value.
|
1270
|
+
/// \param[in] length The option value length.
|
1271
|
+
/// \param[out] error An optional location to return an error
|
1272
|
+
/// message if necessary.
|
1273
|
+
/// \return ADBC_STATUS_NOT_IMPLEMENTED if the option is not recognized
|
1274
|
+
ADBC_EXPORT
|
1275
|
+
AdbcStatusCode AdbcConnectionSetOptionBytes(struct AdbcConnection *connection, const char *key, const uint8_t *value,
|
1276
|
+
size_t length, struct AdbcError *error);
|
1277
|
+
|
1278
|
+
/// \brief Set an integer option.
|
1279
|
+
///
|
1280
|
+
/// Options may be set before AdbcConnectionInit. Some drivers may
|
1281
|
+
/// support setting options after initialization as well.
|
1282
|
+
///
|
1283
|
+
/// \since ADBC API revision 1.1.0
|
1284
|
+
/// \param[in] connection The database connection.
|
1285
|
+
/// \param[in] key The option to set.
|
1286
|
+
/// \param[in] value The option value.
|
1287
|
+
/// \param[out] error An optional location to return an error
|
1288
|
+
/// message if necessary.
|
1289
|
+
/// \return ADBC_STATUS_NOT_IMPLEMENTED if the option is not recognized
|
1290
|
+
ADBC_EXPORT
|
1291
|
+
AdbcStatusCode AdbcConnectionSetOptionInt(struct AdbcConnection *connection, const char *key, int64_t value,
|
1292
|
+
struct AdbcError *error);
|
1293
|
+
|
1294
|
+
/// \brief Set a double option.
|
1295
|
+
///
|
1296
|
+
/// Options may be set before AdbcConnectionInit. Some drivers may
|
1297
|
+
/// support setting options after initialization as well.
|
1298
|
+
///
|
1299
|
+
/// \since ADBC API revision 1.1.0
|
1300
|
+
/// \param[in] connection The database connection.
|
1301
|
+
/// \param[in] key The option to set.
|
1302
|
+
/// \param[in] value The option value.
|
1303
|
+
/// \param[out] error An optional location to return an error
|
1304
|
+
/// message if necessary.
|
1305
|
+
/// \return ADBC_STATUS_NOT_IMPLEMENTED if the option is not recognized
|
1306
|
+
ADBC_EXPORT
|
1307
|
+
AdbcStatusCode AdbcConnectionSetOptionDouble(struct AdbcConnection *connection, const char *key, double value,
|
1308
|
+
struct AdbcError *error);
|
1309
|
+
|
628
1310
|
/// \brief Finish setting options and initialize the connection.
|
629
1311
|
///
|
630
1312
|
/// Some drivers may support setting options after initialization
|
@@ -641,6 +1323,29 @@ AdbcStatusCode AdbcConnectionInit(struct AdbcConnection *connection, struct Adbc
|
|
641
1323
|
ADBC_EXPORT
|
642
1324
|
AdbcStatusCode AdbcConnectionRelease(struct AdbcConnection *connection, struct AdbcError *error);
|
643
1325
|
|
1326
|
+
/// \brief Cancel the in-progress operation on a connection.
|
1327
|
+
///
|
1328
|
+
/// This can be called during AdbcConnectionGetObjects (or similar),
|
1329
|
+
/// or while consuming an ArrowArrayStream returned from such.
|
1330
|
+
/// Calling this function should make the other functions return
|
1331
|
+
/// ADBC_STATUS_CANCELLED (from ADBC functions) or ECANCELED (from
|
1332
|
+
/// methods of ArrowArrayStream). (It is not guaranteed to, for
|
1333
|
+
/// instance, the result set may be buffered in memory already.)
|
1334
|
+
///
|
1335
|
+
/// This must always be thread-safe (other operations are not). It is
|
1336
|
+
/// not necessarily signal-safe.
|
1337
|
+
///
|
1338
|
+
/// \since ADBC API revision 1.1.0
|
1339
|
+
///
|
1340
|
+
/// \param[in] connection The connection to cancel.
|
1341
|
+
/// \param[out] error An optional location to return an error
|
1342
|
+
/// message if necessary.
|
1343
|
+
///
|
1344
|
+
/// \return ADBC_STATUS_INVALID_STATE if there is no operation to cancel.
|
1345
|
+
/// \return ADBC_STATUS_UNKNOWN if the operation could not be cancelled.
|
1346
|
+
ADBC_EXPORT
|
1347
|
+
AdbcStatusCode AdbcConnectionCancel(struct AdbcConnection *connection, struct AdbcError *error);
|
1348
|
+
|
644
1349
|
/// \defgroup adbc-connection-metadata Metadata
|
645
1350
|
/// Functions for retrieving metadata about the database.
|
646
1351
|
///
|
@@ -654,6 +1359,8 @@ AdbcStatusCode AdbcConnectionRelease(struct AdbcConnection *connection, struct A
|
|
654
1359
|
/// concurrent active statements and it must execute a SQL query
|
655
1360
|
/// internally in order to implement the metadata function).
|
656
1361
|
///
|
1362
|
+
/// This AdbcConnection must outlive the returned ArrowArrayStream.
|
1363
|
+
///
|
657
1364
|
/// Some functions accept "search pattern" arguments, which are
|
658
1365
|
/// strings that can contain the special character "%" to match zero
|
659
1366
|
/// or more characters, or "_" to match exactly one character. (See
|
@@ -688,6 +1395,10 @@ AdbcStatusCode AdbcConnectionRelease(struct AdbcConnection *connection, struct A
|
|
688
1395
|
/// for ADBC usage. Drivers/vendors will ignore requests for
|
689
1396
|
/// unrecognized codes (the row will be omitted from the result).
|
690
1397
|
///
|
1398
|
+
/// Since ADBC 1.1.0: the range [500, 1_000) is reserved for "XDBC"
|
1399
|
+
/// information, which is the same metadata provided by the same info
|
1400
|
+
/// code range in the Arrow Flight SQL GetSqlInfo RPC.
|
1401
|
+
///
|
691
1402
|
/// \param[in] connection The connection to query.
|
692
1403
|
/// \param[in] info_codes A list of metadata codes to fetch, or NULL
|
693
1404
|
/// to fetch all.
|
@@ -696,8 +1407,8 @@ AdbcStatusCode AdbcConnectionRelease(struct AdbcConnection *connection, struct A
|
|
696
1407
|
/// \param[out] out The result set.
|
697
1408
|
/// \param[out] error Error details, if an error occurs.
|
698
1409
|
ADBC_EXPORT
|
699
|
-
AdbcStatusCode AdbcConnectionGetInfo(struct AdbcConnection *connection, uint32_t *info_codes,
|
700
|
-
struct ArrowArrayStream *out, struct AdbcError *error);
|
1410
|
+
AdbcStatusCode AdbcConnectionGetInfo(struct AdbcConnection *connection, const uint32_t *info_codes,
|
1411
|
+
size_t info_codes_length, struct ArrowArrayStream *out, struct AdbcError *error);
|
701
1412
|
|
702
1413
|
/// \brief Get a hierarchical view of all catalogs, database schemas,
|
703
1414
|
/// tables, and columns.
|
@@ -778,6 +1489,8 @@ AdbcStatusCode AdbcConnectionGetInfo(struct AdbcConnection *connection, uint32_t
|
|
778
1489
|
/// | fk_table | utf8 not null |
|
779
1490
|
/// | fk_column_name | utf8 not null |
|
780
1491
|
///
|
1492
|
+
/// This AdbcConnection must outlive the returned ArrowArrayStream.
|
1493
|
+
///
|
781
1494
|
/// \param[in] connection The database connection.
|
782
1495
|
/// \param[in] depth The level of nesting to display. If 0, display
|
783
1496
|
/// all levels. If 1, display only catalogs (i.e. catalog_schemas
|
@@ -806,6 +1519,205 @@ AdbcStatusCode AdbcConnectionGetObjects(struct AdbcConnection *connection, int d
|
|
806
1519
|
const char *db_schema, const char *table_name, const char **table_type,
|
807
1520
|
const char *column_name, struct ArrowArrayStream *out, struct AdbcError *error);
|
808
1521
|
|
1522
|
+
/// \brief Get a string option of the connection.
|
1523
|
+
///
|
1524
|
+
/// This must always be thread-safe (other operations are not), though
|
1525
|
+
/// given the semantics here, it is not recommended to call GetOption
|
1526
|
+
/// concurrently with itself.
|
1527
|
+
///
|
1528
|
+
/// length must be provided and must be the size of the buffer pointed
|
1529
|
+
/// to by value. If there is sufficient space, the driver will copy
|
1530
|
+
/// the option value (including the null terminator) to buffer and set
|
1531
|
+
/// length to the size of the actual value. If the buffer is too
|
1532
|
+
/// small, no data will be written and length will be set to the
|
1533
|
+
/// required length.
|
1534
|
+
///
|
1535
|
+
/// In other words:
|
1536
|
+
///
|
1537
|
+
/// - If output length <= input length, value will contain a value
|
1538
|
+
/// with length bytes.
|
1539
|
+
/// - If output length > input length, nothing has been written to
|
1540
|
+
/// value.
|
1541
|
+
///
|
1542
|
+
/// \since ADBC API revision 1.1.0
|
1543
|
+
/// \param[in] connection The database connection.
|
1544
|
+
/// \param[in] key The option to get.
|
1545
|
+
/// \param[out] value The option value.
|
1546
|
+
/// \param[in,out] length The length of value.
|
1547
|
+
/// \param[out] error An optional location to return an error
|
1548
|
+
/// message if necessary.
|
1549
|
+
/// \return ADBC_STATUS_NOT_FOUND if the option is not recognized.
|
1550
|
+
ADBC_EXPORT
|
1551
|
+
AdbcStatusCode AdbcConnectionGetOption(struct AdbcConnection *connection, const char *key, char *value, size_t *length,
|
1552
|
+
struct AdbcError *error);
|
1553
|
+
|
1554
|
+
/// \brief Get a bytestring option of the connection.
|
1555
|
+
///
|
1556
|
+
/// This must always be thread-safe (other operations are not), though
|
1557
|
+
/// given the semantics here, it is not recommended to call
|
1558
|
+
/// GetOptionBytes concurrently with itself.
|
1559
|
+
///
|
1560
|
+
/// length must be provided and must be the size of the buffer pointed
|
1561
|
+
/// to by value. If there is sufficient space, the driver will copy
|
1562
|
+
/// the option value to buffer and set length to the size of the
|
1563
|
+
/// actual value. If the buffer is too small, no data will be written
|
1564
|
+
/// and length will be set to the required length.
|
1565
|
+
///
|
1566
|
+
/// In other words:
|
1567
|
+
///
|
1568
|
+
/// - If output length <= input length, value will contain a value
|
1569
|
+
/// with length bytes.
|
1570
|
+
/// - If output length > input length, nothing has been written to
|
1571
|
+
/// value.
|
1572
|
+
///
|
1573
|
+
/// For standard options, drivers must always support getting the
|
1574
|
+
/// option value (if they support getting option values at all) via
|
1575
|
+
/// the type specified in the option. (For example, an option set via
|
1576
|
+
/// SetOptionDouble must be retrievable via GetOptionDouble.) Drivers
|
1577
|
+
/// may also support getting a converted option value via other
|
1578
|
+
/// getters if needed. (For example, getting the string
|
1579
|
+
/// representation of a double option.)
|
1580
|
+
///
|
1581
|
+
/// \since ADBC API revision 1.1.0
|
1582
|
+
/// \param[in] connection The connection.
|
1583
|
+
/// \param[in] key The option to get.
|
1584
|
+
/// \param[out] value The option value.
|
1585
|
+
/// \param[in,out] length The option value length.
|
1586
|
+
/// \param[out] error An optional location to return an error
|
1587
|
+
/// message if necessary.
|
1588
|
+
/// \return ADBC_STATUS_NOT_FOUND if the option is not recognized.
|
1589
|
+
ADBC_EXPORT
|
1590
|
+
AdbcStatusCode AdbcConnectionGetOptionBytes(struct AdbcConnection *connection, const char *key, uint8_t *value,
|
1591
|
+
size_t *length, struct AdbcError *error);
|
1592
|
+
|
1593
|
+
/// \brief Get an integer option of the connection.
|
1594
|
+
///
|
1595
|
+
/// This must always be thread-safe (other operations are not).
|
1596
|
+
///
|
1597
|
+
/// For standard options, drivers must always support getting the
|
1598
|
+
/// option value (if they support getting option values at all) via
|
1599
|
+
/// the type specified in the option. (For example, an option set via
|
1600
|
+
/// SetOptionDouble must be retrievable via GetOptionDouble.) Drivers
|
1601
|
+
/// may also support getting a converted option value via other
|
1602
|
+
/// getters if needed. (For example, getting the string
|
1603
|
+
/// representation of a double option.)
|
1604
|
+
///
|
1605
|
+
/// \since ADBC API revision 1.1.0
|
1606
|
+
/// \param[in] connection The database connection.
|
1607
|
+
/// \param[in] key The option to get.
|
1608
|
+
/// \param[out] value The option value.
|
1609
|
+
/// \param[out] error An optional location to return an error
|
1610
|
+
/// message if necessary.
|
1611
|
+
/// \return ADBC_STATUS_NOT_FOUND if the option is not recognized.
|
1612
|
+
ADBC_EXPORT
|
1613
|
+
AdbcStatusCode AdbcConnectionGetOptionInt(struct AdbcConnection *connection, const char *key, int64_t *value,
|
1614
|
+
struct AdbcError *error);
|
1615
|
+
|
1616
|
+
/// \brief Get a double option of the connection.
|
1617
|
+
///
|
1618
|
+
/// This must always be thread-safe (other operations are not).
|
1619
|
+
///
|
1620
|
+
/// For standard options, drivers must always support getting the
|
1621
|
+
/// option value (if they support getting option values at all) via
|
1622
|
+
/// the type specified in the option. (For example, an option set via
|
1623
|
+
/// SetOptionDouble must be retrievable via GetOptionDouble.) Drivers
|
1624
|
+
/// may also support getting a converted option value via other
|
1625
|
+
/// getters if needed. (For example, getting the string
|
1626
|
+
/// representation of a double option.)
|
1627
|
+
///
|
1628
|
+
/// \since ADBC API revision 1.1.0
|
1629
|
+
/// \param[in] connection The database connection.
|
1630
|
+
/// \param[in] key The option to get.
|
1631
|
+
/// \param[out] value The option value.
|
1632
|
+
/// \param[out] error An optional location to return an error
|
1633
|
+
/// message if necessary.
|
1634
|
+
/// \return ADBC_STATUS_NOT_FOUND if the option is not recognized.
|
1635
|
+
ADBC_EXPORT
|
1636
|
+
AdbcStatusCode AdbcConnectionGetOptionDouble(struct AdbcConnection *connection, const char *key, double *value,
|
1637
|
+
struct AdbcError *error);
|
1638
|
+
|
1639
|
+
/// \brief Get statistics about the data distribution of table(s).
|
1640
|
+
///
|
1641
|
+
/// The result is an Arrow dataset with the following schema:
|
1642
|
+
///
|
1643
|
+
/// | Field Name | Field Type |
|
1644
|
+
/// |--------------------------|----------------------------------|
|
1645
|
+
/// | catalog_name | utf8 |
|
1646
|
+
/// | catalog_db_schemas | list<DB_SCHEMA_SCHEMA> not null |
|
1647
|
+
///
|
1648
|
+
/// DB_SCHEMA_SCHEMA is a Struct with fields:
|
1649
|
+
///
|
1650
|
+
/// | Field Name | Field Type |
|
1651
|
+
/// |--------------------------|----------------------------------|
|
1652
|
+
/// | db_schema_name | utf8 |
|
1653
|
+
/// | db_schema_statistics | list<STATISTICS_SCHEMA> not null |
|
1654
|
+
///
|
1655
|
+
/// STATISTICS_SCHEMA is a Struct with fields:
|
1656
|
+
///
|
1657
|
+
/// | Field Name | Field Type | Comments |
|
1658
|
+
/// |--------------------------|----------------------------------| -------- |
|
1659
|
+
/// | table_name | utf8 not null | |
|
1660
|
+
/// | column_name | utf8 | (1) |
|
1661
|
+
/// | statistic_key | int16 not null | (2) |
|
1662
|
+
/// | statistic_value | VALUE_SCHEMA not null | |
|
1663
|
+
/// | statistic_is_approximate | bool not null | (3) |
|
1664
|
+
///
|
1665
|
+
/// 1. If null, then the statistic applies to the entire table.
|
1666
|
+
/// 2. A dictionary-encoded statistic name (although we do not use the Arrow
|
1667
|
+
/// dictionary type). Values in [0, 1024) are reserved for ADBC. Other
|
1668
|
+
/// values are for implementation-specific statistics. For the definitions
|
1669
|
+
/// of predefined statistic types, see \ref adbc-table-statistics. To get
|
1670
|
+
/// driver-specific statistic names, use AdbcConnectionGetStatisticNames.
|
1671
|
+
/// 3. If true, then the value is approximate or best-effort.
|
1672
|
+
///
|
1673
|
+
/// VALUE_SCHEMA is a dense union with members:
|
1674
|
+
///
|
1675
|
+
/// | Field Name | Field Type |
|
1676
|
+
/// |--------------------------|----------------------------------|
|
1677
|
+
/// | int64 | int64 |
|
1678
|
+
/// | uint64 | uint64 |
|
1679
|
+
/// | float64 | float64 |
|
1680
|
+
/// | binary | binary |
|
1681
|
+
///
|
1682
|
+
/// This AdbcConnection must outlive the returned ArrowArrayStream.
|
1683
|
+
///
|
1684
|
+
/// \since ADBC API revision 1.1.0
|
1685
|
+
/// \param[in] connection The database connection.
|
1686
|
+
/// \param[in] catalog The catalog (or nullptr). May be a search
|
1687
|
+
/// pattern (see section documentation).
|
1688
|
+
/// \param[in] db_schema The database schema (or nullptr). May be a
|
1689
|
+
/// search pattern (see section documentation).
|
1690
|
+
/// \param[in] table_name The table name (or nullptr). May be a
|
1691
|
+
/// search pattern (see section documentation).
|
1692
|
+
/// \param[in] approximate If zero, request exact values of
|
1693
|
+
/// statistics, else allow for best-effort, approximate, or cached
|
1694
|
+
/// values. The database may return approximate values regardless,
|
1695
|
+
/// as indicated in the result. Requesting exact values may be
|
1696
|
+
/// expensive or unsupported.
|
1697
|
+
/// \param[out] out The result set.
|
1698
|
+
/// \param[out] error Error details, if an error occurs.
|
1699
|
+
ADBC_EXPORT
|
1700
|
+
AdbcStatusCode AdbcConnectionGetStatistics(struct AdbcConnection *connection, const char *catalog,
|
1701
|
+
const char *db_schema, const char *table_name, char approximate,
|
1702
|
+
struct ArrowArrayStream *out, struct AdbcError *error);
|
1703
|
+
|
1704
|
+
/// \brief Get the names of statistics specific to this driver.
|
1705
|
+
///
|
1706
|
+
/// The result is an Arrow dataset with the following schema:
|
1707
|
+
///
|
1708
|
+
/// Field Name | Field Type
|
1709
|
+
/// ---------------|----------------
|
1710
|
+
/// statistic_name | utf8 not null
|
1711
|
+
/// statistic_key | int16 not null
|
1712
|
+
///
|
1713
|
+
/// \since ADBC API revision 1.1.0
|
1714
|
+
/// \param[in] connection The database connection.
|
1715
|
+
/// \param[out] out The result set.
|
1716
|
+
/// \param[out] error Error details, if an error occurs.
|
1717
|
+
ADBC_EXPORT
|
1718
|
+
AdbcStatusCode AdbcConnectionGetStatisticNames(struct AdbcConnection *connection, struct ArrowArrayStream *out,
|
1719
|
+
struct AdbcError *error);
|
1720
|
+
|
809
1721
|
/// \brief Get the Arrow schema of a table.
|
810
1722
|
///
|
811
1723
|
/// \param[in] connection The database connection.
|
@@ -827,6 +1739,8 @@ AdbcStatusCode AdbcConnectionGetTableSchema(struct AdbcConnection *connection, c
|
|
827
1739
|
/// ---------------|--------------
|
828
1740
|
/// table_type | utf8 not null
|
829
1741
|
///
|
1742
|
+
/// This AdbcConnection must outlive the returned ArrowArrayStream.
|
1743
|
+
///
|
830
1744
|
/// \param[in] connection The database connection.
|
831
1745
|
/// \param[out] out The result set.
|
832
1746
|
/// \param[out] error Error details, if an error occurs.
|
@@ -854,6 +1768,8 @@ AdbcStatusCode AdbcConnectionGetTableTypes(struct AdbcConnection *connection, st
|
|
854
1768
|
///
|
855
1769
|
/// A partition can be retrieved from AdbcPartitions.
|
856
1770
|
///
|
1771
|
+
/// This AdbcConnection must outlive the returned ArrowArrayStream.
|
1772
|
+
///
|
857
1773
|
/// \param[in] connection The connection to use. This does not have
|
858
1774
|
/// to be the same connection that the partition was created on.
|
859
1775
|
/// \param[in] serialized_partition The partition descriptor.
|
@@ -918,7 +1834,11 @@ AdbcStatusCode AdbcStatementRelease(struct AdbcStatement *statement, struct Adbc
|
|
918
1834
|
|
919
1835
|
/// \brief Execute a statement and get the results.
|
920
1836
|
///
|
921
|
-
/// This invalidates any prior result sets.
|
1837
|
+
/// This invalidates any prior result sets. This AdbcStatement must
|
1838
|
+
/// outlive the returned ArrowArrayStream.
|
1839
|
+
///
|
1840
|
+
/// Since ADBC 1.1.0: releasing the returned ArrowArrayStream without
|
1841
|
+
/// consuming it fully is equivalent to calling AdbcStatementCancel.
|
922
1842
|
///
|
923
1843
|
/// \param[in] statement The statement to execute.
|
924
1844
|
/// \param[out] out The results. Pass NULL if the client does not
|
@@ -931,6 +1851,26 @@ ADBC_EXPORT
|
|
931
1851
|
AdbcStatusCode AdbcStatementExecuteQuery(struct AdbcStatement *statement, struct ArrowArrayStream *out,
|
932
1852
|
int64_t *rows_affected, struct AdbcError *error);
|
933
1853
|
|
1854
|
+
/// \brief Get the schema of the result set of a query without
|
1855
|
+
/// executing it.
|
1856
|
+
///
|
1857
|
+
/// This invalidates any prior result sets.
|
1858
|
+
///
|
1859
|
+
/// Depending on the driver, this may require first executing
|
1860
|
+
/// AdbcStatementPrepare.
|
1861
|
+
///
|
1862
|
+
/// \since ADBC API revision 1.1.0
|
1863
|
+
///
|
1864
|
+
/// \param[in] statement The statement to execute.
|
1865
|
+
/// \param[out] out The result schema.
|
1866
|
+
/// \param[out] error An optional location to return an error
|
1867
|
+
/// message if necessary.
|
1868
|
+
///
|
1869
|
+
/// \return ADBC_STATUS_NOT_IMPLEMENTED if the driver does not support this.
|
1870
|
+
ADBC_EXPORT
|
1871
|
+
AdbcStatusCode AdbcStatementExecuteSchema(struct AdbcStatement *statement, struct ArrowSchema *schema,
|
1872
|
+
struct AdbcError *error);
|
1873
|
+
|
934
1874
|
/// \brief Turn this statement into a prepared statement to be
|
935
1875
|
/// executed multiple times.
|
936
1876
|
///
|
@@ -1008,6 +1948,154 @@ ADBC_EXPORT
|
|
1008
1948
|
AdbcStatusCode AdbcStatementBindStream(struct AdbcStatement *statement, struct ArrowArrayStream *stream,
|
1009
1949
|
struct AdbcError *error);
|
1010
1950
|
|
1951
|
+
/// \brief Cancel execution of an in-progress query.
|
1952
|
+
///
|
1953
|
+
/// This can be called during AdbcStatementExecuteQuery (or similar),
|
1954
|
+
/// or while consuming an ArrowArrayStream returned from such.
|
1955
|
+
/// Calling this function should make the other functions return
|
1956
|
+
/// ADBC_STATUS_CANCELLED (from ADBC functions) or ECANCELED (from
|
1957
|
+
/// methods of ArrowArrayStream). (It is not guaranteed to, for
|
1958
|
+
/// instance, the result set may be buffered in memory already.)
|
1959
|
+
///
|
1960
|
+
/// This must always be thread-safe (other operations are not). It is
|
1961
|
+
/// not necessarily signal-safe.
|
1962
|
+
///
|
1963
|
+
/// \since ADBC API revision 1.1.0
|
1964
|
+
///
|
1965
|
+
/// \param[in] statement The statement to cancel.
|
1966
|
+
/// \param[out] error An optional location to return an error
|
1967
|
+
/// message if necessary.
|
1968
|
+
///
|
1969
|
+
/// \return ADBC_STATUS_INVALID_STATE if there is no query to cancel.
|
1970
|
+
/// \return ADBC_STATUS_UNKNOWN if the query could not be cancelled.
|
1971
|
+
ADBC_EXPORT
|
1972
|
+
AdbcStatusCode AdbcStatementCancel(struct AdbcStatement *statement, struct AdbcError *error);
|
1973
|
+
|
1974
|
+
/// \brief Get a string option of the statement.
|
1975
|
+
///
|
1976
|
+
/// This must always be thread-safe (other operations are not), though
|
1977
|
+
/// given the semantics here, it is not recommended to call GetOption
|
1978
|
+
/// concurrently with itself.
|
1979
|
+
///
|
1980
|
+
/// length must be provided and must be the size of the buffer pointed
|
1981
|
+
/// to by value. If there is sufficient space, the driver will copy
|
1982
|
+
/// the option value (including the null terminator) to buffer and set
|
1983
|
+
/// length to the size of the actual value. If the buffer is too
|
1984
|
+
/// small, no data will be written and length will be set to the
|
1985
|
+
/// required length.
|
1986
|
+
///
|
1987
|
+
/// In other words:
|
1988
|
+
///
|
1989
|
+
/// - If output length <= input length, value will contain a value
|
1990
|
+
/// with length bytes.
|
1991
|
+
/// - If output length > input length, nothing has been written to
|
1992
|
+
/// value.
|
1993
|
+
///
|
1994
|
+
/// For standard options, drivers must always support getting the
|
1995
|
+
/// option value (if they support getting option values at all) via
|
1996
|
+
/// the type specified in the option. (For example, an option set via
|
1997
|
+
/// SetOptionDouble must be retrievable via GetOptionDouble.) Drivers
|
1998
|
+
/// may also support getting a converted option value via other
|
1999
|
+
/// getters if needed. (For example, getting the string
|
2000
|
+
/// representation of a double option.)
|
2001
|
+
///
|
2002
|
+
/// \since ADBC API revision 1.1.0
|
2003
|
+
/// \param[in] statement The statement.
|
2004
|
+
/// \param[in] key The option to get.
|
2005
|
+
/// \param[out] value The option value.
|
2006
|
+
/// \param[in,out] length The length of value.
|
2007
|
+
/// \param[out] error An optional location to return an error
|
2008
|
+
/// message if necessary.
|
2009
|
+
/// \return ADBC_STATUS_NOT_FOUND if the option is not recognized.
|
2010
|
+
ADBC_EXPORT
|
2011
|
+
AdbcStatusCode AdbcStatementGetOption(struct AdbcStatement *statement, const char *key, char *value, size_t *length,
|
2012
|
+
struct AdbcError *error);
|
2013
|
+
|
2014
|
+
/// \brief Get a bytestring option of the statement.
|
2015
|
+
///
|
2016
|
+
/// This must always be thread-safe (other operations are not), though
|
2017
|
+
/// given the semantics here, it is not recommended to call
|
2018
|
+
/// GetOptionBytes concurrently with itself.
|
2019
|
+
///
|
2020
|
+
/// length must be provided and must be the size of the buffer pointed
|
2021
|
+
/// to by value. If there is sufficient space, the driver will copy
|
2022
|
+
/// the option value to buffer and set length to the size of the
|
2023
|
+
/// actual value. If the buffer is too small, no data will be written
|
2024
|
+
/// and length will be set to the required length.
|
2025
|
+
///
|
2026
|
+
/// In other words:
|
2027
|
+
///
|
2028
|
+
/// - If output length <= input length, value will contain a value
|
2029
|
+
/// with length bytes.
|
2030
|
+
/// - If output length > input length, nothing has been written to
|
2031
|
+
/// value.
|
2032
|
+
///
|
2033
|
+
/// For standard options, drivers must always support getting the
|
2034
|
+
/// option value (if they support getting option values at all) via
|
2035
|
+
/// the type specified in the option. (For example, an option set via
|
2036
|
+
/// SetOptionDouble must be retrievable via GetOptionDouble.) Drivers
|
2037
|
+
/// may also support getting a converted option value via other
|
2038
|
+
/// getters if needed. (For example, getting the string
|
2039
|
+
/// representation of a double option.)
|
2040
|
+
///
|
2041
|
+
/// \since ADBC API revision 1.1.0
|
2042
|
+
/// \param[in] statement The statement.
|
2043
|
+
/// \param[in] key The option to get.
|
2044
|
+
/// \param[out] value The option value.
|
2045
|
+
/// \param[in,out] length The option value length.
|
2046
|
+
/// \param[out] error An optional location to return an error
|
2047
|
+
/// message if necessary.
|
2048
|
+
/// \return ADBC_STATUS_NOT_FOUND if the option is not recognized.
|
2049
|
+
ADBC_EXPORT
|
2050
|
+
AdbcStatusCode AdbcStatementGetOptionBytes(struct AdbcStatement *statement, const char *key, uint8_t *value,
|
2051
|
+
size_t *length, struct AdbcError *error);
|
2052
|
+
|
2053
|
+
/// \brief Get an integer option of the statement.
|
2054
|
+
///
|
2055
|
+
/// This must always be thread-safe (other operations are not).
|
2056
|
+
///
|
2057
|
+
/// For standard options, drivers must always support getting the
|
2058
|
+
/// option value (if they support getting option values at all) via
|
2059
|
+
/// the type specified in the option. (For example, an option set via
|
2060
|
+
/// SetOptionDouble must be retrievable via GetOptionDouble.) Drivers
|
2061
|
+
/// may also support getting a converted option value via other
|
2062
|
+
/// getters if needed. (For example, getting the string
|
2063
|
+
/// representation of a double option.)
|
2064
|
+
///
|
2065
|
+
/// \since ADBC API revision 1.1.0
|
2066
|
+
/// \param[in] statement The statement.
|
2067
|
+
/// \param[in] key The option to get.
|
2068
|
+
/// \param[out] value The option value.
|
2069
|
+
/// \param[out] error An optional location to return an error
|
2070
|
+
/// message if necessary.
|
2071
|
+
/// \return ADBC_STATUS_NOT_FOUND if the option is not recognized.
|
2072
|
+
ADBC_EXPORT
|
2073
|
+
AdbcStatusCode AdbcStatementGetOptionInt(struct AdbcStatement *statement, const char *key, int64_t *value,
|
2074
|
+
struct AdbcError *error);
|
2075
|
+
|
2076
|
+
/// \brief Get a double option of the statement.
|
2077
|
+
///
|
2078
|
+
/// This must always be thread-safe (other operations are not).
|
2079
|
+
///
|
2080
|
+
/// For standard options, drivers must always support getting the
|
2081
|
+
/// option value (if they support getting option values at all) via
|
2082
|
+
/// the type specified in the option. (For example, an option set via
|
2083
|
+
/// SetOptionDouble must be retrievable via GetOptionDouble.) Drivers
|
2084
|
+
/// may also support getting a converted option value via other
|
2085
|
+
/// getters if needed. (For example, getting the string
|
2086
|
+
/// representation of a double option.)
|
2087
|
+
///
|
2088
|
+
/// \since ADBC API revision 1.1.0
|
2089
|
+
/// \param[in] statement The statement.
|
2090
|
+
/// \param[in] key The option to get.
|
2091
|
+
/// \param[out] value The option value.
|
2092
|
+
/// \param[out] error An optional location to return an error
|
2093
|
+
/// message if necessary.
|
2094
|
+
/// \return ADBC_STATUS_NOT_FOUND if the option is not recognized.
|
2095
|
+
ADBC_EXPORT
|
2096
|
+
AdbcStatusCode AdbcStatementGetOptionDouble(struct AdbcStatement *statement, const char *key, double *value,
|
2097
|
+
struct AdbcError *error);
|
2098
|
+
|
1011
2099
|
/// \brief Get the schema for bound parameters.
|
1012
2100
|
///
|
1013
2101
|
/// This retrieves an Arrow schema describing the number, names, and
|
@@ -1028,10 +2116,56 @@ AdbcStatusCode AdbcStatementGetParameterSchema(struct AdbcStatement *statement,
|
|
1028
2116
|
struct AdbcError *error);
|
1029
2117
|
|
1030
2118
|
/// \brief Set a string option on a statement.
|
2119
|
+
/// \param[in] statement The statement.
|
2120
|
+
/// \param[in] key The option to set.
|
2121
|
+
/// \param[in] value The option value.
|
2122
|
+
/// \param[out] error An optional location to return an error
|
2123
|
+
/// message if necessary.
|
2124
|
+
/// \return ADBC_STATUS_NOT_IMPLEMENTED if the option is not recognized.
|
1031
2125
|
ADBC_EXPORT
|
1032
2126
|
AdbcStatusCode AdbcStatementSetOption(struct AdbcStatement *statement, const char *key, const char *value,
|
1033
2127
|
struct AdbcError *error);
|
1034
2128
|
|
2129
|
+
/// \brief Set a bytestring option on a statement.
|
2130
|
+
///
|
2131
|
+
/// \since ADBC API revision 1.1.0
|
2132
|
+
/// \param[in] statement The statement.
|
2133
|
+
/// \param[in] key The option to set.
|
2134
|
+
/// \param[in] value The option value.
|
2135
|
+
/// \param[in] length The option value length.
|
2136
|
+
/// \param[out] error An optional location to return an error
|
2137
|
+
/// message if necessary.
|
2138
|
+
/// \return ADBC_STATUS_NOT_IMPLEMENTED if the option is not recognized
|
2139
|
+
ADBC_EXPORT
|
2140
|
+
AdbcStatusCode AdbcStatementSetOptionBytes(struct AdbcStatement *statement, const char *key, const uint8_t *value,
|
2141
|
+
size_t length, struct AdbcError *error);
|
2142
|
+
|
2143
|
+
/// \brief Set an integer option on a statement.
|
2144
|
+
///
|
2145
|
+
/// \since ADBC API revision 1.1.0
|
2146
|
+
/// \param[in] statement The statement.
|
2147
|
+
/// \param[in] key The option to set.
|
2148
|
+
/// \param[in] value The option value.
|
2149
|
+
/// \param[out] error An optional location to return an error
|
2150
|
+
/// message if necessary.
|
2151
|
+
/// \return ADBC_STATUS_NOT_IMPLEMENTED if the option is not recognized
|
2152
|
+
ADBC_EXPORT
|
2153
|
+
AdbcStatusCode AdbcStatementSetOptionInt(struct AdbcStatement *statement, const char *key, int64_t value,
|
2154
|
+
struct AdbcError *error);
|
2155
|
+
|
2156
|
+
/// \brief Set a double option on a statement.
|
2157
|
+
///
|
2158
|
+
/// \since ADBC API revision 1.1.0
|
2159
|
+
/// \param[in] statement The statement.
|
2160
|
+
/// \param[in] key The option to set.
|
2161
|
+
/// \param[in] value The option value.
|
2162
|
+
/// \param[out] error An optional location to return an error
|
2163
|
+
/// message if necessary.
|
2164
|
+
/// \return ADBC_STATUS_NOT_IMPLEMENTED if the option is not recognized
|
2165
|
+
ADBC_EXPORT
|
2166
|
+
AdbcStatusCode AdbcStatementSetOptionDouble(struct AdbcStatement *statement, const char *key, double value,
|
2167
|
+
struct AdbcError *error);
|
2168
|
+
|
1035
2169
|
/// \addtogroup adbc-statement-partition
|
1036
2170
|
/// @{
|
1037
2171
|
|
@@ -1065,7 +2199,15 @@ AdbcStatusCode AdbcStatementExecutePartitions(struct AdbcStatement *statement, s
|
|
1065
2199
|
/// driver.
|
1066
2200
|
///
|
1067
2201
|
/// Although drivers may choose any name for this function, the
|
1068
|
-
/// recommended name is "AdbcDriverInit"
|
2202
|
+
/// recommended name is "AdbcDriverInit", or a name derived from the
|
2203
|
+
/// name of the driver's shared library as follows: remove the 'lib'
|
2204
|
+
/// prefix (on Unix systems) and all file extensions, then PascalCase
|
2205
|
+
/// the driver name, append Init, and prepend Adbc (if not already
|
2206
|
+
/// there). For example:
|
2207
|
+
///
|
2208
|
+
/// - libadbc_driver_sqlite.so.2.0.0 -> AdbcDriverSqliteInit
|
2209
|
+
/// - adbc_driver_sqlite.dll -> AdbcDriverSqliteInit
|
2210
|
+
/// - proprietary_driver.dll -> AdbcProprietaryDriverInit
|
1069
2211
|
///
|
1070
2212
|
/// \param[in] version The ADBC revision to attempt to initialize (see
|
1071
2213
|
/// ADBC_VERSION_1_0_0).
|
@@ -1086,4 +2228,3 @@ typedef AdbcStatusCode (*AdbcDriverInitFunc)(int version, void *driver, struct A
|
|
1086
2228
|
#ifdef __cplusplus
|
1087
2229
|
}
|
1088
2230
|
#endif
|
1089
|
-
} // namespace duckdb_adbc
|