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
|
@@ -50,7 +50,7 @@ template <class OP>
|
|
|
50
50
|
struct UnaryStringOperator {
|
|
51
51
|
template <class INPUT_TYPE, class RESULT_TYPE>
|
|
52
52
|
static RESULT_TYPE Operation(INPUT_TYPE input, ValidityMask &mask, idx_t idx, void *dataptr) {
|
|
53
|
-
auto vector =
|
|
53
|
+
auto vector = reinterpret_cast<Vector *>(dataptr);
|
|
54
54
|
return OP::template Operation<INPUT_TYPE, RESULT_TYPE>(input, *vector);
|
|
55
55
|
}
|
|
56
56
|
};
|
|
@@ -192,7 +192,8 @@ public:
|
|
|
192
192
|
|
|
193
193
|
template <class INPUT_TYPE, class RESULT_TYPE, class FUNC = std::function<RESULT_TYPE(INPUT_TYPE)>>
|
|
194
194
|
static void Execute(Vector &input, Vector &result, idx_t count, FUNC fun) {
|
|
195
|
-
ExecuteStandard<INPUT_TYPE, RESULT_TYPE, UnaryLambdaWrapper, FUNC>(input, result, count,
|
|
195
|
+
ExecuteStandard<INPUT_TYPE, RESULT_TYPE, UnaryLambdaWrapper, FUNC>(input, result, count,
|
|
196
|
+
reinterpret_cast<void *>(&fun), false);
|
|
196
197
|
}
|
|
197
198
|
|
|
198
199
|
template <class INPUT_TYPE, class RESULT_TYPE, class OP>
|
|
@@ -86,54 +86,72 @@ struct VectorOperations {
|
|
|
86
86
|
//===--------------------------------------------------------------------===//
|
|
87
87
|
// Select Comparisons
|
|
88
88
|
//===--------------------------------------------------------------------===//
|
|
89
|
-
static idx_t Equals(Vector &left, Vector &right, const SelectionVector
|
|
90
|
-
SelectionVector
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
static idx_t
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
89
|
+
static idx_t Equals(Vector &left, Vector &right, optional_ptr<const SelectionVector> sel, idx_t count,
|
|
90
|
+
optional_ptr<SelectionVector> true_sel, optional_ptr<SelectionVector> false_sel,
|
|
91
|
+
optional_ptr<ValidityMask> null_mask = nullptr);
|
|
92
|
+
static idx_t NotEquals(Vector &left, Vector &right, optional_ptr<const SelectionVector> sel, idx_t count,
|
|
93
|
+
optional_ptr<SelectionVector> true_sel, optional_ptr<SelectionVector> false_sel,
|
|
94
|
+
optional_ptr<ValidityMask> null_mask = nullptr);
|
|
95
|
+
static idx_t GreaterThan(Vector &left, Vector &right, optional_ptr<const SelectionVector> sel, idx_t count,
|
|
96
|
+
optional_ptr<SelectionVector> true_sel, optional_ptr<SelectionVector> false_sel,
|
|
97
|
+
optional_ptr<ValidityMask> null_mask = nullptr);
|
|
98
|
+
static idx_t GreaterThanEquals(Vector &left, Vector &right, optional_ptr<const SelectionVector> sel, idx_t count,
|
|
99
|
+
optional_ptr<SelectionVector> true_sel, optional_ptr<SelectionVector> false_sel,
|
|
100
|
+
optional_ptr<ValidityMask> null_mask = nullptr);
|
|
101
|
+
static idx_t LessThan(Vector &left, Vector &right, optional_ptr<const SelectionVector> sel, idx_t count,
|
|
102
|
+
optional_ptr<SelectionVector> true_sel, optional_ptr<SelectionVector> false_sel,
|
|
103
|
+
optional_ptr<ValidityMask> null_mask = nullptr);
|
|
104
|
+
static idx_t LessThanEquals(Vector &left, Vector &right, optional_ptr<const SelectionVector> sel, idx_t count,
|
|
105
|
+
optional_ptr<SelectionVector> true_sel, optional_ptr<SelectionVector> false_sel,
|
|
106
|
+
optional_ptr<ValidityMask> null_mask = nullptr);
|
|
101
107
|
|
|
102
108
|
// true := A != B with nulls being equal
|
|
103
|
-
static idx_t DistinctFrom(Vector &left, Vector &right, const SelectionVector
|
|
104
|
-
SelectionVector
|
|
109
|
+
static idx_t DistinctFrom(Vector &left, Vector &right, optional_ptr<const SelectionVector> sel, idx_t count,
|
|
110
|
+
optional_ptr<SelectionVector> true_sel, optional_ptr<SelectionVector> false_sel);
|
|
105
111
|
// true := A == B with nulls being equal
|
|
106
|
-
static idx_t NotDistinctFrom(Vector &left, Vector &right, const SelectionVector
|
|
107
|
-
SelectionVector
|
|
112
|
+
static idx_t NotDistinctFrom(Vector &left, Vector &right, optional_ptr<const SelectionVector> sel, idx_t count,
|
|
113
|
+
optional_ptr<SelectionVector> true_sel, optional_ptr<SelectionVector> false_sel);
|
|
108
114
|
// true := A > B with nulls being maximal
|
|
109
|
-
static idx_t DistinctGreaterThan(Vector &left, Vector &right, const SelectionVector
|
|
110
|
-
SelectionVector
|
|
115
|
+
static idx_t DistinctGreaterThan(Vector &left, Vector &right, optional_ptr<const SelectionVector> sel, idx_t count,
|
|
116
|
+
optional_ptr<SelectionVector> true_sel, optional_ptr<SelectionVector> false_sel,
|
|
117
|
+
optional_ptr<ValidityMask> null_mask = nullptr);
|
|
111
118
|
// true := A >= B with nulls being maximal
|
|
112
|
-
static idx_t DistinctGreaterThanEquals(Vector &left, Vector &right, const SelectionVector
|
|
113
|
-
|
|
119
|
+
static idx_t DistinctGreaterThanEquals(Vector &left, Vector &right, optional_ptr<const SelectionVector> sel,
|
|
120
|
+
idx_t count, optional_ptr<SelectionVector> true_sel,
|
|
121
|
+
optional_ptr<SelectionVector> false_sel,
|
|
122
|
+
optional_ptr<ValidityMask> null_mask = nullptr);
|
|
114
123
|
// true := A < B with nulls being maximal
|
|
115
|
-
static idx_t DistinctLessThan(Vector &left, Vector &right, const SelectionVector
|
|
116
|
-
SelectionVector
|
|
124
|
+
static idx_t DistinctLessThan(Vector &left, Vector &right, optional_ptr<const SelectionVector> sel, idx_t count,
|
|
125
|
+
optional_ptr<SelectionVector> true_sel, optional_ptr<SelectionVector> false_sel,
|
|
126
|
+
optional_ptr<ValidityMask> null_mask = nullptr);
|
|
117
127
|
// true := A <= B with nulls being maximal
|
|
118
|
-
static idx_t DistinctLessThanEquals(Vector &left, Vector &right, const SelectionVector
|
|
119
|
-
|
|
128
|
+
static idx_t DistinctLessThanEquals(Vector &left, Vector &right, optional_ptr<const SelectionVector> sel,
|
|
129
|
+
idx_t count, optional_ptr<SelectionVector> true_sel,
|
|
130
|
+
optional_ptr<SelectionVector> false_sel,
|
|
131
|
+
optional_ptr<ValidityMask> null_mask = nullptr);
|
|
120
132
|
|
|
121
133
|
// true := A > B with nulls being minimal
|
|
122
|
-
static idx_t DistinctGreaterThanNullsFirst(Vector &left, Vector &right, const SelectionVector
|
|
123
|
-
|
|
134
|
+
static idx_t DistinctGreaterThanNullsFirst(Vector &left, Vector &right, optional_ptr<const SelectionVector> sel,
|
|
135
|
+
idx_t count, optional_ptr<SelectionVector> true_sel,
|
|
136
|
+
optional_ptr<SelectionVector> false_sel,
|
|
137
|
+
optional_ptr<ValidityMask> null_mask = nullptr);
|
|
124
138
|
// true := A < B with nulls being minimal
|
|
125
|
-
static idx_t DistinctLessThanNullsFirst(Vector &left, Vector &right, const SelectionVector
|
|
126
|
-
|
|
139
|
+
static idx_t DistinctLessThanNullsFirst(Vector &left, Vector &right, optional_ptr<const SelectionVector> sel,
|
|
140
|
+
idx_t count, optional_ptr<SelectionVector> true_sel,
|
|
141
|
+
optional_ptr<SelectionVector> false_sel,
|
|
142
|
+
optional_ptr<ValidityMask> null_mask = nullptr);
|
|
127
143
|
|
|
128
144
|
//===--------------------------------------------------------------------===//
|
|
129
145
|
// Nested Comparisons
|
|
130
146
|
//===--------------------------------------------------------------------===//
|
|
131
147
|
// true := A != B with nulls being equal
|
|
132
|
-
static idx_t NestedNotEquals(Vector &left, Vector &right, const SelectionVector
|
|
133
|
-
SelectionVector
|
|
148
|
+
static idx_t NestedNotEquals(Vector &left, Vector &right, optional_ptr<const SelectionVector> sel, idx_t count,
|
|
149
|
+
optional_ptr<SelectionVector> true_sel, optional_ptr<SelectionVector> false_sel,
|
|
150
|
+
optional_ptr<ValidityMask> null_mask = nullptr);
|
|
134
151
|
// true := A == B with nulls being equal
|
|
135
|
-
static idx_t NestedEquals(Vector &left, Vector &right, const SelectionVector
|
|
136
|
-
SelectionVector
|
|
152
|
+
static idx_t NestedEquals(Vector &left, Vector &right, optional_ptr<const SelectionVector> sel, idx_t count,
|
|
153
|
+
optional_ptr<SelectionVector> true_sel, optional_ptr<SelectionVector> false_sel,
|
|
154
|
+
optional_ptr<ValidityMask> null_mask = nullptr);
|
|
137
155
|
|
|
138
156
|
//===--------------------------------------------------------------------===//
|
|
139
157
|
// Hash functions
|
|
@@ -19,9 +19,8 @@ class VirtualFileSystem : public FileSystem {
|
|
|
19
19
|
public:
|
|
20
20
|
VirtualFileSystem();
|
|
21
21
|
|
|
22
|
-
unique_ptr<FileHandle> OpenFile(const string &path,
|
|
23
|
-
|
|
24
|
-
FileOpener *opener = nullptr) override;
|
|
22
|
+
unique_ptr<FileHandle> OpenFile(const string &path, FileOpenFlags flags,
|
|
23
|
+
optional_ptr<FileOpener> opener = nullptr) override;
|
|
25
24
|
|
|
26
25
|
void Read(FileHandle &handle, void *buffer, int64_t nr_bytes, idx_t location) override;
|
|
27
26
|
void Write(FileHandle &handle, void *buffer, int64_t nr_bytes, idx_t location) override;
|
|
@@ -39,22 +38,22 @@ public:
|
|
|
39
38
|
void FileSync(FileHandle &handle) override;
|
|
40
39
|
|
|
41
40
|
// need to look up correct fs for this
|
|
42
|
-
bool DirectoryExists(const string &directory) override;
|
|
43
|
-
void CreateDirectory(const string &directory) override;
|
|
41
|
+
bool DirectoryExists(const string &directory, optional_ptr<FileOpener> opener) override;
|
|
42
|
+
void CreateDirectory(const string &directory, optional_ptr<FileOpener> opener) override;
|
|
44
43
|
|
|
45
|
-
void RemoveDirectory(const string &directory) override;
|
|
44
|
+
void RemoveDirectory(const string &directory, optional_ptr<FileOpener> opener) override;
|
|
46
45
|
|
|
47
46
|
bool ListFiles(const string &directory, const std::function<void(const string &, bool)> &callback,
|
|
48
47
|
FileOpener *opener = nullptr) override;
|
|
49
48
|
|
|
50
|
-
void MoveFile(const string &source, const string &target) override;
|
|
49
|
+
void MoveFile(const string &source, const string &target, optional_ptr<FileOpener> opener) override;
|
|
51
50
|
|
|
52
|
-
bool FileExists(const string &filename) override;
|
|
51
|
+
bool FileExists(const string &filename, optional_ptr<FileOpener> opener) override;
|
|
53
52
|
|
|
54
|
-
bool IsPipe(const string &filename) override;
|
|
55
|
-
|
|
53
|
+
bool IsPipe(const string &filename, optional_ptr<FileOpener> opener) override;
|
|
54
|
+
void RemoveFile(const string &filename, optional_ptr<FileOpener> opener) override;
|
|
56
55
|
|
|
57
|
-
|
|
56
|
+
vector<string> Glob(const string &path, FileOpener *opener = nullptr) override;
|
|
58
57
|
|
|
59
58
|
void RegisterSubSystem(unique_ptr<FileSystem> fs) override;
|
|
60
59
|
|
|
@@ -255,7 +255,7 @@ struct SumFun {
|
|
|
255
255
|
struct SumNoOverflowFun {
|
|
256
256
|
static constexpr const char *Name = "sum_no_overflow";
|
|
257
257
|
static constexpr const char *Parameters = "arg";
|
|
258
|
-
static constexpr const char *Description = "Calculates the sum value for all tuples in arg without overflow checks.";
|
|
258
|
+
static constexpr const char *Description = "Internal only. Calculates the sum value for all tuples in arg without overflow checks.";
|
|
259
259
|
static constexpr const char *Example = "sum_no_overflow(A)";
|
|
260
260
|
|
|
261
261
|
static AggregateFunctionSet GetFunctions();
|
|
@@ -65,6 +65,18 @@ struct RegularAdd {
|
|
|
65
65
|
}
|
|
66
66
|
};
|
|
67
67
|
|
|
68
|
+
struct HugeintAdd {
|
|
69
|
+
template <class STATE, class T>
|
|
70
|
+
static void AddNumber(STATE &state, T input) {
|
|
71
|
+
state.value = Hugeint::Add(state.value, input);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
template <class STATE, class T>
|
|
75
|
+
static void AddConstant(STATE &state, T input, idx_t count) {
|
|
76
|
+
AddNumber(state, Hugeint::Multiply(input, count));
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
|
|
68
80
|
struct KahanAdd {
|
|
69
81
|
template <class STATE, class T>
|
|
70
82
|
static void AddNumber(STATE &state, T input) {
|
|
@@ -77,7 +89,7 @@ struct KahanAdd {
|
|
|
77
89
|
}
|
|
78
90
|
};
|
|
79
91
|
|
|
80
|
-
struct
|
|
92
|
+
struct AddToHugeint {
|
|
81
93
|
static void AddValue(hugeint_t &result, uint64_t value, int positive) {
|
|
82
94
|
// integer summation taken from Tim Gubner et al. - Efficient Query Processing
|
|
83
95
|
// with Optimistically Compressed Hash Tables & Strings in the USSR
|
|
@@ -27,7 +27,7 @@ struct StaticFunctionDefinition {
|
|
|
27
27
|
get_aggregate_function_t get_aggregate_function;
|
|
28
28
|
get_aggregate_function_set_t get_aggregate_function_set;
|
|
29
29
|
|
|
30
|
-
static StaticFunctionDefinition *GetFunctionList();
|
|
30
|
+
static const StaticFunctionDefinition *GetFunctionList();
|
|
31
31
|
};
|
|
32
32
|
|
|
33
33
|
} // namespace duckdb
|
|
@@ -88,7 +88,8 @@ public:
|
|
|
88
88
|
result_validity = &FlatVector::Validity(result);
|
|
89
89
|
|
|
90
90
|
if (list_column.GetType().id() == LogicalTypeId::SQLNULL) {
|
|
91
|
-
|
|
91
|
+
result.SetVectorType(VectorType::CONSTANT_VECTOR);
|
|
92
|
+
ConstantVector::SetNull(result, true);
|
|
92
93
|
result_is_null = true;
|
|
93
94
|
return;
|
|
94
95
|
}
|
|
@@ -19,7 +19,7 @@ namespace duckdb {
|
|
|
19
19
|
//! are used within the execution engine
|
|
20
20
|
class ColumnBindingResolver : public LogicalOperatorVisitor {
|
|
21
21
|
public:
|
|
22
|
-
ColumnBindingResolver(bool verify_only = false);
|
|
22
|
+
explicit ColumnBindingResolver(bool verify_only = false);
|
|
23
23
|
|
|
24
24
|
void VisitOperator(LogicalOperator &op) override;
|
|
25
25
|
static void Verify(LogicalOperator &op);
|
|
@@ -158,6 +158,6 @@ private:
|
|
|
158
158
|
private:
|
|
159
159
|
// it is possible to create an expression executor without a ClientContext - but it should be avoided
|
|
160
160
|
DUCKDB_API ExpressionExecutor();
|
|
161
|
-
DUCKDB_API ExpressionExecutor(const vector<unique_ptr<Expression>> &exprs);
|
|
161
|
+
DUCKDB_API explicit ExpressionExecutor(const vector<unique_ptr<Expression>> &exprs);
|
|
162
162
|
};
|
|
163
163
|
} // namespace duckdb
|
|
@@ -10,7 +10,6 @@
|
|
|
10
10
|
|
|
11
11
|
#include "duckdb/common/common.hpp"
|
|
12
12
|
#include "duckdb/common/types/data_chunk.hpp"
|
|
13
|
-
#include "duckdb/common/cycle_counter.hpp"
|
|
14
13
|
#include "duckdb/function/function.hpp"
|
|
15
14
|
|
|
16
15
|
namespace duckdb {
|
|
@@ -29,7 +28,6 @@ struct ExpressionState {
|
|
|
29
28
|
vector<unique_ptr<ExpressionState>> child_states;
|
|
30
29
|
vector<LogicalType> types;
|
|
31
30
|
DataChunk intermediate_chunk;
|
|
32
|
-
CycleCounter profiler;
|
|
33
31
|
|
|
34
32
|
public:
|
|
35
33
|
void AddChild(Expression *expr);
|
|
@@ -48,14 +46,14 @@ public:
|
|
|
48
46
|
}
|
|
49
47
|
template <class TARGET>
|
|
50
48
|
const TARGET &Cast() const {
|
|
51
|
-
|
|
49
|
+
DynamicCastCheck<TARGET>(this);
|
|
52
50
|
return reinterpret_cast<const TARGET &>(*this);
|
|
53
51
|
}
|
|
54
52
|
};
|
|
55
53
|
|
|
56
54
|
struct ExecuteFunctionState : public ExpressionState {
|
|
57
55
|
ExecuteFunctionState(const Expression &expr, ExpressionExecutorState &root);
|
|
58
|
-
~ExecuteFunctionState();
|
|
56
|
+
~ExecuteFunctionState() override;
|
|
59
57
|
|
|
60
58
|
unique_ptr<FunctionLocalState> local_state;
|
|
61
59
|
|
|
@@ -70,7 +68,6 @@ struct ExpressionExecutorState {
|
|
|
70
68
|
|
|
71
69
|
unique_ptr<ExpressionState> root_state;
|
|
72
70
|
ExpressionExecutor *executor = nullptr;
|
|
73
|
-
CycleCounter profiler;
|
|
74
71
|
|
|
75
72
|
void Verify();
|
|
76
73
|
};
|
|
@@ -226,7 +226,7 @@ protected:
|
|
|
226
226
|
out << ((i && i % level_width == 0) ? group_separator : separator);
|
|
227
227
|
out << std::setw(number_width) << level.first[i];
|
|
228
228
|
}
|
|
229
|
-
out <<
|
|
229
|
+
out << '\n';
|
|
230
230
|
}
|
|
231
231
|
// Print the pointers
|
|
232
232
|
if (!level.second.empty()) {
|
|
@@ -239,7 +239,7 @@ protected:
|
|
|
239
239
|
: separator);
|
|
240
240
|
out << std::setw(number_width) << level.second[idx + child_nr];
|
|
241
241
|
}
|
|
242
|
-
out <<
|
|
242
|
+
out << '\n';
|
|
243
243
|
}
|
|
244
244
|
}
|
|
245
245
|
level_width *= FANOUT;
|
|
@@ -254,7 +254,7 @@ MergeSortTree<E, O, CMP, F, C>::MergeSortTree(Elements &&lowest_level, const CMP
|
|
|
254
254
|
const auto fanout = F;
|
|
255
255
|
const auto cascading = C;
|
|
256
256
|
const auto count = lowest_level.size();
|
|
257
|
-
tree.emplace_back(Level(lowest_level, Offsets()));
|
|
257
|
+
tree.emplace_back(Level(std::move(lowest_level), Offsets()));
|
|
258
258
|
|
|
259
259
|
const RunElement SENTINEL(MergeSortTraits<ElementType>::SENTINEL(), MergeSortTraits<idx_t>::SENTINEL());
|
|
260
260
|
|
|
@@ -17,13 +17,13 @@ class BoundAggregateExpression;
|
|
|
17
17
|
class BoundWindowExpression;
|
|
18
18
|
|
|
19
19
|
struct FunctionDataWrapper {
|
|
20
|
-
FunctionDataWrapper(unique_ptr<FunctionData> function_data_p) : function_data(std::move(function_data_p)) {
|
|
20
|
+
explicit FunctionDataWrapper(unique_ptr<FunctionData> function_data_p) : function_data(std::move(function_data_p)) {
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
unique_ptr<FunctionData> function_data;
|
|
24
24
|
};
|
|
25
25
|
|
|
26
|
-
struct AggregateObject {
|
|
26
|
+
struct AggregateObject { // NOLINT: work-around bug in clang-tidy
|
|
27
27
|
AggregateObject(AggregateFunction function, FunctionData *bind_data, idx_t child_count, idx_t payload_size,
|
|
28
28
|
AggregateType aggr_type, PhysicalType return_type, Expression *filter = nullptr);
|
|
29
29
|
explicit AggregateObject(BoundAggregateExpression *aggr);
|
package/src/duckdb/src/include/duckdb/execution/operator/aggregate/distinct_aggregate_data.hpp
CHANGED
|
@@ -44,7 +44,7 @@ private:
|
|
|
44
44
|
|
|
45
45
|
struct DistinctAggregateData {
|
|
46
46
|
public:
|
|
47
|
-
DistinctAggregateData(const DistinctAggregateCollectionInfo &info);
|
|
47
|
+
explicit DistinctAggregateData(const DistinctAggregateCollectionInfo &info);
|
|
48
48
|
DistinctAggregateData(const DistinctAggregateCollectionInfo &info, const GroupingSet &groups,
|
|
49
49
|
const vector<unique_ptr<Expression>> *group_expressions);
|
|
50
50
|
//! The data used by the hashtables
|
package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/column_count_scanner.hpp
CHANGED
|
@@ -48,9 +48,6 @@ public:
|
|
|
48
48
|
ColumnCountScanner(shared_ptr<CSVBufferManager> buffer_manager, const shared_ptr<CSVStateMachine> &state_machine,
|
|
49
49
|
shared_ptr<CSVErrorHandler> error_handler);
|
|
50
50
|
|
|
51
|
-
~ColumnCountScanner() {
|
|
52
|
-
}
|
|
53
|
-
|
|
54
51
|
ColumnCountResult &ParseChunk() override;
|
|
55
52
|
|
|
56
53
|
ColumnCountResult &GetResult() override;
|
|
@@ -18,16 +18,17 @@ namespace duckdb {
|
|
|
18
18
|
|
|
19
19
|
class CSVBufferHandle {
|
|
20
20
|
public:
|
|
21
|
-
CSVBufferHandle(BufferHandle handle_p, idx_t actual_size_p, const bool is_final_buffer_p,
|
|
22
|
-
idx_t buffer_index_p)
|
|
23
|
-
: handle(std::move(handle_p)), actual_size(actual_size_p),
|
|
24
|
-
file_idx(file_idx_p), buffer_idx(buffer_index_p) {};
|
|
25
|
-
CSVBufferHandle() : actual_size(0), is_last_buffer(false), file_idx(0), buffer_idx(0) {};
|
|
21
|
+
CSVBufferHandle(BufferHandle handle_p, idx_t actual_size_p, idx_t requested_size_p, const bool is_final_buffer_p,
|
|
22
|
+
idx_t file_idx_p, idx_t buffer_index_p)
|
|
23
|
+
: handle(std::move(handle_p)), actual_size(actual_size_p), requested_size(requested_size_p),
|
|
24
|
+
is_last_buffer(is_final_buffer_p), file_idx(file_idx_p), buffer_idx(buffer_index_p) {};
|
|
25
|
+
CSVBufferHandle() : actual_size(0), requested_size(0), is_last_buffer(false), file_idx(0), buffer_idx(0) {};
|
|
26
26
|
~CSVBufferHandle() {
|
|
27
27
|
}
|
|
28
28
|
//! Handle created during allocation
|
|
29
29
|
BufferHandle handle;
|
|
30
30
|
const idx_t actual_size;
|
|
31
|
+
const idx_t requested_size;
|
|
31
32
|
const bool is_last_buffer;
|
|
32
33
|
const idx_t file_idx;
|
|
33
34
|
const idx_t buffer_idx;
|
|
@@ -86,13 +87,15 @@ private:
|
|
|
86
87
|
ClientContext &context;
|
|
87
88
|
//! Actual size can be smaller than the buffer size in case we allocate it too optimistically.
|
|
88
89
|
idx_t actual_buffer_size;
|
|
90
|
+
idx_t requested_size;
|
|
89
91
|
//! Global position from the CSV File where this buffer starts
|
|
90
92
|
idx_t global_csv_start = 0;
|
|
91
93
|
//! Number of the file that is in this buffer
|
|
92
94
|
idx_t file_number = 0;
|
|
93
95
|
//! If we can seek in the file or not.
|
|
94
|
-
//! If we can't seek, this means we can't destroy the buffers
|
|
95
96
|
bool can_seek;
|
|
97
|
+
//! If this file is being fed by a pipe.
|
|
98
|
+
bool is_pipe;
|
|
96
99
|
//! Buffer Index, used as a batch index for insertion-order preservation
|
|
97
100
|
idx_t buffer_idx = 0;
|
|
98
101
|
//! -------- Allocated Block ---------//
|
|
@@ -42,10 +42,12 @@ public:
|
|
|
42
42
|
//! once.
|
|
43
43
|
bool Done();
|
|
44
44
|
|
|
45
|
+
void ResetBufferManager();
|
|
45
46
|
string GetFilePath();
|
|
46
47
|
|
|
47
48
|
ClientContext &context;
|
|
48
49
|
idx_t skip_rows = 0;
|
|
50
|
+
bool sniffing = false;
|
|
49
51
|
|
|
50
52
|
private:
|
|
51
53
|
//! Reads next buffer in reference to cached_buffers.front()
|
|
@@ -69,6 +71,7 @@ private:
|
|
|
69
71
|
//! If the file_handle used seek
|
|
70
72
|
bool has_seeked = false;
|
|
71
73
|
unordered_set<idx_t> reset_when_possible;
|
|
74
|
+
bool is_pipe;
|
|
72
75
|
};
|
|
73
76
|
|
|
74
77
|
} // namespace duckdb
|
|
@@ -37,61 +37,79 @@ public:
|
|
|
37
37
|
};
|
|
38
38
|
|
|
39
39
|
enum CSVErrorType : uint8_t {
|
|
40
|
-
CAST_ERROR = 0,
|
|
41
|
-
COLUMN_NAME_TYPE_MISMATCH = 1,
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
40
|
+
CAST_ERROR = 0, //! If when casting a value from string to the column type fails
|
|
41
|
+
COLUMN_NAME_TYPE_MISMATCH = 1, //! If there is a mismatch between Column Names and Types
|
|
42
|
+
TOO_FEW_COLUMNS = 2, //! If the CSV has too few columns
|
|
43
|
+
TOO_MANY_COLUMNS = 3, //! If the CSV has too many column
|
|
44
|
+
UNTERMINATED_QUOTES = 4, //! If a quote is not terminated
|
|
45
|
+
SNIFFING = 5, //! If something went wrong during sniffing and was not possible to find suitable candidates
|
|
46
|
+
MAXIMUM_LINE_SIZE = 6, //! Maximum line size was exceeded by a line in the CSV File
|
|
47
|
+
NULLPADDED_QUOTED_NEW_VALUE = 7, //! If the null_padding option is set, and we have quoted new values in parallel
|
|
48
|
+
INVALID_UNICODE = 8 //! If we have invalid unicode values
|
|
49
49
|
};
|
|
50
50
|
|
|
51
51
|
class CSVError {
|
|
52
52
|
public:
|
|
53
53
|
CSVError() {};
|
|
54
|
-
CSVError(string error_message, CSVErrorType type, idx_t column_idx,
|
|
54
|
+
CSVError(string error_message, CSVErrorType type, idx_t column_idx, string csv_row, LinesPerBoundary error_info,
|
|
55
|
+
idx_t row_byte_position, int64_t byte_position, const CSVReaderOptions &reader_options,
|
|
56
|
+
const string &fixes);
|
|
55
57
|
CSVError(string error_message, CSVErrorType type, LinesPerBoundary error_info);
|
|
56
58
|
//! Produces error messages for column name -> type mismatch.
|
|
57
59
|
static CSVError ColumnTypesError(case_insensitive_map_t<idx_t> sql_types_per_column, const vector<string> &names);
|
|
58
60
|
//! Produces error messages for casting errors
|
|
59
61
|
static CSVError CastError(const CSVReaderOptions &options, string &column_name, string &cast_error,
|
|
60
|
-
idx_t column_idx,
|
|
62
|
+
idx_t column_idx, string &csv_row, LinesPerBoundary error_info, idx_t row_byte_position,
|
|
63
|
+
int64_t byte_position, LogicalTypeId type);
|
|
61
64
|
//! Produces error for when the line size exceeds the maximum line size option
|
|
62
|
-
static CSVError LineSizeError(const CSVReaderOptions &options, idx_t actual_size, LinesPerBoundary error_info
|
|
65
|
+
static CSVError LineSizeError(const CSVReaderOptions &options, idx_t actual_size, LinesPerBoundary error_info,
|
|
66
|
+
string &csv_row, idx_t byte_position);
|
|
63
67
|
//! Produces error for when the sniffer couldn't find viable options
|
|
64
68
|
static CSVError SniffingError(string &file_path);
|
|
65
69
|
//! Produces error messages for unterminated quoted values
|
|
66
|
-
static CSVError UnterminatedQuotesError(const CSVReaderOptions &options,
|
|
67
|
-
|
|
70
|
+
static CSVError UnterminatedQuotesError(const CSVReaderOptions &options, idx_t current_column,
|
|
71
|
+
LinesPerBoundary error_info, string &csv_row, idx_t row_byte_position,
|
|
72
|
+
int64_t byte_position);
|
|
68
73
|
//! Produces error messages for null_padding option is set and we have quoted new values in parallel
|
|
69
74
|
static CSVError NullPaddingFail(const CSVReaderOptions &options, LinesPerBoundary error_info);
|
|
70
75
|
//! Produces error for incorrect (e.g., smaller and lower than the predefined) number of columns in a CSV Line
|
|
71
|
-
static CSVError IncorrectColumnAmountError(const CSVReaderOptions &
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
+
static CSVError IncorrectColumnAmountError(const CSVReaderOptions &state_machine, idx_t actual_columns,
|
|
77
|
+
LinesPerBoundary error_info, string &csv_row, idx_t row_byte_position,
|
|
78
|
+
int64_t byte_position);
|
|
79
|
+
static CSVError InvalidUTF8(const CSVReaderOptions &options, idx_t current_column, LinesPerBoundary error_info,
|
|
80
|
+
string &csv_row, idx_t row_byte_position, int64_t byte_position);
|
|
81
|
+
|
|
76
82
|
idx_t GetBoundaryIndex() {
|
|
77
83
|
return error_info.boundary_idx;
|
|
78
84
|
}
|
|
79
85
|
|
|
86
|
+
//! We might want to remove newline in errors if we are doing them for the rejects tables
|
|
87
|
+
void RemoveNewLine(string &error);
|
|
88
|
+
|
|
80
89
|
//! Actual error message
|
|
81
90
|
string error_message;
|
|
91
|
+
//! Full error message used in throws
|
|
92
|
+
//! 1. The Actual error
|
|
93
|
+
//! 2. How to fix it
|
|
94
|
+
//! 3. Options that generated the error
|
|
95
|
+
string full_error_message;
|
|
82
96
|
//! Error Type
|
|
83
97
|
CSVErrorType type;
|
|
84
98
|
//! Column Index where error happened
|
|
85
99
|
idx_t column_idx;
|
|
86
|
-
//!
|
|
87
|
-
|
|
100
|
+
//! Original CSV row where error happened
|
|
101
|
+
string csv_row;
|
|
88
102
|
//! Line information regarding this error
|
|
89
103
|
LinesPerBoundary error_info;
|
|
104
|
+
//! Byte position of where the row starts
|
|
105
|
+
idx_t row_byte_position;
|
|
106
|
+
//! Byte Position where error occurred.
|
|
107
|
+
int64_t byte_position;
|
|
90
108
|
};
|
|
91
109
|
|
|
92
110
|
class CSVErrorHandler {
|
|
93
111
|
public:
|
|
94
|
-
CSVErrorHandler(bool ignore_errors = false);
|
|
112
|
+
explicit CSVErrorHandler(bool ignore_errors = false);
|
|
95
113
|
//! Throws the error
|
|
96
114
|
void Error(CSVError csv_error, bool force_error = false);
|
|
97
115
|
//! If we have a cached error, and we can now error, we error.
|
|
@@ -28,6 +28,9 @@ public:
|
|
|
28
28
|
bool CanSeek();
|
|
29
29
|
void Seek(idx_t position);
|
|
30
30
|
bool OnDiskFile();
|
|
31
|
+
bool IsPipe();
|
|
32
|
+
|
|
33
|
+
void Reset();
|
|
31
34
|
|
|
32
35
|
idx_t FileSize();
|
|
33
36
|
|
|
@@ -50,6 +53,8 @@ private:
|
|
|
50
53
|
string path;
|
|
51
54
|
bool can_seek = false;
|
|
52
55
|
bool on_disk_file = false;
|
|
56
|
+
bool is_pipe = false;
|
|
57
|
+
|
|
53
58
|
idx_t file_size = 0;
|
|
54
59
|
|
|
55
60
|
idx_t requested_bytes = 0;
|
|
@@ -24,10 +24,12 @@ class Deserializer;
|
|
|
24
24
|
//! Wrapper for CSV Options that can be manually set by the user
|
|
25
25
|
//! It is important to make this difference for options that can be automatically sniffed AND manually set.
|
|
26
26
|
template <typename T>
|
|
27
|
-
struct CSVOption {
|
|
27
|
+
struct CSVOption { // NOLINT: work-around bug in clang-tidy
|
|
28
28
|
public:
|
|
29
|
-
CSVOption(T value_p) : value(value_p) {
|
|
30
|
-
|
|
29
|
+
CSVOption(T value_p) : value(value_p) { // NOLINT: allow implicit conversion from value
|
|
30
|
+
}
|
|
31
|
+
CSVOption(T value_p, bool set_by_user_p) : value(value_p), set_by_user(set_by_user_p) {
|
|
32
|
+
}
|
|
31
33
|
CSVOption() {};
|
|
32
34
|
|
|
33
35
|
//! Sets value.
|
|
@@ -73,7 +75,7 @@ public:
|
|
|
73
75
|
return value != other;
|
|
74
76
|
}
|
|
75
77
|
//! Returns CSV Option value
|
|
76
|
-
const T GetValue() const {
|
|
78
|
+
inline const T GetValue() const {
|
|
77
79
|
return value;
|
|
78
80
|
}
|
|
79
81
|
bool IsSetByUser() const {
|