duckdb 0.8.2-dev145.0 → 0.8.2-dev1493.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 +15 -12
- package/binding.gyp.in +1 -1
- package/configure.py +1 -1
- package/duckdb_extension_config.cmake +10 -0
- package/package.json +1 -1
- package/src/duckdb/extension/icu/icu-dateadd.cpp +2 -2
- package/src/duckdb/extension/icu/icu-datefunc.cpp +1 -1
- package/src/duckdb/extension/icu/icu-datepart.cpp +2 -2
- package/src/duckdb/extension/icu/icu-datesub.cpp +2 -2
- package/src/duckdb/extension/icu/icu-datetrunc.cpp +1 -1
- package/src/duckdb/extension/icu/icu-list-range.cpp +1 -1
- package/src/duckdb/extension/icu/icu-makedate.cpp +7 -0
- package/src/duckdb/extension/icu/icu-strptime.cpp +4 -4
- package/src/duckdb/extension/icu/icu-table-range.cpp +5 -5
- package/src/duckdb/extension/icu/icu-timebucket.cpp +16 -16
- package/src/duckdb/extension/icu/icu-timezone.cpp +8 -8
- package/src/duckdb/extension/icu/icu_extension.cpp +3 -3
- package/src/duckdb/extension/json/include/json_common.hpp +47 -231
- package/src/duckdb/extension/json/include/json_executors.hpp +49 -13
- package/src/duckdb/extension/json/include/json_functions.hpp +2 -1
- package/src/duckdb/extension/json/json_common.cpp +272 -40
- package/src/duckdb/extension/json/json_functions/json_structure.cpp +1 -1
- package/src/duckdb/extension/json/json_functions/json_transform.cpp +17 -37
- package/src/duckdb/extension/json/json_functions/json_type.cpp +1 -1
- package/src/duckdb/extension/json/json_functions.cpp +24 -24
- package/src/duckdb/extension/json/json_scan.cpp +3 -6
- package/src/duckdb/extension/parquet/column_reader.cpp +19 -21
- package/src/duckdb/extension/parquet/column_writer.cpp +77 -61
- package/src/duckdb/extension/parquet/include/cast_column_reader.hpp +2 -2
- package/src/duckdb/extension/parquet/include/column_reader.hpp +14 -16
- package/src/duckdb/extension/parquet/include/column_writer.hpp +9 -7
- package/src/duckdb/extension/parquet/include/list_column_reader.hpp +2 -2
- package/src/duckdb/extension/parquet/include/parquet_dbp_decoder.hpp +3 -3
- package/src/duckdb/extension/parquet/include/parquet_decimal_utils.hpp +3 -3
- package/src/duckdb/extension/parquet/include/parquet_file_metadata_cache.hpp +2 -2
- package/src/duckdb/extension/parquet/include/parquet_statistics.hpp +2 -2
- package/src/duckdb/extension/parquet/include/parquet_support.hpp +9 -11
- package/src/duckdb/extension/parquet/include/parquet_writer.hpp +24 -5
- package/src/duckdb/extension/parquet/include/string_column_reader.hpp +1 -1
- package/src/duckdb/extension/parquet/include/struct_column_reader.hpp +2 -3
- package/src/duckdb/extension/parquet/include/zstd_file_system.hpp +2 -2
- package/src/duckdb/extension/parquet/parquet_extension.cpp +192 -20
- package/src/duckdb/extension/parquet/parquet_reader.cpp +6 -6
- package/src/duckdb/extension/parquet/parquet_statistics.cpp +7 -6
- package/src/duckdb/extension/parquet/parquet_writer.cpp +79 -16
- package/src/duckdb/extension/parquet/zstd_file_system.cpp +2 -2
- package/src/duckdb/src/catalog/catalog_entry/duck_table_entry.cpp +1 -1
- package/src/duckdb/src/catalog/catalog_search_path.cpp +5 -4
- package/src/duckdb/src/catalog/default/default_functions.cpp +16 -0
- package/src/duckdb/src/common/adbc/adbc.cpp +75 -10
- package/src/duckdb/src/common/adbc/driver_manager.cpp +6 -11
- package/src/duckdb/src/common/allocator.cpp +14 -2
- package/src/duckdb/src/common/arrow/arrow_appender.cpp +5 -11
- package/src/duckdb/src/common/assert.cpp +3 -0
- package/src/duckdb/src/common/enum_util.cpp +42 -5
- package/src/duckdb/src/common/enums/logical_operator_type.cpp +4 -0
- package/src/duckdb/src/common/enums/optimizer_type.cpp +2 -0
- package/src/duckdb/src/common/enums/physical_operator_type.cpp +4 -0
- package/src/duckdb/src/common/exception.cpp +2 -2
- package/src/duckdb/src/common/file_system.cpp +19 -0
- package/src/duckdb/src/common/hive_partitioning.cpp +10 -6
- package/src/duckdb/src/common/local_file_system.cpp +2 -2
- package/src/duckdb/src/common/multi_file_reader.cpp +184 -20
- package/src/duckdb/src/common/operator/cast_operators.cpp +35 -1
- package/src/duckdb/src/common/radix_partitioning.cpp +26 -8
- package/src/duckdb/src/common/re2_regex.cpp +1 -1
- package/src/duckdb/src/common/row_operations/row_external.cpp +1 -1
- package/src/duckdb/src/common/sort/merge_sorter.cpp +9 -16
- package/src/duckdb/src/common/sort/partition_state.cpp +44 -11
- package/src/duckdb/src/common/types/batched_data_collection.cpp +7 -2
- package/src/duckdb/src/common/types/bit.cpp +51 -0
- package/src/duckdb/src/common/types/column/column_data_allocator.cpp +9 -6
- package/src/duckdb/src/common/types/column/column_data_collection.cpp +17 -2
- package/src/duckdb/src/common/types/column/column_data_collection_segment.cpp +15 -6
- package/src/duckdb/src/common/types/column/partitioned_column_data.cpp +2 -2
- package/src/duckdb/src/common/types/data_chunk.cpp +2 -2
- package/src/duckdb/src/common/types/date.cpp +9 -0
- package/src/duckdb/src/common/types/list_segment.cpp +24 -74
- package/src/duckdb/src/common/types/row/partitioned_tuple_data.cpp +3 -9
- package/src/duckdb/src/common/types/row/tuple_data_collection.cpp +2 -0
- package/src/duckdb/src/common/types/row/tuple_data_scatter_gather.cpp +2 -2
- package/src/duckdb/src/common/types/uuid.cpp +2 -2
- package/src/duckdb/src/common/types/validity_mask.cpp +33 -0
- package/src/duckdb/src/common/virtual_file_system.cpp +138 -1
- package/src/duckdb/src/core_functions/aggregate/holistic/reservoir_quantile.cpp +2 -0
- package/src/duckdb/src/core_functions/aggregate/nested/list.cpp +2 -2
- package/src/duckdb/src/core_functions/aggregate/regression/regr_avg.cpp +4 -4
- package/src/duckdb/src/core_functions/aggregate/regression/regr_intercept.cpp +4 -4
- package/src/duckdb/src/core_functions/aggregate/regression/regr_r2.cpp +5 -4
- package/src/duckdb/src/core_functions/aggregate/regression/regr_sxx_syy.cpp +8 -8
- package/src/duckdb/src/core_functions/aggregate/regression/regr_sxy.cpp +4 -3
- package/src/duckdb/src/core_functions/function_list.cpp +4 -2
- package/src/duckdb/src/core_functions/scalar/date/date_part.cpp +208 -42
- package/src/duckdb/src/core_functions/scalar/date/epoch.cpp +10 -24
- package/src/duckdb/src/core_functions/scalar/date/make_date.cpp +19 -4
- package/src/duckdb/src/core_functions/scalar/list/list_aggregates.cpp +4 -2
- package/src/duckdb/src/execution/aggregate_hashtable.cpp +34 -18
- package/src/duckdb/src/execution/expression_executor.cpp +1 -1
- package/src/duckdb/src/execution/index/art/art.cpp +149 -139
- package/src/duckdb/src/execution/index/art/fixed_size_allocator.cpp +1 -1
- package/src/duckdb/src/execution/index/art/iterator.cpp +129 -207
- package/src/duckdb/src/execution/index/art/leaf.cpp +8 -37
- package/src/duckdb/src/execution/index/art/node.cpp +113 -120
- package/src/duckdb/src/execution/index/art/node16.cpp +1 -10
- package/src/duckdb/src/execution/index/art/node256.cpp +1 -9
- package/src/duckdb/src/execution/index/art/node4.cpp +12 -13
- package/src/duckdb/src/execution/index/art/node48.cpp +1 -11
- package/src/duckdb/src/execution/index/art/prefix.cpp +228 -350
- package/src/duckdb/src/execution/join_hashtable.cpp +4 -4
- package/src/duckdb/src/execution/operator/aggregate/aggregate_object.cpp +1 -0
- package/src/duckdb/src/execution/operator/aggregate/physical_streaming_window.cpp +8 -3
- package/src/duckdb/src/execution/operator/aggregate/physical_ungrouped_aggregate.cpp +32 -22
- package/src/duckdb/src/execution/operator/aggregate/physical_window.cpp +512 -300
- package/src/duckdb/src/execution/operator/helper/physical_batch_collector.cpp +4 -3
- package/src/duckdb/src/execution/operator/helper/physical_limit.cpp +5 -5
- package/src/duckdb/src/execution/operator/join/physical_asof_join.cpp +414 -283
- package/src/duckdb/src/execution/operator/join/physical_comparison_join.cpp +1 -1
- package/src/duckdb/src/execution/operator/join/physical_hash_join.cpp +21 -10
- package/src/duckdb/src/execution/operator/join/physical_join.cpp +1 -1
- package/src/duckdb/src/execution/operator/join/physical_piecewise_merge_join.cpp +22 -3
- package/src/duckdb/src/execution/operator/join/physical_range_join.cpp +2 -2
- package/src/duckdb/src/execution/operator/persistent/base_csv_reader.cpp +100 -13
- package/src/duckdb/src/execution/operator/persistent/csv_file_handle.cpp +1 -1
- package/src/duckdb/src/execution/operator/persistent/csv_reader_options.cpp +20 -0
- package/src/duckdb/src/execution/operator/persistent/csv_rejects_table.cpp +48 -0
- package/src/duckdb/src/execution/operator/persistent/parallel_csv_reader.cpp +2 -3
- package/src/duckdb/src/execution/operator/persistent/physical_batch_copy_to_file.cpp +6 -4
- package/src/duckdb/src/execution/operator/persistent/physical_fixed_batch_copy.cpp +3 -3
- package/src/duckdb/src/execution/operator/persistent/physical_insert.cpp +1 -1
- package/src/duckdb/src/execution/operator/projection/physical_pivot.cpp +2 -1
- package/src/duckdb/src/execution/operator/scan/physical_column_data_scan.cpp +19 -0
- package/src/duckdb/src/execution/operator/scan/physical_table_scan.cpp +7 -2
- package/src/duckdb/src/execution/operator/set/physical_cte.cpp +160 -0
- package/src/duckdb/src/execution/operator/set/physical_recursive_cte.cpp +15 -5
- package/src/duckdb/src/execution/partitionable_hashtable.cpp +41 -6
- package/src/duckdb/src/execution/perfect_aggregate_hashtable.cpp +30 -5
- package/src/duckdb/src/execution/physical_plan/plan_aggregate.cpp +43 -10
- package/src/duckdb/src/execution/physical_plan/plan_cte.cpp +33 -0
- package/src/duckdb/src/execution/physical_plan/plan_get.cpp +2 -2
- package/src/duckdb/src/execution/physical_plan/plan_recursive_cte.cpp +25 -4
- package/src/duckdb/src/execution/physical_plan_generator.cpp +4 -0
- package/src/duckdb/src/execution/radix_partitioned_hashtable.cpp +290 -43
- package/src/duckdb/src/execution/window_segment_tree.cpp +286 -129
- package/src/duckdb/src/function/aggregate/sorted_aggregate_function.cpp +2 -1
- package/src/duckdb/src/function/cast/bit_cast.cpp +34 -2
- package/src/duckdb/src/function/cast/blob_cast.cpp +3 -0
- package/src/duckdb/src/function/cast/numeric_casts.cpp +2 -0
- package/src/duckdb/src/function/function.cpp +3 -1
- package/src/duckdb/src/function/scalar/compressed_materialization/compress_integral.cpp +212 -0
- package/src/duckdb/src/function/scalar/compressed_materialization/compress_string.cpp +249 -0
- package/src/duckdb/src/function/scalar/compressed_materialization_functions.cpp +29 -0
- package/src/duckdb/src/function/scalar/list/list_resize.cpp +162 -0
- package/src/duckdb/src/function/scalar/nested_functions.cpp +1 -0
- package/src/duckdb/src/function/scalar/string/like.cpp +12 -4
- package/src/duckdb/src/function/scalar/system/aggregate_export.cpp +12 -5
- package/src/duckdb/src/function/table/copy_csv.cpp +8 -1
- package/src/duckdb/src/function/table/read_csv.cpp +100 -17
- package/src/duckdb/src/function/table/table_scan.cpp +9 -0
- package/src/duckdb/src/function/table/version/pragma_version.cpp +2 -2
- package/src/duckdb/src/include/duckdb/common/adbc/adbc.hpp +1 -0
- package/src/duckdb/src/include/duckdb/common/allocator.hpp +2 -0
- package/src/duckdb/src/include/duckdb/common/bswap.hpp +42 -0
- package/src/duckdb/src/include/duckdb/common/enum_util.hpp +8 -0
- package/src/duckdb/src/include/duckdb/common/enums/cte_materialize.hpp +21 -0
- package/src/duckdb/src/include/duckdb/common/enums/joinref_type.hpp +2 -1
- package/src/duckdb/src/include/duckdb/common/enums/logical_operator_type.hpp +2 -0
- package/src/duckdb/src/include/duckdb/common/enums/optimizer_type.hpp +2 -0
- package/src/duckdb/src/include/duckdb/common/enums/physical_operator_type.hpp +2 -0
- package/src/duckdb/src/include/duckdb/common/extra_operator_info.hpp +27 -0
- package/src/duckdb/src/include/duckdb/common/file_system.hpp +2 -0
- package/src/duckdb/src/include/duckdb/common/hive_partitioning.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/multi_file_reader.hpp +6 -4
- package/src/duckdb/src/include/duckdb/common/multi_file_reader_options.hpp +10 -42
- package/src/duckdb/src/include/duckdb/common/mutex.hpp +3 -0
- package/src/duckdb/src/include/duckdb/common/operator/cast_operators.hpp +43 -3
- package/src/duckdb/src/include/duckdb/common/operator/numeric_cast.hpp +10 -0
- package/src/duckdb/src/include/duckdb/common/radix.hpp +9 -20
- package/src/duckdb/src/include/duckdb/common/radix_partitioning.hpp +6 -21
- package/src/duckdb/src/include/duckdb/common/row_operations/row_operations.hpp +3 -3
- package/src/duckdb/src/include/duckdb/common/sort/partition_state.hpp +13 -0
- package/src/duckdb/src/include/duckdb/common/types/batched_data_collection.hpp +3 -1
- package/src/duckdb/src/include/duckdb/common/types/bit.hpp +81 -0
- package/src/duckdb/src/include/duckdb/common/types/column/column_data_allocator.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/types/column/column_data_collection.hpp +6 -1
- package/src/duckdb/src/include/duckdb/common/types/column/column_data_collection_segment.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/types/column/column_data_scan_states.hpp +3 -1
- package/src/duckdb/src/include/duckdb/common/types/data_chunk.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/types/date.hpp +7 -5
- package/src/duckdb/src/include/duckdb/common/types/list_segment.hpp +6 -8
- package/src/duckdb/src/include/duckdb/common/types/row/partitioned_tuple_data.hpp +0 -1
- package/src/duckdb/src/include/duckdb/common/types/row/tuple_data_collection.hpp +1 -0
- package/src/duckdb/src/include/duckdb/common/types/row/tuple_data_states.hpp +3 -0
- package/src/duckdb/src/include/duckdb/common/types/string_type.hpp +9 -0
- package/src/duckdb/src/include/duckdb/common/virtual_file_system.hpp +38 -97
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/algebraic/corr.hpp +4 -4
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/algebraic/covar.hpp +3 -1
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/algebraic_functions.hpp +3 -1
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/distributive_functions.hpp +3 -1
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/holistic_functions.hpp +3 -1
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/nested_functions.hpp +3 -1
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/regression/regr_count.hpp +1 -0
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/regression/regr_slope.hpp +3 -3
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/regression_functions.hpp +3 -1
- package/src/duckdb/src/include/duckdb/core_functions/scalar/bit_functions.hpp +3 -1
- package/src/duckdb/src/include/duckdb/core_functions/scalar/blob_functions.hpp +3 -1
- package/src/duckdb/src/include/duckdb/core_functions/scalar/date_functions.hpp +31 -11
- package/src/duckdb/src/include/duckdb/core_functions/scalar/enum_functions.hpp +3 -1
- package/src/duckdb/src/include/duckdb/core_functions/scalar/generic_functions.hpp +3 -1
- package/src/duckdb/src/include/duckdb/core_functions/scalar/list_functions.hpp +3 -1
- package/src/duckdb/src/include/duckdb/core_functions/scalar/map_functions.hpp +3 -1
- package/src/duckdb/src/include/duckdb/core_functions/scalar/math_functions.hpp +3 -1
- package/src/duckdb/src/include/duckdb/core_functions/scalar/operators_functions.hpp +3 -1
- package/src/duckdb/src/include/duckdb/core_functions/scalar/random_functions.hpp +3 -1
- package/src/duckdb/src/include/duckdb/core_functions/scalar/string_functions.hpp +3 -1
- package/src/duckdb/src/include/duckdb/core_functions/scalar/struct_functions.hpp +3 -1
- package/src/duckdb/src/include/duckdb/core_functions/scalar/union_functions.hpp +3 -1
- package/src/duckdb/src/include/duckdb/execution/aggregate_hashtable.hpp +21 -3
- package/src/duckdb/src/include/duckdb/execution/executor.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/index/art/art.hpp +4 -5
- package/src/duckdb/src/include/duckdb/execution/index/art/iterator.hpp +31 -27
- package/src/duckdb/src/include/duckdb/execution/index/art/leaf.hpp +6 -14
- package/src/duckdb/src/include/duckdb/execution/index/art/node.hpp +4 -10
- package/src/duckdb/src/include/duckdb/execution/index/art/node16.hpp +3 -6
- package/src/duckdb/src/include/duckdb/execution/index/art/node256.hpp +3 -6
- package/src/duckdb/src/include/duckdb/execution/index/art/node4.hpp +5 -8
- package/src/duckdb/src/include/duckdb/execution/index/art/node48.hpp +3 -6
- package/src/duckdb/src/include/duckdb/execution/index/art/prefix.hpp +63 -52
- package/src/duckdb/src/include/duckdb/execution/operator/join/physical_asof_join.hpp +2 -10
- package/src/duckdb/src/include/duckdb/execution/operator/persistent/base_csv_reader.hpp +2 -2
- package/src/duckdb/src/include/duckdb/execution/operator/persistent/csv_line_info.hpp +4 -3
- package/src/duckdb/src/include/duckdb/execution/operator/persistent/csv_reader_options.hpp +8 -1
- package/src/duckdb/src/include/duckdb/execution/operator/persistent/csv_rejects_table.hpp +36 -0
- package/src/duckdb/src/include/duckdb/execution/operator/persistent/parallel_csv_reader.hpp +1 -1
- package/src/duckdb/src/include/duckdb/execution/operator/scan/physical_column_data_scan.hpp +10 -0
- package/src/duckdb/src/include/duckdb/execution/operator/scan/physical_table_scan.hpp +5 -1
- package/src/duckdb/src/include/duckdb/execution/operator/set/physical_cte.hpp +62 -0
- package/src/duckdb/src/include/duckdb/execution/operator/set/physical_recursive_cte.hpp +8 -2
- package/src/duckdb/src/include/duckdb/execution/partitionable_hashtable.hpp +5 -1
- package/src/duckdb/src/include/duckdb/execution/physical_plan_generator.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/radix_partitioned_hashtable.hpp +10 -3
- package/src/duckdb/src/include/duckdb/execution/window_segment_tree.hpp +51 -40
- package/src/duckdb/src/include/duckdb/function/aggregate_function.hpp +1 -1
- package/src/duckdb/src/include/duckdb/function/aggregate_state.hpp +2 -2
- package/src/duckdb/src/include/duckdb/function/built_in_functions.hpp +1 -0
- package/src/duckdb/src/include/duckdb/function/scalar/compressed_materialization_functions.hpp +49 -0
- package/src/duckdb/src/include/duckdb/function/scalar/list/contains_or_position.hpp +1 -1
- package/src/duckdb/src/include/duckdb/function/scalar/nested_functions.hpp +5 -0
- package/src/duckdb/src/include/duckdb/function/scalar/string_functions.hpp +2 -0
- package/src/duckdb/src/include/duckdb/main/client_config.hpp +3 -0
- package/src/duckdb/src/include/duckdb/main/config.hpp +2 -0
- package/src/duckdb/src/include/duckdb/main/connection.hpp +1 -2
- package/src/duckdb/src/include/duckdb/main/relation/cross_product_relation.hpp +4 -1
- package/src/duckdb/src/include/duckdb/main/relation/join_relation.hpp +5 -2
- package/src/duckdb/src/include/duckdb/main/relation.hpp +4 -2
- package/src/duckdb/src/include/duckdb/main/settings.hpp +30 -1
- package/src/duckdb/src/include/duckdb/optimizer/column_binding_replacer.hpp +47 -0
- package/src/duckdb/src/include/duckdb/optimizer/compressed_materialization.hpp +132 -0
- package/src/duckdb/src/include/duckdb/optimizer/deliminator.hpp +13 -16
- package/src/duckdb/src/include/duckdb/optimizer/filter_pushdown.hpp +3 -0
- package/src/duckdb/src/include/duckdb/optimizer/join_order/cardinality_estimator.hpp +1 -1
- package/src/duckdb/src/include/duckdb/optimizer/join_order/estimated_properties.hpp +10 -1
- package/src/duckdb/src/include/duckdb/optimizer/join_order/join_order_optimizer.hpp +1 -1
- package/src/duckdb/src/include/duckdb/optimizer/join_order/join_relation.hpp +1 -1
- package/src/duckdb/src/include/duckdb/optimizer/join_order/query_graph.hpp +3 -0
- package/src/duckdb/src/include/duckdb/optimizer/matcher/set_matcher.hpp +13 -0
- package/src/duckdb/src/include/duckdb/optimizer/optimizer.hpp +3 -0
- package/src/duckdb/src/include/duckdb/optimizer/remove_duplicate_groups.hpp +40 -0
- package/src/duckdb/src/include/duckdb/optimizer/statistics_propagator.hpp +11 -3
- package/src/duckdb/src/include/duckdb/optimizer/topn_optimizer.hpp +2 -0
- package/src/duckdb/src/include/duckdb/parallel/pipeline.hpp +2 -0
- package/src/duckdb/src/include/duckdb/parallel/task_scheduler.hpp +5 -0
- package/src/duckdb/src/include/duckdb/parser/common_table_expression_info.hpp +2 -0
- package/src/duckdb/src/include/duckdb/parser/expression/between_expression.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/expression/cast_expression.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/expression/collate_expression.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/expression/columnref_expression.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/expression/comparison_expression.hpp +3 -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 +3 -0
- package/src/duckdb/src/include/duckdb/parser/expression/lambda_expression.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/expression/positional_reference_expression.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/expression/window_expression.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/query_node/cte_node.hpp +54 -0
- package/src/duckdb/src/include/duckdb/parser/query_node/list.hpp +1 -0
- package/src/duckdb/src/include/duckdb/parser/query_node.hpp +2 -1
- package/src/duckdb/src/include/duckdb/parser/tableref/emptytableref.hpp +1 -0
- package/src/duckdb/src/include/duckdb/parser/tableref/joinref.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/tableref/subqueryref.hpp +3 -0
- package/src/duckdb/src/include/duckdb/parser/tokens.hpp +1 -0
- package/src/duckdb/src/include/duckdb/parser/transformer.hpp +15 -8
- package/src/duckdb/src/include/duckdb/planner/binder.hpp +8 -5
- package/src/duckdb/src/include/duckdb/planner/bound_tokens.hpp +1 -0
- package/src/duckdb/src/include/duckdb/planner/column_binding.hpp +4 -0
- package/src/duckdb/src/include/duckdb/planner/constraints/bound_unique_constraint.hpp +3 -3
- package/src/duckdb/src/include/duckdb/planner/expression_binder/lateral_binder.hpp +0 -2
- package/src/duckdb/src/include/duckdb/planner/logical_tokens.hpp +1 -0
- package/src/duckdb/src/include/duckdb/planner/operator/list.hpp +2 -1
- package/src/duckdb/src/include/duckdb/planner/operator/logical_comparison_join.hpp +5 -5
- package/src/duckdb/src/include/duckdb/planner/operator/logical_cteref.hpp +7 -2
- package/src/duckdb/src/include/duckdb/planner/operator/logical_dependent_join.hpp +43 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_get.hpp +4 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_materialized_cte.hpp +49 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_recursive_cte.hpp +5 -4
- package/src/duckdb/src/include/duckdb/planner/query_node/bound_cte_node.hpp +44 -0
- package/src/duckdb/src/include/duckdb/planner/query_node/list.hpp +1 -0
- package/src/duckdb/src/include/duckdb/planner/subquery/flatten_dependent_join.hpp +2 -2
- package/src/duckdb/src/include/duckdb/planner/subquery/has_correlated_expressions.hpp +4 -1
- package/src/duckdb/src/include/duckdb/planner/subquery/recursive_dependent_join_planner.hpp +31 -0
- package/src/duckdb/src/include/duckdb/planner/subquery/rewrite_correlated_expressions.hpp +8 -2
- package/src/duckdb/src/include/duckdb/planner/tableref/bound_cteref.hpp +5 -2
- package/src/duckdb/src/include/duckdb/storage/arena_allocator.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/block_manager.hpp +3 -3
- package/src/duckdb/src/include/duckdb/storage/data_table.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/object_cache.hpp +22 -0
- package/src/duckdb/src/include/duckdb/storage/single_file_block_manager.hpp +2 -0
- package/src/duckdb/src/include/duckdb/storage/statistics/string_stats.hpp +4 -0
- package/src/duckdb/src/include/duckdb/storage/table/chunk_info.hpp +3 -0
- package/src/duckdb/src/include/duckdb/storage/table/row_group.hpp +3 -2
- package/src/duckdb/src/include/duckdb/storage/table/row_group_collection.hpp +1 -3
- package/src/duckdb/src/include/duckdb/transaction/local_storage.hpp +2 -3
- package/src/duckdb/src/include/duckdb.h +28 -0
- package/src/duckdb/src/main/capi/arrow-c.cpp +155 -1
- package/src/duckdb/src/main/capi/duckdb_value-c.cpp +1 -1
- package/src/duckdb/src/main/config.cpp +3 -0
- package/src/duckdb/src/main/database.cpp +1 -1
- package/src/duckdb/src/main/extension/extension_helper.cpp +96 -89
- package/src/duckdb/src/main/extension/extension_install.cpp +6 -0
- package/src/duckdb/src/main/extension/extension_load.cpp +10 -1
- package/src/duckdb/src/main/relation/cross_product_relation.cpp +4 -3
- package/src/duckdb/src/main/relation/join_relation.cpp +5 -5
- package/src/duckdb/src/main/relation.cpp +6 -5
- package/src/duckdb/src/main/settings/settings.cpp +64 -18
- package/src/duckdb/src/optimizer/column_binding_replacer.cpp +43 -0
- package/src/duckdb/src/optimizer/column_lifetime_analyzer.cpp +1 -2
- package/src/duckdb/src/optimizer/compressed_materialization/compress_aggregate.cpp +140 -0
- package/src/duckdb/src/optimizer/compressed_materialization/compress_distinct.cpp +42 -0
- package/src/duckdb/src/optimizer/compressed_materialization/compress_order.cpp +65 -0
- package/src/duckdb/src/optimizer/compressed_materialization.cpp +478 -0
- package/src/duckdb/src/optimizer/deliminator.cpp +176 -321
- package/src/duckdb/src/optimizer/filter_pushdown.cpp +9 -0
- package/src/duckdb/src/optimizer/join_order/estimated_properties.cpp +7 -0
- package/src/duckdb/src/optimizer/join_order/join_node.cpp +2 -2
- package/src/duckdb/src/optimizer/join_order/join_order_optimizer.cpp +113 -82
- package/src/duckdb/src/optimizer/join_order/join_relation_set.cpp +2 -6
- package/src/duckdb/src/optimizer/join_order/query_graph.cpp +22 -14
- package/src/duckdb/src/optimizer/optimizer.cpp +51 -14
- package/src/duckdb/src/optimizer/pushdown/pushdown_cross_product.cpp +5 -5
- package/src/duckdb/src/optimizer/pushdown/pushdown_get.cpp +0 -1
- package/src/duckdb/src/optimizer/remove_duplicate_groups.cpp +127 -0
- package/src/duckdb/src/optimizer/remove_unused_columns.cpp +4 -0
- package/src/duckdb/src/optimizer/rule/regex_optimizations.cpp +154 -15
- package/src/duckdb/src/optimizer/statistics/operator/propagate_join.cpp +65 -8
- package/src/duckdb/src/optimizer/statistics/operator/propagate_order.cpp +1 -1
- package/src/duckdb/src/optimizer/statistics_propagator.cpp +7 -5
- package/src/duckdb/src/optimizer/topn_optimizer.cpp +20 -10
- package/src/duckdb/src/parallel/executor.cpp +15 -0
- package/src/duckdb/src/parallel/task_scheduler.cpp +11 -2
- package/src/duckdb/src/parser/common_table_expression_info.cpp +2 -0
- package/src/duckdb/src/parser/expression/between_expression.cpp +3 -15
- package/src/duckdb/src/parser/expression/case_expression.cpp +0 -13
- package/src/duckdb/src/parser/expression/cast_expression.cpp +3 -14
- package/src/duckdb/src/parser/expression/collate_expression.cpp +3 -13
- package/src/duckdb/src/parser/expression/columnref_expression.cpp +3 -12
- package/src/duckdb/src/parser/expression/comparison_expression.cpp +3 -13
- package/src/duckdb/src/parser/expression/conjunction_expression.cpp +0 -12
- package/src/duckdb/src/parser/expression/constant_expression.cpp +3 -11
- package/src/duckdb/src/parser/expression/default_expression.cpp +0 -4
- package/src/duckdb/src/parser/expression/function_expression.cpp +3 -32
- package/src/duckdb/src/parser/expression/lambda_expression.cpp +4 -14
- package/src/duckdb/src/parser/expression/operator_expression.cpp +0 -12
- package/src/duckdb/src/parser/expression/parameter_expression.cpp +0 -12
- package/src/duckdb/src/parser/expression/positional_reference_expression.cpp +4 -11
- package/src/duckdb/src/parser/expression/star_expression.cpp +0 -19
- package/src/duckdb/src/parser/expression/subquery_expression.cpp +0 -18
- package/src/duckdb/src/parser/expression/window_expression.cpp +3 -39
- package/src/duckdb/src/parser/parsed_expression.cpp +0 -70
- package/src/duckdb/src/parser/parsed_expression_iterator.cpp +7 -0
- package/src/duckdb/src/parser/parser.cpp +8 -2
- package/src/duckdb/src/parser/query_node/cte_node.cpp +58 -0
- package/src/duckdb/src/parser/query_node/recursive_cte_node.cpp +0 -19
- package/src/duckdb/src/parser/query_node/select_node.cpp +0 -29
- package/src/duckdb/src/parser/query_node/set_operation_node.cpp +0 -15
- package/src/duckdb/src/parser/query_node.cpp +15 -37
- package/src/duckdb/src/parser/result_modifier.cpp +0 -74
- package/src/duckdb/src/parser/tableref/basetableref.cpp +0 -19
- package/src/duckdb/src/parser/tableref/emptytableref.cpp +0 -4
- package/src/duckdb/src/parser/tableref/expressionlistref.cpp +0 -15
- package/src/duckdb/src/parser/tableref/joinref.cpp +3 -23
- package/src/duckdb/src/parser/tableref/pivotref.cpp +0 -23
- package/src/duckdb/src/parser/tableref/subqueryref.cpp +3 -13
- package/src/duckdb/src/parser/tableref/table_function.cpp +0 -15
- package/src/duckdb/src/parser/tableref.cpp +0 -44
- package/src/duckdb/src/parser/transform/expression/transform_constant.cpp +55 -3
- package/src/duckdb/src/parser/transform/expression/transform_expression.cpp +2 -0
- package/src/duckdb/src/parser/transform/expression/transform_multi_assign_reference.cpp +44 -0
- package/src/duckdb/src/parser/transform/helpers/transform_cte.cpp +19 -1
- package/src/duckdb/src/parser/transform/statement/transform_copy.cpp +13 -0
- package/src/duckdb/src/parser/transform/statement/transform_delete.cpp +6 -1
- package/src/duckdb/src/parser/transform/statement/transform_insert.cpp +6 -1
- package/src/duckdb/src/parser/transform/statement/transform_pivot_stmt.cpp +7 -2
- package/src/duckdb/src/parser/transform/statement/transform_pragma.cpp +14 -11
- package/src/duckdb/src/parser/transform/statement/transform_select_node.cpp +11 -2
- package/src/duckdb/src/parser/transform/statement/transform_update.cpp +6 -1
- package/src/duckdb/src/parser/transformer.cpp +15 -0
- package/src/duckdb/src/planner/binder/query_node/bind_cte_node.cpp +64 -0
- package/src/duckdb/src/planner/binder/query_node/plan_cte_node.cpp +26 -0
- package/src/duckdb/src/planner/binder/query_node/plan_recursive_cte_node.cpp +5 -5
- package/src/duckdb/src/planner/binder/query_node/plan_setop.cpp +4 -4
- package/src/duckdb/src/planner/binder/query_node/plan_subquery.cpp +32 -29
- package/src/duckdb/src/planner/binder/statement/bind_create_table.cpp +5 -4
- package/src/duckdb/src/planner/binder/tableref/bind_basetableref.cpp +11 -2
- package/src/duckdb/src/planner/binder/tableref/bind_joinref.cpp +32 -5
- package/src/duckdb/src/planner/binder/tableref/bind_pivot.cpp +116 -49
- package/src/duckdb/src/planner/binder/tableref/plan_cteref.cpp +1 -1
- package/src/duckdb/src/planner/binder/tableref/plan_joinref.cpp +61 -26
- package/src/duckdb/src/planner/binder/tableref/plan_subqueryref.cpp +3 -3
- package/src/duckdb/src/planner/binder.cpp +5 -0
- package/src/duckdb/src/planner/expression/bound_aggregate_expression.cpp +1 -1
- package/src/duckdb/src/planner/expression_binder/lateral_binder.cpp +4 -31
- package/src/duckdb/src/planner/expression_binder.cpp +3 -0
- package/src/duckdb/src/planner/expression_iterator.cpp +6 -0
- package/src/duckdb/src/planner/logical_operator.cpp +5 -0
- package/src/duckdb/src/planner/logical_operator_visitor.cpp +2 -0
- package/src/duckdb/src/planner/operator/logical_cteref.cpp +3 -1
- package/src/duckdb/src/planner/operator/logical_dependent_join.cpp +26 -0
- package/src/duckdb/src/planner/operator/logical_get.cpp +9 -4
- package/src/duckdb/src/planner/operator/logical_materialized_cte.cpp +21 -0
- package/src/duckdb/src/planner/subquery/flatten_dependent_join.cpp +90 -38
- package/src/duckdb/src/planner/subquery/has_correlated_expressions.cpp +22 -7
- package/src/duckdb/src/planner/subquery/rewrite_correlated_expressions.cpp +65 -7
- package/src/duckdb/src/storage/arena_allocator.cpp +1 -2
- package/src/duckdb/src/storage/buffer/block_manager.cpp +3 -0
- package/src/duckdb/src/storage/checkpoint_manager.cpp +3 -0
- package/src/duckdb/src/storage/compression/rle.cpp +0 -1
- package/src/duckdb/src/storage/data_table.cpp +1 -1
- package/src/duckdb/src/storage/local_storage.cpp +3 -3
- package/src/duckdb/src/storage/serialization/serialize_parsed_expression.cpp +340 -0
- package/src/duckdb/src/storage/serialization/serialize_query_node.cpp +122 -0
- package/src/duckdb/src/storage/serialization/serialize_result_modifier.cpp +86 -0
- package/src/duckdb/src/storage/serialization/serialize_tableref.cpp +166 -0
- package/src/duckdb/src/storage/single_file_block_manager.cpp +23 -0
- package/src/duckdb/src/storage/statistics/string_stats.cpp +21 -2
- package/src/duckdb/src/storage/storage_info.cpp +1 -1
- package/src/duckdb/src/storage/table/chunk_info.cpp +17 -0
- package/src/duckdb/src/storage/table/row_group.cpp +25 -9
- package/src/duckdb/src/storage/table/row_group_collection.cpp +19 -18
- package/src/duckdb/third_party/concurrentqueue/concurrentqueue.h +2 -2
- package/src/duckdb/third_party/concurrentqueue/lightweightsemaphore.h +76 -0
- package/src/duckdb/third_party/fast_float/fast_float/fast_float.h +2 -0
- package/src/duckdb/third_party/httplib/httplib.hpp +10 -1
- package/src/duckdb/third_party/libpg_query/include/nodes/parsenodes.hpp +9 -0
- 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 +12487 -12331
- package/src/duckdb/ub_extension_icu_third_party_icu_i18n.cpp +6 -6
- package/src/duckdb/ub_src_execution_index_art.cpp +0 -2
- package/src/duckdb/ub_src_execution_operator_persistent.cpp +2 -0
- package/src/duckdb/ub_src_execution_operator_set.cpp +2 -0
- package/src/duckdb/ub_src_execution_physical_plan.cpp +2 -0
- package/src/duckdb/ub_src_function_scalar.cpp +2 -0
- package/src/duckdb/ub_src_function_scalar_compressed_materialization.cpp +4 -0
- package/src/duckdb/ub_src_function_scalar_list.cpp +2 -0
- package/src/duckdb/ub_src_optimizer.cpp +6 -0
- package/src/duckdb/ub_src_optimizer_compressed_materialization.cpp +6 -0
- package/src/duckdb/ub_src_optimizer_statistics_expression.cpp +0 -2
- package/src/duckdb/ub_src_parser_query_node.cpp +2 -0
- package/src/duckdb/ub_src_parser_transform_expression.cpp +2 -0
- package/src/duckdb/ub_src_planner_binder_query_node.cpp +4 -0
- package/src/duckdb/ub_src_planner_operator.cpp +4 -0
- package/src/duckdb/ub_src_storage_serialization.cpp +8 -0
- package/src/statement.cpp +10 -3
- package/test/test_all_types.test.ts +233 -0
- package/tsconfig.json +1 -0
- package/src/duckdb/src/execution/index/art/prefix_segment.cpp +0 -42
- package/src/duckdb/src/include/duckdb/execution/index/art/prefix_segment.hpp +0 -40
- package/src/duckdb/src/optimizer/statistics/expression/propagate_and_compress.cpp +0 -118
@@ -34,28 +34,26 @@ struct LinkedList {
|
|
34
34
|
|
35
35
|
// forward declarations
|
36
36
|
struct ListSegmentFunctions;
|
37
|
-
typedef ListSegment *(*create_segment_t)(const ListSegmentFunctions &functions,
|
37
|
+
typedef ListSegment *(*create_segment_t)(const ListSegmentFunctions &functions, ArenaAllocator &allocator,
|
38
38
|
uint16_t capacity);
|
39
|
-
typedef void (*write_data_to_segment_t)(const ListSegmentFunctions &functions,
|
39
|
+
typedef void (*write_data_to_segment_t)(const ListSegmentFunctions &functions, ArenaAllocator &allocator,
|
40
40
|
ListSegment *segment, Vector &input, idx_t &entry_idx, idx_t &count);
|
41
41
|
typedef void (*read_data_from_segment_t)(const ListSegmentFunctions &functions, const ListSegment *segment,
|
42
42
|
Vector &result, idx_t &total_count);
|
43
43
|
typedef ListSegment *(*copy_data_from_segment_t)(const ListSegmentFunctions &functions, const ListSegment *source,
|
44
|
-
|
45
|
-
typedef void (*destroy_segment_t)(const ListSegmentFunctions &functions, ListSegment *segment, Allocator &allocator);
|
44
|
+
ArenaAllocator &allocator);
|
46
45
|
|
47
46
|
struct ListSegmentFunctions {
|
48
47
|
create_segment_t create_segment;
|
49
48
|
write_data_to_segment_t write_data;
|
50
49
|
read_data_from_segment_t read_data;
|
51
50
|
copy_data_from_segment_t copy_data;
|
52
|
-
destroy_segment_t destroy;
|
53
51
|
vector<ListSegmentFunctions> child_functions;
|
54
52
|
|
55
|
-
void AppendRow(
|
53
|
+
void AppendRow(ArenaAllocator &allocator, LinkedList &linked_list, Vector &input, idx_t &entry_idx,
|
54
|
+
idx_t &count) const;
|
56
55
|
void BuildListVector(const LinkedList &linked_list, Vector &result, idx_t &initial_total_count) const;
|
57
|
-
void CopyLinkedList(const LinkedList &source_list, LinkedList &target_list,
|
58
|
-
void Destroy(Allocator &allocator, LinkedList &linked_list) const;
|
56
|
+
void CopyLinkedList(const LinkedList &source_list, LinkedList &target_list, ArenaAllocator &allocator) const;
|
59
57
|
};
|
60
58
|
|
61
59
|
void GetSegmentDataFunctions(ListSegmentFunctions &functions, const LogicalType &type);
|
@@ -17,6 +17,7 @@ namespace duckdb {
|
|
17
17
|
class TupleDataAllocator;
|
18
18
|
struct TupleDataScatterFunction;
|
19
19
|
struct TupleDataGatherFunction;
|
20
|
+
struct RowOperationsState;
|
20
21
|
|
21
22
|
typedef void (*tuple_data_scatter_function_t)(const Vector &source, const TupleDataVectorFormat &source_format,
|
22
23
|
const SelectionVector &append_sel, const idx_t append_count,
|
@@ -38,6 +38,9 @@ struct CombinedListData {
|
|
38
38
|
};
|
39
39
|
|
40
40
|
struct TupleDataVectorFormat {
|
41
|
+
const SelectionVector *original_sel;
|
42
|
+
SelectionVector original_owned_sel;
|
43
|
+
|
41
44
|
UnifiedVectorFormat data;
|
42
45
|
vector<TupleDataVectorFormat> child_formats;
|
43
46
|
unique_ptr<CombinedListData> combined_list_data;
|
@@ -83,6 +83,10 @@ public:
|
|
83
83
|
return value.pointer.prefix;
|
84
84
|
}
|
85
85
|
|
86
|
+
char *GetPrefixWriteable() const {
|
87
|
+
return (char *)value.pointer.prefix;
|
88
|
+
}
|
89
|
+
|
86
90
|
idx_t GetSize() const {
|
87
91
|
return value.inlined.length;
|
88
92
|
}
|
@@ -95,6 +99,11 @@ public:
|
|
95
99
|
return GetString();
|
96
100
|
}
|
97
101
|
|
102
|
+
char *GetPointer() const {
|
103
|
+
D_ASSERT(!IsInlined());
|
104
|
+
return value.pointer.ptr;
|
105
|
+
}
|
106
|
+
|
98
107
|
void SetPointer(char *new_ptr) {
|
99
108
|
D_ASSERT(!IsInlined());
|
100
109
|
value.pointer.ptr = new_ptr;
|
@@ -10,6 +10,7 @@
|
|
10
10
|
|
11
11
|
#include "duckdb/common/file_system.hpp"
|
12
12
|
#include "duckdb/common/map.hpp"
|
13
|
+
#include "duckdb/common/unordered_set.hpp"
|
13
14
|
|
14
15
|
namespace duckdb {
|
15
16
|
|
@@ -22,120 +23,60 @@ public:
|
|
22
23
|
FileCompressionType compression = FileCompressionType::UNCOMPRESSED,
|
23
24
|
FileOpener *opener = nullptr) override;
|
24
25
|
|
25
|
-
void Read(FileHandle &handle, void *buffer, int64_t nr_bytes, idx_t location) override
|
26
|
-
|
27
|
-
};
|
26
|
+
void Read(FileHandle &handle, void *buffer, int64_t nr_bytes, idx_t location) override;
|
27
|
+
void Write(FileHandle &handle, void *buffer, int64_t nr_bytes, idx_t location) override;
|
28
28
|
|
29
|
-
|
30
|
-
handle.file_system.Write(handle, buffer, nr_bytes, location);
|
31
|
-
}
|
29
|
+
int64_t Read(FileHandle &handle, void *buffer, int64_t nr_bytes) override;
|
32
30
|
|
33
|
-
int64_t
|
34
|
-
return handle.file_system.Read(handle, buffer, nr_bytes);
|
35
|
-
}
|
31
|
+
int64_t Write(FileHandle &handle, void *buffer, int64_t nr_bytes) override;
|
36
32
|
|
37
|
-
int64_t
|
38
|
-
|
39
|
-
|
33
|
+
int64_t GetFileSize(FileHandle &handle) override;
|
34
|
+
time_t GetLastModifiedTime(FileHandle &handle) override;
|
35
|
+
FileType GetFileType(FileHandle &handle) override;
|
40
36
|
|
41
|
-
|
42
|
-
return handle.file_system.GetFileSize(handle);
|
43
|
-
}
|
44
|
-
time_t GetLastModifiedTime(FileHandle &handle) override {
|
45
|
-
return handle.file_system.GetLastModifiedTime(handle);
|
46
|
-
}
|
47
|
-
FileType GetFileType(FileHandle &handle) override {
|
48
|
-
return handle.file_system.GetFileType(handle);
|
49
|
-
}
|
37
|
+
void Truncate(FileHandle &handle, int64_t new_size) override;
|
50
38
|
|
51
|
-
void
|
52
|
-
handle.file_system.Truncate(handle, new_size);
|
53
|
-
}
|
54
|
-
|
55
|
-
void FileSync(FileHandle &handle) override {
|
56
|
-
handle.file_system.FileSync(handle);
|
57
|
-
}
|
39
|
+
void FileSync(FileHandle &handle) override;
|
58
40
|
|
59
41
|
// need to look up correct fs for this
|
60
|
-
bool DirectoryExists(const string &directory) override
|
61
|
-
|
62
|
-
}
|
63
|
-
void CreateDirectory(const string &directory) override {
|
64
|
-
FindFileSystem(directory)->CreateDirectory(directory);
|
65
|
-
}
|
42
|
+
bool DirectoryExists(const string &directory) override;
|
43
|
+
void CreateDirectory(const string &directory) override;
|
66
44
|
|
67
|
-
void RemoveDirectory(const string &directory) override
|
68
|
-
FindFileSystem(directory)->RemoveDirectory(directory);
|
69
|
-
}
|
45
|
+
void RemoveDirectory(const string &directory) override;
|
70
46
|
|
71
47
|
bool ListFiles(const string &directory, const std::function<void(const string &, bool)> &callback,
|
72
|
-
FileOpener *opener = nullptr) override
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
void RegisterSubSystem(unique_ptr<FileSystem> fs) override {
|
96
|
-
sub_systems.push_back(std::move(fs));
|
97
|
-
}
|
98
|
-
|
99
|
-
void UnregisterSubSystem(const string &name) override {
|
100
|
-
for (auto sub_system = sub_systems.begin(); sub_system != sub_systems.end(); sub_system++) {
|
101
|
-
if (sub_system->get()->GetName() == name) {
|
102
|
-
sub_systems.erase(sub_system);
|
103
|
-
return;
|
104
|
-
}
|
105
|
-
}
|
106
|
-
throw InvalidInputException("Could not find filesystem with name %s", name);
|
107
|
-
}
|
108
|
-
|
109
|
-
void RegisterSubSystem(FileCompressionType compression_type, unique_ptr<FileSystem> fs) override {
|
110
|
-
compressed_fs[compression_type] = std::move(fs);
|
111
|
-
}
|
112
|
-
|
113
|
-
vector<string> ListSubSystems() override {
|
114
|
-
vector<string> names(sub_systems.size());
|
115
|
-
for (idx_t i = 0; i < sub_systems.size(); i++) {
|
116
|
-
names[i] = sub_systems[i]->GetName();
|
117
|
-
}
|
118
|
-
return names;
|
119
|
-
}
|
120
|
-
|
121
|
-
std::string GetName() const override {
|
122
|
-
return "VirtualFileSystem";
|
123
|
-
}
|
48
|
+
FileOpener *opener = nullptr) override;
|
49
|
+
|
50
|
+
void MoveFile(const string &source, const string &target) override;
|
51
|
+
|
52
|
+
bool FileExists(const string &filename) override;
|
53
|
+
|
54
|
+
bool IsPipe(const string &filename) override;
|
55
|
+
virtual void RemoveFile(const string &filename) override;
|
56
|
+
|
57
|
+
virtual vector<string> Glob(const string &path, FileOpener *opener = nullptr) override;
|
58
|
+
|
59
|
+
void RegisterSubSystem(unique_ptr<FileSystem> fs) override;
|
60
|
+
|
61
|
+
void UnregisterSubSystem(const string &name) override;
|
62
|
+
|
63
|
+
void RegisterSubSystem(FileCompressionType compression_type, unique_ptr<FileSystem> fs) override;
|
64
|
+
|
65
|
+
vector<string> ListSubSystems() override;
|
66
|
+
|
67
|
+
std::string GetName() const override;
|
68
|
+
|
69
|
+
void SetDisabledFileSystems(const vector<string> &names) override;
|
124
70
|
|
125
71
|
private:
|
126
|
-
FileSystem
|
127
|
-
|
128
|
-
if (sub_system->CanHandleFile(path)) {
|
129
|
-
return sub_system.get();
|
130
|
-
}
|
131
|
-
}
|
132
|
-
return default_fs.get();
|
133
|
-
}
|
72
|
+
FileSystem &FindFileSystem(const string &path);
|
73
|
+
FileSystem &FindFileSystemInternal(const string &path);
|
134
74
|
|
135
75
|
private:
|
136
76
|
vector<unique_ptr<FileSystem>> sub_systems;
|
137
77
|
map<FileCompressionType, unique_ptr<FileSystem>> compressed_fs;
|
138
78
|
const unique_ptr<FileSystem> default_fs;
|
79
|
+
unordered_set<string> disabled_file_systems;
|
139
80
|
};
|
140
81
|
|
141
82
|
} // namespace duckdb
|
@@ -31,10 +31,10 @@ struct CorrOperation {
|
|
31
31
|
}
|
32
32
|
|
33
33
|
template <class A_TYPE, class B_TYPE, class STATE, class OP>
|
34
|
-
static void Operation(STATE &state, const A_TYPE &
|
35
|
-
CovarOperation::Operation<A_TYPE, B_TYPE, CovarState, OP>(state.cov_pop,
|
36
|
-
STDDevBaseOperation::Execute<A_TYPE, StddevState>(state.dev_pop_x,
|
37
|
-
STDDevBaseOperation::Execute<B_TYPE, StddevState>(state.dev_pop_y,
|
34
|
+
static void Operation(STATE &state, const A_TYPE &y, const B_TYPE &x, AggregateBinaryInput &idata) {
|
35
|
+
CovarOperation::Operation<A_TYPE, B_TYPE, CovarState, OP>(state.cov_pop, y, x, idata);
|
36
|
+
STDDevBaseOperation::Execute<A_TYPE, StddevState>(state.dev_pop_x, x);
|
37
|
+
STDDevBaseOperation::Execute<B_TYPE, StddevState>(state.dev_pop_y, y);
|
38
38
|
}
|
39
39
|
|
40
40
|
template <class STATE, class OP>
|
@@ -5,6 +5,7 @@
|
|
5
5
|
//
|
6
6
|
//
|
7
7
|
//===----------------------------------------------------------------------===//
|
8
|
+
// COVAR_POP(y,x)
|
8
9
|
|
9
10
|
#pragma once
|
10
11
|
|
@@ -29,7 +30,7 @@ struct CovarOperation {
|
|
29
30
|
}
|
30
31
|
|
31
32
|
template <class A_TYPE, class B_TYPE, class STATE, class OP>
|
32
|
-
static void Operation(STATE &state, const A_TYPE &
|
33
|
+
static void Operation(STATE &state, const A_TYPE &y, const B_TYPE &x, AggregateBinaryInput &idata) {
|
33
34
|
// update running mean and d^2
|
34
35
|
const uint64_t n = ++(state.count);
|
35
36
|
|
@@ -39,6 +40,7 @@ struct CovarOperation {
|
|
39
40
|
const double dy = (y - state.meany);
|
40
41
|
const double meany = state.meany + dy / n;
|
41
42
|
|
43
|
+
// Schubert and Gertz SSDBM 2018 (4.3)
|
42
44
|
const double C = state.co_moment + dx * (y - meany);
|
43
45
|
|
44
46
|
state.meanx = meanx;
|
@@ -5,7 +5,9 @@
|
|
5
5
|
//
|
6
6
|
//
|
7
7
|
//===----------------------------------------------------------------------===//
|
8
|
-
// This file is generated by scripts/generate_functions.py
|
8
|
+
// This file is automatically generated by scripts/generate_functions.py
|
9
|
+
// Do not edit this file manually, your changes will be overwritten
|
10
|
+
//===----------------------------------------------------------------------===//
|
9
11
|
|
10
12
|
#pragma once
|
11
13
|
|
@@ -5,7 +5,9 @@
|
|
5
5
|
//
|
6
6
|
//
|
7
7
|
//===----------------------------------------------------------------------===//
|
8
|
-
// This file is generated by scripts/generate_functions.py
|
8
|
+
// This file is automatically generated by scripts/generate_functions.py
|
9
|
+
// Do not edit this file manually, your changes will be overwritten
|
10
|
+
//===----------------------------------------------------------------------===//
|
9
11
|
|
10
12
|
#pragma once
|
11
13
|
|
@@ -5,7 +5,9 @@
|
|
5
5
|
//
|
6
6
|
//
|
7
7
|
//===----------------------------------------------------------------------===//
|
8
|
-
// This file is generated by scripts/generate_functions.py
|
8
|
+
// This file is automatically generated by scripts/generate_functions.py
|
9
|
+
// Do not edit this file manually, your changes will be overwritten
|
10
|
+
//===----------------------------------------------------------------------===//
|
9
11
|
|
10
12
|
#pragma once
|
11
13
|
|
@@ -5,7 +5,9 @@
|
|
5
5
|
//
|
6
6
|
//
|
7
7
|
//===----------------------------------------------------------------------===//
|
8
|
-
// This file is generated by scripts/generate_functions.py
|
8
|
+
// This file is automatically generated by scripts/generate_functions.py
|
9
|
+
// Do not edit this file manually, your changes will be overwritten
|
10
|
+
//===----------------------------------------------------------------------===//
|
9
11
|
|
10
12
|
#pragma once
|
11
13
|
|
@@ -25,9 +25,9 @@ struct RegrSlopeOperation {
|
|
25
25
|
}
|
26
26
|
|
27
27
|
template <class A_TYPE, class B_TYPE, class STATE, class OP>
|
28
|
-
static void Operation(STATE &state, const A_TYPE &
|
29
|
-
CovarOperation::Operation<A_TYPE, B_TYPE, CovarState, OP>(state.cov_pop,
|
30
|
-
STDDevBaseOperation::Execute<A_TYPE, StddevState>(state.var_pop,
|
28
|
+
static void Operation(STATE &state, const A_TYPE &y, const B_TYPE &x, AggregateBinaryInput &idata) {
|
29
|
+
CovarOperation::Operation<A_TYPE, B_TYPE, CovarState, OP>(state.cov_pop, y, x,idata);
|
30
|
+
STDDevBaseOperation::Execute<A_TYPE, StddevState>(state.var_pop, x);
|
31
31
|
}
|
32
32
|
|
33
33
|
template <class STATE, class OP>
|
@@ -5,7 +5,9 @@
|
|
5
5
|
//
|
6
6
|
//
|
7
7
|
//===----------------------------------------------------------------------===//
|
8
|
-
// This file is generated by scripts/generate_functions.py
|
8
|
+
// This file is automatically generated by scripts/generate_functions.py
|
9
|
+
// Do not edit this file manually, your changes will be overwritten
|
10
|
+
//===----------------------------------------------------------------------===//
|
9
11
|
|
10
12
|
#pragma once
|
11
13
|
|
@@ -5,7 +5,9 @@
|
|
5
5
|
//
|
6
6
|
//
|
7
7
|
//===----------------------------------------------------------------------===//
|
8
|
-
// This file is generated by scripts/generate_functions.py
|
8
|
+
// This file is automatically generated by scripts/generate_functions.py
|
9
|
+
// Do not edit this file manually, your changes will be overwritten
|
10
|
+
//===----------------------------------------------------------------------===//
|
9
11
|
|
10
12
|
#pragma once
|
11
13
|
|
@@ -5,7 +5,9 @@
|
|
5
5
|
//
|
6
6
|
//
|
7
7
|
//===----------------------------------------------------------------------===//
|
8
|
-
// This file is generated by scripts/generate_functions.py
|
8
|
+
// This file is automatically generated by scripts/generate_functions.py
|
9
|
+
// Do not edit this file manually, your changes will be overwritten
|
10
|
+
//===----------------------------------------------------------------------===//
|
9
11
|
|
10
12
|
#pragma once
|
11
13
|
|
@@ -5,7 +5,9 @@
|
|
5
5
|
//
|
6
6
|
//
|
7
7
|
//===----------------------------------------------------------------------===//
|
8
|
-
// This file is generated by scripts/generate_functions.py
|
8
|
+
// This file is automatically generated by scripts/generate_functions.py
|
9
|
+
// Do not edit this file manually, your changes will be overwritten
|
10
|
+
//===----------------------------------------------------------------------===//
|
9
11
|
|
10
12
|
#pragma once
|
11
13
|
|
@@ -162,8 +164,8 @@ struct DecadeFun {
|
|
162
164
|
|
163
165
|
struct EpochFun {
|
164
166
|
static constexpr const char *Name = "epoch";
|
165
|
-
static constexpr const char *Parameters = "
|
166
|
-
static constexpr const char *Description = "Extract the epoch component from a
|
167
|
+
static constexpr const char *Parameters = "temporal";
|
168
|
+
static constexpr const char *Description = "Extract the epoch component from a temporal type";
|
167
169
|
static constexpr const char *Example = "epoch(timestamp '2021-08-03 11:59:44.123456')";
|
168
170
|
|
169
171
|
static ScalarFunctionSet GetFunctions();
|
@@ -171,11 +173,29 @@ struct EpochFun {
|
|
171
173
|
|
172
174
|
struct EpochMsFun {
|
173
175
|
static constexpr const char *Name = "epoch_ms";
|
174
|
-
static constexpr const char *Parameters = "
|
175
|
-
static constexpr const char *Description = "
|
176
|
-
static constexpr const char *Example = "epoch_ms(
|
176
|
+
static constexpr const char *Parameters = "temporal";
|
177
|
+
static constexpr const char *Description = "Extract the epoch component in milliseconds from a temporal type";
|
178
|
+
static constexpr const char *Example = "epoch_ms(timestamp '2021-08-03 11:59:44.123456')";
|
177
179
|
|
178
|
-
static
|
180
|
+
static ScalarFunctionSet GetFunctions();
|
181
|
+
};
|
182
|
+
|
183
|
+
struct EpochUsFun {
|
184
|
+
static constexpr const char *Name = "epoch_us";
|
185
|
+
static constexpr const char *Parameters = "temporal";
|
186
|
+
static constexpr const char *Description = "Extract the epoch component in microseconds from a temporal type";
|
187
|
+
static constexpr const char *Example = "epoch_us(timestamp '2021-08-03 11:59:44.123456')";
|
188
|
+
|
189
|
+
static ScalarFunctionSet GetFunctions();
|
190
|
+
};
|
191
|
+
|
192
|
+
struct EpochNsFun {
|
193
|
+
static constexpr const char *Name = "epoch_ns";
|
194
|
+
static constexpr const char *Parameters = "temporal";
|
195
|
+
static constexpr const char *Description = "Extract the epoch component in nanoseconds from a temporal type";
|
196
|
+
static constexpr const char *Example = "epoch_ns(timestamp '2021-08-03 11:59:44.123456')";
|
197
|
+
|
198
|
+
static ScalarFunctionSet GetFunctions();
|
179
199
|
};
|
180
200
|
|
181
201
|
struct EraFun {
|
@@ -277,7 +297,7 @@ struct MakeTimestampFun {
|
|
277
297
|
static constexpr const char *Description = "The timestamp for the given parts";
|
278
298
|
static constexpr const char *Example = "make_timestamp(1992, 9, 20, 13, 34, 27.123456)";
|
279
299
|
|
280
|
-
static
|
300
|
+
static ScalarFunctionSet GetFunctions();
|
281
301
|
};
|
282
302
|
|
283
303
|
struct MicrosecondsFun {
|
@@ -472,8 +492,8 @@ struct ToSecondsFun {
|
|
472
492
|
struct ToTimestampFun {
|
473
493
|
static constexpr const char *Name = "to_timestamp";
|
474
494
|
static constexpr const char *Parameters = "sec";
|
475
|
-
static constexpr const char *Description = "Converts
|
476
|
-
static constexpr const char *Example = "to_timestamp(
|
495
|
+
static constexpr const char *Description = "Converts secs since epoch to a timestamp with time zone";
|
496
|
+
static constexpr const char *Example = "to_timestamp(1284352323.5)";
|
477
497
|
|
478
498
|
static ScalarFunction GetFunction();
|
479
499
|
};
|
@@ -490,7 +510,7 @@ struct ToYearsFun {
|
|
490
510
|
struct TryStrpTimeFun {
|
491
511
|
static constexpr const char *Name = "try_strptime";
|
492
512
|
static constexpr const char *Parameters = "text,format";
|
493
|
-
static constexpr const char *Description = "Converts string to timestamp
|
513
|
+
static constexpr const char *Description = "Converts string to timestamp using the format string (timestamp with time zone if %Z is specified). Returns NULL on failure.";
|
494
514
|
static constexpr const char *Example = "try_strptime('Wed, 1 January 1992 - 08:38:40 PM', '%a, %-d %B %Y - %I:%M:%S %p')";
|
495
515
|
|
496
516
|
static ScalarFunctionSet GetFunctions();
|
@@ -5,7 +5,9 @@
|
|
5
5
|
//
|
6
6
|
//
|
7
7
|
//===----------------------------------------------------------------------===//
|
8
|
-
// This file is generated by scripts/generate_functions.py
|
8
|
+
// This file is automatically generated by scripts/generate_functions.py
|
9
|
+
// Do not edit this file manually, your changes will be overwritten
|
10
|
+
//===----------------------------------------------------------------------===//
|
9
11
|
|
10
12
|
#pragma once
|
11
13
|
|
@@ -5,7 +5,9 @@
|
|
5
5
|
//
|
6
6
|
//
|
7
7
|
//===----------------------------------------------------------------------===//
|
8
|
-
// This file is generated by scripts/generate_functions.py
|
8
|
+
// This file is automatically generated by scripts/generate_functions.py
|
9
|
+
// Do not edit this file manually, your changes will be overwritten
|
10
|
+
//===----------------------------------------------------------------------===//
|
9
11
|
|
10
12
|
#pragma once
|
11
13
|
|
@@ -5,7 +5,9 @@
|
|
5
5
|
//
|
6
6
|
//
|
7
7
|
//===----------------------------------------------------------------------===//
|
8
|
-
// This file is generated by scripts/generate_functions.py
|
8
|
+
// This file is automatically generated by scripts/generate_functions.py
|
9
|
+
// Do not edit this file manually, your changes will be overwritten
|
10
|
+
//===----------------------------------------------------------------------===//
|
9
11
|
|
10
12
|
#pragma once
|
11
13
|
|
@@ -5,7 +5,9 @@
|
|
5
5
|
//
|
6
6
|
//
|
7
7
|
//===----------------------------------------------------------------------===//
|
8
|
-
// This file is generated by scripts/generate_functions.py
|
8
|
+
// This file is automatically generated by scripts/generate_functions.py
|
9
|
+
// Do not edit this file manually, your changes will be overwritten
|
10
|
+
//===----------------------------------------------------------------------===//
|
9
11
|
|
10
12
|
#pragma once
|
11
13
|
|
@@ -5,7 +5,9 @@
|
|
5
5
|
//
|
6
6
|
//
|
7
7
|
//===----------------------------------------------------------------------===//
|
8
|
-
// This file is generated by scripts/generate_functions.py
|
8
|
+
// This file is automatically generated by scripts/generate_functions.py
|
9
|
+
// Do not edit this file manually, your changes will be overwritten
|
10
|
+
//===----------------------------------------------------------------------===//
|
9
11
|
|
10
12
|
#pragma once
|
11
13
|
|
@@ -5,7 +5,9 @@
|
|
5
5
|
//
|
6
6
|
//
|
7
7
|
//===----------------------------------------------------------------------===//
|
8
|
-
// This file is generated by scripts/generate_functions.py
|
8
|
+
// This file is automatically generated by scripts/generate_functions.py
|
9
|
+
// Do not edit this file manually, your changes will be overwritten
|
10
|
+
//===----------------------------------------------------------------------===//
|
9
11
|
|
10
12
|
#pragma once
|
11
13
|
|
@@ -5,7 +5,9 @@
|
|
5
5
|
//
|
6
6
|
//
|
7
7
|
//===----------------------------------------------------------------------===//
|
8
|
-
// This file is generated by scripts/generate_functions.py
|
8
|
+
// This file is automatically generated by scripts/generate_functions.py
|
9
|
+
// Do not edit this file manually, your changes will be overwritten
|
10
|
+
//===----------------------------------------------------------------------===//
|
9
11
|
|
10
12
|
#pragma once
|
11
13
|
|
@@ -5,7 +5,9 @@
|
|
5
5
|
//
|
6
6
|
//
|
7
7
|
//===----------------------------------------------------------------------===//
|
8
|
-
// This file is generated by scripts/generate_functions.py
|
8
|
+
// This file is automatically generated by scripts/generate_functions.py
|
9
|
+
// Do not edit this file manually, your changes will be overwritten
|
10
|
+
//===----------------------------------------------------------------------===//
|
9
11
|
|
10
12
|
#pragma once
|
11
13
|
|
@@ -5,7 +5,9 @@
|
|
5
5
|
//
|
6
6
|
//
|
7
7
|
//===----------------------------------------------------------------------===//
|
8
|
-
// This file is generated by scripts/generate_functions.py
|
8
|
+
// This file is automatically generated by scripts/generate_functions.py
|
9
|
+
// Do not edit this file manually, your changes will be overwritten
|
10
|
+
//===----------------------------------------------------------------------===//
|
9
11
|
|
10
12
|
#pragma once
|
11
13
|
|
@@ -5,7 +5,9 @@
|
|
5
5
|
//
|
6
6
|
//
|
7
7
|
//===----------------------------------------------------------------------===//
|
8
|
-
// This file is generated by scripts/generate_functions.py
|
8
|
+
// This file is automatically generated by scripts/generate_functions.py
|
9
|
+
// Do not edit this file manually, your changes will be overwritten
|
10
|
+
//===----------------------------------------------------------------------===//
|
9
11
|
|
10
12
|
#pragma once
|
11
13
|
|