duckdb 0.10.2-dev0.0 → 0.10.2-dev5.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
- package/test/jsdoc.test.ts +3 -0
|
@@ -50,6 +50,9 @@ public:
|
|
|
50
50
|
inline Aggregates &GetAggregates() {
|
|
51
51
|
return aggregates;
|
|
52
52
|
}
|
|
53
|
+
const inline Aggregates &GetAggregates() const {
|
|
54
|
+
return aggregates;
|
|
55
|
+
}
|
|
53
56
|
//! Returns a map from column id to the struct TupleDataLayout
|
|
54
57
|
const inline TupleDataLayout &GetStructLayout(idx_t col_idx) const {
|
|
55
58
|
D_ASSERT(struct_layouts->find(col_idx) != struct_layouts->end());
|
|
@@ -89,7 +92,11 @@ public:
|
|
|
89
92
|
}
|
|
90
93
|
//! Returns whether any of the aggregates have a destructor
|
|
91
94
|
inline bool HasDestructor() const {
|
|
92
|
-
return
|
|
95
|
+
return !aggr_destructor_idxs.empty();
|
|
96
|
+
}
|
|
97
|
+
//! Returns the indices of the aggregates that have destructors
|
|
98
|
+
inline const vector<idx_t> &GetAggregateDestructorIndices() const {
|
|
99
|
+
return aggr_destructor_idxs;
|
|
93
100
|
}
|
|
94
101
|
|
|
95
102
|
private:
|
|
@@ -113,8 +120,8 @@ private:
|
|
|
113
120
|
bool all_constant;
|
|
114
121
|
//! Offset to the heap size of every row
|
|
115
122
|
idx_t heap_size_offset;
|
|
116
|
-
//!
|
|
117
|
-
|
|
123
|
+
//! Indices of aggregate functions that have a destructor
|
|
124
|
+
vector<idx_t> aggr_destructor_idxs;
|
|
118
125
|
};
|
|
119
126
|
|
|
120
127
|
} // namespace duckdb
|
|
@@ -43,7 +43,7 @@ struct SelectionVector {
|
|
|
43
43
|
explicit SelectionVector(buffer_ptr<SelectionData> data) {
|
|
44
44
|
Initialize(std::move(data));
|
|
45
45
|
}
|
|
46
|
-
SelectionVector &operator=(SelectionVector &&other) {
|
|
46
|
+
SelectionVector &operator=(SelectionVector &&other) noexcept {
|
|
47
47
|
sel_vector = other.sel_vector;
|
|
48
48
|
other.sel_vector = nullptr;
|
|
49
49
|
selection_data = std::move(other.selection_data);
|
|
@@ -83,24 +83,24 @@ public:
|
|
|
83
83
|
sel_vector = other.sel_vector;
|
|
84
84
|
}
|
|
85
85
|
|
|
86
|
-
inline void set_index(idx_t idx, idx_t loc) {
|
|
86
|
+
inline void set_index(idx_t idx, idx_t loc) { // NOLINT: allow casing for legacy reasons
|
|
87
87
|
sel_vector[idx] = UnsafeNumericCast<sel_t>(loc);
|
|
88
88
|
}
|
|
89
|
-
inline void swap(idx_t i, idx_t j) {
|
|
89
|
+
inline void swap(idx_t i, idx_t j) { // NOLINT: allow casing for legacy reasons
|
|
90
90
|
sel_t tmp = sel_vector[i];
|
|
91
91
|
sel_vector[i] = sel_vector[j];
|
|
92
92
|
sel_vector[j] = tmp;
|
|
93
93
|
}
|
|
94
|
-
inline idx_t get_index(idx_t idx) const {
|
|
94
|
+
inline idx_t get_index(idx_t idx) const { // NOLINT: allow casing for legacy reasons
|
|
95
95
|
return sel_vector ? sel_vector[idx] : idx;
|
|
96
96
|
}
|
|
97
|
-
sel_t *data() {
|
|
97
|
+
sel_t *data() { // NOLINT: allow casing for legacy reasons
|
|
98
98
|
return sel_vector;
|
|
99
99
|
}
|
|
100
|
-
const sel_t *data() const {
|
|
100
|
+
const sel_t *data() const { // NOLINT: allow casing for legacy reasons
|
|
101
101
|
return sel_vector;
|
|
102
102
|
}
|
|
103
|
-
buffer_ptr<SelectionData> sel_data() {
|
|
103
|
+
buffer_ptr<SelectionData> sel_data() { // NOLINT: allow casing for legacy reasons
|
|
104
104
|
return selection_data;
|
|
105
105
|
}
|
|
106
106
|
buffer_ptr<SelectionData> Slice(const SelectionVector &sel, idx_t count) const;
|
|
@@ -119,7 +119,7 @@ private:
|
|
|
119
119
|
|
|
120
120
|
class OptionalSelection {
|
|
121
121
|
public:
|
|
122
|
-
explicit
|
|
122
|
+
explicit OptionalSelection(SelectionVector *sel_p) {
|
|
123
123
|
Initialize(sel_p);
|
|
124
124
|
}
|
|
125
125
|
void Initialize(SelectionVector *sel_p) {
|
|
@@ -130,7 +130,7 @@ public:
|
|
|
130
130
|
}
|
|
131
131
|
}
|
|
132
132
|
|
|
133
|
-
inline operator SelectionVector *() {
|
|
133
|
+
inline operator SelectionVector *() { // NOLINT: allow implicit conversion to SelectionVector
|
|
134
134
|
return sel;
|
|
135
135
|
}
|
|
136
136
|
|
|
@@ -169,10 +169,10 @@ public:
|
|
|
169
169
|
bool Initialized() const {
|
|
170
170
|
return initialized;
|
|
171
171
|
}
|
|
172
|
-
void Initialize(idx_t
|
|
172
|
+
void Initialize(idx_t new_size) {
|
|
173
173
|
D_ASSERT(!initialized);
|
|
174
|
-
this->size =
|
|
175
|
-
sel_vec.Initialize(
|
|
174
|
+
this->size = new_size;
|
|
175
|
+
sel_vec.Initialize(new_size);
|
|
176
176
|
internal_opt_selvec.Initialize(&sel_vec);
|
|
177
177
|
initialized = true;
|
|
178
178
|
}
|
|
@@ -18,7 +18,7 @@ namespace duckdb {
|
|
|
18
18
|
//! returned pointer will remain valid until the StringHeap is destroyed
|
|
19
19
|
class StringHeap {
|
|
20
20
|
public:
|
|
21
|
-
DUCKDB_API StringHeap(Allocator &allocator = Allocator::DefaultAllocator());
|
|
21
|
+
DUCKDB_API explicit StringHeap(Allocator &allocator = Allocator::DefaultAllocator());
|
|
22
22
|
|
|
23
23
|
DUCKDB_API void Destroy();
|
|
24
24
|
DUCKDB_API void Move(StringHeap &other);
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
#include "duckdb/common/numeric_utils.hpp"
|
|
15
15
|
|
|
16
16
|
#include <cstring>
|
|
17
|
+
#include <algorithm>
|
|
17
18
|
|
|
18
19
|
namespace duckdb {
|
|
19
20
|
|
|
@@ -60,13 +61,11 @@ public:
|
|
|
60
61
|
}
|
|
61
62
|
}
|
|
62
63
|
|
|
63
|
-
string_t(const char *data)
|
|
64
|
-
: string_t(data,
|
|
65
|
-
UnsafeNumericCast<uint32_t>(strlen(data))) { // NOLINT: Allow implicit conversion from `const char*`
|
|
64
|
+
string_t(const char *data) // NOLINT: Allow implicit conversion from `const char*`
|
|
65
|
+
: string_t(data, UnsafeNumericCast<uint32_t>(strlen(data))) {
|
|
66
66
|
}
|
|
67
|
-
string_t(const string &value)
|
|
68
|
-
: string_t(value.c_str(),
|
|
69
|
-
UnsafeNumericCast<uint32_t>(value.size())) { // NOLINT: Allow implicit conversion from `const char*`
|
|
67
|
+
string_t(const string &value) // NOLINT: Allow implicit conversion from `const char*`
|
|
68
|
+
: string_t(value.c_str(), UnsafeNumericCast<uint32_t>(value.size())) {
|
|
70
69
|
}
|
|
71
70
|
|
|
72
71
|
bool IsInlined() const {
|
|
@@ -88,8 +87,8 @@ public:
|
|
|
88
87
|
return value.inlined.inlined;
|
|
89
88
|
}
|
|
90
89
|
|
|
91
|
-
char *GetPrefixWriteable()
|
|
92
|
-
return
|
|
90
|
+
char *GetPrefixWriteable() {
|
|
91
|
+
return value.inlined.inlined;
|
|
93
92
|
}
|
|
94
93
|
|
|
95
94
|
idx_t GetSize() const {
|
|
@@ -142,20 +141,21 @@ public:
|
|
|
142
141
|
struct StringComparisonOperators {
|
|
143
142
|
static inline bool Equals(const string_t &a, const string_t &b) {
|
|
144
143
|
#ifdef DUCKDB_DEBUG_NO_INLINE
|
|
145
|
-
if (a.GetSize() != b.GetSize())
|
|
144
|
+
if (a.GetSize() != b.GetSize()) {
|
|
146
145
|
return false;
|
|
146
|
+
}
|
|
147
147
|
return (memcmp(a.GetData(), b.GetData(), a.GetSize()) == 0);
|
|
148
148
|
#endif
|
|
149
|
-
uint64_t
|
|
150
|
-
uint64_t
|
|
151
|
-
if (
|
|
149
|
+
uint64_t a_bulk_comp = Load<uint64_t>(const_data_ptr_cast(&a));
|
|
150
|
+
uint64_t b_bulk_comp = Load<uint64_t>(const_data_ptr_cast(&b));
|
|
151
|
+
if (a_bulk_comp != b_bulk_comp) {
|
|
152
152
|
// Either length or prefix are different -> not equal
|
|
153
153
|
return false;
|
|
154
154
|
}
|
|
155
155
|
// they have the same length and same prefix!
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
if (
|
|
156
|
+
a_bulk_comp = Load<uint64_t>(const_data_ptr_cast(&a) + 8u);
|
|
157
|
+
b_bulk_comp = Load<uint64_t>(const_data_ptr_cast(&b) + 8u);
|
|
158
|
+
if (a_bulk_comp == b_bulk_comp) {
|
|
159
159
|
// either they are both inlined (so compare equal) or point to the same string (so compare equal)
|
|
160
160
|
return true;
|
|
161
161
|
}
|
|
@@ -177,11 +177,11 @@ public:
|
|
|
177
177
|
const uint32_t min_length = std::min<uint32_t>(left_length, right_length);
|
|
178
178
|
|
|
179
179
|
#ifndef DUCKDB_DEBUG_NO_INLINE
|
|
180
|
-
uint32_t
|
|
181
|
-
uint32_t
|
|
180
|
+
uint32_t a_prefix = Load<uint32_t>(const_data_ptr_cast(left.GetPrefix()));
|
|
181
|
+
uint32_t b_prefix = Load<uint32_t>(const_data_ptr_cast(right.GetPrefix()));
|
|
182
182
|
|
|
183
183
|
// Utility to move 0xa1b2c3d4 into 0xd4c3b2a1, basically inverting the order byte-a-byte
|
|
184
|
-
auto
|
|
184
|
+
auto byte_swap = [](uint32_t v) -> uint32_t {
|
|
185
185
|
uint32_t t1 = (v >> 16u) | (v << 16u);
|
|
186
186
|
uint32_t t2 = t1 & 0x00ff00ff;
|
|
187
187
|
uint32_t t3 = t1 & 0xff00ff00;
|
|
@@ -194,8 +194,9 @@ public:
|
|
|
194
194
|
// if the prefix is smaller(after bswap), it will stay smaller regardless of the extra bytes
|
|
195
195
|
// if the prefix is equal, the extra bytes are guaranteed to be /0 for the shorter one
|
|
196
196
|
|
|
197
|
-
if (
|
|
198
|
-
return
|
|
197
|
+
if (a_prefix != b_prefix) {
|
|
198
|
+
return byte_swap(a_prefix) > byte_swap(b_prefix);
|
|
199
|
+
}
|
|
199
200
|
#endif
|
|
200
201
|
auto memcmp_res = memcmp(left.GetData(), right.GetData(), min_length);
|
|
201
202
|
return memcmp_res > 0 || (memcmp_res == 0 && left_length > right_length);
|
|
@@ -18,9 +18,9 @@
|
|
|
18
18
|
|
|
19
19
|
namespace duckdb {
|
|
20
20
|
|
|
21
|
-
struct date_t;
|
|
22
|
-
struct dtime_t;
|
|
23
|
-
struct dtime_tz_t;
|
|
21
|
+
struct date_t; // NOLINT
|
|
22
|
+
struct dtime_t; // NOLINT
|
|
23
|
+
struct dtime_tz_t; // NOLINT
|
|
24
24
|
|
|
25
25
|
//! Type used to represent timestamps (seconds,microseconds,milliseconds or nanoseconds since 1970-01-01)
|
|
26
26
|
struct timestamp_t { // NOLINT
|
|
@@ -20,7 +20,7 @@ class UUID {
|
|
|
20
20
|
public:
|
|
21
21
|
constexpr static const uint8_t STRING_SIZE = 36;
|
|
22
22
|
//! Convert a uuid string to a hugeint object
|
|
23
|
-
static bool FromString(string str, hugeint_t &result);
|
|
23
|
+
static bool FromString(const string &str, hugeint_t &result);
|
|
24
24
|
//! Convert a uuid string to a hugeint object
|
|
25
25
|
static bool FromCString(const char *str, idx_t len, hugeint_t &result) {
|
|
26
26
|
return FromString(string(str, 0, len), result);
|
|
@@ -42,7 +42,7 @@ public:
|
|
|
42
42
|
return string(buff, STRING_SIZE);
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
-
static hugeint_t FromString(string str) {
|
|
45
|
+
static hugeint_t FromString(const string &str) {
|
|
46
46
|
hugeint_t result;
|
|
47
47
|
FromString(str, result);
|
|
48
48
|
return result;
|
|
@@ -191,13 +191,13 @@ public:
|
|
|
191
191
|
DUCKDB_API static Value BIT(const string &data);
|
|
192
192
|
|
|
193
193
|
//! Creates an aggregate state
|
|
194
|
-
DUCKDB_API static Value AGGREGATE_STATE(const LogicalType &type, const_data_ptr_t data, idx_t len);
|
|
194
|
+
DUCKDB_API static Value AGGREGATE_STATE(const LogicalType &type, const_data_ptr_t data, idx_t len); // NOLINT
|
|
195
195
|
|
|
196
196
|
template <class T>
|
|
197
197
|
T GetValue() const;
|
|
198
198
|
template <class T>
|
|
199
199
|
static Value CreateValue(T value) {
|
|
200
|
-
static_assert(AlwaysFalse<T>::
|
|
200
|
+
static_assert(AlwaysFalse<T>::VALUE, "No specialization exists for this type");
|
|
201
201
|
return Value(nullptr);
|
|
202
202
|
}
|
|
203
203
|
// Returns the internal value. Unlike GetValue(), this method does not perform casting, and assumes T matches the
|
|
@@ -83,9 +83,9 @@ public:
|
|
|
83
83
|
//! Create a vector that references the other vector
|
|
84
84
|
DUCKDB_API Vector(Vector &other);
|
|
85
85
|
//! Create a vector that slices another vector
|
|
86
|
-
DUCKDB_API explicit Vector(Vector &other, const SelectionVector &sel, idx_t count);
|
|
86
|
+
DUCKDB_API explicit Vector(const Vector &other, const SelectionVector &sel, idx_t count);
|
|
87
87
|
//! Create a vector that slices another vector between a pair of offsets
|
|
88
|
-
DUCKDB_API explicit Vector(Vector &other, idx_t offset, idx_t end);
|
|
88
|
+
DUCKDB_API explicit Vector(const Vector &other, idx_t offset, idx_t end);
|
|
89
89
|
//! Create a vector of size one holding the passed on value
|
|
90
90
|
DUCKDB_API explicit Vector(const Value &value);
|
|
91
91
|
//! Create a vector of size tuple_count (non-standard)
|
|
@@ -291,19 +291,19 @@ struct ConstantVector {
|
|
|
291
291
|
struct DictionaryVector {
|
|
292
292
|
static inline const SelectionVector &SelVector(const Vector &vector) {
|
|
293
293
|
D_ASSERT(vector.GetVectorType() == VectorType::DICTIONARY_VECTOR);
|
|
294
|
-
return
|
|
294
|
+
return vector.buffer->Cast<DictionaryBuffer>().GetSelVector();
|
|
295
295
|
}
|
|
296
296
|
static inline SelectionVector &SelVector(Vector &vector) {
|
|
297
297
|
D_ASSERT(vector.GetVectorType() == VectorType::DICTIONARY_VECTOR);
|
|
298
|
-
return
|
|
298
|
+
return vector.buffer->Cast<DictionaryBuffer>().GetSelVector();
|
|
299
299
|
}
|
|
300
300
|
static inline const Vector &Child(const Vector &vector) {
|
|
301
301
|
D_ASSERT(vector.GetVectorType() == VectorType::DICTIONARY_VECTOR);
|
|
302
|
-
return
|
|
302
|
+
return vector.auxiliary->Cast<VectorChildBuffer>().data;
|
|
303
303
|
}
|
|
304
304
|
static inline Vector &Child(Vector &vector) {
|
|
305
305
|
D_ASSERT(vector.GetVectorType() == VectorType::DICTIONARY_VECTOR);
|
|
306
|
-
return
|
|
306
|
+
return vector.auxiliary->Cast<VectorChildBuffer>().data;
|
|
307
307
|
}
|
|
308
308
|
};
|
|
309
309
|
|
|
@@ -390,6 +390,10 @@ struct ListVector {
|
|
|
390
390
|
DUCKDB_API static void GetConsecutiveChildSelVector(Vector &list, SelectionVector &sel, idx_t offset, idx_t count);
|
|
391
391
|
//! Share the entry of the other list vector
|
|
392
392
|
DUCKDB_API static void ReferenceEntry(Vector &vector, Vector &other);
|
|
393
|
+
|
|
394
|
+
private:
|
|
395
|
+
template <class T>
|
|
396
|
+
static T &GetEntryInternal(T &vector);
|
|
393
397
|
};
|
|
394
398
|
|
|
395
399
|
struct StringVector {
|
|
@@ -493,6 +497,10 @@ struct ArrayVector {
|
|
|
493
497
|
DUCKDB_API static Vector &GetEntry(Vector &vector);
|
|
494
498
|
//! Gets the total size of the underlying child-vector of an array
|
|
495
499
|
DUCKDB_API static idx_t GetTotalSize(const Vector &vector);
|
|
500
|
+
|
|
501
|
+
private:
|
|
502
|
+
template <class T>
|
|
503
|
+
static T &GetEntryInternal(T &vector);
|
|
496
504
|
};
|
|
497
505
|
|
|
498
506
|
enum class UnionInvalidReason : uint8_t {
|
|
@@ -552,7 +560,7 @@ struct UnionVector {
|
|
|
552
560
|
struct SequenceVector {
|
|
553
561
|
static void GetSequence(const Vector &vector, int64_t &start, int64_t &increment, int64_t &sequence_count) {
|
|
554
562
|
D_ASSERT(vector.GetVectorType() == VectorType::SEQUENCE_VECTOR);
|
|
555
|
-
auto data =
|
|
563
|
+
auto data = reinterpret_cast<int64_t *>(vector.buffer->GetData());
|
|
556
564
|
start = data[0];
|
|
557
565
|
increment = data[1];
|
|
558
566
|
sequence_count = data[2];
|
|
@@ -24,7 +24,7 @@ class TypeCatalogEntry;
|
|
|
24
24
|
class Vector;
|
|
25
25
|
class ClientContext;
|
|
26
26
|
|
|
27
|
-
struct string_t;
|
|
27
|
+
struct string_t; // NOLINT: mimic std casing
|
|
28
28
|
|
|
29
29
|
template <class T>
|
|
30
30
|
using child_list_t = vector<std::pair<std::string, T>>;
|
|
@@ -32,12 +32,12 @@ using child_list_t = vector<std::pair<std::string, T>>;
|
|
|
32
32
|
template <class T>
|
|
33
33
|
using buffer_ptr = shared_ptr<T>;
|
|
34
34
|
|
|
35
|
-
template <class T, typename...
|
|
36
|
-
buffer_ptr<T> make_buffer(
|
|
37
|
-
return make_shared<T>(std::forward<
|
|
35
|
+
template <class T, typename... ARGS>
|
|
36
|
+
buffer_ptr<T> make_buffer(ARGS &&...args) { // NOLINT: mimic std casing
|
|
37
|
+
return make_shared<T>(std::forward<ARGS>(args)...);
|
|
38
38
|
}
|
|
39
39
|
|
|
40
|
-
struct list_entry_t {
|
|
40
|
+
struct list_entry_t { // NOLINT: mimic std casing
|
|
41
41
|
list_entry_t() = default;
|
|
42
42
|
list_entry_t(uint64_t offset, uint64_t length) : offset(offset), length(length) {
|
|
43
43
|
}
|
|
@@ -234,7 +234,7 @@ enum class LogicalTypeId : uint8_t {
|
|
|
234
234
|
|
|
235
235
|
struct ExtraTypeInfo;
|
|
236
236
|
|
|
237
|
-
struct aggregate_state_t;
|
|
237
|
+
struct aggregate_state_t; // NOLINT: mimic std casing
|
|
238
238
|
|
|
239
239
|
struct LogicalType {
|
|
240
240
|
DUCKDB_API LogicalType();
|
|
@@ -245,7 +245,7 @@ struct LogicalType {
|
|
|
245
245
|
|
|
246
246
|
DUCKDB_API ~LogicalType();
|
|
247
247
|
|
|
248
|
-
inline LogicalTypeId id() const {
|
|
248
|
+
inline LogicalTypeId id() const { // NOLINT: mimic std casing
|
|
249
249
|
return id_;
|
|
250
250
|
}
|
|
251
251
|
inline PhysicalType InternalType() const {
|
|
@@ -279,6 +279,9 @@ struct LogicalType {
|
|
|
279
279
|
|
|
280
280
|
// copy assignment
|
|
281
281
|
inline LogicalType &operator=(const LogicalType &other) {
|
|
282
|
+
if (this == &other) {
|
|
283
|
+
return *this;
|
|
284
|
+
}
|
|
282
285
|
id_ = other.id_;
|
|
283
286
|
physical_type_ = other.physical_type_;
|
|
284
287
|
type_info_ = other.type_info_;
|
|
@@ -337,9 +340,9 @@ struct LogicalType {
|
|
|
337
340
|
bool Contains(LogicalTypeId type_id) const;
|
|
338
341
|
|
|
339
342
|
private:
|
|
340
|
-
LogicalTypeId id_;
|
|
341
|
-
PhysicalType physical_type_;
|
|
342
|
-
shared_ptr<ExtraTypeInfo> type_info_;
|
|
343
|
+
LogicalTypeId id_; // NOLINT: allow this naming for legacy reasons
|
|
344
|
+
PhysicalType physical_type_; // NOLINT: allow this naming for legacy reasons
|
|
345
|
+
shared_ptr<ExtraTypeInfo> type_info_; // NOLINT: allow this naming for legacy reasons
|
|
343
346
|
|
|
344
347
|
private:
|
|
345
348
|
PhysicalType GetInternalType();
|
|
@@ -520,6 +523,7 @@ bool ApproxEqual(double l, double r);
|
|
|
520
523
|
struct aggregate_state_t {
|
|
521
524
|
aggregate_state_t() {
|
|
522
525
|
}
|
|
526
|
+
// NOLINTNEXTLINE: work around bug in clang-tidy
|
|
523
527
|
aggregate_state_t(string function_name_p, LogicalType return_type_p, vector<LogicalType> bound_argument_types_p)
|
|
524
528
|
: function_name(std::move(function_name_p)), return_type(std::move(return_type_p)),
|
|
525
529
|
bound_argument_types(std::move(bound_argument_types_p)) {
|
|
@@ -29,7 +29,7 @@ public:
|
|
|
29
29
|
vector<unique_ptr<READER_TYPE>> union_readers;
|
|
30
30
|
case_insensitive_map_t<idx_t> union_names_map;
|
|
31
31
|
for (idx_t file_idx = 0; file_idx < files.size(); ++file_idx) {
|
|
32
|
-
const auto file_name = files[file_idx];
|
|
32
|
+
const auto &file_name = files[file_idx];
|
|
33
33
|
auto reader = make_uniq<READER_TYPE>(context, file_name, options);
|
|
34
34
|
|
|
35
35
|
auto &col_names = reader->GetNames();
|
|
@@ -9,11 +9,11 @@
|
|
|
9
9
|
|
|
10
10
|
namespace duckdb {
|
|
11
11
|
|
|
12
|
-
template <class
|
|
13
|
-
class unique_ptr : public std::unique_ptr<
|
|
12
|
+
template <class DATA_TYPE, class ALLOCATOR_TYPE = std::default_delete<DATA_TYPE>, bool SAFE = true>
|
|
13
|
+
class unique_ptr : public std::unique_ptr<DATA_TYPE, ALLOCATOR_TYPE> { // NOLINT: naming
|
|
14
14
|
public:
|
|
15
|
-
using original = std::unique_ptr<
|
|
16
|
-
using original::original;
|
|
15
|
+
using original = std::unique_ptr<DATA_TYPE, ALLOCATOR_TYPE>;
|
|
16
|
+
using original::original; // NOLINT
|
|
17
17
|
|
|
18
18
|
private:
|
|
19
19
|
static inline void AssertNotNull(const bool null) {
|
|
@@ -27,17 +27,17 @@ private:
|
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
public:
|
|
30
|
-
typename std::add_lvalue_reference<
|
|
30
|
+
typename std::add_lvalue_reference<DATA_TYPE>::type operator*() const { // NOLINT: hiding on purpose
|
|
31
31
|
const auto ptr = original::get();
|
|
32
|
-
if (MemorySafety<SAFE>::
|
|
32
|
+
if (MemorySafety<SAFE>::ENABLED) {
|
|
33
33
|
AssertNotNull(!ptr);
|
|
34
34
|
}
|
|
35
35
|
return *ptr;
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
typename original::pointer operator->() const {
|
|
38
|
+
typename original::pointer operator->() const { // NOLINT: hiding on purpose
|
|
39
39
|
const auto ptr = original::get();
|
|
40
|
-
if (MemorySafety<SAFE>::
|
|
40
|
+
if (MemorySafety<SAFE>::ENABLED) {
|
|
41
41
|
AssertNotNull(!ptr);
|
|
42
42
|
}
|
|
43
43
|
return ptr;
|
|
@@ -48,15 +48,16 @@ public:
|
|
|
48
48
|
[[clang::reinitializes]]
|
|
49
49
|
#endif
|
|
50
50
|
inline void
|
|
51
|
-
reset(typename original::pointer ptr = typename original::pointer()) noexcept {
|
|
51
|
+
reset(typename original::pointer ptr = typename original::pointer()) noexcept { // NOLINT: hiding on purpose
|
|
52
52
|
original::reset(ptr);
|
|
53
53
|
}
|
|
54
54
|
};
|
|
55
55
|
|
|
56
|
-
template <class
|
|
57
|
-
class unique_ptr<
|
|
56
|
+
template <class DATA_TYPE, class ALLOCATOR_TYPE, bool SAFE>
|
|
57
|
+
class unique_ptr<DATA_TYPE[], ALLOCATOR_TYPE, SAFE>
|
|
58
|
+
: public std::unique_ptr<DATA_TYPE[], std::default_delete<DATA_TYPE[]>> {
|
|
58
59
|
public:
|
|
59
|
-
using original = std::unique_ptr<
|
|
60
|
+
using original = std::unique_ptr<DATA_TYPE[], std::default_delete<DATA_TYPE[]>>;
|
|
60
61
|
using original::original;
|
|
61
62
|
|
|
62
63
|
private:
|
|
@@ -71,9 +72,9 @@ private:
|
|
|
71
72
|
}
|
|
72
73
|
|
|
73
74
|
public:
|
|
74
|
-
typename std::add_lvalue_reference<
|
|
75
|
+
typename std::add_lvalue_reference<DATA_TYPE>::type operator[](size_t __i) const { // NOLINT: hiding on purpose
|
|
75
76
|
const auto ptr = original::get();
|
|
76
|
-
if (MemorySafety<SAFE>::
|
|
77
|
+
if (MemorySafety<SAFE>::ENABLED) {
|
|
77
78
|
AssertNotNull(!ptr);
|
|
78
79
|
}
|
|
79
80
|
return ptr[__i];
|
|
@@ -17,10 +17,10 @@
|
|
|
17
17
|
|
|
18
18
|
namespace duckdb {
|
|
19
19
|
|
|
20
|
-
template <class
|
|
21
|
-
class vector : public std::vector<
|
|
20
|
+
template <class DATA_TYPE, bool SAFE = true>
|
|
21
|
+
class vector : public std::vector<DATA_TYPE, std::allocator<DATA_TYPE>> { // NOLINT: matching name of std
|
|
22
22
|
public:
|
|
23
|
-
using original = std::vector<
|
|
23
|
+
using original = std::vector<DATA_TYPE, std::allocator<DATA_TYPE>>;
|
|
24
24
|
using original::original;
|
|
25
25
|
using size_type = typename original::size_type;
|
|
26
26
|
using const_reference = typename original::const_reference;
|
|
@@ -43,59 +43,59 @@ public:
|
|
|
43
43
|
[[clang::reinitializes]]
|
|
44
44
|
#endif
|
|
45
45
|
inline void
|
|
46
|
-
clear() noexcept {
|
|
46
|
+
clear() noexcept { // NOLINT: hiding on purpose
|
|
47
47
|
original::clear();
|
|
48
48
|
}
|
|
49
49
|
|
|
50
50
|
// Because we create the other constructor, the implicitly created constructor
|
|
51
51
|
// gets deleted, so we have to be explicit
|
|
52
52
|
vector() = default;
|
|
53
|
-
vector(original &&other) : original(std::move(other)) {
|
|
53
|
+
vector(original &&other) : original(std::move(other)) { // NOLINT: allow implicit conversion
|
|
54
54
|
}
|
|
55
|
-
template <bool
|
|
56
|
-
vector(vector<
|
|
55
|
+
template <bool INTERNAL_SAFE>
|
|
56
|
+
vector(vector<DATA_TYPE, INTERNAL_SAFE> &&other) : original(std::move(other)) { // NOLINT: allow implicit conversion
|
|
57
57
|
}
|
|
58
58
|
|
|
59
|
-
template <bool
|
|
60
|
-
inline typename original::reference get(typename original::size_type __n) {
|
|
61
|
-
if (MemorySafety<
|
|
59
|
+
template <bool INTERNAL_SAFE = false>
|
|
60
|
+
inline typename original::reference get(typename original::size_type __n) { // NOLINT: hiding on purpose
|
|
61
|
+
if (MemorySafety<INTERNAL_SAFE>::ENABLED) {
|
|
62
62
|
AssertIndexInBounds(__n, original::size());
|
|
63
63
|
}
|
|
64
64
|
return original::operator[](__n);
|
|
65
65
|
}
|
|
66
66
|
|
|
67
|
-
template <bool
|
|
68
|
-
inline typename original::const_reference get(typename original::size_type __n) const {
|
|
69
|
-
if (MemorySafety<
|
|
67
|
+
template <bool INTERNAL_SAFE = false>
|
|
68
|
+
inline typename original::const_reference get(typename original::size_type __n) const { // NOLINT: hiding on purpose
|
|
69
|
+
if (MemorySafety<INTERNAL_SAFE>::ENABLED) {
|
|
70
70
|
AssertIndexInBounds(__n, original::size());
|
|
71
71
|
}
|
|
72
72
|
return original::operator[](__n);
|
|
73
73
|
}
|
|
74
74
|
|
|
75
|
-
typename original::reference operator[](typename original::size_type __n) {
|
|
75
|
+
typename original::reference operator[](typename original::size_type __n) { // NOLINT: hiding on purpose
|
|
76
76
|
return get<SAFE>(__n);
|
|
77
77
|
}
|
|
78
|
-
typename original::const_reference operator[](typename original::size_type __n) const {
|
|
78
|
+
typename original::const_reference operator[](typename original::size_type __n) const { // NOLINT: hiding on purpose
|
|
79
79
|
return get<SAFE>(__n);
|
|
80
80
|
}
|
|
81
81
|
|
|
82
|
-
typename original::reference front() {
|
|
82
|
+
typename original::reference front() { // NOLINT: hiding on purpose
|
|
83
83
|
return get<SAFE>(0);
|
|
84
84
|
}
|
|
85
85
|
|
|
86
|
-
typename original::const_reference front() const {
|
|
86
|
+
typename original::const_reference front() const { // NOLINT: hiding on purpose
|
|
87
87
|
return get<SAFE>(0);
|
|
88
88
|
}
|
|
89
89
|
|
|
90
|
-
typename original::reference back() {
|
|
91
|
-
if (MemorySafety<SAFE>::
|
|
90
|
+
typename original::reference back() { // NOLINT: hiding on purpose
|
|
91
|
+
if (MemorySafety<SAFE>::ENABLED && original::empty()) {
|
|
92
92
|
throw InternalException("'back' called on an empty vector!");
|
|
93
93
|
}
|
|
94
94
|
return get<SAFE>(original::size() - 1);
|
|
95
95
|
}
|
|
96
96
|
|
|
97
|
-
typename original::const_reference back() const {
|
|
98
|
-
if (MemorySafety<SAFE>::
|
|
97
|
+
typename original::const_reference back() const { // NOLINT: hiding on purpose
|
|
98
|
+
if (MemorySafety<SAFE>::ENABLED && original::empty()) {
|
|
99
99
|
throw InternalException("'back' called on an empty vector!");
|
|
100
100
|
}
|
|
101
101
|
return get<SAFE>(original::size() - 1);
|
|
@@ -24,7 +24,8 @@ struct VectorTryCastData {
|
|
|
24
24
|
|
|
25
25
|
struct HandleVectorCastError {
|
|
26
26
|
template <class RESULT_TYPE>
|
|
27
|
-
static RESULT_TYPE Operation(string error_message, ValidityMask &mask, idx_t idx,
|
|
27
|
+
static RESULT_TYPE Operation(const string &error_message, ValidityMask &mask, idx_t idx,
|
|
28
|
+
VectorTryCastData &cast_data) {
|
|
28
29
|
HandleCastError::AssignError(error_message, cast_data.parameters);
|
|
29
30
|
cast_data.all_converted = false;
|
|
30
31
|
mask.SetInvalid(idx);
|
|
@@ -26,10 +26,9 @@ struct PrimitiveTypeState {
|
|
|
26
26
|
|
|
27
27
|
template <class INPUT_TYPE>
|
|
28
28
|
struct PrimitiveType {
|
|
29
|
-
PrimitiveType()
|
|
29
|
+
PrimitiveType() = default;
|
|
30
|
+
PrimitiveType(INPUT_TYPE val) : val(val) { // NOLINT: allow implicit cast
|
|
30
31
|
}
|
|
31
|
-
PrimitiveType(INPUT_TYPE val) : val(val) {
|
|
32
|
-
} // NOLINT: allow implicit cast
|
|
33
32
|
|
|
34
33
|
INPUT_TYPE val;
|
|
35
34
|
|