duckdb 0.10.2-dev0.0 → 0.10.2-dev3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/binding.gyp +22 -18
- package/binding.gyp.in +3 -0
- package/package.json +1 -1
- package/src/duckdb/extension/icu/icu-timezone.cpp +3 -1
- package/src/duckdb/extension/icu/icu_extension.cpp +6 -2
- package/src/duckdb/extension/json/buffered_json_reader.cpp +10 -3
- package/src/duckdb/extension/json/include/buffered_json_reader.hpp +2 -0
- package/src/duckdb/extension/json/include/json_scan.hpp +13 -7
- package/src/duckdb/extension/json/include/json_serializer.hpp +5 -4
- package/src/duckdb/extension/json/include/json_structure.hpp +3 -3
- package/src/duckdb/extension/json/json_functions/json_serialize_plan.cpp +15 -5
- package/src/duckdb/extension/json/json_functions/json_serialize_sql.cpp +15 -6
- package/src/duckdb/extension/json/json_functions/json_structure.cpp +21 -20
- package/src/duckdb/extension/json/json_functions/read_json.cpp +37 -3
- package/src/duckdb/extension/json/json_functions.cpp +7 -2
- package/src/duckdb/extension/json/json_scan.cpp +57 -33
- package/src/duckdb/extension/parquet/column_reader.cpp +12 -3
- package/src/duckdb/extension/parquet/column_writer.cpp +44 -7
- package/src/duckdb/extension/parquet/include/parquet_writer.hpp +5 -1
- package/src/duckdb/extension/parquet/parquet_extension.cpp +30 -3
- package/src/duckdb/extension/parquet/parquet_metadata.cpp +1 -1
- package/src/duckdb/extension/parquet/parquet_writer.cpp +4 -2
- package/src/duckdb/extension/parquet/zstd_file_system.cpp +1 -1
- package/src/duckdb/src/catalog/catalog.cpp +5 -1
- package/src/duckdb/src/catalog/catalog_entry/duck_schema_entry.cpp +21 -5
- package/src/duckdb/src/catalog/catalog_entry/duck_table_entry.cpp +8 -9
- package/src/duckdb/src/catalog/catalog_entry/index_catalog_entry.cpp +3 -7
- package/src/duckdb/src/catalog/catalog_entry/sequence_catalog_entry.cpp +1 -1
- package/src/duckdb/src/catalog/catalog_entry/table_catalog_entry.cpp +6 -7
- package/src/duckdb/src/catalog/catalog_entry.cpp +8 -0
- package/src/duckdb/src/catalog/catalog_search_path.cpp +5 -0
- package/src/duckdb/src/catalog/catalog_set.cpp +2 -2
- package/src/duckdb/src/catalog/default/default_functions.cpp +6 -6
- package/src/duckdb/src/catalog/default/default_schemas.cpp +1 -1
- package/src/duckdb/src/catalog/default/default_views.cpp +7 -7
- package/src/duckdb/src/catalog/dependency_catalog_set.cpp +2 -1
- package/src/duckdb/src/catalog/dependency_list.cpp +92 -8
- package/src/duckdb/src/catalog/dependency_manager.cpp +53 -68
- package/src/duckdb/src/catalog/duck_catalog.cpp +1 -1
- package/src/duckdb/src/common/adbc/adbc.cpp +287 -45
- package/src/duckdb/src/common/arrow/appender/union_data.cpp +2 -2
- package/src/duckdb/src/common/box_renderer.cpp +12 -12
- package/src/duckdb/src/common/crypto/md5.cpp +2 -1
- package/src/duckdb/src/common/enum_util.cpp +307 -1
- package/src/duckdb/src/common/enums/expression_type.cpp +4 -0
- package/src/duckdb/src/common/enums/optimizer_type.cpp +1 -1
- package/src/duckdb/src/common/file_system.cpp +60 -13
- package/src/duckdb/src/common/filename_pattern.cpp +13 -13
- package/src/duckdb/src/common/gzip_file_system.cpp +1 -1
- package/src/duckdb/src/common/http_state.cpp +1 -1
- package/src/duckdb/src/common/local_file_system.cpp +72 -71
- package/src/duckdb/src/common/multi_file_reader.cpp +48 -28
- package/src/duckdb/src/common/row_operations/row_matcher.cpp +2 -2
- package/src/duckdb/src/common/serializer/buffered_file_reader.cpp +13 -1
- package/src/duckdb/src/common/serializer/buffered_file_writer.cpp +32 -13
- package/src/duckdb/src/common/string_util.cpp +2 -3
- package/src/duckdb/src/common/tree_renderer.cpp +32 -67
- package/src/duckdb/src/common/types/bit.cpp +6 -6
- package/src/duckdb/src/common/types/data_chunk.cpp +2 -2
- package/src/duckdb/src/common/types/hash.cpp +6 -6
- package/src/duckdb/src/common/types/hyperloglog.cpp +2 -0
- package/src/duckdb/src/common/types/row/tuple_data_allocator.cpp +13 -0
- package/src/duckdb/src/common/types/row/tuple_data_layout.cpp +5 -7
- package/src/duckdb/src/common/types/uuid.cpp +1 -1
- package/src/duckdb/src/common/types/vector.cpp +22 -14
- package/src/duckdb/src/common/types.cpp +8 -1
- package/src/duckdb/src/common/vector_operations/comparison_operators.cpp +20 -18
- package/src/duckdb/src/common/vector_operations/generators.cpp +1 -1
- package/src/duckdb/src/common/vector_operations/is_distinct_from.cpp +267 -110
- package/src/duckdb/src/common/vector_operations/vector_hash.cpp +52 -23
- package/src/duckdb/src/common/virtual_file_system.cpp +33 -20
- package/src/duckdb/src/core_functions/aggregate/algebraic/avg.cpp +2 -2
- package/src/duckdb/src/core_functions/aggregate/distributive/minmax.cpp +3 -3
- package/src/duckdb/src/core_functions/aggregate/distributive/sum.cpp +31 -16
- package/src/duckdb/src/core_functions/aggregate/holistic/quantile.cpp +3 -0
- package/src/duckdb/src/core_functions/aggregate/nested/list.cpp +2 -0
- package/src/duckdb/src/core_functions/core_functions.cpp +1 -1
- package/src/duckdb/src/core_functions/function_list.cpp +2 -2
- package/src/duckdb/src/core_functions/scalar/date/time_bucket.cpp +1 -1
- package/src/duckdb/src/core_functions/scalar/generic/system_functions.cpp +46 -17
- package/src/duckdb/src/core_functions/scalar/list/array_slice.cpp +1 -1
- package/src/duckdb/src/core_functions/scalar/list/flatten.cpp +82 -45
- package/src/duckdb/src/core_functions/scalar/list/list_aggregates.cpp +2 -2
- package/src/duckdb/src/core_functions/scalar/list/list_sort.cpp +3 -0
- package/src/duckdb/src/core_functions/scalar/math/numeric.cpp +3 -2
- package/src/duckdb/src/core_functions/scalar/string/hex.cpp +2 -4
- package/src/duckdb/src/core_functions/scalar/string/repeat.cpp +12 -21
- package/src/duckdb/src/execution/column_binding_resolver.cpp +2 -10
- package/src/duckdb/src/execution/expression_executor/execute_comparison.cpp +133 -66
- package/src/duckdb/src/execution/expression_executor/execute_function.cpp +0 -2
- package/src/duckdb/src/execution/expression_executor.cpp +0 -4
- package/src/duckdb/src/execution/expression_executor_state.cpp +1 -1
- package/src/duckdb/src/execution/index/art/art.cpp +2 -2
- package/src/duckdb/src/execution/index/unknown_index.cpp +13 -13
- package/src/duckdb/src/execution/join_hashtable.cpp +1 -1
- package/src/duckdb/src/execution/nested_loop_join/nested_loop_join_mark.cpp +0 -1
- package/src/duckdb/src/execution/operator/csv_scanner/buffer_manager/csv_buffer.cpp +10 -7
- package/src/duckdb/src/execution/operator/csv_scanner/buffer_manager/csv_buffer_manager.cpp +32 -1
- package/src/duckdb/src/execution/operator/csv_scanner/buffer_manager/csv_file_handle.cpp +16 -2
- package/src/duckdb/src/execution/operator/csv_scanner/scanner/scanner_boundary.cpp +7 -7
- package/src/duckdb/src/execution/operator/csv_scanner/scanner/string_value_scanner.cpp +354 -159
- package/src/duckdb/src/execution/operator/csv_scanner/sniffer/csv_sniffer.cpp +11 -2
- package/src/duckdb/src/execution/operator/csv_scanner/sniffer/dialect_detection.cpp +22 -7
- package/src/duckdb/src/execution/operator/csv_scanner/sniffer/type_detection.cpp +1 -1
- package/src/duckdb/src/execution/operator/csv_scanner/state_machine/csv_state_machine_cache.cpp +10 -10
- package/src/duckdb/src/execution/operator/csv_scanner/table_function/csv_file_scanner.cpp +9 -18
- package/src/duckdb/src/execution/operator/csv_scanner/table_function/global_csv_state.cpp +180 -47
- package/src/duckdb/src/execution/operator/csv_scanner/util/csv_error.cpp +100 -58
- package/src/duckdb/src/execution/operator/csv_scanner/util/csv_reader_options.cpp +88 -21
- package/src/duckdb/src/execution/operator/helper/physical_vacuum.cpp +12 -13
- package/src/duckdb/src/execution/operator/join/physical_iejoin.cpp +2 -0
- package/src/duckdb/src/execution/operator/persistent/csv_rejects_table.cpp +118 -23
- package/src/duckdb/src/execution/operator/persistent/physical_batch_copy_to_file.cpp +2 -2
- package/src/duckdb/src/execution/operator/persistent/physical_batch_insert.cpp +14 -5
- package/src/duckdb/src/execution/operator/persistent/physical_copy_database.cpp +1 -1
- package/src/duckdb/src/execution/operator/persistent/physical_export.cpp +5 -5
- package/src/duckdb/src/execution/operator/schema/physical_attach.cpp +1 -1
- package/src/duckdb/src/execution/physical_plan/plan_simple.cpp +0 -9
- package/src/duckdb/src/execution/physical_plan/plan_vacuum.cpp +18 -0
- package/src/duckdb/src/execution/physical_plan_generator.cpp +5 -3
- package/src/duckdb/src/execution/radix_partitioned_hashtable.cpp +81 -106
- package/src/duckdb/src/execution/reservoir_sample.cpp +1 -1
- package/src/duckdb/src/execution/window_executor.cpp +48 -28
- package/src/duckdb/src/execution/window_segment_tree.cpp +20 -23
- package/src/duckdb/src/function/aggregate/sorted_aggregate_function.cpp +1 -1
- package/src/duckdb/src/function/cast/enum_casts.cpp +20 -55
- package/src/duckdb/src/function/cast/vector_cast_helpers.cpp +10 -9
- package/src/duckdb/src/function/cast_rules.cpp +9 -1
- package/src/duckdb/src/function/compression_config.cpp +1 -1
- package/src/duckdb/src/function/function_binder.cpp +45 -44
- package/src/duckdb/src/function/function_set.cpp +9 -9
- package/src/duckdb/src/function/pragma/pragma_queries.cpp +1 -2
- package/src/duckdb/src/function/scalar/compressed_materialization/compress_integral.cpp +21 -5
- package/src/duckdb/src/function/scalar/compressed_materialization/compress_string.cpp +2 -2
- package/src/duckdb/src/function/scalar/list/list_select.cpp +5 -2
- package/src/duckdb/src/function/scalar/list/list_zip.cpp +5 -4
- package/src/duckdb/src/function/scalar/operators/arithmetic.cpp +60 -32
- package/src/duckdb/src/function/scalar/sequence/nextval.cpp +1 -1
- package/src/duckdb/src/function/scalar/strftime_format.cpp +31 -25
- package/src/duckdb/src/function/scalar/string/caseconvert.cpp +6 -6
- package/src/duckdb/src/function/scalar/string/length.cpp +23 -2
- package/src/duckdb/src/function/scalar/string/like.cpp +1 -1
- package/src/duckdb/src/function/scalar/string/regexp/regexp_extract_all.cpp +1 -1
- package/src/duckdb/src/function/scalar/system/aggregate_export.cpp +3 -3
- package/src/duckdb/src/function/table/arrow/arrow_array_scan_state.cpp +1 -1
- package/src/duckdb/src/function/table/arrow.cpp +7 -1
- package/src/duckdb/src/function/table/copy_csv.cpp +17 -13
- package/src/duckdb/src/function/table/read_csv.cpp +52 -39
- package/src/duckdb/src/function/table/sniff_csv.cpp +7 -13
- package/src/duckdb/src/function/table/system/duckdb_constraints.cpp +1 -1
- package/src/duckdb/src/function/table/system/duckdb_databases.cpp +7 -1
- package/src/duckdb/src/function/table/system/duckdb_extensions.cpp +12 -2
- package/src/duckdb/src/function/table/system/duckdb_sequences.cpp +1 -2
- package/src/duckdb/src/function/table/system/duckdb_tables.cpp +2 -2
- package/src/duckdb/src/function/table/system/pragma_metadata_info.cpp +9 -2
- package/src/duckdb/src/function/table/system/pragma_table_info.cpp +10 -6
- package/src/duckdb/src/function/table/table_scan.cpp +1 -4
- package/src/duckdb/src/function/table/version/pragma_version.cpp +3 -3
- package/src/duckdb/src/include/duckdb/catalog/catalog.hpp +6 -2
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/duck_index_entry.hpp +1 -1
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/duck_schema_entry.hpp +1 -1
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/sequence_catalog_entry.hpp +1 -1
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry.hpp +6 -1
- package/src/duckdb/src/include/duckdb/catalog/catalog_set.hpp +3 -3
- package/src/duckdb/src/include/duckdb/catalog/default/default_functions.hpp +3 -3
- package/src/duckdb/src/include/duckdb/catalog/dependency.hpp +26 -4
- package/src/duckdb/src/include/duckdb/catalog/dependency_list.hpp +39 -6
- package/src/duckdb/src/include/duckdb/catalog/dependency_manager.hpp +19 -14
- package/src/duckdb/src/include/duckdb/catalog/duck_catalog.hpp +1 -1
- package/src/duckdb/src/include/duckdb/catalog/standard_entry.hpp +4 -0
- package/src/duckdb/src/include/duckdb/common/allocator.hpp +3 -3
- package/src/duckdb/src/include/duckdb/common/arrow/arrow_wrapper.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/bit_utils.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/box_renderer.hpp +16 -16
- package/src/duckdb/src/include/duckdb/common/crypto/md5.hpp +0 -1
- package/src/duckdb/src/include/duckdb/common/enum_util.hpp +32 -0
- package/src/duckdb/src/include/duckdb/common/enums/expression_type.hpp +4 -2
- package/src/duckdb/src/include/duckdb/common/exception/binder_exception.hpp +14 -10
- package/src/duckdb/src/include/duckdb/common/exception/catalog_exception.hpp +4 -4
- package/src/duckdb/src/include/duckdb/common/exception/conversion_exception.hpp +6 -6
- package/src/duckdb/src/include/duckdb/common/exception/http_exception.hpp +3 -3
- package/src/duckdb/src/include/duckdb/common/exception/parser_exception.hpp +4 -4
- package/src/duckdb/src/include/duckdb/common/exception/transaction_exception.hpp +2 -2
- package/src/duckdb/src/include/duckdb/common/exception.hpp +57 -58
- package/src/duckdb/src/include/duckdb/common/exception_format_value.hpp +2 -2
- package/src/duckdb/src/include/duckdb/common/extra_type_info.hpp +2 -2
- package/src/duckdb/src/include/duckdb/common/file_open_flags.hpp +134 -0
- package/src/duckdb/src/include/duckdb/common/file_opener.hpp +9 -6
- package/src/duckdb/src/include/duckdb/common/file_system.hpp +35 -36
- package/src/duckdb/src/include/duckdb/common/filename_pattern.hpp +4 -6
- package/src/duckdb/src/include/duckdb/common/fixed_size_map.hpp +13 -13
- package/src/duckdb/src/include/duckdb/common/helper.hpp +42 -47
- package/src/duckdb/src/include/duckdb/common/http_state.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/hugeint.hpp +2 -2
- package/src/duckdb/src/include/duckdb/common/index_vector.hpp +10 -10
- package/src/duckdb/src/include/duckdb/common/local_file_system.hpp +13 -10
- package/src/duckdb/src/include/duckdb/common/memory_safety.hpp +3 -3
- package/src/duckdb/src/include/duckdb/common/multi_file_reader_options.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/opener_file_system.hpp +50 -24
- package/src/duckdb/src/include/duckdb/common/operator/abs.hpp +12 -4
- package/src/duckdb/src/include/duckdb/common/optional_ptr.hpp +5 -5
- package/src/duckdb/src/include/duckdb/common/pipe_file_system.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/platform.h +1 -1
- package/src/duckdb/src/include/duckdb/common/printer.hpp +5 -5
- package/src/duckdb/src/include/duckdb/common/profiler.hpp +2 -2
- package/src/duckdb/src/include/duckdb/common/progress_bar/display/terminal_progress_bar_display.hpp +5 -5
- package/src/duckdb/src/include/duckdb/common/random_engine.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/re2_regex.hpp +7 -7
- package/src/duckdb/src/include/duckdb/common/serializer/buffered_file_reader.hpp +3 -0
- package/src/duckdb/src/include/duckdb/common/serializer/buffered_file_writer.hpp +2 -2
- package/src/duckdb/src/include/duckdb/common/serializer/deserialization_data.hpp +17 -6
- package/src/duckdb/src/include/duckdb/common/serializer/deserializer.hpp +12 -0
- package/src/duckdb/src/include/duckdb/common/serializer/serialization_traits.hpp +14 -0
- package/src/duckdb/src/include/duckdb/common/serializer/serializer.hpp +16 -0
- package/src/duckdb/src/include/duckdb/common/sort/duckdb_pdqsort.hpp +3 -0
- package/src/duckdb/src/include/duckdb/common/sort/partition_state.hpp +2 -0
- package/src/duckdb/src/include/duckdb/common/string_util.hpp +4 -4
- package/src/duckdb/src/include/duckdb/common/tree_renderer.hpp +24 -25
- package/src/duckdb/src/include/duckdb/common/typedefs.hpp +5 -5
- package/src/duckdb/src/include/duckdb/common/types/cast_helpers.hpp +1 -2
- package/src/duckdb/src/include/duckdb/common/types/column/column_data_collection.hpp +10 -10
- package/src/duckdb/src/include/duckdb/common/types/column/column_data_collection_iterators.hpp +5 -5
- package/src/duckdb/src/include/duckdb/common/types/column/partitioned_column_data.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/types/constraint_conflict_info.hpp +1 -2
- package/src/duckdb/src/include/duckdb/common/types/data_chunk.hpp +2 -2
- package/src/duckdb/src/include/duckdb/common/types/date.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/types/hash.hpp +5 -5
- package/src/duckdb/src/include/duckdb/common/types/hyperloglog.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/types/interval.hpp +4 -4
- package/src/duckdb/src/include/duckdb/common/types/row/partitioned_tuple_data.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/types/row/tuple_data_layout.hpp +10 -3
- package/src/duckdb/src/include/duckdb/common/types/row/tuple_data_segment.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/types/selection_vector.hpp +12 -12
- package/src/duckdb/src/include/duckdb/common/types/string_heap.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/types/string_type.hpp +21 -20
- package/src/duckdb/src/include/duckdb/common/types/time.hpp +2 -2
- package/src/duckdb/src/include/duckdb/common/types/timestamp.hpp +3 -3
- package/src/duckdb/src/include/duckdb/common/types/uuid.hpp +2 -2
- package/src/duckdb/src/include/duckdb/common/types/value.hpp +2 -2
- package/src/duckdb/src/include/duckdb/common/types/vector.hpp +15 -7
- package/src/duckdb/src/include/duckdb/common/types/vector_buffer.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/types.hpp +14 -10
- package/src/duckdb/src/include/duckdb/common/uhugeint.hpp +2 -2
- package/src/duckdb/src/include/duckdb/common/union_by_name.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/unique_ptr.hpp +15 -14
- package/src/duckdb/src/include/duckdb/common/vector.hpp +21 -21
- package/src/duckdb/src/include/duckdb/common/vector_operations/aggregate_executor.hpp +2 -0
- package/src/duckdb/src/include/duckdb/common/vector_operations/general_cast.hpp +2 -1
- package/src/duckdb/src/include/duckdb/common/vector_operations/generic_executor.hpp +2 -3
- package/src/duckdb/src/include/duckdb/common/vector_operations/unary_executor.hpp +3 -2
- package/src/duckdb/src/include/duckdb/common/vector_operations/vector_operations.hpp +50 -32
- package/src/duckdb/src/include/duckdb/common/virtual_file_system.hpp +10 -11
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/distributive_functions.hpp +1 -1
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/sum_helpers.hpp +13 -1
- package/src/duckdb/src/include/duckdb/core_functions/function_list.hpp +1 -1
- package/src/duckdb/src/include/duckdb/core_functions/lambda_functions.hpp +2 -1
- package/src/duckdb/src/include/duckdb/execution/aggregate_hashtable.hpp +1 -1
- package/src/duckdb/src/include/duckdb/execution/column_binding_resolver.hpp +1 -1
- package/src/duckdb/src/include/duckdb/execution/expression_executor.hpp +1 -1
- package/src/duckdb/src/include/duckdb/execution/expression_executor_state.hpp +2 -5
- package/src/duckdb/src/include/duckdb/execution/merge_sort_tree.hpp +3 -3
- package/src/duckdb/src/include/duckdb/execution/operator/aggregate/aggregate_object.hpp +2 -2
- package/src/duckdb/src/include/duckdb/execution/operator/aggregate/distinct_aggregate_data.hpp +1 -1
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/base_scanner.hpp +1 -1
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/column_count_scanner.hpp +0 -3
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_buffer.hpp +9 -6
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_buffer_manager.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_error.hpp +40 -22
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_file_handle.hpp +5 -0
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_file_scanner.hpp +1 -0
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_option.hpp +6 -4
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_reader_options.hpp +24 -10
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_state_machine.hpp +4 -0
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/global_csv_state.hpp +3 -1
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/skip_scanner.hpp +0 -3
- package/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/string_value_scanner.hpp +58 -17
- package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_batch_collector.hpp +1 -1
- package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_explain_analyze.hpp +1 -1
- package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_prepare.hpp +3 -3
- package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_set.hpp +1 -1
- package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_vacuum.hpp +4 -1
- package/src/duckdb/src/include/duckdb/execution/operator/persistent/csv_rejects_table.hpp +16 -5
- package/src/duckdb/src/include/duckdb/execution/physical_operator_states.hpp +6 -6
- package/src/duckdb/src/include/duckdb/execution/physical_plan_generator.hpp +2 -1
- package/src/duckdb/src/include/duckdb/execution/window_executor.hpp +1 -1
- package/src/duckdb/src/include/duckdb/execution/window_segment_tree.hpp +1 -1
- package/src/duckdb/src/include/duckdb/function/aggregate_function.hpp +1 -1
- package/src/duckdb/src/include/duckdb/function/cast/cast_function_set.hpp +5 -5
- package/src/duckdb/src/include/duckdb/function/cast/default_casts.hpp +4 -4
- package/src/duckdb/src/include/duckdb/function/cast/vector_cast_helpers.hpp +6 -6
- package/src/duckdb/src/include/duckdb/function/compression_function.hpp +4 -4
- package/src/duckdb/src/include/duckdb/function/copy_function.hpp +10 -13
- package/src/duckdb/src/include/duckdb/function/function.hpp +3 -3
- package/src/duckdb/src/include/duckdb/function/function_binder.hpp +24 -23
- package/src/duckdb/src/include/duckdb/function/function_serialization.hpp +1 -1
- package/src/duckdb/src/include/duckdb/function/function_set.hpp +1 -1
- package/src/duckdb/src/include/duckdb/function/pragma_function.hpp +1 -1
- package/src/duckdb/src/include/duckdb/function/scalar/regexp.hpp +3 -3
- package/src/duckdb/src/include/duckdb/function/scalar/strftime_format.hpp +7 -7
- package/src/duckdb/src/include/duckdb/function/scalar/string_functions.hpp +3 -3
- package/src/duckdb/src/include/duckdb/function/scalar_function.hpp +6 -6
- package/src/duckdb/src/include/duckdb/function/table/arrow/arrow_duck_schema.hpp +4 -4
- package/src/duckdb/src/include/duckdb/function/table/arrow.hpp +2 -2
- package/src/duckdb/src/include/duckdb/function/table/read_csv.hpp +1 -3
- package/src/duckdb/src/include/duckdb/function/table/table_scan.hpp +1 -1
- package/src/duckdb/src/include/duckdb/function/table_function.hpp +12 -11
- package/src/duckdb/src/include/duckdb/function/udf_function.hpp +66 -60
- package/src/duckdb/src/include/duckdb/main/appender.hpp +6 -6
- package/src/duckdb/src/include/duckdb/main/attached_database.hpp +3 -1
- package/src/duckdb/src/include/duckdb/main/buffered_data/buffered_data.hpp +2 -2
- package/src/duckdb/src/include/duckdb/main/buffered_data/simple_buffered_data.hpp +1 -1
- package/src/duckdb/src/include/duckdb/main/capi/capi_internal.hpp +2 -2
- package/src/duckdb/src/include/duckdb/main/chunk_scan_state/query_result.hpp +2 -2
- package/src/duckdb/src/include/duckdb/main/client_context.hpp +1 -1
- package/src/duckdb/src/include/duckdb/main/client_context_file_opener.hpp +3 -2
- package/src/duckdb/src/include/duckdb/main/client_data.hpp +1 -0
- package/src/duckdb/src/include/duckdb/main/client_properties.hpp +2 -1
- package/src/duckdb/src/include/duckdb/main/config.hpp +14 -5
- package/src/duckdb/src/include/duckdb/main/connection.hpp +27 -26
- package/src/duckdb/src/include/duckdb/main/database.hpp +19 -3
- package/src/duckdb/src/include/duckdb/main/database_file_opener.hpp +58 -0
- package/src/duckdb/src/include/duckdb/main/database_path_and_type.hpp +2 -2
- package/src/duckdb/src/include/duckdb/main/error_manager.hpp +6 -6
- package/src/duckdb/src/include/duckdb/main/extension_entries.hpp +8 -0
- package/src/duckdb/src/include/duckdb/main/extension_helper.hpp +1 -0
- package/src/duckdb/src/include/duckdb/main/external_dependencies.hpp +2 -1
- package/src/duckdb/src/include/duckdb/main/prepared_statement.hpp +8 -8
- package/src/duckdb/src/include/duckdb/main/query_profiler.hpp +2 -59
- package/src/duckdb/src/include/duckdb/main/query_result.hpp +3 -3
- package/src/duckdb/src/include/duckdb/main/relation/query_relation.hpp +1 -1
- package/src/duckdb/src/include/duckdb/main/relation.hpp +1 -1
- package/src/duckdb/src/include/duckdb/main/secret/secret.hpp +11 -7
- package/src/duckdb/src/include/duckdb/main/secret/secret_manager.hpp +2 -2
- package/src/duckdb/src/include/duckdb/main/secret/secret_storage.hpp +4 -4
- package/src/duckdb/src/include/duckdb/main/settings.hpp +78 -70
- package/src/duckdb/src/include/duckdb/optimizer/column_lifetime_analyzer.hpp +45 -0
- package/src/duckdb/src/include/duckdb/optimizer/compressed_materialization.hpp +11 -13
- package/src/duckdb/src/include/duckdb/optimizer/join_order/cardinality_estimator.hpp +2 -2
- package/src/duckdb/src/include/duckdb/optimizer/join_order/cost_model.hpp +1 -1
- package/src/duckdb/src/include/duckdb/optimizer/join_order/join_node.hpp +1 -1
- package/src/duckdb/src/include/duckdb/optimizer/join_order/query_graph.hpp +1 -1
- package/src/duckdb/src/include/duckdb/optimizer/join_order/query_graph_manager.hpp +1 -1
- package/src/duckdb/src/include/duckdb/optimizer/join_order/relation_manager.hpp +1 -1
- package/src/duckdb/src/include/duckdb/optimizer/matcher/expression_matcher.hpp +7 -7
- package/src/duckdb/src/include/duckdb/optimizer/matcher/function_matcher.hpp +7 -7
- package/src/duckdb/src/include/duckdb/optimizer/matcher/type_matcher.hpp +1 -1
- package/src/duckdb/src/include/duckdb/optimizer/optimizer.hpp +3 -0
- package/src/duckdb/src/include/duckdb/optimizer/statistics_propagator.hpp +32 -30
- package/src/duckdb/src/include/duckdb/optimizer/unnest_rewriter.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parallel/event.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parallel/executor_task.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parallel/interrupt.hpp +2 -2
- package/src/duckdb/src/include/duckdb/parallel/pipeline_event.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/column_list.hpp +4 -4
- package/src/duckdb/src/include/duckdb/parser/constraints/unique_constraint.hpp +49 -8
- package/src/duckdb/src/include/duckdb/parser/expression/bound_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/positional_reference_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/star_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/parsed_data/alter_scalar_function_info.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/parsed_data/alter_table_function_info.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/parsed_data/alter_table_info.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/parsed_data/copy_database_info.hpp +40 -0
- package/src/duckdb/src/include/duckdb/parser/parsed_data/create_function_info.hpp +2 -1
- package/src/duckdb/src/include/duckdb/parser/parsed_data/create_index_info.hpp +1 -0
- package/src/duckdb/src/include/duckdb/parser/parsed_data/create_info.hpp +2 -1
- package/src/duckdb/src/include/duckdb/parser/parsed_data/create_macro_info.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/parsed_data/create_pragma_function_info.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/parsed_data/create_secret_info.hpp +2 -2
- package/src/duckdb/src/include/duckdb/parser/parsed_data/extra_drop_info.hpp +3 -3
- package/src/duckdb/src/include/duckdb/parser/parsed_data/parse_info.hpp +3 -2
- package/src/duckdb/src/include/duckdb/parser/parsed_data/vacuum_info.hpp +2 -5
- package/src/duckdb/src/include/duckdb/parser/parser.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/parser_extension.hpp +3 -3
- package/src/duckdb/src/include/duckdb/parser/query_error_context.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/transformer.hpp +3 -5
- package/src/duckdb/src/include/duckdb/planner/bind_context.hpp +2 -2
- package/src/duckdb/src/include/duckdb/planner/binder.hpp +16 -9
- package/src/duckdb/src/include/duckdb/planner/expression/bound_case_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_cast_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_default_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_expanded_expression.hpp +34 -0
- package/src/duckdb/src/include/duckdb/planner/expression/bound_subquery_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression_binder/base_select_binder.hpp +5 -8
- package/src/duckdb/src/include/duckdb/planner/expression_binder/column_alias_binder.hpp +3 -4
- package/src/duckdb/src/include/duckdb/planner/expression_binder/group_binder.hpp +3 -2
- package/src/duckdb/src/include/duckdb/planner/expression_binder/having_binder.hpp +3 -5
- package/src/duckdb/src/include/duckdb/planner/expression_binder/order_binder.hpp +6 -14
- package/src/duckdb/src/include/duckdb/planner/expression_binder/qualify_binder.hpp +3 -6
- package/src/duckdb/src/include/duckdb/planner/expression_binder/select_bind_state.hpp +52 -0
- package/src/duckdb/src/include/duckdb/planner/expression_binder/select_binder.hpp +4 -10
- package/src/duckdb/src/include/duckdb/planner/expression_binder/table_function_binder.hpp +5 -2
- package/src/duckdb/src/include/duckdb/planner/expression_binder.hpp +1 -0
- package/src/duckdb/src/include/duckdb/planner/expression_iterator.hpp +2 -0
- package/src/duckdb/src/include/duckdb/planner/filter/conjunction_filter.hpp +3 -6
- package/src/duckdb/src/include/duckdb/planner/logical_operator.hpp +2 -0
- package/src/duckdb/src/include/duckdb/planner/logical_tokens.hpp +1 -0
- package/src/duckdb/src/include/duckdb/planner/operator/list.hpp +1 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_copy_database.hpp +4 -12
- package/src/duckdb/src/include/duckdb/planner/operator/logical_create_secret.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/operator/logical_cteref.hpp +2 -2
- package/src/duckdb/src/include/duckdb/planner/operator/logical_delim_get.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/operator/logical_dummy_scan.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/operator/logical_explain.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/operator/logical_export.hpp +2 -2
- package/src/duckdb/src/include/duckdb/planner/operator/logical_expression_get.hpp +2 -2
- package/src/duckdb/src/include/duckdb/planner/operator/logical_extension_operator.hpp +2 -2
- package/src/duckdb/src/include/duckdb/planner/operator/logical_materialized_cte.hpp +2 -2
- package/src/duckdb/src/include/duckdb/planner/operator/logical_pragma.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/operator/logical_prepare.hpp +3 -2
- package/src/duckdb/src/include/duckdb/planner/operator/logical_recursive_cte.hpp +3 -3
- package/src/duckdb/src/include/duckdb/planner/operator/logical_reset.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/operator/logical_set.hpp +2 -1
- package/src/duckdb/src/include/duckdb/planner/operator/logical_vacuum.hpp +52 -0
- package/src/duckdb/src/include/duckdb/planner/operator_extension.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/parsed_data/bound_create_table_info.hpp +2 -2
- package/src/duckdb/src/include/duckdb/planner/query_node/bound_select_node.hpp +5 -4
- package/src/duckdb/src/include/duckdb/planner/subquery/flatten_dependent_join.hpp +2 -2
- package/src/duckdb/src/include/duckdb/storage/arena_allocator.hpp +4 -1
- package/src/duckdb/src/include/duckdb/storage/buffer/block_handle.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/buffer_manager.hpp +3 -3
- package/src/duckdb/src/include/duckdb/storage/checkpoint/row_group_writer.hpp +2 -3
- package/src/duckdb/src/include/duckdb/storage/checkpoint/string_checkpoint_state.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/checkpoint/table_data_writer.hpp +3 -3
- package/src/duckdb/src/include/duckdb/storage/checkpoint_manager.hpp +5 -5
- package/src/duckdb/src/include/duckdb/storage/compression/alp/alp_analyze.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/compression/alp/alp_compress.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/compression/alp/alp_fetch.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/compression/alp/alp_scan.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/compression/alprd/algorithm/alprd.hpp +3 -3
- package/src/duckdb/src/include/duckdb/storage/compression/alprd/alprd_analyze.hpp +2 -2
- package/src/duckdb/src/include/duckdb/storage/compression/alprd/alprd_compress.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/compression/alprd/alprd_fetch.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/compression/alprd/alprd_scan.hpp +3 -3
- package/src/duckdb/src/include/duckdb/storage/compression/chimp/algorithm/flag_buffer.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/compression/chimp/algorithm/leading_zero_buffer.hpp +3 -3
- package/src/duckdb/src/include/duckdb/storage/compression/chimp/chimp.hpp +3 -3
- package/src/duckdb/src/include/duckdb/storage/compression/chimp/chimp_analyze.hpp +0 -1
- package/src/duckdb/src/include/duckdb/storage/compression/chimp/chimp_fetch.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/compression/chimp/chimp_scan.hpp +4 -4
- package/src/duckdb/src/include/duckdb/storage/compression/patas/patas.hpp +4 -4
- package/src/duckdb/src/include/duckdb/storage/compression/patas/patas_analyze.hpp +0 -1
- package/src/duckdb/src/include/duckdb/storage/compression/patas/patas_fetch.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/compression/patas/patas_scan.hpp +3 -3
- package/src/duckdb/src/include/duckdb/storage/data_pointer.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/index.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/magic_bytes.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/object_cache.hpp +3 -3
- package/src/duckdb/src/include/duckdb/storage/optimistic_data_writer.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/partial_block_manager.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/single_file_block_manager.hpp +4 -1
- package/src/duckdb/src/include/duckdb/storage/standard_buffer_manager.hpp +24 -24
- package/src/duckdb/src/include/duckdb/storage/statistics/numeric_stats_union.hpp +3 -3
- package/src/duckdb/src/include/duckdb/storage/statistics/segment_statistics.hpp +2 -2
- package/src/duckdb/src/include/duckdb/storage/storage_info.hpp +2 -2
- package/src/duckdb/src/include/duckdb/storage/storage_manager.hpp +4 -4
- package/src/duckdb/src/include/duckdb/storage/string_uncompressed.hpp +9 -6
- package/src/duckdb/src/include/duckdb/storage/table/append_state.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/table/chunk_info.hpp +2 -2
- package/src/duckdb/src/include/duckdb/storage/table/column_checkpoint_state.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/table/column_data.hpp +10 -1
- package/src/duckdb/src/include/duckdb/storage/table/data_table_info.hpp +3 -2
- package/src/duckdb/src/include/duckdb/storage/table/row_group.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/table/row_group_segment_tree.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/table/row_version_manager.hpp +2 -1
- package/src/duckdb/src/include/duckdb/storage/table/scan_state.hpp +3 -3
- package/src/duckdb/src/include/duckdb/storage/table/segment_lock.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/table/segment_tree.hpp +4 -4
- package/src/duckdb/src/include/duckdb/storage/table/standard_column_data.hpp +2 -0
- package/src/duckdb/src/include/duckdb/storage/table/table_index_list.hpp +3 -2
- package/src/duckdb/src/include/duckdb/storage/table/table_statistics.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/table/update_segment.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/table_storage_info.hpp +2 -1
- package/src/duckdb/src/include/duckdb/storage/write_ahead_log.hpp +1 -1
- package/src/duckdb/src/include/duckdb/transaction/delete_info.hpp +20 -1
- package/src/duckdb/src/include/duckdb/transaction/transaction.hpp +1 -1
- package/src/duckdb/src/include/duckdb/transaction/transaction_data.hpp +1 -1
- package/src/duckdb/src/include/duckdb/transaction/undo_buffer.hpp +1 -1
- package/src/duckdb/src/include/duckdb/transaction/update_info.hpp +1 -1
- package/src/duckdb/src/main/appender.cpp +1 -1
- package/src/duckdb/src/main/attached_database.cpp +11 -3
- package/src/duckdb/src/main/capi/arrow-c.cpp +6 -2
- package/src/duckdb/src/main/capi/cast/utils-c.cpp +1 -1
- package/src/duckdb/src/main/capi/duckdb-c.cpp +1 -1
- package/src/duckdb/src/main/capi/pending-c.cpp +1 -1
- package/src/duckdb/src/main/capi/prepared-c.cpp +2 -2
- package/src/duckdb/src/main/capi/result-c.cpp +4 -4
- package/src/duckdb/src/main/client_context.cpp +4 -12
- package/src/duckdb/src/main/client_context_file_opener.cpp +15 -3
- package/src/duckdb/src/main/client_data.cpp +5 -0
- package/src/duckdb/src/main/config.cpp +82 -82
- package/src/duckdb/src/main/database.cpp +31 -7
- package/src/duckdb/src/main/database_manager.cpp +3 -2
- package/src/duckdb/src/main/database_path_and_type.cpp +4 -4
- package/src/duckdb/src/main/error_manager.cpp +1 -1
- package/src/duckdb/src/main/extension/extension_alias.cpp +9 -9
- package/src/duckdb/src/main/extension/extension_helper.cpp +10 -5
- package/src/duckdb/src/main/extension/extension_install.cpp +1 -1
- package/src/duckdb/src/main/extension/extension_load.cpp +111 -37
- package/src/duckdb/src/main/query_profiler.cpp +1 -118
- package/src/duckdb/src/main/secret/secret_manager.cpp +1 -2
- package/src/duckdb/src/main/secret/secret_storage.cpp +1 -1
- package/src/duckdb/src/main/settings/settings.cpp +81 -65
- package/src/duckdb/src/optimizer/column_lifetime_analyzer.cpp +8 -1
- package/src/duckdb/src/optimizer/compressed_materialization/compress_aggregate.cpp +3 -0
- package/src/duckdb/src/optimizer/compressed_materialization.cpp +26 -28
- package/src/duckdb/src/optimizer/cse_optimizer.cpp +5 -5
- package/src/duckdb/src/optimizer/join_order/cardinality_estimator.cpp +10 -6
- package/src/duckdb/src/optimizer/optimizer.cpp +14 -17
- package/src/duckdb/src/optimizer/pushdown/pushdown_cross_product.cpp +16 -5
- package/src/duckdb/src/optimizer/pushdown/pushdown_inner_join.cpp +7 -4
- package/src/duckdb/src/optimizer/pushdown/pushdown_set_operation.cpp +2 -2
- package/src/duckdb/src/optimizer/remove_unused_columns.cpp +3 -3
- package/src/duckdb/src/optimizer/rule/ordered_aggregate_optimizer.cpp +2 -2
- package/src/duckdb/src/optimizer/statistics/expression/propagate_aggregate.cpp +1 -1
- package/src/duckdb/src/optimizer/statistics/expression/propagate_between.cpp +8 -8
- package/src/duckdb/src/optimizer/statistics/expression/propagate_case.cpp +1 -1
- package/src/duckdb/src/optimizer/statistics/expression/propagate_cast.cpp +1 -1
- package/src/duckdb/src/optimizer/statistics/expression/propagate_columnref.cpp +1 -1
- package/src/duckdb/src/optimizer/statistics/expression/propagate_comparison.cpp +7 -7
- package/src/duckdb/src/optimizer/statistics/expression/propagate_conjunction.cpp +6 -6
- package/src/duckdb/src/optimizer/statistics/expression/propagate_constant.cpp +1 -1
- package/src/duckdb/src/optimizer/statistics/expression/propagate_function.cpp +2 -2
- package/src/duckdb/src/optimizer/statistics/expression/propagate_operator.cpp +10 -10
- package/src/duckdb/src/optimizer/statistics/operator/propagate_aggregate.cpp +1 -1
- package/src/duckdb/src/optimizer/statistics/operator/propagate_cross_product.cpp +1 -1
- package/src/duckdb/src/optimizer/statistics/operator/propagate_filter.cpp +14 -7
- package/src/duckdb/src/optimizer/statistics/operator/propagate_get.cpp +2 -2
- package/src/duckdb/src/optimizer/statistics/operator/propagate_join.cpp +9 -9
- package/src/duckdb/src/optimizer/statistics/operator/propagate_limit.cpp +1 -1
- package/src/duckdb/src/optimizer/statistics/operator/propagate_order.cpp +1 -1
- package/src/duckdb/src/optimizer/statistics/operator/propagate_projection.cpp +2 -2
- package/src/duckdb/src/optimizer/statistics/operator/propagate_set_operation.cpp +1 -1
- package/src/duckdb/src/optimizer/statistics/operator/propagate_window.cpp +1 -1
- package/src/duckdb/src/optimizer/statistics_propagator.cpp +39 -18
- package/src/duckdb/src/parallel/pipeline_finish_event.cpp +1 -1
- package/src/duckdb/src/parallel/task_scheduler.cpp +8 -1
- package/src/duckdb/src/parser/constraints/unique_constraint.cpp +4 -2
- package/src/duckdb/src/parser/parsed_data/create_index_info.cpp +64 -0
- package/src/duckdb/src/parser/parsed_data/vacuum_info.cpp +1 -0
- package/src/duckdb/src/parser/transform/expression/transform_function.cpp +13 -5
- package/src/duckdb/src/parser/transform/expression/transform_subquery.cpp +24 -0
- package/src/duckdb/src/parser/transform/helpers/transform_cte.cpp +1 -8
- package/src/duckdb/src/parser/transform/statement/transform_create_function.cpp +2 -1
- package/src/duckdb/src/parser/transform/statement/transform_create_index.cpp +3 -0
- package/src/duckdb/src/parser/transform/statement/transform_delete.cpp +2 -6
- package/src/duckdb/src/parser/transform/statement/transform_insert.cpp +2 -6
- package/src/duckdb/src/parser/transform/statement/transform_pivot_stmt.cpp +2 -6
- package/src/duckdb/src/parser/transform/statement/transform_pragma.cpp +1 -1
- package/src/duckdb/src/parser/transform/statement/transform_select.cpp +5 -2
- package/src/duckdb/src/parser/transform/statement/transform_select_node.cpp +2 -8
- package/src/duckdb/src/parser/transform/statement/transform_update.cpp +1 -6
- package/src/duckdb/src/parser/transform/statement/transform_use.cpp +3 -2
- package/src/duckdb/src/parser/transformer.cpp +14 -2
- package/src/duckdb/src/planner/binder/expression/bind_aggregate_expression.cpp +40 -17
- package/src/duckdb/src/planner/binder/expression/bind_unnest_expression.cpp +8 -3
- package/src/duckdb/src/planner/binder/expression/bind_window_expression.cpp +32 -30
- package/src/duckdb/src/planner/binder/query_node/bind_cte_node.cpp +28 -17
- package/src/duckdb/src/planner/binder/query_node/bind_select_node.cpp +146 -101
- package/src/duckdb/src/planner/binder/query_node/bind_setop_node.cpp +28 -26
- package/src/duckdb/src/planner/binder/query_node/plan_cte_node.cpp +29 -0
- package/src/duckdb/src/planner/binder/query_node/plan_subquery.cpp +10 -10
- package/src/duckdb/src/planner/binder/statement/bind_copy.cpp +3 -2
- package/src/duckdb/src/planner/binder/statement/bind_copy_database.cpp +23 -28
- package/src/duckdb/src/planner/binder/statement/bind_create.cpp +11 -12
- package/src/duckdb/src/planner/binder/statement/bind_create_table.cpp +9 -11
- package/src/duckdb/src/planner/binder/statement/bind_insert.cpp +10 -13
- package/src/duckdb/src/planner/binder/statement/bind_pragma.cpp +3 -3
- package/src/duckdb/src/planner/binder/statement/bind_set.cpp +3 -0
- package/src/duckdb/src/planner/binder/statement/bind_vacuum.cpp +66 -65
- package/src/duckdb/src/planner/binder/tableref/bind_basetableref.cpp +54 -46
- package/src/duckdb/src/planner/binder/tableref/bind_pivot.cpp +3 -0
- package/src/duckdb/src/planner/binder/tableref/bind_subqueryref.cpp +1 -1
- package/src/duckdb/src/planner/binder/tableref/bind_table_function.cpp +5 -5
- package/src/duckdb/src/planner/binder.cpp +78 -6
- package/src/duckdb/src/planner/expression/bound_cast_expression.cpp +11 -3
- package/src/duckdb/src/planner/expression/bound_expanded_expression.cpp +22 -0
- package/src/duckdb/src/planner/expression_binder/base_select_binder.cpp +11 -58
- package/src/duckdb/src/planner/expression_binder/column_alias_binder.cpp +5 -8
- package/src/duckdb/src/planner/expression_binder/group_binder.cpp +5 -4
- package/src/duckdb/src/planner/expression_binder/having_binder.cpp +5 -19
- package/src/duckdb/src/planner/expression_binder/lateral_binder.cpp +8 -8
- package/src/duckdb/src/planner/expression_binder/order_binder.cpp +42 -26
- package/src/duckdb/src/planner/expression_binder/qualify_binder.cpp +3 -22
- package/src/duckdb/src/planner/expression_binder/select_bind_state.cpp +52 -0
- package/src/duckdb/src/planner/expression_binder/select_binder.cpp +43 -5
- package/src/duckdb/src/planner/expression_binder/table_function_binder.cpp +19 -7
- package/src/duckdb/src/planner/logical_operator.cpp +20 -3
- package/src/duckdb/src/planner/operator/logical_copy_database.cpp +4 -14
- package/src/duckdb/src/planner/operator/logical_delete.cpp +1 -1
- package/src/duckdb/src/planner/operator/logical_get.cpp +1 -1
- package/src/duckdb/src/planner/operator/logical_insert.cpp +1 -1
- package/src/duckdb/src/planner/operator/logical_update.cpp +1 -1
- package/src/duckdb/src/planner/operator/logical_vacuum.cpp +65 -0
- package/src/duckdb/src/planner/planner.cpp +4 -4
- package/src/duckdb/src/planner/subquery/flatten_dependent_join.cpp +26 -27
- package/src/duckdb/src/storage/arena_allocator.cpp +9 -0
- package/src/duckdb/src/storage/buffer/buffer_pool_reservation.cpp +1 -1
- package/src/duckdb/src/storage/buffer_manager.cpp +2 -10
- package/src/duckdb/src/storage/checkpoint/table_data_writer.cpp +2 -3
- package/src/duckdb/src/storage/checkpoint_manager.cpp +15 -8
- package/src/duckdb/src/storage/compression/bitpacking.cpp +6 -1
- package/src/duckdb/src/storage/compression/string_uncompressed.cpp +1 -1
- package/src/duckdb/src/storage/data_pointer.cpp +1 -1
- package/src/duckdb/src/storage/data_table.cpp +18 -7
- package/src/duckdb/src/storage/local_storage.cpp +8 -5
- package/src/duckdb/src/storage/magic_bytes.cpp +6 -5
- package/src/duckdb/src/storage/partial_block_manager.cpp +1 -1
- package/src/duckdb/src/storage/serialization/serialize_logical_operator.cpp +20 -9
- package/src/duckdb/src/storage/serialization/serialize_nodes.cpp +12 -10
- package/src/duckdb/src/storage/serialization/serialize_parse_info.cpp +23 -0
- package/src/duckdb/src/storage/single_file_block_manager.cpp +46 -19
- package/src/duckdb/src/storage/standard_buffer_manager.cpp +21 -5
- package/src/duckdb/src/storage/statistics/array_stats.cpp +1 -1
- package/src/duckdb/src/storage/statistics/base_statistics.cpp +2 -3
- package/src/duckdb/src/storage/statistics/list_stats.cpp +1 -1
- package/src/duckdb/src/storage/statistics/struct_stats.cpp +1 -1
- package/src/duckdb/src/storage/storage_info.cpp +19 -19
- package/src/duckdb/src/storage/storage_manager.cpp +18 -13
- package/src/duckdb/src/storage/table/chunk_info.cpp +11 -3
- package/src/duckdb/src/storage/table/column_data.cpp +88 -66
- package/src/duckdb/src/storage/table/row_group.cpp +7 -7
- package/src/duckdb/src/storage/table/row_version_manager.cpp +2 -2
- package/src/duckdb/src/storage/table/standard_column_data.cpp +4 -0
- package/src/duckdb/src/storage/table/update_segment.cpp +3 -1
- package/src/duckdb/src/storage/table_index_list.cpp +6 -1
- package/src/duckdb/src/storage/temporary_file_manager.cpp +1 -1
- package/src/duckdb/src/storage/wal_replay.cpp +8 -7
- package/src/duckdb/src/storage/write_ahead_log.cpp +3 -4
- package/src/duckdb/src/transaction/cleanup_state.cpp +10 -3
- package/src/duckdb/src/transaction/commit_state.cpp +11 -4
- package/src/duckdb/src/transaction/duck_transaction.cpp +23 -3
- package/src/duckdb/src/transaction/rollback_state.cpp +1 -1
- package/src/duckdb/src/transaction/transaction_context.cpp +1 -1
- package/src/duckdb/src/transaction/undo_buffer.cpp +3 -1
- package/src/duckdb/third_party/fmt/include/fmt/core.h +0 -5
- package/src/duckdb/third_party/fsst/fsst.h +1 -1
- package/src/duckdb/third_party/fsst/libfsst.cpp +1 -140
- package/src/duckdb/third_party/fsst/libfsst.hpp +0 -13
- package/src/duckdb/third_party/hyperloglog/hyperloglog.hpp +4 -0
- package/src/duckdb/third_party/libpg_query/include/nodes/parsenodes.hpp +8 -1
- package/src/duckdb/third_party/libpg_query/include/parser/gram.hpp +2 -1
- package/src/duckdb/third_party/libpg_query/src_backend_parser_gram.cpp +15401 -15354
- package/src/duckdb/third_party/libpg_query/src_backend_parser_scan.cpp +299 -538
- package/src/duckdb/third_party/lz4/lz4.cpp +2605 -0
- package/src/duckdb/third_party/lz4/lz4.hpp +843 -0
- package/src/duckdb/third_party/parquet/parquet_types.cpp +3 -0
- package/src/duckdb/third_party/parquet/parquet_types.h +2 -1
- package/src/duckdb/third_party/re2/re2/bitmap256.cc +44 -0
- package/src/duckdb/third_party/re2/re2/bitmap256.h +3 -35
- package/src/duckdb/third_party/re2/re2/bitstate.cc +31 -24
- package/src/duckdb/third_party/re2/re2/compile.cc +146 -164
- package/src/duckdb/third_party/re2/re2/dfa.cc +174 -181
- package/src/duckdb/third_party/re2/re2/filtered_re2.cc +19 -3
- package/src/duckdb/third_party/re2/re2/filtered_re2.h +27 -23
- package/src/duckdb/third_party/re2/re2/mimics_pcre.cc +21 -11
- package/src/duckdb/third_party/re2/re2/nfa.cc +91 -131
- package/src/duckdb/third_party/re2/re2/onepass.cc +11 -10
- package/src/duckdb/third_party/re2/re2/parse.cc +171 -154
- package/src/duckdb/third_party/re2/re2/perl_groups.cc +35 -35
- package/src/duckdb/third_party/re2/re2/pod_array.h +55 -0
- package/src/duckdb/third_party/re2/re2/prefilter.cc +40 -40
- package/src/duckdb/third_party/re2/re2/prefilter.h +24 -2
- package/src/duckdb/third_party/re2/re2/prefilter_tree.cc +70 -84
- package/src/duckdb/third_party/re2/re2/prefilter_tree.h +5 -4
- package/src/duckdb/third_party/re2/re2/prog.cc +315 -58
- package/src/duckdb/third_party/re2/re2/prog.h +77 -44
- package/src/duckdb/third_party/re2/re2/re2.cc +333 -221
- package/src/duckdb/third_party/re2/re2/re2.h +277 -201
- package/src/duckdb/third_party/re2/re2/regexp.cc +137 -105
- package/src/duckdb/third_party/re2/re2/regexp.h +45 -40
- package/src/duckdb/third_party/re2/re2/set.cc +40 -17
- package/src/duckdb/third_party/re2/re2/set.h +11 -6
- package/src/duckdb/third_party/re2/re2/simplify.cc +50 -41
- package/src/duckdb/third_party/re2/re2/sparse_array.h +392 -0
- package/src/duckdb/third_party/re2/re2/sparse_set.h +264 -0
- package/src/duckdb/third_party/re2/re2/stringpiece.cc +1 -1
- package/src/duckdb/third_party/re2/re2/stringpiece.h +11 -8
- package/src/duckdb/third_party/re2/re2/tostring.cc +8 -6
- package/src/duckdb/third_party/re2/re2/unicode_casefold.cc +39 -10
- package/src/duckdb/third_party/re2/re2/unicode_casefold.h +1 -1
- package/src/duckdb/third_party/re2/re2/unicode_groups.cc +5019 -4566
- package/src/duckdb/third_party/re2/re2/unicode_groups.h +1 -1
- package/src/duckdb/third_party/re2/re2/walker-inl.h +21 -20
- package/src/duckdb/third_party/re2/util/logging.h +14 -18
- package/src/duckdb/third_party/re2/util/mix.h +4 -4
- package/src/duckdb/third_party/re2/util/mutex.h +48 -15
- package/src/duckdb/third_party/re2/util/rune.cc +5 -5
- package/src/duckdb/third_party/re2/util/strutil.cc +1 -16
- package/src/duckdb/third_party/re2/util/strutil.h +1 -3
- package/src/duckdb/third_party/re2/util/utf.h +1 -1
- package/src/duckdb/third_party/re2/util/util.h +9 -1
- package/src/duckdb/third_party/utf8proc/include/utf8proc_wrapper.hpp +2 -0
- package/src/duckdb/third_party/utf8proc/utf8proc_wrapper.cpp +36 -1
- package/src/duckdb/ub_src_common.cpp +0 -2
- package/src/duckdb/ub_src_execution_physical_plan.cpp +2 -0
- package/src/duckdb/ub_src_planner_expression.cpp +2 -0
- package/src/duckdb/ub_src_planner_expression_binder.cpp +2 -0
- package/src/duckdb/ub_src_planner_operator.cpp +2 -0
|
@@ -16,7 +16,7 @@ namespace duckdb {
|
|
|
16
16
|
|
|
17
17
|
struct CreatePragmaFunctionInfo : public CreateFunctionInfo {
|
|
18
18
|
DUCKDB_API explicit CreatePragmaFunctionInfo(PragmaFunction function);
|
|
19
|
-
DUCKDB_API CreatePragmaFunctionInfo(string name, PragmaFunctionSet
|
|
19
|
+
DUCKDB_API CreatePragmaFunctionInfo(string name, PragmaFunctionSet functions);
|
|
20
20
|
|
|
21
21
|
PragmaFunctionSet functions;
|
|
22
22
|
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
|
|
19
19
|
namespace duckdb {
|
|
20
20
|
|
|
21
|
-
struct CreateSecretInfo : public CreateInfo {
|
|
21
|
+
struct CreateSecretInfo : public CreateInfo { // NOLINT: work-around bug in clang-tidy
|
|
22
22
|
public:
|
|
23
23
|
static constexpr const ParseInfoType TYPE = ParseInfoType::CREATE_SECRET_INFO;
|
|
24
24
|
|
|
@@ -41,7 +41,7 @@ public:
|
|
|
41
41
|
//! Named parameter list (if any)
|
|
42
42
|
case_insensitive_map_t<Value> options;
|
|
43
43
|
|
|
44
|
-
unique_ptr<CreateInfo> Copy() const;
|
|
44
|
+
unique_ptr<CreateInfo> Copy() const override;
|
|
45
45
|
};
|
|
46
46
|
|
|
47
47
|
} // namespace duckdb
|
|
@@ -38,7 +38,7 @@ public:
|
|
|
38
38
|
|
|
39
39
|
template <class TARGET>
|
|
40
40
|
const TARGET &Cast() const {
|
|
41
|
-
|
|
41
|
+
DynamicCastCheck<TARGET>(this);
|
|
42
42
|
return reinterpret_cast<const TARGET &>(*this);
|
|
43
43
|
}
|
|
44
44
|
virtual unique_ptr<ExtraDropInfo> Copy() const = 0;
|
|
@@ -57,9 +57,9 @@ struct ExtraDropSecretInfo : public ExtraDropInfo {
|
|
|
57
57
|
string secret_storage;
|
|
58
58
|
|
|
59
59
|
public:
|
|
60
|
-
|
|
60
|
+
unique_ptr<ExtraDropInfo> Copy() const override;
|
|
61
61
|
|
|
62
|
-
|
|
62
|
+
void Serialize(Serializer &serializer) const override;
|
|
63
63
|
static unique_ptr<ExtraDropInfo> Deserialize(Deserializer &deserializer);
|
|
64
64
|
};
|
|
65
65
|
|
|
@@ -27,7 +27,8 @@ enum class ParseInfoType : uint8_t {
|
|
|
27
27
|
TRANSACTION_INFO,
|
|
28
28
|
VACUUM_INFO,
|
|
29
29
|
COMMENT_ON_INFO,
|
|
30
|
-
COMMENT_ON_COLUMN_INFO
|
|
30
|
+
COMMENT_ON_COLUMN_INFO,
|
|
31
|
+
COPY_DATABASE_INFO
|
|
31
32
|
};
|
|
32
33
|
|
|
33
34
|
struct ParseInfo {
|
|
@@ -47,7 +48,7 @@ public:
|
|
|
47
48
|
|
|
48
49
|
template <class TARGET>
|
|
49
50
|
const TARGET &Cast() const {
|
|
50
|
-
|
|
51
|
+
DynamicCastCheck<TARGET>(this);
|
|
51
52
|
return reinterpret_cast<const TARGET &>(*this);
|
|
52
53
|
}
|
|
53
54
|
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
#include "duckdb/planner/tableref/bound_basetableref.hpp"
|
|
14
14
|
#include "duckdb/common/unordered_map.hpp"
|
|
15
15
|
#include "duckdb/common/optional_ptr.hpp"
|
|
16
|
+
#include "duckdb/catalog/dependency_list.hpp"
|
|
16
17
|
|
|
17
18
|
namespace duckdb {
|
|
18
19
|
class Serializer;
|
|
@@ -37,13 +38,9 @@ public:
|
|
|
37
38
|
explicit VacuumInfo(VacuumOptions options);
|
|
38
39
|
|
|
39
40
|
const VacuumOptions options;
|
|
40
|
-
|
|
41
|
-
public:
|
|
41
|
+
vector<string> columns;
|
|
42
42
|
bool has_table;
|
|
43
43
|
unique_ptr<TableRef> ref;
|
|
44
|
-
optional_ptr<TableCatalogEntry> table;
|
|
45
|
-
unordered_map<idx_t, idx_t> column_id_map;
|
|
46
|
-
vector<string> columns;
|
|
47
44
|
|
|
48
45
|
public:
|
|
49
46
|
unique_ptr<VacuumInfo> Copy();
|
|
@@ -29,7 +29,7 @@ class GroupByNode;
|
|
|
29
29
|
//! plan and executed.
|
|
30
30
|
class Parser {
|
|
31
31
|
public:
|
|
32
|
-
Parser(ParserOptions options = ParserOptions());
|
|
32
|
+
explicit Parser(ParserOptions options = ParserOptions());
|
|
33
33
|
|
|
34
34
|
//! The parsed SQL statements from an invocation to ParseQuery.
|
|
35
35
|
vector<unique_ptr<SQLStatement>> statements;
|
|
@@ -38,10 +38,10 @@ struct ParserExtensionParseData {
|
|
|
38
38
|
struct ParserExtensionParseResult {
|
|
39
39
|
ParserExtensionParseResult() : type(ParserExtensionResultType::DISPLAY_ORIGINAL_ERROR) {
|
|
40
40
|
}
|
|
41
|
-
ParserExtensionParseResult(string error_p)
|
|
41
|
+
explicit ParserExtensionParseResult(string error_p)
|
|
42
42
|
: type(ParserExtensionResultType::DISPLAY_EXTENSION_ERROR), error(std::move(error_p)) {
|
|
43
43
|
}
|
|
44
|
-
ParserExtensionParseResult(unique_ptr<ParserExtensionParseData> parse_data_p)
|
|
44
|
+
explicit ParserExtensionParseResult(unique_ptr<ParserExtensionParseData> parse_data_p)
|
|
45
45
|
: type(ParserExtensionResultType::PARSE_SUCCESSFUL), parse_data(std::move(parse_data_p)) {
|
|
46
46
|
}
|
|
47
47
|
|
|
@@ -59,7 +59,7 @@ typedef ParserExtensionParseResult (*parse_function_t)(ParserExtensionInfo *info
|
|
|
59
59
|
//===--------------------------------------------------------------------===//
|
|
60
60
|
// Plan
|
|
61
61
|
//===--------------------------------------------------------------------===//
|
|
62
|
-
struct ParserExtensionPlanResult {
|
|
62
|
+
struct ParserExtensionPlanResult { // NOLINT: work-around bug in clang-tidy
|
|
63
63
|
//! The table function to execute
|
|
64
64
|
TableFunction function;
|
|
65
65
|
//! Parameters to the function
|
|
@@ -17,7 +17,7 @@ namespace duckdb {
|
|
|
17
17
|
|
|
18
18
|
class QueryErrorContext {
|
|
19
19
|
public:
|
|
20
|
-
explicit QueryErrorContext(optional_idx
|
|
20
|
+
explicit QueryErrorContext(optional_idx query_location_p = optional_idx()) : query_location(query_location_p) {
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
//! The location in which the error should be thrown
|
|
@@ -55,7 +55,7 @@ class Transformer {
|
|
|
55
55
|
|
|
56
56
|
public:
|
|
57
57
|
explicit Transformer(ParserOptions &options);
|
|
58
|
-
|
|
58
|
+
Transformer(Transformer &parent);
|
|
59
59
|
~Transformer();
|
|
60
60
|
|
|
61
61
|
//! Transforms a Postgres parse tree into a set of SQL Statements
|
|
@@ -286,10 +286,8 @@ private:
|
|
|
286
286
|
OnCreateConflict TransformOnConflict(duckdb_libpgquery::PGOnCreateConflict conflict);
|
|
287
287
|
string TransformAlias(duckdb_libpgquery::PGAlias *root, vector<string> &column_name_alias);
|
|
288
288
|
vector<string> TransformStringList(duckdb_libpgquery::PGList *list);
|
|
289
|
-
void TransformCTE(duckdb_libpgquery::PGWithClause &de_with_clause, CommonTableExpressionMap &cte_map
|
|
290
|
-
|
|
291
|
-
static unique_ptr<QueryNode> TransformMaterializedCTE(unique_ptr<QueryNode> root,
|
|
292
|
-
vector<unique_ptr<CTENode>> &materialized_ctes);
|
|
289
|
+
void TransformCTE(duckdb_libpgquery::PGWithClause &de_with_clause, CommonTableExpressionMap &cte_map);
|
|
290
|
+
static unique_ptr<QueryNode> TransformMaterializedCTE(unique_ptr<QueryNode> root);
|
|
293
291
|
unique_ptr<SelectStatement> TransformRecursiveCTE(duckdb_libpgquery::PGCommonTableExpr &node,
|
|
294
292
|
CommonTableExpressionInfo &info);
|
|
295
293
|
|
|
@@ -38,7 +38,7 @@ struct UsingColumnSet {
|
|
|
38
38
|
//! encountered during the binding process.
|
|
39
39
|
class BindContext {
|
|
40
40
|
public:
|
|
41
|
-
BindContext(Binder &binder);
|
|
41
|
+
explicit BindContext(Binder &binder);
|
|
42
42
|
|
|
43
43
|
//! Keep track of recursive CTE references
|
|
44
44
|
case_insensitive_map_t<std::shared_ptr<idx_t>> cte_references;
|
|
@@ -133,7 +133,7 @@ public:
|
|
|
133
133
|
return cte_bindings;
|
|
134
134
|
}
|
|
135
135
|
void SetCTEBindings(case_insensitive_map_t<std::shared_ptr<Binding>> bindings) {
|
|
136
|
-
cte_bindings = bindings;
|
|
136
|
+
cte_bindings = std::move(bindings);
|
|
137
137
|
}
|
|
138
138
|
|
|
139
139
|
//! Alias a set of column names for the specified table, using the original names if there are not enough aliases
|
|
@@ -37,6 +37,7 @@ class ViewCatalogEntry;
|
|
|
37
37
|
class TableMacroCatalogEntry;
|
|
38
38
|
class UpdateSetInfo;
|
|
39
39
|
class LogicalProjection;
|
|
40
|
+
class LogicalVacuum;
|
|
40
41
|
|
|
41
42
|
class ColumnList;
|
|
42
43
|
class ExternalDependency;
|
|
@@ -61,6 +62,7 @@ struct CorrelatedColumnInfo {
|
|
|
61
62
|
string name;
|
|
62
63
|
idx_t depth;
|
|
63
64
|
|
|
65
|
+
// NOLINTNEXTLINE - work-around bug in clang-tidy
|
|
64
66
|
CorrelatedColumnInfo(ColumnBinding binding, LogicalType type_p, string name_p, idx_t depth)
|
|
65
67
|
: binding(binding), type(std::move(type_p)), name(std::move(name_p)), depth(depth) {
|
|
66
68
|
}
|
|
@@ -135,8 +137,8 @@ public:
|
|
|
135
137
|
|
|
136
138
|
//! Add a common table expression to the binder
|
|
137
139
|
void AddCTE(const string &name, CommonTableExpressionInfo &cte);
|
|
138
|
-
//! Find
|
|
139
|
-
|
|
140
|
+
//! Find all candidate common table expression by name; returns empty vector if none exists
|
|
141
|
+
vector<reference<CommonTableExpressionInfo>> FindCTE(const string &name, bool skip = false);
|
|
140
142
|
|
|
141
143
|
bool CTEIsAlreadyBound(CommonTableExpressionInfo &cte);
|
|
142
144
|
|
|
@@ -162,6 +164,8 @@ public:
|
|
|
162
164
|
TableCatalogEntry &table, TableStorageInfo &storage_info);
|
|
163
165
|
void BindOnConflictClause(LogicalInsert &insert, TableCatalogEntry &table, InsertStatement &stmt);
|
|
164
166
|
|
|
167
|
+
void BindVacuumTable(LogicalVacuum &vacuum, unique_ptr<LogicalOperator> &root);
|
|
168
|
+
|
|
165
169
|
static void BindSchemaOrCatalog(ClientContext &context, string &catalog, string &schema);
|
|
166
170
|
static void BindLogicalType(ClientContext &context, LogicalType &type, optional_ptr<Catalog> catalog = nullptr,
|
|
167
171
|
const string &schema = INVALID_SCHEMA);
|
|
@@ -229,6 +233,8 @@ private:
|
|
|
229
233
|
unique_ptr<BoundTableRef> BindWithReplacementScan(ClientContext &context, const string &table_name,
|
|
230
234
|
BaseTableRef &ref);
|
|
231
235
|
|
|
236
|
+
template <class T>
|
|
237
|
+
BoundStatement BindWithCTE(T &statement);
|
|
232
238
|
BoundStatement Bind(SelectStatement &stmt);
|
|
233
239
|
BoundStatement Bind(InsertStatement &stmt);
|
|
234
240
|
BoundStatement Bind(CopyStatement &stmt);
|
|
@@ -262,6 +268,8 @@ private:
|
|
|
262
268
|
|
|
263
269
|
unique_ptr<QueryNode> BindTableMacro(FunctionExpression &function, TableMacroCatalogEntry ¯o_func, idx_t depth);
|
|
264
270
|
|
|
271
|
+
unique_ptr<BoundCTENode> BindMaterializedCTE(CommonTableExpressionMap &cte_map);
|
|
272
|
+
unique_ptr<BoundCTENode> BindCTE(CTENode &statement);
|
|
265
273
|
unique_ptr<BoundQueryNode> BindNode(SelectNode &node);
|
|
266
274
|
unique_ptr<BoundQueryNode> BindNode(SetOperationNode &node);
|
|
267
275
|
unique_ptr<BoundQueryNode> BindNode(RecursiveCTENode &node);
|
|
@@ -271,6 +279,7 @@ private:
|
|
|
271
279
|
unique_ptr<LogicalOperator> VisitQueryNode(BoundQueryNode &node, unique_ptr<LogicalOperator> root);
|
|
272
280
|
unique_ptr<LogicalOperator> CreatePlan(BoundRecursiveCTENode &node);
|
|
273
281
|
unique_ptr<LogicalOperator> CreatePlan(BoundCTENode &node);
|
|
282
|
+
unique_ptr<LogicalOperator> CreatePlan(BoundCTENode &node, unique_ptr<LogicalOperator> base);
|
|
274
283
|
unique_ptr<LogicalOperator> CreatePlan(BoundSelectNode &statement);
|
|
275
284
|
unique_ptr<LogicalOperator> CreatePlan(BoundSetOperationNode &node);
|
|
276
285
|
unique_ptr<LogicalOperator> CreatePlan(BoundQueryNode &node);
|
|
@@ -318,9 +327,9 @@ private:
|
|
|
318
327
|
BoundStatement BindCopyTo(CopyStatement &stmt);
|
|
319
328
|
BoundStatement BindCopyFrom(CopyStatement &stmt);
|
|
320
329
|
|
|
321
|
-
void
|
|
322
|
-
void
|
|
323
|
-
|
|
330
|
+
void PrepareModifiers(OrderBinder &order_binder, QueryNode &statement, BoundQueryNode &result);
|
|
331
|
+
void BindModifiers(BoundQueryNode &result, idx_t table_index, const vector<string> &names,
|
|
332
|
+
const vector<LogicalType> &sql_types, const SelectBindState &bind_state);
|
|
324
333
|
|
|
325
334
|
unique_ptr<BoundResultModifier> BindLimit(OrderBinder &order_binder, LimitModifier &limit_mod);
|
|
326
335
|
unique_ptr<BoundResultModifier> BindLimitPercent(OrderBinder &order_binder, LimitPercentModifier &limit_mod);
|
|
@@ -362,10 +371,8 @@ private:
|
|
|
362
371
|
|
|
363
372
|
unique_ptr<BoundQueryNode> BindSelectNode(SelectNode &statement, unique_ptr<BoundTableRef> from_table);
|
|
364
373
|
|
|
365
|
-
unique_ptr<LogicalOperator> BindCopyDatabaseSchema(
|
|
366
|
-
|
|
367
|
-
unique_ptr<LogicalOperator> BindCopyDatabaseData(CopyDatabaseStatement &stmt, Catalog &from_database,
|
|
368
|
-
Catalog &to_database);
|
|
374
|
+
unique_ptr<LogicalOperator> BindCopyDatabaseSchema(Catalog &source_catalog, const string &target_database_name);
|
|
375
|
+
unique_ptr<LogicalOperator> BindCopyDatabaseData(Catalog &source_catalog, const string &target_database_name);
|
|
369
376
|
|
|
370
377
|
unique_ptr<BoundTableRef> BindShowQuery(ShowRef &ref);
|
|
371
378
|
unique_ptr<BoundTableRef> BindShowTable(ShowRef &ref);
|
|
@@ -25,7 +25,7 @@ public:
|
|
|
25
25
|
static constexpr const ExpressionClass TYPE = ExpressionClass::BOUND_CASE;
|
|
26
26
|
|
|
27
27
|
public:
|
|
28
|
-
BoundCaseExpression(LogicalType type);
|
|
28
|
+
explicit BoundCaseExpression(LogicalType type);
|
|
29
29
|
BoundCaseExpression(unique_ptr<Expression> when_expr, unique_ptr<Expression> then_expr,
|
|
30
30
|
unique_ptr<Expression> else_expr);
|
|
31
31
|
|
|
@@ -18,7 +18,7 @@ public:
|
|
|
18
18
|
|
|
19
19
|
public:
|
|
20
20
|
explicit BoundDefaultExpression(LogicalType type = LogicalType())
|
|
21
|
-
: Expression(ExpressionType::VALUE_DEFAULT, ExpressionClass::BOUND_DEFAULT, type) {
|
|
21
|
+
: Expression(ExpressionType::VALUE_DEFAULT, ExpressionClass::BOUND_DEFAULT, std::move(type)) {
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
public:
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
//===----------------------------------------------------------------------===//
|
|
2
|
+
// DuckDB
|
|
3
|
+
//
|
|
4
|
+
// duckdb/planner/expression/bound_expanded_expression.hpp
|
|
5
|
+
//
|
|
6
|
+
//
|
|
7
|
+
//===----------------------------------------------------------------------===//
|
|
8
|
+
|
|
9
|
+
#pragma once
|
|
10
|
+
|
|
11
|
+
#include "duckdb/planner/expression.hpp"
|
|
12
|
+
|
|
13
|
+
namespace duckdb {
|
|
14
|
+
|
|
15
|
+
//! BoundExpression is an intermediate dummy expression used by the binder.
|
|
16
|
+
//! It holds a set of expressions that will be "expanded" in the select list of a query
|
|
17
|
+
class BoundExpandedExpression : public Expression {
|
|
18
|
+
public:
|
|
19
|
+
static constexpr const ExpressionClass TYPE = ExpressionClass::BOUND_EXPANDED;
|
|
20
|
+
|
|
21
|
+
public:
|
|
22
|
+
explicit BoundExpandedExpression(vector<unique_ptr<Expression>> expanded_expressions);
|
|
23
|
+
|
|
24
|
+
vector<unique_ptr<Expression>> expanded_expressions;
|
|
25
|
+
|
|
26
|
+
public:
|
|
27
|
+
string ToString() const override;
|
|
28
|
+
|
|
29
|
+
bool Equals(const BaseExpression &other) const override;
|
|
30
|
+
|
|
31
|
+
unique_ptr<Expression> Copy() override;
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
} // namespace duckdb
|
|
@@ -43,7 +43,7 @@ public:
|
|
|
43
43
|
if (!BaseExpression::Equals(other)) {
|
|
44
44
|
return false;
|
|
45
45
|
}
|
|
46
|
-
return return_type ==
|
|
46
|
+
return return_type == reinterpret_cast<const Expression &>(other).return_type;
|
|
47
47
|
}
|
|
48
48
|
static bool Equals(const Expression &left, const Expression &right) {
|
|
49
49
|
return left.Equals(right);
|
|
@@ -28,8 +28,6 @@ struct BoundGroupInformation {
|
|
|
28
28
|
//! functions.
|
|
29
29
|
class BaseSelectBinder : public ExpressionBinder {
|
|
30
30
|
public:
|
|
31
|
-
BaseSelectBinder(Binder &binder, ClientContext &context, BoundSelectNode &node, BoundGroupInformation &info,
|
|
32
|
-
case_insensitive_map_t<idx_t> alias_map);
|
|
33
31
|
BaseSelectBinder(Binder &binder, ClientContext &context, BoundSelectNode &node, BoundGroupInformation &info);
|
|
34
32
|
|
|
35
33
|
bool BoundAggregates() {
|
|
@@ -51,17 +49,16 @@ protected:
|
|
|
51
49
|
|
|
52
50
|
BoundSelectNode &node;
|
|
53
51
|
BoundGroupInformation &info;
|
|
54
|
-
case_insensitive_map_t<idx_t> alias_map;
|
|
55
52
|
|
|
56
53
|
protected:
|
|
57
|
-
BindResult BindColumnRef(unique_ptr<ParsedExpression> &expr_ptr, idx_t depth);
|
|
58
54
|
BindResult BindGroupingFunction(OperatorExpression &op, idx_t depth) override;
|
|
59
|
-
BindResult BindWindow(WindowExpression &expr, idx_t depth);
|
|
60
55
|
|
|
61
|
-
|
|
62
|
-
BindResult
|
|
56
|
+
//! Binds a WINDOW expression and returns the result.
|
|
57
|
+
virtual BindResult BindWindow(WindowExpression &expr, idx_t depth);
|
|
58
|
+
virtual BindResult BindColumnRef(unique_ptr<ParsedExpression> &expr_ptr, idx_t depth, bool root_expression);
|
|
63
59
|
|
|
64
|
-
|
|
60
|
+
idx_t TryBindGroup(ParsedExpression &expr);
|
|
61
|
+
BindResult BindGroup(ParsedExpression &expr, idx_t depth, idx_t group_index);
|
|
65
62
|
};
|
|
66
63
|
|
|
67
64
|
} // namespace duckdb
|
|
@@ -13,20 +13,19 @@
|
|
|
13
13
|
|
|
14
14
|
namespace duckdb {
|
|
15
15
|
|
|
16
|
-
class BoundSelectNode;
|
|
17
16
|
class ColumnRefExpression;
|
|
17
|
+
struct SelectBindState;
|
|
18
18
|
|
|
19
19
|
//! A helper binder for WhereBinder and HavingBinder which support alias as a columnref.
|
|
20
20
|
class ColumnAliasBinder {
|
|
21
21
|
public:
|
|
22
|
-
ColumnAliasBinder(
|
|
22
|
+
explicit ColumnAliasBinder(SelectBindState &bind_state);
|
|
23
23
|
|
|
24
24
|
bool BindAlias(ExpressionBinder &enclosing_binder, unique_ptr<ParsedExpression> &expr_ptr, idx_t depth,
|
|
25
25
|
bool root_expression, BindResult &result);
|
|
26
26
|
|
|
27
27
|
private:
|
|
28
|
-
|
|
29
|
-
const case_insensitive_map_t<idx_t> &alias_map;
|
|
28
|
+
SelectBindState &bind_state;
|
|
30
29
|
unordered_set<idx_t> visited_select_indexes;
|
|
31
30
|
};
|
|
32
31
|
|
|
@@ -14,12 +14,13 @@
|
|
|
14
14
|
namespace duckdb {
|
|
15
15
|
class ConstantExpression;
|
|
16
16
|
class ColumnRefExpression;
|
|
17
|
+
struct SelectBindState;
|
|
17
18
|
|
|
18
19
|
//! The GROUP binder is responsible for binding expressions in the GROUP BY clause
|
|
19
20
|
class GroupBinder : public ExpressionBinder {
|
|
20
21
|
public:
|
|
21
22
|
GroupBinder(Binder &binder, ClientContext &context, SelectNode &node, idx_t group_index,
|
|
22
|
-
|
|
23
|
+
SelectBindState &bind_state, case_insensitive_map_t<idx_t> &group_alias_map);
|
|
23
24
|
|
|
24
25
|
//! The unbound root expression
|
|
25
26
|
unique_ptr<ParsedExpression> unbound_expression;
|
|
@@ -36,7 +37,7 @@ protected:
|
|
|
36
37
|
BindResult BindConstant(ConstantExpression &expr);
|
|
37
38
|
|
|
38
39
|
SelectNode &node;
|
|
39
|
-
|
|
40
|
+
SelectBindState &bind_state;
|
|
40
41
|
case_insensitive_map_t<idx_t> &group_alias_map;
|
|
41
42
|
unordered_set<idx_t> used_aliases;
|
|
42
43
|
|
|
@@ -18,15 +18,13 @@ namespace duckdb {
|
|
|
18
18
|
class HavingBinder : public BaseSelectBinder {
|
|
19
19
|
public:
|
|
20
20
|
HavingBinder(Binder &binder, ClientContext &context, BoundSelectNode &node, BoundGroupInformation &info,
|
|
21
|
-
|
|
21
|
+
AggregateHandling aggregate_handling);
|
|
22
22
|
|
|
23
23
|
protected:
|
|
24
|
-
BindResult
|
|
25
|
-
|
|
24
|
+
BindResult BindWindow(WindowExpression &expr, idx_t depth) override;
|
|
25
|
+
BindResult BindColumnRef(unique_ptr<ParsedExpression> &expr_ptr, idx_t depth, bool root_expression) override;
|
|
26
26
|
|
|
27
27
|
private:
|
|
28
|
-
BindResult BindColumnRef(unique_ptr<ParsedExpression> &expr_ptr, idx_t depth, bool root_expression);
|
|
29
|
-
|
|
30
28
|
ColumnAliasBinder column_alias_binder;
|
|
31
29
|
AggregateHandling aggregate_handling;
|
|
32
30
|
};
|
|
@@ -17,21 +17,17 @@ namespace duckdb {
|
|
|
17
17
|
class Binder;
|
|
18
18
|
class Expression;
|
|
19
19
|
class SelectNode;
|
|
20
|
+
struct SelectBindState;
|
|
20
21
|
|
|
21
22
|
//! The ORDER binder is responsible for binding an expression within the ORDER BY clause of a SQL statement
|
|
22
23
|
class OrderBinder {
|
|
23
24
|
public:
|
|
24
|
-
OrderBinder(vector<Binder *> binders,
|
|
25
|
-
|
|
26
|
-
OrderBinder(vector<Binder *> binders, idx_t projection_index, SelectNode &node,
|
|
27
|
-
case_insensitive_map_t<idx_t> &alias_map, parsed_expression_map_t<idx_t> &projection_map);
|
|
25
|
+
OrderBinder(vector<Binder *> binders, SelectBindState &bind_state);
|
|
26
|
+
OrderBinder(vector<Binder *> binders, SelectNode &node, SelectBindState &bind_state);
|
|
28
27
|
|
|
29
28
|
public:
|
|
30
29
|
unique_ptr<Expression> Bind(unique_ptr<ParsedExpression> expr);
|
|
31
30
|
|
|
32
|
-
idx_t MaxCount() const {
|
|
33
|
-
return max_count;
|
|
34
|
-
}
|
|
35
31
|
bool HasExtraList() const {
|
|
36
32
|
return extra_list;
|
|
37
33
|
}
|
|
@@ -42,17 +38,13 @@ public:
|
|
|
42
38
|
unique_ptr<Expression> CreateExtraReference(unique_ptr<ParsedExpression> expr);
|
|
43
39
|
|
|
44
40
|
private:
|
|
45
|
-
unique_ptr<Expression> CreateProjectionReference(ParsedExpression &expr, const idx_t index
|
|
46
|
-
const LogicalType &logical_type);
|
|
41
|
+
unique_ptr<Expression> CreateProjectionReference(ParsedExpression &expr, const idx_t index);
|
|
47
42
|
unique_ptr<Expression> BindConstant(ParsedExpression &expr, const Value &val);
|
|
48
43
|
|
|
49
44
|
private:
|
|
50
45
|
vector<Binder *> binders;
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
vector<unique_ptr<ParsedExpression>> *extra_list;
|
|
54
|
-
case_insensitive_map_t<idx_t> &alias_map;
|
|
55
|
-
parsed_expression_map_t<idx_t> &projection_map;
|
|
46
|
+
optional_ptr<vector<unique_ptr<ParsedExpression>>> extra_list;
|
|
47
|
+
SelectBindState &bind_state;
|
|
56
48
|
};
|
|
57
49
|
|
|
58
50
|
} // namespace duckdb
|
|
@@ -12,20 +12,17 @@
|
|
|
12
12
|
#include "duckdb/planner/expression_binder/column_alias_binder.hpp"
|
|
13
13
|
|
|
14
14
|
namespace duckdb {
|
|
15
|
+
struct SelectBindState;
|
|
15
16
|
|
|
16
17
|
//! The QUALIFY binder is responsible for binding an expression within the QUALIFY clause of a SQL statement
|
|
17
18
|
class QualifyBinder : public BaseSelectBinder {
|
|
18
19
|
public:
|
|
19
|
-
QualifyBinder(Binder &binder, ClientContext &context, BoundSelectNode &node, BoundGroupInformation &info
|
|
20
|
-
case_insensitive_map_t<idx_t> &alias_map);
|
|
20
|
+
QualifyBinder(Binder &binder, ClientContext &context, BoundSelectNode &node, BoundGroupInformation &info);
|
|
21
21
|
|
|
22
22
|
protected:
|
|
23
|
-
BindResult
|
|
24
|
-
bool root_expression = false) override;
|
|
23
|
+
BindResult BindColumnRef(unique_ptr<ParsedExpression> &expr_ptr, idx_t depth, bool root_expression) override;
|
|
25
24
|
|
|
26
25
|
private:
|
|
27
|
-
BindResult BindColumnRef(unique_ptr<ParsedExpression> &expr_ptr, idx_t depth, bool root_expression);
|
|
28
|
-
|
|
29
26
|
ColumnAliasBinder column_alias_binder;
|
|
30
27
|
};
|
|
31
28
|
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
//===----------------------------------------------------------------------===//
|
|
2
|
+
// DuckDB
|
|
3
|
+
//
|
|
4
|
+
// duckdb/planner/expression_binder/select_bind_state.hpp
|
|
5
|
+
//
|
|
6
|
+
//
|
|
7
|
+
//===----------------------------------------------------------------------===//
|
|
8
|
+
|
|
9
|
+
#pragma once
|
|
10
|
+
|
|
11
|
+
#include "duckdb/planner/bound_query_node.hpp"
|
|
12
|
+
#include "duckdb/planner/logical_operator.hpp"
|
|
13
|
+
#include "duckdb/parser/expression_map.hpp"
|
|
14
|
+
#include "duckdb/planner/bound_tableref.hpp"
|
|
15
|
+
#include "duckdb/parser/parsed_data/sample_options.hpp"
|
|
16
|
+
#include "duckdb/parser/group_by_node.hpp"
|
|
17
|
+
|
|
18
|
+
namespace duckdb {
|
|
19
|
+
|
|
20
|
+
//! Bind state during a SelectNode
|
|
21
|
+
struct SelectBindState {
|
|
22
|
+
// Mapping of (alias -> index) and a mapping of (Expression -> index) for the SELECT list
|
|
23
|
+
case_insensitive_map_t<idx_t> alias_map;
|
|
24
|
+
parsed_expression_map_t<idx_t> projection_map;
|
|
25
|
+
//! The original unparsed expressions. This is exported after binding, because the binding might change the
|
|
26
|
+
//! expressions (e.g. when a * clause is present)
|
|
27
|
+
vector<unique_ptr<ParsedExpression>> original_expressions;
|
|
28
|
+
|
|
29
|
+
public:
|
|
30
|
+
unique_ptr<ParsedExpression> BindAlias(idx_t index);
|
|
31
|
+
|
|
32
|
+
void SetExpressionIsVolatile(idx_t index);
|
|
33
|
+
void SetExpressionHasSubquery(idx_t index);
|
|
34
|
+
|
|
35
|
+
bool AliasHasSubquery(idx_t index) const;
|
|
36
|
+
|
|
37
|
+
void AddExpandedColumn(idx_t expand_count);
|
|
38
|
+
void AddRegularColumn();
|
|
39
|
+
idx_t GetFinalIndex(idx_t index) const;
|
|
40
|
+
|
|
41
|
+
private:
|
|
42
|
+
//! The set of referenced aliases
|
|
43
|
+
unordered_set<idx_t> referenced_aliases;
|
|
44
|
+
//! The set of expressions that is volatile
|
|
45
|
+
unordered_set<idx_t> volatile_expressions;
|
|
46
|
+
//! The set of expressions that contains a subquery
|
|
47
|
+
unordered_set<idx_t> subquery_expressions;
|
|
48
|
+
//! Column indices after expansion of Expanded expressions (e.g. UNNEST(STRUCT) clauses)
|
|
49
|
+
vector<idx_t> expanded_column_indices;
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
} // namespace duckdb
|
|
@@ -15,22 +15,16 @@ namespace duckdb {
|
|
|
15
15
|
//! The SELECT binder is responsible for binding an expression within the SELECT clause of a SQL statement
|
|
16
16
|
class SelectBinder : public BaseSelectBinder {
|
|
17
17
|
public:
|
|
18
|
-
SelectBinder(Binder &binder, ClientContext &context, BoundSelectNode &node, BoundGroupInformation &info,
|
|
19
|
-
case_insensitive_map_t<idx_t> alias_map);
|
|
20
18
|
SelectBinder(Binder &binder, ClientContext &context, BoundSelectNode &node, BoundGroupInformation &info);
|
|
21
19
|
|
|
22
|
-
bool HasExpandedExpressions() {
|
|
23
|
-
return !expanded_expressions.empty();
|
|
24
|
-
}
|
|
25
|
-
vector<unique_ptr<Expression>> &ExpandedExpressions() {
|
|
26
|
-
return expanded_expressions;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
20
|
protected:
|
|
30
21
|
BindResult BindUnnest(FunctionExpression &function, idx_t depth, bool root_expression) override;
|
|
22
|
+
BindResult BindColumnRef(unique_ptr<ParsedExpression> &expr_ptr, idx_t depth, bool root_expression) override;
|
|
23
|
+
|
|
24
|
+
bool QualifyColumnAlias(const ColumnRefExpression &colref) override;
|
|
31
25
|
|
|
26
|
+
protected:
|
|
32
27
|
idx_t unnest_level = 0;
|
|
33
|
-
vector<unique_ptr<Expression>> expanded_expressions;
|
|
34
28
|
};
|
|
35
29
|
|
|
36
30
|
} // namespace duckdb
|
|
@@ -15,14 +15,17 @@ namespace duckdb {
|
|
|
15
15
|
//! The table function binder can bind standard table function parameters (i.e., non-table-in-out functions)
|
|
16
16
|
class TableFunctionBinder : public ExpressionBinder {
|
|
17
17
|
public:
|
|
18
|
-
TableFunctionBinder(Binder &binder, ClientContext &context);
|
|
18
|
+
TableFunctionBinder(Binder &binder, ClientContext &context, string table_function_name = string());
|
|
19
19
|
|
|
20
20
|
protected:
|
|
21
21
|
BindResult BindLambdaReference(LambdaRefExpression &expr, idx_t depth);
|
|
22
|
-
BindResult BindColumnReference(
|
|
22
|
+
BindResult BindColumnReference(unique_ptr<ParsedExpression> &expr, idx_t depth, bool root_expression);
|
|
23
23
|
BindResult BindExpression(unique_ptr<ParsedExpression> &expr, idx_t depth, bool root_expression = false) override;
|
|
24
24
|
|
|
25
25
|
string UnsupportedAggregateMessage() override;
|
|
26
|
+
|
|
27
|
+
private:
|
|
28
|
+
string table_function_name;
|
|
26
29
|
};
|
|
27
30
|
|
|
28
31
|
} // namespace duckdb
|