duckdb 0.10.3-dev0.0 → 0.10.3-dev6.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/.github/workflows/NodeJS.yml +95 -4
- package/binding.gyp +4 -5
- package/examples/example.js +10 -0
- package/package.json +1 -1
- package/src/database.cpp +3 -3
- package/src/duckdb/extension/icu/icu_extension.cpp +44 -15
- package/src/duckdb/extension/icu/include/icu_extension.hpp +1 -0
- package/src/duckdb/extension/icu/third_party/icu/i18n/basictz.cpp +5 -5
- package/src/duckdb/extension/json/include/json_common.hpp +6 -1
- package/src/duckdb/extension/json/include/json_executors.hpp +5 -5
- package/src/duckdb/extension/json/include/json_extension.hpp +1 -0
- package/src/duckdb/extension/json/include/json_functions.hpp +2 -2
- package/src/duckdb/extension/json/include/json_serializer.hpp +2 -2
- package/src/duckdb/extension/json/json_common.cpp +69 -43
- package/src/duckdb/extension/json/json_extension.cpp +8 -0
- package/src/duckdb/extension/json/json_functions/copy_json.cpp +17 -16
- package/src/duckdb/extension/json/json_functions/json_create.cpp +3 -1
- package/src/duckdb/extension/json/json_functions/json_structure.cpp +18 -13
- package/src/duckdb/extension/json/json_functions/json_transform.cpp +4 -0
- package/src/duckdb/extension/json/json_functions/json_type.cpp +2 -2
- package/src/duckdb/extension/json/json_functions/read_json.cpp +14 -11
- package/src/duckdb/extension/json/json_functions/read_json_objects.cpp +11 -8
- package/src/duckdb/extension/json/json_functions.cpp +4 -3
- package/src/duckdb/extension/json/json_scan.cpp +21 -11
- package/src/duckdb/extension/parquet/column_reader.cpp +9 -5
- package/src/duckdb/extension/parquet/column_writer.cpp +31 -18
- package/src/duckdb/extension/parquet/include/column_writer.hpp +1 -0
- package/src/duckdb/extension/parquet/include/null_column_reader.hpp +54 -0
- package/src/duckdb/extension/parquet/include/parquet_extension.hpp +1 -0
- package/src/duckdb/extension/parquet/include/parquet_reader.hpp +1 -1
- package/src/duckdb/extension/parquet/include/parquet_writer.hpp +7 -2
- package/src/duckdb/extension/parquet/include/templated_column_reader.hpp +6 -1
- package/src/duckdb/extension/parquet/parquet_crypto.cpp +8 -6
- package/src/duckdb/extension/parquet/parquet_extension.cpp +271 -126
- package/src/duckdb/extension/parquet/parquet_metadata.cpp +39 -37
- package/src/duckdb/extension/parquet/parquet_reader.cpp +7 -4
- package/src/duckdb/extension/parquet/parquet_statistics.cpp +5 -4
- package/src/duckdb/extension/parquet/parquet_writer.cpp +55 -2
- package/src/duckdb/extension/parquet/serialize_parquet.cpp +2 -2
- package/src/duckdb/src/catalog/catalog.cpp +19 -39
- package/src/duckdb/src/catalog/catalog_entry/duck_index_entry.cpp +6 -6
- package/src/duckdb/src/catalog/catalog_entry/duck_schema_entry.cpp +47 -31
- package/src/duckdb/src/catalog/catalog_entry/duck_table_entry.cpp +84 -52
- package/src/duckdb/src/catalog/catalog_entry/index_catalog_entry.cpp +4 -2
- package/src/duckdb/src/catalog/catalog_entry/macro_catalog_entry.cpp +4 -0
- package/src/duckdb/src/catalog/catalog_entry/schema_catalog_entry.cpp +7 -0
- package/src/duckdb/src/catalog/catalog_entry/sequence_catalog_entry.cpp +4 -1
- package/src/duckdb/src/catalog/catalog_entry/table_catalog_entry.cpp +36 -15
- package/src/duckdb/src/catalog/catalog_entry/type_catalog_entry.cpp +7 -1
- package/src/duckdb/src/catalog/catalog_entry/view_catalog_entry.cpp +5 -1
- package/src/duckdb/src/catalog/catalog_entry.cpp +7 -0
- package/src/duckdb/src/catalog/catalog_entry_retriever.cpp +64 -0
- package/src/duckdb/src/catalog/catalog_set.cpp +32 -17
- package/src/duckdb/src/catalog/default/default_functions.cpp +2 -1
- package/src/duckdb/src/catalog/default/default_views.cpp +1 -1
- package/src/duckdb/src/catalog/dependency_manager.cpp +129 -9
- package/src/duckdb/src/catalog/duck_catalog.cpp +5 -0
- package/src/duckdb/src/common/adbc/nanoarrow/allocator.cpp +2 -2
- package/src/duckdb/src/common/adbc/nanoarrow/metadata.cpp +3 -3
- package/src/duckdb/src/common/adbc/nanoarrow/schema.cpp +7 -6
- package/src/duckdb/src/common/allocator.cpp +6 -2
- package/src/duckdb/src/common/arrow/appender/bool_data.cpp +1 -0
- package/src/duckdb/src/common/arrow/appender/struct_data.cpp +1 -1
- package/src/duckdb/src/common/arrow/appender/union_data.cpp +2 -1
- package/src/duckdb/src/common/arrow/arrow_appender.cpp +7 -5
- package/src/duckdb/src/common/arrow/arrow_converter.cpp +3 -5
- package/src/duckdb/src/common/arrow/arrow_wrapper.cpp +1 -1
- package/src/duckdb/src/common/box_renderer.cpp +6 -3
- package/src/duckdb/src/common/compressed_file_system.cpp +11 -7
- package/src/duckdb/src/common/enum_util.cpp +230 -17
- package/src/duckdb/src/common/enums/logical_operator_type.cpp +2 -0
- package/src/duckdb/src/common/enums/physical_operator_type.cpp +2 -0
- package/src/duckdb/src/common/enums/relation_type.cpp +2 -0
- package/src/duckdb/src/common/enums/statement_type.cpp +2 -0
- package/src/duckdb/src/common/error_data.cpp +12 -0
- package/src/duckdb/src/common/exception_format_value.cpp +1 -0
- package/src/duckdb/src/common/extra_type_info.cpp +86 -8
- package/src/duckdb/src/common/file_system.cpp +39 -7
- package/src/duckdb/src/common/gzip_file_system.cpp +38 -14
- package/src/duckdb/src/common/hive_partitioning.cpp +28 -76
- package/src/duckdb/src/common/http_state.cpp +4 -4
- package/src/duckdb/src/common/local_file_system.cpp +29 -12
- package/src/duckdb/src/common/multi_file_list.cpp +285 -0
- package/src/duckdb/src/common/multi_file_reader.cpp +112 -80
- package/src/duckdb/src/common/operator/cast_operators.cpp +27 -225
- package/src/duckdb/src/common/operator/string_cast.cpp +13 -14
- package/src/duckdb/src/common/pipe_file_system.cpp +3 -2
- package/src/duckdb/src/common/progress_bar/progress_bar.cpp +1 -1
- package/src/duckdb/src/common/random_engine.cpp +2 -1
- package/src/duckdb/src/common/re2_regex.cpp +6 -4
- package/src/duckdb/src/common/row_operations/row_aggregate.cpp +10 -10
- package/src/duckdb/src/common/row_operations/row_external.cpp +4 -3
- package/src/duckdb/src/common/row_operations/row_heap_gather.cpp +5 -3
- package/src/duckdb/src/common/row_operations/row_heap_scatter.cpp +17 -4
- package/src/duckdb/src/common/row_operations/row_radix_scatter.cpp +1 -1
- package/src/duckdb/src/common/serializer/buffered_file_reader.cpp +4 -4
- package/src/duckdb/src/common/serializer/buffered_file_writer.cpp +9 -8
- package/src/duckdb/src/common/serializer/memory_stream.cpp +6 -3
- package/src/duckdb/src/common/serializer/serializer.cpp +1 -1
- package/src/duckdb/src/common/sort/comparators.cpp +1 -1
- package/src/duckdb/src/common/sort/merge_sorter.cpp +2 -2
- package/src/duckdb/src/common/sort/partition_state.cpp +6 -6
- package/src/duckdb/src/common/sort/radix_sort.cpp +1 -1
- package/src/duckdb/src/common/sort/sort_state.cpp +3 -3
- package/src/duckdb/src/common/sort/sorted_block.cpp +5 -5
- package/src/duckdb/src/common/string_util.cpp +69 -162
- package/src/duckdb/src/common/types/bit.cpp +1 -1
- package/src/duckdb/src/common/types/blob.cpp +3 -3
- package/src/duckdb/src/common/types/cast_helpers.cpp +197 -0
- package/src/duckdb/src/common/types/column/column_data_collection.cpp +17 -9
- package/src/duckdb/src/common/types/column/column_data_collection_segment.cpp +1 -1
- package/src/duckdb/src/common/types/column/partitioned_column_data.cpp +13 -5
- package/src/duckdb/src/common/types/conflict_info.cpp +1 -1
- package/src/duckdb/src/common/types/conflict_manager.cpp +1 -1
- package/src/duckdb/src/common/types/data_chunk.cpp +1 -1
- package/src/duckdb/src/common/types/date.cpp +2 -2
- package/src/duckdb/src/common/types/decimal.cpp +12 -12
- package/src/duckdb/src/common/types/hash.cpp +1 -1
- package/src/duckdb/src/common/types/hugeint.cpp +10 -9
- package/src/duckdb/src/common/types/row/partitioned_tuple_data.cpp +4 -4
- package/src/duckdb/src/common/types/row/row_data_collection_scanner.cpp +6 -5
- package/src/duckdb/src/common/types/row/tuple_data_allocator.cpp +21 -18
- package/src/duckdb/src/common/types/row/tuple_data_collection.cpp +2 -2
- package/src/duckdb/src/common/types/row/tuple_data_segment.cpp +7 -0
- package/src/duckdb/src/common/types/string_heap.cpp +4 -0
- package/src/duckdb/src/common/types/timestamp.cpp +23 -1
- package/src/duckdb/src/common/types/uhugeint.cpp +1 -1
- package/src/duckdb/src/common/types/uuid.cpp +7 -6
- package/src/duckdb/src/common/types/value.cpp +54 -30
- package/src/duckdb/src/common/types/vector.cpp +71 -96
- package/src/duckdb/src/common/types/vector_buffer.cpp +4 -0
- package/src/duckdb/src/common/types/vector_cache.cpp +3 -3
- package/src/duckdb/src/common/types.cpp +124 -18
- package/src/duckdb/src/common/vector_operations/generators.cpp +4 -16
- package/src/duckdb/src/common/vector_operations/is_distinct_from.cpp +20 -0
- package/src/duckdb/src/common/vector_operations/null_operations.cpp +1 -1
- package/src/duckdb/src/common/vector_operations/numeric_inplace_operators.cpp +2 -2
- package/src/duckdb/src/core_functions/aggregate/distributive/approx_count.cpp +1 -1
- package/src/duckdb/src/core_functions/aggregate/distributive/arg_min_max.cpp +13 -6
- package/src/duckdb/src/core_functions/aggregate/distributive/bitagg.cpp +8 -5
- package/src/duckdb/src/core_functions/aggregate/distributive/bitstring_agg.cpp +2 -2
- package/src/duckdb/src/core_functions/aggregate/distributive/sum.cpp +2 -2
- package/src/duckdb/src/core_functions/aggregate/holistic/approximate_quantile.cpp +2 -0
- package/src/duckdb/src/core_functions/aggregate/holistic/mode.cpp +2 -2
- package/src/duckdb/src/core_functions/aggregate/holistic/quantile.cpp +8 -5
- package/src/duckdb/src/core_functions/aggregate/holistic/reservoir_quantile.cpp +14 -8
- package/src/duckdb/src/core_functions/function_list.cpp +2 -1
- package/src/duckdb/src/core_functions/lambda_functions.cpp +2 -2
- package/src/duckdb/src/core_functions/scalar/array/array_functions.cpp +5 -0
- package/src/duckdb/src/core_functions/scalar/bit/bitstring.cpp +4 -4
- package/src/duckdb/src/core_functions/scalar/blob/create_sort_key.cpp +3 -2
- package/src/duckdb/src/core_functions/scalar/date/date_part.cpp +2 -2
- package/src/duckdb/src/core_functions/scalar/date/epoch.cpp +17 -0
- package/src/duckdb/src/core_functions/scalar/date/strftime.cpp +1 -1
- package/src/duckdb/src/core_functions/scalar/date/to_interval.cpp +19 -0
- package/src/duckdb/src/core_functions/scalar/debug/vector_type.cpp +6 -5
- package/src/duckdb/src/core_functions/scalar/generic/current_setting.cpp +2 -3
- package/src/duckdb/src/core_functions/scalar/generic/system_functions.cpp +2 -2
- package/src/duckdb/src/core_functions/scalar/list/array_slice.cpp +30 -21
- package/src/duckdb/src/core_functions/scalar/list/list_reduce.cpp +1 -1
- package/src/duckdb/src/core_functions/scalar/list/list_sort.cpp +3 -3
- package/src/duckdb/src/core_functions/scalar/list/list_value.cpp +1 -1
- package/src/duckdb/src/core_functions/scalar/list/range.cpp +2 -2
- package/src/duckdb/src/core_functions/scalar/map/map.cpp +44 -14
- package/src/duckdb/src/core_functions/scalar/map/map_concat.cpp +17 -4
- package/src/duckdb/src/core_functions/scalar/map/map_entries.cpp +30 -13
- package/src/duckdb/src/core_functions/scalar/map/map_extract.cpp +25 -12
- package/src/duckdb/src/core_functions/scalar/map/map_keys_values.cpp +16 -4
- package/src/duckdb/src/core_functions/scalar/math/numeric.cpp +2 -2
- package/src/duckdb/src/core_functions/scalar/operators/bitwise.cpp +2 -2
- package/src/duckdb/src/core_functions/scalar/random/setseed.cpp +1 -1
- package/src/duckdb/src/core_functions/scalar/string/bar.cpp +1 -1
- package/src/duckdb/src/core_functions/scalar/string/chr.cpp +2 -2
- package/src/duckdb/src/core_functions/scalar/string/hex.cpp +13 -13
- package/src/duckdb/src/core_functions/scalar/string/instr.cpp +1 -1
- package/src/duckdb/src/core_functions/scalar/string/pad.cpp +8 -8
- package/src/duckdb/src/core_functions/scalar/string/repeat.cpp +15 -7
- package/src/duckdb/src/core_functions/scalar/string/string_split.cpp +1 -1
- package/src/duckdb/src/core_functions/scalar/string/to_base.cpp +1 -1
- package/src/duckdb/src/core_functions/scalar/string/translate.cpp +4 -4
- package/src/duckdb/src/core_functions/scalar/string/trim.cpp +13 -9
- package/src/duckdb/src/core_functions/scalar/string/unicode.cpp +1 -1
- package/src/duckdb/src/execution/adaptive_filter.cpp +1 -1
- package/src/duckdb/src/execution/aggregate_hashtable.cpp +17 -8
- package/src/duckdb/src/execution/index/art/art.cpp +6 -6
- package/src/duckdb/src/execution/index/bound_index.cpp +115 -0
- package/src/duckdb/src/execution/index/unbound_index.cpp +30 -0
- package/src/duckdb/src/execution/join_hashtable.cpp +2 -1
- package/src/duckdb/src/execution/operator/aggregate/aggregate_object.cpp +1 -1
- package/src/duckdb/src/execution/operator/aggregate/distinct_aggregate_data.cpp +1 -1
- package/src/duckdb/src/execution/operator/aggregate/physical_hash_aggregate.cpp +3 -3
- package/src/duckdb/src/execution/operator/aggregate/physical_streaming_window.cpp +40 -5
- package/src/duckdb/src/execution/operator/aggregate/physical_ungrouped_aggregate.cpp +2 -2
- package/src/duckdb/src/execution/operator/aggregate/physical_window.cpp +16 -3
- package/src/duckdb/src/execution/operator/csv_scanner/buffer_manager/csv_buffer.cpp +4 -4
- package/src/duckdb/src/execution/operator/csv_scanner/buffer_manager/csv_buffer_manager.cpp +2 -12
- package/src/duckdb/src/execution/operator/csv_scanner/buffer_manager/csv_file_handle.cpp +2 -1
- package/src/duckdb/src/execution/operator/csv_scanner/scanner/base_scanner.cpp +21 -5
- package/src/duckdb/src/execution/operator/csv_scanner/scanner/column_count_scanner.cpp +1 -1
- package/src/duckdb/src/execution/operator/csv_scanner/scanner/string_value_scanner.cpp +312 -260
- package/src/duckdb/src/execution/operator/csv_scanner/sniffer/csv_sniffer.cpp +2 -2
- package/src/duckdb/src/execution/operator/csv_scanner/sniffer/dialect_detection.cpp +45 -16
- package/src/duckdb/src/execution/operator/csv_scanner/sniffer/header_detection.cpp +19 -18
- package/src/duckdb/src/execution/operator/csv_scanner/sniffer/type_detection.cpp +200 -55
- package/src/duckdb/src/execution/operator/csv_scanner/table_function/csv_file_scanner.cpp +26 -23
- package/src/duckdb/src/execution/operator/csv_scanner/table_function/global_csv_state.cpp +12 -12
- package/src/duckdb/src/execution/operator/csv_scanner/util/csv_error.cpp +7 -7
- package/src/duckdb/src/execution/operator/csv_scanner/util/csv_reader_options.cpp +31 -22
- package/src/duckdb/src/execution/operator/helper/physical_buffered_collector.cpp +1 -1
- package/src/duckdb/src/execution/operator/helper/physical_execute.cpp +1 -1
- package/src/duckdb/src/execution/operator/helper/physical_load.cpp +24 -2
- package/src/duckdb/src/execution/operator/helper/physical_reservoir_sample.cpp +1 -1
- package/src/duckdb/src/execution/operator/helper/physical_update_extensions.cpp +57 -0
- package/src/duckdb/src/execution/operator/helper/physical_verify_vector.cpp +13 -8
- package/src/duckdb/src/execution/operator/join/physical_asof_join.cpp +2 -2
- package/src/duckdb/src/execution/operator/join/physical_hash_join.cpp +9 -9
- package/src/duckdb/src/execution/operator/join/physical_iejoin.cpp +4 -4
- package/src/duckdb/src/execution/operator/join/physical_left_delim_join.cpp +1 -1
- package/src/duckdb/src/execution/operator/join/physical_piecewise_merge_join.cpp +2 -2
- package/src/duckdb/src/execution/operator/join/physical_range_join.cpp +2 -2
- package/src/duckdb/src/execution/operator/order/physical_order.cpp +3 -2
- package/src/duckdb/src/execution/operator/persistent/physical_batch_copy_to_file.cpp +4 -4
- package/src/duckdb/src/execution/operator/persistent/physical_batch_insert.cpp +20 -13
- package/src/duckdb/src/execution/operator/persistent/physical_copy_to_file.cpp +70 -60
- package/src/duckdb/src/execution/operator/persistent/physical_delete.cpp +18 -7
- package/src/duckdb/src/execution/operator/persistent/physical_export.cpp +88 -12
- package/src/duckdb/src/execution/operator/persistent/physical_insert.cpp +47 -27
- package/src/duckdb/src/execution/operator/persistent/physical_update.cpp +34 -9
- package/src/duckdb/src/execution/operator/projection/physical_unnest.cpp +3 -0
- package/src/duckdb/src/execution/operator/scan/physical_column_data_scan.cpp +2 -3
- package/src/duckdb/src/execution/operator/scan/physical_expression_scan.cpp +22 -7
- package/src/duckdb/src/execution/operator/schema/physical_attach.cpp +1 -1
- package/src/duckdb/src/execution/operator/schema/physical_create_art_index.cpp +9 -9
- package/src/duckdb/src/execution/operator/set/physical_recursive_cte.cpp +1 -1
- package/src/duckdb/src/execution/perfect_aggregate_hashtable.cpp +5 -4
- package/src/duckdb/src/execution/physical_operator.cpp +2 -2
- package/src/duckdb/src/execution/physical_plan/plan_column_data_get.cpp +2 -4
- package/src/duckdb/src/execution/physical_plan/plan_comparison_join.cpp +1 -1
- package/src/duckdb/src/execution/physical_plan/plan_create_table.cpp +2 -2
- package/src/duckdb/src/execution/physical_plan/plan_cte.cpp +1 -1
- package/src/duckdb/src/execution/physical_plan/plan_delete.cpp +2 -2
- package/src/duckdb/src/execution/physical_plan/plan_delim_get.cpp +2 -2
- package/src/duckdb/src/execution/physical_plan/plan_distinct.cpp +1 -0
- package/src/duckdb/src/execution/physical_plan/plan_expression_get.cpp +4 -5
- package/src/duckdb/src/execution/physical_plan/plan_insert.cpp +6 -5
- package/src/duckdb/src/execution/physical_plan/plan_recursive_cte.cpp +1 -1
- package/src/duckdb/src/execution/physical_plan/plan_simple.cpp +4 -0
- package/src/duckdb/src/execution/physical_plan/plan_top_n.cpp +2 -2
- package/src/duckdb/src/execution/physical_plan/plan_update.cpp +3 -3
- package/src/duckdb/src/execution/physical_plan/plan_window.cpp +1 -24
- package/src/duckdb/src/execution/physical_plan_generator.cpp +3 -0
- package/src/duckdb/src/execution/radix_partitioned_hashtable.cpp +38 -33
- package/src/duckdb/src/execution/reservoir_sample.cpp +42 -31
- package/src/duckdb/src/execution/window_executor.cpp +39 -39
- package/src/duckdb/src/execution/window_segment_tree.cpp +5 -2
- package/src/duckdb/src/function/aggregate/distributive/first.cpp +1 -1
- package/src/duckdb/src/function/cast/string_cast.cpp +3 -3
- package/src/duckdb/src/function/cast_rules.cpp +1 -0
- package/src/duckdb/src/function/function.cpp +2 -2
- package/src/duckdb/src/function/function_binder.cpp +9 -4
- package/src/duckdb/src/function/pragma/pragma_functions.cpp +2 -1
- package/src/duckdb/src/function/pragma/pragma_queries.cpp +4 -3
- package/src/duckdb/src/function/scalar/compressed_materialization/compress_string.cpp +1 -1
- package/src/duckdb/src/function/scalar/list/list_extract.cpp +3 -2
- package/src/duckdb/src/function/scalar/list/list_resize.cpp +1 -1
- package/src/duckdb/src/function/scalar/list/list_select.cpp +11 -4
- package/src/duckdb/src/function/scalar/list/list_zip.cpp +3 -1
- package/src/duckdb/src/function/scalar/operators/add.cpp +19 -9
- package/src/duckdb/src/function/scalar/sequence/nextval.cpp +77 -48
- package/src/duckdb/src/function/scalar/strftime_format.cpp +61 -39
- package/src/duckdb/src/function/scalar/string/caseconvert.cpp +12 -12
- package/src/duckdb/src/function/scalar/string/contains.cpp +2 -2
- package/src/duckdb/src/function/scalar/string/length.cpp +9 -9
- package/src/duckdb/src/function/scalar/string/regexp/regexp_extract_all.cpp +2 -2
- package/src/duckdb/src/function/scalar/string/strip_accents.cpp +2 -1
- package/src/duckdb/src/function/scalar/string/substring.cpp +11 -9
- package/src/duckdb/src/function/scalar/struct/struct_extract.cpp +2 -2
- package/src/duckdb/src/function/scalar_function.cpp +2 -1
- package/src/duckdb/src/function/table/arrow.cpp +18 -4
- package/src/duckdb/src/function/table/arrow_conversion.cpp +88 -66
- package/src/duckdb/src/function/table/copy_csv.cpp +94 -28
- package/src/duckdb/src/function/table/glob.cpp +17 -9
- package/src/duckdb/src/function/table/read_csv.cpp +37 -14
- package/src/duckdb/src/function/table/read_file.cpp +6 -2
- package/src/duckdb/src/function/table/repeat.cpp +5 -1
- package/src/duckdb/src/function/table/repeat_row.cpp +1 -1
- package/src/duckdb/src/function/table/sniff_csv.cpp +9 -3
- package/src/duckdb/src/function/table/system/duckdb_columns.cpp +3 -3
- package/src/duckdb/src/function/table/system/duckdb_constraints.cpp +31 -16
- package/src/duckdb/src/function/table/system/duckdb_databases.cpp +6 -1
- package/src/duckdb/src/function/table/system/duckdb_dependencies.cpp +2 -2
- package/src/duckdb/src/function/table/system/duckdb_extensions.cpp +48 -6
- package/src/duckdb/src/function/table/system/duckdb_functions.cpp +8 -2
- package/src/duckdb/src/function/table/system/duckdb_indexes.cpp +9 -4
- package/src/duckdb/src/function/table/system/duckdb_memory.cpp +2 -2
- package/src/duckdb/src/function/table/system/duckdb_schemas.cpp +7 -2
- package/src/duckdb/src/function/table/system/duckdb_sequences.cpp +8 -3
- package/src/duckdb/src/function/table/system/duckdb_tables.cpp +18 -10
- package/src/duckdb/src/function/table/system/duckdb_temporary_files.cpp +1 -1
- package/src/duckdb/src/function/table/system/duckdb_types.cpp +12 -5
- package/src/duckdb/src/function/table/system/duckdb_views.cpp +9 -4
- package/src/duckdb/src/function/table/system/duckdb_which_secret.cpp +75 -0
- package/src/duckdb/src/function/table/system/pragma_database_size.cpp +4 -4
- package/src/duckdb/src/function/table/system/pragma_metadata_info.cpp +3 -3
- package/src/duckdb/src/function/table/system/pragma_storage_info.cpp +6 -6
- package/src/duckdb/src/function/table/system_functions.cpp +1 -0
- package/src/duckdb/src/function/table/table_scan.cpp +11 -20
- package/src/duckdb/src/function/table/unnest.cpp +1 -1
- package/src/duckdb/src/function/table/version/pragma_version.cpp +3 -3
- package/src/duckdb/src/function/table_function.cpp +5 -4
- package/src/duckdb/src/include/duckdb/catalog/catalog.hpp +1 -10
- 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 +2 -2
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/duck_table_entry.hpp +6 -8
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/function_entry.hpp +1 -0
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/schema_catalog_entry.hpp +3 -2
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/sequence_catalog_entry.hpp +2 -5
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/table_catalog_entry.hpp +3 -4
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/type_catalog_entry.hpp +2 -0
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry.hpp +4 -0
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry_retriever.hpp +72 -0
- package/src/duckdb/src/include/duckdb/catalog/catalog_transaction.hpp +3 -0
- package/src/duckdb/src/include/duckdb/catalog/dependency.hpp +4 -0
- package/src/duckdb/src/include/duckdb/catalog/dependency_list.hpp +7 -1
- package/src/duckdb/src/include/duckdb/catalog/dependency_manager.hpp +2 -2
- package/src/duckdb/src/include/duckdb/catalog/standard_entry.hpp +2 -0
- package/src/duckdb/src/include/duckdb/common/arrow/appender/append_data.hpp +1 -0
- package/src/duckdb/src/include/duckdb/common/arrow/appender/enum_data.hpp +3 -3
- package/src/duckdb/src/include/duckdb/common/arrow/appender/map_data.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/arrow/appender/scalar_data.hpp +15 -0
- package/src/duckdb/src/include/duckdb/common/arrow/appender/varchar_data.hpp +3 -2
- package/src/duckdb/src/include/duckdb/common/bit_utils.hpp +63 -98
- package/src/duckdb/src/include/duckdb/common/bitpacking.hpp +4 -4
- package/src/duckdb/src/include/duckdb/common/constants.hpp +2 -0
- package/src/duckdb/src/include/duckdb/common/enable_shared_from_this.ipp +42 -0
- package/src/duckdb/src/include/duckdb/common/enum_util.hpp +43 -3
- package/src/duckdb/src/include/duckdb/common/enums/checkpoint_type.hpp +38 -0
- package/src/duckdb/src/include/duckdb/common/enums/logical_operator_type.hpp +1 -0
- package/src/duckdb/src/include/duckdb/common/enums/physical_operator_type.hpp +1 -0
- package/src/duckdb/src/include/duckdb/common/enums/relation_type.hpp +1 -0
- package/src/duckdb/src/include/duckdb/common/enums/scan_options.hpp +3 -1
- package/src/duckdb/src/include/duckdb/common/enums/scan_vector_type.hpp +17 -0
- package/src/duckdb/src/include/duckdb/common/enums/statement_type.hpp +1 -0
- package/src/duckdb/src/include/duckdb/common/enums/tableref_type.hpp +2 -1
- package/src/duckdb/src/include/duckdb/common/enums/undo_flags.hpp +2 -1
- package/src/duckdb/src/include/duckdb/common/exception.hpp +0 -1
- package/src/duckdb/src/include/duckdb/common/extra_type_info.hpp +15 -1
- package/src/duckdb/src/include/duckdb/common/file_opener.hpp +4 -0
- package/src/duckdb/src/include/duckdb/common/file_system.hpp +3 -0
- package/src/duckdb/src/include/duckdb/common/gzip_file_system.hpp +3 -0
- package/src/duckdb/src/include/duckdb/common/helper.hpp +22 -1
- package/src/duckdb/src/include/duckdb/common/hive_partitioning.hpp +3 -17
- package/src/duckdb/src/include/duckdb/common/http_state.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/insertion_order_preserving_map.hpp +129 -0
- package/src/duckdb/src/include/duckdb/common/multi_file_list.hpp +151 -0
- package/src/duckdb/src/include/duckdb/common/multi_file_reader.hpp +132 -56
- package/src/duckdb/src/include/duckdb/common/multi_file_reader_options.hpp +7 -3
- package/src/duckdb/src/include/duckdb/common/numeric_utils.hpp +3 -0
- package/src/duckdb/src/include/duckdb/common/operator/add.hpp +2 -0
- package/src/duckdb/src/include/duckdb/common/operator/decimal_cast_operators.hpp +233 -0
- package/src/duckdb/src/include/duckdb/common/operator/integer_cast_operator.hpp +5 -4
- package/src/duckdb/src/include/duckdb/common/operator/numeric_cast.hpp +2 -2
- package/src/duckdb/src/include/duckdb/common/optional_ptr.hpp +5 -0
- package/src/duckdb/src/include/duckdb/common/optionally_owned_ptr.hpp +91 -0
- package/src/duckdb/src/include/duckdb/common/platform.h +6 -1
- package/src/duckdb/src/include/duckdb/common/radix.hpp +12 -4
- package/src/duckdb/src/include/duckdb/common/re2_regex.hpp +3 -2
- package/src/duckdb/src/include/duckdb/common/row_operations/row_operations.hpp +2 -0
- package/src/duckdb/src/include/duckdb/common/serializer/binary_deserializer.hpp +2 -1
- package/src/duckdb/src/include/duckdb/common/serializer/binary_serializer.hpp +8 -6
- package/src/duckdb/src/include/duckdb/common/serializer/deserializer.hpp +36 -0
- package/src/duckdb/src/include/duckdb/common/serializer/serialization_traits.hpp +65 -0
- package/src/duckdb/src/include/duckdb/common/serializer/serializer.hpp +52 -6
- package/src/duckdb/src/include/duckdb/common/shared_ptr.hpp +36 -3
- package/src/duckdb/src/include/duckdb/common/shared_ptr.ipp +268 -0
- package/src/duckdb/src/include/duckdb/common/sort/duckdb_pdqsort.hpp +3 -3
- package/src/duckdb/src/include/duckdb/common/string.hpp +3 -2
- package/src/duckdb/src/include/duckdb/common/string_util.hpp +11 -7
- package/src/duckdb/src/include/duckdb/common/types/bit.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/types/cast_helpers.hpp +43 -215
- package/src/duckdb/src/include/duckdb/common/types/datetime.hpp +36 -11
- package/src/duckdb/src/include/duckdb/common/types/hash.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/types/row/tuple_data_segment.hpp +7 -1
- package/src/duckdb/src/include/duckdb/common/types/selection_vector.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/types/string_type.hpp +2 -0
- package/src/duckdb/src/include/duckdb/common/types/timestamp.hpp +2 -0
- package/src/duckdb/src/include/duckdb/common/types/validity_mask.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/types/value.hpp +4 -0
- package/src/duckdb/src/include/duckdb/common/types/vector.hpp +20 -15
- package/src/duckdb/src/include/duckdb/common/types.hpp +14 -2
- package/src/duckdb/src/include/duckdb/common/unique_ptr.hpp +7 -6
- package/src/duckdb/src/include/duckdb/common/vector.hpp +11 -0
- package/src/duckdb/src/include/duckdb/common/vector_size.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/weak_ptr.ipp +117 -0
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/sum_helpers.hpp +3 -3
- package/src/duckdb/src/include/duckdb/core_functions/scalar/date_functions.hpp +18 -0
- package/src/duckdb/src/include/duckdb/execution/adaptive_filter.hpp +1 -0
- package/src/duckdb/src/include/duckdb/execution/expression_executor.hpp +1 -1
- package/src/duckdb/src/include/duckdb/execution/index/art/art.hpp +4 -4
- package/src/duckdb/src/include/duckdb/execution/index/art/node.hpp +1 -1
- package/src/duckdb/src/include/duckdb/execution/index/bound_index.hpp +145 -0
- package/src/duckdb/src/include/duckdb/execution/index/index_type.hpp +2 -2
- package/src/duckdb/src/include/duckdb/execution/index/unbound_index.hpp +63 -0
- package/src/duckdb/src/include/duckdb/execution/merge_sort_tree.hpp +24 -18
- package/src/duckdb/src/include/duckdb/execution/operator/aggregate/physical_streaming_window.hpp +2 -0
- package/src/duckdb/src/include/duckdb/execution/operator/aggregate/physical_window.hpp +2 -0
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/base_scanner.hpp +10 -3
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/column_count_scanner.hpp +1 -0
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_error.hpp +6 -6
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_reader_options.hpp +7 -6
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_sniffer.hpp +24 -4
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/string_value_scanner.hpp +90 -20
- package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_update_extensions.hpp +52 -0
- package/src/duckdb/src/include/duckdb/execution/operator/persistent/physical_batch_insert.hpp +3 -1
- package/src/duckdb/src/include/duckdb/execution/operator/persistent/physical_delete.hpp +5 -5
- package/src/duckdb/src/include/duckdb/execution/operator/persistent/physical_export.hpp +1 -0
- package/src/duckdb/src/include/duckdb/execution/operator/persistent/physical_insert.hpp +8 -5
- package/src/duckdb/src/include/duckdb/execution/operator/persistent/physical_update.hpp +4 -1
- package/src/duckdb/src/include/duckdb/execution/operator/scan/physical_column_data_scan.hpp +4 -5
- package/src/duckdb/src/include/duckdb/execution/operator/scan/physical_expression_scan.hpp +6 -2
- package/src/duckdb/src/include/duckdb/execution/operator/set/physical_cte.hpp +1 -1
- package/src/duckdb/src/include/duckdb/execution/operator/set/physical_recursive_cte.hpp +1 -1
- package/src/duckdb/src/include/duckdb/execution/physical_plan_generator.hpp +1 -1
- package/src/duckdb/src/include/duckdb/execution/reservoir_sample.hpp +63 -8
- package/src/duckdb/src/include/duckdb/function/function.hpp +0 -5
- package/src/duckdb/src/include/duckdb/function/function_binder.hpp +6 -3
- package/src/duckdb/src/include/duckdb/function/replacement_scan.hpp +25 -2
- package/src/duckdb/src/include/duckdb/function/scalar/regexp.hpp +1 -1
- package/src/duckdb/src/include/duckdb/function/scalar/sequence_functions.hpp +3 -4
- package/src/duckdb/src/include/duckdb/function/scalar/strftime_format.hpp +5 -0
- package/src/duckdb/src/include/duckdb/function/scalar/string_functions.hpp +1 -1
- package/src/duckdb/src/include/duckdb/function/scalar_function.hpp +13 -0
- package/src/duckdb/src/include/duckdb/function/table/arrow.hpp +7 -3
- package/src/duckdb/src/include/duckdb/function/table/read_csv.hpp +3 -0
- package/src/duckdb/src/include/duckdb/function/table/system_functions.hpp +4 -0
- package/src/duckdb/src/include/duckdb/function/table_function.hpp +15 -2
- package/src/duckdb/src/include/duckdb/logging/http_logger.hpp +81 -0
- package/src/duckdb/src/include/duckdb/main/appender.hpp +1 -3
- package/src/duckdb/src/include/duckdb/main/attached_database.hpp +1 -1
- package/src/duckdb/src/include/duckdb/main/buffered_data/buffered_data.hpp +1 -0
- package/src/duckdb/src/include/duckdb/main/capi/cast/generic.hpp +2 -2
- package/src/duckdb/src/include/duckdb/main/client_config.hpp +8 -0
- package/src/duckdb/src/include/duckdb/main/client_context.hpp +1 -19
- package/src/duckdb/src/include/duckdb/main/client_context_state.hpp +11 -1
- package/src/duckdb/src/include/duckdb/main/client_context_wrapper.hpp +27 -0
- package/src/duckdb/src/include/duckdb/main/client_data.hpp +4 -0
- package/src/duckdb/src/include/duckdb/main/config.hpp +36 -3
- package/src/duckdb/src/include/duckdb/main/connection_manager.hpp +7 -17
- package/src/duckdb/src/include/duckdb/main/database.hpp +25 -20
- package/src/duckdb/src/include/duckdb/main/extension.hpp +25 -0
- package/src/duckdb/src/include/duckdb/main/extension_entries.hpp +155 -10
- package/src/duckdb/src/include/duckdb/main/extension_helper.hpp +79 -12
- package/src/duckdb/src/include/duckdb/main/extension_install_info.hpp +89 -0
- package/src/duckdb/src/include/duckdb/main/extension_util.hpp +3 -1
- package/src/duckdb/src/include/duckdb/main/external_dependencies.hpp +46 -4
- package/src/duckdb/src/include/duckdb/main/materialized_query_result.hpp +3 -0
- package/src/duckdb/src/include/duckdb/main/relation/materialized_relation.hpp +35 -0
- package/src/duckdb/src/include/duckdb/main/relation/query_relation.hpp +1 -1
- package/src/duckdb/src/include/duckdb/main/relation/table_function_relation.hpp +2 -2
- package/src/duckdb/src/include/duckdb/main/relation/table_relation.hpp +1 -1
- package/src/duckdb/src/include/duckdb/main/relation/value_relation.hpp +3 -3
- package/src/duckdb/src/include/duckdb/main/relation/view_relation.hpp +1 -1
- package/src/duckdb/src/include/duckdb/main/relation.hpp +5 -6
- package/src/duckdb/src/include/duckdb/main/settings.hpp +47 -0
- package/src/duckdb/src/include/duckdb/optimizer/filter_pushdown.hpp +4 -4
- 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 +8 -15
- package/src/duckdb/src/include/duckdb/optimizer/join_order/join_order_optimizer.hpp +0 -51
- package/src/duckdb/src/include/duckdb/optimizer/join_order/plan_enumerator.hpp +10 -17
- package/src/duckdb/src/include/duckdb/optimizer/join_order/query_graph_manager.hpp +5 -7
- package/src/duckdb/src/include/duckdb/optimizer/matcher/set_matcher.hpp +2 -1
- package/src/duckdb/src/include/duckdb/optimizer/optimizer_extension.hpp +10 -2
- package/src/duckdb/src/include/duckdb/optimizer/rule/list.hpp +1 -0
- package/src/duckdb/src/include/duckdb/optimizer/rule/timestamp_comparison.hpp +30 -0
- package/src/duckdb/src/include/duckdb/parallel/event.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parallel/interrupt.hpp +1 -0
- package/src/duckdb/src/include/duckdb/parallel/meta_pipeline.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parallel/pipeline.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parallel/task.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/base_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/column_definition.hpp +2 -0
- package/src/duckdb/src/include/duckdb/parser/parsed_data/alter_info.hpp +1 -0
- package/src/duckdb/src/include/duckdb/parser/parsed_data/alter_scalar_function_info.hpp +1 -0
- package/src/duckdb/src/include/duckdb/parser/parsed_data/alter_table_function_info.hpp +1 -0
- package/src/duckdb/src/include/duckdb/parser/parsed_data/alter_table_info.hpp +12 -0
- package/src/duckdb/src/include/duckdb/parser/parsed_data/attach_info.hpp +1 -0
- package/src/duckdb/src/include/duckdb/parser/parsed_data/comment_on_column_info.hpp +3 -1
- package/src/duckdb/src/include/duckdb/parser/parsed_data/copy_info.hpp +10 -12
- package/src/duckdb/src/include/duckdb/parser/parsed_data/create_info.hpp +6 -2
- package/src/duckdb/src/include/duckdb/parser/parsed_data/create_schema_info.hpp +3 -30
- package/src/duckdb/src/include/duckdb/parser/parsed_data/create_sequence_info.hpp +2 -0
- package/src/duckdb/src/include/duckdb/parser/parsed_data/create_type_info.hpp +12 -1
- package/src/duckdb/src/include/duckdb/parser/parsed_data/create_view_info.hpp +1 -0
- package/src/duckdb/src/include/duckdb/parser/parsed_data/detach_info.hpp +1 -0
- package/src/duckdb/src/include/duckdb/parser/parsed_data/drop_info.hpp +1 -0
- package/src/duckdb/src/include/duckdb/parser/parsed_data/exported_table_data.hpp +5 -2
- package/src/duckdb/src/include/duckdb/parser/parsed_data/load_info.hpp +4 -7
- package/src/duckdb/src/include/duckdb/parser/parsed_data/parse_info.hpp +7 -1
- package/src/duckdb/src/include/duckdb/parser/parsed_data/pragma_info.hpp +2 -11
- package/src/duckdb/src/include/duckdb/parser/parsed_data/transaction_info.hpp +2 -0
- package/src/duckdb/src/include/duckdb/parser/parsed_data/update_extensions_info.hpp +36 -0
- package/src/duckdb/src/include/duckdb/parser/parsed_data/vacuum_info.hpp +1 -0
- package/src/duckdb/src/include/duckdb/parser/parser_extension.hpp +1 -0
- package/src/duckdb/src/include/duckdb/parser/query_node.hpp +2 -2
- package/src/duckdb/src/include/duckdb/parser/sql_statement.hpp +1 -4
- package/src/duckdb/src/include/duckdb/parser/statement/alter_statement.hpp +1 -0
- package/src/duckdb/src/include/duckdb/parser/statement/attach_statement.hpp +1 -0
- package/src/duckdb/src/include/duckdb/parser/statement/call_statement.hpp +1 -0
- package/src/duckdb/src/include/duckdb/parser/statement/copy_database_statement.hpp +1 -2
- package/src/duckdb/src/include/duckdb/parser/statement/copy_statement.hpp +1 -3
- package/src/duckdb/src/include/duckdb/parser/statement/detach_statement.hpp +1 -0
- package/src/duckdb/src/include/duckdb/parser/statement/drop_statement.hpp +1 -0
- package/src/duckdb/src/include/duckdb/parser/statement/execute_statement.hpp +1 -0
- package/src/duckdb/src/include/duckdb/parser/statement/explain_statement.hpp +1 -0
- package/src/duckdb/src/include/duckdb/parser/statement/export_statement.hpp +1 -0
- package/src/duckdb/src/include/duckdb/parser/statement/extension_statement.hpp +1 -0
- package/src/duckdb/src/include/duckdb/parser/statement/insert_statement.hpp +1 -0
- package/src/duckdb/src/include/duckdb/parser/statement/list.hpp +1 -0
- package/src/duckdb/src/include/duckdb/parser/statement/load_statement.hpp +1 -0
- package/src/duckdb/src/include/duckdb/parser/statement/logical_plan_statement.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/statement/multi_statement.hpp +1 -0
- package/src/duckdb/src/include/duckdb/parser/statement/pragma_statement.hpp +1 -0
- package/src/duckdb/src/include/duckdb/parser/statement/prepare_statement.hpp +1 -0
- package/src/duckdb/src/include/duckdb/parser/statement/relation_statement.hpp +1 -0
- package/src/duckdb/src/include/duckdb/parser/statement/select_statement.hpp +1 -0
- package/src/duckdb/src/include/duckdb/parser/statement/set_statement.hpp +6 -4
- package/src/duckdb/src/include/duckdb/parser/statement/transaction_statement.hpp +1 -0
- package/src/duckdb/src/include/duckdb/parser/statement/update_extensions_statement.hpp +36 -0
- package/src/duckdb/src/include/duckdb/parser/statement/vacuum_statement.hpp +1 -0
- package/src/duckdb/src/include/duckdb/parser/tableref/column_data_ref.hpp +46 -0
- package/src/duckdb/src/include/duckdb/parser/tableref/list.hpp +1 -0
- package/src/duckdb/src/include/duckdb/parser/tableref/table_function_ref.hpp +0 -4
- package/src/duckdb/src/include/duckdb/parser/tableref.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/tokens.hpp +2 -0
- package/src/duckdb/src/include/duckdb/parser/transformer.hpp +5 -0
- package/src/duckdb/src/include/duckdb/planner/bind_context.hpp +4 -4
- package/src/duckdb/src/include/duckdb/planner/binder.hpp +42 -16
- package/src/duckdb/src/include/duckdb/planner/bound_tokens.hpp +1 -0
- package/src/duckdb/src/include/duckdb/planner/expression_binder/alter_binder.hpp +7 -6
- package/src/duckdb/src/include/duckdb/planner/expression_binder/having_binder.hpp +2 -1
- package/src/duckdb/src/include/duckdb/planner/expression_binder/index_binder.hpp +5 -1
- package/src/duckdb/src/include/duckdb/planner/expression_binder.hpp +5 -0
- package/src/duckdb/src/include/duckdb/planner/logical_operator.hpp +0 -1
- package/src/duckdb/src/include/duckdb/planner/operator/logical_column_data_get.hpp +6 -2
- package/src/duckdb/src/include/duckdb/planner/operator/logical_delete.hpp +2 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_export.hpp +7 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_insert.hpp +2 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_top_n.hpp +3 -3
- package/src/duckdb/src/include/duckdb/planner/operator/logical_update.hpp +2 -0
- package/src/duckdb/src/include/duckdb/planner/parsed_data/bound_create_table_info.hpp +0 -4
- package/src/duckdb/src/include/duckdb/planner/table_binding.hpp +4 -4
- package/src/duckdb/src/include/duckdb/planner/tableref/bound_column_data_ref.hpp +30 -0
- package/src/duckdb/src/include/duckdb/planner/tableref/list.hpp +1 -0
- package/src/duckdb/src/include/duckdb/storage/buffer/block_handle.hpp +6 -3
- package/src/duckdb/src/include/duckdb/storage/buffer/buffer_pool.hpp +16 -7
- package/src/duckdb/src/include/duckdb/storage/buffer_manager.hpp +15 -3
- package/src/duckdb/src/include/duckdb/storage/checkpoint/row_group_writer.hpp +10 -7
- package/src/duckdb/src/include/duckdb/storage/checkpoint/table_data_writer.hpp +2 -0
- package/src/duckdb/src/include/duckdb/storage/checkpoint_manager.hpp +24 -15
- package/src/duckdb/src/include/duckdb/storage/compression/alp/algorithm/alp.hpp +8 -7
- package/src/duckdb/src/include/duckdb/storage/compression/alp/alp_compress.hpp +2 -2
- package/src/duckdb/src/include/duckdb/storage/compression/alp/alp_constants.hpp +5 -4
- package/src/duckdb/src/include/duckdb/storage/compression/alp/alp_fetch.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/compression/alp/alp_utils.hpp +3 -3
- package/src/duckdb/src/include/duckdb/storage/compression/alprd/algorithm/alprd.hpp +2 -1
- package/src/duckdb/src/include/duckdb/storage/compression/alprd/alprd_analyze.hpp +5 -3
- package/src/duckdb/src/include/duckdb/storage/compression/alprd/alprd_compress.hpp +2 -2
- package/src/duckdb/src/include/duckdb/storage/compression/alprd/alprd_fetch.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/compression/chimp/algorithm/bit_reader.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/compression/chimp/chimp_fetch.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/compression/patas/patas_fetch.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/data_table.hpp +55 -16
- package/src/duckdb/src/include/duckdb/storage/index.hpp +33 -97
- 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 +3 -3
- package/src/duckdb/src/include/duckdb/storage/standard_buffer_manager.hpp +22 -9
- package/src/duckdb/src/include/duckdb/storage/storage_info.hpp +6 -3
- package/src/duckdb/src/include/duckdb/storage/storage_lock.hpp +17 -13
- package/src/duckdb/src/include/duckdb/storage/storage_manager.hpp +27 -8
- package/src/duckdb/src/include/duckdb/storage/string_uncompressed.hpp +3 -2
- package/src/duckdb/src/include/duckdb/storage/table/append_state.hpp +12 -0
- package/src/duckdb/src/include/duckdb/storage/table/array_column_data.hpp +5 -4
- package/src/duckdb/src/include/duckdb/storage/table/column_data.hpp +29 -10
- package/src/duckdb/src/include/duckdb/storage/table/column_segment.hpp +2 -1
- package/src/duckdb/src/include/duckdb/storage/table/data_table_info.hpp +32 -6
- package/src/duckdb/src/include/duckdb/storage/table/delete_state.hpp +23 -0
- package/src/duckdb/src/include/duckdb/storage/table/list_column_data.hpp +5 -4
- package/src/duckdb/src/include/duckdb/storage/table/row_group.hpp +14 -3
- package/src/duckdb/src/include/duckdb/storage/table/row_group_collection.hpp +3 -2
- package/src/duckdb/src/include/duckdb/storage/table/scan_state.hpp +4 -0
- package/src/duckdb/src/include/duckdb/storage/table/segment_tree.hpp +5 -5
- package/src/duckdb/src/include/duckdb/storage/table/standard_column_data.hpp +6 -6
- package/src/duckdb/src/include/duckdb/storage/table/struct_column_data.hpp +5 -4
- package/src/duckdb/src/include/duckdb/storage/table/table_index_list.hpp +25 -1
- package/src/duckdb/src/include/duckdb/storage/table/table_statistics.hpp +5 -2
- package/src/duckdb/src/include/duckdb/storage/table/update_state.hpp +20 -0
- package/src/duckdb/src/include/duckdb/storage/table/validity_column_data.hpp +1 -0
- package/src/duckdb/src/include/duckdb/storage/temporary_file_manager.hpp +20 -4
- package/src/duckdb/src/include/duckdb/storage/write_ahead_log.hpp +10 -5
- package/src/duckdb/src/include/duckdb/transaction/duck_transaction.hpp +19 -4
- package/src/duckdb/src/include/duckdb/transaction/duck_transaction_manager.hpp +30 -7
- package/src/duckdb/src/include/duckdb/transaction/local_storage.hpp +8 -5
- package/src/duckdb/src/include/duckdb/transaction/meta_transaction.hpp +1 -0
- package/src/duckdb/src/include/duckdb/transaction/transaction.hpp +8 -0
- package/src/duckdb/src/include/duckdb/transaction/undo_buffer.hpp +9 -1
- package/src/duckdb/src/include/duckdb.h +15 -11
- package/src/duckdb/src/main/appender.cpp +3 -1
- package/src/duckdb/src/main/attached_database.cpp +5 -3
- package/src/duckdb/src/main/capi/appender-c.cpp +4 -3
- package/src/duckdb/src/main/capi/arrow-c.cpp +4 -4
- package/src/duckdb/src/main/capi/helper-c.cpp +3 -3
- package/src/duckdb/src/main/capi/replacement_scan-c.cpp +6 -5
- package/src/duckdb/src/main/capi/result-c.cpp +19 -5
- package/src/duckdb/src/main/capi/table_function-c.cpp +1 -1
- package/src/duckdb/src/main/client_context.cpp +32 -23
- package/src/duckdb/src/main/client_context_file_opener.cpp +31 -0
- package/src/duckdb/src/main/client_context_wrapper.cpp +22 -0
- package/src/duckdb/src/main/client_data.cpp +5 -3
- package/src/duckdb/src/main/config.cpp +71 -2
- package/src/duckdb/src/main/connection.cpp +11 -10
- package/src/duckdb/src/main/connection_manager.cpp +9 -23
- package/src/duckdb/src/main/database.cpp +26 -30
- package/src/duckdb/src/main/db_instance_cache.cpp +1 -1
- package/src/duckdb/src/main/extension/extension_helper.cpp +396 -17
- package/src/duckdb/src/main/extension/extension_install.cpp +297 -89
- package/src/duckdb/src/main/extension/extension_load.cpp +137 -135
- package/src/duckdb/src/main/extension/extension_util.cpp +8 -2
- package/src/duckdb/src/main/extension.cpp +56 -0
- package/src/duckdb/src/main/extension_install_info.cpp +116 -0
- package/src/duckdb/src/main/materialized_query_result.cpp +11 -0
- package/src/duckdb/src/main/query_profiler.cpp +1 -1
- package/src/duckdb/src/main/relation/create_view_relation.cpp +6 -0
- package/src/duckdb/src/main/relation/materialized_relation.cpp +58 -0
- package/src/duckdb/src/main/relation/query_relation.cpp +20 -1
- package/src/duckdb/src/main/relation/read_csv_relation.cpp +5 -3
- package/src/duckdb/src/main/relation/table_relation.cpp +4 -4
- package/src/duckdb/src/main/relation/value_relation.cpp +2 -2
- package/src/duckdb/src/main/relation/view_relation.cpp +1 -1
- package/src/duckdb/src/main/relation/write_csv_relation.cpp +1 -1
- package/src/duckdb/src/main/relation/write_parquet_relation.cpp +1 -1
- package/src/duckdb/src/main/relation.cpp +36 -32
- package/src/duckdb/src/main/secret/secret.cpp +1 -1
- package/src/duckdb/src/main/settings/settings.cpp +137 -11
- package/src/duckdb/src/optimizer/common_aggregate_optimizer.cpp +1 -1
- package/src/duckdb/src/optimizer/filter_combiner.cpp +3 -3
- package/src/duckdb/src/optimizer/filter_pushdown.cpp +3 -2
- package/src/duckdb/src/optimizer/join_order/cardinality_estimator.cpp +3 -3
- package/src/duckdb/src/optimizer/join_order/cost_model.cpp +1 -1
- package/src/duckdb/src/optimizer/join_order/join_node.cpp +4 -27
- package/src/duckdb/src/optimizer/join_order/join_order_optimizer.cpp +5 -8
- package/src/duckdb/src/optimizer/join_order/plan_enumerator.cpp +32 -107
- package/src/duckdb/src/optimizer/join_order/query_graph_manager.cpp +68 -61
- package/src/duckdb/src/optimizer/join_order/relation_manager.cpp +4 -2
- package/src/duckdb/src/optimizer/join_order/relation_statistics_helper.cpp +3 -3
- package/src/duckdb/src/optimizer/optimizer.cpp +3 -1
- package/src/duckdb/src/optimizer/pushdown/pushdown_aggregate.cpp +2 -2
- package/src/duckdb/src/optimizer/pushdown/pushdown_cross_product.cpp +1 -1
- package/src/duckdb/src/optimizer/pushdown/pushdown_left_join.cpp +2 -2
- package/src/duckdb/src/optimizer/pushdown/pushdown_mark_join.cpp +6 -6
- package/src/duckdb/src/optimizer/pushdown/pushdown_projection.cpp +1 -1
- package/src/duckdb/src/optimizer/pushdown/pushdown_semi_anti_join.cpp +1 -1
- package/src/duckdb/src/optimizer/pushdown/pushdown_set_operation.cpp +1 -1
- package/src/duckdb/src/optimizer/pushdown/pushdown_single_join.cpp +2 -2
- package/src/duckdb/src/optimizer/remove_duplicate_groups.cpp +1 -1
- package/src/duckdb/src/optimizer/remove_unused_columns.cpp +1 -1
- package/src/duckdb/src/optimizer/rule/arithmetic_simplification.cpp +1 -1
- package/src/duckdb/src/optimizer/rule/case_simplification.cpp +2 -2
- package/src/duckdb/src/optimizer/rule/conjunction_simplification.cpp +2 -1
- package/src/duckdb/src/optimizer/rule/constant_folding.cpp +1 -0
- package/src/duckdb/src/optimizer/rule/distributivity.cpp +1 -1
- package/src/duckdb/src/optimizer/rule/empty_needle_removal.cpp +1 -0
- package/src/duckdb/src/optimizer/rule/enum_comparison.cpp +1 -0
- package/src/duckdb/src/optimizer/rule/in_clause_simplification_rule.cpp +1 -0
- package/src/duckdb/src/optimizer/rule/ordered_aggregate_optimizer.cpp +1 -2
- package/src/duckdb/src/optimizer/rule/timestamp_comparison.cpp +107 -0
- package/src/duckdb/src/optimizer/statistics/expression/propagate_conjunction.cpp +1 -1
- package/src/duckdb/src/optimizer/statistics/expression/propagate_operator.cpp +4 -4
- package/src/duckdb/src/optimizer/statistics/operator/propagate_filter.cpp +3 -3
- package/src/duckdb/src/optimizer/statistics/operator/propagate_get.cpp +1 -1
- package/src/duckdb/src/optimizer/statistics/operator/propagate_join.cpp +6 -3
- package/src/duckdb/src/optimizer/statistics/operator/propagate_set_operation.cpp +2 -1
- package/src/duckdb/src/optimizer/topn_optimizer.cpp +2 -2
- package/src/duckdb/src/parallel/executor.cpp +12 -9
- package/src/duckdb/src/parallel/meta_pipeline.cpp +2 -2
- package/src/duckdb/src/parallel/pipeline.cpp +2 -2
- package/src/duckdb/src/parallel/task_scheduler.cpp +9 -3
- package/src/duckdb/src/parser/column_definition.cpp +1 -0
- package/src/duckdb/src/parser/constraints/foreign_key_constraint.cpp +9 -7
- package/src/duckdb/src/parser/expression/star_expression.cpp +2 -2
- package/src/duckdb/src/parser/parsed_data/alter_scalar_function_info.cpp +4 -0
- package/src/duckdb/src/parser/parsed_data/alter_table_function_info.cpp +4 -0
- package/src/duckdb/src/parser/parsed_data/alter_table_info.cpp +183 -0
- package/src/duckdb/src/parser/parsed_data/attach_info.cpp +23 -0
- package/src/duckdb/src/parser/parsed_data/comment_on_column_info.cpp +15 -2
- package/src/duckdb/src/parser/parsed_data/copy_info.cpp +100 -0
- package/src/duckdb/src/parser/parsed_data/create_index_info.cpp +16 -2
- package/src/duckdb/src/parser/parsed_data/create_info.cpp +2 -0
- package/src/duckdb/src/parser/parsed_data/create_schema_info.cpp +40 -0
- package/src/duckdb/src/parser/parsed_data/create_sequence_info.cpp +22 -0
- package/src/duckdb/src/parser/parsed_data/create_table_info.cpp +12 -4
- package/src/duckdb/src/parser/parsed_data/create_type_info.cpp +37 -14
- package/src/duckdb/src/parser/parsed_data/create_view_info.cpp +4 -4
- package/src/duckdb/src/parser/parsed_data/detach_info.cpp +12 -0
- package/src/duckdb/src/parser/parsed_data/drop_info.cpp +21 -0
- package/src/duckdb/src/parser/parsed_data/load_info.cpp +46 -0
- package/src/duckdb/src/parser/parsed_data/parse_info.cpp +50 -0
- package/src/duckdb/src/parser/parsed_data/pragma_info.cpp +33 -0
- package/src/duckdb/src/parser/parsed_data/transaction_info.cpp +22 -0
- package/src/duckdb/src/parser/parsed_data/vacuum_info.cpp +20 -0
- package/src/duckdb/src/parser/parsed_expression_iterator.cpp +1 -0
- package/src/duckdb/src/parser/parser.cpp +5 -4
- package/src/duckdb/src/parser/query_node.cpp +6 -2
- package/src/duckdb/src/parser/statement/alter_statement.cpp +4 -0
- package/src/duckdb/src/parser/statement/attach_statement.cpp +4 -0
- package/src/duckdb/src/parser/statement/call_statement.cpp +8 -0
- package/src/duckdb/src/parser/statement/copy_statement.cpp +1 -91
- package/src/duckdb/src/parser/statement/detach_statement.cpp +4 -0
- package/src/duckdb/src/parser/statement/drop_statement.cpp +4 -0
- package/src/duckdb/src/parser/statement/execute_statement.cpp +15 -0
- package/src/duckdb/src/parser/statement/explain_statement.cpp +19 -0
- package/src/duckdb/src/parser/statement/export_statement.cpp +18 -0
- package/src/duckdb/src/parser/statement/extension_statement.cpp +4 -0
- package/src/duckdb/src/parser/statement/load_statement.cpp +4 -0
- package/src/duckdb/src/parser/statement/multi_statement.cpp +8 -0
- package/src/duckdb/src/parser/statement/pragma_statement.cpp +4 -0
- package/src/duckdb/src/parser/statement/prepare_statement.cpp +13 -0
- package/src/duckdb/src/parser/statement/relation_statement.cpp +4 -0
- package/src/duckdb/src/parser/statement/set_statement.cpp +33 -4
- package/src/duckdb/src/parser/statement/transaction_statement.cpp +4 -0
- package/src/duckdb/src/parser/statement/update_extensions_statement.cpp +34 -0
- package/src/duckdb/src/parser/statement/vacuum_statement.cpp +4 -0
- package/src/duckdb/src/parser/tableref/column_data_ref.cpp +81 -0
- package/src/duckdb/src/parser/tableref.cpp +1 -0
- package/src/duckdb/src/parser/transform/expression/transform_boolean_test.cpp +2 -2
- package/src/duckdb/src/parser/transform/expression/transform_cast.cpp +1 -1
- package/src/duckdb/src/parser/transform/expression/transform_interval.cpp +6 -1
- package/src/duckdb/src/parser/transform/expression/transform_param_ref.cpp +1 -1
- package/src/duckdb/src/parser/transform/expression/transform_positional_reference.cpp +1 -1
- package/src/duckdb/src/parser/transform/expression/transform_subquery.cpp +16 -0
- package/src/duckdb/src/parser/transform/helpers/nodetype_to_string.cpp +2 -0
- package/src/duckdb/src/parser/transform/helpers/transform_typename.cpp +97 -63
- package/src/duckdb/src/parser/transform/statement/transform_checkpoint.cpp +2 -0
- package/src/duckdb/src/parser/transform/statement/transform_copy.cpp +1 -1
- package/src/duckdb/src/parser/transform/statement/transform_load.cpp +4 -2
- package/src/duckdb/src/parser/transform/statement/transform_update.cpp +19 -0
- package/src/duckdb/src/parser/transformer.cpp +5 -2
- package/src/duckdb/src/planner/bind_context.cpp +2 -2
- package/src/duckdb/src/planner/binder/expression/bind_aggregate_expression.cpp +35 -8
- package/src/duckdb/src/planner/binder/expression/bind_cast_expression.cpp +1 -1
- package/src/duckdb/src/planner/binder/expression/bind_function_expression.cpp +13 -7
- package/src/duckdb/src/planner/binder/query_node/bind_select_node.cpp +1 -1
- package/src/duckdb/src/planner/binder/query_node/plan_setop.cpp +35 -2
- package/src/duckdb/src/planner/binder/query_node/plan_subquery.cpp +0 -2
- package/src/duckdb/src/planner/binder/statement/bind_attach.cpp +2 -0
- package/src/duckdb/src/planner/binder/statement/bind_call.cpp +2 -0
- package/src/duckdb/src/planner/binder/statement/bind_copy.cpp +7 -3
- package/src/duckdb/src/planner/binder/statement/bind_copy_database.cpp +21 -68
- package/src/duckdb/src/planner/binder/statement/bind_create.cpp +141 -28
- package/src/duckdb/src/planner/binder/statement/bind_create_table.cpp +115 -57
- package/src/duckdb/src/planner/binder/statement/bind_delete.cpp +4 -0
- package/src/duckdb/src/planner/binder/statement/bind_detach.cpp +2 -0
- package/src/duckdb/src/planner/binder/statement/bind_drop.cpp +2 -0
- package/src/duckdb/src/planner/binder/statement/bind_execute.cpp +4 -2
- package/src/duckdb/src/planner/binder/statement/bind_explain.cpp +2 -0
- package/src/duckdb/src/planner/binder/statement/bind_export.cpp +15 -4
- package/src/duckdb/src/planner/binder/statement/bind_extension.cpp +1 -0
- package/src/duckdb/src/planner/binder/statement/bind_insert.cpp +5 -1
- package/src/duckdb/src/planner/binder/statement/bind_load.cpp +13 -0
- package/src/duckdb/src/planner/binder/statement/bind_logical_plan.cpp +2 -0
- package/src/duckdb/src/planner/binder/statement/bind_pragma.cpp +2 -0
- package/src/duckdb/src/planner/binder/statement/bind_prepare.cpp +1 -0
- package/src/duckdb/src/planner/binder/statement/bind_select.cpp +1 -0
- package/src/duckdb/src/planner/binder/statement/bind_set.cpp +4 -0
- package/src/duckdb/src/planner/binder/statement/bind_simple.cpp +6 -4
- package/src/duckdb/src/planner/binder/statement/bind_update.cpp +5 -1
- package/src/duckdb/src/planner/binder/statement/bind_update_extensions.cpp +28 -0
- package/src/duckdb/src/planner/binder/statement/bind_vacuum.cpp +2 -0
- package/src/duckdb/src/planner/binder/tableref/bind_basetableref.cpp +32 -29
- package/src/duckdb/src/planner/binder/tableref/bind_column_data_ref.cpp +16 -0
- package/src/duckdb/src/planner/binder/tableref/bind_pivot.cpp +7 -4
- package/src/duckdb/src/planner/binder/tableref/bind_table_function.cpp +32 -22
- package/src/duckdb/src/planner/binder/tableref/plan_column_data_ref.cpp +15 -0
- package/src/duckdb/src/planner/binder.cpp +50 -30
- package/src/duckdb/src/planner/bound_parameter_map.cpp +1 -1
- package/src/duckdb/src/planner/bound_result_modifier.cpp +1 -1
- package/src/duckdb/src/planner/expression/bound_expression.cpp +3 -2
- package/src/duckdb/src/planner/expression_binder/alter_binder.cpp +24 -7
- package/src/duckdb/src/planner/expression_binder/base_select_binder.cpp +27 -2
- package/src/duckdb/src/planner/expression_binder/having_binder.cpp +34 -19
- package/src/duckdb/src/planner/expression_binder/index_binder.cpp +33 -0
- package/src/duckdb/src/planner/expression_binder/order_binder.cpp +10 -1
- package/src/duckdb/src/planner/expression_binder.cpp +4 -0
- package/src/duckdb/src/planner/expression_iterator.cpp +3 -1
- package/src/duckdb/src/planner/filter/constant_filter.cpp +1 -1
- package/src/duckdb/src/planner/operator/logical_column_data_get.cpp +16 -2
- package/src/duckdb/src/planner/operator/logical_delete.cpp +2 -0
- package/src/duckdb/src/planner/operator/logical_get.cpp +4 -1
- package/src/duckdb/src/planner/operator/logical_insert.cpp +2 -0
- package/src/duckdb/src/planner/operator/logical_top_n.cpp +1 -1
- package/src/duckdb/src/planner/operator/logical_update.cpp +2 -0
- package/src/duckdb/src/planner/planner.cpp +35 -9
- package/src/duckdb/src/planner/subquery/flatten_dependent_join.cpp +34 -9
- package/src/duckdb/src/planner/table_binding.cpp +1 -1
- package/src/duckdb/src/storage/arena_allocator.cpp +5 -3
- package/src/duckdb/src/storage/buffer/block_handle.cpp +3 -3
- package/src/duckdb/src/storage/buffer/block_manager.cpp +1 -1
- package/src/duckdb/src/storage/buffer/buffer_pool.cpp +83 -22
- package/src/duckdb/src/storage/buffer/buffer_pool_reservation.cpp +2 -2
- package/src/duckdb/src/storage/buffer_manager.cpp +6 -2
- package/src/duckdb/src/storage/checkpoint/row_group_writer.cpp +9 -0
- package/src/duckdb/src/storage/checkpoint/table_data_writer.cpp +7 -2
- package/src/duckdb/src/storage/checkpoint_manager.cpp +68 -104
- package/src/duckdb/src/storage/compression/bitpacking.cpp +19 -13
- package/src/duckdb/src/storage/compression/dictionary_compression.cpp +9 -7
- package/src/duckdb/src/storage/compression/fixed_size_uncompressed.cpp +1 -1
- package/src/duckdb/src/storage/compression/fsst.cpp +11 -7
- package/src/duckdb/src/storage/compression/rle.cpp +1 -1
- package/src/duckdb/src/storage/compression/string_uncompressed.cpp +5 -4
- package/src/duckdb/src/storage/compression/validity_uncompressed.cpp +1 -1
- package/src/duckdb/src/storage/data_table.cpp +254 -101
- package/src/duckdb/src/storage/index.cpp +2 -106
- package/src/duckdb/src/storage/local_storage.cpp +38 -50
- package/src/duckdb/src/storage/metadata/metadata_manager.cpp +2 -2
- package/src/duckdb/src/storage/metadata/metadata_writer.cpp +1 -1
- package/src/duckdb/src/storage/optimistic_data_writer.cpp +9 -11
- package/src/duckdb/src/storage/partial_block_manager.cpp +6 -6
- package/src/duckdb/src/storage/serialization/serialize_create_info.cpp +8 -0
- package/src/duckdb/src/storage/serialization/serialize_dependency.cpp +49 -0
- package/src/duckdb/src/storage/serialization/serialize_extension_install_info.cpp +28 -0
- package/src/duckdb/src/storage/serialization/serialize_logical_operator.cpp +5 -2
- package/src/duckdb/src/storage/serialization/serialize_nodes.cpp +78 -2
- package/src/duckdb/src/storage/serialization/serialize_parse_info.cpp +21 -0
- package/src/duckdb/src/storage/serialization/serialize_tableref.cpp +16 -0
- package/src/duckdb/src/storage/serialization/serialize_types.cpp +6 -1
- package/src/duckdb/src/storage/single_file_block_manager.cpp +22 -19
- package/src/duckdb/src/storage/standard_buffer_manager.cpp +68 -40
- package/src/duckdb/src/storage/statistics/column_statistics.cpp +3 -3
- package/src/duckdb/src/storage/statistics/distinct_statistics.cpp +1 -1
- package/src/duckdb/src/storage/storage_info.cpp +67 -23
- package/src/duckdb/src/storage/storage_lock.cpp +77 -17
- package/src/duckdb/src/storage/storage_manager.cpp +56 -43
- package/src/duckdb/src/storage/table/array_column_data.cpp +13 -12
- package/src/duckdb/src/storage/table/column_data.cpp +80 -37
- package/src/duckdb/src/storage/table/column_data_checkpointer.cpp +1 -1
- package/src/duckdb/src/storage/table/column_segment.cpp +6 -5
- package/src/duckdb/src/storage/table/list_column_data.cpp +15 -14
- package/src/duckdb/src/storage/table/row_group.cpp +38 -23
- package/src/duckdb/src/storage/table/row_group_collection.cpp +52 -38
- package/src/duckdb/src/storage/table/row_version_manager.cpp +2 -2
- package/src/duckdb/src/storage/table/standard_column_data.cpp +28 -16
- package/src/duckdb/src/storage/table/struct_column_data.cpp +23 -16
- package/src/duckdb/src/storage/table/table_statistics.cpp +27 -8
- package/src/duckdb/src/storage/table/update_segment.cpp +6 -6
- package/src/duckdb/src/storage/table/validity_column_data.cpp +5 -0
- package/src/duckdb/src/storage/table_index_list.cpp +69 -42
- package/src/duckdb/src/storage/temporary_file_manager.cpp +111 -17
- package/src/duckdb/src/storage/temporary_memory_manager.cpp +4 -4
- package/src/duckdb/src/storage/wal_replay.cpp +27 -22
- package/src/duckdb/src/storage/write_ahead_log.cpp +42 -22
- package/src/duckdb/src/transaction/cleanup_state.cpp +4 -7
- package/src/duckdb/src/transaction/commit_state.cpp +17 -8
- package/src/duckdb/src/transaction/duck_transaction.cpp +60 -15
- package/src/duckdb/src/transaction/duck_transaction_manager.cpp +154 -121
- package/src/duckdb/src/transaction/meta_transaction.cpp +19 -1
- package/src/duckdb/src/transaction/rollback_state.cpp +2 -0
- package/src/duckdb/src/transaction/transaction.cpp +7 -7
- package/src/duckdb/src/transaction/undo_buffer.cpp +37 -17
- package/src/duckdb/third_party/concurrentqueue/concurrentqueue.h +5 -5
- package/src/duckdb/third_party/fsst/fsst.h +1 -1
- package/src/duckdb/third_party/jaro_winkler/details/common.hpp +9 -9
- package/src/duckdb/third_party/jaro_winkler/details/intrinsics.hpp +1 -1
- package/src/duckdb/third_party/jaro_winkler/details/jaro_impl.hpp +18 -18
- package/src/duckdb/third_party/libpg_query/include/nodes/nodes.hpp +1 -0
- package/src/duckdb/third_party/libpg_query/include/nodes/parsenodes.hpp +12 -0
- package/src/duckdb/third_party/libpg_query/include/parser/gram.hpp +555 -1032
- package/src/duckdb/third_party/libpg_query/include/parser/kwlist.hpp +3 -0
- package/src/duckdb/third_party/libpg_query/include/utils/datetime.hpp +1 -0
- package/src/duckdb/third_party/libpg_query/pg_functions.cpp +13 -6
- package/src/duckdb/third_party/libpg_query/src_backend_parser_gram.cpp +23925 -23444
- package/src/duckdb/third_party/mbedtls/library/constant_time.cpp +1 -1
- 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/compile.cc +2 -2
- package/src/duckdb/third_party/re2/re2/dfa.cc +3 -8
- package/src/duckdb/third_party/re2/re2/onepass.cc +4 -3
- package/src/duckdb/third_party/re2/re2/prog.cc +10 -10
- package/src/duckdb/third_party/re2/re2/prog.h +8 -8
- package/src/duckdb/third_party/tdigest/t_digest.hpp +6 -6
- package/src/duckdb/third_party/utf8proc/include/utf8proc.hpp +1 -1
- package/src/duckdb/third_party/yyjson/include/yyjson.hpp +7930 -0
- package/src/duckdb/third_party/yyjson/yyjson.cpp +9490 -0
- package/src/duckdb/ub_src_catalog.cpp +2 -0
- package/src/duckdb/ub_src_common.cpp +2 -0
- package/src/duckdb/ub_src_execution_index.cpp +3 -1
- package/src/duckdb/ub_src_execution_operator_helper.cpp +2 -0
- package/src/duckdb/ub_src_function_table_system.cpp +2 -0
- package/src/duckdb/ub_src_main.cpp +4 -0
- package/src/duckdb/ub_src_main_relation.cpp +2 -0
- package/src/duckdb/ub_src_optimizer.cpp +8 -8
- package/src/duckdb/ub_src_optimizer_join_order.cpp +0 -2
- package/src/duckdb/ub_src_optimizer_rule.cpp +4 -2
- package/src/duckdb/ub_src_parser_parsed_data.cpp +10 -0
- package/src/duckdb/ub_src_parser_statement.cpp +2 -0
- package/src/duckdb/ub_src_parser_tableref.cpp +2 -0
- package/src/duckdb/ub_src_planner_binder_statement.cpp +2 -0
- package/src/duckdb/ub_src_planner_binder_tableref.cpp +4 -0
- package/src/duckdb/ub_src_storage_serialization.cpp +4 -0
- package/src/duckdb/src/catalog/catalog_entry/ub_duckdb_catalog_entries.cpp +0 -16
- package/src/duckdb/src/catalog/default/ub_duckdb_catalog_default_entries.cpp +0 -5
- package/src/duckdb/src/catalog/ub_duckdb_catalog.cpp +0 -10
- package/src/duckdb/src/common/adbc/nanoarrow/ub_duckdb_adbc_nanoarrow.cpp +0 -5
- package/src/duckdb/src/common/adbc/ub_duckdb_adbc.cpp +0 -3
- package/src/duckdb/src/common/arrow/appender/ub_duckdb_common_arrow_appender.cpp +0 -6
- package/src/duckdb/src/common/arrow/ub_duckdb_common_arrow.cpp +0 -4
- package/src/duckdb/src/common/crypto/ub_duckdb_common_crypto.cpp +0 -2
- package/src/duckdb/src/common/enums/ub_duckdb_common_enums.cpp +0 -12
- package/src/duckdb/src/common/operator/ub_duckdb_common_operators.cpp +0 -4
- package/src/duckdb/src/common/progress_bar/ub_duckdb_progress_bar.cpp +0 -3
- package/src/duckdb/src/common/row_operations/ub_duckdb_row_operations.cpp +0 -9
- package/src/duckdb/src/common/serializer/ub_duckdb_common_serializer.cpp +0 -7
- package/src/duckdb/src/common/sort/ub_duckdb_sort.cpp +0 -7
- package/src/duckdb/src/common/types/column/ub_duckdb_common_types_column.cpp +0 -6
- package/src/duckdb/src/common/types/row/ub_duckdb_common_types_row.cpp +0 -11
- package/src/duckdb/src/common/types/ub_duckdb_common_types.cpp +0 -28
- package/src/duckdb/src/common/ub_duckdb_common.cpp +0 -34
- package/src/duckdb/src/common/value_operations/ub_duckdb_value_operations.cpp +0 -2
- package/src/duckdb/src/core_functions/aggregate/algebraic/ub_duckdb_aggr_algebraic.cpp +0 -5
- package/src/duckdb/src/core_functions/aggregate/distributive/ub_duckdb_aggr_distributive.cpp +0 -13
- package/src/duckdb/src/core_functions/aggregate/holistic/ub_duckdb_aggr_holistic.cpp +0 -5
- package/src/duckdb/src/core_functions/aggregate/nested/ub_duckdb_aggr_nested.cpp +0 -3
- package/src/duckdb/src/core_functions/aggregate/regression/ub_duckdb_aggr_regr.cpp +0 -8
- package/src/duckdb/src/core_functions/scalar/bit/ub_duckdb_func_bit.cpp +0 -2
- package/src/duckdb/src/core_functions/scalar/blob/ub_duckdb_func_blob.cpp +0 -3
- package/src/duckdb/src/core_functions/scalar/date/ub_duckdb_func_date.cpp +0 -12
- package/src/duckdb/src/core_functions/scalar/debug/ub_duckdb_func_debug.cpp +0 -2
- package/src/duckdb/src/core_functions/scalar/enum/ub_duckdb_func_enum.cpp +0 -2
- package/src/duckdb/src/core_functions/scalar/generic/ub_duckdb_func_generic.cpp +0 -9
- package/src/duckdb/src/core_functions/scalar/list/ub_duckdb_func_list.cpp +0 -11
- package/src/duckdb/src/core_functions/scalar/map/ub_duckdb_func_map_nested.cpp +0 -8
- package/src/duckdb/src/core_functions/scalar/math/ub_duckdb_func_math.cpp +0 -1
- package/src/duckdb/src/core_functions/scalar/operators/ub_duckdb_func_ops.cpp +0 -1
- package/src/duckdb/src/core_functions/scalar/random/ub_duckdb_func_random.cpp +0 -3
- package/src/duckdb/src/core_functions/scalar/string/ub_duckdb_func_string.cpp +0 -26
- package/src/duckdb/src/core_functions/scalar/struct/ub_duckdb_func_struct.cpp +0 -3
- package/src/duckdb/src/core_functions/scalar/union/ub_duckdb_func_union.cpp +0 -4
- package/src/duckdb/src/core_functions/ub_duckdb_core_functions.cpp +0 -3
- package/src/duckdb/src/execution/expression_executor/ub_duckdb_expression_executor.cpp +0 -11
- package/src/duckdb/src/execution/index/art/ub_duckdb_art_index_execution.cpp +0 -12
- package/src/duckdb/src/execution/index/art/ub_duckdb_execution_index_art.cpp +0 -11
- package/src/duckdb/src/execution/index/ub_duckdb_execution_index.cpp +0 -3
- package/src/duckdb/src/execution/nested_loop_join/ub_duckdb_nested_loop_join.cpp +0 -3
- package/src/duckdb/src/execution/operator/aggregate/ub_duckdb_operator_aggregate.cpp +0 -9
- package/src/duckdb/src/execution/operator/csv_scanner/sniffer/ub_duckdb_operator_csv_sniffer.cpp +0 -7
- package/src/duckdb/src/execution/operator/csv_scanner/ub_duckdb_operator_csv_scanner.cpp +0 -10
- package/src/duckdb/src/execution/operator/filter/ub_duckdb_operator_filter.cpp +0 -2
- package/src/duckdb/src/execution/operator/helper/ub_duckdb_operator_helper.cpp +0 -18
- package/src/duckdb/src/execution/operator/join/ub_duckdb_operator_join.cpp +0 -16
- package/src/duckdb/src/execution/operator/order/ub_duckdb_operator_order.cpp +0 -3
- package/src/duckdb/src/execution/operator/persistent/ub_duckdb_operator_persistent.cpp +0 -10
- package/src/duckdb/src/execution/operator/projection/ub_duckdb_operator_projection.cpp +0 -5
- package/src/duckdb/src/execution/operator/scan/ub_duckdb_operator_scan.cpp +0 -7
- package/src/duckdb/src/execution/operator/schema/ub_duckdb_operator_schema.cpp +0 -12
- package/src/duckdb/src/execution/operator/set/ub_duckdb_operator_set.cpp +0 -4
- package/src/duckdb/src/execution/physical_plan/ub_duckdb_physical_plan.cpp +0 -44
- package/src/duckdb/src/execution/ub_duckdb_execution.cpp +0 -15
- package/src/duckdb/src/function/aggregate/algebraic/ub_duckdb_aggr_algebraic.cpp +0 -5
- package/src/duckdb/src/function/aggregate/distributive/ub_duckdb_aggr_distr.cpp +0 -3
- package/src/duckdb/src/function/aggregate/holistic/ub_duckdb_aggr_holistic.cpp +0 -5
- package/src/duckdb/src/function/aggregate/nested/ub_duckdb_aggr_nested.cpp +0 -3
- package/src/duckdb/src/function/aggregate/regression/ub_duckdb_aggr_regr.cpp +0 -8
- package/src/duckdb/src/function/aggregate/ub_duckdb_func_aggr.cpp +0 -3
- package/src/duckdb/src/function/cast/ub_duckdb_func_cast.cpp +0 -17
- package/src/duckdb/src/function/cast/union/ub_duckdb_union_cast.cpp +0 -2
- package/src/duckdb/src/function/pragma/ub_duckdb_func_pragma.cpp +0 -3
- package/src/duckdb/src/function/scalar/bit/ub_duckdb_func_bit.cpp +0 -2
- package/src/duckdb/src/function/scalar/blob/ub_duckdb_func_blob.cpp +0 -3
- package/src/duckdb/src/function/scalar/compressed_materialization/ub_duckdb_func_compressed_materialization.cpp +0 -3
- package/src/duckdb/src/function/scalar/date/ub_duckdb_func_date.cpp +0 -12
- package/src/duckdb/src/function/scalar/enum/ub_duckdb_func_enum.cpp +0 -2
- package/src/duckdb/src/function/scalar/generic/ub_duckdb_func_generic.cpp +0 -8
- package/src/duckdb/src/function/scalar/generic/ub_duckdb_func_generic_main.cpp +0 -2
- package/src/duckdb/src/function/scalar/list/ub_duckdb_func_list.cpp +0 -11
- package/src/duckdb/src/function/scalar/list/ub_duckdb_func_list_nested.cpp +0 -5
- package/src/duckdb/src/function/scalar/map/ub_duckdb_func_map_nested.cpp +0 -7
- package/src/duckdb/src/function/scalar/math/ub_duckdb_func_math.cpp +0 -4
- package/src/duckdb/src/function/scalar/operators/ub_duckdb_func_ops.cpp +0 -6
- package/src/duckdb/src/function/scalar/operators/ub_duckdb_func_ops_main.cpp +0 -5
- package/src/duckdb/src/function/scalar/sequence/ub_duckdb_func_seq.cpp +0 -2
- package/src/duckdb/src/function/scalar/string/regexp/ub_duckdb_func_string_regexp.cpp +0 -3
- package/src/duckdb/src/function/scalar/string/ub_duckdb_func_string.cpp +0 -31
- package/src/duckdb/src/function/scalar/string/ub_duckdb_func_string_main.cpp +0 -12
- package/src/duckdb/src/function/scalar/struct/ub_duckdb_func_struct.cpp +0 -4
- package/src/duckdb/src/function/scalar/struct/ub_duckdb_func_struct_main.cpp +0 -2
- package/src/duckdb/src/function/scalar/system/ub_duckdb_func_system.cpp +0 -2
- package/src/duckdb/src/function/scalar/ub_duckdb_func_scalar.cpp +0 -9
- package/src/duckdb/src/function/scalar/union/ub_duckdb_func_union.cpp +0 -4
- package/src/duckdb/src/function/table/arrow/ub_duckdb_arrow_conversion.cpp +0 -2
- package/src/duckdb/src/function/table/system/ub_duckdb_table_func_system.cpp +0 -23
- package/src/duckdb/src/function/table/ub_duckdb_func_table.cpp +0 -16
- package/src/duckdb/src/function/table/version/ub_duckdb_func_table_version.cpp +0 -2
- package/src/duckdb/src/function/ub_duckdb_function.cpp +0 -14
- package/src/duckdb/src/main/capi/cast/ub_duckdb_main_capi_cast.cpp +0 -3
- package/src/duckdb/src/main/capi/ub_duckdb_main_capi.cpp +0 -19
- package/src/duckdb/src/main/chunk_scan_state/ub_duckdb_main_chunk_scan_state.cpp +0 -2
- package/src/duckdb/src/main/extension/ub_duckdb_main_extension.cpp +0 -6
- package/src/duckdb/src/main/relation/ub_duckdb_main_relation.cpp +0 -26
- package/src/duckdb/src/main/settings/ub_duckdb_main_settings.cpp +0 -2
- package/src/duckdb/src/main/ub_duckdb_main.cpp +0 -25
- package/src/duckdb/src/optimizer/compressed_materialization/ub_duckdb_optimizer_compressed_materialization.cpp +0 -4
- package/src/duckdb/src/optimizer/join_order/ub_duckdb_optimizer_join_order.cpp +0 -12
- package/src/duckdb/src/optimizer/matcher/ub_duckdb_optimizer_matcher.cpp +0 -2
- package/src/duckdb/src/optimizer/pullup/ub_duckdb_optimizer_pullup.cpp +0 -6
- package/src/duckdb/src/optimizer/pushdown/ub_duckdb_optimizer_pushdown.cpp +0 -12
- package/src/duckdb/src/optimizer/rule/ub_duckdb_optimizer_rules.cpp +0 -16
- package/src/duckdb/src/optimizer/statistics/expression/ub_duckdb_optimizer_statistics_expr.cpp +0 -11
- package/src/duckdb/src/optimizer/statistics/operator/ub_duckdb_optimizer_statistics_op.cpp +0 -11
- package/src/duckdb/src/optimizer/ub_duckdb_optimizer.cpp +0 -20
- package/src/duckdb/src/parallel/ub_duckdb_parallel.cpp +0 -15
- package/src/duckdb/src/parser/constraints/ub_duckdb_constraints.cpp +0 -5
- package/src/duckdb/src/parser/expression/ub_duckdb_expression.cpp +0 -18
- package/src/duckdb/src/parser/parsed_data/ub_duckdb_parsed_data.cpp +0 -24
- package/src/duckdb/src/parser/query_node/ub_duckdb_query_node.cpp +0 -5
- package/src/duckdb/src/parser/statement/ub_duckdb_statement.cpp +0 -25
- package/src/duckdb/src/parser/tableref/ub_duckdb_parser_tableref.cpp +0 -8
- package/src/duckdb/src/parser/transform/constraint/ub_duckdb_transformer_constraint.cpp +0 -2
- package/src/duckdb/src/parser/transform/expression/ub_duckdb_transformer_expression.cpp +0 -20
- package/src/duckdb/src/parser/transform/helpers/ub_duckdb_transformer_helpers.cpp +0 -8
- package/src/duckdb/src/parser/transform/statement/ub_duckdb_transformer_statement.cpp +0 -37
- package/src/duckdb/src/parser/transform/tableref/ub_duckdb_transformer_tableref.cpp +0 -8
- package/src/duckdb/src/parser/ub_duckdb_parser.cpp +0 -15
- package/src/duckdb/src/planner/binder/expression/ub_duckdb_bind_expression.cpp +0 -20
- package/src/duckdb/src/planner/binder/query_node/ub_duckdb_bind_query_node.cpp +0 -12
- package/src/duckdb/src/planner/binder/statement/ub_duckdb_bind_statement.cpp +0 -26
- package/src/duckdb/src/planner/binder/tableref/ub_duckdb_bind_tableref.cpp +0 -17
- package/src/duckdb/src/planner/expression/ub_duckdb_planner_expression.cpp +0 -19
- package/src/duckdb/src/planner/expression_binder/ub_duckdb_expression_binders.cpp +0 -20
- package/src/duckdb/src/planner/filter/ub_duckdb_planner_filter.cpp +0 -4
- package/src/duckdb/src/planner/operator/ub_duckdb_planner_operator.cpp +0 -43
- package/src/duckdb/src/planner/parsed_data/ub_duckdb_planner_parsed_data.cpp +0 -2
- package/src/duckdb/src/planner/subquery/ub_duckdb_planner_subquery.cpp +0 -4
- package/src/duckdb/src/planner/ub_duckdb_planner.cpp +0 -15
- package/src/duckdb/src/storage/buffer/ub_duckdb_storage_buffer.cpp +0 -6
- package/src/duckdb/src/storage/checkpoint/ub_duckdb_storage_checkpoint.cpp +0 -5
- package/src/duckdb/src/storage/compression/chimp/ub_duckdb_storage_compression_chimp.cpp +0 -6
- package/src/duckdb/src/storage/compression/ub_duckdb_storage_compression.cpp +0 -12
- package/src/duckdb/src/storage/metadata/ub_duckdb_storage_metadata.cpp +0 -4
- package/src/duckdb/src/storage/serialization/ub_duckdb_storage_serialization.cpp +0 -16
- package/src/duckdb/src/storage/statistics/ub_duckdb_storage_statistics.cpp +0 -10
- package/src/duckdb/src/storage/table/ub_duckdb_storage_table.cpp +0 -17
- package/src/duckdb/src/storage/ub_duckdb_storage.cpp +0 -20
- package/src/duckdb/src/transaction/ub_duckdb_transaction.cpp +0 -11
@@ -8,12 +8,18 @@
|
|
8
8
|
|
9
9
|
#pragma once
|
10
10
|
|
11
|
-
#include <string>
|
12
11
|
#include "duckdb.hpp"
|
13
12
|
#include "duckdb/main/extension_entries.hpp"
|
13
|
+
#include "duckdb/main/extension_install_info.hpp"
|
14
|
+
|
15
|
+
#include <string>
|
16
|
+
|
17
|
+
#include <string>
|
14
18
|
|
15
19
|
namespace duckdb {
|
20
|
+
|
16
21
|
class DuckDB;
|
22
|
+
class HTTPLogger;
|
17
23
|
|
18
24
|
enum class ExtensionLoadResult : uint8_t { LOADED_EXTENSION = 0, EXTENSION_UNKNOWN = 1, NOT_LOADED = 2 };
|
19
25
|
|
@@ -31,11 +37,47 @@ struct ExtensionAlias {
|
|
31
37
|
struct ExtensionInitResult {
|
32
38
|
string filename;
|
33
39
|
string filebase;
|
34
|
-
|
40
|
+
|
41
|
+
// The deserialized install from the `<ext>.duckdb_extension.info` file
|
42
|
+
unique_ptr<ExtensionInstallInfo> install_info;
|
35
43
|
|
36
44
|
void *lib_hdl;
|
37
45
|
};
|
38
46
|
|
47
|
+
// Tags describe what happened during the updating process
|
48
|
+
enum class ExtensionUpdateResultTag : uint8_t {
|
49
|
+
// Fallback for when installation information is missing
|
50
|
+
UNKNOWN = 0,
|
51
|
+
|
52
|
+
// Either a fresh file was downloaded and versions are identical
|
53
|
+
NO_UPDATE_AVAILABLE = 1,
|
54
|
+
// Only extensions from repositories can be updated
|
55
|
+
NOT_A_REPOSITORY = 2,
|
56
|
+
// Only known, currently installed extensions can be updated
|
57
|
+
NOT_INSTALLED = 3,
|
58
|
+
// Statically loaded extensions can not be updated; they are baked into the DuckDB executable
|
59
|
+
STATICALLY_LOADED = 4,
|
60
|
+
// This means the .info file written during installation was missing or malformed
|
61
|
+
MISSING_INSTALL_INFO = 5,
|
62
|
+
|
63
|
+
// The extension was re-downloaded from the repository, but due to a lack of version information
|
64
|
+
// its impossible to tell if the extension is actually updated
|
65
|
+
REDOWNLOADED = 254,
|
66
|
+
// The version was updated to a new version
|
67
|
+
UPDATED = 255,
|
68
|
+
};
|
69
|
+
|
70
|
+
struct ExtensionUpdateResult {
|
71
|
+
ExtensionUpdateResultTag tag = ExtensionUpdateResultTag::UNKNOWN;
|
72
|
+
|
73
|
+
string extension_name;
|
74
|
+
string repository;
|
75
|
+
|
76
|
+
string extension_version;
|
77
|
+
string prev_version;
|
78
|
+
string installed_version;
|
79
|
+
};
|
80
|
+
|
39
81
|
class ExtensionHelper {
|
40
82
|
public:
|
41
83
|
static void LoadAllExtensions(DuckDB &db);
|
@@ -43,10 +85,14 @@ public:
|
|
43
85
|
static ExtensionLoadResult LoadExtension(DuckDB &db, const std::string &extension);
|
44
86
|
|
45
87
|
//! Install an extension
|
46
|
-
static
|
47
|
-
|
48
|
-
|
49
|
-
|
88
|
+
static unique_ptr<ExtensionInstallInfo> InstallExtension(ClientContext &context, const string &extension,
|
89
|
+
bool force_install,
|
90
|
+
optional_ptr<ExtensionRepository> repository = nullptr,
|
91
|
+
const string &version = "");
|
92
|
+
static unique_ptr<ExtensionInstallInfo> InstallExtension(DBConfig &config, FileSystem &fs, const string &extension,
|
93
|
+
bool force_install,
|
94
|
+
optional_ptr<ExtensionRepository> repository = nullptr,
|
95
|
+
const string &version = "");
|
50
96
|
//! Load an extension
|
51
97
|
static void LoadExternalExtension(ClientContext &context, const string &extension);
|
52
98
|
static void LoadExternalExtension(DatabaseInstance &db, FileSystem &fs, const string &extension);
|
@@ -58,12 +104,25 @@ public:
|
|
58
104
|
//! Autoload an extension (depending on config, potentially a nop. Returns false on failure)
|
59
105
|
DUCKDB_API static bool TryAutoLoadExtension(ClientContext &context, const string &extension_name) noexcept;
|
60
106
|
|
107
|
+
//! Update all extensions, return a vector of extension names that were updated;
|
108
|
+
static vector<ExtensionUpdateResult> UpdateExtensions(ClientContext &context);
|
109
|
+
static vector<ExtensionUpdateResult> UpdateExtensions(DatabaseInstance &db, FileSystem &fs);
|
110
|
+
//! Update a specific extension
|
111
|
+
static ExtensionUpdateResult UpdateExtension(ClientContext &context, const string &extension_name);
|
112
|
+
static ExtensionUpdateResult UpdateExtension(DatabaseInstance &db, FileSystem &fs, const string &extension_name);
|
113
|
+
|
61
114
|
//! Get the extension directory base on the current config
|
62
115
|
static string ExtensionDirectory(ClientContext &context);
|
63
116
|
static string ExtensionDirectory(DBConfig &config, FileSystem &fs);
|
64
117
|
|
118
|
+
static bool CheckExtensionSignature(FileHandle &handle, ParsedExtensionMetaData &parsed_metadata,
|
119
|
+
const bool allow_community_extensions);
|
120
|
+
static ParsedExtensionMetaData ParseExtensionMetaData(const char *metadata);
|
121
|
+
static ParsedExtensionMetaData ParseExtensionMetaData(FileHandle &handle);
|
122
|
+
|
65
123
|
//! Get the extension url template, containing placeholders for version, platform and extension name
|
66
|
-
static string ExtensionUrlTemplate(optional_ptr<const DBConfig> config, const
|
124
|
+
static string ExtensionUrlTemplate(optional_ptr<const DBConfig> config, const ExtensionRepository &repository,
|
125
|
+
const string &version);
|
67
126
|
//! Return the extension url template with the variables replaced
|
68
127
|
static string ExtensionFinalizeUrlTemplate(const string &url, const string &name);
|
69
128
|
|
@@ -77,11 +136,14 @@ public:
|
|
77
136
|
static ExtensionAlias GetExtensionAlias(idx_t index);
|
78
137
|
|
79
138
|
//! Get public signing keys for extension signing
|
80
|
-
static const vector<string> GetPublicKeys();
|
139
|
+
static const vector<string> GetPublicKeys(bool allow_community_extension = false);
|
81
140
|
|
82
141
|
// Returns extension name, or empty string if not a replacement open path
|
83
142
|
static string ExtractExtensionPrefixFromPath(const string &path);
|
84
143
|
|
144
|
+
// Returns the user-readable name of a repository URL
|
145
|
+
static string GetRepositoryName(const string &repository_base_url);
|
146
|
+
|
85
147
|
//! Apply any known extension aliases, return the lowercase name
|
86
148
|
static string ApplyExtensionAlias(const string &extension_name);
|
87
149
|
|
@@ -147,9 +209,16 @@ public:
|
|
147
209
|
//! For tagged releases we use the tag, else we use the git commit hash
|
148
210
|
static const string GetVersionDirectoryName();
|
149
211
|
|
212
|
+
static bool IsRelease(const string &version_tag);
|
213
|
+
static bool CreateSuggestions(const string &extension_name, string &message);
|
214
|
+
|
150
215
|
private:
|
151
|
-
static
|
152
|
-
|
216
|
+
static unique_ptr<ExtensionInstallInfo> InstallExtensionInternal(DBConfig &config, FileSystem &fs,
|
217
|
+
const string &local_path, const string &extension,
|
218
|
+
bool force_install, const string &version,
|
219
|
+
optional_ptr<ExtensionRepository> repository,
|
220
|
+
optional_ptr<HTTPLogger> http_logger = nullptr,
|
221
|
+
optional_ptr<ClientContext> context = nullptr);
|
153
222
|
static const vector<string> PathComponents();
|
154
223
|
static string DefaultExtensionFolder(FileSystem &fs);
|
155
224
|
static bool AllowAutoInstall(const string &extension);
|
@@ -158,8 +227,6 @@ private:
|
|
158
227
|
string &error);
|
159
228
|
//! Version tags occur with and without 'v', tag in extension path is always with 'v'
|
160
229
|
static const string NormalizeVersionTag(const string &version_tag);
|
161
|
-
static bool IsRelease(const string &version_tag);
|
162
|
-
static bool CreateSuggestions(const string &extension_name, string &message);
|
163
230
|
|
164
231
|
private:
|
165
232
|
static ExtensionLoadResult LoadExtensionInternal(DuckDB &db, const std::string &extension, bool initial_load);
|
@@ -0,0 +1,89 @@
|
|
1
|
+
//===----------------------------------------------------------------------===//
|
2
|
+
// DuckDB
|
3
|
+
//
|
4
|
+
// duckdb/main/extension_install_info.hpp
|
5
|
+
//
|
6
|
+
//
|
7
|
+
//===----------------------------------------------------------------------===//
|
8
|
+
|
9
|
+
#include "duckdb/common/types.hpp"
|
10
|
+
#include "duckdb/main/config.hpp"
|
11
|
+
|
12
|
+
#pragma once
|
13
|
+
|
14
|
+
namespace duckdb {
|
15
|
+
class FileSystem;
|
16
|
+
|
17
|
+
enum class ExtensionInstallMode : uint8_t {
|
18
|
+
// Fallback for when install info is missing
|
19
|
+
UNKNOWN = 0,
|
20
|
+
//! Extension was installed using a url deduced from a repository base url
|
21
|
+
REPOSITORY = 1,
|
22
|
+
//! Extension was install from a custom path, this could be either local or remote
|
23
|
+
CUSTOM_PATH = 2,
|
24
|
+
//! Extension was statically linked
|
25
|
+
STATICALLY_LINKED = 3,
|
26
|
+
//! Extension is not installed, for example the extension might be directly loaded without installing
|
27
|
+
NOT_INSTALLED = 4
|
28
|
+
};
|
29
|
+
|
30
|
+
class ExtensionInstallInfo {
|
31
|
+
public:
|
32
|
+
//! How the extension was installed
|
33
|
+
ExtensionInstallMode mode = ExtensionInstallMode::UNKNOWN;
|
34
|
+
//! (optional) Full path where the extension came from
|
35
|
+
string full_path;
|
36
|
+
//! (optional) Repository url where the extension came from
|
37
|
+
string repository_url;
|
38
|
+
//! (optional) Version of the extension
|
39
|
+
string version;
|
40
|
+
|
41
|
+
void Serialize(Serializer &serializer) const;
|
42
|
+
|
43
|
+
//! Try to read install info. returns ExtensionInstallMode::UNKNOWN on missing file, and throws on corrupt file
|
44
|
+
static unique_ptr<ExtensionInstallInfo> TryReadInfoFile(FileSystem &fs, const string &info_file_path,
|
45
|
+
const string &extension_name);
|
46
|
+
|
47
|
+
static unique_ptr<ExtensionInstallInfo> Deserialize(Deserializer &deserializer);
|
48
|
+
};
|
49
|
+
|
50
|
+
struct ExtensionRepository {
|
51
|
+
//! All currently available repositories
|
52
|
+
static constexpr const char *CORE_REPOSITORY_URL = "http://extensions.duckdb.org";
|
53
|
+
static constexpr const char *CORE_NIGHTLY_REPOSITORY_URL = "http://nightly-extensions.duckdb.org";
|
54
|
+
static constexpr const char *COMMUNITY_REPOSITORY_URL = "http://community-extensions.duckdb.org";
|
55
|
+
|
56
|
+
//! Debugging repositories (target local, relative paths that are produced by DuckDB's build system)
|
57
|
+
static constexpr const char *BUILD_DEBUG_REPOSITORY_PATH = "./build/debug/repository";
|
58
|
+
static constexpr const char *BUILD_RELEASE_REPOSITORY_PATH = "./build/release/repository";
|
59
|
+
|
60
|
+
//! The default is CORE
|
61
|
+
static constexpr const char *DEFAULT_REPOSITORY_URL = CORE_REPOSITORY_URL;
|
62
|
+
|
63
|
+
//! Returns the repository name is this is a known repository, or the full url if it is not
|
64
|
+
static string GetRepository(const string &repository_url);
|
65
|
+
//! Try to convert a repository to a url, will return empty string if the repository is unknown
|
66
|
+
static string TryGetRepositoryUrl(const string &repository);
|
67
|
+
//! Try to convert a url to a known repository name, will return empty string if the repository is unknown
|
68
|
+
static string TryConvertUrlToKnownRepository(const string &url);
|
69
|
+
|
70
|
+
//! Get the default repository, optionally passing a config to allow
|
71
|
+
static ExtensionRepository GetDefaultRepository(optional_ptr<DBConfig> config);
|
72
|
+
static ExtensionRepository GetDefaultRepository(ClientContext &context);
|
73
|
+
|
74
|
+
static ExtensionRepository GetCoreRepository();
|
75
|
+
static ExtensionRepository GetRepositoryByUrl(const string &url);
|
76
|
+
|
77
|
+
ExtensionRepository();
|
78
|
+
ExtensionRepository(const string &name, const string &url);
|
79
|
+
|
80
|
+
//! Print the name if it has one, or the full path if not
|
81
|
+
string ToReadableString();
|
82
|
+
|
83
|
+
//! Repository name
|
84
|
+
string name;
|
85
|
+
//! Repository path/url
|
86
|
+
string path;
|
87
|
+
};
|
88
|
+
|
89
|
+
} // namespace duckdb
|
@@ -12,6 +12,7 @@
|
|
12
12
|
#include "duckdb/function/cast/cast_function_set.hpp"
|
13
13
|
#include "duckdb/function/function_set.hpp"
|
14
14
|
#include "duckdb/main/secret/secret.hpp"
|
15
|
+
#include "duckdb/parser/parsed_data/create_type_info.hpp"
|
15
16
|
|
16
17
|
namespace duckdb {
|
17
18
|
struct CreateMacroInfo;
|
@@ -59,7 +60,8 @@ public:
|
|
59
60
|
DUCKDB_API static void AddFunctionOverload(DatabaseInstance &db, TableFunctionSet function);
|
60
61
|
|
61
62
|
//! Registers a new type
|
62
|
-
DUCKDB_API static void RegisterType(DatabaseInstance &db, string type_name, LogicalType type
|
63
|
+
DUCKDB_API static void RegisterType(DatabaseInstance &db, string type_name, LogicalType type,
|
64
|
+
bind_type_modifiers_function_t bind_type_modifiers = nullptr);
|
63
65
|
|
64
66
|
//! Registers a new secret type
|
65
67
|
DUCKDB_API static void RegisterSecretType(DatabaseInstance &db, SecretType secret_type);
|
@@ -6,17 +6,59 @@
|
|
6
6
|
//
|
7
7
|
//===----------------------------------------------------------------------===//
|
8
8
|
|
9
|
+
#include "duckdb/common/case_insensitive_map.hpp"
|
10
|
+
#include <functional>
|
11
|
+
|
9
12
|
#pragma once
|
10
13
|
|
11
14
|
namespace duckdb {
|
12
15
|
|
13
|
-
|
16
|
+
class DependencyItem {
|
17
|
+
public:
|
18
|
+
virtual ~DependencyItem() {};
|
19
|
+
|
20
|
+
public:
|
21
|
+
template <class TARGET>
|
22
|
+
TARGET &Cast() {
|
23
|
+
DynamicCastCheck<TARGET>(this);
|
24
|
+
return reinterpret_cast<TARGET &>(*this);
|
25
|
+
}
|
26
|
+
template <class TARGET>
|
27
|
+
const TARGET &Cast() const {
|
28
|
+
DynamicCastCheck<TARGET>(this);
|
29
|
+
return reinterpret_cast<const TARGET &>(*this);
|
30
|
+
}
|
31
|
+
};
|
32
|
+
|
33
|
+
using dependency_scan_t = std::function<void(const string &name, shared_ptr<DependencyItem> item)>;
|
14
34
|
|
15
35
|
class ExternalDependency {
|
16
36
|
public:
|
17
|
-
explicit ExternalDependency(
|
18
|
-
|
19
|
-
|
37
|
+
explicit ExternalDependency() {
|
38
|
+
}
|
39
|
+
~ExternalDependency() {
|
40
|
+
}
|
41
|
+
|
42
|
+
public:
|
43
|
+
void AddDependency(const string &name, shared_ptr<DependencyItem> item) {
|
44
|
+
objects[name] = std::move(item);
|
45
|
+
}
|
46
|
+
shared_ptr<DependencyItem> GetDependency(const string &name) const {
|
47
|
+
auto it = objects.find(name);
|
48
|
+
if (it == objects.end()) {
|
49
|
+
return nullptr;
|
50
|
+
}
|
51
|
+
return it->second;
|
52
|
+
}
|
53
|
+
void ScanDependencies(const dependency_scan_t &callback) {
|
54
|
+
for (auto &kv : objects) {
|
55
|
+
callback(kv.first, kv.second);
|
56
|
+
}
|
57
|
+
}
|
58
|
+
|
59
|
+
private:
|
60
|
+
//! The objects encompassed by this dependency
|
61
|
+
case_insensitive_map_t<shared_ptr<DependencyItem>> objects;
|
20
62
|
};
|
21
63
|
|
22
64
|
} // namespace duckdb
|
@@ -53,6 +53,9 @@ public:
|
|
53
53
|
//! Returns a reference to the underlying column data collection
|
54
54
|
ColumnDataCollection &Collection();
|
55
55
|
|
56
|
+
//! Takes ownership of the collection, 'collection' is null after this operation
|
57
|
+
unique_ptr<ColumnDataCollection> TakeCollection();
|
58
|
+
|
56
59
|
private:
|
57
60
|
unique_ptr<ColumnDataCollection> collection;
|
58
61
|
//! Row collection, only created if GetValue is called
|
@@ -0,0 +1,35 @@
|
|
1
|
+
//===----------------------------------------------------------------------===//
|
2
|
+
// DuckDB
|
3
|
+
//
|
4
|
+
// duckdb/main/relation/materialized_relation.hpp
|
5
|
+
//
|
6
|
+
//
|
7
|
+
//===----------------------------------------------------------------------===//
|
8
|
+
|
9
|
+
#pragma once
|
10
|
+
|
11
|
+
#include "duckdb/main/relation.hpp"
|
12
|
+
#include "duckdb/parser/parsed_expression.hpp"
|
13
|
+
|
14
|
+
namespace duckdb {
|
15
|
+
|
16
|
+
class MaterializedRelation : public Relation {
|
17
|
+
public:
|
18
|
+
MaterializedRelation(const shared_ptr<ClientContext> &context, unique_ptr<ColumnDataCollection> &&collection,
|
19
|
+
vector<string> names, string alias = "materialized");
|
20
|
+
MaterializedRelation(const shared_ptr<ClientContext> &context, const string &values, vector<string> names,
|
21
|
+
string alias = "materialized");
|
22
|
+
|
23
|
+
unique_ptr<ColumnDataCollection> collection;
|
24
|
+
vector<ColumnDefinition> columns;
|
25
|
+
string alias;
|
26
|
+
|
27
|
+
public:
|
28
|
+
const vector<ColumnDefinition> &Columns() override;
|
29
|
+
string ToString(idx_t depth) override;
|
30
|
+
string GetAlias() override;
|
31
|
+
unique_ptr<TableRef> GetTableRef() override;
|
32
|
+
unique_ptr<QueryNode> GetQueryNode() override;
|
33
|
+
};
|
34
|
+
|
35
|
+
} // namespace duckdb
|
@@ -16,7 +16,7 @@ class SelectStatement;
|
|
16
16
|
|
17
17
|
class QueryRelation : public Relation {
|
18
18
|
public:
|
19
|
-
QueryRelation(const
|
19
|
+
QueryRelation(const shared_ptr<ClientContext> &context, unique_ptr<SelectStatement> select_stmt, string alias);
|
20
20
|
~QueryRelation() override;
|
21
21
|
|
22
22
|
unique_ptr<SelectStatement> select_stmt;
|
@@ -14,11 +14,11 @@ namespace duckdb {
|
|
14
14
|
|
15
15
|
class TableFunctionRelation : public Relation {
|
16
16
|
public:
|
17
|
-
TableFunctionRelation(const
|
17
|
+
TableFunctionRelation(const shared_ptr<ClientContext> &context, string name, vector<Value> parameters,
|
18
18
|
named_parameter_map_t named_parameters, shared_ptr<Relation> input_relation_p = nullptr,
|
19
19
|
bool auto_init = true);
|
20
20
|
|
21
|
-
TableFunctionRelation(const
|
21
|
+
TableFunctionRelation(const shared_ptr<ClientContext> &context, string name, vector<Value> parameters,
|
22
22
|
shared_ptr<Relation> input_relation_p = nullptr, bool auto_init = true);
|
23
23
|
~TableFunctionRelation() override {
|
24
24
|
}
|
@@ -15,7 +15,7 @@ namespace duckdb {
|
|
15
15
|
|
16
16
|
class TableRelation : public Relation {
|
17
17
|
public:
|
18
|
-
TableRelation(const
|
18
|
+
TableRelation(const shared_ptr<ClientContext> &context, unique_ptr<TableDescription> description);
|
19
19
|
|
20
20
|
unique_ptr<TableDescription> description;
|
21
21
|
|
@@ -15,9 +15,9 @@ namespace duckdb {
|
|
15
15
|
|
16
16
|
class ValueRelation : public Relation {
|
17
17
|
public:
|
18
|
-
ValueRelation(const
|
19
|
-
|
20
|
-
ValueRelation(const
|
18
|
+
ValueRelation(const shared_ptr<ClientContext> &context, const vector<vector<Value>> &values, vector<string> names,
|
19
|
+
string alias = "values");
|
20
|
+
ValueRelation(const shared_ptr<ClientContext> &context, const string &values, vector<string> names,
|
21
21
|
string alias = "values");
|
22
22
|
|
23
23
|
vector<vector<unique_ptr<ParsedExpression>>> expressions;
|
@@ -14,7 +14,7 @@ namespace duckdb {
|
|
14
14
|
|
15
15
|
class ViewRelation : public Relation {
|
16
16
|
public:
|
17
|
-
ViewRelation(const
|
17
|
+
ViewRelation(const shared_ptr<ClientContext> &context, string schema_name, string view_name);
|
18
18
|
|
19
19
|
string schema_name;
|
20
20
|
string view_name;
|
@@ -17,6 +17,7 @@
|
|
17
17
|
#include "duckdb/parser/column_definition.hpp"
|
18
18
|
#include "duckdb/common/named_parameter_map.hpp"
|
19
19
|
#include "duckdb/main/client_context.hpp"
|
20
|
+
#include "duckdb/main/client_context_wrapper.hpp"
|
20
21
|
#include "duckdb/main/external_dependencies.hpp"
|
21
22
|
#include "duckdb/parser/statement/explain_statement.hpp"
|
22
23
|
#include "duckdb/parser/parsed_expression.hpp"
|
@@ -28,15 +29,14 @@
|
|
28
29
|
namespace duckdb {
|
29
30
|
struct BoundStatement;
|
30
31
|
|
31
|
-
class ClientContextWrapper;
|
32
32
|
class Binder;
|
33
33
|
class LogicalOperator;
|
34
34
|
class QueryNode;
|
35
35
|
class TableRef;
|
36
36
|
|
37
|
-
class Relation : public
|
37
|
+
class Relation : public enable_shared_from_this<Relation> {
|
38
38
|
public:
|
39
|
-
Relation(const
|
39
|
+
Relation(const shared_ptr<ClientContext> &context, RelationType type) : context(context), type(type) {
|
40
40
|
}
|
41
41
|
Relation(ClientContextWrapper &context, RelationType type) : context(context.GetContext()), type(type) {
|
42
42
|
}
|
@@ -44,10 +44,8 @@ public:
|
|
44
44
|
}
|
45
45
|
|
46
46
|
ClientContextWrapper context;
|
47
|
-
|
48
47
|
RelationType type;
|
49
|
-
|
50
|
-
shared_ptr<ExternalDependency> extra_dependencies;
|
48
|
+
vector<shared_ptr<ExternalDependency>> external_dependencies;
|
51
49
|
|
52
50
|
public:
|
53
51
|
DUCKDB_API virtual const vector<ColumnDefinition> &Columns() = 0;
|
@@ -172,6 +170,7 @@ public:
|
|
172
170
|
virtual Relation *ChildRelation() {
|
173
171
|
return nullptr;
|
174
172
|
}
|
173
|
+
void AddExternalDependency(shared_ptr<ExternalDependency> dependency);
|
175
174
|
DUCKDB_API vector<shared_ptr<ExternalDependency>> GetAllDependencies();
|
176
175
|
|
177
176
|
protected:
|
@@ -225,6 +225,15 @@ struct AllowUnsignedExtensionsSetting {
|
|
225
225
|
static Value GetSetting(const ClientContext &context);
|
226
226
|
};
|
227
227
|
|
228
|
+
struct AllowCommunityExtensionsSetting {
|
229
|
+
static constexpr const char *Name = "allow_community_extensions";
|
230
|
+
static constexpr const char *Description = "Allow to load community built extensions";
|
231
|
+
static constexpr const LogicalTypeId InputType = LogicalTypeId::BOOLEAN;
|
232
|
+
static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter);
|
233
|
+
static void ResetGlobal(DatabaseInstance *db, DBConfig &config);
|
234
|
+
static Value GetSetting(const ClientContext &context);
|
235
|
+
};
|
236
|
+
|
228
237
|
struct AllowExtensionsMetadataMismatchSetting {
|
229
238
|
static constexpr const char *Name = "allow_extensions_metadata_mismatch";
|
230
239
|
static constexpr const char *Description = "Allow to load extensions with not compatible metadata";
|
@@ -291,6 +300,15 @@ struct EnableObjectCacheSetting {
|
|
291
300
|
static Value GetSetting(const ClientContext &context);
|
292
301
|
};
|
293
302
|
|
303
|
+
struct StorageCompatibilityVersion {
|
304
|
+
static constexpr const char *Name = "storage_compatibility_version";
|
305
|
+
static constexpr const char *Description = "Serialize on checkpoint with compatibility for a given duckdb version";
|
306
|
+
static constexpr const LogicalTypeId InputType = LogicalTypeId::VARCHAR;
|
307
|
+
static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter);
|
308
|
+
static void ResetGlobal(DatabaseInstance *db, DBConfig &config);
|
309
|
+
static Value GetSetting(const ClientContext &context);
|
310
|
+
};
|
311
|
+
|
294
312
|
struct EnableHTTPMetadataCacheSetting {
|
295
313
|
static constexpr const char *Name = "enable_http_metadata_cache";
|
296
314
|
static constexpr const char *Description = "Whether or not the global http metadata is used to cache HTTP metadata";
|
@@ -471,6 +489,16 @@ struct MaximumMemorySetting {
|
|
471
489
|
static Value GetSetting(const ClientContext &context);
|
472
490
|
};
|
473
491
|
|
492
|
+
struct MaximumTempDirectorySize {
|
493
|
+
static constexpr const char *Name = "max_temp_directory_size";
|
494
|
+
static constexpr const char *Description =
|
495
|
+
"The maximum amount of data stored inside the 'temp_directory' (when set) (e.g. 1GB)";
|
496
|
+
static constexpr const LogicalTypeId InputType = LogicalTypeId::VARCHAR;
|
497
|
+
static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter);
|
498
|
+
static void ResetGlobal(DatabaseInstance *db, DBConfig &config);
|
499
|
+
static Value GetSetting(const ClientContext &context);
|
500
|
+
};
|
501
|
+
|
474
502
|
struct OldImplicitCasting {
|
475
503
|
static constexpr const char *Name = "old_implicit_casting";
|
476
504
|
static constexpr const char *Description = "Allow implicit casting to/from VARCHAR";
|
@@ -661,4 +689,23 @@ struct CustomUserAgentSetting {
|
|
661
689
|
static Value GetSetting(const ClientContext &context);
|
662
690
|
};
|
663
691
|
|
692
|
+
struct EnableHTTPLoggingSetting {
|
693
|
+
static constexpr const char *Name = "enable_http_logging";
|
694
|
+
static constexpr const char *Description = "Enables HTTP logging";
|
695
|
+
static constexpr const LogicalTypeId InputType = LogicalTypeId::BOOLEAN;
|
696
|
+
static void SetLocal(ClientContext &context, const Value ¶meter);
|
697
|
+
static void ResetLocal(ClientContext &context);
|
698
|
+
static Value GetSetting(const ClientContext &context);
|
699
|
+
};
|
700
|
+
|
701
|
+
struct HTTPLoggingOutputSetting {
|
702
|
+
static constexpr const char *Name = "http_logging_output";
|
703
|
+
static constexpr const char *Description =
|
704
|
+
"The file to which HTTP logging output should be saved, or empty to print to the terminal";
|
705
|
+
static constexpr const LogicalTypeId InputType = LogicalTypeId::VARCHAR;
|
706
|
+
static void SetLocal(ClientContext &context, const Value ¶meter);
|
707
|
+
static void ResetLocal(ClientContext &context);
|
708
|
+
static Value GetSetting(const ClientContext &context);
|
709
|
+
};
|
710
|
+
|
664
711
|
} // namespace duckdb
|
@@ -18,7 +18,7 @@ class Optimizer;
|
|
18
18
|
|
19
19
|
class FilterPushdown {
|
20
20
|
public:
|
21
|
-
explicit FilterPushdown(Optimizer &optimizer);
|
21
|
+
explicit FilterPushdown(Optimizer &optimizer, bool convert_mark_joins = true);
|
22
22
|
|
23
23
|
//! Perform filter pushdown
|
24
24
|
unique_ptr<LogicalOperator> Rewrite(unique_ptr<LogicalOperator> op);
|
@@ -38,9 +38,11 @@ public:
|
|
38
38
|
};
|
39
39
|
|
40
40
|
private:
|
41
|
-
vector<unique_ptr<Filter>> filters;
|
42
41
|
Optimizer &optimizer;
|
42
|
+
FilterCombiner combiner;
|
43
|
+
bool convert_mark_joins;
|
43
44
|
|
45
|
+
vector<unique_ptr<Filter>> filters;
|
44
46
|
//! Push down a LogicalAggregate op
|
45
47
|
unique_ptr<LogicalOperator> PushdownAggregate(unique_ptr<LogicalOperator> op);
|
46
48
|
//! Push down a distinct operator
|
@@ -90,8 +92,6 @@ private:
|
|
90
92
|
void GenerateFilters();
|
91
93
|
//! if there are filters in this FilterPushdown node, push them into the combiner
|
92
94
|
void PushFilters();
|
93
|
-
|
94
|
-
FilterCombiner combiner;
|
95
95
|
};
|
96
96
|
|
97
97
|
} // namespace duckdb
|
@@ -26,7 +26,7 @@ public:
|
|
26
26
|
void InitCostModel();
|
27
27
|
|
28
28
|
//! Compute cost of a join relation set
|
29
|
-
double ComputeCost(
|
29
|
+
double ComputeCost(DPJoinNode &left, DPJoinNode &right);
|
30
30
|
|
31
31
|
//! Cardinality Estimator used to calculate cost
|
32
32
|
CardinalityEstimator cardinality_estimator;
|
@@ -14,40 +14,33 @@ namespace duckdb {
|
|
14
14
|
|
15
15
|
struct NeighborInfo;
|
16
16
|
|
17
|
-
class
|
17
|
+
class DPJoinNode {
|
18
18
|
public:
|
19
19
|
//! Represents a node in the join plan
|
20
20
|
JoinRelationSet &set;
|
21
21
|
//! information on how left and right are connected
|
22
22
|
optional_ptr<NeighborInfo> info;
|
23
|
+
bool is_leaf;
|
23
24
|
//! left and right plans
|
24
|
-
|
25
|
-
|
25
|
+
JoinRelationSet &left_set;
|
26
|
+
JoinRelationSet &right_set;
|
26
27
|
|
27
28
|
//! The cost of the join node. The cost is stored here so that the cost of
|
28
29
|
//! a join node stays in sync with how the join node is constructed. Storing the cost in an unordered_set
|
29
30
|
//! in the cost model is error prone. If the plan enumerator join node is updated and not the cost model
|
30
31
|
//! the whole Join Order Optimizer can start exhibiting undesired behavior.
|
31
32
|
double cost;
|
32
|
-
//! used only to populate logical operators with estimated
|
33
|
+
//! used only to populate logical operators with estimated cardinalities after the best join plan has been found.
|
33
34
|
idx_t cardinality;
|
34
35
|
|
35
36
|
//! Create an intermediate node in the join tree. base_cardinality = estimated_props.cardinality
|
36
|
-
|
37
|
+
DPJoinNode(JoinRelationSet &set, optional_ptr<NeighborInfo> info, JoinRelationSet &left, JoinRelationSet &right,
|
38
|
+
double cost);
|
37
39
|
|
38
40
|
//! Create a leaf node in the join tree
|
39
41
|
//! set cost to 0 for leaf nodes
|
40
42
|
//! cost will be the cost to *produce* an intermediate table
|
41
|
-
explicit
|
42
|
-
|
43
|
-
bool operator==(const JoinNode &other) {
|
44
|
-
return other.set.ToString().compare(set.ToString()) == 0;
|
45
|
-
}
|
46
|
-
|
47
|
-
private:
|
48
|
-
public:
|
49
|
-
void Print();
|
50
|
-
string ToString();
|
43
|
+
explicit DPJoinNode(JoinRelationSet &set);
|
51
44
|
};
|
52
45
|
|
53
46
|
} // namespace duckdb
|