duckdb 0.7.2-dev0.0 → 0.7.2-dev1138.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 +12 -7
- package/lib/duckdb.d.ts +55 -2
- package/lib/duckdb.js +20 -1
- package/package.json +1 -1
- package/src/connection.cpp +1 -2
- package/src/database.cpp +1 -1
- package/src/duckdb/extension/icu/icu-extension.cpp +4 -0
- package/src/duckdb/extension/icu/icu-list-range.cpp +207 -0
- package/src/duckdb/extension/icu/icu-table-range.cpp +194 -0
- package/src/duckdb/extension/icu/include/icu-list-range.hpp +17 -0
- package/src/duckdb/extension/icu/include/icu-table-range.hpp +17 -0
- package/src/duckdb/extension/icu/third_party/icu/stubdata/stubdata.cpp +1 -1
- package/src/duckdb/extension/json/include/json_common.hpp +1 -0
- package/src/duckdb/extension/json/include/json_functions.hpp +2 -0
- package/src/duckdb/extension/json/include/json_serializer.hpp +77 -0
- package/src/duckdb/extension/json/json_functions/json_serialize_sql.cpp +147 -0
- package/src/duckdb/extension/json/json_functions/read_json.cpp +6 -5
- package/src/duckdb/extension/json/json_functions.cpp +12 -4
- package/src/duckdb/extension/json/json_scan.cpp +2 -2
- package/src/duckdb/extension/json/json_serializer.cpp +217 -0
- package/src/duckdb/extension/parquet/column_reader.cpp +94 -15
- package/src/duckdb/extension/parquet/column_writer.cpp +0 -1
- package/src/duckdb/extension/parquet/include/column_reader.hpp +1 -2
- package/src/duckdb/extension/parquet/include/decode_utils.hpp +5 -4
- package/src/duckdb/extension/parquet/include/generated_column_reader.hpp +1 -11
- package/src/duckdb/extension/parquet/include/parquet_timestamp.hpp +2 -1
- package/src/duckdb/extension/parquet/parquet-extension.cpp +12 -2
- package/src/duckdb/extension/parquet/parquet_reader.cpp +1 -1
- package/src/duckdb/extension/parquet/parquet_statistics.cpp +26 -32
- package/src/duckdb/extension/parquet/parquet_timestamp.cpp +16 -6
- package/src/duckdb/src/catalog/catalog.cpp +34 -5
- package/src/duckdb/src/catalog/catalog_entry/duck_schema_entry.cpp +4 -0
- package/src/duckdb/src/catalog/catalog_entry/duck_table_entry.cpp +2 -21
- package/src/duckdb/src/catalog/catalog_entry/scalar_function_catalog_entry.cpp +7 -6
- package/src/duckdb/src/catalog/catalog_entry/table_catalog_entry.cpp +3 -3
- package/src/duckdb/src/catalog/catalog_entry/table_function_catalog_entry.cpp +20 -1
- package/src/duckdb/src/catalog/catalog_entry/type_catalog_entry.cpp +8 -2
- package/src/duckdb/src/catalog/catalog_set.cpp +1 -0
- package/src/duckdb/src/catalog/default/default_functions.cpp +3 -0
- package/src/duckdb/src/catalog/dependency_list.cpp +12 -0
- package/src/duckdb/src/catalog/duck_catalog.cpp +34 -7
- package/src/duckdb/src/common/arrow/arrow_appender.cpp +48 -4
- package/src/duckdb/src/common/arrow/arrow_converter.cpp +1 -1
- package/src/duckdb/src/common/box_renderer.cpp +109 -23
- package/src/duckdb/src/common/enums/expression_type.cpp +8 -222
- package/src/duckdb/src/common/enums/join_type.cpp +3 -22
- package/src/duckdb/src/common/enums/logical_operator_type.cpp +2 -0
- package/src/duckdb/src/common/enums/statement_type.cpp +2 -0
- package/src/duckdb/src/common/exception.cpp +15 -1
- package/src/duckdb/src/common/field_writer.cpp +1 -0
- package/src/duckdb/src/common/hive_partitioning.cpp +3 -1
- package/src/duckdb/src/common/operator/cast_operators.cpp +1 -1
- package/src/duckdb/src/common/preserved_error.cpp +7 -5
- package/src/duckdb/src/common/progress_bar/progress_bar.cpp +7 -0
- package/src/duckdb/src/common/serializer/buffered_deserializer.cpp +4 -0
- package/src/duckdb/src/common/serializer/buffered_file_reader.cpp +15 -2
- package/src/duckdb/src/common/serializer/enum_serializer.cpp +1176 -0
- package/src/duckdb/src/common/sort/comparators.cpp +14 -5
- package/src/duckdb/src/common/sort/sort_state.cpp +5 -7
- package/src/duckdb/src/common/sort/sorted_block.cpp +0 -1
- package/src/duckdb/src/common/string_util.cpp +4 -1
- package/src/duckdb/src/common/types/bit.cpp +166 -87
- package/src/duckdb/src/common/types/blob.cpp +1 -1
- package/src/duckdb/src/common/types/chunk_collection.cpp +2 -2
- package/src/duckdb/src/common/types/column_data_collection.cpp +39 -2
- package/src/duckdb/src/common/types/column_data_collection_segment.cpp +11 -6
- package/src/duckdb/src/common/types/data_chunk.cpp +1 -1
- package/src/duckdb/src/common/types/interval.cpp +0 -41
- package/src/duckdb/src/common/types/list_segment.cpp +658 -0
- package/src/duckdb/src/common/types/string_heap.cpp +1 -1
- package/src/duckdb/src/common/types/string_type.cpp +1 -1
- package/src/duckdb/src/common/types/time.cpp +13 -0
- package/src/duckdb/src/common/types/value.cpp +320 -154
- package/src/duckdb/src/common/types/vector.cpp +156 -128
- package/src/duckdb/src/common/types.cpp +313 -153
- package/src/duckdb/src/common/value_operations/comparison_operations.cpp +14 -22
- package/src/duckdb/src/common/vector_operations/comparison_operators.cpp +10 -10
- package/src/duckdb/src/common/vector_operations/is_distinct_from.cpp +11 -10
- package/src/duckdb/src/common/vector_operations/vector_cast.cpp +2 -1
- package/src/duckdb/src/execution/aggregate_hashtable.cpp +10 -5
- package/src/duckdb/src/execution/column_binding_resolver.cpp +21 -5
- package/src/duckdb/src/execution/expression_executor/execute_cast.cpp +2 -1
- package/src/duckdb/src/execution/expression_executor/execute_comparison.cpp +2 -2
- package/src/duckdb/src/execution/index/art/art.cpp +19 -5
- package/src/duckdb/src/execution/operator/aggregate/physical_hash_aggregate.cpp +1 -1
- package/src/duckdb/src/execution/operator/aggregate/physical_perfecthash_aggregate.cpp +4 -5
- package/src/duckdb/src/execution/operator/aggregate/physical_window.cpp +117 -26
- package/src/duckdb/src/execution/operator/helper/physical_limit.cpp +3 -0
- package/src/duckdb/src/execution/operator/helper/physical_vacuum.cpp +5 -3
- package/src/duckdb/src/execution/operator/join/physical_blockwise_nl_join.cpp +64 -17
- package/src/duckdb/src/execution/operator/join/physical_hash_join.cpp +2 -0
- package/src/duckdb/src/execution/operator/join/physical_iejoin.cpp +2 -2
- package/src/duckdb/src/execution/operator/join/physical_index_join.cpp +13 -4
- package/src/duckdb/src/execution/operator/join/physical_join.cpp +0 -3
- package/src/duckdb/src/execution/operator/join/physical_piecewise_merge_join.cpp +6 -11
- package/src/duckdb/src/execution/operator/join/physical_range_join.cpp +3 -1
- package/src/duckdb/src/execution/operator/persistent/base_csv_reader.cpp +11 -4
- package/src/duckdb/src/execution/operator/persistent/buffered_csv_reader.cpp +24 -19
- package/src/duckdb/src/execution/operator/persistent/csv_reader_options.cpp +3 -0
- package/src/duckdb/src/execution/operator/persistent/physical_batch_insert.cpp +2 -1
- package/src/duckdb/src/execution/operator/persistent/physical_copy_to_file.cpp +2 -2
- package/src/duckdb/src/execution/operator/persistent/physical_delete.cpp +1 -3
- package/src/duckdb/src/execution/operator/persistent/physical_insert.cpp +1 -0
- package/src/duckdb/src/execution/operator/projection/physical_projection.cpp +34 -0
- package/src/duckdb/src/execution/operator/scan/physical_positional_scan.cpp +20 -5
- package/src/duckdb/src/execution/operator/schema/physical_create_type.cpp +20 -40
- package/src/duckdb/src/execution/operator/set/physical_recursive_cte.cpp +0 -4
- package/src/duckdb/src/execution/partitionable_hashtable.cpp +14 -2
- package/src/duckdb/src/execution/physical_plan/plan_aggregate.cpp +22 -16
- package/src/duckdb/src/execution/physical_plan/plan_asof_join.cpp +97 -0
- package/src/duckdb/src/execution/physical_plan/plan_comparison_join.cpp +95 -47
- package/src/duckdb/src/execution/physical_plan/plan_create_index.cpp +2 -1
- package/src/duckdb/src/execution/physical_plan/plan_distinct.cpp +5 -8
- package/src/duckdb/src/execution/physical_plan/plan_positional_join.cpp +14 -5
- package/src/duckdb/src/execution/physical_plan_generator.cpp +3 -0
- package/src/duckdb/src/execution/radix_partitioned_hashtable.cpp +1 -0
- package/src/duckdb/src/execution/window_segment_tree.cpp +173 -1
- package/src/duckdb/src/function/aggregate/algebraic/avg.cpp +0 -6
- package/src/duckdb/src/function/aggregate/distributive/bitagg.cpp +99 -95
- package/src/duckdb/src/function/aggregate/distributive/bitstring_agg.cpp +269 -0
- package/src/duckdb/src/function/aggregate/distributive/bool.cpp +2 -0
- package/src/duckdb/src/function/aggregate/distributive/count.cpp +3 -4
- package/src/duckdb/src/function/aggregate/distributive/first.cpp +1 -0
- package/src/duckdb/src/function/aggregate/distributive/minmax.cpp +2 -0
- package/src/duckdb/src/function/aggregate/distributive/sum.cpp +19 -16
- package/src/duckdb/src/function/aggregate/distributive_functions.cpp +1 -0
- package/src/duckdb/src/function/aggregate/holistic/approximate_quantile.cpp +5 -2
- package/src/duckdb/src/function/aggregate/holistic/mode.cpp +1 -1
- package/src/duckdb/src/function/aggregate/holistic/quantile.cpp +16 -1
- package/src/duckdb/src/function/aggregate/nested/list.cpp +6 -712
- package/src/duckdb/src/function/aggregate/sorted_aggregate_function.cpp +58 -16
- package/src/duckdb/src/function/cast/bit_cast.cpp +0 -2
- package/src/duckdb/src/function/cast/blob_cast.cpp +0 -1
- package/src/duckdb/src/function/cast/cast_function_set.cpp +1 -1
- package/src/duckdb/src/function/cast/enum_casts.cpp +25 -3
- package/src/duckdb/src/function/cast/list_casts.cpp +17 -4
- package/src/duckdb/src/function/cast/map_cast.cpp +5 -2
- package/src/duckdb/src/function/cast/string_cast.cpp +36 -10
- package/src/duckdb/src/function/cast/struct_cast.cpp +24 -4
- package/src/duckdb/src/function/cast/time_casts.cpp +2 -2
- package/src/duckdb/src/function/cast/union_casts.cpp +33 -7
- package/src/duckdb/src/function/function_binder.cpp +1 -8
- package/src/duckdb/src/function/scalar/bit/bitstring.cpp +100 -0
- package/src/duckdb/src/function/scalar/date/current.cpp +0 -2
- package/src/duckdb/src/function/scalar/date/date_diff.cpp +0 -1
- package/src/duckdb/src/function/scalar/date/date_part.cpp +18 -26
- package/src/duckdb/src/function/scalar/date/date_sub.cpp +0 -1
- package/src/duckdb/src/function/scalar/date/date_trunc.cpp +10 -14
- package/src/duckdb/src/function/scalar/generic/stats.cpp +2 -4
- package/src/duckdb/src/function/scalar/list/contains_or_position.cpp +4 -146
- package/src/duckdb/src/function/scalar/list/flatten.cpp +5 -12
- package/src/duckdb/src/function/scalar/list/list_aggregates.cpp +1 -1
- package/src/duckdb/src/function/scalar/list/list_concat.cpp +8 -12
- package/src/duckdb/src/function/scalar/list/list_extract.cpp +5 -12
- package/src/duckdb/src/function/scalar/list/list_lambdas.cpp +7 -3
- package/src/duckdb/src/function/scalar/list/list_sort.cpp +25 -18
- package/src/duckdb/src/function/scalar/list/list_value.cpp +6 -10
- package/src/duckdb/src/function/scalar/map/map.cpp +47 -1
- package/src/duckdb/src/function/scalar/map/map_entries.cpp +61 -0
- package/src/duckdb/src/function/scalar/map/map_extract.cpp +68 -26
- package/src/duckdb/src/function/scalar/map/map_keys_values.cpp +97 -0
- package/src/duckdb/src/function/scalar/math/numeric.cpp +101 -17
- package/src/duckdb/src/function/scalar/math_functions.cpp +3 -0
- package/src/duckdb/src/function/scalar/nested_functions.cpp +3 -0
- package/src/duckdb/src/function/scalar/operators/add.cpp +0 -9
- package/src/duckdb/src/function/scalar/operators/arithmetic.cpp +29 -48
- package/src/duckdb/src/function/scalar/operators/bitwise.cpp +0 -63
- package/src/duckdb/src/function/scalar/operators/multiply.cpp +5 -6
- package/src/duckdb/src/function/scalar/operators/subtract.cpp +0 -6
- package/src/duckdb/src/function/scalar/string/caseconvert.cpp +2 -6
- package/src/duckdb/src/function/scalar/string/hex.cpp +201 -0
- package/src/duckdb/src/function/scalar/string/instr.cpp +2 -6
- package/src/duckdb/src/function/scalar/string/length.cpp +2 -6
- package/src/duckdb/src/function/scalar/string/like.cpp +2 -6
- package/src/duckdb/src/function/scalar/string/regexp/regexp_extract_all.cpp +243 -0
- package/src/duckdb/src/function/scalar/string/regexp/regexp_util.cpp +79 -0
- package/src/duckdb/src/function/scalar/string/regexp.cpp +21 -80
- package/src/duckdb/src/function/scalar/string/substring.cpp +2 -6
- package/src/duckdb/src/function/scalar/string_functions.cpp +2 -0
- package/src/duckdb/src/function/scalar/struct/struct_extract.cpp +5 -10
- package/src/duckdb/src/function/scalar/struct/struct_insert.cpp +11 -14
- package/src/duckdb/src/function/scalar/struct/struct_pack.cpp +6 -7
- package/src/duckdb/src/function/table/arrow.cpp +5 -2
- package/src/duckdb/src/function/table/arrow_conversion.cpp +25 -1
- package/src/duckdb/src/function/table/checkpoint.cpp +5 -1
- package/src/duckdb/src/function/table/read_csv.cpp +60 -0
- package/src/duckdb/src/function/table/system/duckdb_constraints.cpp +2 -2
- package/src/duckdb/src/function/table/system/test_all_types.cpp +2 -2
- package/src/duckdb/src/function/table/table_scan.cpp +9 -12
- package/src/duckdb/src/function/table/version/pragma_version.cpp +2 -2
- package/src/duckdb/src/function/table_function.cpp +30 -11
- package/src/duckdb/src/include/duckdb/catalog/catalog.hpp +6 -0
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/duck_table_entry.hpp +1 -1
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/table_function_catalog_entry.hpp +6 -8
- package/src/duckdb/src/include/duckdb/catalog/dependency_list.hpp +3 -0
- package/src/duckdb/src/include/duckdb/catalog/duck_catalog.hpp +2 -1
- package/src/duckdb/src/include/duckdb/common/box_renderer.hpp +8 -2
- package/src/duckdb/src/include/duckdb/common/constants.hpp +0 -19
- package/src/duckdb/src/include/duckdb/common/enums/aggregate_handling.hpp +2 -0
- package/src/duckdb/src/include/duckdb/common/enums/expression_type.hpp +2 -3
- package/src/duckdb/src/include/duckdb/common/enums/joinref_type.hpp +7 -4
- package/src/duckdb/src/include/duckdb/common/enums/logical_operator_type.hpp +1 -0
- package/src/duckdb/src/include/duckdb/common/enums/order_type.hpp +2 -0
- package/src/duckdb/src/include/duckdb/common/enums/set_operation_type.hpp +2 -1
- package/src/duckdb/src/include/duckdb/common/enums/statement_type.hpp +2 -1
- package/src/duckdb/src/include/duckdb/common/enums/tableref_type.hpp +2 -1
- package/src/duckdb/src/include/duckdb/common/exception.hpp +69 -2
- package/src/duckdb/src/include/duckdb/common/field_writer.hpp +12 -4
- package/src/duckdb/src/include/duckdb/common/helper.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/{http_stats.hpp → http_state.hpp} +18 -4
- package/src/duckdb/src/include/duckdb/common/operator/comparison_operators.hpp +45 -149
- package/src/duckdb/src/include/duckdb/common/operator/multiply.hpp +2 -0
- package/src/duckdb/src/include/duckdb/common/optional_ptr.hpp +45 -0
- package/src/duckdb/src/include/duckdb/common/preserved_error.hpp +6 -1
- package/src/duckdb/src/include/duckdb/common/progress_bar/progress_bar.hpp +2 -0
- package/src/duckdb/src/include/duckdb/common/serializer/buffered_deserializer.hpp +4 -2
- package/src/duckdb/src/include/duckdb/common/serializer/buffered_file_reader.hpp +8 -2
- package/src/duckdb/src/include/duckdb/common/serializer/enum_serializer.hpp +113 -0
- package/src/duckdb/src/include/duckdb/common/serializer/format_deserializer.hpp +336 -0
- package/src/duckdb/src/include/duckdb/common/serializer/format_serializer.hpp +268 -0
- package/src/duckdb/src/include/duckdb/common/serializer/serialization_traits.hpp +126 -0
- package/src/duckdb/src/include/duckdb/common/serializer.hpp +13 -0
- package/src/duckdb/src/include/duckdb/common/string_util.hpp +25 -0
- package/src/duckdb/src/include/duckdb/common/types/bit.hpp +12 -7
- package/src/duckdb/src/include/duckdb/common/types/interval.hpp +39 -3
- package/src/duckdb/src/include/duckdb/common/types/list_segment.hpp +70 -0
- package/src/duckdb/src/include/duckdb/common/types/string_type.hpp +73 -3
- package/src/duckdb/src/include/duckdb/common/types/time.hpp +3 -0
- package/src/duckdb/src/include/duckdb/common/types/value.hpp +17 -48
- package/src/duckdb/src/include/duckdb/common/types/value_map.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/types/vector.hpp +3 -1
- package/src/duckdb/src/include/duckdb/common/types.hpp +45 -8
- package/src/duckdb/src/include/duckdb/common/vector_operations/unary_executor.hpp +2 -2
- package/src/duckdb/src/include/duckdb/execution/aggregate_hashtable.hpp +1 -0
- package/src/duckdb/src/include/duckdb/execution/index/art/art.hpp +3 -14
- package/src/duckdb/src/include/duckdb/execution/operator/aggregate/physical_perfecthash_aggregate.hpp +1 -1
- package/src/duckdb/src/include/duckdb/execution/operator/join/physical_cross_product.hpp +2 -0
- package/src/duckdb/src/include/duckdb/execution/operator/persistent/csv_file_handle.hpp +1 -0
- package/src/duckdb/src/include/duckdb/execution/operator/persistent/csv_reader_options.hpp +10 -0
- package/src/duckdb/src/include/duckdb/execution/operator/projection/physical_projection.hpp +5 -0
- package/src/duckdb/src/include/duckdb/execution/partitionable_hashtable.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/physical_plan_generator.hpp +1 -3
- package/src/duckdb/src/include/duckdb/execution/window_segment_tree.hpp +54 -0
- package/src/duckdb/src/include/duckdb/function/aggregate/distributive_functions.hpp +5 -0
- package/src/duckdb/src/include/duckdb/function/aggregate_function.hpp +18 -6
- package/src/duckdb/src/include/duckdb/function/cast/bound_cast_data.hpp +84 -0
- package/src/duckdb/src/include/duckdb/function/cast/cast_function_set.hpp +2 -2
- package/src/duckdb/src/include/duckdb/function/cast/default_casts.hpp +28 -64
- package/src/duckdb/src/include/duckdb/function/function_binder.hpp +3 -6
- package/src/duckdb/src/include/duckdb/function/scalar/bit_functions.hpp +4 -0
- package/src/duckdb/src/include/duckdb/function/scalar/list/contains_or_position.hpp +138 -0
- package/src/duckdb/src/include/duckdb/function/scalar/math_functions.hpp +8 -0
- package/src/duckdb/src/include/duckdb/function/scalar/nested_functions.hpp +59 -0
- package/src/duckdb/src/include/duckdb/function/scalar/regexp.hpp +81 -1
- package/src/duckdb/src/include/duckdb/function/scalar/string_functions.hpp +4 -0
- package/src/duckdb/src/include/duckdb/function/scalar_function.hpp +2 -2
- package/src/duckdb/src/include/duckdb/function/table/arrow.hpp +12 -1
- package/src/duckdb/src/include/duckdb/function/table_function.hpp +10 -0
- package/src/duckdb/src/include/duckdb/main/capi/capi_internal.hpp +2 -0
- package/src/duckdb/src/include/duckdb/main/client_config.hpp +2 -0
- package/src/duckdb/src/include/duckdb/main/client_data.hpp +3 -3
- package/src/duckdb/src/include/duckdb/main/config.hpp +3 -0
- package/src/duckdb/src/include/duckdb/main/connection_manager.hpp +2 -0
- package/src/duckdb/src/include/duckdb/main/database.hpp +1 -0
- package/src/duckdb/src/include/duckdb/main/extension_entries.hpp +2 -0
- package/src/duckdb/src/include/duckdb/main/prepared_statement.hpp +2 -0
- package/src/duckdb/src/include/duckdb/main/relation/explain_relation.hpp +2 -1
- package/src/duckdb/src/include/duckdb/main/relation.hpp +2 -1
- package/src/duckdb/src/include/duckdb/optimizer/filter_pushdown.hpp +2 -0
- package/src/duckdb/src/include/duckdb/optimizer/join_order/cardinality_estimator.hpp +2 -2
- package/src/duckdb/src/include/duckdb/optimizer/rule/list.hpp +1 -0
- package/src/duckdb/src/include/duckdb/optimizer/rule/ordered_aggregate_optimizer.hpp +24 -0
- package/src/duckdb/src/include/duckdb/parser/common_table_expression_info.hpp +4 -0
- package/src/duckdb/src/include/duckdb/parser/expression/between_expression.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/expression/bound_expression.hpp +2 -0
- package/src/duckdb/src/include/duckdb/parser/expression/case_expression.hpp +5 -0
- package/src/duckdb/src/include/duckdb/parser/expression/cast_expression.hpp +2 -0
- package/src/duckdb/src/include/duckdb/parser/expression/collate_expression.hpp +2 -0
- package/src/duckdb/src/include/duckdb/parser/expression/columnref_expression.hpp +2 -0
- package/src/duckdb/src/include/duckdb/parser/expression/comparison_expression.hpp +2 -0
- package/src/duckdb/src/include/duckdb/parser/expression/conjunction_expression.hpp +2 -0
- package/src/duckdb/src/include/duckdb/parser/expression/constant_expression.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/expression/default_expression.hpp +1 -0
- package/src/duckdb/src/include/duckdb/parser/expression/function_expression.hpp +4 -2
- package/src/duckdb/src/include/duckdb/parser/expression/lambda_expression.hpp +2 -0
- package/src/duckdb/src/include/duckdb/parser/expression/operator_expression.hpp +2 -0
- package/src/duckdb/src/include/duckdb/parser/expression/parameter_expression.hpp +2 -0
- package/src/duckdb/src/include/duckdb/parser/expression/positional_reference_expression.hpp +2 -0
- package/src/duckdb/src/include/duckdb/parser/expression/star_expression.hpp +4 -2
- package/src/duckdb/src/include/duckdb/parser/expression/subquery_expression.hpp +2 -0
- package/src/duckdb/src/include/duckdb/parser/expression/window_expression.hpp +5 -0
- package/src/duckdb/src/include/duckdb/parser/parsed_data/alter_info.hpp +5 -1
- package/src/duckdb/src/include/duckdb/parser/parsed_data/{alter_function_info.hpp → alter_scalar_function_info.hpp} +13 -13
- package/src/duckdb/src/include/duckdb/parser/parsed_data/alter_table_function_info.hpp +47 -0
- package/src/duckdb/src/include/duckdb/parser/parsed_data/alter_table_info.hpp +6 -0
- package/src/duckdb/src/include/duckdb/parser/parsed_data/create_table_function_info.hpp +2 -1
- package/src/duckdb/src/include/duckdb/parser/parsed_data/sample_options.hpp +2 -0
- package/src/duckdb/src/include/duckdb/parser/parsed_expression.hpp +5 -0
- package/src/duckdb/src/include/duckdb/parser/query_node/recursive_cte_node.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/query_node/select_node.hpp +5 -0
- package/src/duckdb/src/include/duckdb/parser/query_node/set_operation_node.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/query_node.hpp +13 -2
- package/src/duckdb/src/include/duckdb/parser/result_modifier.hpp +24 -1
- package/src/duckdb/src/include/duckdb/parser/sql_statement.hpp +2 -1
- package/src/duckdb/src/include/duckdb/parser/statement/multi_statement.hpp +28 -0
- package/src/duckdb/src/include/duckdb/parser/statement/select_statement.hpp +6 -1
- package/src/duckdb/src/include/duckdb/parser/tableref/basetableref.hpp +4 -0
- package/src/duckdb/src/include/duckdb/parser/tableref/emptytableref.hpp +2 -0
- package/src/duckdb/src/include/duckdb/parser/tableref/expressionlistref.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/tableref/joinref.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/tableref/list.hpp +1 -0
- package/src/duckdb/src/include/duckdb/parser/tableref/pivotref.hpp +87 -0
- package/src/duckdb/src/include/duckdb/parser/tableref/subqueryref.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/tableref/table_function_ref.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/tableref.hpp +3 -1
- package/src/duckdb/src/include/duckdb/parser/tokens.hpp +2 -0
- package/src/duckdb/src/include/duckdb/parser/transformer.hpp +33 -0
- package/src/duckdb/src/include/duckdb/planner/bind_context.hpp +2 -0
- package/src/duckdb/src/include/duckdb/planner/binder.hpp +15 -4
- package/src/duckdb/src/include/duckdb/planner/bound_result_modifier.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/expression/bound_aggregate_expression.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/expression_binder/base_select_binder.hpp +64 -0
- package/src/duckdb/src/include/duckdb/planner/expression_binder/having_binder.hpp +2 -2
- package/src/duckdb/src/include/duckdb/planner/expression_binder/order_binder.hpp +4 -1
- package/src/duckdb/src/include/duckdb/planner/expression_binder/qualify_binder.hpp +2 -2
- package/src/duckdb/src/include/duckdb/planner/expression_binder/select_binder.hpp +9 -38
- package/src/duckdb/src/include/duckdb/planner/expression_binder.hpp +1 -1
- 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_asof_join.hpp +22 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_comparison_join.hpp +5 -2
- package/src/duckdb/src/include/duckdb/planner/operator/logical_distinct.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/query_node/bound_select_node.hpp +8 -2
- package/src/duckdb/src/include/duckdb/storage/buffer/block_handle.hpp +2 -0
- package/src/duckdb/src/include/duckdb/storage/buffer_manager.hpp +76 -44
- package/src/duckdb/src/include/duckdb/storage/checkpoint/table_data_writer.hpp +3 -2
- package/src/duckdb/src/include/duckdb/storage/checkpoint_manager.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/compression/chimp/chimp_compress.hpp +2 -2
- 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 +2 -1
- package/src/duckdb/src/include/duckdb/storage/compression/patas/patas_compress.hpp +2 -2
- 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 +2 -1
- package/src/duckdb/src/include/duckdb/storage/data_pointer.hpp +4 -3
- package/src/duckdb/src/include/duckdb/storage/data_table.hpp +4 -3
- package/src/duckdb/src/include/duckdb/storage/index.hpp +5 -4
- package/src/duckdb/src/include/duckdb/storage/meta_block_reader.hpp +7 -0
- package/src/duckdb/src/include/duckdb/storage/statistics/base_statistics.hpp +93 -29
- package/src/duckdb/src/include/duckdb/storage/statistics/column_statistics.hpp +22 -3
- package/src/duckdb/src/include/duckdb/storage/statistics/distinct_statistics.hpp +8 -6
- package/src/duckdb/src/include/duckdb/storage/statistics/list_stats.hpp +41 -0
- package/src/duckdb/src/include/duckdb/storage/statistics/node_statistics.hpp +26 -0
- package/src/duckdb/src/include/duckdb/storage/statistics/numeric_stats.hpp +114 -0
- package/src/duckdb/src/include/duckdb/storage/statistics/numeric_stats_union.hpp +62 -0
- package/src/duckdb/src/include/duckdb/storage/statistics/segment_statistics.hpp +2 -7
- package/src/duckdb/src/include/duckdb/storage/statistics/string_stats.hpp +74 -0
- package/src/duckdb/src/include/duckdb/storage/statistics/struct_stats.hpp +42 -0
- package/src/duckdb/src/include/duckdb/storage/string_uncompressed.hpp +2 -3
- package/src/duckdb/src/include/duckdb/storage/table/column_checkpoint_state.hpp +2 -1
- package/src/duckdb/src/include/duckdb/storage/table/column_data.hpp +21 -7
- package/src/duckdb/src/include/duckdb/storage/table/column_data_checkpointer.hpp +3 -2
- package/src/duckdb/src/include/duckdb/storage/table/column_segment.hpp +5 -6
- package/src/duckdb/src/include/duckdb/storage/table/column_segment_tree.hpp +18 -0
- package/src/duckdb/src/include/duckdb/storage/table/list_column_data.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/table/persistent_table_data.hpp +6 -3
- package/src/duckdb/src/include/duckdb/storage/table/row_group.hpp +41 -45
- package/src/duckdb/src/include/duckdb/storage/table/row_group_collection.hpp +23 -7
- package/src/duckdb/src/include/duckdb/storage/table/row_group_segment_tree.hpp +35 -0
- package/src/duckdb/src/include/duckdb/storage/table/scan_state.hpp +21 -29
- package/src/duckdb/src/include/duckdb/storage/table/segment_base.hpp +6 -6
- package/src/duckdb/src/include/duckdb/storage/table/segment_tree.hpp +281 -26
- package/src/duckdb/src/include/duckdb/storage/table/standard_column_data.hpp +0 -4
- package/src/duckdb/src/include/duckdb/storage/table/table_statistics.hpp +5 -0
- package/src/duckdb/src/include/duckdb/storage/table/update_segment.hpp +0 -1
- package/src/duckdb/src/include/duckdb/storage/write_ahead_log.hpp +1 -1
- package/src/duckdb/src/include/duckdb/transaction/local_storage.hpp +6 -3
- package/src/duckdb/src/include/duckdb.h +71 -2
- package/src/duckdb/src/include/duckdb.hpp +0 -1
- package/src/duckdb/src/main/capi/pending-c.cpp +16 -3
- package/src/duckdb/src/main/capi/result-c.cpp +27 -1
- package/src/duckdb/src/main/capi/stream-c.cpp +25 -0
- package/src/duckdb/src/main/capi/table_function-c.cpp +23 -0
- package/src/duckdb/src/main/client_context.cpp +38 -34
- package/src/duckdb/src/main/client_data.cpp +7 -6
- package/src/duckdb/src/main/config.cpp +70 -1
- package/src/duckdb/src/main/database.cpp +19 -2
- package/src/duckdb/src/main/extension/extension_install.cpp +7 -2
- package/src/duckdb/src/main/prepared_statement.cpp +4 -0
- package/src/duckdb/src/main/query_profiler.cpp +17 -15
- package/src/duckdb/src/main/relation/explain_relation.cpp +3 -3
- package/src/duckdb/src/main/relation.cpp +3 -2
- package/src/duckdb/src/main/settings/settings.cpp +20 -8
- package/src/duckdb/src/optimizer/column_lifetime_analyzer.cpp +1 -0
- package/src/duckdb/src/optimizer/deliminator.cpp +1 -1
- package/src/duckdb/src/optimizer/filter_combiner.cpp +3 -6
- package/src/duckdb/src/optimizer/filter_pullup.cpp +3 -1
- package/src/duckdb/src/optimizer/filter_pushdown.cpp +14 -8
- package/src/duckdb/src/optimizer/join_order/cardinality_estimator.cpp +107 -71
- package/src/duckdb/src/optimizer/join_order/join_order_optimizer.cpp +32 -12
- package/src/duckdb/src/optimizer/optimizer.cpp +1 -0
- package/src/duckdb/src/optimizer/pullup/pullup_from_left.cpp +2 -2
- package/src/duckdb/src/optimizer/pushdown/pushdown_aggregate.cpp +33 -5
- package/src/duckdb/src/optimizer/pushdown/pushdown_cross_product.cpp +1 -1
- package/src/duckdb/src/optimizer/pushdown/pushdown_inner_join.cpp +3 -0
- package/src/duckdb/src/optimizer/pushdown/pushdown_left_join.cpp +5 -12
- package/src/duckdb/src/optimizer/pushdown/pushdown_mark_join.cpp +2 -2
- package/src/duckdb/src/optimizer/pushdown/pushdown_single_join.cpp +1 -1
- package/src/duckdb/src/optimizer/remove_unused_columns.cpp +1 -0
- package/src/duckdb/src/optimizer/rule/move_constants.cpp +10 -4
- package/src/duckdb/src/optimizer/rule/ordered_aggregate_optimizer.cpp +30 -0
- package/src/duckdb/src/optimizer/rule/regex_optimizations.cpp +9 -2
- package/src/duckdb/src/optimizer/statistics/expression/propagate_aggregate.cpp +9 -3
- package/src/duckdb/src/optimizer/statistics/expression/propagate_and_compress.cpp +6 -7
- package/src/duckdb/src/optimizer/statistics/expression/propagate_cast.cpp +14 -11
- package/src/duckdb/src/optimizer/statistics/expression/propagate_columnref.cpp +1 -1
- package/src/duckdb/src/optimizer/statistics/expression/propagate_comparison.cpp +13 -15
- package/src/duckdb/src/optimizer/statistics/expression/propagate_conjunction.cpp +0 -1
- package/src/duckdb/src/optimizer/statistics/expression/propagate_constant.cpp +3 -75
- package/src/duckdb/src/optimizer/statistics/expression/propagate_function.cpp +7 -2
- package/src/duckdb/src/optimizer/statistics/expression/propagate_operator.cpp +10 -0
- package/src/duckdb/src/optimizer/statistics/operator/propagate_aggregate.cpp +2 -3
- package/src/duckdb/src/optimizer/statistics/operator/propagate_filter.cpp +29 -32
- package/src/duckdb/src/optimizer/statistics/operator/propagate_join.cpp +5 -5
- package/src/duckdb/src/optimizer/statistics/operator/propagate_set_operation.cpp +3 -3
- package/src/duckdb/src/optimizer/statistics_propagator.cpp +2 -1
- package/src/duckdb/src/optimizer/unnest_rewriter.cpp +2 -2
- package/src/duckdb/src/parallel/meta_pipeline.cpp +0 -7
- package/src/duckdb/src/parser/common_table_expression_info.cpp +19 -0
- package/src/duckdb/src/parser/expression/between_expression.cpp +17 -0
- package/src/duckdb/src/parser/expression/case_expression.cpp +28 -0
- package/src/duckdb/src/parser/expression/cast_expression.cpp +17 -0
- package/src/duckdb/src/parser/expression/collate_expression.cpp +16 -0
- package/src/duckdb/src/parser/expression/columnref_expression.cpp +15 -0
- package/src/duckdb/src/parser/expression/comparison_expression.cpp +16 -0
- package/src/duckdb/src/parser/expression/conjunction_expression.cpp +17 -0
- package/src/duckdb/src/parser/expression/constant_expression.cpp +14 -0
- package/src/duckdb/src/parser/expression/default_expression.cpp +7 -0
- package/src/duckdb/src/parser/expression/function_expression.cpp +35 -0
- package/src/duckdb/src/parser/expression/lambda_expression.cpp +16 -0
- package/src/duckdb/src/parser/expression/operator_expression.cpp +15 -0
- package/src/duckdb/src/parser/expression/parameter_expression.cpp +15 -0
- package/src/duckdb/src/parser/expression/positional_reference_expression.cpp +14 -0
- package/src/duckdb/src/parser/expression/star_expression.cpp +26 -6
- package/src/duckdb/src/parser/expression/subquery_expression.cpp +20 -0
- package/src/duckdb/src/parser/expression/window_expression.cpp +43 -0
- package/src/duckdb/src/parser/parsed_data/alter_info.cpp +7 -3
- package/src/duckdb/src/parser/parsed_data/alter_scalar_function_info.cpp +56 -0
- package/src/duckdb/src/parser/parsed_data/alter_table_function_info.cpp +51 -0
- package/src/duckdb/src/parser/parsed_data/create_scalar_function_info.cpp +3 -2
- package/src/duckdb/src/parser/parsed_data/create_table_function_info.cpp +6 -0
- package/src/duckdb/src/parser/parsed_data/sample_options.cpp +22 -10
- package/src/duckdb/src/parser/parsed_expression.cpp +72 -0
- package/src/duckdb/src/parser/parsed_expression_iterator.cpp +15 -1
- package/src/duckdb/src/parser/query_node/recursive_cte_node.cpp +21 -0
- package/src/duckdb/src/parser/query_node/select_node.cpp +31 -0
- package/src/duckdb/src/parser/query_node/set_operation_node.cpp +17 -0
- package/src/duckdb/src/parser/query_node.cpp +51 -1
- package/src/duckdb/src/parser/result_modifier.cpp +78 -0
- package/src/duckdb/src/parser/statement/multi_statement.cpp +18 -0
- package/src/duckdb/src/parser/statement/select_statement.cpp +12 -0
- package/src/duckdb/src/parser/tableref/basetableref.cpp +21 -0
- package/src/duckdb/src/parser/tableref/emptytableref.cpp +4 -0
- package/src/duckdb/src/parser/tableref/expressionlistref.cpp +17 -0
- package/src/duckdb/src/parser/tableref/joinref.cpp +29 -0
- package/src/duckdb/src/parser/tableref/pivotref.cpp +373 -0
- package/src/duckdb/src/parser/tableref/subqueryref.cpp +15 -0
- package/src/duckdb/src/parser/tableref/table_function.cpp +17 -0
- package/src/duckdb/src/parser/tableref.cpp +49 -0
- package/src/duckdb/src/parser/transform/expression/transform_array_access.cpp +11 -0
- package/src/duckdb/src/parser/transform/expression/transform_bool_expr.cpp +1 -1
- package/src/duckdb/src/parser/transform/expression/transform_columnref.cpp +17 -2
- package/src/duckdb/src/parser/transform/expression/transform_function.cpp +85 -42
- package/src/duckdb/src/parser/transform/expression/transform_operator.cpp +1 -1
- package/src/duckdb/src/parser/transform/expression/transform_subquery.cpp +1 -1
- package/src/duckdb/src/parser/transform/helpers/transform_alias.cpp +12 -6
- package/src/duckdb/src/parser/transform/helpers/transform_cte.cpp +24 -0
- package/src/duckdb/src/parser/transform/helpers/transform_groupby.cpp +7 -0
- package/src/duckdb/src/parser/transform/helpers/transform_orderby.cpp +0 -7
- package/src/duckdb/src/parser/transform/helpers/transform_typename.cpp +3 -2
- package/src/duckdb/src/parser/transform/statement/transform_create_function.cpp +4 -0
- package/src/duckdb/src/parser/transform/statement/transform_create_view.cpp +4 -0
- package/src/duckdb/src/parser/transform/statement/transform_pivot_stmt.cpp +179 -0
- package/src/duckdb/src/parser/transform/statement/transform_rename.cpp +3 -4
- package/src/duckdb/src/parser/transform/statement/transform_select.cpp +8 -0
- package/src/duckdb/src/parser/transform/statement/transform_select_node.cpp +2 -3
- package/src/duckdb/src/parser/transform/tableref/transform_join.cpp +12 -1
- package/src/duckdb/src/parser/transform/tableref/transform_pivot.cpp +121 -0
- package/src/duckdb/src/parser/transform/tableref/transform_tableref.cpp +2 -0
- package/src/duckdb/src/parser/transformer.cpp +15 -3
- package/src/duckdb/src/planner/bind_context.cpp +18 -25
- package/src/duckdb/src/planner/binder/expression/bind_aggregate_expression.cpp +9 -7
- package/src/duckdb/src/planner/binder/expression/bind_columnref_expression.cpp +4 -3
- package/src/duckdb/src/planner/binder/expression/bind_function_expression.cpp +23 -12
- package/src/duckdb/src/planner/binder/expression/bind_lambda.cpp +3 -2
- package/src/duckdb/src/planner/binder/expression/bind_star_expression.cpp +176 -0
- package/src/duckdb/src/planner/binder/expression/bind_subquery_expression.cpp +4 -0
- package/src/duckdb/src/planner/binder/expression/bind_unnest_expression.cpp +163 -24
- package/src/duckdb/src/planner/binder/expression/bind_window_expression.cpp +2 -2
- package/src/duckdb/src/planner/binder/query_node/bind_select_node.cpp +109 -94
- package/src/duckdb/src/planner/binder/query_node/plan_query_node.cpp +11 -0
- package/src/duckdb/src/planner/binder/query_node/plan_select_node.cpp +9 -4
- package/src/duckdb/src/planner/binder/statement/bind_copy.cpp +5 -3
- package/src/duckdb/src/planner/binder/statement/bind_create.cpp +3 -2
- package/src/duckdb/src/planner/binder/statement/bind_create_table.cpp +10 -1
- package/src/duckdb/src/planner/binder/statement/bind_delete.cpp +1 -1
- package/src/duckdb/src/planner/binder/statement/bind_insert.cpp +12 -8
- package/src/duckdb/src/planner/binder/statement/bind_logical_plan.cpp +17 -0
- package/src/duckdb/src/planner/binder/statement/bind_update.cpp +4 -2
- package/src/duckdb/src/planner/binder/tableref/bind_joinref.cpp +19 -3
- package/src/duckdb/src/planner/binder/tableref/bind_pivot.cpp +366 -0
- package/src/duckdb/src/planner/binder/tableref/bind_table_function.cpp +11 -1
- package/src/duckdb/src/planner/binder/tableref/plan_cteref.cpp +1 -0
- package/src/duckdb/src/planner/binder/tableref/plan_joinref.cpp +61 -13
- package/src/duckdb/src/planner/binder.cpp +19 -24
- package/src/duckdb/src/planner/bound_result_modifier.cpp +27 -1
- package/src/duckdb/src/planner/expression/bound_aggregate_expression.cpp +9 -2
- package/src/duckdb/src/planner/expression/bound_expression.cpp +4 -0
- package/src/duckdb/src/planner/expression/bound_window_expression.cpp +1 -1
- package/src/duckdb/src/planner/expression_binder/base_select_binder.cpp +146 -0
- package/src/duckdb/src/planner/expression_binder/having_binder.cpp +6 -3
- package/src/duckdb/src/planner/expression_binder/qualify_binder.cpp +3 -3
- package/src/duckdb/src/planner/expression_binder/select_binder.cpp +1 -132
- package/src/duckdb/src/planner/expression_binder.cpp +10 -3
- package/src/duckdb/src/planner/expression_iterator.cpp +17 -10
- package/src/duckdb/src/planner/filter/constant_filter.cpp +4 -6
- package/src/duckdb/src/planner/logical_operator.cpp +7 -2
- package/src/duckdb/src/planner/logical_operator_visitor.cpp +6 -0
- package/src/duckdb/src/planner/operator/logical_asof_join.cpp +8 -0
- package/src/duckdb/src/planner/operator/logical_distinct.cpp +3 -0
- package/src/duckdb/src/planner/planner.cpp +2 -1
- package/src/duckdb/src/planner/pragma_handler.cpp +10 -2
- package/src/duckdb/src/planner/subquery/flatten_dependent_join.cpp +3 -1
- package/src/duckdb/src/storage/buffer_manager.cpp +44 -46
- package/src/duckdb/src/storage/checkpoint/row_group_writer.cpp +1 -1
- package/src/duckdb/src/storage/checkpoint/table_data_reader.cpp +4 -15
- package/src/duckdb/src/storage/checkpoint/table_data_writer.cpp +10 -4
- package/src/duckdb/src/storage/checkpoint_manager.cpp +9 -3
- package/src/duckdb/src/storage/compression/bitpacking.cpp +29 -25
- package/src/duckdb/src/storage/compression/fixed_size_uncompressed.cpp +45 -46
- package/src/duckdb/src/storage/compression/numeric_constant.cpp +10 -11
- package/src/duckdb/src/storage/compression/patas.cpp +1 -1
- package/src/duckdb/src/storage/compression/rle.cpp +20 -15
- package/src/duckdb/src/storage/compression/validity_uncompressed.cpp +6 -6
- package/src/duckdb/src/storage/data_table.cpp +23 -23
- package/src/duckdb/src/storage/index.cpp +12 -1
- package/src/duckdb/src/storage/local_storage.cpp +27 -23
- package/src/duckdb/src/storage/meta_block_reader.cpp +22 -0
- package/src/duckdb/src/storage/statistics/base_statistics.cpp +373 -128
- package/src/duckdb/src/storage/statistics/column_statistics.cpp +57 -3
- package/src/duckdb/src/storage/statistics/distinct_statistics.cpp +8 -9
- package/src/duckdb/src/storage/statistics/list_stats.cpp +121 -0
- package/src/duckdb/src/storage/statistics/numeric_stats.cpp +591 -0
- package/src/duckdb/src/storage/statistics/numeric_stats_union.cpp +65 -0
- package/src/duckdb/src/storage/statistics/segment_statistics.cpp +2 -11
- package/src/duckdb/src/storage/statistics/string_stats.cpp +273 -0
- package/src/duckdb/src/storage/statistics/struct_stats.cpp +133 -0
- package/src/duckdb/src/storage/storage_info.cpp +2 -2
- package/src/duckdb/src/storage/table/column_checkpoint_state.cpp +4 -10
- package/src/duckdb/src/storage/table/column_data.cpp +118 -62
- package/src/duckdb/src/storage/table/column_data_checkpointer.cpp +10 -9
- package/src/duckdb/src/storage/table/column_segment.cpp +30 -45
- package/src/duckdb/src/storage/table/list_column_data.cpp +50 -71
- package/src/duckdb/src/storage/table/persistent_table_data.cpp +2 -1
- package/src/duckdb/src/storage/table/row_group.cpp +213 -143
- package/src/duckdb/src/storage/table/row_group_collection.cpp +151 -105
- package/src/duckdb/src/storage/table/scan_state.cpp +45 -33
- package/src/duckdb/src/storage/table/standard_column_data.cpp +11 -12
- package/src/duckdb/src/storage/table/struct_column_data.cpp +27 -34
- package/src/duckdb/src/storage/table/table_statistics.cpp +27 -7
- package/src/duckdb/src/storage/table/update_segment.cpp +23 -18
- package/src/duckdb/src/storage/wal_replay.cpp +8 -5
- package/src/duckdb/src/storage/write_ahead_log.cpp +2 -2
- package/src/duckdb/src/transaction/commit_state.cpp +11 -7
- package/src/duckdb/src/verification/deserialized_statement_verifier.cpp +0 -1
- package/src/duckdb/third_party/libpg_query/include/nodes/nodes.hpp +35 -0
- package/src/duckdb/third_party/libpg_query/include/nodes/parsenodes.hpp +36 -2
- package/src/duckdb/third_party/libpg_query/include/nodes/primnodes.hpp +3 -3
- package/src/duckdb/third_party/libpg_query/include/parser/gram.hpp +1022 -530
- package/src/duckdb/third_party/libpg_query/include/parser/kwlist.hpp +8 -0
- package/src/duckdb/third_party/libpg_query/src_backend_parser_gram.cpp +24462 -22828
- package/src/duckdb/third_party/re2/re2/re2.cc +9 -0
- package/src/duckdb/third_party/re2/re2/re2.h +2 -0
- package/src/duckdb/ub_extension_icu_third_party_icu_i18n.cpp +4 -4
- package/src/duckdb/ub_extension_json_json_functions.cpp +2 -0
- package/src/duckdb/ub_src_common_serializer.cpp +2 -0
- package/src/duckdb/ub_src_common_types.cpp +2 -0
- package/src/duckdb/ub_src_execution_physical_plan.cpp +2 -0
- package/src/duckdb/ub_src_function_aggregate_distributive.cpp +2 -0
- package/src/duckdb/ub_src_function_scalar_bit.cpp +2 -0
- package/src/duckdb/ub_src_function_scalar_map.cpp +4 -0
- package/src/duckdb/ub_src_function_scalar_string.cpp +2 -0
- package/src/duckdb/ub_src_function_scalar_string_regexp.cpp +4 -0
- package/src/duckdb/ub_src_main_capi.cpp +2 -0
- package/src/duckdb/ub_src_optimizer_rule.cpp +2 -0
- package/src/duckdb/ub_src_parser.cpp +2 -0
- package/src/duckdb/ub_src_parser_parsed_data.cpp +4 -2
- 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_parser_transform_statement.cpp +2 -0
- package/src/duckdb/ub_src_parser_transform_tableref.cpp +2 -0
- package/src/duckdb/ub_src_planner_binder_expression.cpp +2 -0
- package/src/duckdb/ub_src_planner_binder_tableref.cpp +2 -0
- package/src/duckdb/ub_src_planner_expression_binder.cpp +2 -0
- package/src/duckdb/ub_src_planner_operator.cpp +2 -0
- package/src/duckdb/ub_src_storage_statistics.cpp +6 -6
- package/src/duckdb/ub_src_storage_table.cpp +0 -2
- package/src/duckdb_node.hpp +2 -1
- package/src/statement.cpp +5 -5
- package/src/utils.cpp +27 -2
- package/test/extension.test.ts +44 -26
- package/test/syntax_error.test.ts +3 -1
- package/filelist.cache +0 -0
- package/src/duckdb/src/include/duckdb/main/loadable_extension.hpp +0 -59
- package/src/duckdb/src/include/duckdb/storage/statistics/list_statistics.hpp +0 -36
- package/src/duckdb/src/include/duckdb/storage/statistics/numeric_statistics.hpp +0 -75
- package/src/duckdb/src/include/duckdb/storage/statistics/string_statistics.hpp +0 -49
- package/src/duckdb/src/include/duckdb/storage/statistics/struct_statistics.hpp +0 -36
- package/src/duckdb/src/include/duckdb/storage/statistics/validity_statistics.hpp +0 -45
- package/src/duckdb/src/parser/parsed_data/alter_function_info.cpp +0 -55
- package/src/duckdb/src/storage/statistics/list_statistics.cpp +0 -94
- package/src/duckdb/src/storage/statistics/numeric_statistics.cpp +0 -307
- package/src/duckdb/src/storage/statistics/string_statistics.cpp +0 -220
- package/src/duckdb/src/storage/statistics/struct_statistics.cpp +0 -108
- package/src/duckdb/src/storage/statistics/validity_statistics.cpp +0 -91
- package/src/duckdb/src/storage/table/segment_tree.cpp +0 -179
|
@@ -29,13 +29,13 @@ class ScalarFunctionCatalogEntry;
|
|
|
29
29
|
|
|
30
30
|
struct FunctionStatisticsInput {
|
|
31
31
|
FunctionStatisticsInput(BoundFunctionExpression &expr_p, FunctionData *bind_data_p,
|
|
32
|
-
vector<
|
|
32
|
+
vector<BaseStatistics> &child_stats_p, unique_ptr<Expression> *expr_ptr_p)
|
|
33
33
|
: expr(expr_p), bind_data(bind_data_p), child_stats(child_stats_p), expr_ptr(expr_ptr_p) {
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
BoundFunctionExpression &expr;
|
|
37
37
|
FunctionData *bind_data;
|
|
38
|
-
vector<
|
|
38
|
+
vector<BaseStatistics> &child_stats;
|
|
39
39
|
unique_ptr<Expression> *expr_ptr;
|
|
40
40
|
};
|
|
41
41
|
|
|
@@ -32,7 +32,18 @@ enum class ArrowDateTimeType : uint8_t {
|
|
|
32
32
|
NANOSECONDS = 2,
|
|
33
33
|
SECONDS = 3,
|
|
34
34
|
DAYS = 4,
|
|
35
|
-
MONTHS = 5
|
|
35
|
+
MONTHS = 5,
|
|
36
|
+
MONTH_DAY_NANO = 6
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
struct ArrowInterval {
|
|
40
|
+
int32_t months;
|
|
41
|
+
int32_t days;
|
|
42
|
+
int64_t nanoseconds;
|
|
43
|
+
|
|
44
|
+
inline bool operator==(const ArrowInterval &rhs) const {
|
|
45
|
+
return this->days == rhs.days && this->months == rhs.months && this->nanoseconds == rhs.nanoseconds;
|
|
46
|
+
}
|
|
36
47
|
};
|
|
37
48
|
|
|
38
49
|
struct ArrowConvertData {
|
|
@@ -11,6 +11,8 @@
|
|
|
11
11
|
#include "duckdb/common/enums/operator_result_type.hpp"
|
|
12
12
|
#include "duckdb/execution/execution_context.hpp"
|
|
13
13
|
#include "duckdb/function/function.hpp"
|
|
14
|
+
#include "duckdb/planner/bind_context.hpp"
|
|
15
|
+
#include "duckdb/planner/logical_operator.hpp"
|
|
14
16
|
#include "duckdb/storage/statistics/node_statistics.hpp"
|
|
15
17
|
|
|
16
18
|
#include <functional>
|
|
@@ -136,6 +138,7 @@ public:
|
|
|
136
138
|
|
|
137
139
|
typedef unique_ptr<FunctionData> (*table_function_bind_t)(ClientContext &context, TableFunctionBindInput &input,
|
|
138
140
|
vector<LogicalType> &return_types, vector<string> &names);
|
|
141
|
+
typedef unique_ptr<TableRef> (*table_function_bind_replace_t)(ClientContext &context, TableFunctionBindInput &input);
|
|
139
142
|
typedef unique_ptr<GlobalTableFunctionState> (*table_function_init_global_t)(ClientContext &context,
|
|
140
143
|
TableFunctionInitInput &input);
|
|
141
144
|
typedef unique_ptr<LocalTableFunctionState> (*table_function_init_local_t)(ExecutionContext &context,
|
|
@@ -185,6 +188,11 @@ public:
|
|
|
185
188
|
//! This function is used for determining the return type of a table producing function and returning bind data
|
|
186
189
|
//! The returned FunctionData object should be constant and should not be changed during execution.
|
|
187
190
|
table_function_bind_t bind;
|
|
191
|
+
//! (Optional) Bind replace function
|
|
192
|
+
//! This function is called before the regular bind function. It allows returning a TableRef will be used to
|
|
193
|
+
//! to generate a logical plan that replaces the LogicalGet of a regularly bound TableFunction. The BindReplace can
|
|
194
|
+
//! also return a nullptr to indicate a regular bind needs to be performed instead.
|
|
195
|
+
table_function_bind_replace_t bind_replace;
|
|
188
196
|
//! (Optional) global init function
|
|
189
197
|
//! Initialize the global operator state of the function.
|
|
190
198
|
//! The global operator state is used to keep track of the progress in the table function and is shared between
|
|
@@ -235,6 +243,8 @@ public:
|
|
|
235
243
|
bool filter_prune;
|
|
236
244
|
//! Additional function info, passed to the bind
|
|
237
245
|
shared_ptr<TableFunctionInfo> function_info;
|
|
246
|
+
|
|
247
|
+
DUCKDB_API bool Equal(const TableFunction &rhs) const;
|
|
238
248
|
};
|
|
239
249
|
|
|
240
250
|
} // namespace duckdb
|
|
@@ -40,6 +40,7 @@ struct ExtractStatementsWrapper {
|
|
|
40
40
|
|
|
41
41
|
struct PendingStatementWrapper {
|
|
42
42
|
unique_ptr<PendingQueryResult> statement;
|
|
43
|
+
bool allow_streaming;
|
|
43
44
|
};
|
|
44
45
|
|
|
45
46
|
struct ArrowResultWrapper {
|
|
@@ -56,6 +57,7 @@ struct AppenderWrapper {
|
|
|
56
57
|
enum class CAPIResultSetType : uint8_t {
|
|
57
58
|
CAPI_RESULT_TYPE_NONE = 0,
|
|
58
59
|
CAPI_RESULT_TYPE_MATERIALIZED,
|
|
60
|
+
CAPI_RESULT_TYPE_STREAMING,
|
|
59
61
|
CAPI_RESULT_TYPE_DEPRECATED
|
|
60
62
|
};
|
|
61
63
|
|
|
@@ -40,6 +40,8 @@ struct ClientConfig {
|
|
|
40
40
|
//! to output anything
|
|
41
41
|
bool emit_profiler_output = true;
|
|
42
42
|
|
|
43
|
+
//! system-wide progress bar disable.
|
|
44
|
+
const char *system_progress_bar_disable_reason = nullptr;
|
|
43
45
|
//! If the progress bar is enabled or not.
|
|
44
46
|
bool enable_progress_bar = false;
|
|
45
47
|
//! If the print of the progress bar is enabled
|
|
@@ -20,7 +20,7 @@ class BufferedFileWriter;
|
|
|
20
20
|
class ClientContext;
|
|
21
21
|
class CatalogSearchPath;
|
|
22
22
|
class FileOpener;
|
|
23
|
-
class
|
|
23
|
+
class HTTPState;
|
|
24
24
|
class QueryProfiler;
|
|
25
25
|
class QueryProfilerHistory;
|
|
26
26
|
class PreparedStatementData;
|
|
@@ -52,8 +52,8 @@ struct ClientData {
|
|
|
52
52
|
//! The file opener of the client context
|
|
53
53
|
unique_ptr<FileOpener> file_opener;
|
|
54
54
|
|
|
55
|
-
//!
|
|
56
|
-
unique_ptr<
|
|
55
|
+
//! HTTP State in this query
|
|
56
|
+
unique_ptr<HTTPState> http_state;
|
|
57
57
|
|
|
58
58
|
//! The file search path
|
|
59
59
|
string file_search_path;
|
|
@@ -30,6 +30,7 @@
|
|
|
30
30
|
#include "duckdb/planner/operator_extension.hpp"
|
|
31
31
|
|
|
32
32
|
namespace duckdb {
|
|
33
|
+
class BufferPool;
|
|
33
34
|
class CastFunctionSet;
|
|
34
35
|
class ClientContext;
|
|
35
36
|
class ErrorManager;
|
|
@@ -186,6 +187,8 @@ public:
|
|
|
186
187
|
vector<std::unique_ptr<OperatorExtension>> operator_extensions;
|
|
187
188
|
//! Extensions made to storage
|
|
188
189
|
case_insensitive_map_t<std::unique_ptr<StorageExtension>> storage_extensions;
|
|
190
|
+
//! A buffer pool can be shared across multiple databases (if desired).
|
|
191
|
+
shared_ptr<BufferPool> buffer_pool;
|
|
189
192
|
|
|
190
193
|
public:
|
|
191
194
|
DUCKDB_API static DBConfig &GetConfig(ClientContext &context);
|
|
@@ -55,6 +55,7 @@ static constexpr ExtensionEntry EXTENSION_FUNCTIONS[] = {
|
|
|
55
55
|
{"json_transform_strict", "json"},
|
|
56
56
|
{"json_type", "json"},
|
|
57
57
|
{"json_valid", "json"},
|
|
58
|
+
{"json_serialize_sql", "json"},
|
|
58
59
|
{"make_timestamptz", "icu"},
|
|
59
60
|
{"parquet_metadata", "parquet"},
|
|
60
61
|
{"parquet_scan", "parquet"},
|
|
@@ -96,6 +97,7 @@ static constexpr ExtensionEntry EXTENSION_SETTINGS[] = {
|
|
|
96
97
|
{"http_retry_backoff", "httpfs"},
|
|
97
98
|
{"http_retry_wait_ms", "httpfs"},
|
|
98
99
|
{"http_timeout", "httpfs"},
|
|
100
|
+
{"force_download", "httpfs"},
|
|
99
101
|
{"s3_access_key_id", "httpfs"},
|
|
100
102
|
{"s3_endpoint", "httpfs"},
|
|
101
103
|
{"s3_region", "httpfs"},
|
|
@@ -48,6 +48,8 @@ public:
|
|
|
48
48
|
public:
|
|
49
49
|
//! Returns the stored error message
|
|
50
50
|
DUCKDB_API const string &GetError();
|
|
51
|
+
//! Returns the stored error object
|
|
52
|
+
DUCKDB_API PreservedError &GetErrorObject();
|
|
51
53
|
//! Returns whether or not an error occurred
|
|
52
54
|
DUCKDB_API bool HasError() const;
|
|
53
55
|
//! Returns the number of columns in the result
|
|
@@ -14,10 +14,11 @@ namespace duckdb {
|
|
|
14
14
|
|
|
15
15
|
class ExplainRelation : public Relation {
|
|
16
16
|
public:
|
|
17
|
-
explicit ExplainRelation(shared_ptr<Relation> child);
|
|
17
|
+
explicit ExplainRelation(shared_ptr<Relation> child, ExplainType type = ExplainType::EXPLAIN_STANDARD);
|
|
18
18
|
|
|
19
19
|
shared_ptr<Relation> child;
|
|
20
20
|
vector<ColumnDefinition> columns;
|
|
21
|
+
ExplainType type;
|
|
21
22
|
|
|
22
23
|
public:
|
|
23
24
|
BoundStatement Bind(Binder &binder) override;
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
#include "duckdb/common/named_parameter_map.hpp"
|
|
18
18
|
#include "duckdb/main/client_context.hpp"
|
|
19
19
|
#include "duckdb/main/external_dependencies.hpp"
|
|
20
|
+
#include "duckdb/parser/statement/explain_statement.hpp"
|
|
20
21
|
|
|
21
22
|
#include <memory>
|
|
22
23
|
|
|
@@ -66,7 +67,7 @@ public:
|
|
|
66
67
|
DUCKDB_API unique_ptr<QueryResult> Query(const string &name, const string &sql);
|
|
67
68
|
|
|
68
69
|
//! Explain the query plan of this relation
|
|
69
|
-
DUCKDB_API unique_ptr<QueryResult> Explain();
|
|
70
|
+
DUCKDB_API unique_ptr<QueryResult> Explain(ExplainType type = ExplainType::EXPLAIN_STANDARD);
|
|
70
71
|
|
|
71
72
|
DUCKDB_API virtual unique_ptr<TableRef> GetTableRef();
|
|
72
73
|
DUCKDB_API virtual bool IsReadOnly() {
|
|
@@ -67,6 +67,8 @@ private:
|
|
|
67
67
|
unique_ptr<LogicalOperator> PushdownSingleJoin(unique_ptr<LogicalOperator> op, unordered_set<idx_t> &left_bindings,
|
|
68
68
|
unordered_set<idx_t> &right_bindings);
|
|
69
69
|
|
|
70
|
+
//! Push any remaining filters into a LogicalFilter at this level
|
|
71
|
+
unique_ptr<LogicalOperator> PushFinalFilters(unique_ptr<LogicalOperator> op);
|
|
70
72
|
// Finish pushing down at this operator, creating a LogicalFilter to store any of the stored filters and recursively
|
|
71
73
|
// pushing down into its children (if any)
|
|
72
74
|
unique_ptr<LogicalOperator> FinishPushdown(unique_ptr<LogicalOperator> op);
|
|
@@ -106,7 +106,7 @@ private:
|
|
|
106
106
|
//! If there are multiple equivalence sets, they are merged.
|
|
107
107
|
void AddToEquivalenceSets(FilterInfo *filter_info, vector<idx_t> matching_equivalent_sets);
|
|
108
108
|
|
|
109
|
-
TableFilterSet *GetTableFilters(LogicalOperator *op);
|
|
109
|
+
TableFilterSet *GetTableFilters(LogicalOperator *op, idx_t table_index);
|
|
110
110
|
|
|
111
111
|
void AddRelationTdom(FilterInfo *filter_info);
|
|
112
112
|
bool EmptyFilter(FilterInfo *filter_info);
|
|
@@ -115,7 +115,7 @@ private:
|
|
|
115
115
|
unique_ptr<BaseStatistics> base_stats);
|
|
116
116
|
idx_t InspectConjunctionOR(idx_t cardinality, idx_t column_index, ConjunctionOrFilter *fil,
|
|
117
117
|
unique_ptr<BaseStatistics> base_stats);
|
|
118
|
-
idx_t InspectTableFilters(idx_t cardinality, LogicalOperator *op, TableFilterSet *table_filters);
|
|
118
|
+
idx_t InspectTableFilters(idx_t cardinality, LogicalOperator *op, TableFilterSet *table_filters, idx_t table_index);
|
|
119
119
|
};
|
|
120
120
|
|
|
121
121
|
} // namespace duckdb
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
//===----------------------------------------------------------------------===//
|
|
2
|
+
// DuckDB
|
|
3
|
+
//
|
|
4
|
+
// duckdb/optimizer/rule/ordered_aggregate_optimizer.hpp
|
|
5
|
+
//
|
|
6
|
+
//
|
|
7
|
+
//===----------------------------------------------------------------------===//
|
|
8
|
+
|
|
9
|
+
#pragma once
|
|
10
|
+
|
|
11
|
+
#include "duckdb/optimizer/rule.hpp"
|
|
12
|
+
#include "duckdb/parser/expression_map.hpp"
|
|
13
|
+
|
|
14
|
+
namespace duckdb {
|
|
15
|
+
|
|
16
|
+
class OrderedAggregateOptimizer : public Rule {
|
|
17
|
+
public:
|
|
18
|
+
explicit OrderedAggregateOptimizer(ExpressionRewriter &rewriter);
|
|
19
|
+
|
|
20
|
+
unique_ptr<Expression> Apply(LogicalOperator &op, vector<Expression *> &bindings, bool &changes_made,
|
|
21
|
+
bool is_root) override;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
} // namespace duckdb
|
|
@@ -17,6 +17,10 @@ class SelectStatement;
|
|
|
17
17
|
struct CommonTableExpressionInfo {
|
|
18
18
|
vector<string> aliases;
|
|
19
19
|
unique_ptr<SelectStatement> query;
|
|
20
|
+
|
|
21
|
+
void FormatSerialize(FormatSerializer &serializer) const;
|
|
22
|
+
static unique_ptr<CommonTableExpressionInfo> FormatDeserialize(FormatDeserializer &deserializer);
|
|
23
|
+
unique_ptr<CommonTableExpressionInfo> Copy();
|
|
20
24
|
};
|
|
21
25
|
|
|
22
26
|
} // namespace duckdb
|
|
@@ -31,6 +31,9 @@ public:
|
|
|
31
31
|
void Serialize(FieldWriter &writer) const override;
|
|
32
32
|
static unique_ptr<ParsedExpression> Deserialize(ExpressionType type, FieldReader &source);
|
|
33
33
|
|
|
34
|
+
void FormatSerialize(FormatSerializer &serializer) const override;
|
|
35
|
+
static unique_ptr<ParsedExpression> FormatDeserialize(ExpressionType type, FormatDeserializer &deserializer);
|
|
36
|
+
|
|
34
37
|
public:
|
|
35
38
|
template <class T, class BASE>
|
|
36
39
|
static string ToString(const T &entry) {
|
|
@@ -16,6 +16,9 @@ namespace duckdb {
|
|
|
16
16
|
struct CaseCheck {
|
|
17
17
|
unique_ptr<ParsedExpression> when_expr;
|
|
18
18
|
unique_ptr<ParsedExpression> then_expr;
|
|
19
|
+
|
|
20
|
+
void FormatSerialize(FormatSerializer &serializer) const;
|
|
21
|
+
static CaseCheck FormatDeserialize(FormatDeserializer &deserializer);
|
|
19
22
|
};
|
|
20
23
|
|
|
21
24
|
//! The CaseExpression represents a CASE expression in the query
|
|
@@ -35,6 +38,8 @@ public:
|
|
|
35
38
|
|
|
36
39
|
void Serialize(FieldWriter &writer) const override;
|
|
37
40
|
static unique_ptr<ParsedExpression> Deserialize(ExpressionType type, FieldReader &source);
|
|
41
|
+
void FormatSerialize(FormatSerializer &serializer) const override;
|
|
42
|
+
static unique_ptr<ParsedExpression> FormatDeserialize(ExpressionType type, FormatDeserializer &deserializer);
|
|
38
43
|
|
|
39
44
|
public:
|
|
40
45
|
template <class T, class BASE>
|
|
@@ -34,6 +34,8 @@ public:
|
|
|
34
34
|
|
|
35
35
|
void Serialize(FieldWriter &writer) const override;
|
|
36
36
|
static unique_ptr<ParsedExpression> Deserialize(ExpressionType type, FieldReader &source);
|
|
37
|
+
void FormatSerialize(FormatSerializer &serializer) const override;
|
|
38
|
+
static unique_ptr<ParsedExpression> FormatDeserialize(ExpressionType type, FormatDeserializer &deserializer);
|
|
37
39
|
|
|
38
40
|
public:
|
|
39
41
|
template <class T, class BASE>
|
|
@@ -31,5 +31,7 @@ public:
|
|
|
31
31
|
|
|
32
32
|
void Serialize(FieldWriter &writer) const override;
|
|
33
33
|
static unique_ptr<ParsedExpression> Deserialize(ExpressionType type, FieldReader &source);
|
|
34
|
+
void FormatSerialize(FormatSerializer &serializer) const override;
|
|
35
|
+
static unique_ptr<ParsedExpression> FormatDeserialize(ExpressionType type, FormatDeserializer &deserializer);
|
|
34
36
|
};
|
|
35
37
|
} // namespace duckdb
|
|
@@ -45,5 +45,7 @@ public:
|
|
|
45
45
|
|
|
46
46
|
void Serialize(FieldWriter &writer) const override;
|
|
47
47
|
static unique_ptr<ParsedExpression> Deserialize(ExpressionType type, FieldReader &source);
|
|
48
|
+
void FormatSerialize(FormatSerializer &serializer) const override;
|
|
49
|
+
static unique_ptr<ParsedExpression> FormatDeserialize(ExpressionType type, FormatDeserializer &deserializer);
|
|
48
50
|
};
|
|
49
51
|
} // namespace duckdb
|
|
@@ -30,6 +30,8 @@ public:
|
|
|
30
30
|
|
|
31
31
|
void Serialize(FieldWriter &writer) const override;
|
|
32
32
|
static unique_ptr<ParsedExpression> Deserialize(ExpressionType type, FieldReader &source);
|
|
33
|
+
void FormatSerialize(FormatSerializer &serializer) const override;
|
|
34
|
+
static unique_ptr<ParsedExpression> FormatDeserialize(ExpressionType type, FormatDeserializer &deserializer);
|
|
33
35
|
|
|
34
36
|
public:
|
|
35
37
|
template <class T, class BASE>
|
|
@@ -34,6 +34,8 @@ public:
|
|
|
34
34
|
|
|
35
35
|
void Serialize(FieldWriter &writer) const override;
|
|
36
36
|
static unique_ptr<ParsedExpression> Deserialize(ExpressionType type, FieldReader &source);
|
|
37
|
+
void FormatSerialize(FormatSerializer &serializer) const override;
|
|
38
|
+
static unique_ptr<ParsedExpression> FormatDeserialize(ExpressionType type, FormatDeserializer &deserializer);
|
|
37
39
|
|
|
38
40
|
public:
|
|
39
41
|
template <class T, class BASE>
|
|
@@ -31,6 +31,9 @@ public:
|
|
|
31
31
|
|
|
32
32
|
void Serialize(FieldWriter &writer) const override;
|
|
33
33
|
static unique_ptr<ParsedExpression> Deserialize(ExpressionType type, FieldReader &source);
|
|
34
|
+
|
|
35
|
+
void FormatSerialize(FormatSerializer &serializer) const override;
|
|
36
|
+
static unique_ptr<ParsedExpression> FormatDeserialize(ExpressionType type, FormatDeserializer &deserializer);
|
|
34
37
|
};
|
|
35
38
|
|
|
36
39
|
} // namespace duckdb
|
|
@@ -55,13 +55,15 @@ public:
|
|
|
55
55
|
|
|
56
56
|
void Serialize(FieldWriter &writer) const override;
|
|
57
57
|
static unique_ptr<ParsedExpression> Deserialize(ExpressionType type, FieldReader &source);
|
|
58
|
+
void FormatSerialize(FormatSerializer &serializer) const override;
|
|
59
|
+
static unique_ptr<ParsedExpression> FormatDeserialize(ExpressionType type, FormatDeserializer &deserializer);
|
|
58
60
|
|
|
59
61
|
void Verify() const override;
|
|
60
62
|
|
|
61
63
|
public:
|
|
62
|
-
template <class T, class BASE>
|
|
64
|
+
template <class T, class BASE, class ORDER_MODIFIER = OrderModifier>
|
|
63
65
|
static string ToString(const T &entry, const string &schema, const string &function_name, bool is_operator = false,
|
|
64
|
-
bool distinct = false, BASE *filter = nullptr,
|
|
66
|
+
bool distinct = false, BASE *filter = nullptr, ORDER_MODIFIER *order_bys = nullptr,
|
|
65
67
|
bool export_state = false, bool add_alias = false) {
|
|
66
68
|
if (is_operator) {
|
|
67
69
|
// built-in operator
|
|
@@ -37,6 +37,8 @@ public:
|
|
|
37
37
|
|
|
38
38
|
void Serialize(FieldWriter &writer) const override;
|
|
39
39
|
static unique_ptr<ParsedExpression> Deserialize(ExpressionType type, FieldReader &source);
|
|
40
|
+
void FormatSerialize(FormatSerializer &serializer) const override;
|
|
41
|
+
static unique_ptr<ParsedExpression> FormatDeserialize(ExpressionType type, FormatDeserializer &deserializer);
|
|
40
42
|
};
|
|
41
43
|
|
|
42
44
|
} // namespace duckdb
|
|
@@ -32,6 +32,8 @@ public:
|
|
|
32
32
|
|
|
33
33
|
void Serialize(FieldWriter &writer) const override;
|
|
34
34
|
static unique_ptr<ParsedExpression> Deserialize(ExpressionType type, FieldReader &source);
|
|
35
|
+
void FormatSerialize(FormatSerializer &serializer) const override;
|
|
36
|
+
static unique_ptr<ParsedExpression> FormatDeserialize(ExpressionType type, FormatDeserializer &deserializer);
|
|
35
37
|
|
|
36
38
|
public:
|
|
37
39
|
template <class T, class BASE>
|
|
@@ -34,5 +34,7 @@ public:
|
|
|
34
34
|
|
|
35
35
|
void Serialize(FieldWriter &writer) const override;
|
|
36
36
|
static unique_ptr<ParsedExpression> Deserialize(ExpressionType type, FieldReader &source);
|
|
37
|
+
void FormatSerialize(FormatSerializer &serializer) const override;
|
|
38
|
+
static unique_ptr<ParsedExpression> FormatDeserialize(ExpressionType type, FormatDeserializer &deserializer);
|
|
37
39
|
};
|
|
38
40
|
} // namespace duckdb
|
|
@@ -30,5 +30,7 @@ public:
|
|
|
30
30
|
|
|
31
31
|
void Serialize(FieldWriter &writer) const override;
|
|
32
32
|
static unique_ptr<ParsedExpression> Deserialize(ExpressionType type, FieldReader &source);
|
|
33
|
+
void FormatSerialize(FormatSerializer &serializer) const override;
|
|
34
|
+
static unique_ptr<ParsedExpression> FormatDeserialize(ExpressionType type, FormatDeserializer &deserializer);
|
|
33
35
|
};
|
|
34
36
|
} // namespace duckdb
|
|
@@ -24,8 +24,8 @@ public:
|
|
|
24
24
|
case_insensitive_set_t exclude_list;
|
|
25
25
|
//! List of columns to replace with another expression
|
|
26
26
|
case_insensitive_map_t<unique_ptr<ParsedExpression>> replace_list;
|
|
27
|
-
//!
|
|
28
|
-
|
|
27
|
+
//! The expression to select the columns (regular expression or list)
|
|
28
|
+
unique_ptr<ParsedExpression> expr;
|
|
29
29
|
//! Whether or not this is a COLUMNS expression
|
|
30
30
|
bool columns = false;
|
|
31
31
|
|
|
@@ -38,5 +38,7 @@ public:
|
|
|
38
38
|
|
|
39
39
|
void Serialize(FieldWriter &writer) const override;
|
|
40
40
|
static unique_ptr<ParsedExpression> Deserialize(ExpressionType type, FieldReader &source);
|
|
41
|
+
void FormatSerialize(FormatSerializer &serializer) const override;
|
|
42
|
+
static unique_ptr<ParsedExpression> FormatDeserialize(ExpressionType type, FormatDeserializer &deserializer);
|
|
41
43
|
};
|
|
42
44
|
} // namespace duckdb
|
|
@@ -45,5 +45,7 @@ public:
|
|
|
45
45
|
|
|
46
46
|
void Serialize(FieldWriter &writer) const override;
|
|
47
47
|
static unique_ptr<ParsedExpression> Deserialize(ExpressionType type, FieldReader &source);
|
|
48
|
+
void FormatSerialize(FormatSerializer &serializer) const override;
|
|
49
|
+
static unique_ptr<ParsedExpression> FormatDeserialize(ExpressionType type, FormatDeserializer &deserializer);
|
|
48
50
|
};
|
|
49
51
|
} // namespace duckdb
|
|
@@ -25,6 +25,8 @@ enum class WindowBoundary : uint8_t {
|
|
|
25
25
|
EXPR_FOLLOWING_RANGE = 8
|
|
26
26
|
};
|
|
27
27
|
|
|
28
|
+
const char *ToString(WindowBoundary value);
|
|
29
|
+
|
|
28
30
|
//! The WindowExpression represents a window function in the query. They are a special case of aggregates which is why
|
|
29
31
|
//! they inherit from them.
|
|
30
32
|
class WindowExpression : public ParsedExpression {
|
|
@@ -71,6 +73,8 @@ public:
|
|
|
71
73
|
|
|
72
74
|
void Serialize(FieldWriter &writer) const override;
|
|
73
75
|
static unique_ptr<ParsedExpression> Deserialize(ExpressionType type, FieldReader &source);
|
|
76
|
+
void FormatSerialize(FormatSerializer &serializer) const override;
|
|
77
|
+
static unique_ptr<ParsedExpression> FormatDeserialize(ExpressionType type, FormatDeserializer &deserializer);
|
|
74
78
|
|
|
75
79
|
public:
|
|
76
80
|
template <class T, class BASE, class ORDER_NODE>
|
|
@@ -200,4 +204,5 @@ public:
|
|
|
200
204
|
return result;
|
|
201
205
|
}
|
|
202
206
|
};
|
|
207
|
+
|
|
203
208
|
} // namespace duckdb
|
|
@@ -20,7 +20,8 @@ enum class AlterType : uint8_t {
|
|
|
20
20
|
ALTER_VIEW = 2,
|
|
21
21
|
ALTER_SEQUENCE = 3,
|
|
22
22
|
CHANGE_OWNERSHIP = 4,
|
|
23
|
-
|
|
23
|
+
ALTER_SCALAR_FUNCTION = 5,
|
|
24
|
+
ALTER_TABLE_FUNCTION = 6
|
|
24
25
|
};
|
|
25
26
|
|
|
26
27
|
struct AlterEntryData {
|
|
@@ -58,6 +59,9 @@ public:
|
|
|
58
59
|
void Serialize(Serializer &serializer) const;
|
|
59
60
|
virtual void Serialize(FieldWriter &writer) const = 0;
|
|
60
61
|
static unique_ptr<AlterInfo> Deserialize(Deserializer &source);
|
|
62
|
+
virtual string GetColumnName() const {
|
|
63
|
+
return "";
|
|
64
|
+
};
|
|
61
65
|
|
|
62
66
|
AlterEntryData GetAlterEntryData() const;
|
|
63
67
|
};
|
|
@@ -1,29 +1,29 @@
|
|
|
1
1
|
//===----------------------------------------------------------------------===//
|
|
2
2
|
// DuckDB
|
|
3
3
|
//
|
|
4
|
-
// duckdb/parser/parsed_data/
|
|
4
|
+
// duckdb/parser/parsed_data/alter_scalar_function_info.hpp
|
|
5
5
|
//
|
|
6
6
|
//
|
|
7
7
|
//===----------------------------------------------------------------------===//
|
|
8
8
|
|
|
9
9
|
#pragma once
|
|
10
10
|
|
|
11
|
-
#include "duckdb/parser/parsed_data/alter_info.hpp"
|
|
12
|
-
#include "duckdb/function/scalar_function.hpp"
|
|
13
11
|
#include "duckdb/function/function_set.hpp"
|
|
12
|
+
#include "duckdb/function/scalar_function.hpp"
|
|
13
|
+
#include "duckdb/parser/parsed_data/alter_info.hpp"
|
|
14
14
|
|
|
15
15
|
namespace duckdb {
|
|
16
16
|
|
|
17
17
|
//===--------------------------------------------------------------------===//
|
|
18
|
-
// Alter
|
|
18
|
+
// Alter Scalar Function
|
|
19
19
|
//===--------------------------------------------------------------------===//
|
|
20
|
-
enum class
|
|
20
|
+
enum class AlterScalarFunctionType : uint8_t { INVALID = 0, ADD_FUNCTION_OVERLOADS = 1 };
|
|
21
21
|
|
|
22
|
-
struct
|
|
23
|
-
|
|
24
|
-
virtual ~
|
|
22
|
+
struct AlterScalarFunctionInfo : public AlterInfo {
|
|
23
|
+
AlterScalarFunctionInfo(AlterScalarFunctionType type, AlterEntryData data);
|
|
24
|
+
virtual ~AlterScalarFunctionInfo() override;
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
AlterScalarFunctionType alter_scalar_function_type;
|
|
27
27
|
|
|
28
28
|
public:
|
|
29
29
|
CatalogType GetCatalogType() const override;
|
|
@@ -32,11 +32,11 @@ public:
|
|
|
32
32
|
};
|
|
33
33
|
|
|
34
34
|
//===--------------------------------------------------------------------===//
|
|
35
|
-
//
|
|
35
|
+
// AddScalarFunctionOverloadInfo
|
|
36
36
|
//===--------------------------------------------------------------------===//
|
|
37
|
-
struct
|
|
38
|
-
|
|
39
|
-
~
|
|
37
|
+
struct AddScalarFunctionOverloadInfo : public AlterScalarFunctionInfo {
|
|
38
|
+
AddScalarFunctionOverloadInfo(AlterEntryData data, ScalarFunctionSet new_overloads);
|
|
39
|
+
~AddScalarFunctionOverloadInfo() override;
|
|
40
40
|
|
|
41
41
|
ScalarFunctionSet new_overloads;
|
|
42
42
|
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
//===----------------------------------------------------------------------===//
|
|
2
|
+
// DuckDB
|
|
3
|
+
//
|
|
4
|
+
// duckdb/parser/parsed_data/alter_scalar_function_info.hpp
|
|
5
|
+
//
|
|
6
|
+
//
|
|
7
|
+
//===----------------------------------------------------------------------===//
|
|
8
|
+
|
|
9
|
+
#pragma once
|
|
10
|
+
|
|
11
|
+
#include "duckdb/function/function_set.hpp"
|
|
12
|
+
#include "duckdb/function/table_function.hpp"
|
|
13
|
+
#include "duckdb/parser/parsed_data/alter_info.hpp"
|
|
14
|
+
|
|
15
|
+
namespace duckdb {
|
|
16
|
+
|
|
17
|
+
//===--------------------------------------------------------------------===//
|
|
18
|
+
// Alter Table Function
|
|
19
|
+
//===--------------------------------------------------------------------===//
|
|
20
|
+
enum class AlterTableFunctionType : uint8_t { INVALID = 0, ADD_FUNCTION_OVERLOADS = 1 };
|
|
21
|
+
|
|
22
|
+
struct AlterTableFunctionInfo : public AlterInfo {
|
|
23
|
+
AlterTableFunctionInfo(AlterTableFunctionType type, AlterEntryData data);
|
|
24
|
+
virtual ~AlterTableFunctionInfo() override;
|
|
25
|
+
|
|
26
|
+
AlterTableFunctionType alter_table_function_type;
|
|
27
|
+
|
|
28
|
+
public:
|
|
29
|
+
CatalogType GetCatalogType() const override;
|
|
30
|
+
void Serialize(FieldWriter &writer) const override;
|
|
31
|
+
static unique_ptr<AlterInfo> Deserialize(FieldReader &reader);
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
//===--------------------------------------------------------------------===//
|
|
35
|
+
// AddTableFunctionOverloadInfo
|
|
36
|
+
//===--------------------------------------------------------------------===//
|
|
37
|
+
struct AddTableFunctionOverloadInfo : public AlterTableFunctionInfo {
|
|
38
|
+
AddTableFunctionOverloadInfo(AlterEntryData data, TableFunctionSet new_overloads);
|
|
39
|
+
~AddTableFunctionOverloadInfo() override;
|
|
40
|
+
|
|
41
|
+
TableFunctionSet new_overloads;
|
|
42
|
+
|
|
43
|
+
public:
|
|
44
|
+
unique_ptr<AlterInfo> Copy() const override;
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
} // namespace duckdb
|