duckdb 0.10.2-dev0.0 → 0.10.2-dev3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/binding.gyp +22 -18
- package/binding.gyp.in +3 -0
- package/package.json +1 -1
- package/src/duckdb/extension/icu/icu-timezone.cpp +3 -1
- package/src/duckdb/extension/icu/icu_extension.cpp +6 -2
- package/src/duckdb/extension/json/buffered_json_reader.cpp +10 -3
- package/src/duckdb/extension/json/include/buffered_json_reader.hpp +2 -0
- package/src/duckdb/extension/json/include/json_scan.hpp +13 -7
- package/src/duckdb/extension/json/include/json_serializer.hpp +5 -4
- package/src/duckdb/extension/json/include/json_structure.hpp +3 -3
- package/src/duckdb/extension/json/json_functions/json_serialize_plan.cpp +15 -5
- package/src/duckdb/extension/json/json_functions/json_serialize_sql.cpp +15 -6
- package/src/duckdb/extension/json/json_functions/json_structure.cpp +21 -20
- package/src/duckdb/extension/json/json_functions/read_json.cpp +37 -3
- package/src/duckdb/extension/json/json_functions.cpp +7 -2
- package/src/duckdb/extension/json/json_scan.cpp +57 -33
- package/src/duckdb/extension/parquet/column_reader.cpp +12 -3
- package/src/duckdb/extension/parquet/column_writer.cpp +44 -7
- package/src/duckdb/extension/parquet/include/parquet_writer.hpp +5 -1
- package/src/duckdb/extension/parquet/parquet_extension.cpp +30 -3
- package/src/duckdb/extension/parquet/parquet_metadata.cpp +1 -1
- package/src/duckdb/extension/parquet/parquet_writer.cpp +4 -2
- package/src/duckdb/extension/parquet/zstd_file_system.cpp +1 -1
- package/src/duckdb/src/catalog/catalog.cpp +5 -1
- package/src/duckdb/src/catalog/catalog_entry/duck_schema_entry.cpp +21 -5
- package/src/duckdb/src/catalog/catalog_entry/duck_table_entry.cpp +8 -9
- package/src/duckdb/src/catalog/catalog_entry/index_catalog_entry.cpp +3 -7
- package/src/duckdb/src/catalog/catalog_entry/sequence_catalog_entry.cpp +1 -1
- package/src/duckdb/src/catalog/catalog_entry/table_catalog_entry.cpp +6 -7
- package/src/duckdb/src/catalog/catalog_entry.cpp +8 -0
- package/src/duckdb/src/catalog/catalog_search_path.cpp +5 -0
- package/src/duckdb/src/catalog/catalog_set.cpp +2 -2
- package/src/duckdb/src/catalog/default/default_functions.cpp +6 -6
- package/src/duckdb/src/catalog/default/default_schemas.cpp +1 -1
- package/src/duckdb/src/catalog/default/default_views.cpp +7 -7
- package/src/duckdb/src/catalog/dependency_catalog_set.cpp +2 -1
- package/src/duckdb/src/catalog/dependency_list.cpp +92 -8
- package/src/duckdb/src/catalog/dependency_manager.cpp +53 -68
- package/src/duckdb/src/catalog/duck_catalog.cpp +1 -1
- package/src/duckdb/src/common/adbc/adbc.cpp +287 -45
- package/src/duckdb/src/common/arrow/appender/union_data.cpp +2 -2
- package/src/duckdb/src/common/box_renderer.cpp +12 -12
- package/src/duckdb/src/common/crypto/md5.cpp +2 -1
- package/src/duckdb/src/common/enum_util.cpp +307 -1
- package/src/duckdb/src/common/enums/expression_type.cpp +4 -0
- package/src/duckdb/src/common/enums/optimizer_type.cpp +1 -1
- package/src/duckdb/src/common/file_system.cpp +60 -13
- package/src/duckdb/src/common/filename_pattern.cpp +13 -13
- package/src/duckdb/src/common/gzip_file_system.cpp +1 -1
- package/src/duckdb/src/common/http_state.cpp +1 -1
- package/src/duckdb/src/common/local_file_system.cpp +72 -71
- package/src/duckdb/src/common/multi_file_reader.cpp +48 -28
- package/src/duckdb/src/common/row_operations/row_matcher.cpp +2 -2
- package/src/duckdb/src/common/serializer/buffered_file_reader.cpp +13 -1
- package/src/duckdb/src/common/serializer/buffered_file_writer.cpp +32 -13
- package/src/duckdb/src/common/string_util.cpp +2 -3
- package/src/duckdb/src/common/tree_renderer.cpp +32 -67
- package/src/duckdb/src/common/types/bit.cpp +6 -6
- package/src/duckdb/src/common/types/data_chunk.cpp +2 -2
- package/src/duckdb/src/common/types/hash.cpp +6 -6
- package/src/duckdb/src/common/types/hyperloglog.cpp +2 -0
- package/src/duckdb/src/common/types/row/tuple_data_allocator.cpp +13 -0
- package/src/duckdb/src/common/types/row/tuple_data_layout.cpp +5 -7
- package/src/duckdb/src/common/types/uuid.cpp +1 -1
- package/src/duckdb/src/common/types/vector.cpp +22 -14
- package/src/duckdb/src/common/types.cpp +8 -1
- package/src/duckdb/src/common/vector_operations/comparison_operators.cpp +20 -18
- package/src/duckdb/src/common/vector_operations/generators.cpp +1 -1
- package/src/duckdb/src/common/vector_operations/is_distinct_from.cpp +267 -110
- package/src/duckdb/src/common/vector_operations/vector_hash.cpp +52 -23
- package/src/duckdb/src/common/virtual_file_system.cpp +33 -20
- package/src/duckdb/src/core_functions/aggregate/algebraic/avg.cpp +2 -2
- package/src/duckdb/src/core_functions/aggregate/distributive/minmax.cpp +3 -3
- package/src/duckdb/src/core_functions/aggregate/distributive/sum.cpp +31 -16
- package/src/duckdb/src/core_functions/aggregate/holistic/quantile.cpp +3 -0
- package/src/duckdb/src/core_functions/aggregate/nested/list.cpp +2 -0
- package/src/duckdb/src/core_functions/core_functions.cpp +1 -1
- package/src/duckdb/src/core_functions/function_list.cpp +2 -2
- package/src/duckdb/src/core_functions/scalar/date/time_bucket.cpp +1 -1
- package/src/duckdb/src/core_functions/scalar/generic/system_functions.cpp +46 -17
- package/src/duckdb/src/core_functions/scalar/list/array_slice.cpp +1 -1
- package/src/duckdb/src/core_functions/scalar/list/flatten.cpp +82 -45
- package/src/duckdb/src/core_functions/scalar/list/list_aggregates.cpp +2 -2
- package/src/duckdb/src/core_functions/scalar/list/list_sort.cpp +3 -0
- package/src/duckdb/src/core_functions/scalar/math/numeric.cpp +3 -2
- package/src/duckdb/src/core_functions/scalar/string/hex.cpp +2 -4
- package/src/duckdb/src/core_functions/scalar/string/repeat.cpp +12 -21
- package/src/duckdb/src/execution/column_binding_resolver.cpp +2 -10
- package/src/duckdb/src/execution/expression_executor/execute_comparison.cpp +133 -66
- package/src/duckdb/src/execution/expression_executor/execute_function.cpp +0 -2
- package/src/duckdb/src/execution/expression_executor.cpp +0 -4
- package/src/duckdb/src/execution/expression_executor_state.cpp +1 -1
- package/src/duckdb/src/execution/index/art/art.cpp +2 -2
- package/src/duckdb/src/execution/index/unknown_index.cpp +13 -13
- package/src/duckdb/src/execution/join_hashtable.cpp +1 -1
- package/src/duckdb/src/execution/nested_loop_join/nested_loop_join_mark.cpp +0 -1
- package/src/duckdb/src/execution/operator/csv_scanner/buffer_manager/csv_buffer.cpp +10 -7
- package/src/duckdb/src/execution/operator/csv_scanner/buffer_manager/csv_buffer_manager.cpp +32 -1
- package/src/duckdb/src/execution/operator/csv_scanner/buffer_manager/csv_file_handle.cpp +16 -2
- package/src/duckdb/src/execution/operator/csv_scanner/scanner/scanner_boundary.cpp +7 -7
- package/src/duckdb/src/execution/operator/csv_scanner/scanner/string_value_scanner.cpp +354 -159
- package/src/duckdb/src/execution/operator/csv_scanner/sniffer/csv_sniffer.cpp +11 -2
- package/src/duckdb/src/execution/operator/csv_scanner/sniffer/dialect_detection.cpp +22 -7
- package/src/duckdb/src/execution/operator/csv_scanner/sniffer/type_detection.cpp +1 -1
- package/src/duckdb/src/execution/operator/csv_scanner/state_machine/csv_state_machine_cache.cpp +10 -10
- package/src/duckdb/src/execution/operator/csv_scanner/table_function/csv_file_scanner.cpp +9 -18
- package/src/duckdb/src/execution/operator/csv_scanner/table_function/global_csv_state.cpp +180 -47
- package/src/duckdb/src/execution/operator/csv_scanner/util/csv_error.cpp +100 -58
- package/src/duckdb/src/execution/operator/csv_scanner/util/csv_reader_options.cpp +88 -21
- package/src/duckdb/src/execution/operator/helper/physical_vacuum.cpp +12 -13
- package/src/duckdb/src/execution/operator/join/physical_iejoin.cpp +2 -0
- package/src/duckdb/src/execution/operator/persistent/csv_rejects_table.cpp +118 -23
- package/src/duckdb/src/execution/operator/persistent/physical_batch_copy_to_file.cpp +2 -2
- package/src/duckdb/src/execution/operator/persistent/physical_batch_insert.cpp +14 -5
- package/src/duckdb/src/execution/operator/persistent/physical_copy_database.cpp +1 -1
- package/src/duckdb/src/execution/operator/persistent/physical_export.cpp +5 -5
- package/src/duckdb/src/execution/operator/schema/physical_attach.cpp +1 -1
- package/src/duckdb/src/execution/physical_plan/plan_simple.cpp +0 -9
- package/src/duckdb/src/execution/physical_plan/plan_vacuum.cpp +18 -0
- package/src/duckdb/src/execution/physical_plan_generator.cpp +5 -3
- package/src/duckdb/src/execution/radix_partitioned_hashtable.cpp +81 -106
- package/src/duckdb/src/execution/reservoir_sample.cpp +1 -1
- package/src/duckdb/src/execution/window_executor.cpp +48 -28
- package/src/duckdb/src/execution/window_segment_tree.cpp +20 -23
- package/src/duckdb/src/function/aggregate/sorted_aggregate_function.cpp +1 -1
- package/src/duckdb/src/function/cast/enum_casts.cpp +20 -55
- package/src/duckdb/src/function/cast/vector_cast_helpers.cpp +10 -9
- package/src/duckdb/src/function/cast_rules.cpp +9 -1
- package/src/duckdb/src/function/compression_config.cpp +1 -1
- package/src/duckdb/src/function/function_binder.cpp +45 -44
- package/src/duckdb/src/function/function_set.cpp +9 -9
- package/src/duckdb/src/function/pragma/pragma_queries.cpp +1 -2
- package/src/duckdb/src/function/scalar/compressed_materialization/compress_integral.cpp +21 -5
- package/src/duckdb/src/function/scalar/compressed_materialization/compress_string.cpp +2 -2
- package/src/duckdb/src/function/scalar/list/list_select.cpp +5 -2
- package/src/duckdb/src/function/scalar/list/list_zip.cpp +5 -4
- package/src/duckdb/src/function/scalar/operators/arithmetic.cpp +60 -32
- package/src/duckdb/src/function/scalar/sequence/nextval.cpp +1 -1
- package/src/duckdb/src/function/scalar/strftime_format.cpp +31 -25
- package/src/duckdb/src/function/scalar/string/caseconvert.cpp +6 -6
- package/src/duckdb/src/function/scalar/string/length.cpp +23 -2
- package/src/duckdb/src/function/scalar/string/like.cpp +1 -1
- package/src/duckdb/src/function/scalar/string/regexp/regexp_extract_all.cpp +1 -1
- package/src/duckdb/src/function/scalar/system/aggregate_export.cpp +3 -3
- package/src/duckdb/src/function/table/arrow/arrow_array_scan_state.cpp +1 -1
- package/src/duckdb/src/function/table/arrow.cpp +7 -1
- package/src/duckdb/src/function/table/copy_csv.cpp +17 -13
- package/src/duckdb/src/function/table/read_csv.cpp +52 -39
- package/src/duckdb/src/function/table/sniff_csv.cpp +7 -13
- package/src/duckdb/src/function/table/system/duckdb_constraints.cpp +1 -1
- package/src/duckdb/src/function/table/system/duckdb_databases.cpp +7 -1
- package/src/duckdb/src/function/table/system/duckdb_extensions.cpp +12 -2
- package/src/duckdb/src/function/table/system/duckdb_sequences.cpp +1 -2
- package/src/duckdb/src/function/table/system/duckdb_tables.cpp +2 -2
- package/src/duckdb/src/function/table/system/pragma_metadata_info.cpp +9 -2
- package/src/duckdb/src/function/table/system/pragma_table_info.cpp +10 -6
- package/src/duckdb/src/function/table/table_scan.cpp +1 -4
- package/src/duckdb/src/function/table/version/pragma_version.cpp +3 -3
- package/src/duckdb/src/include/duckdb/catalog/catalog.hpp +6 -2
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/duck_index_entry.hpp +1 -1
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/duck_schema_entry.hpp +1 -1
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/sequence_catalog_entry.hpp +1 -1
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry.hpp +6 -1
- package/src/duckdb/src/include/duckdb/catalog/catalog_set.hpp +3 -3
- package/src/duckdb/src/include/duckdb/catalog/default/default_functions.hpp +3 -3
- package/src/duckdb/src/include/duckdb/catalog/dependency.hpp +26 -4
- package/src/duckdb/src/include/duckdb/catalog/dependency_list.hpp +39 -6
- package/src/duckdb/src/include/duckdb/catalog/dependency_manager.hpp +19 -14
- package/src/duckdb/src/include/duckdb/catalog/duck_catalog.hpp +1 -1
- package/src/duckdb/src/include/duckdb/catalog/standard_entry.hpp +4 -0
- package/src/duckdb/src/include/duckdb/common/allocator.hpp +3 -3
- package/src/duckdb/src/include/duckdb/common/arrow/arrow_wrapper.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/bit_utils.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/box_renderer.hpp +16 -16
- package/src/duckdb/src/include/duckdb/common/crypto/md5.hpp +0 -1
- package/src/duckdb/src/include/duckdb/common/enum_util.hpp +32 -0
- package/src/duckdb/src/include/duckdb/common/enums/expression_type.hpp +4 -2
- package/src/duckdb/src/include/duckdb/common/exception/binder_exception.hpp +14 -10
- package/src/duckdb/src/include/duckdb/common/exception/catalog_exception.hpp +4 -4
- package/src/duckdb/src/include/duckdb/common/exception/conversion_exception.hpp +6 -6
- package/src/duckdb/src/include/duckdb/common/exception/http_exception.hpp +3 -3
- package/src/duckdb/src/include/duckdb/common/exception/parser_exception.hpp +4 -4
- package/src/duckdb/src/include/duckdb/common/exception/transaction_exception.hpp +2 -2
- package/src/duckdb/src/include/duckdb/common/exception.hpp +57 -58
- package/src/duckdb/src/include/duckdb/common/exception_format_value.hpp +2 -2
- package/src/duckdb/src/include/duckdb/common/extra_type_info.hpp +2 -2
- package/src/duckdb/src/include/duckdb/common/file_open_flags.hpp +134 -0
- package/src/duckdb/src/include/duckdb/common/file_opener.hpp +9 -6
- package/src/duckdb/src/include/duckdb/common/file_system.hpp +35 -36
- package/src/duckdb/src/include/duckdb/common/filename_pattern.hpp +4 -6
- package/src/duckdb/src/include/duckdb/common/fixed_size_map.hpp +13 -13
- package/src/duckdb/src/include/duckdb/common/helper.hpp +42 -47
- package/src/duckdb/src/include/duckdb/common/http_state.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/hugeint.hpp +2 -2
- package/src/duckdb/src/include/duckdb/common/index_vector.hpp +10 -10
- package/src/duckdb/src/include/duckdb/common/local_file_system.hpp +13 -10
- package/src/duckdb/src/include/duckdb/common/memory_safety.hpp +3 -3
- package/src/duckdb/src/include/duckdb/common/multi_file_reader_options.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/opener_file_system.hpp +50 -24
- package/src/duckdb/src/include/duckdb/common/operator/abs.hpp +12 -4
- package/src/duckdb/src/include/duckdb/common/optional_ptr.hpp +5 -5
- package/src/duckdb/src/include/duckdb/common/pipe_file_system.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/platform.h +1 -1
- package/src/duckdb/src/include/duckdb/common/printer.hpp +5 -5
- package/src/duckdb/src/include/duckdb/common/profiler.hpp +2 -2
- package/src/duckdb/src/include/duckdb/common/progress_bar/display/terminal_progress_bar_display.hpp +5 -5
- package/src/duckdb/src/include/duckdb/common/random_engine.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/re2_regex.hpp +7 -7
- package/src/duckdb/src/include/duckdb/common/serializer/buffered_file_reader.hpp +3 -0
- package/src/duckdb/src/include/duckdb/common/serializer/buffered_file_writer.hpp +2 -2
- package/src/duckdb/src/include/duckdb/common/serializer/deserialization_data.hpp +17 -6
- package/src/duckdb/src/include/duckdb/common/serializer/deserializer.hpp +12 -0
- package/src/duckdb/src/include/duckdb/common/serializer/serialization_traits.hpp +14 -0
- package/src/duckdb/src/include/duckdb/common/serializer/serializer.hpp +16 -0
- package/src/duckdb/src/include/duckdb/common/sort/duckdb_pdqsort.hpp +3 -0
- package/src/duckdb/src/include/duckdb/common/sort/partition_state.hpp +2 -0
- package/src/duckdb/src/include/duckdb/common/string_util.hpp +4 -4
- package/src/duckdb/src/include/duckdb/common/tree_renderer.hpp +24 -25
- package/src/duckdb/src/include/duckdb/common/typedefs.hpp +5 -5
- package/src/duckdb/src/include/duckdb/common/types/cast_helpers.hpp +1 -2
- package/src/duckdb/src/include/duckdb/common/types/column/column_data_collection.hpp +10 -10
- package/src/duckdb/src/include/duckdb/common/types/column/column_data_collection_iterators.hpp +5 -5
- package/src/duckdb/src/include/duckdb/common/types/column/partitioned_column_data.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/types/constraint_conflict_info.hpp +1 -2
- package/src/duckdb/src/include/duckdb/common/types/data_chunk.hpp +2 -2
- package/src/duckdb/src/include/duckdb/common/types/date.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/types/hash.hpp +5 -5
- package/src/duckdb/src/include/duckdb/common/types/hyperloglog.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/types/interval.hpp +4 -4
- package/src/duckdb/src/include/duckdb/common/types/row/partitioned_tuple_data.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/types/row/tuple_data_layout.hpp +10 -3
- package/src/duckdb/src/include/duckdb/common/types/row/tuple_data_segment.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/types/selection_vector.hpp +12 -12
- package/src/duckdb/src/include/duckdb/common/types/string_heap.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/types/string_type.hpp +21 -20
- package/src/duckdb/src/include/duckdb/common/types/time.hpp +2 -2
- package/src/duckdb/src/include/duckdb/common/types/timestamp.hpp +3 -3
- package/src/duckdb/src/include/duckdb/common/types/uuid.hpp +2 -2
- package/src/duckdb/src/include/duckdb/common/types/value.hpp +2 -2
- package/src/duckdb/src/include/duckdb/common/types/vector.hpp +15 -7
- package/src/duckdb/src/include/duckdb/common/types/vector_buffer.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/types.hpp +14 -10
- package/src/duckdb/src/include/duckdb/common/uhugeint.hpp +2 -2
- package/src/duckdb/src/include/duckdb/common/union_by_name.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/unique_ptr.hpp +15 -14
- package/src/duckdb/src/include/duckdb/common/vector.hpp +21 -21
- package/src/duckdb/src/include/duckdb/common/vector_operations/aggregate_executor.hpp +2 -0
- package/src/duckdb/src/include/duckdb/common/vector_operations/general_cast.hpp +2 -1
- package/src/duckdb/src/include/duckdb/common/vector_operations/generic_executor.hpp +2 -3
- package/src/duckdb/src/include/duckdb/common/vector_operations/unary_executor.hpp +3 -2
- package/src/duckdb/src/include/duckdb/common/vector_operations/vector_operations.hpp +50 -32
- package/src/duckdb/src/include/duckdb/common/virtual_file_system.hpp +10 -11
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/distributive_functions.hpp +1 -1
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/sum_helpers.hpp +13 -1
- package/src/duckdb/src/include/duckdb/core_functions/function_list.hpp +1 -1
- package/src/duckdb/src/include/duckdb/core_functions/lambda_functions.hpp +2 -1
- package/src/duckdb/src/include/duckdb/execution/aggregate_hashtable.hpp +1 -1
- package/src/duckdb/src/include/duckdb/execution/column_binding_resolver.hpp +1 -1
- package/src/duckdb/src/include/duckdb/execution/expression_executor.hpp +1 -1
- package/src/duckdb/src/include/duckdb/execution/expression_executor_state.hpp +2 -5
- package/src/duckdb/src/include/duckdb/execution/merge_sort_tree.hpp +3 -3
- package/src/duckdb/src/include/duckdb/execution/operator/aggregate/aggregate_object.hpp +2 -2
- package/src/duckdb/src/include/duckdb/execution/operator/aggregate/distinct_aggregate_data.hpp +1 -1
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/base_scanner.hpp +1 -1
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/column_count_scanner.hpp +0 -3
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_buffer.hpp +9 -6
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_buffer_manager.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_error.hpp +40 -22
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_file_handle.hpp +5 -0
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_file_scanner.hpp +1 -0
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_option.hpp +6 -4
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_reader_options.hpp +24 -10
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_state_machine.hpp +4 -0
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/global_csv_state.hpp +3 -1
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/skip_scanner.hpp +0 -3
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/string_value_scanner.hpp +58 -17
- package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_batch_collector.hpp +1 -1
- package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_explain_analyze.hpp +1 -1
- package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_prepare.hpp +3 -3
- package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_set.hpp +1 -1
- package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_vacuum.hpp +4 -1
- package/src/duckdb/src/include/duckdb/execution/operator/persistent/csv_rejects_table.hpp +16 -5
- package/src/duckdb/src/include/duckdb/execution/physical_operator_states.hpp +6 -6
- package/src/duckdb/src/include/duckdb/execution/physical_plan_generator.hpp +2 -1
- package/src/duckdb/src/include/duckdb/execution/window_executor.hpp +1 -1
- package/src/duckdb/src/include/duckdb/execution/window_segment_tree.hpp +1 -1
- package/src/duckdb/src/include/duckdb/function/aggregate_function.hpp +1 -1
- package/src/duckdb/src/include/duckdb/function/cast/cast_function_set.hpp +5 -5
- package/src/duckdb/src/include/duckdb/function/cast/default_casts.hpp +4 -4
- package/src/duckdb/src/include/duckdb/function/cast/vector_cast_helpers.hpp +6 -6
- package/src/duckdb/src/include/duckdb/function/compression_function.hpp +4 -4
- package/src/duckdb/src/include/duckdb/function/copy_function.hpp +10 -13
- package/src/duckdb/src/include/duckdb/function/function.hpp +3 -3
- package/src/duckdb/src/include/duckdb/function/function_binder.hpp +24 -23
- package/src/duckdb/src/include/duckdb/function/function_serialization.hpp +1 -1
- package/src/duckdb/src/include/duckdb/function/function_set.hpp +1 -1
- package/src/duckdb/src/include/duckdb/function/pragma_function.hpp +1 -1
- package/src/duckdb/src/include/duckdb/function/scalar/regexp.hpp +3 -3
- package/src/duckdb/src/include/duckdb/function/scalar/strftime_format.hpp +7 -7
- package/src/duckdb/src/include/duckdb/function/scalar/string_functions.hpp +3 -3
- package/src/duckdb/src/include/duckdb/function/scalar_function.hpp +6 -6
- package/src/duckdb/src/include/duckdb/function/table/arrow/arrow_duck_schema.hpp +4 -4
- package/src/duckdb/src/include/duckdb/function/table/arrow.hpp +2 -2
- package/src/duckdb/src/include/duckdb/function/table/read_csv.hpp +1 -3
- package/src/duckdb/src/include/duckdb/function/table/table_scan.hpp +1 -1
- package/src/duckdb/src/include/duckdb/function/table_function.hpp +12 -11
- package/src/duckdb/src/include/duckdb/function/udf_function.hpp +66 -60
- package/src/duckdb/src/include/duckdb/main/appender.hpp +6 -6
- package/src/duckdb/src/include/duckdb/main/attached_database.hpp +3 -1
- package/src/duckdb/src/include/duckdb/main/buffered_data/buffered_data.hpp +2 -2
- package/src/duckdb/src/include/duckdb/main/buffered_data/simple_buffered_data.hpp +1 -1
- package/src/duckdb/src/include/duckdb/main/capi/capi_internal.hpp +2 -2
- package/src/duckdb/src/include/duckdb/main/chunk_scan_state/query_result.hpp +2 -2
- package/src/duckdb/src/include/duckdb/main/client_context.hpp +1 -1
- package/src/duckdb/src/include/duckdb/main/client_context_file_opener.hpp +3 -2
- package/src/duckdb/src/include/duckdb/main/client_data.hpp +1 -0
- package/src/duckdb/src/include/duckdb/main/client_properties.hpp +2 -1
- package/src/duckdb/src/include/duckdb/main/config.hpp +14 -5
- package/src/duckdb/src/include/duckdb/main/connection.hpp +27 -26
- package/src/duckdb/src/include/duckdb/main/database.hpp +19 -3
- package/src/duckdb/src/include/duckdb/main/database_file_opener.hpp +58 -0
- package/src/duckdb/src/include/duckdb/main/database_path_and_type.hpp +2 -2
- package/src/duckdb/src/include/duckdb/main/error_manager.hpp +6 -6
- package/src/duckdb/src/include/duckdb/main/extension_entries.hpp +8 -0
- package/src/duckdb/src/include/duckdb/main/extension_helper.hpp +1 -0
- package/src/duckdb/src/include/duckdb/main/external_dependencies.hpp +2 -1
- package/src/duckdb/src/include/duckdb/main/prepared_statement.hpp +8 -8
- package/src/duckdb/src/include/duckdb/main/query_profiler.hpp +2 -59
- package/src/duckdb/src/include/duckdb/main/query_result.hpp +3 -3
- package/src/duckdb/src/include/duckdb/main/relation/query_relation.hpp +1 -1
- package/src/duckdb/src/include/duckdb/main/relation.hpp +1 -1
- package/src/duckdb/src/include/duckdb/main/secret/secret.hpp +11 -7
- package/src/duckdb/src/include/duckdb/main/secret/secret_manager.hpp +2 -2
- package/src/duckdb/src/include/duckdb/main/secret/secret_storage.hpp +4 -4
- package/src/duckdb/src/include/duckdb/main/settings.hpp +78 -70
- package/src/duckdb/src/include/duckdb/optimizer/column_lifetime_analyzer.hpp +45 -0
- package/src/duckdb/src/include/duckdb/optimizer/compressed_materialization.hpp +11 -13
- package/src/duckdb/src/include/duckdb/optimizer/join_order/cardinality_estimator.hpp +2 -2
- package/src/duckdb/src/include/duckdb/optimizer/join_order/cost_model.hpp +1 -1
- package/src/duckdb/src/include/duckdb/optimizer/join_order/join_node.hpp +1 -1
- package/src/duckdb/src/include/duckdb/optimizer/join_order/query_graph.hpp +1 -1
- package/src/duckdb/src/include/duckdb/optimizer/join_order/query_graph_manager.hpp +1 -1
- package/src/duckdb/src/include/duckdb/optimizer/join_order/relation_manager.hpp +1 -1
- package/src/duckdb/src/include/duckdb/optimizer/matcher/expression_matcher.hpp +7 -7
- package/src/duckdb/src/include/duckdb/optimizer/matcher/function_matcher.hpp +7 -7
- package/src/duckdb/src/include/duckdb/optimizer/matcher/type_matcher.hpp +1 -1
- package/src/duckdb/src/include/duckdb/optimizer/optimizer.hpp +3 -0
- package/src/duckdb/src/include/duckdb/optimizer/statistics_propagator.hpp +32 -30
- package/src/duckdb/src/include/duckdb/optimizer/unnest_rewriter.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parallel/event.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parallel/executor_task.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parallel/interrupt.hpp +2 -2
- package/src/duckdb/src/include/duckdb/parallel/pipeline_event.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/column_list.hpp +4 -4
- package/src/duckdb/src/include/duckdb/parser/constraints/unique_constraint.hpp +49 -8
- package/src/duckdb/src/include/duckdb/parser/expression/bound_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/positional_reference_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/star_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/parsed_data/alter_scalar_function_info.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/parsed_data/alter_table_function_info.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/parsed_data/alter_table_info.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/parsed_data/copy_database_info.hpp +40 -0
- package/src/duckdb/src/include/duckdb/parser/parsed_data/create_function_info.hpp +2 -1
- package/src/duckdb/src/include/duckdb/parser/parsed_data/create_index_info.hpp +1 -0
- package/src/duckdb/src/include/duckdb/parser/parsed_data/create_info.hpp +2 -1
- package/src/duckdb/src/include/duckdb/parser/parsed_data/create_macro_info.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/parsed_data/create_pragma_function_info.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/parsed_data/create_secret_info.hpp +2 -2
- package/src/duckdb/src/include/duckdb/parser/parsed_data/extra_drop_info.hpp +3 -3
- package/src/duckdb/src/include/duckdb/parser/parsed_data/parse_info.hpp +3 -2
- package/src/duckdb/src/include/duckdb/parser/parsed_data/vacuum_info.hpp +2 -5
- package/src/duckdb/src/include/duckdb/parser/parser.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/parser_extension.hpp +3 -3
- package/src/duckdb/src/include/duckdb/parser/query_error_context.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/transformer.hpp +3 -5
- package/src/duckdb/src/include/duckdb/planner/bind_context.hpp +2 -2
- package/src/duckdb/src/include/duckdb/planner/binder.hpp +16 -9
- package/src/duckdb/src/include/duckdb/planner/expression/bound_case_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_cast_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_default_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_expanded_expression.hpp +34 -0
- package/src/duckdb/src/include/duckdb/planner/expression/bound_subquery_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression_binder/base_select_binder.hpp +5 -8
- package/src/duckdb/src/include/duckdb/planner/expression_binder/column_alias_binder.hpp +3 -4
- package/src/duckdb/src/include/duckdb/planner/expression_binder/group_binder.hpp +3 -2
- package/src/duckdb/src/include/duckdb/planner/expression_binder/having_binder.hpp +3 -5
- package/src/duckdb/src/include/duckdb/planner/expression_binder/order_binder.hpp +6 -14
- package/src/duckdb/src/include/duckdb/planner/expression_binder/qualify_binder.hpp +3 -6
- package/src/duckdb/src/include/duckdb/planner/expression_binder/select_bind_state.hpp +52 -0
- package/src/duckdb/src/include/duckdb/planner/expression_binder/select_binder.hpp +4 -10
- package/src/duckdb/src/include/duckdb/planner/expression_binder/table_function_binder.hpp +5 -2
- package/src/duckdb/src/include/duckdb/planner/expression_binder.hpp +1 -0
- package/src/duckdb/src/include/duckdb/planner/expression_iterator.hpp +2 -0
- package/src/duckdb/src/include/duckdb/planner/filter/conjunction_filter.hpp +3 -6
- package/src/duckdb/src/include/duckdb/planner/logical_operator.hpp +2 -0
- package/src/duckdb/src/include/duckdb/planner/logical_tokens.hpp +1 -0
- package/src/duckdb/src/include/duckdb/planner/operator/list.hpp +1 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_copy_database.hpp +4 -12
- package/src/duckdb/src/include/duckdb/planner/operator/logical_create_secret.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/operator/logical_cteref.hpp +2 -2
- package/src/duckdb/src/include/duckdb/planner/operator/logical_delim_get.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/operator/logical_dummy_scan.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/operator/logical_explain.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/operator/logical_export.hpp +2 -2
- package/src/duckdb/src/include/duckdb/planner/operator/logical_expression_get.hpp +2 -2
- package/src/duckdb/src/include/duckdb/planner/operator/logical_extension_operator.hpp +2 -2
- package/src/duckdb/src/include/duckdb/planner/operator/logical_materialized_cte.hpp +2 -2
- package/src/duckdb/src/include/duckdb/planner/operator/logical_pragma.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/operator/logical_prepare.hpp +3 -2
- package/src/duckdb/src/include/duckdb/planner/operator/logical_recursive_cte.hpp +3 -3
- package/src/duckdb/src/include/duckdb/planner/operator/logical_reset.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/operator/logical_set.hpp +2 -1
- package/src/duckdb/src/include/duckdb/planner/operator/logical_vacuum.hpp +52 -0
- package/src/duckdb/src/include/duckdb/planner/operator_extension.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/parsed_data/bound_create_table_info.hpp +2 -2
- package/src/duckdb/src/include/duckdb/planner/query_node/bound_select_node.hpp +5 -4
- package/src/duckdb/src/include/duckdb/planner/subquery/flatten_dependent_join.hpp +2 -2
- package/src/duckdb/src/include/duckdb/storage/arena_allocator.hpp +4 -1
- package/src/duckdb/src/include/duckdb/storage/buffer/block_handle.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/buffer_manager.hpp +3 -3
- package/src/duckdb/src/include/duckdb/storage/checkpoint/row_group_writer.hpp +2 -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 +3 -3
- package/src/duckdb/src/include/duckdb/storage/checkpoint_manager.hpp +5 -5
- package/src/duckdb/src/include/duckdb/storage/compression/alp/alp_analyze.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/compression/alp/alp_compress.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/compression/alp/alp_fetch.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/compression/alp/alp_scan.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/compression/alprd/algorithm/alprd.hpp +3 -3
- package/src/duckdb/src/include/duckdb/storage/compression/alprd/alprd_analyze.hpp +2 -2
- package/src/duckdb/src/include/duckdb/storage/compression/alprd/alprd_compress.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/compression/alprd/alprd_fetch.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/compression/alprd/alprd_scan.hpp +3 -3
- package/src/duckdb/src/include/duckdb/storage/compression/chimp/algorithm/flag_buffer.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/compression/chimp/algorithm/leading_zero_buffer.hpp +3 -3
- package/src/duckdb/src/include/duckdb/storage/compression/chimp/chimp.hpp +3 -3
- package/src/duckdb/src/include/duckdb/storage/compression/chimp/chimp_analyze.hpp +0 -1
- package/src/duckdb/src/include/duckdb/storage/compression/chimp/chimp_fetch.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/compression/chimp/chimp_scan.hpp +4 -4
- package/src/duckdb/src/include/duckdb/storage/compression/patas/patas.hpp +4 -4
- package/src/duckdb/src/include/duckdb/storage/compression/patas/patas_analyze.hpp +0 -1
- package/src/duckdb/src/include/duckdb/storage/compression/patas/patas_fetch.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/compression/patas/patas_scan.hpp +3 -3
- package/src/duckdb/src/include/duckdb/storage/data_pointer.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/index.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/magic_bytes.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/object_cache.hpp +3 -3
- package/src/duckdb/src/include/duckdb/storage/optimistic_data_writer.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/partial_block_manager.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/single_file_block_manager.hpp +4 -1
- package/src/duckdb/src/include/duckdb/storage/standard_buffer_manager.hpp +24 -24
- package/src/duckdb/src/include/duckdb/storage/statistics/numeric_stats_union.hpp +3 -3
- package/src/duckdb/src/include/duckdb/storage/statistics/segment_statistics.hpp +2 -2
- package/src/duckdb/src/include/duckdb/storage/storage_info.hpp +2 -2
- package/src/duckdb/src/include/duckdb/storage/storage_manager.hpp +4 -4
- package/src/duckdb/src/include/duckdb/storage/string_uncompressed.hpp +9 -6
- package/src/duckdb/src/include/duckdb/storage/table/append_state.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/table/chunk_info.hpp +2 -2
- package/src/duckdb/src/include/duckdb/storage/table/column_checkpoint_state.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/table/column_data.hpp +10 -1
- package/src/duckdb/src/include/duckdb/storage/table/data_table_info.hpp +3 -2
- package/src/duckdb/src/include/duckdb/storage/table/row_group.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/table/row_group_segment_tree.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/table/row_version_manager.hpp +2 -1
- package/src/duckdb/src/include/duckdb/storage/table/scan_state.hpp +3 -3
- package/src/duckdb/src/include/duckdb/storage/table/segment_lock.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/table/segment_tree.hpp +4 -4
- package/src/duckdb/src/include/duckdb/storage/table/standard_column_data.hpp +2 -0
- package/src/duckdb/src/include/duckdb/storage/table/table_index_list.hpp +3 -2
- package/src/duckdb/src/include/duckdb/storage/table/table_statistics.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/table/update_segment.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/table_storage_info.hpp +2 -1
- package/src/duckdb/src/include/duckdb/storage/write_ahead_log.hpp +1 -1
- package/src/duckdb/src/include/duckdb/transaction/delete_info.hpp +20 -1
- package/src/duckdb/src/include/duckdb/transaction/transaction.hpp +1 -1
- package/src/duckdb/src/include/duckdb/transaction/transaction_data.hpp +1 -1
- package/src/duckdb/src/include/duckdb/transaction/undo_buffer.hpp +1 -1
- package/src/duckdb/src/include/duckdb/transaction/update_info.hpp +1 -1
- package/src/duckdb/src/main/appender.cpp +1 -1
- package/src/duckdb/src/main/attached_database.cpp +11 -3
- package/src/duckdb/src/main/capi/arrow-c.cpp +6 -2
- package/src/duckdb/src/main/capi/cast/utils-c.cpp +1 -1
- package/src/duckdb/src/main/capi/duckdb-c.cpp +1 -1
- package/src/duckdb/src/main/capi/pending-c.cpp +1 -1
- package/src/duckdb/src/main/capi/prepared-c.cpp +2 -2
- package/src/duckdb/src/main/capi/result-c.cpp +4 -4
- package/src/duckdb/src/main/client_context.cpp +4 -12
- package/src/duckdb/src/main/client_context_file_opener.cpp +15 -3
- package/src/duckdb/src/main/client_data.cpp +5 -0
- package/src/duckdb/src/main/config.cpp +82 -82
- package/src/duckdb/src/main/database.cpp +31 -7
- package/src/duckdb/src/main/database_manager.cpp +3 -2
- package/src/duckdb/src/main/database_path_and_type.cpp +4 -4
- package/src/duckdb/src/main/error_manager.cpp +1 -1
- package/src/duckdb/src/main/extension/extension_alias.cpp +9 -9
- package/src/duckdb/src/main/extension/extension_helper.cpp +10 -5
- package/src/duckdb/src/main/extension/extension_install.cpp +1 -1
- package/src/duckdb/src/main/extension/extension_load.cpp +111 -37
- package/src/duckdb/src/main/query_profiler.cpp +1 -118
- package/src/duckdb/src/main/secret/secret_manager.cpp +1 -2
- package/src/duckdb/src/main/secret/secret_storage.cpp +1 -1
- package/src/duckdb/src/main/settings/settings.cpp +81 -65
- package/src/duckdb/src/optimizer/column_lifetime_analyzer.cpp +8 -1
- package/src/duckdb/src/optimizer/compressed_materialization/compress_aggregate.cpp +3 -0
- package/src/duckdb/src/optimizer/compressed_materialization.cpp +26 -28
- package/src/duckdb/src/optimizer/cse_optimizer.cpp +5 -5
- package/src/duckdb/src/optimizer/join_order/cardinality_estimator.cpp +10 -6
- package/src/duckdb/src/optimizer/optimizer.cpp +14 -17
- package/src/duckdb/src/optimizer/pushdown/pushdown_cross_product.cpp +16 -5
- package/src/duckdb/src/optimizer/pushdown/pushdown_inner_join.cpp +7 -4
- package/src/duckdb/src/optimizer/pushdown/pushdown_set_operation.cpp +2 -2
- package/src/duckdb/src/optimizer/remove_unused_columns.cpp +3 -3
- package/src/duckdb/src/optimizer/rule/ordered_aggregate_optimizer.cpp +2 -2
- package/src/duckdb/src/optimizer/statistics/expression/propagate_aggregate.cpp +1 -1
- package/src/duckdb/src/optimizer/statistics/expression/propagate_between.cpp +8 -8
- package/src/duckdb/src/optimizer/statistics/expression/propagate_case.cpp +1 -1
- package/src/duckdb/src/optimizer/statistics/expression/propagate_cast.cpp +1 -1
- package/src/duckdb/src/optimizer/statistics/expression/propagate_columnref.cpp +1 -1
- package/src/duckdb/src/optimizer/statistics/expression/propagate_comparison.cpp +7 -7
- package/src/duckdb/src/optimizer/statistics/expression/propagate_conjunction.cpp +6 -6
- package/src/duckdb/src/optimizer/statistics/expression/propagate_constant.cpp +1 -1
- package/src/duckdb/src/optimizer/statistics/expression/propagate_function.cpp +2 -2
- package/src/duckdb/src/optimizer/statistics/expression/propagate_operator.cpp +10 -10
- package/src/duckdb/src/optimizer/statistics/operator/propagate_aggregate.cpp +1 -1
- package/src/duckdb/src/optimizer/statistics/operator/propagate_cross_product.cpp +1 -1
- package/src/duckdb/src/optimizer/statistics/operator/propagate_filter.cpp +14 -7
- package/src/duckdb/src/optimizer/statistics/operator/propagate_get.cpp +2 -2
- package/src/duckdb/src/optimizer/statistics/operator/propagate_join.cpp +9 -9
- package/src/duckdb/src/optimizer/statistics/operator/propagate_limit.cpp +1 -1
- package/src/duckdb/src/optimizer/statistics/operator/propagate_order.cpp +1 -1
- package/src/duckdb/src/optimizer/statistics/operator/propagate_projection.cpp +2 -2
- package/src/duckdb/src/optimizer/statistics/operator/propagate_set_operation.cpp +1 -1
- package/src/duckdb/src/optimizer/statistics/operator/propagate_window.cpp +1 -1
- package/src/duckdb/src/optimizer/statistics_propagator.cpp +39 -18
- package/src/duckdb/src/parallel/pipeline_finish_event.cpp +1 -1
- package/src/duckdb/src/parallel/task_scheduler.cpp +8 -1
- package/src/duckdb/src/parser/constraints/unique_constraint.cpp +4 -2
- package/src/duckdb/src/parser/parsed_data/create_index_info.cpp +64 -0
- package/src/duckdb/src/parser/parsed_data/vacuum_info.cpp +1 -0
- package/src/duckdb/src/parser/transform/expression/transform_function.cpp +13 -5
- package/src/duckdb/src/parser/transform/expression/transform_subquery.cpp +24 -0
- package/src/duckdb/src/parser/transform/helpers/transform_cte.cpp +1 -8
- package/src/duckdb/src/parser/transform/statement/transform_create_function.cpp +2 -1
- package/src/duckdb/src/parser/transform/statement/transform_create_index.cpp +3 -0
- package/src/duckdb/src/parser/transform/statement/transform_delete.cpp +2 -6
- package/src/duckdb/src/parser/transform/statement/transform_insert.cpp +2 -6
- package/src/duckdb/src/parser/transform/statement/transform_pivot_stmt.cpp +2 -6
- package/src/duckdb/src/parser/transform/statement/transform_pragma.cpp +1 -1
- package/src/duckdb/src/parser/transform/statement/transform_select.cpp +5 -2
- package/src/duckdb/src/parser/transform/statement/transform_select_node.cpp +2 -8
- package/src/duckdb/src/parser/transform/statement/transform_update.cpp +1 -6
- package/src/duckdb/src/parser/transform/statement/transform_use.cpp +3 -2
- package/src/duckdb/src/parser/transformer.cpp +14 -2
- package/src/duckdb/src/planner/binder/expression/bind_aggregate_expression.cpp +40 -17
- package/src/duckdb/src/planner/binder/expression/bind_unnest_expression.cpp +8 -3
- package/src/duckdb/src/planner/binder/expression/bind_window_expression.cpp +32 -30
- package/src/duckdb/src/planner/binder/query_node/bind_cte_node.cpp +28 -17
- package/src/duckdb/src/planner/binder/query_node/bind_select_node.cpp +146 -101
- package/src/duckdb/src/planner/binder/query_node/bind_setop_node.cpp +28 -26
- package/src/duckdb/src/planner/binder/query_node/plan_cte_node.cpp +29 -0
- package/src/duckdb/src/planner/binder/query_node/plan_subquery.cpp +10 -10
- package/src/duckdb/src/planner/binder/statement/bind_copy.cpp +3 -2
- package/src/duckdb/src/planner/binder/statement/bind_copy_database.cpp +23 -28
- package/src/duckdb/src/planner/binder/statement/bind_create.cpp +11 -12
- package/src/duckdb/src/planner/binder/statement/bind_create_table.cpp +9 -11
- package/src/duckdb/src/planner/binder/statement/bind_insert.cpp +10 -13
- package/src/duckdb/src/planner/binder/statement/bind_pragma.cpp +3 -3
- package/src/duckdb/src/planner/binder/statement/bind_set.cpp +3 -0
- package/src/duckdb/src/planner/binder/statement/bind_vacuum.cpp +66 -65
- package/src/duckdb/src/planner/binder/tableref/bind_basetableref.cpp +54 -46
- package/src/duckdb/src/planner/binder/tableref/bind_pivot.cpp +3 -0
- package/src/duckdb/src/planner/binder/tableref/bind_subqueryref.cpp +1 -1
- package/src/duckdb/src/planner/binder/tableref/bind_table_function.cpp +5 -5
- package/src/duckdb/src/planner/binder.cpp +78 -6
- package/src/duckdb/src/planner/expression/bound_cast_expression.cpp +11 -3
- package/src/duckdb/src/planner/expression/bound_expanded_expression.cpp +22 -0
- package/src/duckdb/src/planner/expression_binder/base_select_binder.cpp +11 -58
- package/src/duckdb/src/planner/expression_binder/column_alias_binder.cpp +5 -8
- package/src/duckdb/src/planner/expression_binder/group_binder.cpp +5 -4
- package/src/duckdb/src/planner/expression_binder/having_binder.cpp +5 -19
- package/src/duckdb/src/planner/expression_binder/lateral_binder.cpp +8 -8
- package/src/duckdb/src/planner/expression_binder/order_binder.cpp +42 -26
- package/src/duckdb/src/planner/expression_binder/qualify_binder.cpp +3 -22
- package/src/duckdb/src/planner/expression_binder/select_bind_state.cpp +52 -0
- package/src/duckdb/src/planner/expression_binder/select_binder.cpp +43 -5
- package/src/duckdb/src/planner/expression_binder/table_function_binder.cpp +19 -7
- package/src/duckdb/src/planner/logical_operator.cpp +20 -3
- package/src/duckdb/src/planner/operator/logical_copy_database.cpp +4 -14
- package/src/duckdb/src/planner/operator/logical_delete.cpp +1 -1
- package/src/duckdb/src/planner/operator/logical_get.cpp +1 -1
- package/src/duckdb/src/planner/operator/logical_insert.cpp +1 -1
- package/src/duckdb/src/planner/operator/logical_update.cpp +1 -1
- package/src/duckdb/src/planner/operator/logical_vacuum.cpp +65 -0
- package/src/duckdb/src/planner/planner.cpp +4 -4
- package/src/duckdb/src/planner/subquery/flatten_dependent_join.cpp +26 -27
- package/src/duckdb/src/storage/arena_allocator.cpp +9 -0
- package/src/duckdb/src/storage/buffer/buffer_pool_reservation.cpp +1 -1
- package/src/duckdb/src/storage/buffer_manager.cpp +2 -10
- package/src/duckdb/src/storage/checkpoint/table_data_writer.cpp +2 -3
- package/src/duckdb/src/storage/checkpoint_manager.cpp +15 -8
- package/src/duckdb/src/storage/compression/bitpacking.cpp +6 -1
- package/src/duckdb/src/storage/compression/string_uncompressed.cpp +1 -1
- package/src/duckdb/src/storage/data_pointer.cpp +1 -1
- package/src/duckdb/src/storage/data_table.cpp +18 -7
- package/src/duckdb/src/storage/local_storage.cpp +8 -5
- package/src/duckdb/src/storage/magic_bytes.cpp +6 -5
- package/src/duckdb/src/storage/partial_block_manager.cpp +1 -1
- package/src/duckdb/src/storage/serialization/serialize_logical_operator.cpp +20 -9
- package/src/duckdb/src/storage/serialization/serialize_nodes.cpp +12 -10
- package/src/duckdb/src/storage/serialization/serialize_parse_info.cpp +23 -0
- package/src/duckdb/src/storage/single_file_block_manager.cpp +46 -19
- package/src/duckdb/src/storage/standard_buffer_manager.cpp +21 -5
- package/src/duckdb/src/storage/statistics/array_stats.cpp +1 -1
- package/src/duckdb/src/storage/statistics/base_statistics.cpp +2 -3
- package/src/duckdb/src/storage/statistics/list_stats.cpp +1 -1
- package/src/duckdb/src/storage/statistics/struct_stats.cpp +1 -1
- package/src/duckdb/src/storage/storage_info.cpp +19 -19
- package/src/duckdb/src/storage/storage_manager.cpp +18 -13
- package/src/duckdb/src/storage/table/chunk_info.cpp +11 -3
- package/src/duckdb/src/storage/table/column_data.cpp +88 -66
- package/src/duckdb/src/storage/table/row_group.cpp +7 -7
- package/src/duckdb/src/storage/table/row_version_manager.cpp +2 -2
- package/src/duckdb/src/storage/table/standard_column_data.cpp +4 -0
- package/src/duckdb/src/storage/table/update_segment.cpp +3 -1
- package/src/duckdb/src/storage/table_index_list.cpp +6 -1
- package/src/duckdb/src/storage/temporary_file_manager.cpp +1 -1
- package/src/duckdb/src/storage/wal_replay.cpp +8 -7
- package/src/duckdb/src/storage/write_ahead_log.cpp +3 -4
- package/src/duckdb/src/transaction/cleanup_state.cpp +10 -3
- package/src/duckdb/src/transaction/commit_state.cpp +11 -4
- package/src/duckdb/src/transaction/duck_transaction.cpp +23 -3
- package/src/duckdb/src/transaction/rollback_state.cpp +1 -1
- package/src/duckdb/src/transaction/transaction_context.cpp +1 -1
- package/src/duckdb/src/transaction/undo_buffer.cpp +3 -1
- package/src/duckdb/third_party/fmt/include/fmt/core.h +0 -5
- package/src/duckdb/third_party/fsst/fsst.h +1 -1
- package/src/duckdb/third_party/fsst/libfsst.cpp +1 -140
- package/src/duckdb/third_party/fsst/libfsst.hpp +0 -13
- package/src/duckdb/third_party/hyperloglog/hyperloglog.hpp +4 -0
- package/src/duckdb/third_party/libpg_query/include/nodes/parsenodes.hpp +8 -1
- package/src/duckdb/third_party/libpg_query/include/parser/gram.hpp +2 -1
- package/src/duckdb/third_party/libpg_query/src_backend_parser_gram.cpp +15401 -15354
- package/src/duckdb/third_party/libpg_query/src_backend_parser_scan.cpp +299 -538
- package/src/duckdb/third_party/lz4/lz4.cpp +2605 -0
- package/src/duckdb/third_party/lz4/lz4.hpp +843 -0
- package/src/duckdb/third_party/parquet/parquet_types.cpp +3 -0
- package/src/duckdb/third_party/parquet/parquet_types.h +2 -1
- package/src/duckdb/third_party/re2/re2/bitmap256.cc +44 -0
- package/src/duckdb/third_party/re2/re2/bitmap256.h +3 -35
- package/src/duckdb/third_party/re2/re2/bitstate.cc +31 -24
- package/src/duckdb/third_party/re2/re2/compile.cc +146 -164
- package/src/duckdb/third_party/re2/re2/dfa.cc +174 -181
- package/src/duckdb/third_party/re2/re2/filtered_re2.cc +19 -3
- package/src/duckdb/third_party/re2/re2/filtered_re2.h +27 -23
- package/src/duckdb/third_party/re2/re2/mimics_pcre.cc +21 -11
- package/src/duckdb/third_party/re2/re2/nfa.cc +91 -131
- package/src/duckdb/third_party/re2/re2/onepass.cc +11 -10
- package/src/duckdb/third_party/re2/re2/parse.cc +171 -154
- package/src/duckdb/third_party/re2/re2/perl_groups.cc +35 -35
- package/src/duckdb/third_party/re2/re2/pod_array.h +55 -0
- package/src/duckdb/third_party/re2/re2/prefilter.cc +40 -40
- package/src/duckdb/third_party/re2/re2/prefilter.h +24 -2
- package/src/duckdb/third_party/re2/re2/prefilter_tree.cc +70 -84
- package/src/duckdb/third_party/re2/re2/prefilter_tree.h +5 -4
- package/src/duckdb/third_party/re2/re2/prog.cc +315 -58
- package/src/duckdb/third_party/re2/re2/prog.h +77 -44
- package/src/duckdb/third_party/re2/re2/re2.cc +333 -221
- package/src/duckdb/third_party/re2/re2/re2.h +277 -201
- package/src/duckdb/third_party/re2/re2/regexp.cc +137 -105
- package/src/duckdb/third_party/re2/re2/regexp.h +45 -40
- package/src/duckdb/third_party/re2/re2/set.cc +40 -17
- package/src/duckdb/third_party/re2/re2/set.h +11 -6
- package/src/duckdb/third_party/re2/re2/simplify.cc +50 -41
- package/src/duckdb/third_party/re2/re2/sparse_array.h +392 -0
- package/src/duckdb/third_party/re2/re2/sparse_set.h +264 -0
- package/src/duckdb/third_party/re2/re2/stringpiece.cc +1 -1
- package/src/duckdb/third_party/re2/re2/stringpiece.h +11 -8
- package/src/duckdb/third_party/re2/re2/tostring.cc +8 -6
- package/src/duckdb/third_party/re2/re2/unicode_casefold.cc +39 -10
- package/src/duckdb/third_party/re2/re2/unicode_casefold.h +1 -1
- package/src/duckdb/third_party/re2/re2/unicode_groups.cc +5019 -4566
- package/src/duckdb/third_party/re2/re2/unicode_groups.h +1 -1
- package/src/duckdb/third_party/re2/re2/walker-inl.h +21 -20
- package/src/duckdb/third_party/re2/util/logging.h +14 -18
- package/src/duckdb/third_party/re2/util/mix.h +4 -4
- package/src/duckdb/third_party/re2/util/mutex.h +48 -15
- package/src/duckdb/third_party/re2/util/rune.cc +5 -5
- package/src/duckdb/third_party/re2/util/strutil.cc +1 -16
- package/src/duckdb/third_party/re2/util/strutil.h +1 -3
- package/src/duckdb/third_party/re2/util/utf.h +1 -1
- package/src/duckdb/third_party/re2/util/util.h +9 -1
- package/src/duckdb/third_party/utf8proc/include/utf8proc_wrapper.hpp +2 -0
- package/src/duckdb/third_party/utf8proc/utf8proc_wrapper.cpp +36 -1
- package/src/duckdb/ub_src_common.cpp +0 -2
- package/src/duckdb/ub_src_execution_physical_plan.cpp +2 -0
- package/src/duckdb/ub_src_planner_expression.cpp +2 -0
- package/src/duckdb/ub_src_planner_expression_binder.cpp +2 -0
- package/src/duckdb/ub_src_planner_operator.cpp +2 -0
|
@@ -25,6 +25,17 @@ class FileSystem;
|
|
|
25
25
|
class TaskScheduler;
|
|
26
26
|
class ObjectCache;
|
|
27
27
|
struct AttachInfo;
|
|
28
|
+
class DatabaseFileSystem;
|
|
29
|
+
|
|
30
|
+
struct ExtensionInfo {
|
|
31
|
+
explicit ExtensionInfo(const std::string &version) : extension_version(version) {
|
|
32
|
+
}
|
|
33
|
+
ExtensionInfo() : ExtensionInfo("defaultme") {
|
|
34
|
+
}
|
|
35
|
+
ExtensionInfo(const ExtensionInfo &x) : ExtensionInfo(x.extension_version) {
|
|
36
|
+
}
|
|
37
|
+
std::string extension_version;
|
|
38
|
+
};
|
|
28
39
|
|
|
29
40
|
class DatabaseInstance : public std::enable_shared_from_this<DatabaseInstance> {
|
|
30
41
|
friend class DuckDB;
|
|
@@ -39,22 +50,25 @@ public:
|
|
|
39
50
|
BufferPool &GetBufferPool() const;
|
|
40
51
|
DUCKDB_API SecretManager &GetSecretManager();
|
|
41
52
|
DUCKDB_API BufferManager &GetBufferManager();
|
|
53
|
+
DUCKDB_API const BufferManager &GetBufferManager() const;
|
|
42
54
|
DUCKDB_API DatabaseManager &GetDatabaseManager();
|
|
43
55
|
DUCKDB_API FileSystem &GetFileSystem();
|
|
44
56
|
DUCKDB_API TaskScheduler &GetScheduler();
|
|
45
57
|
DUCKDB_API ObjectCache &GetObjectCache();
|
|
46
58
|
DUCKDB_API ConnectionManager &GetConnectionManager();
|
|
47
59
|
DUCKDB_API ValidChecker &GetValidChecker();
|
|
48
|
-
DUCKDB_API void SetExtensionLoaded(const std::string &extension_name);
|
|
60
|
+
DUCKDB_API void SetExtensionLoaded(const std::string &extension_name, const std::string &extension_version = "");
|
|
49
61
|
|
|
50
62
|
idx_t NumberOfThreads();
|
|
51
63
|
|
|
52
64
|
DUCKDB_API static DatabaseInstance &GetDatabase(ClientContext &context);
|
|
65
|
+
DUCKDB_API static const DatabaseInstance &GetDatabase(const ClientContext &context);
|
|
53
66
|
|
|
54
67
|
DUCKDB_API const unordered_set<std::string> &LoadedExtensions();
|
|
68
|
+
DUCKDB_API const unordered_map<string, ExtensionInfo> &LoadedExtensionsData();
|
|
55
69
|
DUCKDB_API bool ExtensionIsLoaded(const string &name);
|
|
56
70
|
|
|
57
|
-
DUCKDB_API SettingLookupResult TryGetCurrentSetting(const string &key, Value &result);
|
|
71
|
+
DUCKDB_API SettingLookupResult TryGetCurrentSetting(const string &key, Value &result) const;
|
|
58
72
|
|
|
59
73
|
unique_ptr<AttachedDatabase> CreateAttachedDatabase(ClientContext &context, const AttachInfo &info,
|
|
60
74
|
const string &type, AccessMode access_mode);
|
|
@@ -66,13 +80,15 @@ private:
|
|
|
66
80
|
void Configure(DBConfig &config);
|
|
67
81
|
|
|
68
82
|
private:
|
|
69
|
-
|
|
83
|
+
shared_ptr<BufferManager> buffer_manager;
|
|
70
84
|
unique_ptr<DatabaseManager> db_manager;
|
|
71
85
|
unique_ptr<TaskScheduler> scheduler;
|
|
72
86
|
unique_ptr<ObjectCache> object_cache;
|
|
73
87
|
unique_ptr<ConnectionManager> connection_manager;
|
|
74
88
|
unordered_set<std::string> loaded_extensions;
|
|
89
|
+
unordered_map<std::string, ExtensionInfo> loaded_extensions_data;
|
|
75
90
|
ValidChecker db_validity;
|
|
91
|
+
unique_ptr<DatabaseFileSystem> db_file_system;
|
|
76
92
|
};
|
|
77
93
|
|
|
78
94
|
//! The database object. This object holds the catalog and all the
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
//===----------------------------------------------------------------------===//
|
|
2
|
+
// DuckDB
|
|
3
|
+
//
|
|
4
|
+
// duckdb/main/database_file_opener.hpp
|
|
5
|
+
//
|
|
6
|
+
//
|
|
7
|
+
//===----------------------------------------------------------------------===//
|
|
8
|
+
|
|
9
|
+
#pragma once
|
|
10
|
+
|
|
11
|
+
#include "duckdb/common/file_opener.hpp"
|
|
12
|
+
#include "duckdb/common/opener_file_system.hpp"
|
|
13
|
+
#include "duckdb/main/config.hpp"
|
|
14
|
+
#include "duckdb/main/database.hpp"
|
|
15
|
+
|
|
16
|
+
namespace duckdb {
|
|
17
|
+
class DatabaseInstance;
|
|
18
|
+
|
|
19
|
+
class DatabaseFileOpener : public FileOpener {
|
|
20
|
+
public:
|
|
21
|
+
explicit DatabaseFileOpener(DatabaseInstance &db_p) : db(db_p) {
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
SettingLookupResult TryGetCurrentSetting(const string &key, Value &result) override {
|
|
25
|
+
return SettingLookupResult();
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
optional_ptr<ClientContext> TryGetClientContext() override {
|
|
29
|
+
return nullptr;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
optional_ptr<DatabaseInstance> TryGetDatabase() override {
|
|
33
|
+
return &db;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
private:
|
|
37
|
+
DatabaseInstance &db;
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
class DatabaseFileSystem : public OpenerFileSystem {
|
|
41
|
+
public:
|
|
42
|
+
explicit DatabaseFileSystem(DatabaseInstance &db_p) : db(db_p), database_opener(db_p) {
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
FileSystem &GetFileSystem() const override {
|
|
46
|
+
auto &config = DBConfig::GetConfig(db);
|
|
47
|
+
return *config.file_system;
|
|
48
|
+
}
|
|
49
|
+
optional_ptr<FileOpener> GetOpener() const override {
|
|
50
|
+
return &database_opener;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
private:
|
|
54
|
+
DatabaseInstance &db;
|
|
55
|
+
mutable DatabaseFileOpener database_opener;
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
} // namespace duckdb
|
|
@@ -17,9 +17,9 @@ struct DBPathAndType {
|
|
|
17
17
|
//! Parse database extension type and rest of path from combined form (type:path)
|
|
18
18
|
static void ExtractExtensionPrefix(string &path, string &db_type);
|
|
19
19
|
//! Check the magic bytes of a file and set the database type based on that
|
|
20
|
-
static void CheckMagicBytes(
|
|
20
|
+
static void CheckMagicBytes(FileSystem &fs, string &path, string &db_type);
|
|
21
21
|
|
|
22
22
|
//! Run ExtractExtensionPrefix followed by CheckMagicBytes
|
|
23
|
-
static void ResolveDatabaseType(
|
|
23
|
+
static void ResolveDatabaseType(FileSystem &fs, string &path, string &db_type);
|
|
24
24
|
};
|
|
25
25
|
} // namespace duckdb
|
|
@@ -32,23 +32,23 @@ enum class ErrorType : uint16_t {
|
|
|
32
32
|
//! It allows for error messages to be overridden by extensions and clients
|
|
33
33
|
class ErrorManager {
|
|
34
34
|
public:
|
|
35
|
-
template <typename...
|
|
36
|
-
string FormatException(ErrorType error_type,
|
|
35
|
+
template <typename... ARGS>
|
|
36
|
+
string FormatException(ErrorType error_type, ARGS... params) {
|
|
37
37
|
vector<ExceptionFormatValue> values;
|
|
38
38
|
return FormatExceptionRecursive(error_type, values, params...);
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
DUCKDB_API string FormatExceptionRecursive(ErrorType error_type, vector<ExceptionFormatValue> &values);
|
|
42
42
|
|
|
43
|
-
template <class T, typename...
|
|
43
|
+
template <class T, typename... ARGS>
|
|
44
44
|
string FormatExceptionRecursive(ErrorType error_type, vector<ExceptionFormatValue> &values, T param,
|
|
45
|
-
|
|
45
|
+
ARGS... params) {
|
|
46
46
|
values.push_back(ExceptionFormatValue::CreateFormatValue<T>(param));
|
|
47
47
|
return FormatExceptionRecursive(error_type, values, params...);
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
template <typename...
|
|
51
|
-
static string FormatException(ClientContext &context, ErrorType error_type,
|
|
50
|
+
template <typename... ARGS>
|
|
51
|
+
static string FormatException(ClientContext &context, ErrorType error_type, ARGS... params) {
|
|
52
52
|
return Get(context).FormatException(error_type, params...);
|
|
53
53
|
}
|
|
54
54
|
|
|
@@ -47,6 +47,8 @@ static constexpr ExtensionFunctionEntry EXTENSION_FUNCTIONS[] = {
|
|
|
47
47
|
{"fuzzyduck", "sqlsmith", CatalogType::TABLE_FUNCTION_ENTRY},
|
|
48
48
|
{"get_substrait", "substrait", CatalogType::TABLE_FUNCTION_ENTRY},
|
|
49
49
|
{"get_substrait_json", "substrait", CatalogType::TABLE_FUNCTION_ENTRY},
|
|
50
|
+
{"hnsw_compact_index", "vss", CatalogType::PRAGMA_FUNCTION_ENTRY},
|
|
51
|
+
{"hnsw_index_scan", "vss", CatalogType::TABLE_FUNCTION_ENTRY},
|
|
50
52
|
{"host", "inet", CatalogType::SCALAR_FUNCTION_ENTRY},
|
|
51
53
|
{"iceberg_metadata", "iceberg", CatalogType::TABLE_FUNCTION_ENTRY},
|
|
52
54
|
{"iceberg_scan", "iceberg", CatalogType::TABLE_FUNCTION_ENTRY},
|
|
@@ -88,9 +90,11 @@ static constexpr ExtensionFunctionEntry EXTENSION_FUNCTIONS[] = {
|
|
|
88
90
|
{"pg_clear_cache", "postgres_scanner", CatalogType::TABLE_FUNCTION_ENTRY},
|
|
89
91
|
{"pg_timezone_names", "icu", CatalogType::TABLE_FUNCTION_ENTRY},
|
|
90
92
|
{"postgres_attach", "postgres_scanner", CatalogType::TABLE_FUNCTION_ENTRY},
|
|
93
|
+
{"postgres_execute", "postgres_scanner", CatalogType::TABLE_FUNCTION_ENTRY},
|
|
91
94
|
{"postgres_query", "postgres_scanner", CatalogType::TABLE_FUNCTION_ENTRY},
|
|
92
95
|
{"postgres_scan", "postgres_scanner", CatalogType::TABLE_FUNCTION_ENTRY},
|
|
93
96
|
{"postgres_scan_pushdown", "postgres_scanner", CatalogType::TABLE_FUNCTION_ENTRY},
|
|
97
|
+
{"pragma_hnsw_index_info", "vss", CatalogType::TABLE_FUNCTION_ENTRY},
|
|
94
98
|
{"read_json", "json", CatalogType::TABLE_FUNCTION_ENTRY},
|
|
95
99
|
{"read_json_auto", "json", CatalogType::TABLE_FUNCTION_ENTRY},
|
|
96
100
|
{"read_json_objects", "json", CatalogType::TABLE_FUNCTION_ENTRY},
|
|
@@ -128,6 +132,7 @@ static constexpr ExtensionFunctionEntry EXTENSION_FUNCTIONS[] = {
|
|
|
128
132
|
{"st_dimension", "spatial", CatalogType::SCALAR_FUNCTION_ENTRY},
|
|
129
133
|
{"st_disjoint", "spatial", CatalogType::SCALAR_FUNCTION_ENTRY},
|
|
130
134
|
{"st_distance", "spatial", CatalogType::SCALAR_FUNCTION_ENTRY},
|
|
135
|
+
{"st_distance_sphere", "spatial", CatalogType::SCALAR_FUNCTION_ENTRY},
|
|
131
136
|
{"st_distance_spheroid", "spatial", CatalogType::SCALAR_FUNCTION_ENTRY},
|
|
132
137
|
{"st_drivers", "spatial", CatalogType::TABLE_FUNCTION_ENTRY},
|
|
133
138
|
{"st_dump", "spatial", CatalogType::SCALAR_FUNCTION_ENTRY},
|
|
@@ -150,6 +155,7 @@ static constexpr ExtensionFunctionEntry EXTENSION_FUNCTIONS[] = {
|
|
|
150
155
|
{"st_geomfromhexwkb", "spatial", CatalogType::SCALAR_FUNCTION_ENTRY},
|
|
151
156
|
{"st_geomfromtext", "spatial", CatalogType::SCALAR_FUNCTION_ENTRY},
|
|
152
157
|
{"st_geomfromwkb", "spatial", CatalogType::SCALAR_FUNCTION_ENTRY},
|
|
158
|
+
{"st_hilbert", "spatial", CatalogType::SCALAR_FUNCTION_ENTRY},
|
|
153
159
|
{"st_intersection", "spatial", CatalogType::SCALAR_FUNCTION_ENTRY},
|
|
154
160
|
{"st_intersection_agg", "spatial", CatalogType::AGGREGATE_FUNCTION_ENTRY},
|
|
155
161
|
{"st_intersects", "spatial", CatalogType::SCALAR_FUNCTION_ENTRY},
|
|
@@ -197,6 +203,7 @@ static constexpr ExtensionFunctionEntry EXTENSION_FUNCTIONS[] = {
|
|
|
197
203
|
{"st_reduceprecision", "spatial", CatalogType::SCALAR_FUNCTION_ENTRY},
|
|
198
204
|
{"st_removerepeatedpoints", "spatial", CatalogType::SCALAR_FUNCTION_ENTRY},
|
|
199
205
|
{"st_reverse", "spatial", CatalogType::SCALAR_FUNCTION_ENTRY},
|
|
206
|
+
{"st_shortestline", "spatial", CatalogType::SCALAR_FUNCTION_ENTRY},
|
|
200
207
|
{"st_simplify", "spatial", CatalogType::SCALAR_FUNCTION_ENTRY},
|
|
201
208
|
{"st_simplifypreservetopology", "spatial", CatalogType::SCALAR_FUNCTION_ENTRY},
|
|
202
209
|
{"st_startpoint", "spatial", CatalogType::SCALAR_FUNCTION_ENTRY},
|
|
@@ -257,6 +264,7 @@ static constexpr ExtensionEntry EXTENSION_SETTINGS[] = {
|
|
|
257
264
|
{"pg_experimental_filter_pushdown", "postgres_scanner"},
|
|
258
265
|
{"pg_pages_per_task", "postgres_scanner"},
|
|
259
266
|
{"pg_use_binary_copy", "postgres_scanner"},
|
|
267
|
+
{"pg_use_ctid_scan", "postgres_scanner"},
|
|
260
268
|
{"s3_access_key_id", "httpfs"},
|
|
261
269
|
{"s3_endpoint", "httpfs"},
|
|
262
270
|
{"s3_region", "httpfs"},
|
|
@@ -10,7 +10,8 @@
|
|
|
10
10
|
|
|
11
11
|
namespace duckdb {
|
|
12
12
|
|
|
13
|
-
enum ExternalDependenciesType { PYTHON_DEPENDENCY };
|
|
13
|
+
enum class ExternalDependenciesType : uint8_t { PYTHON_DEPENDENCY };
|
|
14
|
+
|
|
14
15
|
class ExternalDependency {
|
|
15
16
|
public:
|
|
16
17
|
explicit ExternalDependency(ExternalDependenciesType type_p) : type(type_p) {};
|
|
@@ -66,8 +66,8 @@ public:
|
|
|
66
66
|
DUCKDB_API case_insensitive_map_t<LogicalType> GetExpectedParameterTypes() const;
|
|
67
67
|
|
|
68
68
|
//! Create a pending query result of the prepared statement with the given set of arguments
|
|
69
|
-
template <typename...
|
|
70
|
-
unique_ptr<PendingQueryResult> PendingQuery(
|
|
69
|
+
template <typename... ARGS>
|
|
70
|
+
unique_ptr<PendingQueryResult> PendingQuery(ARGS... args) {
|
|
71
71
|
vector<Value> values;
|
|
72
72
|
return PendingQueryRecursive(values, args...);
|
|
73
73
|
}
|
|
@@ -87,8 +87,8 @@ public:
|
|
|
87
87
|
bool allow_stream_result = true);
|
|
88
88
|
|
|
89
89
|
//! Execute the prepared statement with the given set of arguments
|
|
90
|
-
template <typename...
|
|
91
|
-
unique_ptr<QueryResult> Execute(
|
|
90
|
+
template <typename... ARGS>
|
|
91
|
+
unique_ptr<QueryResult> Execute(ARGS... args) {
|
|
92
92
|
vector<Value> values;
|
|
93
93
|
return ExecuteRecursive(values, args...);
|
|
94
94
|
}
|
|
@@ -158,8 +158,8 @@ private:
|
|
|
158
158
|
return PendingQuery(values);
|
|
159
159
|
}
|
|
160
160
|
|
|
161
|
-
template <typename T, typename...
|
|
162
|
-
unique_ptr<PendingQueryResult> PendingQueryRecursive(vector<Value> &values, T value,
|
|
161
|
+
template <typename T, typename... ARGS>
|
|
162
|
+
unique_ptr<PendingQueryResult> PendingQueryRecursive(vector<Value> &values, T value, ARGS... args) {
|
|
163
163
|
values.push_back(Value::CreateValue<T>(value));
|
|
164
164
|
return PendingQueryRecursive(values, args...);
|
|
165
165
|
}
|
|
@@ -168,8 +168,8 @@ private:
|
|
|
168
168
|
return Execute(values);
|
|
169
169
|
}
|
|
170
170
|
|
|
171
|
-
template <typename T, typename...
|
|
172
|
-
unique_ptr<QueryResult> ExecuteRecursive(vector<Value> &values, T value,
|
|
171
|
+
template <typename T, typename... ARGS>
|
|
172
|
+
unique_ptr<QueryResult> ExecuteRecursive(vector<Value> &values, T value, ARGS... args) {
|
|
173
173
|
values.push_back(Value::CreateValue<T>(value));
|
|
174
174
|
return ExecuteRecursive(values, args...);
|
|
175
175
|
}
|
|
@@ -28,70 +28,13 @@ class ExpressionExecutor;
|
|
|
28
28
|
class PhysicalOperator;
|
|
29
29
|
class SQLStatement;
|
|
30
30
|
|
|
31
|
-
//! The ExpressionInfo keeps information related to an expression
|
|
32
|
-
struct ExpressionInfo {
|
|
33
|
-
explicit ExpressionInfo() : hasfunction(false) {
|
|
34
|
-
}
|
|
35
|
-
// A vector of children
|
|
36
|
-
vector<unique_ptr<ExpressionInfo>> children;
|
|
37
|
-
// Extract ExpressionInformation from a given expression state
|
|
38
|
-
void ExtractExpressionsRecursive(unique_ptr<ExpressionState> &state);
|
|
39
|
-
|
|
40
|
-
//! Whether or not expression has function
|
|
41
|
-
bool hasfunction;
|
|
42
|
-
//! The function Name
|
|
43
|
-
string function_name;
|
|
44
|
-
//! The function time
|
|
45
|
-
uint64_t function_time = 0;
|
|
46
|
-
//! Count the number of ALL tuples
|
|
47
|
-
uint64_t tuples_count = 0;
|
|
48
|
-
//! Count the number of tuples sampled
|
|
49
|
-
uint64_t sample_tuples_count = 0;
|
|
50
|
-
};
|
|
51
|
-
|
|
52
|
-
//! The ExpressionRootInfo keeps information related to the root of an expression tree
|
|
53
|
-
struct ExpressionRootInfo {
|
|
54
|
-
ExpressionRootInfo(ExpressionExecutorState &executor, string name);
|
|
55
|
-
|
|
56
|
-
//! Count the number of time the executor called
|
|
57
|
-
uint64_t total_count = 0;
|
|
58
|
-
//! Count the number of time the executor called since last sampling
|
|
59
|
-
uint64_t current_count = 0;
|
|
60
|
-
//! Count the number of samples
|
|
61
|
-
uint64_t sample_count = 0;
|
|
62
|
-
//! Count the number of tuples in all samples
|
|
63
|
-
uint64_t sample_tuples_count = 0;
|
|
64
|
-
//! Count the number of tuples processed by this executor
|
|
65
|
-
uint64_t tuples_count = 0;
|
|
66
|
-
//! A vector which contain the pointer to root of each expression tree
|
|
67
|
-
unique_ptr<ExpressionInfo> root;
|
|
68
|
-
//! Name
|
|
69
|
-
string name;
|
|
70
|
-
//! Elapsed time
|
|
71
|
-
double time;
|
|
72
|
-
//! Extra Info
|
|
73
|
-
string extra_info;
|
|
74
|
-
};
|
|
75
|
-
|
|
76
|
-
struct ExpressionExecutorInfo {
|
|
77
|
-
explicit ExpressionExecutorInfo() {};
|
|
78
|
-
explicit ExpressionExecutorInfo(ExpressionExecutor &executor, const string &name, int id);
|
|
79
|
-
|
|
80
|
-
//! A vector which contain the pointer to all ExpressionRootInfo
|
|
81
|
-
vector<unique_ptr<ExpressionRootInfo>> roots;
|
|
82
|
-
//! Id, it will be used as index for executors_info vector
|
|
83
|
-
int id;
|
|
84
|
-
};
|
|
85
|
-
|
|
86
31
|
struct OperatorInformation {
|
|
87
|
-
explicit OperatorInformation(double
|
|
32
|
+
explicit OperatorInformation(double time_p = 0, idx_t elements_p = 0) : time(time_p), elements(elements_p) {
|
|
88
33
|
}
|
|
89
34
|
|
|
90
35
|
double time = 0;
|
|
91
36
|
idx_t elements = 0;
|
|
92
37
|
string name;
|
|
93
|
-
//! A vector of Expression Executor Info
|
|
94
|
-
vector<unique_ptr<ExpressionExecutorInfo>> executors_info;
|
|
95
38
|
};
|
|
96
39
|
|
|
97
40
|
//! The OperatorProfiler measures timings of individual operators
|
|
@@ -125,7 +68,7 @@ private:
|
|
|
125
68
|
//! The QueryProfiler can be used to measure timings of queries
|
|
126
69
|
class QueryProfiler {
|
|
127
70
|
public:
|
|
128
|
-
DUCKDB_API QueryProfiler(ClientContext &context);
|
|
71
|
+
DUCKDB_API explicit QueryProfiler(ClientContext &context);
|
|
129
72
|
|
|
130
73
|
public:
|
|
131
74
|
struct TreeNode {
|
|
@@ -65,7 +65,7 @@ public:
|
|
|
65
65
|
vector<LogicalType> types, vector<string> names, ClientProperties client_properties);
|
|
66
66
|
//! Creates an unsuccessful query result with error condition
|
|
67
67
|
DUCKDB_API QueryResult(QueryResultType type, ErrorData error);
|
|
68
|
-
DUCKDB_API
|
|
68
|
+
DUCKDB_API ~QueryResult() override;
|
|
69
69
|
|
|
70
70
|
//! Properties from the client context
|
|
71
71
|
ClientProperties client_properties;
|
|
@@ -190,10 +190,10 @@ private:
|
|
|
190
190
|
};
|
|
191
191
|
|
|
192
192
|
public:
|
|
193
|
-
QueryResultIterator begin() {
|
|
193
|
+
QueryResultIterator begin() { // NOLINT: match stl API
|
|
194
194
|
return QueryResultIterator(this);
|
|
195
195
|
}
|
|
196
|
-
QueryResultIterator end() {
|
|
196
|
+
QueryResultIterator end() { // NOLINT: match stl API
|
|
197
197
|
return QueryResultIterator(nullptr);
|
|
198
198
|
}
|
|
199
199
|
|
|
@@ -17,7 +17,7 @@ class SelectStatement;
|
|
|
17
17
|
class QueryRelation : public Relation {
|
|
18
18
|
public:
|
|
19
19
|
QueryRelation(const std::shared_ptr<ClientContext> &context, unique_ptr<SelectStatement> select_stmt, string alias);
|
|
20
|
-
~QueryRelation();
|
|
20
|
+
~QueryRelation() override;
|
|
21
21
|
|
|
22
22
|
unique_ptr<SelectStatement> select_stmt;
|
|
23
23
|
string alias;
|
|
@@ -51,7 +51,9 @@ public:
|
|
|
51
51
|
//! should be seen as the method of secret creation. (e.g. user-provided config, env variables, auto-detect)
|
|
52
52
|
class CreateSecretFunctionSet {
|
|
53
53
|
public:
|
|
54
|
-
CreateSecretFunctionSet(string &name) : name(name) {};
|
|
54
|
+
explicit CreateSecretFunctionSet(string &name) : name(name) {};
|
|
55
|
+
|
|
56
|
+
public:
|
|
55
57
|
bool ProviderExists(const string &provider_name);
|
|
56
58
|
void AddFunction(CreateSecretFunction &function, OnCreateConflict on_conflict);
|
|
57
59
|
CreateSecretFunction &GetFunction(const string &provider);
|
|
@@ -81,8 +83,9 @@ class BaseSecret {
|
|
|
81
83
|
friend class SecretManager;
|
|
82
84
|
|
|
83
85
|
public:
|
|
84
|
-
BaseSecret(
|
|
85
|
-
: prefix_paths(
|
|
86
|
+
BaseSecret(vector<string> prefix_paths_p, string type_p, string provider_p, string name_p)
|
|
87
|
+
: prefix_paths(std::move(prefix_paths_p)), type(std::move(type_p)), provider(std::move(provider_p)),
|
|
88
|
+
name(std::move(name_p)), serializable(false) {
|
|
86
89
|
D_ASSERT(!type.empty());
|
|
87
90
|
}
|
|
88
91
|
BaseSecret(const BaseSecret &other)
|
|
@@ -148,7 +151,7 @@ public:
|
|
|
148
151
|
D_ASSERT(!type.empty());
|
|
149
152
|
serializable = true;
|
|
150
153
|
}
|
|
151
|
-
KeyValueSecret(BaseSecret &secret)
|
|
154
|
+
explicit KeyValueSecret(const BaseSecret &secret)
|
|
152
155
|
: BaseSecret(secret.GetScope(), secret.GetType(), secret.GetProvider(), secret.GetName()) {
|
|
153
156
|
serializable = true;
|
|
154
157
|
};
|
|
@@ -158,15 +161,16 @@ public:
|
|
|
158
161
|
redact_keys = secret.redact_keys;
|
|
159
162
|
serializable = true;
|
|
160
163
|
};
|
|
161
|
-
KeyValueSecret(KeyValueSecret &&secret)
|
|
162
|
-
: BaseSecret(secret.
|
|
164
|
+
KeyValueSecret(KeyValueSecret &&secret) noexcept
|
|
165
|
+
: BaseSecret(std::move(secret.prefix_paths), std::move(secret.type), std::move(secret.provider),
|
|
166
|
+
std::move(secret.name)) {
|
|
163
167
|
secret_map = std::move(secret.secret_map);
|
|
164
168
|
redact_keys = std::move(secret.redact_keys);
|
|
165
169
|
serializable = true;
|
|
166
170
|
};
|
|
167
171
|
|
|
168
172
|
//! Print the secret as a key value map in the format 'key1=value;key2=value2'
|
|
169
|
-
|
|
173
|
+
string ToString(SecretDisplayType mode = SecretDisplayType::REDACTED) const override;
|
|
170
174
|
void Serialize(Serializer &serializer) const override;
|
|
171
175
|
|
|
172
176
|
//! Tries to get the value at key <key>, depending on error_on_missing will throw or return Value()
|
|
@@ -55,8 +55,8 @@ public:
|
|
|
55
55
|
//! A Secret Entry in the secret manager
|
|
56
56
|
struct SecretEntry {
|
|
57
57
|
public:
|
|
58
|
-
SecretEntry(unique_ptr<const BaseSecret> secret) : secret(secret != nullptr ? secret->Clone() : nullptr) {
|
|
59
|
-
|
|
58
|
+
explicit SecretEntry(unique_ptr<const BaseSecret> secret) : secret(secret != nullptr ? secret->Clone() : nullptr) {
|
|
59
|
+
}
|
|
60
60
|
SecretEntry(const SecretEntry &other)
|
|
61
61
|
: persist_type(other.persist_type), storage_mode(other.storage_mode),
|
|
62
62
|
secret((other.secret != nullptr) ? other.secret->Clone() : nullptr) {
|
|
@@ -26,7 +26,7 @@ class SecretStorage {
|
|
|
26
26
|
friend class SecretManager;
|
|
27
27
|
|
|
28
28
|
public:
|
|
29
|
-
SecretStorage(const string &name) : storage_name(name), persistent(false) {};
|
|
29
|
+
explicit SecretStorage(const string &name) : storage_name(name), persistent(false) {};
|
|
30
30
|
virtual ~SecretStorage() = default;
|
|
31
31
|
|
|
32
32
|
public:
|
|
@@ -103,8 +103,8 @@ public:
|
|
|
103
103
|
return storage_name;
|
|
104
104
|
};
|
|
105
105
|
|
|
106
|
-
|
|
107
|
-
|
|
106
|
+
unique_ptr<SecretEntry> StoreSecret(unique_ptr<const BaseSecret> secret, OnCreateConflict on_conflict,
|
|
107
|
+
optional_ptr<CatalogTransaction> transaction = nullptr) override;
|
|
108
108
|
vector<SecretEntry> AllSecrets(optional_ptr<CatalogTransaction> transaction = nullptr) override;
|
|
109
109
|
void DropSecretByName(const string &name, OnEntryNotFound on_entry_not_found,
|
|
110
110
|
optional_ptr<CatalogTransaction> transaction = nullptr) override;
|
|
@@ -153,7 +153,7 @@ protected:
|
|
|
153
153
|
//! Implements the writes to disk
|
|
154
154
|
void WriteSecret(const BaseSecret &secret, OnCreateConflict on_conflict) override;
|
|
155
155
|
//! Implements the deletes from disk
|
|
156
|
-
|
|
156
|
+
void RemoveSecret(const string &secret, OnEntryNotFound on_entry_not_found) override;
|
|
157
157
|
|
|
158
158
|
//! Set of persistent secrets that are lazily loaded
|
|
159
159
|
case_insensitive_set_t persistent_secrets;
|