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,10 +25,10 @@ class ParsedExpression;
|
|
|
25
25
|
class QueryErrorContext;
|
|
26
26
|
class TableRef;
|
|
27
27
|
struct hugeint_t;
|
|
28
|
-
class optional_idx;
|
|
28
|
+
class optional_idx; // NOLINT: matching std style
|
|
29
29
|
|
|
30
|
-
inline void
|
|
31
|
-
|
|
30
|
+
inline void AssertRestrictFunction(const void *left_start, const void *left_end, const void *right_start,
|
|
31
|
+
const void *right_end, const char *fname, int linenr) {
|
|
32
32
|
// assert that the two pointers do not overlap
|
|
33
33
|
#ifdef DEBUG
|
|
34
34
|
if (!(left_end <= right_start || right_end <= left_start)) {
|
|
@@ -39,13 +39,13 @@ inline void assert_restrict_function(const void *left_start, const void *left_en
|
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
#define ASSERT_RESTRICT(left_start, left_end, right_start, right_end) \
|
|
42
|
-
|
|
42
|
+
AssertRestrictFunction(left_start, left_end, right_start, right_end, __FILE__, __LINE__)
|
|
43
43
|
|
|
44
44
|
//===--------------------------------------------------------------------===//
|
|
45
45
|
// Exception Types
|
|
46
46
|
//===--------------------------------------------------------------------===//
|
|
47
47
|
|
|
48
|
-
enum class ExceptionType {
|
|
48
|
+
enum class ExceptionType : uint8_t {
|
|
49
49
|
INVALID = 0, // invalid type
|
|
50
50
|
OUT_OF_RANGE = 1, // value out of range error
|
|
51
51
|
CONVERSION = 2, // conversion/casting error
|
|
@@ -100,11 +100,12 @@ public:
|
|
|
100
100
|
DUCKDB_API static string ExceptionTypeToString(ExceptionType type);
|
|
101
101
|
DUCKDB_API static ExceptionType StringToExceptionType(const string &type);
|
|
102
102
|
|
|
103
|
-
template <typename...
|
|
104
|
-
static string ConstructMessage(const string &msg,
|
|
105
|
-
const std::size_t num_args = sizeof...(
|
|
106
|
-
if (num_args == 0)
|
|
103
|
+
template <typename... ARGS>
|
|
104
|
+
static string ConstructMessage(const string &msg, ARGS... params) {
|
|
105
|
+
const std::size_t num_args = sizeof...(ARGS);
|
|
106
|
+
if (num_args == 0) {
|
|
107
107
|
return msg;
|
|
108
|
+
}
|
|
108
109
|
std::vector<ExceptionFormatValue> values;
|
|
109
110
|
return ConstructMessageRecursive(msg, values, params...);
|
|
110
111
|
}
|
|
@@ -126,9 +127,9 @@ public:
|
|
|
126
127
|
|
|
127
128
|
DUCKDB_API static string ConstructMessageRecursive(const string &msg, std::vector<ExceptionFormatValue> &values);
|
|
128
129
|
|
|
129
|
-
template <class T, typename...
|
|
130
|
+
template <class T, typename... ARGS>
|
|
130
131
|
static string ConstructMessageRecursive(const string &msg, std::vector<ExceptionFormatValue> &values, T param,
|
|
131
|
-
|
|
132
|
+
ARGS... params) {
|
|
132
133
|
values.push_back(ExceptionFormatValue::CreateFormatValue<T>(param));
|
|
133
134
|
return ConstructMessageRecursive(msg, values, params...);
|
|
134
135
|
}
|
|
@@ -136,7 +137,7 @@ public:
|
|
|
136
137
|
DUCKDB_API static bool UncaughtException();
|
|
137
138
|
|
|
138
139
|
DUCKDB_API static string GetStackTrace(int max_depth = 120);
|
|
139
|
-
static string FormatStackTrace(string message = "") {
|
|
140
|
+
static string FormatStackTrace(const string &message = "") {
|
|
140
141
|
return (message + "\n" + GetStackTrace());
|
|
141
142
|
}
|
|
142
143
|
|
|
@@ -150,8 +151,8 @@ class ConnectionException : public Exception {
|
|
|
150
151
|
public:
|
|
151
152
|
DUCKDB_API explicit ConnectionException(const string &msg);
|
|
152
153
|
|
|
153
|
-
template <typename...
|
|
154
|
-
explicit ConnectionException(const string &msg,
|
|
154
|
+
template <typename... ARGS>
|
|
155
|
+
explicit ConnectionException(const string &msg, ARGS... params)
|
|
155
156
|
: ConnectionException(ConstructMessage(msg, params...)) {
|
|
156
157
|
}
|
|
157
158
|
};
|
|
@@ -160,8 +161,8 @@ class PermissionException : public Exception {
|
|
|
160
161
|
public:
|
|
161
162
|
DUCKDB_API explicit PermissionException(const string &msg);
|
|
162
163
|
|
|
163
|
-
template <typename...
|
|
164
|
-
explicit PermissionException(const string &msg,
|
|
164
|
+
template <typename... ARGS>
|
|
165
|
+
explicit PermissionException(const string &msg, ARGS... params)
|
|
165
166
|
: PermissionException(ConstructMessage(msg, params...)) {
|
|
166
167
|
}
|
|
167
168
|
};
|
|
@@ -170,22 +171,22 @@ class OutOfRangeException : public Exception {
|
|
|
170
171
|
public:
|
|
171
172
|
DUCKDB_API explicit OutOfRangeException(const string &msg);
|
|
172
173
|
|
|
173
|
-
template <typename...
|
|
174
|
-
explicit OutOfRangeException(const string &msg,
|
|
174
|
+
template <typename... ARGS>
|
|
175
|
+
explicit OutOfRangeException(const string &msg, ARGS... params)
|
|
175
176
|
: OutOfRangeException(ConstructMessage(msg, params...)) {
|
|
176
177
|
}
|
|
177
|
-
DUCKDB_API OutOfRangeException(const int64_t value, const PhysicalType
|
|
178
|
-
DUCKDB_API OutOfRangeException(const hugeint_t value, const PhysicalType
|
|
179
|
-
DUCKDB_API OutOfRangeException(const double value, const PhysicalType
|
|
180
|
-
DUCKDB_API OutOfRangeException(const PhysicalType
|
|
178
|
+
DUCKDB_API OutOfRangeException(const int64_t value, const PhysicalType orig_type, const PhysicalType new_type);
|
|
179
|
+
DUCKDB_API OutOfRangeException(const hugeint_t value, const PhysicalType orig_type, const PhysicalType new_type);
|
|
180
|
+
DUCKDB_API OutOfRangeException(const double value, const PhysicalType orig_type, const PhysicalType new_type);
|
|
181
|
+
DUCKDB_API OutOfRangeException(const PhysicalType var_type, const idx_t length);
|
|
181
182
|
};
|
|
182
183
|
|
|
183
184
|
class OutOfMemoryException : public Exception {
|
|
184
185
|
public:
|
|
185
186
|
DUCKDB_API explicit OutOfMemoryException(const string &msg);
|
|
186
187
|
|
|
187
|
-
template <typename...
|
|
188
|
-
explicit OutOfMemoryException(const string &msg,
|
|
188
|
+
template <typename... ARGS>
|
|
189
|
+
explicit OutOfMemoryException(const string &msg, ARGS... params)
|
|
189
190
|
: OutOfMemoryException(ConstructMessage(msg, params...)) {
|
|
190
191
|
}
|
|
191
192
|
};
|
|
@@ -194,8 +195,8 @@ class SyntaxException : public Exception {
|
|
|
194
195
|
public:
|
|
195
196
|
DUCKDB_API explicit SyntaxException(const string &msg);
|
|
196
197
|
|
|
197
|
-
template <typename...
|
|
198
|
-
explicit SyntaxException(const string &msg,
|
|
198
|
+
template <typename... ARGS>
|
|
199
|
+
explicit SyntaxException(const string &msg, ARGS... params) : SyntaxException(ConstructMessage(msg, params...)) {
|
|
199
200
|
}
|
|
200
201
|
};
|
|
201
202
|
|
|
@@ -203,8 +204,8 @@ class ConstraintException : public Exception {
|
|
|
203
204
|
public:
|
|
204
205
|
DUCKDB_API explicit ConstraintException(const string &msg);
|
|
205
206
|
|
|
206
|
-
template <typename...
|
|
207
|
-
explicit ConstraintException(const string &msg,
|
|
207
|
+
template <typename... ARGS>
|
|
208
|
+
explicit ConstraintException(const string &msg, ARGS... params)
|
|
208
209
|
: ConstraintException(ConstructMessage(msg, params...)) {
|
|
209
210
|
}
|
|
210
211
|
};
|
|
@@ -213,8 +214,8 @@ class DependencyException : public Exception {
|
|
|
213
214
|
public:
|
|
214
215
|
DUCKDB_API explicit DependencyException(const string &msg);
|
|
215
216
|
|
|
216
|
-
template <typename...
|
|
217
|
-
explicit DependencyException(const string &msg,
|
|
217
|
+
template <typename... ARGS>
|
|
218
|
+
explicit DependencyException(const string &msg, ARGS... params)
|
|
218
219
|
: DependencyException(ConstructMessage(msg, params...)) {
|
|
219
220
|
}
|
|
220
221
|
};
|
|
@@ -226,12 +227,12 @@ public:
|
|
|
226
227
|
explicit IOException(ExceptionType exception_type, const string &msg) : Exception(exception_type, msg) {
|
|
227
228
|
}
|
|
228
229
|
|
|
229
|
-
template <typename...
|
|
230
|
-
explicit IOException(const string &msg,
|
|
230
|
+
template <typename... ARGS>
|
|
231
|
+
explicit IOException(const string &msg, ARGS... params) : IOException(ConstructMessage(msg, params...)) {
|
|
231
232
|
}
|
|
232
233
|
|
|
233
|
-
template <typename...
|
|
234
|
-
explicit IOException(const string &msg, const unordered_map<string, string> &extra_info,
|
|
234
|
+
template <typename... ARGS>
|
|
235
|
+
explicit IOException(const string &msg, const unordered_map<string, string> &extra_info, ARGS... params)
|
|
235
236
|
: IOException(ConstructMessage(msg, params...), extra_info) {
|
|
236
237
|
}
|
|
237
238
|
};
|
|
@@ -240,8 +241,8 @@ class MissingExtensionException : public Exception {
|
|
|
240
241
|
public:
|
|
241
242
|
DUCKDB_API explicit MissingExtensionException(const string &msg);
|
|
242
243
|
|
|
243
|
-
template <typename...
|
|
244
|
-
explicit MissingExtensionException(const string &msg,
|
|
244
|
+
template <typename... ARGS>
|
|
245
|
+
explicit MissingExtensionException(const string &msg, ARGS... params)
|
|
245
246
|
: MissingExtensionException(ConstructMessage(msg, params...)) {
|
|
246
247
|
}
|
|
247
248
|
};
|
|
@@ -250,8 +251,8 @@ class NotImplementedException : public Exception {
|
|
|
250
251
|
public:
|
|
251
252
|
DUCKDB_API explicit NotImplementedException(const string &msg);
|
|
252
253
|
|
|
253
|
-
template <typename...
|
|
254
|
-
explicit NotImplementedException(const string &msg,
|
|
254
|
+
template <typename... ARGS>
|
|
255
|
+
explicit NotImplementedException(const string &msg, ARGS... params)
|
|
255
256
|
: NotImplementedException(ConstructMessage(msg, params...)) {
|
|
256
257
|
}
|
|
257
258
|
};
|
|
@@ -265,8 +266,8 @@ class SerializationException : public Exception {
|
|
|
265
266
|
public:
|
|
266
267
|
DUCKDB_API explicit SerializationException(const string &msg);
|
|
267
268
|
|
|
268
|
-
template <typename...
|
|
269
|
-
explicit SerializationException(const string &msg,
|
|
269
|
+
template <typename... ARGS>
|
|
270
|
+
explicit SerializationException(const string &msg, ARGS... params)
|
|
270
271
|
: SerializationException(ConstructMessage(msg, params...)) {
|
|
271
272
|
}
|
|
272
273
|
};
|
|
@@ -275,8 +276,8 @@ class SequenceException : public Exception {
|
|
|
275
276
|
public:
|
|
276
277
|
DUCKDB_API explicit SequenceException(const string &msg);
|
|
277
278
|
|
|
278
|
-
template <typename...
|
|
279
|
-
explicit SequenceException(const string &msg,
|
|
279
|
+
template <typename... ARGS>
|
|
280
|
+
explicit SequenceException(const string &msg, ARGS... params)
|
|
280
281
|
: SequenceException(ConstructMessage(msg, params...)) {
|
|
281
282
|
}
|
|
282
283
|
};
|
|
@@ -290,14 +291,14 @@ class FatalException : public Exception {
|
|
|
290
291
|
public:
|
|
291
292
|
explicit FatalException(const string &msg) : FatalException(ExceptionType::FATAL, msg) {
|
|
292
293
|
}
|
|
293
|
-
template <typename...
|
|
294
|
-
explicit FatalException(const string &msg,
|
|
294
|
+
template <typename... ARGS>
|
|
295
|
+
explicit FatalException(const string &msg, ARGS... params) : FatalException(ConstructMessage(msg, params...)) {
|
|
295
296
|
}
|
|
296
297
|
|
|
297
298
|
protected:
|
|
298
299
|
DUCKDB_API explicit FatalException(ExceptionType type, const string &msg);
|
|
299
|
-
template <typename...
|
|
300
|
-
explicit FatalException(ExceptionType type, const string &msg,
|
|
300
|
+
template <typename... ARGS>
|
|
301
|
+
explicit FatalException(ExceptionType type, const string &msg, ARGS... params)
|
|
301
302
|
: FatalException(type, ConstructMessage(msg, params...)) {
|
|
302
303
|
}
|
|
303
304
|
};
|
|
@@ -306,8 +307,8 @@ class InternalException : public Exception {
|
|
|
306
307
|
public:
|
|
307
308
|
DUCKDB_API explicit InternalException(const string &msg);
|
|
308
309
|
|
|
309
|
-
template <typename...
|
|
310
|
-
explicit InternalException(const string &msg,
|
|
310
|
+
template <typename... ARGS>
|
|
311
|
+
explicit InternalException(const string &msg, ARGS... params)
|
|
311
312
|
: InternalException(ConstructMessage(msg, params...)) {
|
|
312
313
|
}
|
|
313
314
|
};
|
|
@@ -317,12 +318,12 @@ public:
|
|
|
317
318
|
DUCKDB_API explicit InvalidInputException(const string &msg);
|
|
318
319
|
DUCKDB_API explicit InvalidInputException(const string &msg, const unordered_map<string, string> &extra_info);
|
|
319
320
|
|
|
320
|
-
template <typename...
|
|
321
|
-
explicit InvalidInputException(const string &msg,
|
|
321
|
+
template <typename... ARGS>
|
|
322
|
+
explicit InvalidInputException(const string &msg, ARGS... params)
|
|
322
323
|
: InvalidInputException(ConstructMessage(msg, params...)) {
|
|
323
324
|
}
|
|
324
|
-
template <typename...
|
|
325
|
-
explicit InvalidInputException(Expression &expr, const string &msg,
|
|
325
|
+
template <typename... ARGS>
|
|
326
|
+
explicit InvalidInputException(Expression &expr, const string &msg, ARGS... params)
|
|
326
327
|
: InvalidInputException(ConstructMessage(msg, params...), Exception::InitializeExtraInfo(expr)) {
|
|
327
328
|
}
|
|
328
329
|
};
|
|
@@ -331,8 +332,7 @@ class InvalidTypeException : public Exception {
|
|
|
331
332
|
public:
|
|
332
333
|
DUCKDB_API InvalidTypeException(PhysicalType type, const string &msg);
|
|
333
334
|
DUCKDB_API InvalidTypeException(const LogicalType &type, const string &msg);
|
|
334
|
-
DUCKDB_API
|
|
335
|
-
InvalidTypeException(const string &msg); //! Needed to be able to recreate the exception after it's been serialized
|
|
335
|
+
DUCKDB_API explicit InvalidTypeException(const string &msg);
|
|
336
336
|
};
|
|
337
337
|
|
|
338
338
|
class TypeMismatchException : public Exception {
|
|
@@ -341,16 +341,15 @@ public:
|
|
|
341
341
|
DUCKDB_API TypeMismatchException(const LogicalType &type_1, const LogicalType &type_2, const string &msg);
|
|
342
342
|
DUCKDB_API TypeMismatchException(optional_idx error_location, const LogicalType &type_1, const LogicalType &type_2,
|
|
343
343
|
const string &msg);
|
|
344
|
-
DUCKDB_API
|
|
345
|
-
TypeMismatchException(const string &msg); //! Needed to be able to recreate the exception after it's been serialized
|
|
344
|
+
DUCKDB_API explicit TypeMismatchException(const string &msg);
|
|
346
345
|
};
|
|
347
346
|
|
|
348
347
|
class ParameterNotAllowedException : public Exception {
|
|
349
348
|
public:
|
|
350
349
|
DUCKDB_API explicit ParameterNotAllowedException(const string &msg);
|
|
351
350
|
|
|
352
|
-
template <typename...
|
|
353
|
-
explicit ParameterNotAllowedException(const string &msg,
|
|
351
|
+
template <typename... ARGS>
|
|
352
|
+
explicit ParameterNotAllowedException(const string &msg, ARGS... params)
|
|
354
353
|
: ParameterNotAllowedException(ConstructMessage(msg, params...)) {
|
|
355
354
|
}
|
|
356
355
|
};
|
|
@@ -19,7 +19,7 @@ namespace duckdb {
|
|
|
19
19
|
// Escaping " and quoting the value with "
|
|
20
20
|
class SQLIdentifier {
|
|
21
21
|
public:
|
|
22
|
-
SQLIdentifier(const string &raw_string) : raw_string(raw_string) {
|
|
22
|
+
explicit SQLIdentifier(const string &raw_string) : raw_string(raw_string) {
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
public:
|
|
@@ -30,7 +30,7 @@ public:
|
|
|
30
30
|
// Escaping ' and quoting the value with '
|
|
31
31
|
class SQLString {
|
|
32
32
|
public:
|
|
33
|
-
SQLString(const string &raw_string) : raw_string(raw_string) {
|
|
33
|
+
explicit SQLString(const string &raw_string) : raw_string(raw_string) {
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
public:
|
|
@@ -50,7 +50,7 @@ public:
|
|
|
50
50
|
}
|
|
51
51
|
template <class TARGET>
|
|
52
52
|
const TARGET &Cast() const {
|
|
53
|
-
|
|
53
|
+
DynamicCastCheck<TARGET>(this);
|
|
54
54
|
return reinterpret_cast<const TARGET &>(*this);
|
|
55
55
|
}
|
|
56
56
|
|
|
@@ -219,7 +219,7 @@ private:
|
|
|
219
219
|
};
|
|
220
220
|
|
|
221
221
|
struct IntegerLiteralTypeInfo : public ExtraTypeInfo {
|
|
222
|
-
IntegerLiteralTypeInfo(Value constant_value);
|
|
222
|
+
explicit IntegerLiteralTypeInfo(Value constant_value);
|
|
223
223
|
|
|
224
224
|
Value constant_value;
|
|
225
225
|
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
//===----------------------------------------------------------------------===//
|
|
2
|
+
// DuckDB
|
|
3
|
+
//
|
|
4
|
+
// duckdb/common/file_open_flags.hpp
|
|
5
|
+
//
|
|
6
|
+
//
|
|
7
|
+
//===----------------------------------------------------------------------===//
|
|
8
|
+
|
|
9
|
+
#pragma once
|
|
10
|
+
|
|
11
|
+
#include "duckdb/common/common.hpp"
|
|
12
|
+
#include "duckdb/common/enums/file_compression_type.hpp"
|
|
13
|
+
|
|
14
|
+
namespace duckdb {
|
|
15
|
+
|
|
16
|
+
enum class FileLockType : uint8_t { NO_LOCK = 0, READ_LOCK = 1, WRITE_LOCK = 2 };
|
|
17
|
+
|
|
18
|
+
class FileOpenFlags {
|
|
19
|
+
public:
|
|
20
|
+
static constexpr idx_t FILE_FLAGS_READ = idx_t(1 << 0);
|
|
21
|
+
static constexpr idx_t FILE_FLAGS_WRITE = idx_t(1 << 1);
|
|
22
|
+
static constexpr idx_t FILE_FLAGS_DIRECT_IO = idx_t(1 << 2);
|
|
23
|
+
static constexpr idx_t FILE_FLAGS_FILE_CREATE = idx_t(1 << 3);
|
|
24
|
+
static constexpr idx_t FILE_FLAGS_FILE_CREATE_NEW = idx_t(1 << 4);
|
|
25
|
+
static constexpr idx_t FILE_FLAGS_APPEND = idx_t(1 << 5);
|
|
26
|
+
static constexpr idx_t FILE_FLAGS_PRIVATE = idx_t(1 << 6);
|
|
27
|
+
static constexpr idx_t FILE_FLAGS_NULL_IF_NOT_EXISTS = idx_t(1 << 7);
|
|
28
|
+
static constexpr idx_t FILE_FLAGS_PARALLEL_ACCESS = idx_t(1 << 8);
|
|
29
|
+
|
|
30
|
+
public:
|
|
31
|
+
FileOpenFlags() = default;
|
|
32
|
+
constexpr FileOpenFlags(idx_t flags) : flags(flags) { // NOLINT: allow implicit conversion
|
|
33
|
+
}
|
|
34
|
+
constexpr FileOpenFlags(FileLockType lock) : lock(lock) { // NOLINT: allow implicit conversion
|
|
35
|
+
}
|
|
36
|
+
constexpr FileOpenFlags(FileCompressionType compression) // NOLINT: allow implicit conversion
|
|
37
|
+
: compression(compression) {
|
|
38
|
+
}
|
|
39
|
+
constexpr FileOpenFlags(idx_t flags, FileLockType lock, FileCompressionType compression)
|
|
40
|
+
: flags(flags), lock(lock), compression(compression) {
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
static constexpr FileLockType MergeLock(FileLockType a, FileLockType b) {
|
|
44
|
+
return a == FileLockType::NO_LOCK ? b : a;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
static constexpr FileCompressionType MergeCompression(FileCompressionType a, FileCompressionType b) {
|
|
48
|
+
return a == FileCompressionType::UNCOMPRESSED ? b : a;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
inline constexpr FileOpenFlags operator|(FileOpenFlags b) const {
|
|
52
|
+
return FileOpenFlags(flags | b.flags, MergeLock(lock, b.lock), MergeCompression(compression, b.compression));
|
|
53
|
+
}
|
|
54
|
+
inline FileOpenFlags &operator|=(FileOpenFlags b) {
|
|
55
|
+
flags |= b.flags;
|
|
56
|
+
lock = MergeLock(lock, b.lock);
|
|
57
|
+
compression = MergeCompression(compression, b.compression);
|
|
58
|
+
return *this;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
FileLockType Lock() {
|
|
62
|
+
return lock;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
FileCompressionType Compression() {
|
|
66
|
+
return compression;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
void SetCompression(FileCompressionType new_compression) {
|
|
70
|
+
compression = new_compression;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
void Verify();
|
|
74
|
+
|
|
75
|
+
inline bool OpenForReading() const {
|
|
76
|
+
return flags & FILE_FLAGS_READ;
|
|
77
|
+
}
|
|
78
|
+
inline bool OpenForWriting() const {
|
|
79
|
+
return flags & FILE_FLAGS_WRITE;
|
|
80
|
+
}
|
|
81
|
+
inline bool DirectIO() const {
|
|
82
|
+
return flags & FILE_FLAGS_DIRECT_IO;
|
|
83
|
+
}
|
|
84
|
+
inline bool CreateFileIfNotExists() const {
|
|
85
|
+
return flags & FILE_FLAGS_FILE_CREATE;
|
|
86
|
+
}
|
|
87
|
+
inline bool OverwriteExistingFile() const {
|
|
88
|
+
return flags & FILE_FLAGS_FILE_CREATE_NEW;
|
|
89
|
+
}
|
|
90
|
+
inline bool OpenForAppending() const {
|
|
91
|
+
return flags & FILE_FLAGS_APPEND;
|
|
92
|
+
}
|
|
93
|
+
inline bool CreatePrivateFile() const {
|
|
94
|
+
return flags & FILE_FLAGS_PRIVATE;
|
|
95
|
+
}
|
|
96
|
+
inline bool ReturnNullIfNotExists() const {
|
|
97
|
+
return flags & FILE_FLAGS_NULL_IF_NOT_EXISTS;
|
|
98
|
+
}
|
|
99
|
+
inline bool RequireParallelAccess() const {
|
|
100
|
+
return flags & FILE_FLAGS_PARALLEL_ACCESS;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
private:
|
|
104
|
+
idx_t flags = 0;
|
|
105
|
+
FileLockType lock = FileLockType::NO_LOCK;
|
|
106
|
+
FileCompressionType compression = FileCompressionType::UNCOMPRESSED;
|
|
107
|
+
};
|
|
108
|
+
|
|
109
|
+
class FileFlags {
|
|
110
|
+
public:
|
|
111
|
+
//! Open file with read access
|
|
112
|
+
static constexpr FileOpenFlags FILE_FLAGS_READ = FileOpenFlags(FileOpenFlags::FILE_FLAGS_READ);
|
|
113
|
+
//! Open file with write access
|
|
114
|
+
static constexpr FileOpenFlags FILE_FLAGS_WRITE = FileOpenFlags(FileOpenFlags::FILE_FLAGS_WRITE);
|
|
115
|
+
//! Use direct IO when reading/writing to the file
|
|
116
|
+
static constexpr FileOpenFlags FILE_FLAGS_DIRECT_IO = FileOpenFlags(FileOpenFlags::FILE_FLAGS_DIRECT_IO);
|
|
117
|
+
//! Create file if not exists, can only be used together with WRITE
|
|
118
|
+
static constexpr FileOpenFlags FILE_FLAGS_FILE_CREATE = FileOpenFlags(FileOpenFlags::FILE_FLAGS_FILE_CREATE);
|
|
119
|
+
//! Always create a new file. If a file exists, the file is truncated. Cannot be used together with CREATE.
|
|
120
|
+
static constexpr FileOpenFlags FILE_FLAGS_FILE_CREATE_NEW =
|
|
121
|
+
FileOpenFlags(FileOpenFlags::FILE_FLAGS_FILE_CREATE_NEW);
|
|
122
|
+
//! Open file in append mode
|
|
123
|
+
static constexpr FileOpenFlags FILE_FLAGS_APPEND = FileOpenFlags(FileOpenFlags::FILE_FLAGS_APPEND);
|
|
124
|
+
//! Open file with restrictive permissions (600 on linux/mac) can only be used when creating, throws if file exists
|
|
125
|
+
static constexpr FileOpenFlags FILE_FLAGS_PRIVATE = FileOpenFlags(FileOpenFlags::FILE_FLAGS_PRIVATE);
|
|
126
|
+
//! Return NULL if the file does not exist instead of throwing an error
|
|
127
|
+
static constexpr FileOpenFlags FILE_FLAGS_NULL_IF_NOT_EXISTS =
|
|
128
|
+
FileOpenFlags(FileOpenFlags::FILE_FLAGS_NULL_IF_NOT_EXISTS);
|
|
129
|
+
//! Multiple threads may perform reads and writes in parallel
|
|
130
|
+
static constexpr FileOpenFlags FILE_FLAGS_PARALLEL_ACCESS =
|
|
131
|
+
FileOpenFlags(FileOpenFlags::FILE_FLAGS_PARALLEL_ACCESS);
|
|
132
|
+
};
|
|
133
|
+
|
|
134
|
+
} // namespace duckdb
|
|
@@ -30,12 +30,15 @@ public:
|
|
|
30
30
|
|
|
31
31
|
virtual SettingLookupResult TryGetCurrentSetting(const string &key, Value &result, FileOpenerInfo &info);
|
|
32
32
|
virtual SettingLookupResult TryGetCurrentSetting(const string &key, Value &result) = 0;
|
|
33
|
-
virtual ClientContext
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
DUCKDB_API static
|
|
37
|
-
DUCKDB_API static
|
|
38
|
-
|
|
33
|
+
virtual optional_ptr<ClientContext> TryGetClientContext() = 0;
|
|
34
|
+
virtual optional_ptr<DatabaseInstance> TryGetDatabase() = 0;
|
|
35
|
+
|
|
36
|
+
DUCKDB_API static optional_ptr<ClientContext> TryGetClientContext(optional_ptr<FileOpener> opener);
|
|
37
|
+
DUCKDB_API static optional_ptr<DatabaseInstance> TryGetDatabase(optional_ptr<FileOpener> opener);
|
|
38
|
+
DUCKDB_API static SettingLookupResult TryGetCurrentSetting(optional_ptr<FileOpener> opener, const string &key,
|
|
39
|
+
Value &result);
|
|
40
|
+
DUCKDB_API static SettingLookupResult TryGetCurrentSetting(optional_ptr<FileOpener> opener, const string &key,
|
|
41
|
+
Value &result, FileOpenerInfo &info);
|
|
39
42
|
};
|
|
40
43
|
|
|
41
44
|
} // namespace duckdb
|
|
@@ -16,6 +16,8 @@
|
|
|
16
16
|
#include "duckdb/common/vector.hpp"
|
|
17
17
|
#include "duckdb/common/enums/file_glob_options.hpp"
|
|
18
18
|
#include "duckdb/common/optional_ptr.hpp"
|
|
19
|
+
#include "duckdb/common/error_data.hpp"
|
|
20
|
+
#include "duckdb/common/file_open_flags.hpp"
|
|
19
21
|
#include <functional>
|
|
20
22
|
|
|
21
23
|
#undef CreateDirectory
|
|
@@ -64,6 +66,7 @@ public:
|
|
|
64
66
|
DUCKDB_API void Sync();
|
|
65
67
|
DUCKDB_API void Truncate(int64_t new_size);
|
|
66
68
|
DUCKDB_API string ReadLine();
|
|
69
|
+
DUCKDB_API bool Trim(idx_t offset_bytes, idx_t length_bytes);
|
|
67
70
|
|
|
68
71
|
DUCKDB_API bool CanSeek();
|
|
69
72
|
DUCKDB_API bool IsPipe();
|
|
@@ -85,7 +88,7 @@ public:
|
|
|
85
88
|
}
|
|
86
89
|
template <class TARGET>
|
|
87
90
|
const TARGET &Cast() const {
|
|
88
|
-
|
|
91
|
+
DynamicCastCheck<TARGET>(this);
|
|
89
92
|
return reinterpret_cast<const TARGET &>(*this);
|
|
90
93
|
}
|
|
91
94
|
|
|
@@ -94,41 +97,17 @@ public:
|
|
|
94
97
|
string path;
|
|
95
98
|
};
|
|
96
99
|
|
|
97
|
-
enum class FileLockType : uint8_t { NO_LOCK = 0, READ_LOCK = 1, WRITE_LOCK = 2 };
|
|
98
|
-
|
|
99
|
-
class FileFlags {
|
|
100
|
-
public:
|
|
101
|
-
//! Open file with read access
|
|
102
|
-
static constexpr uint8_t FILE_FLAGS_READ = 1 << 0;
|
|
103
|
-
//! Open file with write access
|
|
104
|
-
static constexpr uint8_t FILE_FLAGS_WRITE = 1 << 1;
|
|
105
|
-
//! Use direct IO when reading/writing to the file
|
|
106
|
-
static constexpr uint8_t FILE_FLAGS_DIRECT_IO = 1 << 2;
|
|
107
|
-
//! Create file if not exists, can only be used together with WRITE
|
|
108
|
-
static constexpr uint8_t FILE_FLAGS_FILE_CREATE = 1 << 3;
|
|
109
|
-
//! Always create a new file. If a file exists, the file is truncated. Cannot be used together with CREATE.
|
|
110
|
-
static constexpr uint8_t FILE_FLAGS_FILE_CREATE_NEW = 1 << 4;
|
|
111
|
-
//! Open file in append mode
|
|
112
|
-
static constexpr uint8_t FILE_FLAGS_APPEND = 1 << 5;
|
|
113
|
-
//! Open file with restrictive permissions (600 on linux/mac) can only be used when creating, throws if file exists
|
|
114
|
-
static constexpr uint8_t FILE_FLAGS_PRIVATE = 1 << 6;
|
|
115
|
-
};
|
|
116
|
-
|
|
117
100
|
class FileSystem {
|
|
118
101
|
public:
|
|
119
102
|
DUCKDB_API virtual ~FileSystem();
|
|
120
103
|
|
|
121
104
|
public:
|
|
122
|
-
DUCKDB_API static constexpr FileLockType DEFAULT_LOCK = FileLockType::NO_LOCK;
|
|
123
|
-
DUCKDB_API static constexpr FileCompressionType DEFAULT_COMPRESSION = FileCompressionType::UNCOMPRESSED;
|
|
124
105
|
DUCKDB_API static FileSystem &GetFileSystem(ClientContext &context);
|
|
125
106
|
DUCKDB_API static FileSystem &GetFileSystem(DatabaseInstance &db);
|
|
126
107
|
DUCKDB_API static FileSystem &Get(AttachedDatabase &db);
|
|
127
108
|
|
|
128
|
-
DUCKDB_API virtual unique_ptr<FileHandle> OpenFile(const string &path,
|
|
129
|
-
|
|
130
|
-
FileCompressionType compression = DEFAULT_COMPRESSION,
|
|
131
|
-
FileOpener *opener = nullptr);
|
|
109
|
+
DUCKDB_API virtual unique_ptr<FileHandle> OpenFile(const string &path, FileOpenFlags flags,
|
|
110
|
+
optional_ptr<FileOpener> opener = nullptr);
|
|
132
111
|
|
|
133
112
|
//! Read exactly nr_bytes from the specified location in the file. Fails if nr_bytes could not be read. This is
|
|
134
113
|
//! equivalent to calling SetFilePointer(location) followed by calling Read().
|
|
@@ -141,23 +120,27 @@ public:
|
|
|
141
120
|
DUCKDB_API virtual int64_t Read(FileHandle &handle, void *buffer, int64_t nr_bytes);
|
|
142
121
|
//! Write nr_bytes from the buffer into the file, moving the file pointer forward by nr_bytes.
|
|
143
122
|
DUCKDB_API virtual int64_t Write(FileHandle &handle, void *buffer, int64_t nr_bytes);
|
|
123
|
+
//! Excise a range of the file. The OS can drop pages from the page-cache, and the file-system is free to deallocate
|
|
124
|
+
//! this range (sparse file support). Reads to the range will succeed but will return undefined data.
|
|
125
|
+
DUCKDB_API virtual bool Trim(FileHandle &handle, idx_t offset_bytes, idx_t length_bytes);
|
|
144
126
|
|
|
145
127
|
//! Returns the file size of a file handle, returns -1 on error
|
|
146
128
|
DUCKDB_API virtual int64_t GetFileSize(FileHandle &handle);
|
|
147
129
|
//! Returns the file last modified time of a file handle, returns timespec with zero on all attributes on error
|
|
148
130
|
DUCKDB_API virtual time_t GetLastModifiedTime(FileHandle &handle);
|
|
149
|
-
//! Returns the file
|
|
131
|
+
//! Returns the file type of the attached handle
|
|
150
132
|
DUCKDB_API virtual FileType GetFileType(FileHandle &handle);
|
|
151
133
|
//! Truncate a file to a maximum size of new_size, new_size should be smaller than or equal to the current size of
|
|
152
134
|
//! the file
|
|
153
135
|
DUCKDB_API virtual void Truncate(FileHandle &handle, int64_t new_size);
|
|
154
136
|
|
|
155
137
|
//! Check if a directory exists
|
|
156
|
-
DUCKDB_API virtual bool DirectoryExists(const string &directory);
|
|
138
|
+
DUCKDB_API virtual bool DirectoryExists(const string &directory, optional_ptr<FileOpener> opener = nullptr);
|
|
157
139
|
//! Create a directory if it does not exist
|
|
158
|
-
DUCKDB_API virtual void CreateDirectory(const string &directory);
|
|
140
|
+
DUCKDB_API virtual void CreateDirectory(const string &directory, optional_ptr<FileOpener> opener = nullptr);
|
|
159
141
|
//! Recursively remove a directory and all files in it
|
|
160
|
-
DUCKDB_API virtual void RemoveDirectory(const string &directory);
|
|
142
|
+
DUCKDB_API virtual void RemoveDirectory(const string &directory, optional_ptr<FileOpener> opener = nullptr);
|
|
143
|
+
|
|
161
144
|
//! List files in a directory, invoking the callback method for each one with (filename, is_dir)
|
|
162
145
|
DUCKDB_API virtual bool ListFiles(const string &directory,
|
|
163
146
|
const std::function<void(const string &, bool)> &callback,
|
|
@@ -165,13 +148,14 @@ public:
|
|
|
165
148
|
|
|
166
149
|
//! Move a file from source path to the target, StorageManager relies on this being an atomic action for ACID
|
|
167
150
|
//! properties
|
|
168
|
-
DUCKDB_API virtual void MoveFile(const string &source, const string &target
|
|
151
|
+
DUCKDB_API virtual void MoveFile(const string &source, const string &target,
|
|
152
|
+
optional_ptr<FileOpener> opener = nullptr);
|
|
169
153
|
//! Check if a file exists
|
|
170
|
-
DUCKDB_API virtual bool FileExists(const string &filename);
|
|
154
|
+
DUCKDB_API virtual bool FileExists(const string &filename, optional_ptr<FileOpener> opener = nullptr);
|
|
171
155
|
//! Check if path is pipe
|
|
172
|
-
DUCKDB_API virtual bool IsPipe(const string &filename);
|
|
156
|
+
DUCKDB_API virtual bool IsPipe(const string &filename, optional_ptr<FileOpener> opener = nullptr);
|
|
173
157
|
//! Remove a file from disk
|
|
174
|
-
DUCKDB_API virtual void RemoveFile(const string &filename);
|
|
158
|
+
DUCKDB_API virtual void RemoveFile(const string &filename, optional_ptr<FileOpener> opener = nullptr);
|
|
175
159
|
//! Sync a file handle to disk
|
|
176
160
|
DUCKDB_API virtual void FileSync(FileHandle &handle);
|
|
177
161
|
//! Sets the working directory
|
|
@@ -187,7 +171,7 @@ public:
|
|
|
187
171
|
//! Expands a given path, including e.g. expanding the home directory of the user
|
|
188
172
|
DUCKDB_API virtual string ExpandPath(const string &path);
|
|
189
173
|
//! Returns the system-available memory in bytes. Returns DConstants::INVALID_INDEX if the system function fails.
|
|
190
|
-
DUCKDB_API static
|
|
174
|
+
DUCKDB_API static optional_idx GetAvailableMemory();
|
|
191
175
|
//! Path separator for path
|
|
192
176
|
DUCKDB_API virtual string PathSeparator(const string &path);
|
|
193
177
|
//! Checks if path is starts with separator (i.e., '/' on UNIX '\\' on Windows)
|
|
@@ -233,6 +217,8 @@ public:
|
|
|
233
217
|
DUCKDB_API virtual void Reset(FileHandle &handle);
|
|
234
218
|
DUCKDB_API virtual idx_t SeekPosition(FileHandle &handle);
|
|
235
219
|
|
|
220
|
+
//! If FS was manually set by the user
|
|
221
|
+
DUCKDB_API virtual bool IsManuallySet();
|
|
236
222
|
//! Whether or not we can seek into the file
|
|
237
223
|
DUCKDB_API virtual bool CanSeek();
|
|
238
224
|
//! Whether or not the FS handles plain files on disk. This is relevant for certain optimizations, as random reads
|
|
@@ -251,6 +237,19 @@ public:
|
|
|
251
237
|
DUCKDB_API static bool IsRemoteFile(const string &path);
|
|
252
238
|
|
|
253
239
|
DUCKDB_API virtual void SetDisabledFileSystems(const vector<string> &names);
|
|
240
|
+
|
|
241
|
+
public:
|
|
242
|
+
template <class TARGET>
|
|
243
|
+
TARGET &Cast() {
|
|
244
|
+
DynamicCastCheck<TARGET>(this);
|
|
245
|
+
return reinterpret_cast<TARGET &>(*this);
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
template <class TARGET>
|
|
249
|
+
const TARGET &Cast() const {
|
|
250
|
+
DynamicCastCheck<TARGET>(this);
|
|
251
|
+
return reinterpret_cast<const TARGET &>(*this);
|
|
252
|
+
}
|
|
254
253
|
};
|
|
255
254
|
|
|
256
255
|
} // namespace duckdb
|
|
@@ -20,9 +20,7 @@ class FilenamePattern {
|
|
|
20
20
|
friend Deserializer;
|
|
21
21
|
|
|
22
22
|
public:
|
|
23
|
-
FilenamePattern() :
|
|
24
|
-
}
|
|
25
|
-
~FilenamePattern() {
|
|
23
|
+
FilenamePattern() : base("data_"), pos(base.length()), uuid(false) {
|
|
26
24
|
}
|
|
27
25
|
|
|
28
26
|
public:
|
|
@@ -33,9 +31,9 @@ public:
|
|
|
33
31
|
static FilenamePattern Deserialize(Deserializer &deserializer);
|
|
34
32
|
|
|
35
33
|
private:
|
|
36
|
-
string
|
|
37
|
-
idx_t
|
|
38
|
-
bool
|
|
34
|
+
string base;
|
|
35
|
+
idx_t pos;
|
|
36
|
+
bool uuid;
|
|
39
37
|
};
|
|
40
38
|
|
|
41
39
|
} // namespace duckdb
|