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
|
@@ -15,13 +15,13 @@
|
|
|
15
15
|
namespace duckdb {
|
|
16
16
|
|
|
17
17
|
template <typename T>
|
|
18
|
-
struct fixed_size_map_iterator_t;
|
|
18
|
+
struct fixed_size_map_iterator_t; // NOLINT: match stl case
|
|
19
19
|
|
|
20
20
|
template <typename T>
|
|
21
|
-
struct const_fixed_size_map_iterator_t;
|
|
21
|
+
struct const_fixed_size_map_iterator_t; // NOLINT: match stl case
|
|
22
22
|
|
|
23
23
|
template <typename T>
|
|
24
|
-
class fixed_size_map_t {
|
|
24
|
+
class fixed_size_map_t { // NOLINT: match stl case
|
|
25
25
|
friend struct fixed_size_map_iterator_t<T>;
|
|
26
26
|
friend struct const_fixed_size_map_iterator_t<T>;
|
|
27
27
|
|
|
@@ -34,18 +34,18 @@ public:
|
|
|
34
34
|
resize(capacity);
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
idx_t size() const {
|
|
37
|
+
idx_t size() const { // NOLINT: match stl case
|
|
38
38
|
return count;
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
-
void resize(idx_t capacity_p) {
|
|
41
|
+
void resize(idx_t capacity_p) { // NOLINT: match stl case
|
|
42
42
|
capacity = capacity_p;
|
|
43
43
|
occupied = ValidityMask(capacity);
|
|
44
44
|
values = make_unsafe_uniq_array<T>(capacity + 1);
|
|
45
45
|
clear();
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
-
void clear() {
|
|
48
|
+
void clear() { // NOLINT: match stl case
|
|
49
49
|
count = 0;
|
|
50
50
|
occupied.SetAllInvalid(capacity);
|
|
51
51
|
}
|
|
@@ -62,23 +62,23 @@ public:
|
|
|
62
62
|
return values[key];
|
|
63
63
|
}
|
|
64
64
|
|
|
65
|
-
fixed_size_map_iterator_t<T> begin() {
|
|
65
|
+
fixed_size_map_iterator_t<T> begin() { // NOLINT: match stl case
|
|
66
66
|
return fixed_size_map_iterator_t<T>(begin_internal(), *this);
|
|
67
67
|
}
|
|
68
68
|
|
|
69
|
-
const_fixed_size_map_iterator_t<T> begin() const {
|
|
69
|
+
const_fixed_size_map_iterator_t<T> begin() const { // NOLINT: match stl case
|
|
70
70
|
return const_fixed_size_map_iterator_t<T>(begin_internal(), *this);
|
|
71
71
|
}
|
|
72
72
|
|
|
73
|
-
fixed_size_map_iterator_t<T> end() {
|
|
73
|
+
fixed_size_map_iterator_t<T> end() { // NOLINT: match stl case
|
|
74
74
|
return fixed_size_map_iterator_t<T>(capacity, *this);
|
|
75
75
|
}
|
|
76
76
|
|
|
77
|
-
const_fixed_size_map_iterator_t<T> end() const {
|
|
77
|
+
const_fixed_size_map_iterator_t<T> end() const { // NOLINT: match stl case
|
|
78
78
|
return const_fixed_size_map_iterator_t<T>(capacity, *this);
|
|
79
79
|
}
|
|
80
80
|
|
|
81
|
-
fixed_size_map_iterator_t<T> find(const idx_t &index) {
|
|
81
|
+
fixed_size_map_iterator_t<T> find(const idx_t &index) { // NOLINT: match stl case
|
|
82
82
|
if (occupied.RowIsValid(index)) {
|
|
83
83
|
return fixed_size_map_iterator_t<T>(index, *this);
|
|
84
84
|
} else {
|
|
@@ -86,7 +86,7 @@ public:
|
|
|
86
86
|
}
|
|
87
87
|
}
|
|
88
88
|
|
|
89
|
-
const_fixed_size_map_iterator_t<T> find(const idx_t &index) const {
|
|
89
|
+
const_fixed_size_map_iterator_t<T> find(const idx_t &index) const { // NOLINT: match stl case
|
|
90
90
|
if (occupied.RowIsValid(index)) {
|
|
91
91
|
return const_fixed_size_map_iterator_t<T>(index, *this);
|
|
92
92
|
} else {
|
|
@@ -95,7 +95,7 @@ public:
|
|
|
95
95
|
}
|
|
96
96
|
|
|
97
97
|
private:
|
|
98
|
-
idx_t begin_internal() const {
|
|
98
|
+
idx_t begin_internal() const { // NOLINT: match stl case
|
|
99
99
|
idx_t index;
|
|
100
100
|
for (index = 0; index < capacity; index++) {
|
|
101
101
|
if (occupied.RowIsValid(index)) {
|
|
@@ -39,68 +39,62 @@ namespace duckdb {
|
|
|
39
39
|
|
|
40
40
|
template <class... T>
|
|
41
41
|
struct AlwaysFalse {
|
|
42
|
-
static constexpr bool
|
|
42
|
+
static constexpr bool VALUE = false;
|
|
43
43
|
};
|
|
44
44
|
|
|
45
45
|
template<typename T>
|
|
46
46
|
using reference = std::reference_wrapper<T>;
|
|
47
47
|
|
|
48
|
-
template<class
|
|
49
|
-
struct
|
|
48
|
+
template<class DATA_TYPE, bool SAFE = true>
|
|
49
|
+
struct TemplatedUniqueIf
|
|
50
50
|
{
|
|
51
|
-
typedef unique_ptr<
|
|
51
|
+
typedef unique_ptr<DATA_TYPE, std::default_delete<DATA_TYPE>, SAFE> templated_unique_single_t;
|
|
52
52
|
};
|
|
53
53
|
|
|
54
|
-
template<class
|
|
55
|
-
struct
|
|
54
|
+
template<class DATA_TYPE, size_t N>
|
|
55
|
+
struct TemplatedUniqueIf<DATA_TYPE[N]>
|
|
56
56
|
{
|
|
57
|
-
typedef
|
|
57
|
+
typedef void TemplatedUniqueArrayKnownBound; // NOLINT: mimic std style
|
|
58
58
|
};
|
|
59
59
|
|
|
60
|
-
template<class
|
|
61
|
-
struct __unique_if<_Tp[_Np]>
|
|
62
|
-
{
|
|
63
|
-
typedef void __unique_array_known_bound;
|
|
64
|
-
};
|
|
65
|
-
|
|
66
|
-
template<class _Tp, class... _Args>
|
|
60
|
+
template<class DATA_TYPE, class... ARGS>
|
|
67
61
|
inline
|
|
68
|
-
typename
|
|
69
|
-
make_uniq(
|
|
62
|
+
typename TemplatedUniqueIf<DATA_TYPE, true>::templated_unique_single_t
|
|
63
|
+
make_uniq(ARGS&&... args) // NOLINT: mimic std style
|
|
70
64
|
{
|
|
71
|
-
return unique_ptr<
|
|
65
|
+
return unique_ptr<DATA_TYPE, std::default_delete<DATA_TYPE>, true>(new DATA_TYPE(std::forward<ARGS>(args)...));
|
|
72
66
|
}
|
|
73
67
|
|
|
74
|
-
template<class
|
|
68
|
+
template<class DATA_TYPE, class... ARGS>
|
|
75
69
|
inline
|
|
76
|
-
typename
|
|
77
|
-
make_unsafe_uniq(
|
|
70
|
+
typename TemplatedUniqueIf<DATA_TYPE, false>::templated_unique_single_t
|
|
71
|
+
make_unsafe_uniq(ARGS&&... args) // NOLINT: mimic std style
|
|
78
72
|
{
|
|
79
|
-
return unique_ptr<
|
|
73
|
+
return unique_ptr<DATA_TYPE, std::default_delete<DATA_TYPE>, false>(new DATA_TYPE(std::forward<ARGS>(args)...));
|
|
80
74
|
}
|
|
81
75
|
|
|
82
|
-
template<class
|
|
83
|
-
inline unique_ptr<
|
|
84
|
-
make_uniq_array(size_t
|
|
76
|
+
template<class DATA_TYPE>
|
|
77
|
+
inline unique_ptr<DATA_TYPE[], std::default_delete<DATA_TYPE>, true>
|
|
78
|
+
make_uniq_array(size_t n) // NOLINT: mimic std style
|
|
85
79
|
{
|
|
86
|
-
return unique_ptr<
|
|
80
|
+
return unique_ptr<DATA_TYPE[], std::default_delete<DATA_TYPE>, true>(new DATA_TYPE[n]());
|
|
87
81
|
}
|
|
88
82
|
|
|
89
|
-
template<class
|
|
90
|
-
inline unique_ptr<
|
|
91
|
-
make_unsafe_uniq_array(size_t
|
|
83
|
+
template<class DATA_TYPE>
|
|
84
|
+
inline unique_ptr<DATA_TYPE[], std::default_delete<DATA_TYPE>, false>
|
|
85
|
+
make_unsafe_uniq_array(size_t n) // NOLINT: mimic std style
|
|
92
86
|
{
|
|
93
|
-
return unique_ptr<
|
|
87
|
+
return unique_ptr<DATA_TYPE[], std::default_delete<DATA_TYPE>, false>(new DATA_TYPE[n]());
|
|
94
88
|
}
|
|
95
89
|
|
|
96
|
-
template<class
|
|
97
|
-
typename
|
|
98
|
-
make_uniq(
|
|
90
|
+
template<class DATA_TYPE, class... ARGS>
|
|
91
|
+
typename TemplatedUniqueIf<DATA_TYPE>::TemplatedUniqueArrayKnownBound
|
|
92
|
+
make_uniq(ARGS&&...) = delete; // NOLINT: mimic std style
|
|
99
93
|
|
|
100
94
|
|
|
101
|
-
template <typename S, typename T, typename...
|
|
102
|
-
unique_ptr<S> make_uniq_base(
|
|
103
|
-
return unique_ptr<S>(new T(std::forward<
|
|
95
|
+
template <typename S, typename T, typename... ARGS>
|
|
96
|
+
unique_ptr<S> make_uniq_base(ARGS &&... args) { // NOLINT: mimic std style
|
|
97
|
+
return unique_ptr<S>(new T(std::forward<ARGS>(args)...));
|
|
104
98
|
}
|
|
105
99
|
|
|
106
100
|
#ifdef DUCKDB_ENABLE_DEPRECATED_API
|
|
@@ -111,7 +105,7 @@ unique_ptr<S> make_unique_base(Args &&... args) {
|
|
|
111
105
|
#endif // DUCKDB_ENABLE_DEPRECATED_API
|
|
112
106
|
|
|
113
107
|
template <typename T, typename S>
|
|
114
|
-
unique_ptr<S> unique_ptr_cast(unique_ptr<T> src) {
|
|
108
|
+
unique_ptr<S> unique_ptr_cast(unique_ptr<T> src) { // NOLINT: mimic std style
|
|
115
109
|
return unique_ptr<S>(static_cast<S *>(src.release()));
|
|
116
110
|
}
|
|
117
111
|
|
|
@@ -137,12 +131,12 @@ typename std::remove_reference<T>::type&& move(T&& t) noexcept {
|
|
|
137
131
|
}
|
|
138
132
|
#endif
|
|
139
133
|
|
|
140
|
-
template <class T, class...
|
|
141
|
-
static duckdb::unique_ptr<T> make_unique(
|
|
134
|
+
template <class T, class... ARGS>
|
|
135
|
+
static duckdb::unique_ptr<T> make_unique(ARGS&&... __args) { // NOLINT: mimic std style
|
|
142
136
|
#ifndef DUCKDB_ENABLE_DEPRECATED_API
|
|
143
137
|
static_assert(sizeof(T) == 0, "Use make_uniq instead of make_unique!");
|
|
144
138
|
#endif // DUCKDB_ENABLE_DEPRECATED_API
|
|
145
|
-
return unique_ptr<T>(new T(std::forward<
|
|
139
|
+
return unique_ptr<T>(new T(std::forward<ARGS>(__args)...));
|
|
146
140
|
}
|
|
147
141
|
|
|
148
142
|
template <typename T>
|
|
@@ -184,13 +178,13 @@ T SignValue(T a) {
|
|
|
184
178
|
template <typename T>
|
|
185
179
|
const T Load(const_data_ptr_t ptr) {
|
|
186
180
|
T ret;
|
|
187
|
-
memcpy(&ret, ptr, sizeof(ret));
|
|
181
|
+
memcpy(&ret, ptr, sizeof(ret)); // NOLINT
|
|
188
182
|
return ret;
|
|
189
183
|
}
|
|
190
184
|
|
|
191
185
|
template <typename T>
|
|
192
186
|
void Store(const T &val, data_ptr_t ptr) {
|
|
193
|
-
memcpy(ptr, (void *)&val, sizeof(val));
|
|
187
|
+
memcpy(ptr, (void *)&val, sizeof(val)); // NOLINT
|
|
194
188
|
}
|
|
195
189
|
|
|
196
190
|
//! This assigns a shared pointer, but ONLY assigns if "target" is not equal to "source"
|
|
@@ -211,19 +205,20 @@ using const_reference = std::reference_wrapper<const T>;
|
|
|
211
205
|
|
|
212
206
|
//! Returns whether or not two reference wrappers refer to the same object
|
|
213
207
|
template<class T>
|
|
214
|
-
bool RefersToSameObject(const reference<T> &
|
|
215
|
-
return &
|
|
208
|
+
bool RefersToSameObject(const reference<T> &a, const reference<T> &b) {
|
|
209
|
+
return &a.get() == &b.get();
|
|
216
210
|
}
|
|
217
211
|
|
|
218
212
|
template<class T>
|
|
219
|
-
bool RefersToSameObject(const T &
|
|
220
|
-
return &
|
|
213
|
+
bool RefersToSameObject(const T &a, const T &b) {
|
|
214
|
+
return &a == &b;
|
|
221
215
|
}
|
|
222
216
|
|
|
223
217
|
template<class T, class SRC>
|
|
224
|
-
void DynamicCastCheck(SRC *source) {
|
|
218
|
+
void DynamicCastCheck(const SRC *source) {
|
|
225
219
|
#ifndef __APPLE__
|
|
226
|
-
|
|
220
|
+
// Actual check is on the fact that dynamic_cast and reinterpret_cast are equivalent
|
|
221
|
+
D_ASSERT(reinterpret_cast<const T *>(source) == dynamic_cast<const T *>(source));
|
|
227
222
|
#endif
|
|
228
223
|
}
|
|
229
224
|
|
|
@@ -84,7 +84,7 @@ public:
|
|
|
84
84
|
shared_ptr<CachedFile> &GetCachedFile(const string &path);
|
|
85
85
|
//! Helper functions to get the HTTP state
|
|
86
86
|
static shared_ptr<HTTPState> TryGetState(ClientContext &context, bool create_on_missing = true);
|
|
87
|
-
static shared_ptr<HTTPState> TryGetState(FileOpener
|
|
87
|
+
static shared_ptr<HTTPState> TryGetState(optional_ptr<FileOpener> opener, bool create_on_missing = true);
|
|
88
88
|
|
|
89
89
|
bool IsEmpty() {
|
|
90
90
|
return head_count == 0 && get_count == 0 && put_count == 0 && post_count == 0 && total_bytes_received == 0 &&
|
|
@@ -8,9 +8,9 @@
|
|
|
8
8
|
namespace duckdb {
|
|
9
9
|
|
|
10
10
|
// Forward declaration to allow conversion between hugeint and uhugeint
|
|
11
|
-
struct uhugeint_t;
|
|
11
|
+
struct uhugeint_t; // NOLINT: use numeric casing
|
|
12
12
|
|
|
13
|
-
struct hugeint_t {
|
|
13
|
+
struct hugeint_t { // NOLINT: use numeric casing
|
|
14
14
|
public:
|
|
15
15
|
uint64_t lower;
|
|
16
16
|
int64_t upper;
|
|
@@ -18,7 +18,7 @@ namespace duckdb {
|
|
|
18
18
|
template <class T, class INDEX_TYPE>
|
|
19
19
|
class IndexVector {
|
|
20
20
|
public:
|
|
21
|
-
void push_back(T element) {
|
|
21
|
+
void push_back(T element) { // NOLINT: match stl API
|
|
22
22
|
internal_vector.push_back(std::move(element));
|
|
23
23
|
}
|
|
24
24
|
|
|
@@ -30,34 +30,34 @@ public:
|
|
|
30
30
|
return internal_vector[idx.index];
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
idx_t size() const {
|
|
33
|
+
idx_t size() const { // NOLINT: match stl API
|
|
34
34
|
return internal_vector.size();
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
bool empty() const {
|
|
37
|
+
bool empty() const { // NOLINT: match stl API
|
|
38
38
|
return internal_vector.empty();
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
-
void reserve(idx_t size) {
|
|
41
|
+
void reserve(idx_t size) { // NOLINT: match stl API
|
|
42
42
|
internal_vector.reserve(size);
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
-
typename vector<T>::iterator begin() {
|
|
45
|
+
typename vector<T>::iterator begin() { // NOLINT: match stl API
|
|
46
46
|
return internal_vector.begin();
|
|
47
47
|
}
|
|
48
|
-
typename vector<T>::iterator end() {
|
|
48
|
+
typename vector<T>::iterator end() { // NOLINT: match stl API
|
|
49
49
|
return internal_vector.end();
|
|
50
50
|
}
|
|
51
|
-
typename vector<T>::const_iterator cbegin() {
|
|
51
|
+
typename vector<T>::const_iterator cbegin() { // NOLINT: match stl API
|
|
52
52
|
return internal_vector.cbegin();
|
|
53
53
|
}
|
|
54
|
-
typename vector<T>::const_iterator cend() {
|
|
54
|
+
typename vector<T>::const_iterator cend() { // NOLINT: match stl API
|
|
55
55
|
return internal_vector.cend();
|
|
56
56
|
}
|
|
57
|
-
typename vector<T>::const_iterator begin() const {
|
|
57
|
+
typename vector<T>::const_iterator begin() const { // NOLINT: match stl API
|
|
58
58
|
return internal_vector.begin();
|
|
59
59
|
}
|
|
60
|
-
typename vector<T>::const_iterator end() const {
|
|
60
|
+
typename vector<T>::const_iterator end() const { // NOLINT: match stl API
|
|
61
61
|
return internal_vector.end();
|
|
62
62
|
}
|
|
63
63
|
|
|
@@ -15,9 +15,8 @@ namespace duckdb {
|
|
|
15
15
|
|
|
16
16
|
class LocalFileSystem : public FileSystem {
|
|
17
17
|
public:
|
|
18
|
-
unique_ptr<FileHandle> OpenFile(const string &path,
|
|
19
|
-
|
|
20
|
-
FileOpener *opener = nullptr) override;
|
|
18
|
+
unique_ptr<FileHandle> OpenFile(const string &path, FileOpenFlags flags,
|
|
19
|
+
optional_ptr<FileOpener> opener = nullptr) override;
|
|
21
20
|
|
|
22
21
|
//! Read exactly nr_bytes from the specified location in the file. Fails if nr_bytes could not be read. This is
|
|
23
22
|
//! equivalent to calling SetFilePointer(location) followed by calling Read().
|
|
@@ -30,6 +29,10 @@ public:
|
|
|
30
29
|
int64_t Read(FileHandle &handle, void *buffer, int64_t nr_bytes) override;
|
|
31
30
|
//! Write nr_bytes from the buffer into the file, moving the file pointer forward by nr_bytes.
|
|
32
31
|
int64_t Write(FileHandle &handle, void *buffer, int64_t nr_bytes) override;
|
|
32
|
+
//! Excise a range of the file. The file-system is free to deallocate this
|
|
33
|
+
//! range (sparse file support). Reads to the range will succeed but will return
|
|
34
|
+
//! undefined data.
|
|
35
|
+
bool Trim(FileHandle &handle, idx_t offset_bytes, idx_t length_bytes) override;
|
|
33
36
|
|
|
34
37
|
//! Returns the file size of a file handle, returns -1 on error
|
|
35
38
|
int64_t GetFileSize(FileHandle &handle) override;
|
|
@@ -42,24 +45,24 @@ public:
|
|
|
42
45
|
void Truncate(FileHandle &handle, int64_t new_size) override;
|
|
43
46
|
|
|
44
47
|
//! Check if a directory exists
|
|
45
|
-
bool DirectoryExists(const string &directory) override;
|
|
48
|
+
bool DirectoryExists(const string &directory, optional_ptr<FileOpener> opener = nullptr) override;
|
|
46
49
|
//! Create a directory if it does not exist
|
|
47
|
-
void CreateDirectory(const string &directory) override;
|
|
50
|
+
void CreateDirectory(const string &directory, optional_ptr<FileOpener> opener = nullptr) override;
|
|
48
51
|
//! Recursively remove a directory and all files in it
|
|
49
|
-
void RemoveDirectory(const string &directory) override;
|
|
52
|
+
void RemoveDirectory(const string &directory, optional_ptr<FileOpener> opener = nullptr) override;
|
|
50
53
|
//! List files in a directory, invoking the callback method for each one with (filename, is_dir)
|
|
51
54
|
bool ListFiles(const string &directory, const std::function<void(const string &, bool)> &callback,
|
|
52
55
|
FileOpener *opener = nullptr) override;
|
|
53
56
|
//! Move a file from source path to the target, StorageManager relies on this being an atomic action for ACID
|
|
54
57
|
//! properties
|
|
55
|
-
void MoveFile(const string &source, const string &target) override;
|
|
58
|
+
void MoveFile(const string &source, const string &target, optional_ptr<FileOpener> opener = nullptr) override;
|
|
56
59
|
//! Check if a file exists
|
|
57
|
-
bool FileExists(const string &filename) override;
|
|
60
|
+
bool FileExists(const string &filename, optional_ptr<FileOpener> opener = nullptr) override;
|
|
58
61
|
|
|
59
62
|
//! Check if path is a pipe
|
|
60
|
-
bool IsPipe(const string &filename) override;
|
|
63
|
+
bool IsPipe(const string &filename, optional_ptr<FileOpener> opener = nullptr) override;
|
|
61
64
|
//! Remove a file from disk
|
|
62
|
-
void RemoveFile(const string &filename) override;
|
|
65
|
+
void RemoveFile(const string &filename, optional_ptr<FileOpener> opener = nullptr) override;
|
|
63
66
|
//! Sync a file handle to disk
|
|
64
67
|
void FileSync(FileHandle &handle) override;
|
|
65
68
|
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
namespace duckdb {
|
|
4
4
|
|
|
5
|
-
template <bool
|
|
5
|
+
template <bool IS_ENABLED>
|
|
6
6
|
struct MemorySafety {
|
|
7
7
|
#ifdef DEBUG
|
|
8
8
|
// In DEBUG mode safety is always on
|
|
9
|
-
static constexpr bool
|
|
9
|
+
static constexpr bool ENABLED = true;
|
|
10
10
|
#else
|
|
11
|
-
static constexpr bool
|
|
11
|
+
static constexpr bool ENABLED = IS_ENABLED;
|
|
12
12
|
#endif
|
|
13
13
|
};
|
|
14
14
|
|
|
@@ -29,7 +29,7 @@ struct MultiFileReaderOptions {
|
|
|
29
29
|
DUCKDB_API void AddBatchInfo(BindInfo &bind_info) const;
|
|
30
30
|
DUCKDB_API void AutoDetectHivePartitioning(const vector<string> &files, ClientContext &context);
|
|
31
31
|
DUCKDB_API static bool AutoDetectHivePartitioningInternal(const vector<string> &files, ClientContext &context);
|
|
32
|
-
DUCKDB_API void AutoDetectHiveTypesInternal(const string &file, ClientContext &context);
|
|
32
|
+
DUCKDB_API void AutoDetectHiveTypesInternal(const vector<string> &file, ClientContext &context);
|
|
33
33
|
DUCKDB_API void VerifyHiveTypesArePartitions(const std::map<string, string> &partitions) const;
|
|
34
34
|
DUCKDB_API LogicalType GetHiveLogicalType(const string &hive_partition_column) const;
|
|
35
35
|
DUCKDB_API Value GetHivePartitionValue(const string &base, const string &entry, ClientContext &context) const;
|
|
@@ -18,13 +18,16 @@ public:
|
|
|
18
18
|
virtual FileSystem &GetFileSystem() const = 0;
|
|
19
19
|
virtual optional_ptr<FileOpener> GetOpener() const = 0;
|
|
20
20
|
|
|
21
|
-
|
|
22
|
-
FileCompressionType compression = FileCompressionType::UNCOMPRESSED,
|
|
23
|
-
FileOpener *opener = nullptr) override {
|
|
21
|
+
void VerifyNoOpener(optional_ptr<FileOpener> opener) {
|
|
24
22
|
if (opener) {
|
|
25
23
|
throw InternalException("OpenerFileSystem cannot take an opener - the opener is pushed automatically");
|
|
26
24
|
}
|
|
27
|
-
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
unique_ptr<FileHandle> OpenFile(const string &path, FileOpenFlags flags,
|
|
28
|
+
optional_ptr<FileOpener> opener = nullptr) override {
|
|
29
|
+
VerifyNoOpener(opener);
|
|
30
|
+
return GetFileSystem().OpenFile(path, flags, GetOpener());
|
|
28
31
|
}
|
|
29
32
|
|
|
30
33
|
void Read(FileHandle &handle, void *buffer, int64_t nr_bytes, idx_t location) override {
|
|
@@ -61,27 +64,29 @@ public:
|
|
|
61
64
|
GetFileSystem().FileSync(handle);
|
|
62
65
|
}
|
|
63
66
|
|
|
64
|
-
bool DirectoryExists(const string &directory) override {
|
|
65
|
-
|
|
67
|
+
bool DirectoryExists(const string &directory, optional_ptr<FileOpener> opener) override {
|
|
68
|
+
VerifyNoOpener(opener);
|
|
69
|
+
return GetFileSystem().DirectoryExists(directory, GetOpener());
|
|
66
70
|
}
|
|
67
|
-
void CreateDirectory(const string &directory) override {
|
|
68
|
-
|
|
71
|
+
void CreateDirectory(const string &directory, optional_ptr<FileOpener> opener) override {
|
|
72
|
+
VerifyNoOpener(opener);
|
|
73
|
+
return GetFileSystem().CreateDirectory(directory, GetOpener());
|
|
69
74
|
}
|
|
70
75
|
|
|
71
|
-
void RemoveDirectory(const string &directory) override {
|
|
72
|
-
|
|
76
|
+
void RemoveDirectory(const string &directory, optional_ptr<FileOpener> opener) override {
|
|
77
|
+
VerifyNoOpener(opener);
|
|
78
|
+
return GetFileSystem().RemoveDirectory(directory, GetOpener());
|
|
73
79
|
}
|
|
74
80
|
|
|
75
81
|
bool ListFiles(const string &directory, const std::function<void(const string &, bool)> &callback,
|
|
76
82
|
FileOpener *opener = nullptr) override {
|
|
77
|
-
|
|
78
|
-
throw InternalException("OpenerFileSystem cannot take an opener - the opener is pushed automatically");
|
|
79
|
-
}
|
|
83
|
+
VerifyNoOpener(opener);
|
|
80
84
|
return GetFileSystem().ListFiles(directory, callback, GetOpener().get());
|
|
81
85
|
}
|
|
82
86
|
|
|
83
|
-
void MoveFile(const string &source, const string &target) override {
|
|
84
|
-
|
|
87
|
+
void MoveFile(const string &source, const string &target, optional_ptr<FileOpener> opener) override {
|
|
88
|
+
VerifyNoOpener(opener);
|
|
89
|
+
GetFileSystem().MoveFile(source, target, GetOpener());
|
|
85
90
|
}
|
|
86
91
|
|
|
87
92
|
string GetHomeDirectory() override {
|
|
@@ -92,15 +97,18 @@ public:
|
|
|
92
97
|
return FileSystem::ExpandPath(path, GetOpener());
|
|
93
98
|
}
|
|
94
99
|
|
|
95
|
-
bool FileExists(const string &filename) override {
|
|
96
|
-
|
|
100
|
+
bool FileExists(const string &filename, optional_ptr<FileOpener> opener) override {
|
|
101
|
+
VerifyNoOpener(opener);
|
|
102
|
+
return GetFileSystem().FileExists(filename, GetOpener());
|
|
97
103
|
}
|
|
98
104
|
|
|
99
|
-
bool IsPipe(const string &filename) override {
|
|
100
|
-
|
|
105
|
+
bool IsPipe(const string &filename, optional_ptr<FileOpener> opener) override {
|
|
106
|
+
VerifyNoOpener(opener);
|
|
107
|
+
return GetFileSystem().IsPipe(filename, GetOpener());
|
|
101
108
|
}
|
|
102
|
-
void RemoveFile(const string &filename) override {
|
|
103
|
-
|
|
109
|
+
void RemoveFile(const string &filename, optional_ptr<FileOpener> opener) override {
|
|
110
|
+
VerifyNoOpener(opener);
|
|
111
|
+
GetFileSystem().RemoveFile(filename, GetOpener());
|
|
104
112
|
}
|
|
105
113
|
|
|
106
114
|
string PathSeparator(const string &path) override {
|
|
@@ -108,15 +116,33 @@ public:
|
|
|
108
116
|
}
|
|
109
117
|
|
|
110
118
|
vector<string> Glob(const string &path, FileOpener *opener = nullptr) override {
|
|
111
|
-
|
|
112
|
-
throw InternalException("OpenerFileSystem cannot take an opener - the opener is pushed automatically");
|
|
113
|
-
}
|
|
119
|
+
VerifyNoOpener(opener);
|
|
114
120
|
return GetFileSystem().Glob(path, GetOpener().get());
|
|
115
121
|
}
|
|
116
122
|
|
|
117
123
|
std::string GetName() const override {
|
|
118
124
|
return "OpenerFileSystem - " + GetFileSystem().GetName();
|
|
119
125
|
}
|
|
126
|
+
|
|
127
|
+
void RegisterSubSystem(unique_ptr<FileSystem> sub_fs) override {
|
|
128
|
+
GetFileSystem().RegisterSubSystem(std::move(sub_fs));
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
void RegisterSubSystem(FileCompressionType compression_type, unique_ptr<FileSystem> fs) override {
|
|
132
|
+
GetFileSystem().RegisterSubSystem(compression_type, std::move(fs));
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
void UnregisterSubSystem(const string &name) override {
|
|
136
|
+
GetFileSystem().UnregisterSubSystem(name);
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
void SetDisabledFileSystems(const vector<string> &names) override {
|
|
140
|
+
GetFileSystem().SetDisabledFileSystems(names);
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
vector<string> ListSubSystems() override {
|
|
144
|
+
return GetFileSystem().ListSubSystems();
|
|
145
|
+
}
|
|
120
146
|
};
|
|
121
147
|
|
|
122
148
|
} // namespace duckdb
|
|
@@ -39,7 +39,7 @@ inline int8_t TryAbsOperator::Operation(int8_t input) {
|
|
|
39
39
|
if (input == NumericLimits<int8_t>::Minimum()) {
|
|
40
40
|
throw OutOfRangeException("Overflow on abs(%d)", input);
|
|
41
41
|
}
|
|
42
|
-
return
|
|
42
|
+
return AbsOperator::Operation<int8_t, int8_t>(input);
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
template <>
|
|
@@ -47,7 +47,7 @@ inline int16_t TryAbsOperator::Operation(int16_t input) {
|
|
|
47
47
|
if (input == NumericLimits<int16_t>::Minimum()) {
|
|
48
48
|
throw OutOfRangeException("Overflow on abs(%d)", input);
|
|
49
49
|
}
|
|
50
|
-
return
|
|
50
|
+
return AbsOperator::Operation<int16_t, int16_t>(input);
|
|
51
51
|
}
|
|
52
52
|
|
|
53
53
|
template <>
|
|
@@ -55,7 +55,7 @@ inline int32_t TryAbsOperator::Operation(int32_t input) {
|
|
|
55
55
|
if (input == NumericLimits<int32_t>::Minimum()) {
|
|
56
56
|
throw OutOfRangeException("Overflow on abs(%d)", input);
|
|
57
57
|
}
|
|
58
|
-
return
|
|
58
|
+
return AbsOperator::Operation<int32_t, int32_t>(input);
|
|
59
59
|
}
|
|
60
60
|
|
|
61
61
|
template <>
|
|
@@ -63,7 +63,15 @@ inline int64_t TryAbsOperator::Operation(int64_t input) {
|
|
|
63
63
|
if (input == NumericLimits<int64_t>::Minimum()) {
|
|
64
64
|
throw OutOfRangeException("Overflow on abs(%d)", input);
|
|
65
65
|
}
|
|
66
|
-
return
|
|
66
|
+
return AbsOperator::Operation<int64_t, int64_t>(input);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
template <>
|
|
70
|
+
inline hugeint_t TryAbsOperator::Operation(hugeint_t input) {
|
|
71
|
+
if (input == NumericLimits<hugeint_t>::Minimum()) {
|
|
72
|
+
throw OutOfRangeException("Overflow on abs(%s)", input.ToString());
|
|
73
|
+
}
|
|
74
|
+
return AbsOperator::Operation<hugeint_t, hugeint_t>(input);
|
|
67
75
|
}
|
|
68
76
|
|
|
69
77
|
template <>
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
namespace duckdb {
|
|
15
15
|
|
|
16
16
|
template <class T>
|
|
17
|
-
class optional_ptr {
|
|
17
|
+
class optional_ptr { // NOLINT: mimic std casing
|
|
18
18
|
public:
|
|
19
19
|
optional_ptr() : ptr(nullptr) {
|
|
20
20
|
}
|
|
@@ -29,7 +29,7 @@ public:
|
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
operator bool() const {
|
|
32
|
+
operator bool() const { // NOLINT: allow implicit conversion to bool
|
|
33
33
|
return ptr;
|
|
34
34
|
}
|
|
35
35
|
T &operator*() {
|
|
@@ -48,16 +48,16 @@ public:
|
|
|
48
48
|
CheckValid();
|
|
49
49
|
return ptr;
|
|
50
50
|
}
|
|
51
|
-
T *get() {
|
|
51
|
+
T *get() { // NOLINT: mimic std casing
|
|
52
52
|
// CheckValid();
|
|
53
53
|
return ptr;
|
|
54
54
|
}
|
|
55
|
-
const T *get() const {
|
|
55
|
+
const T *get() const { // NOLINT: mimic std casing
|
|
56
56
|
// CheckValid();
|
|
57
57
|
return ptr;
|
|
58
58
|
}
|
|
59
59
|
// this looks dirty - but this is the default behavior of raw pointers
|
|
60
|
-
T *get_mutable() const {
|
|
60
|
+
T *get_mutable() const { // NOLINT: mimic std casing
|
|
61
61
|
// CheckValid();
|
|
62
62
|
return ptr;
|
|
63
63
|
}
|
|
@@ -23,14 +23,14 @@ public:
|
|
|
23
23
|
//! Print the object to stderr
|
|
24
24
|
DUCKDB_API static void Print(const string &str);
|
|
25
25
|
//! Print the formatted object to the stream
|
|
26
|
-
template <typename...
|
|
27
|
-
static void PrintF(OutputStream stream, const string &str,
|
|
26
|
+
template <typename... ARGS>
|
|
27
|
+
static void PrintF(OutputStream stream, const string &str, ARGS... params) {
|
|
28
28
|
Printer::Print(stream, StringUtil::Format(str, params...));
|
|
29
29
|
}
|
|
30
30
|
//! Print the formatted object to stderr
|
|
31
|
-
template <typename...
|
|
32
|
-
static void PrintF(const string &str,
|
|
33
|
-
Printer::PrintF(OutputStream::STREAM_STDERR, str, std::forward<
|
|
31
|
+
template <typename... ARGS>
|
|
32
|
+
static void PrintF(const string &str, ARGS... params) {
|
|
33
|
+
Printer::PrintF(OutputStream::STREAM_STDERR, str, std::forward<ARGS>(params)...);
|
|
34
34
|
}
|
|
35
35
|
//! Directly prints the string to stdout without a newline
|
|
36
36
|
DUCKDB_API static void RawPrint(OutputStream stream, const string &str);
|