duckdb 0.8.2-dev161.0 → 0.8.2-dev1764.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_create.cpp +21 -2
- package/src/duckdb/extension/json/json_functions/json_structure.cpp +1 -1
- package/src/duckdb/extension/json/json_functions/json_transform.cpp +91 -38
- 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 +194 -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 +79 -12
- package/src/duckdb/src/common/arrow/arrow_converter.cpp +44 -19
- package/src/duckdb/src/common/assert.cpp +3 -0
- package/src/duckdb/src/common/enum_util.cpp +4619 -4446
- 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/extra_type_info.cpp +506 -0
- 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 +14 -14
- 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 +70 -50
- 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/types/value.cpp +11 -6
- package/src/duckdb/src/common/types.cpp +9 -656
- 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 +444 -284
- 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_iejoin.cpp +28 -12
- package/src/duckdb/src/execution/operator/join/physical_join.cpp +1 -1
- package/src/duckdb/src/execution/operator/join/physical_piecewise_merge_join.cpp +23 -4
- package/src/duckdb/src/execution/operator/join/physical_range_join.cpp +41 -5
- 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_asof_join.cpp +56 -33
- package/src/duckdb/src/execution/physical_plan/plan_comparison_join.cpp +17 -13
- 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/pragma/pragma_queries.cpp +5 -0
- 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/arrow.cpp +19 -0
- package/src/duckdb/src/function/table/arrow_conversion.cpp +35 -1
- 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/system/test_all_types.cpp +7 -0
- package/src/duckdb/src/function/table/system_functions.cpp +1 -0
- package/src/duckdb/src/function/table/table_scan.cpp +9 -0
- package/src/duckdb/src/function/table/version/pragma_version.cpp +46 -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/dl.hpp +3 -1
- package/src/duckdb/src/include/duckdb/common/enum_util.hpp +616 -584
- 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/extra_type_info.hpp +219 -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/opener_file_system.hpp +2 -2
- 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 +23 -8
- package/src/duckdb/src/include/duckdb/common/string_util.hpp +11 -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 +5 -2
- 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/types/value.hpp +1 -0
- package/src/duckdb/src/include/duckdb/common/types.hpp +1 -15
- 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 +3 -10
- package/src/duckdb/src/include/duckdb/execution/operator/join/physical_iejoin.hpp +1 -1
- package/src/duckdb/src/include/duckdb/execution/operator/join/physical_piecewise_merge_join.hpp +1 -1
- package/src/duckdb/src/include/duckdb/execution/operator/join/physical_range_join.hpp +12 -1
- 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/function/table/system_functions.hpp +4 -0
- package/src/duckdb/src/include/duckdb/main/client_config.hpp +5 -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/extension/generated_extension_loader.hpp +22 -0
- package/src/duckdb/src/include/duckdb/main/extension_entries.hpp +2 -0
- 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 +39 -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 +12 -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 +4 -0
- package/src/duckdb/src/main/database.cpp +1 -1
- package/src/duckdb/src/main/extension/extension_helper.cpp +93 -88
- package/src/duckdb/src/main/extension/extension_install.cpp +9 -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 +79 -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 +49 -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 +64 -26
- package/src/duckdb/src/planner/binder/tableref/plan_subqueryref.cpp +3 -3
- package/src/duckdb/src/planner/binder.cpp +44 -31
- 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/serialization/serialize_types.cpp +127 -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_common.cpp +2 -0
- 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 +10 -0
- package/src/statement.cpp +10 -3
- package/test/columns.test.ts +24 -1
- package/test/test_all_types.test.ts +234 -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
package/binding.gyp
CHANGED
@@ -75,8 +75,9 @@
|
|
75
75
|
"src/duckdb/ub_src_function.cpp",
|
76
76
|
"src/duckdb/ub_src_function_cast.cpp",
|
77
77
|
"src/duckdb/ub_src_function_pragma.cpp",
|
78
|
-
"src/duckdb/
|
78
|
+
"src/duckdb/ub_src_function_scalar_compressed_materialization.cpp",
|
79
79
|
"src/duckdb/ub_src_function_scalar.cpp",
|
80
|
+
"src/duckdb/ub_src_function_scalar_generic.cpp",
|
80
81
|
"src/duckdb/ub_src_function_scalar_list.cpp",
|
81
82
|
"src/duckdb/ub_src_function_scalar_operators.cpp",
|
82
83
|
"src/duckdb/ub_src_function_scalar_sequence.cpp",
|
@@ -94,6 +95,7 @@
|
|
94
95
|
"src/duckdb/ub_src_main_relation.cpp",
|
95
96
|
"src/duckdb/ub_src_main_settings.cpp",
|
96
97
|
"src/duckdb/ub_src_optimizer.cpp",
|
98
|
+
"src/duckdb/ub_src_optimizer_compressed_materialization.cpp",
|
97
99
|
"src/duckdb/ub_src_optimizer_join_order.cpp",
|
98
100
|
"src/duckdb/ub_src_optimizer_matcher.cpp",
|
99
101
|
"src/duckdb/ub_src_optimizer_pullup.cpp",
|
@@ -130,6 +132,7 @@
|
|
130
132
|
"src/duckdb/ub_src_storage_checkpoint.cpp",
|
131
133
|
"src/duckdb/ub_src_storage_compression.cpp",
|
132
134
|
"src/duckdb/ub_src_storage_compression_chimp.cpp",
|
135
|
+
"src/duckdb/ub_src_storage_serialization.cpp",
|
133
136
|
"src/duckdb/ub_src_storage_statistics.cpp",
|
134
137
|
"src/duckdb/ub_src_storage_table.cpp",
|
135
138
|
"src/duckdb/ub_src_transaction.cpp",
|
@@ -237,18 +240,18 @@
|
|
237
240
|
"src/duckdb/third_party/zstd/compress/zstd_lazy.cpp",
|
238
241
|
"src/duckdb/third_party/zstd/compress/zstd_ldm.cpp",
|
239
242
|
"src/duckdb/third_party/zstd/compress/zstd_opt.cpp",
|
240
|
-
"src/duckdb/extension/icu/./icu-datepart.cpp",
|
241
|
-
"src/duckdb/extension/icu/./icu-timezone.cpp",
|
242
|
-
"src/duckdb/extension/icu/./icu-makedate.cpp",
|
243
|
-
"src/duckdb/extension/icu/./icu-table-range.cpp",
|
244
|
-
"src/duckdb/extension/icu/./icu-datefunc.cpp",
|
245
243
|
"src/duckdb/extension/icu/./icu-list-range.cpp",
|
246
|
-
"src/duckdb/extension/icu/./icu-
|
244
|
+
"src/duckdb/extension/icu/./icu-table-range.cpp",
|
247
245
|
"src/duckdb/extension/icu/./icu-datesub.cpp",
|
246
|
+
"src/duckdb/extension/icu/./icu-dateadd.cpp",
|
248
247
|
"src/duckdb/extension/icu/./icu-timebucket.cpp",
|
249
|
-
"src/duckdb/extension/icu/./icu-
|
248
|
+
"src/duckdb/extension/icu/./icu-makedate.cpp",
|
249
|
+
"src/duckdb/extension/icu/./icu-timezone.cpp",
|
250
|
+
"src/duckdb/extension/icu/./icu-datefunc.cpp",
|
251
|
+
"src/duckdb/extension/icu/./icu-datepart.cpp",
|
250
252
|
"src/duckdb/extension/icu/./icu_extension.cpp",
|
251
253
|
"src/duckdb/extension/icu/./icu-datetrunc.cpp",
|
254
|
+
"src/duckdb/extension/icu/./icu-strptime.cpp",
|
252
255
|
"src/duckdb/ub_extension_icu_third_party_icu_common.cpp",
|
253
256
|
"src/duckdb/ub_extension_icu_third_party_icu_i18n.cpp",
|
254
257
|
"src/duckdb/extension/icu/third_party/icu/stubdata/stubdata.cpp",
|
@@ -298,10 +301,10 @@
|
|
298
301
|
],
|
299
302
|
"defines": [
|
300
303
|
"NAPI_DISABLE_CPP_EXCEPTIONS=1",
|
301
|
-
"NAPI_VERSION=
|
302
|
-
"
|
303
|
-
"
|
304
|
-
"
|
304
|
+
"NAPI_VERSION=6",
|
305
|
+
"DUCKDB_EXTENSION_PARQUET_LINKED",
|
306
|
+
"DUCKDB_EXTENSION_ICU_LINKED",
|
307
|
+
"DUCKDB_EXTENSION_JSON_LINKED"
|
305
308
|
],
|
306
309
|
"cflags_cc": [
|
307
310
|
"-frtti",
|
package/binding.gyp.in
CHANGED
package/configure.py
CHANGED
@@ -20,7 +20,7 @@ scripts_dir = 'scripts'
|
|
20
20
|
sys.path.append(scripts_dir)
|
21
21
|
import package_build
|
22
22
|
|
23
|
-
defines = ['
|
23
|
+
defines = ['DUCKDB_EXTENSION_{}_LINKED'.format(ext.upper()) for ext in extensions]
|
24
24
|
|
25
25
|
if os.environ.get('DUCKDB_NODE_BUILD_CACHE') == '1' and os.path.isfile(cache_file):
|
26
26
|
with open(cache_file, 'rb') as f:
|
@@ -0,0 +1,10 @@
|
|
1
|
+
################################################################################
|
2
|
+
# NodeJS DuckDB extension config
|
3
|
+
################################################################################
|
4
|
+
#
|
5
|
+
# This is the default extension configuration for NodeJS builds. Basically it means that all these extensions are
|
6
|
+
# "baked in" to the NodeJS binaries Note that the configuration here is only when building Node using the main
|
7
|
+
# CMakeLists.txt file with the `BUILD_R` variable.
|
8
|
+
# TODO: unify this by making setup.py also use this configuration, making this the config for all Node builds
|
9
|
+
duckdb_extension_load(json)
|
10
|
+
duckdb_extension_load(icu)
|
package/package.json
CHANGED
@@ -198,7 +198,7 @@ struct ICUDateAdd : public ICUDateFunc {
|
|
198
198
|
D_ASSERT(args.ColumnCount() == 1);
|
199
199
|
|
200
200
|
auto &func_expr = state.expr.Cast<BoundFunctionExpression>();
|
201
|
-
auto &info =
|
201
|
+
auto &info = func_expr.bind_info->Cast<BindData>();
|
202
202
|
CalendarPtr calendar(info.calendar->clone());
|
203
203
|
|
204
204
|
auto end_date = Timestamp::GetCurrentTimestamp();
|
@@ -218,7 +218,7 @@ struct ICUDateAdd : public ICUDateFunc {
|
|
218
218
|
D_ASSERT(args.ColumnCount() == 2);
|
219
219
|
|
220
220
|
auto &func_expr = state.expr.Cast<BoundFunctionExpression>();
|
221
|
-
auto &info =
|
221
|
+
auto &info = func_expr.bind_info->Cast<BindData>();
|
222
222
|
CalendarPtr calendar(info.calendar->clone());
|
223
223
|
|
224
224
|
BinaryExecutor::Execute<TA, TB, TR>(args.data[0], args.data[1], result, args.size(), [&](TA left, TB right) {
|
@@ -37,7 +37,7 @@ ICUDateFunc::BindData::BindData(ClientContext &context) {
|
|
37
37
|
}
|
38
38
|
|
39
39
|
bool ICUDateFunc::BindData::Equals(const FunctionData &other_p) const {
|
40
|
-
auto &other =
|
40
|
+
auto &other = other_p.Cast<const BindData>();
|
41
41
|
return *calendar == *other.calendar;
|
42
42
|
}
|
43
43
|
|
@@ -271,7 +271,7 @@ struct ICUDatePart : public ICUDateFunc {
|
|
271
271
|
auto &date_arg = args.data[1];
|
272
272
|
|
273
273
|
auto &func_expr = state.expr.Cast<BoundFunctionExpression>();
|
274
|
-
auto &info =
|
274
|
+
auto &info = func_expr.bind_info->Cast<BIND_TYPE>();
|
275
275
|
CalendarPtr calendar_ptr(info.calendar->clone());
|
276
276
|
auto calendar = calendar_ptr.get();
|
277
277
|
|
@@ -293,7 +293,7 @@ struct ICUDatePart : public ICUDateFunc {
|
|
293
293
|
static void StructFunction(DataChunk &args, ExpressionState &state, Vector &result) {
|
294
294
|
using BIND_TYPE = BindAdapterData<int64_t>;
|
295
295
|
auto &func_expr = state.expr.Cast<BoundFunctionExpression>();
|
296
|
-
auto &info =
|
296
|
+
auto &info = func_expr.bind_info->Cast<BIND_TYPE>();
|
297
297
|
CalendarPtr calendar_ptr(info.calendar->clone());
|
298
298
|
auto calendar = calendar_ptr.get();
|
299
299
|
|
@@ -96,7 +96,7 @@ struct ICUCalendarSub : public ICUDateFunc {
|
|
96
96
|
auto &enddate_arg = args.data[2];
|
97
97
|
|
98
98
|
auto &func_expr = state.expr.Cast<BoundFunctionExpression>();
|
99
|
-
auto &info =
|
99
|
+
auto &info = func_expr.bind_info->Cast<BindData>();
|
100
100
|
CalendarPtr calendar(info.calendar->clone());
|
101
101
|
|
102
102
|
if (part_arg.GetVectorType() == VectorType::CONSTANT_VECTOR) {
|
@@ -218,7 +218,7 @@ struct ICUCalendarDiff : public ICUDateFunc {
|
|
218
218
|
auto &enddate_arg = args.data[2];
|
219
219
|
|
220
220
|
auto &func_expr = state.expr.Cast<BoundFunctionExpression>();
|
221
|
-
auto &info =
|
221
|
+
auto &info = func_expr.bind_info->Cast<BindData>();
|
222
222
|
CalendarPtr calendar_ptr(info.calendar->clone());
|
223
223
|
auto calendar = calendar_ptr.get();
|
224
224
|
|
@@ -99,7 +99,7 @@ struct ICUDateTrunc : public ICUDateFunc {
|
|
99
99
|
auto &date_arg = args.data[1];
|
100
100
|
|
101
101
|
auto &func_expr = state.expr.Cast<BoundFunctionExpression>();
|
102
|
-
auto &info =
|
102
|
+
auto &info = func_expr.bind_info->Cast<BindData>();
|
103
103
|
CalendarPtr calendar(info.calendar->clone());
|
104
104
|
|
105
105
|
if (part_arg.GetVectorType() == VectorType::CONSTANT_VECTOR) {
|
@@ -128,7 +128,7 @@ struct ICUListRange : public ICUDateFunc {
|
|
128
128
|
D_ASSERT(args.ColumnCount() == 3);
|
129
129
|
|
130
130
|
auto &func_expr = state.expr.Cast<BoundFunctionExpression>();
|
131
|
-
auto &bind_info =
|
131
|
+
auto &bind_info = func_expr.bind_info->Cast<BindData>();
|
132
132
|
CalendarPtr calendar_ptr(bind_info.calendar->clone());
|
133
133
|
auto calendar = calendar_ptr.get();
|
134
134
|
|
@@ -85,6 +85,12 @@ struct ICUMakeTimestampTZFunc : public ICUDateFunc {
|
|
85
85
|
return GetTime(calendar, micros);
|
86
86
|
}
|
87
87
|
|
88
|
+
template <typename T>
|
89
|
+
static void FromMicros(DataChunk &input, ExpressionState &state, Vector &result) {
|
90
|
+
UnaryExecutor::Execute<T, timestamp_t>(input.data[0], result, input.size(),
|
91
|
+
[&](T micros) { return timestamp_t(micros); });
|
92
|
+
}
|
93
|
+
|
88
94
|
template <typename T>
|
89
95
|
static void Execute(DataChunk &input, ExpressionState &state, Vector &result) {
|
90
96
|
auto &func_expr = state.expr.Cast<BoundFunctionExpression>();
|
@@ -138,6 +144,7 @@ struct ICUMakeTimestampTZFunc : public ICUDateFunc {
|
|
138
144
|
ScalarFunctionSet set(name);
|
139
145
|
set.AddFunction(GetSenaryFunction<int64_t>(LogicalType::BIGINT));
|
140
146
|
set.AddFunction(GetSeptenaryFunction<int64_t>(LogicalType::BIGINT));
|
147
|
+
set.AddFunction(ScalarFunction({LogicalType::BIGINT}, LogicalType::TIMESTAMP_TZ, FromMicros<int64_t>));
|
141
148
|
|
142
149
|
CreateScalarFunctionInfo func_info(set);
|
143
150
|
auto &catalog = Catalog::GetSystemCatalog(context);
|
@@ -249,8 +249,8 @@ struct ICUStrptime : public ICUDateFunc {
|
|
249
249
|
|
250
250
|
static bool CastFromVarchar(Vector &source, Vector &result, idx_t count, CastParameters ¶meters) {
|
251
251
|
auto &cast_data = parameters.cast_data->Cast<CastData>();
|
252
|
-
auto info =
|
253
|
-
CalendarPtr cal(info
|
252
|
+
auto &info = cast_data.info->Cast<BindData>();
|
253
|
+
CalendarPtr cal(info.calendar->clone());
|
254
254
|
|
255
255
|
UnaryExecutor::ExecuteWithNulls<string_t, timestamp_t>(
|
256
256
|
source, result, count, [&](string_t input, ValidityMask &mask, idx_t idx) {
|
@@ -476,8 +476,8 @@ struct ICUStrftime : public ICUDateFunc {
|
|
476
476
|
|
477
477
|
static bool CastToVarchar(Vector &source, Vector &result, idx_t count, CastParameters ¶meters) {
|
478
478
|
auto &cast_data = parameters.cast_data->Cast<CastData>();
|
479
|
-
auto info =
|
480
|
-
CalendarPtr calendar(info
|
479
|
+
auto &info = cast_data.info->Cast<BindData>();
|
480
|
+
CalendarPtr calendar(info.calendar->clone());
|
481
481
|
|
482
482
|
UnaryExecutor::ExecuteWithNulls<timestamp_t, string_t>(source, result, count,
|
483
483
|
[&](timestamp_t input, ValidityMask &mask, idx_t idx) {
|
@@ -55,7 +55,7 @@ struct ICUTableRange {
|
|
55
55
|
bool greater_than_check;
|
56
56
|
|
57
57
|
bool Equals(const FunctionData &other_p) const override {
|
58
|
-
auto &other =
|
58
|
+
auto &other = other_p.Cast<const BindData>();
|
59
59
|
return other.start == start && other.end == end && other.increment == increment &&
|
60
60
|
other.inclusive_bound == inclusive_bound && other.greater_than_check == greater_than_check &&
|
61
61
|
*calendar == *other.calendar;
|
@@ -65,7 +65,7 @@ struct ICUTableRange {
|
|
65
65
|
return make_uniq<BindData>(*this);
|
66
66
|
}
|
67
67
|
|
68
|
-
bool Finished(timestamp_t current_value) {
|
68
|
+
bool Finished(timestamp_t current_value) const {
|
69
69
|
if (greater_than_check) {
|
70
70
|
if (inclusive_bound) {
|
71
71
|
return current_value > end;
|
@@ -139,15 +139,15 @@ struct ICUTableRange {
|
|
139
139
|
};
|
140
140
|
|
141
141
|
static unique_ptr<GlobalTableFunctionState> Init(ClientContext &context, TableFunctionInitInput &input) {
|
142
|
-
auto &bind_data =
|
142
|
+
auto &bind_data = input.bind_data->Cast<BindData>();
|
143
143
|
return make_uniq<State>(bind_data.start);
|
144
144
|
}
|
145
145
|
|
146
146
|
static void ICUTableRangeFunction(ClientContext &context, TableFunctionInput &data_p, DataChunk &output) {
|
147
|
-
auto &bind_data =
|
147
|
+
auto &bind_data = data_p.bind_data->Cast<BindData>();
|
148
148
|
CalendarPtr calendar_ptr(bind_data.calendar->clone());
|
149
149
|
auto calendar = calendar_ptr.get();
|
150
|
-
auto &state =
|
150
|
+
auto &state = data_p.global_state->Cast<State>();
|
151
151
|
if (state.finished) {
|
152
152
|
return;
|
153
153
|
}
|
@@ -75,8 +75,8 @@ struct ICUTimeBucket : public ICUDateFunc {
|
|
75
75
|
|
76
76
|
static inline timestamp_t WidthConvertibleToDaysCommon(int32_t bucket_width_days, const timestamp_t ts,
|
77
77
|
const timestamp_t origin, icu::Calendar *calendar) {
|
78
|
-
|
79
|
-
|
78
|
+
const auto trunc_days = TruncationFactory(DatePartSpecifier::DAY);
|
79
|
+
const auto sub_days = SubtractFactory(DatePartSpecifier::DAY);
|
80
80
|
|
81
81
|
uint64_t tmp_micros = SetTime(calendar, ts);
|
82
82
|
trunc_days(calendar, tmp_micros);
|
@@ -97,8 +97,8 @@ struct ICUTimeBucket : public ICUDateFunc {
|
|
97
97
|
|
98
98
|
static inline timestamp_t WidthConvertibleToMonthsCommon(int32_t bucket_width_months, const timestamp_t ts,
|
99
99
|
const timestamp_t origin, icu::Calendar *calendar) {
|
100
|
-
|
101
|
-
|
100
|
+
const auto trunc_months = TruncationFactory(DatePartSpecifier::MONTH);
|
101
|
+
const auto sub_months = SubtractFactory(DatePartSpecifier::MONTH);
|
102
102
|
|
103
103
|
uint64_t tmp_micros = SetTime(calendar, ts);
|
104
104
|
trunc_months(calendar, tmp_micros);
|
@@ -126,7 +126,7 @@ struct ICUTimeBucket : public ICUDateFunc {
|
|
126
126
|
D_ASSERT(args.ColumnCount() == 2);
|
127
127
|
|
128
128
|
auto &func_expr = state.expr.Cast<BoundFunctionExpression>();
|
129
|
-
auto &info =
|
129
|
+
auto &info = func_expr.bind_info->Cast<BindData>();
|
130
130
|
CalendarPtr calendar(info.calendar->clone());
|
131
131
|
|
132
132
|
BinaryExecutor::Execute<TA, TB, TR>(args.data[0], args.data[1], result, args.size(), [&](TA left, TB right) {
|
@@ -139,7 +139,7 @@ struct ICUTimeBucket : public ICUDateFunc {
|
|
139
139
|
D_ASSERT(args.ColumnCount() == 3);
|
140
140
|
|
141
141
|
auto &func_expr = state.expr.Cast<BoundFunctionExpression>();
|
142
|
-
auto &info =
|
142
|
+
auto &info = func_expr.bind_info->Cast<BindData>();
|
143
143
|
CalendarPtr calendar(info.calendar->clone());
|
144
144
|
|
145
145
|
TernaryExecutor::Execute<TA, TB, TC, TR>(
|
@@ -153,7 +153,7 @@ struct ICUTimeBucket : public ICUDateFunc {
|
|
153
153
|
if (!Value::IsFinite(ts)) {
|
154
154
|
return ts;
|
155
155
|
}
|
156
|
-
|
156
|
+
const auto origin = Timestamp::FromEpochMicroSeconds(DEFAULT_ORIGIN_MICROS_1);
|
157
157
|
return WidthConvertibleToMicrosCommon(bucket_width.micros, ts, origin, calendar);
|
158
158
|
}
|
159
159
|
};
|
@@ -163,7 +163,7 @@ struct ICUTimeBucket : public ICUDateFunc {
|
|
163
163
|
if (!Value::IsFinite(ts)) {
|
164
164
|
return ts;
|
165
165
|
}
|
166
|
-
|
166
|
+
const auto origin = Timestamp::FromEpochMicroSeconds(DEFAULT_ORIGIN_MICROS_1);
|
167
167
|
return WidthConvertibleToDaysCommon(bucket_width.days, ts, origin, calendar);
|
168
168
|
}
|
169
169
|
};
|
@@ -173,7 +173,7 @@ struct ICUTimeBucket : public ICUDateFunc {
|
|
173
173
|
if (!Value::IsFinite(ts)) {
|
174
174
|
return ts;
|
175
175
|
}
|
176
|
-
|
176
|
+
const auto origin = Timestamp::FromEpochMicroSeconds(DEFAULT_ORIGIN_MICROS_2);
|
177
177
|
return WidthConvertibleToMonthsCommon(bucket_width.months, ts, origin, calendar);
|
178
178
|
}
|
179
179
|
};
|
@@ -200,7 +200,7 @@ struct ICUTimeBucket : public ICUDateFunc {
|
|
200
200
|
if (!Value::IsFinite(ts)) {
|
201
201
|
return ts;
|
202
202
|
}
|
203
|
-
|
203
|
+
const auto origin = Timestamp::FromEpochMicroSeconds(DEFAULT_ORIGIN_MICROS_1);
|
204
204
|
return Add(calendar,
|
205
205
|
WidthConvertibleToMicrosCommon(bucket_width.micros, Sub(calendar, ts, offset), origin, calendar),
|
206
206
|
offset);
|
@@ -213,7 +213,7 @@ struct ICUTimeBucket : public ICUDateFunc {
|
|
213
213
|
if (!Value::IsFinite(ts)) {
|
214
214
|
return ts;
|
215
215
|
}
|
216
|
-
|
216
|
+
const auto origin = Timestamp::FromEpochMicroSeconds(DEFAULT_ORIGIN_MICROS_1);
|
217
217
|
return Add(calendar,
|
218
218
|
WidthConvertibleToDaysCommon(bucket_width.days, Sub(calendar, ts, offset), origin, calendar),
|
219
219
|
offset);
|
@@ -226,7 +226,7 @@ struct ICUTimeBucket : public ICUDateFunc {
|
|
226
226
|
if (!Value::IsFinite(ts)) {
|
227
227
|
return ts;
|
228
228
|
}
|
229
|
-
|
229
|
+
const auto origin = Timestamp::FromEpochMicroSeconds(DEFAULT_ORIGIN_MICROS_2);
|
230
230
|
return Add(calendar,
|
231
231
|
WidthConvertibleToMonthsCommon(bucket_width.months, Sub(calendar, ts, offset), origin, calendar),
|
232
232
|
offset);
|
@@ -358,7 +358,7 @@ struct ICUTimeBucket : public ICUDateFunc {
|
|
358
358
|
D_ASSERT(args.ColumnCount() == 2);
|
359
359
|
|
360
360
|
auto &func_expr = state.expr.Cast<BoundFunctionExpression>();
|
361
|
-
auto &info =
|
361
|
+
auto &info = func_expr.bind_info->Cast<BindData>();
|
362
362
|
CalendarPtr calendar_ptr(info.calendar->clone());
|
363
363
|
auto calendar = calendar_ptr.get();
|
364
364
|
SetTimeZone(calendar, string_t("UTC"));
|
@@ -414,7 +414,7 @@ struct ICUTimeBucket : public ICUDateFunc {
|
|
414
414
|
D_ASSERT(args.ColumnCount() == 3);
|
415
415
|
|
416
416
|
auto &func_expr = state.expr.Cast<BoundFunctionExpression>();
|
417
|
-
auto &info =
|
417
|
+
auto &info = func_expr.bind_info->Cast<BindData>();
|
418
418
|
CalendarPtr calendar_ptr(info.calendar->clone());
|
419
419
|
auto calendar = calendar_ptr.get();
|
420
420
|
SetTimeZone(calendar, string_t("UTC"));
|
@@ -479,7 +479,7 @@ struct ICUTimeBucket : public ICUDateFunc {
|
|
479
479
|
D_ASSERT(args.ColumnCount() == 3);
|
480
480
|
|
481
481
|
auto &func_expr = state.expr.Cast<BoundFunctionExpression>();
|
482
|
-
auto &info =
|
482
|
+
auto &info = func_expr.bind_info->Cast<BindData>();
|
483
483
|
CalendarPtr calendar_ptr(info.calendar->clone());
|
484
484
|
auto calendar = calendar_ptr.get();
|
485
485
|
SetTimeZone(calendar, string_t("UTC"));
|
@@ -547,7 +547,7 @@ struct ICUTimeBucket : public ICUDateFunc {
|
|
547
547
|
D_ASSERT(args.ColumnCount() == 3);
|
548
548
|
|
549
549
|
auto &func_expr = state.expr.Cast<BoundFunctionExpression>();
|
550
|
-
auto &info =
|
550
|
+
auto &info = func_expr.bind_info->Cast<BindData>();
|
551
551
|
CalendarPtr calendar_ptr(info.calendar->clone());
|
552
552
|
auto calendar = calendar_ptr.get();
|
553
553
|
|
@@ -40,7 +40,7 @@ static duckdb::unique_ptr<GlobalTableFunctionState> ICUTimeZoneInit(ClientContex
|
|
40
40
|
}
|
41
41
|
|
42
42
|
static void ICUTimeZoneFunction(ClientContext &context, TableFunctionInput &data_p, DataChunk &output) {
|
43
|
-
auto &data =
|
43
|
+
auto &data = data_p.global_state->Cast<ICUTimeZoneData>();
|
44
44
|
idx_t index = 0;
|
45
45
|
while (index < STANDARD_VECTOR_SIZE) {
|
46
46
|
UErrorCode status = U_ZERO_ERROR;
|
@@ -125,8 +125,8 @@ struct ICUFromNaiveTimestamp : public ICUDateFunc {
|
|
125
125
|
|
126
126
|
static bool CastFromNaive(Vector &source, Vector &result, idx_t count, CastParameters ¶meters) {
|
127
127
|
auto &cast_data = parameters.cast_data->Cast<CastData>();
|
128
|
-
auto info =
|
129
|
-
CalendarPtr calendar(info
|
128
|
+
auto &info = cast_data.info->Cast<BindData>();
|
129
|
+
CalendarPtr calendar(info.calendar->clone());
|
130
130
|
|
131
131
|
UnaryExecutor::Execute<timestamp_t, timestamp_t>(
|
132
132
|
source, result, count, [&](timestamp_t input) { return Operation(calendar.get(), input); });
|
@@ -188,8 +188,8 @@ struct ICUToNaiveTimestamp : public ICUDateFunc {
|
|
188
188
|
|
189
189
|
static bool CastToNaive(Vector &source, Vector &result, idx_t count, CastParameters ¶meters) {
|
190
190
|
auto &cast_data = parameters.cast_data->Cast<CastData>();
|
191
|
-
auto info =
|
192
|
-
CalendarPtr calendar(info
|
191
|
+
auto &info = cast_data.info->Cast<BindData>();
|
192
|
+
CalendarPtr calendar(info.calendar->clone());
|
193
193
|
|
194
194
|
UnaryExecutor::Execute<timestamp_t, timestamp_t>(
|
195
195
|
source, result, count, [&](timestamp_t input) { return Operation(calendar.get(), input); });
|
@@ -225,7 +225,7 @@ struct ICULocalTimestampFunc : public ICUDateFunc {
|
|
225
225
|
}
|
226
226
|
|
227
227
|
bool Equals(const FunctionData &other_p) const override {
|
228
|
-
auto &other =
|
228
|
+
auto &other = other_p.Cast<const BindDataNow>();
|
229
229
|
if (now != other.now) {
|
230
230
|
return false;
|
231
231
|
}
|
@@ -247,7 +247,7 @@ struct ICULocalTimestampFunc : public ICUDateFunc {
|
|
247
247
|
|
248
248
|
static timestamp_t GetLocalTimestamp(ExpressionState &state) {
|
249
249
|
auto &func_expr = state.expr.Cast<BoundFunctionExpression>();
|
250
|
-
auto &info =
|
250
|
+
auto &info = func_expr.bind_info->Cast<BindDataNow>();
|
251
251
|
CalendarPtr calendar_ptr(info.calendar->clone());
|
252
252
|
auto calendar = calendar_ptr.get();
|
253
253
|
|
@@ -296,7 +296,7 @@ struct ICUTimeZoneFunc : public ICUDateFunc {
|
|
296
296
|
template <typename OP>
|
297
297
|
static void Execute(DataChunk &input, ExpressionState &state, Vector &result) {
|
298
298
|
auto &func_expr = state.expr.Cast<BoundFunctionExpression>();
|
299
|
-
auto &info =
|
299
|
+
auto &info = func_expr.bind_info->Cast<BindData>();
|
300
300
|
CalendarPtr calendar_ptr(info.calendar->clone());
|
301
301
|
auto calendar = calendar_ptr.get();
|
302
302
|
|
@@ -67,13 +67,13 @@ static int32_t ICUGetSortKey(icu::Collator &collator, string_t input, duckdb::un
|
|
67
67
|
int32_t &buffer_size) {
|
68
68
|
icu::UnicodeString unicode_string =
|
69
69
|
icu::UnicodeString::fromUTF8(icu::StringPiece(input.GetData(), input.GetSize()));
|
70
|
-
int32_t string_size = collator.getSortKey(unicode_string,
|
70
|
+
int32_t string_size = collator.getSortKey(unicode_string, reinterpret_cast<uint8_t *>(buffer.get()), buffer_size);
|
71
71
|
if (string_size > buffer_size) {
|
72
72
|
// have to resize the buffer
|
73
73
|
buffer_size = string_size;
|
74
74
|
buffer = duckdb::unique_ptr<char[]>(new char[buffer_size]);
|
75
75
|
|
76
|
-
string_size = collator.getSortKey(unicode_string,
|
76
|
+
string_size = collator.getSortKey(unicode_string, reinterpret_cast<uint8_t *>(buffer.get()), buffer_size);
|
77
77
|
}
|
78
78
|
return string_size;
|
79
79
|
}
|
@@ -185,7 +185,7 @@ static duckdb::unique_ptr<GlobalTableFunctionState> ICUCalendarInit(ClientContex
|
|
185
185
|
}
|
186
186
|
|
187
187
|
static void ICUCalendarFunction(ClientContext &context, TableFunctionInput &data_p, DataChunk &output) {
|
188
|
-
auto &data =
|
188
|
+
auto &data = data_p.global_state->Cast<ICUCalendarData>();
|
189
189
|
idx_t index = 0;
|
190
190
|
while (index < STANDARD_VECTOR_SIZE) {
|
191
191
|
if (!data.calendars) {
|