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
|
@@ -40,19 +40,19 @@ struct CSVReaderOptions {
|
|
|
40
40
|
//! See struct above.
|
|
41
41
|
DialectOptions dialect_options;
|
|
42
42
|
//! Whether or not we should ignore InvalidInput errors
|
|
43
|
-
bool ignore_errors = false;
|
|
44
|
-
//!
|
|
45
|
-
|
|
43
|
+
CSVOption<bool> ignore_errors = false;
|
|
44
|
+
//! Whether we store CSV Errors in the rejects table or not
|
|
45
|
+
CSVOption<bool> store_rejects = false;
|
|
46
|
+
//! Rejects table name (Name of the table the store rejects errors)
|
|
47
|
+
CSVOption<string> rejects_table_name = {"reject_errors"};
|
|
48
|
+
//! Rejects Scan name name (Name of the table the store rejects scans)
|
|
49
|
+
CSVOption<string> rejects_scan_name = {"reject_scans"};
|
|
46
50
|
//! Rejects table entry limit (0 = no limit)
|
|
47
51
|
idx_t rejects_limit = 0;
|
|
48
|
-
//! Columns to use as recovery key for rejected rows when reading with ignore_errors = true
|
|
49
|
-
vector<string> rejects_recovery_columns;
|
|
50
|
-
//! Index of the recovery columns
|
|
51
|
-
vector<idx_t> rejects_recovery_column_ids;
|
|
52
52
|
//! Number of samples to buffer
|
|
53
53
|
idx_t buffer_sample_size = (idx_t)STANDARD_VECTOR_SIZE * 50;
|
|
54
|
-
//! Specifies the
|
|
55
|
-
string null_str;
|
|
54
|
+
//! Specifies the strings that represents a null value
|
|
55
|
+
vector<string> null_str = {""};
|
|
56
56
|
//! Whether file is compressed or not, and if so which compression type
|
|
57
57
|
//! AUTO_DETECT (default; infer from file extension)
|
|
58
58
|
FileCompressionType compression = FileCompressionType::AUTO_DETECT;
|
|
@@ -85,6 +85,8 @@ struct CSVReaderOptions {
|
|
|
85
85
|
//! Whether or not header names shall be normalized
|
|
86
86
|
bool normalize_names = false;
|
|
87
87
|
//! True, if column with that index must skip null check
|
|
88
|
+
unordered_set<string> force_not_null_names;
|
|
89
|
+
//! True, if column with that index must skip null check
|
|
88
90
|
vector<bool> force_not_null;
|
|
89
91
|
//! Number of sample chunks used in auto-detection
|
|
90
92
|
idx_t sample_size_chunks = 20480 / STANDARD_VECTOR_SIZE;
|
|
@@ -107,6 +109,7 @@ struct CSVReaderOptions {
|
|
|
107
109
|
|
|
108
110
|
//! User defined parameters for the csv function concatenated on a string
|
|
109
111
|
string user_defined_parameters;
|
|
112
|
+
|
|
110
113
|
//===--------------------------------------------------------------------===//
|
|
111
114
|
// WriteCSVOptions
|
|
112
115
|
//===--------------------------------------------------------------------===//
|
|
@@ -147,7 +150,7 @@ struct CSVReaderOptions {
|
|
|
147
150
|
void SetNewline(const string &input);
|
|
148
151
|
//! Set an option that is supported by both reading and writing functions, called by
|
|
149
152
|
//! the SetReadOption and SetWriteOption methods
|
|
150
|
-
bool SetBaseOption(const string &loption, const Value &value);
|
|
153
|
+
bool SetBaseOption(const string &loption, const Value &value, bool write_option = false);
|
|
151
154
|
|
|
152
155
|
//! loption - lowercase string
|
|
153
156
|
//! set - argument(s) to the option
|
|
@@ -162,5 +165,16 @@ struct CSVReaderOptions {
|
|
|
162
165
|
string ToString() const;
|
|
163
166
|
//! If the type for column with idx i was manually set
|
|
164
167
|
bool WasTypeManuallySet(idx_t i) const;
|
|
168
|
+
|
|
169
|
+
string NewLineIdentifierToString() {
|
|
170
|
+
switch (dialect_options.state_machine_options.new_line.GetValue()) {
|
|
171
|
+
case NewLineIdentifier::SINGLE:
|
|
172
|
+
return "\\n";
|
|
173
|
+
case NewLineIdentifier::CARRY_ON:
|
|
174
|
+
return "\\r\\n";
|
|
175
|
+
default:
|
|
176
|
+
return "";
|
|
177
|
+
}
|
|
178
|
+
}
|
|
165
179
|
};
|
|
166
180
|
} // namespace duckdb
|
|
@@ -30,7 +30,7 @@ public:
|
|
|
30
30
|
|
|
31
31
|
//! Generates a CSV Scanner, with information regarding the piece of buffer it should be read.
|
|
32
32
|
//! In case it returns a nullptr it means we are done reading these files.
|
|
33
|
-
unique_ptr<StringValueScanner> Next();
|
|
33
|
+
unique_ptr<StringValueScanner> Next(optional_ptr<StringValueScanner> previous_scanner);
|
|
34
34
|
|
|
35
35
|
void FillRejectsTable();
|
|
36
36
|
|
|
@@ -75,6 +75,8 @@ private:
|
|
|
75
75
|
|
|
76
76
|
atomic<idx_t> last_file_idx;
|
|
77
77
|
shared_ptr<CSVBufferUsage> current_buffer_in_use;
|
|
78
|
+
|
|
79
|
+
unordered_map<idx_t, idx_t> threads_per_file;
|
|
78
80
|
};
|
|
79
81
|
|
|
80
82
|
} // namespace duckdb
|
|
@@ -42,9 +42,6 @@ public:
|
|
|
42
42
|
SkipScanner(shared_ptr<CSVBufferManager> buffer_manager, const shared_ptr<CSVStateMachine> &state_machine,
|
|
43
43
|
shared_ptr<CSVErrorHandler> error_handler, idx_t rows_to_skip);
|
|
44
44
|
|
|
45
|
-
~SkipScanner() {
|
|
46
|
-
}
|
|
47
|
-
|
|
48
45
|
SkipResult &ParseChunk() override;
|
|
49
46
|
|
|
50
47
|
SkipResult &GetResult() override;
|
package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/string_value_scanner.hpp
CHANGED
|
@@ -42,17 +42,54 @@ public:
|
|
|
42
42
|
}
|
|
43
43
|
return other.buffer_size - other.buffer_pos + buffer_pos;
|
|
44
44
|
}
|
|
45
|
+
|
|
46
|
+
bool operator==(const LinePosition &other) const {
|
|
47
|
+
return buffer_pos == other.buffer_pos && buffer_idx == other.buffer_idx && buffer_size == other.buffer_size;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
idx_t GetGlobalPosition(idx_t requested_buffer_size, bool first_char_nl = false) {
|
|
51
|
+
return requested_buffer_size * buffer_idx + buffer_pos + first_char_nl;
|
|
52
|
+
}
|
|
45
53
|
idx_t buffer_pos = 0;
|
|
46
54
|
idx_t buffer_size = 0;
|
|
47
55
|
idx_t buffer_idx = 0;
|
|
48
56
|
};
|
|
49
57
|
|
|
58
|
+
//! Keeps track of start and end of line positions in regard to the CSV file
|
|
59
|
+
class FullLinePosition {
|
|
60
|
+
public:
|
|
61
|
+
FullLinePosition() {};
|
|
62
|
+
LinePosition begin;
|
|
63
|
+
LinePosition end;
|
|
64
|
+
|
|
65
|
+
//! Reconstructs the current line to be used in error messages
|
|
66
|
+
string ReconstructCurrentLine(bool &first_char_nl,
|
|
67
|
+
unordered_map<idx_t, shared_ptr<CSVBufferHandle>> &buffer_handles);
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
class CurrentError {
|
|
71
|
+
public:
|
|
72
|
+
CurrentError(CSVErrorType type, idx_t col_idx_p, LinePosition error_position_p)
|
|
73
|
+
: type(type), col_idx(col_idx_p), error_position(error_position_p) {};
|
|
74
|
+
|
|
75
|
+
CSVErrorType type;
|
|
76
|
+
idx_t col_idx;
|
|
77
|
+
idx_t current_line_size;
|
|
78
|
+
string error_message;
|
|
79
|
+
//! Exact Position where the error happened
|
|
80
|
+
LinePosition error_position;
|
|
81
|
+
|
|
82
|
+
friend bool operator==(const CurrentError &error, CSVErrorType other) {
|
|
83
|
+
return error.type == other;
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
|
|
50
87
|
class StringValueResult : public ScannerResult {
|
|
51
88
|
public:
|
|
52
89
|
StringValueResult(CSVStates &states, CSVStateMachine &state_machine,
|
|
53
90
|
const shared_ptr<CSVBufferHandle> &buffer_handle, Allocator &buffer_allocator, idx_t result_size,
|
|
54
|
-
idx_t buffer_position, CSVErrorHandler &
|
|
55
|
-
shared_ptr<CSVFileScan> csv_file_scan, idx_t &lines_read, bool sniffing);
|
|
91
|
+
idx_t buffer_position, CSVErrorHandler &error_handler, CSVIterator &iterator,
|
|
92
|
+
bool store_line_size, shared_ptr<CSVFileScan> csv_file_scan, idx_t &lines_read, bool sniffing);
|
|
56
93
|
|
|
57
94
|
~StringValueResult();
|
|
58
95
|
|
|
@@ -61,7 +98,7 @@ public:
|
|
|
61
98
|
unsafe_vector<ValidityMask *> validity_mask;
|
|
62
99
|
|
|
63
100
|
//! Variables to iterate over the CSV buffers
|
|
64
|
-
|
|
101
|
+
LinePosition last_position;
|
|
65
102
|
char *buffer_ptr;
|
|
66
103
|
idx_t buffer_size;
|
|
67
104
|
|
|
@@ -69,8 +106,10 @@ public:
|
|
|
69
106
|
const uint32_t number_of_columns;
|
|
70
107
|
const bool null_padding;
|
|
71
108
|
const bool ignore_errors;
|
|
72
|
-
|
|
73
|
-
const
|
|
109
|
+
|
|
110
|
+
unsafe_unique_array<const char *> null_str_ptr;
|
|
111
|
+
unsafe_unique_array<idx_t> null_str_size;
|
|
112
|
+
idx_t null_str_count;
|
|
74
113
|
|
|
75
114
|
//! Internal Data Chunk used for flushing
|
|
76
115
|
DataChunk parse_chunk;
|
|
@@ -80,16 +119,16 @@ public:
|
|
|
80
119
|
//! Information to properly handle errors
|
|
81
120
|
CSVErrorHandler &error_handler;
|
|
82
121
|
CSVIterator &iterator;
|
|
83
|
-
//!
|
|
84
|
-
|
|
85
|
-
|
|
122
|
+
//! Line position of the current line
|
|
123
|
+
FullLinePosition current_line_position;
|
|
124
|
+
//! Used for CSV line reconstruction on flushed errors
|
|
125
|
+
unordered_map<idx_t, FullLinePosition> line_positions_per_row;
|
|
86
126
|
bool store_line_size = false;
|
|
87
127
|
bool added_last_line = false;
|
|
88
128
|
bool quoted_new_line = false;
|
|
89
129
|
|
|
90
130
|
unsafe_unique_array<std::pair<LogicalTypeId, bool>> parse_types;
|
|
91
131
|
vector<string> names;
|
|
92
|
-
unordered_map<idx_t, string> cast_errors;
|
|
93
132
|
|
|
94
133
|
shared_ptr<CSVFileScan> csv_file_scan;
|
|
95
134
|
idx_t &lines_read;
|
|
@@ -99,10 +138,13 @@ public:
|
|
|
99
138
|
idx_t chunk_col_id = 0;
|
|
100
139
|
|
|
101
140
|
//! We must ensure that we keep the buffers alive until processing the query result
|
|
102
|
-
|
|
141
|
+
unordered_map<idx_t, shared_ptr<CSVBufferHandle>> buffer_handles;
|
|
103
142
|
|
|
104
|
-
//!
|
|
105
|
-
|
|
143
|
+
//! Requested size of buffers (i.e., either 32Mb or set by buffer_size parameter)
|
|
144
|
+
idx_t requested_size;
|
|
145
|
+
|
|
146
|
+
//! Errors happening in the current line (if any)
|
|
147
|
+
vector<CurrentError> current_errors;
|
|
106
148
|
|
|
107
149
|
bool sniffing;
|
|
108
150
|
//! Specialized code for quoted values, makes sure to remove quotes and escapes
|
|
@@ -119,8 +161,10 @@ public:
|
|
|
119
161
|
//! Handles EmptyLine states
|
|
120
162
|
static inline bool EmptyLine(StringValueResult &result, const idx_t buffer_pos);
|
|
121
163
|
inline bool AddRowInternal();
|
|
122
|
-
|
|
123
|
-
void
|
|
164
|
+
//! Force the throw of a unicode error
|
|
165
|
+
void HandleUnicodeError(idx_t col_idx, LinePosition &error_position);
|
|
166
|
+
//! Certain errors should only be handled when adding the line, to ensure proper error propagation.
|
|
167
|
+
bool HandleError();
|
|
124
168
|
|
|
125
169
|
inline void AddValueToVector(const char *value_ptr, const idx_t size, bool allocate = false);
|
|
126
170
|
|
|
@@ -143,9 +187,6 @@ public:
|
|
|
143
187
|
const shared_ptr<CSVStateMachine> &state_machine,
|
|
144
188
|
const shared_ptr<CSVErrorHandler> &error_handler);
|
|
145
189
|
|
|
146
|
-
~StringValueScanner() {
|
|
147
|
-
}
|
|
148
|
-
|
|
149
190
|
StringValueResult &ParseChunk() override;
|
|
150
191
|
|
|
151
192
|
//! Flushes the result to the insert_chunk
|
package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_batch_collector.hpp
CHANGED
|
@@ -14,7 +14,7 @@ namespace duckdb {
|
|
|
14
14
|
|
|
15
15
|
class PhysicalBatchCollector : public PhysicalResultCollector {
|
|
16
16
|
public:
|
|
17
|
-
PhysicalBatchCollector(PreparedStatementData &data);
|
|
17
|
+
explicit PhysicalBatchCollector(PreparedStatementData &data);
|
|
18
18
|
|
|
19
19
|
public:
|
|
20
20
|
unique_ptr<QueryResult> GetResult(GlobalSinkState &state) override;
|
package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_explain_analyze.hpp
CHANGED
|
@@ -18,7 +18,7 @@ public:
|
|
|
18
18
|
static constexpr const PhysicalOperatorType TYPE = PhysicalOperatorType::EXPLAIN_ANALYZE;
|
|
19
19
|
|
|
20
20
|
public:
|
|
21
|
-
PhysicalExplainAnalyze(vector<LogicalType> types)
|
|
21
|
+
explicit PhysicalExplainAnalyze(vector<LogicalType> types)
|
|
22
22
|
: PhysicalOperator(PhysicalOperatorType::EXPLAIN_ANALYZE, std::move(types), 1) {
|
|
23
23
|
}
|
|
24
24
|
|
|
@@ -19,9 +19,9 @@ public:
|
|
|
19
19
|
static constexpr const PhysicalOperatorType TYPE = PhysicalOperatorType::PREPARE;
|
|
20
20
|
|
|
21
21
|
public:
|
|
22
|
-
PhysicalPrepare(string
|
|
23
|
-
: PhysicalOperator(PhysicalOperatorType::PREPARE, {LogicalType::BOOLEAN}, estimated_cardinality),
|
|
24
|
-
prepared(std::move(prepared)) {
|
|
22
|
+
PhysicalPrepare(string name_p, shared_ptr<PreparedStatementData> prepared, idx_t estimated_cardinality)
|
|
23
|
+
: PhysicalOperator(PhysicalOperatorType::PREPARE, {LogicalType::BOOLEAN}, estimated_cardinality),
|
|
24
|
+
name(std::move(name_p)), prepared(std::move(prepared)) {
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
string name;
|
|
@@ -25,7 +25,7 @@ public:
|
|
|
25
25
|
public:
|
|
26
26
|
PhysicalSet(const std::string &name_p, Value value_p, SetScope scope_p, idx_t estimated_cardinality)
|
|
27
27
|
: PhysicalOperator(PhysicalOperatorType::SET, {LogicalType::BOOLEAN}, estimated_cardinality), name(name_p),
|
|
28
|
-
value(value_p), scope(scope_p) {
|
|
28
|
+
value(std::move(value_p)), scope(scope_p) {
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
public:
|
|
@@ -20,9 +20,12 @@ public:
|
|
|
20
20
|
static constexpr const PhysicalOperatorType TYPE = PhysicalOperatorType::VACUUM;
|
|
21
21
|
|
|
22
22
|
public:
|
|
23
|
-
PhysicalVacuum(unique_ptr<VacuumInfo> info,
|
|
23
|
+
PhysicalVacuum(unique_ptr<VacuumInfo> info, optional_ptr<TableCatalogEntry> table,
|
|
24
|
+
unordered_map<idx_t, idx_t> column_id_map, idx_t estimated_cardinality);
|
|
24
25
|
|
|
25
26
|
unique_ptr<VacuumInfo> info;
|
|
27
|
+
optional_ptr<TableCatalogEntry> table;
|
|
28
|
+
unordered_map<idx_t, idx_t> column_id_map;
|
|
26
29
|
|
|
27
30
|
public:
|
|
28
31
|
// Source interface
|
|
@@ -14,19 +14,24 @@ class ClientContext;
|
|
|
14
14
|
|
|
15
15
|
class CSVRejectsTable : public ObjectCacheEntry {
|
|
16
16
|
public:
|
|
17
|
-
CSVRejectsTable(string
|
|
17
|
+
CSVRejectsTable(string rejects_scan, string rejects_error)
|
|
18
|
+
: count(0), scan_table(std::move(rejects_scan)), errors_table(std::move(rejects_error)) {
|
|
18
19
|
}
|
|
19
|
-
~CSVRejectsTable() override = default;
|
|
20
20
|
mutex write_lock;
|
|
21
21
|
string name;
|
|
22
22
|
idx_t count;
|
|
23
|
+
string scan_table;
|
|
24
|
+
string errors_table;
|
|
23
25
|
|
|
24
|
-
static shared_ptr<CSVRejectsTable> GetOrCreate(ClientContext &context, const string &
|
|
26
|
+
static shared_ptr<CSVRejectsTable> GetOrCreate(ClientContext &context, const string &rejects_scan,
|
|
27
|
+
const string &rejects_error);
|
|
25
28
|
|
|
26
29
|
void InitializeTable(ClientContext &context, const ReadCSVData &options);
|
|
27
|
-
TableCatalogEntry &
|
|
30
|
+
TableCatalogEntry &GetErrorsTable(ClientContext &context);
|
|
31
|
+
TableCatalogEntry &GetScansTable(ClientContext &context);
|
|
32
|
+
|
|
33
|
+
idx_t GetCurrentFileIndex(idx_t query_id);
|
|
28
34
|
|
|
29
|
-
public:
|
|
30
35
|
static string ObjectType() {
|
|
31
36
|
return "csv_rejects_table_cache";
|
|
32
37
|
}
|
|
@@ -34,6 +39,12 @@ public:
|
|
|
34
39
|
string GetObjectType() override {
|
|
35
40
|
return ObjectType();
|
|
36
41
|
}
|
|
42
|
+
|
|
43
|
+
private:
|
|
44
|
+
//! Current File Index being used in the query
|
|
45
|
+
idx_t current_file_idx = 0;
|
|
46
|
+
//! Current Query ID being executed
|
|
47
|
+
idx_t current_query_id = 0;
|
|
37
48
|
};
|
|
38
49
|
|
|
39
50
|
} // namespace duckdb
|
|
@@ -52,7 +52,7 @@ public:
|
|
|
52
52
|
}
|
|
53
53
|
template <class TARGET>
|
|
54
54
|
const TARGET &Cast() const {
|
|
55
|
-
|
|
55
|
+
DynamicCastCheck<TARGET>(this);
|
|
56
56
|
return reinterpret_cast<const TARGET &>(*this);
|
|
57
57
|
}
|
|
58
58
|
};
|
|
@@ -69,7 +69,7 @@ public:
|
|
|
69
69
|
}
|
|
70
70
|
template <class TARGET>
|
|
71
71
|
const TARGET &Cast() const {
|
|
72
|
-
|
|
72
|
+
DynamicCastCheck<TARGET>(this);
|
|
73
73
|
return reinterpret_cast<const TARGET &>(*this);
|
|
74
74
|
}
|
|
75
75
|
};
|
|
@@ -90,7 +90,7 @@ public:
|
|
|
90
90
|
}
|
|
91
91
|
template <class TARGET>
|
|
92
92
|
const TARGET &Cast() const {
|
|
93
|
-
|
|
93
|
+
DynamicCastCheck<TARGET>(this);
|
|
94
94
|
return reinterpret_cast<const TARGET &>(*this);
|
|
95
95
|
}
|
|
96
96
|
|
|
@@ -114,7 +114,7 @@ public:
|
|
|
114
114
|
}
|
|
115
115
|
template <class TARGET>
|
|
116
116
|
const TARGET &Cast() const {
|
|
117
|
-
|
|
117
|
+
DynamicCastCheck<TARGET>(this);
|
|
118
118
|
return reinterpret_cast<const TARGET &>(*this);
|
|
119
119
|
}
|
|
120
120
|
};
|
|
@@ -135,7 +135,7 @@ public:
|
|
|
135
135
|
}
|
|
136
136
|
template <class TARGET>
|
|
137
137
|
const TARGET &Cast() const {
|
|
138
|
-
|
|
138
|
+
DynamicCastCheck<TARGET>(this);
|
|
139
139
|
return reinterpret_cast<const TARGET &>(*this);
|
|
140
140
|
}
|
|
141
141
|
};
|
|
@@ -152,7 +152,7 @@ public:
|
|
|
152
152
|
}
|
|
153
153
|
template <class TARGET>
|
|
154
154
|
const TARGET &Cast() const {
|
|
155
|
-
|
|
155
|
+
DynamicCastCheck<TARGET>(this);
|
|
156
156
|
return reinterpret_cast<const TARGET &>(*this);
|
|
157
157
|
}
|
|
158
158
|
};
|
|
@@ -28,7 +28,7 @@ public:
|
|
|
28
28
|
explicit PhysicalPlanGenerator(ClientContext &context);
|
|
29
29
|
~PhysicalPlanGenerator();
|
|
30
30
|
|
|
31
|
-
|
|
31
|
+
LogicalDependencyList dependencies;
|
|
32
32
|
//! Recursive CTEs require at least one ChunkScan, referencing the working_table.
|
|
33
33
|
//! This data structure is used to establish it.
|
|
34
34
|
unordered_map<idx_t, std::shared_ptr<ColumnDataCollection>> recursive_cte_tables;
|
|
@@ -87,6 +87,7 @@ protected:
|
|
|
87
87
|
unique_ptr<PhysicalOperator> CreatePlan(LogicalSet &op);
|
|
88
88
|
unique_ptr<PhysicalOperator> CreatePlan(LogicalReset &op);
|
|
89
89
|
unique_ptr<PhysicalOperator> CreatePlan(LogicalSimple &op);
|
|
90
|
+
unique_ptr<PhysicalOperator> CreatePlan(LogicalVacuum &op);
|
|
90
91
|
unique_ptr<PhysicalOperator> CreatePlan(LogicalUnnest &op);
|
|
91
92
|
unique_ptr<PhysicalOperator> CreatePlan(LogicalRecursiveCTE &op);
|
|
92
93
|
unique_ptr<PhysicalOperator> CreatePlan(LogicalMaterializedCTE &op);
|
|
@@ -79,7 +79,7 @@ typedef void (*aggregate_serialize_t)(Serializer &serializer, const optional_ptr
|
|
|
79
79
|
const AggregateFunction &function);
|
|
80
80
|
typedef unique_ptr<FunctionData> (*aggregate_deserialize_t)(Deserializer &deserializer, AggregateFunction &function);
|
|
81
81
|
|
|
82
|
-
class AggregateFunction : public BaseScalarFunction {
|
|
82
|
+
class AggregateFunction : public BaseScalarFunction { // NOLINT: work-around bug in clang-tidy
|
|
83
83
|
public:
|
|
84
84
|
AggregateFunction(const string &name, const vector<LogicalType> &arguments, const LogicalType &return_type,
|
|
85
85
|
aggregate_size_t state_size, aggregate_initialize_t initialize, aggregate_update_t update,
|
|
@@ -20,9 +20,9 @@ typedef BoundCastInfo (*bind_cast_function_t)(BindCastInput &input, const Logica
|
|
|
20
20
|
typedef int64_t (*implicit_cast_cost_t)(const LogicalType &from, const LogicalType &to);
|
|
21
21
|
|
|
22
22
|
struct GetCastFunctionInput {
|
|
23
|
-
GetCastFunctionInput(optional_ptr<ClientContext> context = nullptr) : context(context) {
|
|
23
|
+
explicit GetCastFunctionInput(optional_ptr<ClientContext> context = nullptr) : context(context) {
|
|
24
24
|
}
|
|
25
|
-
GetCastFunctionInput(ClientContext &context) : context(&context) {
|
|
25
|
+
explicit GetCastFunctionInput(ClientContext &context) : context(&context) {
|
|
26
26
|
}
|
|
27
27
|
|
|
28
28
|
optional_ptr<ClientContext> context;
|
|
@@ -30,8 +30,8 @@ struct GetCastFunctionInput {
|
|
|
30
30
|
};
|
|
31
31
|
|
|
32
32
|
struct BindCastFunction {
|
|
33
|
-
BindCastFunction(bind_cast_function_t function,
|
|
34
|
-
unique_ptr<BindCastInfo> info = nullptr);
|
|
33
|
+
BindCastFunction(bind_cast_function_t function, // NOLINT: allow implicit cast
|
|
34
|
+
unique_ptr<BindCastInfo> info = nullptr);
|
|
35
35
|
|
|
36
36
|
bind_cast_function_t function;
|
|
37
37
|
unique_ptr<BindCastInfo> info;
|
|
@@ -40,7 +40,7 @@ struct BindCastFunction {
|
|
|
40
40
|
class CastFunctionSet {
|
|
41
41
|
public:
|
|
42
42
|
CastFunctionSet();
|
|
43
|
-
CastFunctionSet(DBConfig &config);
|
|
43
|
+
explicit CastFunctionSet(DBConfig &config);
|
|
44
44
|
|
|
45
45
|
public:
|
|
46
46
|
DUCKDB_API static CastFunctionSet &Get(ClientContext &context);
|
|
@@ -30,7 +30,7 @@ struct BindCastInfo {
|
|
|
30
30
|
}
|
|
31
31
|
template <class TARGET>
|
|
32
32
|
const TARGET &Cast() const {
|
|
33
|
-
|
|
33
|
+
DynamicCastCheck<TARGET>(this);
|
|
34
34
|
return reinterpret_cast<const TARGET &>(*this);
|
|
35
35
|
}
|
|
36
36
|
};
|
|
@@ -48,7 +48,7 @@ struct BoundCastData {
|
|
|
48
48
|
}
|
|
49
49
|
template <class TARGET>
|
|
50
50
|
const TARGET &Cast() const {
|
|
51
|
-
|
|
51
|
+
DynamicCastCheck<TARGET>(this);
|
|
52
52
|
return reinterpret_cast<const TARGET &>(*this);
|
|
53
53
|
}
|
|
54
54
|
};
|
|
@@ -104,9 +104,9 @@ typedef unique_ptr<FunctionLocalState> (*init_cast_local_state_t)(CastLocalState
|
|
|
104
104
|
|
|
105
105
|
struct BoundCastInfo {
|
|
106
106
|
DUCKDB_API
|
|
107
|
-
BoundCastInfo(
|
|
107
|
+
BoundCastInfo( // NOLINT: allow explicit cast from cast_function_t
|
|
108
108
|
cast_function_t function, unique_ptr<BoundCastData> cast_data = nullptr,
|
|
109
|
-
init_cast_local_state_t init_local_state = nullptr);
|
|
109
|
+
init_cast_local_state_t init_local_state = nullptr);
|
|
110
110
|
cast_function_t function;
|
|
111
111
|
init_cast_local_state_t init_local_state;
|
|
112
112
|
unique_ptr<BoundCastData> cast_data;
|
|
@@ -21,7 +21,7 @@ template <class OP>
|
|
|
21
21
|
struct VectorStringCastOperator {
|
|
22
22
|
template <class INPUT_TYPE, class RESULT_TYPE>
|
|
23
23
|
static RESULT_TYPE Operation(INPUT_TYPE input, ValidityMask &mask, idx_t idx, void *dataptr) {
|
|
24
|
-
auto result =
|
|
24
|
+
auto result = reinterpret_cast<Vector *>(dataptr);
|
|
25
25
|
return OP::template Operation<INPUT_TYPE>(input, *result);
|
|
26
26
|
}
|
|
27
27
|
};
|
|
@@ -34,7 +34,7 @@ struct VectorTryCastOperator {
|
|
|
34
34
|
if (DUCKDB_LIKELY(OP::template Operation<INPUT_TYPE, RESULT_TYPE>(input, output))) {
|
|
35
35
|
return output;
|
|
36
36
|
}
|
|
37
|
-
auto data =
|
|
37
|
+
auto data = reinterpret_cast<VectorTryCastData *>(dataptr);
|
|
38
38
|
return HandleVectorCastError::Operation<RESULT_TYPE>(CastExceptionText<INPUT_TYPE, RESULT_TYPE>(input), mask,
|
|
39
39
|
idx, *data);
|
|
40
40
|
}
|
|
@@ -44,7 +44,7 @@ template <class OP>
|
|
|
44
44
|
struct VectorTryCastStrictOperator {
|
|
45
45
|
template <class INPUT_TYPE, class RESULT_TYPE>
|
|
46
46
|
static RESULT_TYPE Operation(INPUT_TYPE input, ValidityMask &mask, idx_t idx, void *dataptr) {
|
|
47
|
-
auto data =
|
|
47
|
+
auto data = reinterpret_cast<VectorTryCastData *>(dataptr);
|
|
48
48
|
RESULT_TYPE output;
|
|
49
49
|
if (DUCKDB_LIKELY(OP::template Operation<INPUT_TYPE, RESULT_TYPE>(input, output, data->parameters.strict))) {
|
|
50
50
|
return output;
|
|
@@ -58,7 +58,7 @@ template <class OP>
|
|
|
58
58
|
struct VectorTryCastErrorOperator {
|
|
59
59
|
template <class INPUT_TYPE, class RESULT_TYPE>
|
|
60
60
|
static RESULT_TYPE Operation(INPUT_TYPE input, ValidityMask &mask, idx_t idx, void *dataptr) {
|
|
61
|
-
auto data =
|
|
61
|
+
auto data = reinterpret_cast<VectorTryCastData *>(dataptr);
|
|
62
62
|
RESULT_TYPE output;
|
|
63
63
|
if (DUCKDB_LIKELY(OP::template Operation<INPUT_TYPE, RESULT_TYPE>(input, output, data->parameters))) {
|
|
64
64
|
return output;
|
|
@@ -74,7 +74,7 @@ template <class OP>
|
|
|
74
74
|
struct VectorTryCastStringOperator {
|
|
75
75
|
template <class INPUT_TYPE, class RESULT_TYPE>
|
|
76
76
|
static RESULT_TYPE Operation(INPUT_TYPE input, ValidityMask &mask, idx_t idx, void *dataptr) {
|
|
77
|
-
auto data =
|
|
77
|
+
auto data = reinterpret_cast<VectorTryCastData *>(dataptr);
|
|
78
78
|
RESULT_TYPE output;
|
|
79
79
|
if (DUCKDB_LIKELY(
|
|
80
80
|
OP::template Operation<INPUT_TYPE, RESULT_TYPE>(input, output, data->result, data->parameters))) {
|
|
@@ -99,7 +99,7 @@ template <class OP>
|
|
|
99
99
|
struct VectorDecimalCastOperator {
|
|
100
100
|
template <class INPUT_TYPE, class RESULT_TYPE>
|
|
101
101
|
static RESULT_TYPE Operation(INPUT_TYPE input, ValidityMask &mask, idx_t idx, void *dataptr) {
|
|
102
|
-
auto data =
|
|
102
|
+
auto data = reinterpret_cast<VectorDecimalCastData *>(dataptr);
|
|
103
103
|
RESULT_TYPE result_value;
|
|
104
104
|
if (!OP::template Operation<INPUT_TYPE, RESULT_TYPE>(input, result_value, data->vector_cast_data.parameters,
|
|
105
105
|
data->width, data->scale)) {
|
|
@@ -39,7 +39,7 @@ struct AnalyzeState {
|
|
|
39
39
|
}
|
|
40
40
|
template <class TARGET>
|
|
41
41
|
const TARGET &Cast() const {
|
|
42
|
-
|
|
42
|
+
DynamicCastCheck<TARGET>(this);
|
|
43
43
|
return reinterpret_cast<const TARGET &>(*this);
|
|
44
44
|
}
|
|
45
45
|
};
|
|
@@ -55,7 +55,7 @@ struct CompressionState {
|
|
|
55
55
|
}
|
|
56
56
|
template <class TARGET>
|
|
57
57
|
const TARGET &Cast() const {
|
|
58
|
-
|
|
58
|
+
DynamicCastCheck<TARGET>(this);
|
|
59
59
|
return reinterpret_cast<const TARGET &>(*this);
|
|
60
60
|
}
|
|
61
61
|
};
|
|
@@ -76,7 +76,7 @@ struct CompressedSegmentState {
|
|
|
76
76
|
}
|
|
77
77
|
template <class TARGET>
|
|
78
78
|
const TARGET &Cast() const {
|
|
79
|
-
|
|
79
|
+
DynamicCastCheck<TARGET>(this);
|
|
80
80
|
return reinterpret_cast<const TARGET &>(*this);
|
|
81
81
|
}
|
|
82
82
|
};
|
|
@@ -96,7 +96,7 @@ struct CompressionAppendState {
|
|
|
96
96
|
}
|
|
97
97
|
template <class TARGET>
|
|
98
98
|
const TARGET &Cast() const {
|
|
99
|
-
|
|
99
|
+
DynamicCastCheck<TARGET>(this);
|
|
100
100
|
return reinterpret_cast<const TARGET &>(*this);
|
|
101
101
|
}
|
|
102
102
|
};
|