duckdb 0.8.1-dev65.0 → 0.8.1
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 +8 -8
- package/package.json +3 -1
- package/src/duckdb/extension/icu/icu-datepart.cpp +2 -2
- package/src/duckdb/extension/icu/icu-extension.cpp +1 -1
- package/src/duckdb/extension/icu/icu-makedate.cpp +5 -4
- package/src/duckdb/extension/icu/icu-strptime.cpp +1 -1
- package/src/duckdb/extension/icu/third_party/icu/i18n/nfsubs.cpp +0 -2
- package/src/duckdb/extension/json/buffered_json_reader.cpp +23 -14
- package/src/duckdb/extension/json/include/buffered_json_reader.hpp +6 -6
- package/src/duckdb/extension/json/include/json_common.hpp +13 -3
- package/src/duckdb/extension/json/include/json_executors.hpp +1 -1
- package/src/duckdb/extension/json/include/json_scan.hpp +5 -2
- package/src/duckdb/extension/json/json_functions/json_contains.cpp +5 -0
- package/src/duckdb/extension/json/json_functions/json_create.cpp +16 -16
- package/src/duckdb/extension/json/json_functions/json_merge_patch.cpp +3 -3
- package/src/duckdb/extension/json/json_functions/json_serialize_sql.cpp +2 -2
- package/src/duckdb/extension/json/json_functions/json_structure.cpp +5 -3
- package/src/duckdb/extension/json/json_functions/json_transform.cpp +12 -12
- package/src/duckdb/extension/json/json_functions/read_json.cpp +2 -1
- package/src/duckdb/extension/json/json_functions.cpp +6 -3
- package/src/duckdb/extension/json/json_scan.cpp +43 -27
- package/src/duckdb/extension/parquet/column_reader.cpp +57 -52
- package/src/duckdb/extension/parquet/column_writer.cpp +57 -45
- package/src/duckdb/extension/parquet/include/cast_column_reader.hpp +1 -1
- package/src/duckdb/extension/parquet/include/column_reader.hpp +5 -4
- package/src/duckdb/extension/parquet/include/column_writer.hpp +24 -0
- package/src/duckdb/extension/parquet/include/decode_utils.hpp +6 -0
- package/src/duckdb/extension/parquet/include/list_column_reader.hpp +1 -1
- package/src/duckdb/extension/parquet/include/parquet_dbp_decoder.hpp +4 -4
- package/src/duckdb/extension/parquet/include/parquet_rle_bp_decoder.hpp +4 -5
- package/src/duckdb/extension/parquet/include/resizable_buffer.hpp +4 -4
- package/src/duckdb/extension/parquet/include/row_number_column_reader.hpp +1 -1
- package/src/duckdb/extension/parquet/include/struct_column_reader.hpp +1 -1
- package/src/duckdb/extension/parquet/parquet-extension.cpp +27 -2
- package/src/duckdb/extension/parquet/parquet_metadata.cpp +1 -1
- package/src/duckdb/extension/parquet/parquet_reader.cpp +18 -18
- package/src/duckdb/extension/parquet/parquet_statistics.cpp +23 -26
- package/src/duckdb/extension/parquet/parquet_timestamp.cpp +2 -2
- package/src/duckdb/extension/parquet/parquet_writer.cpp +3 -3
- package/src/duckdb/extension/parquet/zstd_file_system.cpp +3 -3
- package/src/duckdb/src/catalog/catalog.cpp +5 -17
- package/src/duckdb/src/catalog/catalog_entry/duck_table_entry.cpp +7 -1
- package/src/duckdb/src/catalog/catalog_entry/table_catalog_entry.cpp +121 -0
- package/src/duckdb/src/catalog/catalog_search_path.cpp +49 -12
- package/src/duckdb/src/catalog/catalog_set.cpp +1 -1
- package/src/duckdb/src/catalog/default/default_types.cpp +9 -84
- package/src/duckdb/src/catalog/dependency_manager.cpp +2 -2
- package/src/duckdb/src/common/adbc/adbc.cpp +118 -12
- package/src/duckdb/src/common/adbc/driver_manager.cpp +0 -20
- package/src/duckdb/src/common/arrow/arrow_appender.cpp +12 -12
- package/src/duckdb/src/common/arrow/arrow_converter.cpp +11 -12
- package/src/duckdb/src/common/arrow/arrow_wrapper.cpp +11 -10
- package/src/duckdb/src/common/checksum.cpp +1 -1
- package/src/duckdb/src/common/compressed_file_system.cpp +6 -6
- package/src/duckdb/src/common/crypto/md5.cpp +9 -9
- package/src/duckdb/src/common/exception.cpp +4 -1
- package/src/duckdb/src/common/exception_format_value.cpp +24 -15
- package/src/duckdb/src/common/field_writer.cpp +1 -1
- package/src/duckdb/src/common/fsst.cpp +11 -6
- package/src/duckdb/src/common/gzip_file_system.cpp +8 -8
- package/src/duckdb/src/common/hive_partitioning.cpp +1 -1
- package/src/duckdb/src/common/local_file_system.cpp +11 -11
- package/src/duckdb/src/common/multi_file_reader.cpp +3 -0
- package/src/duckdb/src/common/operator/cast_operators.cpp +1 -1
- package/src/duckdb/src/common/pipe_file_system.cpp +2 -2
- package/src/duckdb/src/common/radix_partitioning.cpp +2 -2
- package/src/duckdb/src/common/random_engine.cpp +1 -1
- package/src/duckdb/src/common/row_operations/row_heap_gather.cpp +1 -1
- package/src/duckdb/src/common/row_operations/row_heap_scatter.cpp +5 -5
- package/src/duckdb/src/common/row_operations/row_match.cpp +1 -1
- package/src/duckdb/src/common/row_operations/row_radix_scatter.cpp +2 -2
- package/src/duckdb/src/common/row_operations/row_scatter.cpp +4 -4
- package/src/duckdb/src/common/serializer/binary_deserializer.cpp +1 -1
- package/src/duckdb/src/common/serializer/binary_serializer.cpp +3 -3
- package/src/duckdb/src/common/serializer.cpp +1 -1
- package/src/duckdb/src/common/sort/comparators.cpp +1 -1
- package/src/duckdb/src/common/sort/merge_sorter.cpp +7 -2
- package/src/duckdb/src/common/sort/partition_state.cpp +2 -2
- package/src/duckdb/src/common/types/bit.cpp +5 -5
- package/src/duckdb/src/common/types/blob.cpp +8 -8
- package/src/duckdb/src/common/types/column/column_data_allocator.cpp +4 -4
- package/src/duckdb/src/common/types/column/column_data_collection.cpp +3 -3
- package/src/duckdb/src/common/types/column/column_data_collection_segment.cpp +1 -1
- package/src/duckdb/src/common/types/column/partitioned_column_data.cpp +2 -2
- package/src/duckdb/src/common/types/hash.cpp +2 -2
- package/src/duckdb/src/common/types/hyperloglog.cpp +22 -21
- package/src/duckdb/src/common/types/list_segment.cpp +77 -49
- package/src/duckdb/src/common/types/row/partitioned_tuple_data.cpp +1 -1
- package/src/duckdb/src/common/types/row/row_data_collection_scanner.cpp +5 -4
- package/src/duckdb/src/common/types/row/tuple_data_allocator.cpp +5 -3
- package/src/duckdb/src/common/types/row/tuple_data_scatter_gather.cpp +61 -24
- package/src/duckdb/src/common/types/string_heap.cpp +1 -1
- package/src/duckdb/src/common/types/time.cpp +2 -8
- package/src/duckdb/src/common/types/timestamp.cpp +37 -1
- package/src/duckdb/src/common/types/value.cpp +3 -2
- package/src/duckdb/src/common/types/vector.cpp +98 -101
- package/src/duckdb/src/common/types/vector_cache.cpp +6 -6
- package/src/duckdb/src/common/types/vector_constants.cpp +2 -1
- package/src/duckdb/src/common/types.cpp +48 -33
- package/src/duckdb/src/common/vector_operations/boolean_operators.cpp +2 -2
- package/src/duckdb/src/common/vector_operations/is_distinct_from.cpp +12 -12
- package/src/duckdb/src/common/vector_operations/vector_hash.cpp +13 -11
- package/src/duckdb/src/common/vector_operations/vector_storage.cpp +1 -1
- package/src/duckdb/src/core_functions/aggregate/algebraic/avg.cpp +30 -33
- package/src/duckdb/src/core_functions/aggregate/algebraic/covar.cpp +0 -4
- package/src/duckdb/src/core_functions/aggregate/distributive/approx_count.cpp +33 -36
- package/src/duckdb/src/core_functions/aggregate/distributive/arg_min_max.cpp +53 -66
- package/src/duckdb/src/core_functions/aggregate/distributive/bitagg.cpp +48 -48
- package/src/duckdb/src/core_functions/aggregate/distributive/bitstring_agg.cpp +44 -44
- package/src/duckdb/src/core_functions/aggregate/distributive/bool.cpp +32 -32
- package/src/duckdb/src/core_functions/aggregate/distributive/entropy.cpp +34 -34
- package/src/duckdb/src/core_functions/aggregate/distributive/kurtosis.cpp +30 -31
- package/src/duckdb/src/core_functions/aggregate/distributive/minmax.cpp +91 -103
- package/src/duckdb/src/core_functions/aggregate/distributive/product.cpp +17 -17
- package/src/duckdb/src/core_functions/aggregate/distributive/skew.cpp +25 -27
- package/src/duckdb/src/core_functions/aggregate/distributive/string_agg.cpp +37 -38
- package/src/duckdb/src/core_functions/aggregate/distributive/sum.cpp +22 -22
- package/src/duckdb/src/core_functions/aggregate/holistic/approximate_quantile.cpp +49 -85
- package/src/duckdb/src/core_functions/aggregate/holistic/mode.cpp +49 -51
- package/src/duckdb/src/core_functions/aggregate/holistic/quantile.cpp +116 -134
- package/src/duckdb/src/core_functions/aggregate/holistic/reservoir_quantile.cpp +63 -100
- package/src/duckdb/src/core_functions/aggregate/nested/histogram.cpp +24 -26
- package/src/duckdb/src/core_functions/aggregate/nested/list.cpp +22 -23
- package/src/duckdb/src/core_functions/aggregate/regression/regr_avg.cpp +16 -18
- package/src/duckdb/src/core_functions/aggregate/regression/regr_intercept.cpp +22 -25
- package/src/duckdb/src/core_functions/aggregate/regression/regr_r2.cpp +19 -24
- package/src/duckdb/src/core_functions/aggregate/regression/regr_sxx_syy.cpp +18 -23
- package/src/duckdb/src/core_functions/aggregate/regression/regr_sxy.cpp +14 -18
- package/src/duckdb/src/core_functions/function_list.cpp +1 -0
- package/src/duckdb/src/core_functions/scalar/blob/base64.cpp +1 -1
- package/src/duckdb/src/core_functions/scalar/date/date_part.cpp +46 -46
- package/src/duckdb/src/core_functions/scalar/date/make_date.cpp +3 -0
- package/src/duckdb/src/core_functions/scalar/date/strftime.cpp +2 -2
- package/src/duckdb/src/core_functions/scalar/generic/current_setting.cpp +1 -1
- package/src/duckdb/src/core_functions/scalar/generic/least.cpp +2 -2
- package/src/duckdb/src/core_functions/scalar/generic/stats.cpp +1 -1
- package/src/duckdb/src/core_functions/scalar/generic/system_functions.cpp +14 -0
- package/src/duckdb/src/core_functions/scalar/list/array_slice.cpp +4 -4
- package/src/duckdb/src/core_functions/scalar/list/flatten.cpp +2 -4
- package/src/duckdb/src/core_functions/scalar/list/list_aggregates.cpp +26 -9
- package/src/duckdb/src/core_functions/scalar/list/list_lambdas.cpp +7 -9
- package/src/duckdb/src/core_functions/scalar/list/list_sort.cpp +1 -1
- package/src/duckdb/src/core_functions/scalar/map/cardinality.cpp +1 -1
- package/src/duckdb/src/core_functions/scalar/map/map.cpp +2 -2
- package/src/duckdb/src/core_functions/scalar/map/map_concat.cpp +4 -1
- package/src/duckdb/src/core_functions/scalar/map/map_extract.cpp +5 -9
- package/src/duckdb/src/core_functions/scalar/math/numeric.cpp +6 -6
- package/src/duckdb/src/core_functions/scalar/string/starts_with.cpp +3 -2
- package/src/duckdb/src/core_functions/scalar/string/string_split.cpp +4 -4
- package/src/duckdb/src/core_functions/scalar/string/trim.cpp +1 -1
- package/src/duckdb/src/core_functions/scalar/union/union_extract.cpp +1 -1
- package/src/duckdb/src/execution/adaptive_filter.cpp +1 -1
- package/src/duckdb/src/execution/expression_executor/execute_case.cpp +10 -10
- package/src/duckdb/src/execution/expression_executor/execute_conjunction.cpp +7 -7
- package/src/duckdb/src/execution/expression_executor.cpp +28 -28
- package/src/duckdb/src/execution/index/art/art.cpp +110 -39
- package/src/duckdb/src/execution/index/art/fixed_size_allocator.cpp +23 -5
- package/src/duckdb/src/execution/index/art/leaf.cpp +11 -11
- package/src/duckdb/src/execution/index/art/leaf_segment.cpp +10 -0
- package/src/duckdb/src/execution/index/art/node.cpp +48 -35
- package/src/duckdb/src/execution/index/art/node16.cpp +3 -0
- package/src/duckdb/src/execution/index/art/node256.cpp +1 -0
- package/src/duckdb/src/execution/index/art/node4.cpp +3 -0
- package/src/duckdb/src/execution/index/art/node48.cpp +2 -0
- package/src/duckdb/src/execution/index/art/prefix.cpp +2 -0
- package/src/duckdb/src/execution/join_hashtable.cpp +6 -4
- package/src/duckdb/src/execution/nested_loop_join/nested_loop_join_inner.cpp +4 -4
- package/src/duckdb/src/execution/nested_loop_join/nested_loop_join_mark.cpp +2 -2
- package/src/duckdb/src/execution/operator/aggregate/distinct_aggregate_data.cpp +1 -1
- package/src/duckdb/src/execution/operator/aggregate/physical_perfecthash_aggregate.cpp +1 -1
- package/src/duckdb/src/execution/operator/aggregate/physical_streaming_window.cpp +2 -2
- package/src/duckdb/src/execution/operator/aggregate/physical_ungrouped_aggregate.cpp +4 -4
- package/src/duckdb/src/execution/operator/aggregate/physical_window.cpp +26 -9
- package/src/duckdb/src/execution/operator/filter/physical_filter.cpp +1 -1
- package/src/duckdb/src/execution/operator/helper/physical_reset.cpp +5 -2
- package/src/duckdb/src/execution/operator/helper/physical_set.cpp +5 -1
- package/src/duckdb/src/execution/operator/join/outer_join_marker.cpp +1 -1
- package/src/duckdb/src/execution/operator/join/perfect_hash_join_executor.cpp +1 -1
- package/src/duckdb/src/execution/operator/join/physical_asof_join.cpp +2 -2
- package/src/duckdb/src/execution/operator/join/physical_blockwise_nl_join.cpp +4 -4
- package/src/duckdb/src/execution/operator/join/physical_iejoin.cpp +3 -6
- package/src/duckdb/src/execution/operator/join/physical_index_join.cpp +3 -3
- package/src/duckdb/src/execution/operator/join/physical_nested_loop_join.cpp +3 -3
- package/src/duckdb/src/execution/operator/join/physical_piecewise_merge_join.cpp +3 -3
- package/src/duckdb/src/execution/operator/order/physical_top_n.cpp +1 -1
- package/src/duckdb/src/execution/operator/persistent/buffered_csv_reader.cpp +2 -2
- package/src/duckdb/src/execution/operator/persistent/csv_file_handle.cpp +2 -2
- package/src/duckdb/src/execution/operator/persistent/physical_batch_insert.cpp +2 -3
- package/src/duckdb/src/execution/operator/persistent/physical_insert.cpp +1 -1
- package/src/duckdb/src/execution/operator/projection/physical_pivot.cpp +2 -2
- package/src/duckdb/src/execution/operator/projection/physical_projection.cpp +1 -1
- package/src/duckdb/src/execution/operator/projection/physical_tableinout_function.cpp +1 -0
- package/src/duckdb/src/execution/operator/projection/physical_unnest.cpp +10 -5
- package/src/duckdb/src/execution/operator/scan/physical_column_data_scan.cpp +2 -1
- package/src/duckdb/src/execution/operator/scan/physical_expression_scan.cpp +1 -1
- package/src/duckdb/src/execution/operator/scan/physical_positional_scan.cpp +2 -2
- package/src/duckdb/src/execution/operator/schema/physical_attach.cpp +0 -1
- package/src/duckdb/src/execution/operator/schema/physical_create_index.cpp +29 -3
- package/src/duckdb/src/execution/operator/schema/physical_create_type.cpp +1 -1
- package/src/duckdb/src/execution/perfect_aggregate_hashtable.cpp +1 -1
- package/src/duckdb/src/execution/physical_plan/plan_comparison_join.cpp +1 -1
- package/src/duckdb/src/execution/physical_plan/plan_create_table.cpp +1 -1
- package/src/duckdb/src/execution/physical_plan_generator.cpp +2 -2
- package/src/duckdb/src/execution/radix_partitioned_hashtable.cpp +1 -1
- package/src/duckdb/src/execution/reservoir_sample.cpp +20 -6
- package/src/duckdb/src/execution/window_segment_tree.cpp +8 -6
- package/src/duckdb/src/function/aggregate/distributive/count.cpp +159 -21
- package/src/duckdb/src/function/aggregate/distributive/first.cpp +68 -75
- package/src/duckdb/src/function/aggregate/sorted_aggregate_function.cpp +14 -14
- package/src/duckdb/src/function/cast/cast_function_set.cpp +1 -1
- package/src/duckdb/src/function/cast/decimal_cast.cpp +1 -1
- package/src/duckdb/src/function/cast/enum_casts.cpp +2 -2
- package/src/duckdb/src/function/cast/list_casts.cpp +2 -4
- package/src/duckdb/src/function/cast/string_cast.cpp +11 -11
- package/src/duckdb/src/function/cast/union_casts.cpp +2 -2
- package/src/duckdb/src/function/cast/vector_cast_helpers.cpp +3 -2
- package/src/duckdb/src/function/pragma/pragma_queries.cpp +33 -23
- package/src/duckdb/src/function/scalar/generic/constant_or_null.cpp +1 -1
- package/src/duckdb/src/function/scalar/list/list_concat.cpp +2 -2
- package/src/duckdb/src/function/scalar/list/list_extract.cpp +4 -4
- package/src/duckdb/src/function/scalar/operators/arithmetic.cpp +3 -4
- package/src/duckdb/src/function/scalar/string/concat.cpp +8 -7
- package/src/duckdb/src/function/scalar/string/contains.cpp +4 -4
- package/src/duckdb/src/function/scalar/string/like.cpp +5 -5
- package/src/duckdb/src/function/scalar/string/regexp/regexp_extract_all.cpp +4 -4
- package/src/duckdb/src/function/scalar/string/regexp/regexp_util.cpp +6 -2
- package/src/duckdb/src/function/scalar/string/regexp.cpp +3 -3
- package/src/duckdb/src/function/scalar/string/strip_accents.cpp +1 -1
- package/src/duckdb/src/function/scalar/struct/struct_extract.cpp +1 -1
- package/src/duckdb/src/function/scalar/system/aggregate_export.cpp +27 -25
- package/src/duckdb/src/function/scalar_function.cpp +3 -3
- package/src/duckdb/src/function/table/arrow.cpp +6 -6
- package/src/duckdb/src/function/table/arrow_conversion.cpp +67 -61
- package/src/duckdb/src/function/table/checkpoint.cpp +4 -1
- package/src/duckdb/src/function/table/copy_csv.cpp +11 -7
- package/src/duckdb/src/function/table/glob.cpp +1 -1
- package/src/duckdb/src/function/table/pragma_last_profiling_output.cpp +1 -1
- package/src/duckdb/src/function/table/range.cpp +4 -4
- package/src/duckdb/src/function/table/read_csv.cpp +19 -21
- package/src/duckdb/src/function/table/repeat.cpp +5 -2
- package/src/duckdb/src/function/table/repeat_row.cpp +10 -3
- package/src/duckdb/src/function/table/system/duckdb_functions.cpp +1 -1
- package/src/duckdb/src/function/table/system/pragma_storage_info.cpp +4 -4
- package/src/duckdb/src/function/table/system/test_vector_types.cpp +82 -26
- package/src/duckdb/src/function/table/table_scan.cpp +4 -4
- package/src/duckdb/src/function/table/unnest.cpp +1 -1
- package/src/duckdb/src/function/table/version/pragma_version.cpp +3 -3
- package/src/duckdb/src/include/duckdb/catalog/catalog.hpp +2 -5
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/duck_table_entry.hpp +2 -0
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/table_catalog_entry.hpp +11 -1
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry.hpp +2 -2
- package/src/duckdb/src/include/duckdb/catalog/catalog_search_path.hpp +8 -2
- package/src/duckdb/src/include/duckdb/catalog/default/builtin_types/types.hpp +97 -0
- package/src/duckdb/src/include/duckdb/common/allocator.hpp +15 -4
- package/src/duckdb/src/include/duckdb/common/arrow/arrow_appender.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/arrow/arrow_buffer.hpp +7 -2
- package/src/duckdb/src/include/duckdb/common/arrow/arrow_converter.hpp +2 -3
- package/src/duckdb/src/include/duckdb/common/arrow/arrow_options.hpp +8 -1
- package/src/duckdb/src/include/duckdb/common/arrow/result_arrow_wrapper.hpp +0 -1
- package/src/duckdb/src/include/duckdb/common/bit_utils.hpp +16 -22
- package/src/duckdb/src/include/duckdb/common/crypto/md5.hpp +2 -2
- package/src/duckdb/src/include/duckdb/common/exception.hpp +5 -2
- package/src/duckdb/src/include/duckdb/common/field_writer.hpp +3 -3
- package/src/duckdb/src/include/duckdb/common/file_system.hpp +11 -0
- package/src/duckdb/src/include/duckdb/common/fsst.hpp +2 -3
- package/src/duckdb/src/include/duckdb/common/radix.hpp +3 -3
- package/src/duckdb/src/include/duckdb/common/serializer/binary_deserializer.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/serializer/binary_serializer.hpp +4 -1
- package/src/duckdb/src/include/duckdb/common/serializer.hpp +4 -4
- package/src/duckdb/src/include/duckdb/common/typedefs.hpp +30 -0
- package/src/duckdb/src/include/duckdb/common/types/column/partitioned_column_data.hpp +12 -0
- package/src/duckdb/src/include/duckdb/common/types/hyperloglog.hpp +6 -2
- package/src/duckdb/src/include/duckdb/common/types/null_value.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/types/row/partitioned_tuple_data.hpp +12 -0
- package/src/duckdb/src/include/duckdb/common/types/string_type.hpp +10 -10
- package/src/duckdb/src/include/duckdb/common/types/time.hpp +2 -0
- package/src/duckdb/src/include/duckdb/common/types/timestamp.hpp +4 -14
- package/src/duckdb/src/include/duckdb/common/types/value.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/types/vector.hpp +9 -0
- package/src/duckdb/src/include/duckdb/common/types/vector_buffer.hpp +18 -6
- package/src/duckdb/src/include/duckdb/common/vector_operations/aggregate_executor.hpp +112 -76
- package/src/duckdb/src/include/duckdb/common/vector_operations/binary_executor.hpp +16 -15
- package/src/duckdb/src/include/duckdb/common/vector_operations/generic_executor.hpp +11 -11
- package/src/duckdb/src/include/duckdb/common/vector_operations/ternary_executor.hpp +23 -19
- package/src/duckdb/src/include/duckdb/common/vector_operations/unary_executor.hpp +3 -3
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/algebraic/corr.hpp +20 -24
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/algebraic/covar.hpp +36 -39
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/algebraic/stddev.hpp +57 -53
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/regression/regr_count.hpp +8 -9
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/regression/regr_slope.hpp +16 -18
- package/src/duckdb/src/include/duckdb/core_functions/aggregate/sum_helpers.hpp +7 -8
- package/src/duckdb/src/include/duckdb/core_functions/scalar/generic_functions.hpp +9 -0
- package/src/duckdb/src/include/duckdb/core_functions/scalar/map_functions.hpp +2 -6
- package/src/duckdb/src/include/duckdb/core_functions/scalar/string_functions.hpp +16 -36
- package/src/duckdb/src/include/duckdb/execution/expression_executor_state.hpp +14 -2
- package/src/duckdb/src/include/duckdb/execution/index/art/art.hpp +13 -7
- package/src/duckdb/src/include/duckdb/execution/index/art/fixed_size_allocator.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/index/art/leaf.hpp +1 -1
- package/src/duckdb/src/include/duckdb/execution/index/art/leaf_segment.hpp +2 -0
- package/src/duckdb/src/include/duckdb/execution/index/art/node.hpp +13 -3
- package/src/duckdb/src/include/duckdb/execution/index/art/node48.hpp +1 -0
- package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_result_collector.hpp +3 -0
- package/src/duckdb/src/include/duckdb/execution/operator/persistent/csv_buffer.hpp +1 -1
- package/src/duckdb/src/include/duckdb/execution/physical_operator.hpp +5 -2
- package/src/duckdb/src/include/duckdb/execution/physical_operator_states.hpp +12 -12
- package/src/duckdb/src/include/duckdb/function/aggregate_function.hpp +9 -30
- package/src/duckdb/src/include/duckdb/function/aggregate_state.hpp +95 -0
- package/src/duckdb/src/include/duckdb/function/cast/default_casts.hpp +13 -2
- package/src/duckdb/src/include/duckdb/function/cast/vector_cast_helpers.hpp +4 -4
- package/src/duckdb/src/include/duckdb/function/compression_function.hpp +44 -0
- package/src/duckdb/src/include/duckdb/function/copy_function.hpp +6 -6
- package/src/duckdb/src/include/duckdb/function/function.hpp +3 -3
- package/src/duckdb/src/include/duckdb/function/function_serialization.hpp +4 -2
- package/src/duckdb/src/include/duckdb/function/macro_function.hpp +2 -2
- package/src/duckdb/src/include/duckdb/function/scalar/list/contains_or_position.hpp +3 -3
- package/src/duckdb/src/include/duckdb/function/scalar/nested_functions.hpp +1 -1
- package/src/duckdb/src/include/duckdb/function/scalar_function.hpp +4 -3
- package/src/duckdb/src/include/duckdb/function/table_function.hpp +9 -8
- package/src/duckdb/src/include/duckdb/main/attached_database.hpp +4 -1
- package/src/duckdb/src/include/duckdb/main/capi/capi_internal.hpp +3 -1
- package/src/duckdb/src/include/duckdb/main/capi/cast/utils.hpp +1 -1
- package/src/duckdb/src/include/duckdb/main/config.hpp +5 -0
- package/src/duckdb/src/include/duckdb/main/database_manager.hpp +1 -0
- package/src/duckdb/src/include/duckdb/main/extension_entries.hpp +142 -136
- package/src/duckdb/src/include/duckdb/main/materialized_query_result.hpp +3 -0
- package/src/duckdb/src/include/duckdb/main/pending_query_result.hpp +3 -0
- package/src/duckdb/src/include/duckdb/main/query_result.hpp +23 -0
- package/src/duckdb/src/include/duckdb/main/relation.hpp +12 -0
- package/src/duckdb/src/include/duckdb/main/settings.hpp +19 -0
- package/src/duckdb/src/include/duckdb/main/stream_query_result.hpp +3 -0
- package/src/duckdb/src/include/duckdb/optimizer/join_order/cardinality_estimator.hpp +2 -2
- package/src/duckdb/src/include/duckdb/optimizer/unnest_rewriter.hpp +4 -0
- package/src/duckdb/src/include/duckdb/parallel/meta_pipeline.hpp +12 -3
- package/src/duckdb/src/include/duckdb/parser/base_expression.hpp +6 -12
- package/src/duckdb/src/include/duckdb/parser/constraint.hpp +2 -2
- package/src/duckdb/src/include/duckdb/parser/expression/between_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/bound_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/case_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/cast_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/collate_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/columnref_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/comparison_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/conjunction_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/constant_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/function_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/lambda_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/operator_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/parameter_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/positional_reference_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/star_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/subquery_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression/window_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/expression_map.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/parsed_data/parse_info.hpp +2 -2
- package/src/duckdb/src/include/duckdb/parser/parsed_expression.hpp +5 -1
- package/src/duckdb/src/include/duckdb/parser/parser.hpp +2 -0
- package/src/duckdb/src/include/duckdb/parser/query_node.hpp +2 -2
- package/src/duckdb/src/include/duckdb/parser/result_modifier.hpp +36 -5
- package/src/duckdb/src/include/duckdb/parser/sql_statement.hpp +7 -4
- package/src/duckdb/src/include/duckdb/parser/statement/select_statement.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/tableref/basetableref.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/tableref/emptytableref.hpp +2 -2
- package/src/duckdb/src/include/duckdb/parser/tableref/expressionlistref.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/tableref/joinref.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/tableref/pivotref.hpp +3 -3
- package/src/duckdb/src/include/duckdb/parser/tableref/subqueryref.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/tableref/table_function_ref.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/tableref.hpp +4 -3
- package/src/duckdb/src/include/duckdb/parser/transformer.hpp +106 -92
- package/src/duckdb/src/include/duckdb/planner/bind_context.hpp +2 -2
- package/src/duckdb/src/include/duckdb/planner/bound_constraint.hpp +2 -2
- package/src/duckdb/src/include/duckdb/planner/bound_query_node.hpp +2 -2
- package/src/duckdb/src/include/duckdb/planner/bound_result_modifier.hpp +37 -1
- package/src/duckdb/src/include/duckdb/planner/bound_tableref.hpp +2 -2
- package/src/duckdb/src/include/duckdb/planner/expression/bound_aggregate_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_between_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_case_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_cast_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_columnref_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_comparison_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_conjunction_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_constant_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_function_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_lambda_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_lambdaref_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_operator_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_parameter_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_reference_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_subquery_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_unnest_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression/bound_window_expression.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression.hpp +5 -7
- package/src/duckdb/src/include/duckdb/planner/expression_binder.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/filter/conjunction_filter.hpp +6 -0
- package/src/duckdb/src/include/duckdb/planner/filter/constant_filter.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/filter/null_filter.hpp +6 -0
- package/src/duckdb/src/include/duckdb/planner/logical_operator.hpp +7 -2
- package/src/duckdb/src/include/duckdb/planner/operator/logical_copy_to_file.hpp +6 -2
- package/src/duckdb/src/include/duckdb/planner/operator/logical_execute.hpp +4 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_explain.hpp +5 -1
- package/src/duckdb/src/include/duckdb/planner/operator/logical_get.hpp +5 -1
- package/src/duckdb/src/include/duckdb/planner/operator/logical_pivot.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_pragma.hpp +6 -2
- package/src/duckdb/src/include/duckdb/planner/operator/logical_prepare.hpp +4 -0
- package/src/duckdb/src/include/duckdb/planner/table_binding.hpp +26 -0
- package/src/duckdb/src/include/duckdb/planner/table_filter.hpp +17 -0
- package/src/duckdb/src/include/duckdb/planner/tableref/bound_pivotref.hpp +3 -0
- package/src/duckdb/src/include/duckdb/storage/compression/chimp/algorithm/byte_reader.hpp +4 -0
- package/src/duckdb/src/include/duckdb/storage/compression/chimp/chimp_analyze.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/compression/chimp/chimp_compress.hpp +2 -2
- package/src/duckdb/src/include/duckdb/storage/compression/patas/patas_analyze.hpp +2 -2
- package/src/duckdb/src/include/duckdb/storage/compression/patas/patas_compress.hpp +2 -2
- package/src/duckdb/src/include/duckdb/storage/data_table.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/in_memory_block_manager.hpp +13 -13
- package/src/duckdb/src/include/duckdb/storage/index.hpp +6 -4
- package/src/duckdb/src/include/duckdb/storage/partial_block_manager.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/storage_extension.hpp +0 -6
- package/src/duckdb/src/include/duckdb/storage/storage_manager.hpp +12 -0
- package/src/duckdb/src/include/duckdb/storage/string_uncompressed.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/table/chunk_info.hpp +25 -2
- package/src/duckdb/src/include/duckdb/storage/table/column_checkpoint_state.hpp +12 -0
- package/src/duckdb/src/include/duckdb/storage/table/column_data.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/table/list_column_data.hpp +2 -1
- package/src/duckdb/src/include/duckdb/storage/table/row_group.hpp +2 -2
- package/src/duckdb/src/include/duckdb/storage/table/row_group_collection.hpp +2 -1
- package/src/duckdb/src/include/duckdb/storage/table/scan_state.hpp +22 -0
- package/src/duckdb/src/include/duckdb/storage/table/standard_column_data.hpp +2 -1
- package/src/duckdb/src/include/duckdb/storage/table/struct_column_data.hpp +2 -1
- package/src/duckdb/src/include/duckdb/storage/table_storage_info.hpp +0 -2
- package/src/duckdb/src/include/duckdb/transaction/duck_transaction_manager.hpp +2 -2
- package/src/duckdb/src/include/duckdb/transaction/transaction.hpp +2 -2
- package/src/duckdb/src/main/attached_database.cpp +8 -0
- package/src/duckdb/src/main/capi/appender-c.cpp +5 -5
- package/src/duckdb/src/main/capi/arrow-c.cpp +13 -13
- package/src/duckdb/src/main/capi/cast/from_decimal-c.cpp +1 -1
- package/src/duckdb/src/main/capi/cast/utils-c.cpp +1 -1
- package/src/duckdb/src/main/capi/config-c.cpp +3 -6
- package/src/duckdb/src/main/capi/data_chunk-c.cpp +17 -17
- package/src/duckdb/src/main/capi/duckdb-c.cpp +4 -4
- package/src/duckdb/src/main/capi/duckdb_value-c.cpp +4 -4
- package/src/duckdb/src/main/capi/logical_types-c.cpp +22 -21
- package/src/duckdb/src/main/capi/pending-c.cpp +6 -6
- package/src/duckdb/src/main/capi/prepared-c.cpp +10 -10
- package/src/duckdb/src/main/capi/replacement_scan-c.cpp +6 -6
- package/src/duckdb/src/main/capi/result-c.cpp +23 -23
- package/src/duckdb/src/main/capi/table_function-c.cpp +1 -1
- package/src/duckdb/src/main/client_context.cpp +7 -6
- package/src/duckdb/src/main/config.cpp +2 -0
- package/src/duckdb/src/main/database.cpp +1 -0
- package/src/duckdb/src/main/database_manager.cpp +22 -1
- package/src/duckdb/src/main/error_manager.cpp +1 -1
- package/src/duckdb/src/main/extension/extension_load.cpp +1 -1
- package/src/duckdb/src/main/query_result.cpp +6 -2
- package/src/duckdb/src/main/relation/create_table_relation.cpp +1 -1
- package/src/duckdb/src/main/relation/create_view_relation.cpp +1 -1
- package/src/duckdb/src/main/relation/delete_relation.cpp +1 -1
- package/src/duckdb/src/main/relation/explain_relation.cpp +1 -1
- package/src/duckdb/src/main/relation/insert_relation.cpp +1 -1
- package/src/duckdb/src/main/relation/update_relation.cpp +1 -1
- package/src/duckdb/src/main/relation/write_csv_relation.cpp +1 -1
- package/src/duckdb/src/main/relation/write_parquet_relation.cpp +1 -1
- package/src/duckdb/src/main/relation.cpp +1 -1
- package/src/duckdb/src/main/settings/settings.cpp +41 -6
- package/src/duckdb/src/optimizer/deliminator.cpp +12 -12
- package/src/duckdb/src/optimizer/filter_combiner.cpp +3 -3
- package/src/duckdb/src/optimizer/join_order/cardinality_estimator.cpp +10 -10
- package/src/duckdb/src/optimizer/matcher/expression_matcher.cpp +1 -1
- package/src/duckdb/src/optimizer/pullup/pullup_projection.cpp +2 -2
- package/src/duckdb/src/optimizer/regex_range_filter.cpp +2 -4
- package/src/duckdb/src/optimizer/rule/distributivity.cpp +2 -2
- package/src/duckdb/src/optimizer/statistics/operator/propagate_filter.cpp +6 -6
- package/src/duckdb/src/optimizer/statistics/operator/propagate_get.cpp +2 -2
- package/src/duckdb/src/optimizer/unnest_rewriter.cpp +27 -16
- package/src/duckdb/src/parallel/executor.cpp +39 -15
- package/src/duckdb/src/parallel/meta_pipeline.cpp +17 -3
- package/src/duckdb/src/parser/base_expression.cpp +2 -5
- package/src/duckdb/src/parser/column_definition.cpp +5 -8
- package/src/duckdb/src/parser/expression/between_expression.cpp +4 -4
- package/src/duckdb/src/parser/expression/case_expression.cpp +6 -6
- package/src/duckdb/src/parser/expression/cast_expression.cpp +4 -4
- package/src/duckdb/src/parser/expression/collate_expression.cpp +3 -3
- package/src/duckdb/src/parser/expression/columnref_expression.cpp +4 -4
- package/src/duckdb/src/parser/expression/comparison_expression.cpp +3 -3
- package/src/duckdb/src/parser/expression/conjunction_expression.cpp +2 -2
- package/src/duckdb/src/parser/expression/constant_expression.cpp +2 -2
- package/src/duckdb/src/parser/expression/function_expression.cpp +10 -14
- package/src/duckdb/src/parser/expression/lambda_expression.cpp +2 -2
- package/src/duckdb/src/parser/expression/operator_expression.cpp +4 -4
- package/src/duckdb/src/parser/expression/parameter_expression.cpp +2 -2
- package/src/duckdb/src/parser/expression/positional_reference_expression.cpp +3 -3
- package/src/duckdb/src/parser/expression/star_expression.cpp +9 -9
- package/src/duckdb/src/parser/expression/subquery_expression.cpp +5 -5
- package/src/duckdb/src/parser/expression/window_expression.cpp +13 -24
- package/src/duckdb/src/parser/parsed_data/create_info.cpp +0 -3
- package/src/duckdb/src/parser/parsed_expression.cpp +34 -18
- package/src/duckdb/src/parser/parsed_expression_iterator.cpp +4 -4
- package/src/duckdb/src/parser/parser.cpp +98 -38
- package/src/duckdb/src/parser/query_node/select_node.cpp +6 -13
- package/src/duckdb/src/parser/query_node.cpp +7 -6
- package/src/duckdb/src/parser/result_modifier.cpp +25 -18
- package/src/duckdb/src/parser/statement/select_statement.cpp +3 -3
- package/src/duckdb/src/parser/tableref/basetableref.cpp +4 -4
- package/src/duckdb/src/parser/tableref/emptytableref.cpp +1 -1
- package/src/duckdb/src/parser/tableref/expressionlistref.cpp +5 -5
- package/src/duckdb/src/parser/tableref/joinref.cpp +6 -6
- package/src/duckdb/src/parser/tableref/pivotref.cpp +10 -15
- package/src/duckdb/src/parser/tableref/subqueryref.cpp +3 -3
- package/src/duckdb/src/parser/tableref/table_function.cpp +3 -3
- package/src/duckdb/src/parser/tableref.cpp +12 -3
- package/src/duckdb/src/parser/transform/expression/transform_array_access.cpp +7 -7
- package/src/duckdb/src/parser/transform/expression/transform_bool_expr.cpp +4 -4
- package/src/duckdb/src/parser/transform/expression/transform_boolean_test.cpp +4 -4
- package/src/duckdb/src/parser/transform/expression/transform_case.cpp +8 -10
- package/src/duckdb/src/parser/transform/expression/transform_cast.cpp +7 -9
- package/src/duckdb/src/parser/transform/expression/transform_coalesce.cpp +3 -5
- package/src/duckdb/src/parser/transform/expression/transform_columnref.cpp +22 -22
- package/src/duckdb/src/parser/transform/expression/transform_constant.cpp +2 -2
- package/src/duckdb/src/parser/transform/expression/transform_expression.cpp +42 -44
- package/src/duckdb/src/parser/transform/expression/transform_function.cpp +70 -75
- package/src/duckdb/src/parser/transform/expression/transform_grouping_function.cpp +4 -4
- package/src/duckdb/src/parser/transform/expression/transform_interval.cpp +7 -7
- package/src/duckdb/src/parser/transform/expression/transform_is_null.cpp +4 -5
- package/src/duckdb/src/parser/transform/expression/transform_lambda.cpp +5 -6
- package/src/duckdb/src/parser/transform/expression/transform_operator.cpp +31 -29
- package/src/duckdb/src/parser/transform/expression/transform_param_ref.cpp +13 -14
- package/src/duckdb/src/parser/transform/expression/transform_positional_reference.cpp +4 -4
- package/src/duckdb/src/parser/transform/expression/transform_subquery.cpp +9 -10
- package/src/duckdb/src/parser/transform/helpers/nodetype_to_string.cpp +0 -2
- package/src/duckdb/src/parser/transform/helpers/transform_cte.cpp +28 -32
- package/src/duckdb/src/parser/transform/helpers/transform_groupby.cpp +18 -18
- package/src/duckdb/src/parser/transform/helpers/transform_sample.cpp +3 -3
- package/src/duckdb/src/parser/transform/helpers/transform_typename.cpp +27 -26
- package/src/duckdb/src/parser/transform/statement/transform_alter_sequence.cpp +11 -14
- package/src/duckdb/src/parser/transform/statement/transform_alter_table.cpp +14 -16
- package/src/duckdb/src/parser/transform/statement/transform_attach.cpp +8 -9
- package/src/duckdb/src/parser/transform/statement/transform_call.cpp +2 -5
- package/src/duckdb/src/parser/transform/statement/transform_checkpoint.cpp +4 -6
- package/src/duckdb/src/parser/transform/statement/transform_copy.cpp +22 -23
- package/src/duckdb/src/parser/transform/statement/transform_create_function.cpp +14 -18
- package/src/duckdb/src/parser/transform/statement/transform_create_index.cpp +13 -15
- package/src/duckdb/src/parser/transform/statement/transform_create_schema.cpp +8 -10
- package/src/duckdb/src/parser/transform/statement/transform_create_sequence.cpp +8 -10
- package/src/duckdb/src/parser/transform/statement/transform_create_table.cpp +26 -28
- package/src/duckdb/src/parser/transform/statement/transform_create_table_as.cpp +8 -10
- package/src/duckdb/src/parser/transform/statement/transform_create_type.cpp +12 -15
- package/src/duckdb/src/parser/transform/statement/transform_create_view.cpp +13 -18
- package/src/duckdb/src/parser/transform/statement/transform_delete.cpp +11 -13
- package/src/duckdb/src/parser/transform/statement/transform_detach.cpp +3 -4
- package/src/duckdb/src/parser/transform/statement/transform_drop.cpp +20 -25
- package/src/duckdb/src/parser/transform/statement/transform_explain.cpp +5 -7
- package/src/duckdb/src/parser/transform/statement/transform_export.cpp +5 -6
- package/src/duckdb/src/parser/transform/statement/transform_import.cpp +2 -3
- package/src/duckdb/src/parser/transform/statement/transform_insert.cpp +21 -24
- package/src/duckdb/src/parser/transform/statement/transform_load.cpp +4 -5
- package/src/duckdb/src/parser/transform/statement/transform_pivot_stmt.cpp +7 -7
- package/src/duckdb/src/parser/transform/statement/transform_pragma.cpp +7 -9
- package/src/duckdb/src/parser/transform/statement/transform_prepare.cpp +11 -19
- package/src/duckdb/src/parser/transform/statement/transform_rename.cpp +12 -14
- package/src/duckdb/src/parser/transform/statement/transform_select.cpp +12 -9
- package/src/duckdb/src/parser/transform/statement/transform_select_node.cpp +34 -34
- package/src/duckdb/src/parser/transform/statement/transform_set.cpp +18 -19
- package/src/duckdb/src/parser/transform/statement/transform_show.cpp +5 -7
- package/src/duckdb/src/parser/transform/statement/transform_show_select.cpp +4 -5
- package/src/duckdb/src/parser/transform/statement/transform_transaction.cpp +3 -5
- package/src/duckdb/src/parser/transform/statement/transform_update.cpp +10 -13
- package/src/duckdb/src/parser/transform/statement/transform_upsert.cpp +4 -4
- package/src/duckdb/src/parser/transform/statement/transform_use.cpp +2 -3
- package/src/duckdb/src/parser/transform/statement/transform_vacuum.cpp +6 -10
- package/src/duckdb/src/parser/transform/tableref/transform_base_tableref.cpp +18 -18
- package/src/duckdb/src/parser/transform/tableref/transform_from.cpp +5 -5
- package/src/duckdb/src/parser/transform/tableref/transform_join.cpp +11 -11
- package/src/duckdb/src/parser/transform/tableref/transform_pivot.cpp +30 -27
- package/src/duckdb/src/parser/transform/tableref/transform_subquery.cpp +5 -5
- package/src/duckdb/src/parser/transform/tableref/transform_table_function.cpp +13 -12
- package/src/duckdb/src/parser/transform/tableref/transform_tableref.cpp +8 -8
- package/src/duckdb/src/parser/transformer.cpp +45 -47
- package/src/duckdb/src/planner/bind_context.cpp +9 -10
- package/src/duckdb/src/planner/binder/expression/bind_function_expression.cpp +1 -3
- package/src/duckdb/src/planner/binder/expression/bind_lambda.cpp +1 -1
- package/src/duckdb/src/planner/binder/expression/bind_positional_reference_expression.cpp +8 -3
- package/src/duckdb/src/planner/binder/expression/bind_star_expression.cpp +1 -1
- package/src/duckdb/src/planner/binder/expression/bind_subquery_expression.cpp +6 -3
- package/src/duckdb/src/planner/binder/query_node/bind_select_node.cpp +39 -23
- package/src/duckdb/src/planner/binder/query_node/plan_query_node.cpp +4 -4
- package/src/duckdb/src/planner/binder/statement/bind_create.cpp +1 -28
- package/src/duckdb/src/planner/binder/statement/bind_create_table.cpp +18 -1
- package/src/duckdb/src/planner/binder/statement/bind_drop.cpp +0 -25
- package/src/duckdb/src/planner/binder/statement/bind_insert.cpp +2 -2
- package/src/duckdb/src/planner/binder/statement/bind_update.cpp +2 -114
- package/src/duckdb/src/planner/binder/tableref/bind_pivot.cpp +7 -2
- package/src/duckdb/src/planner/binder/tableref/bind_table_function.cpp +7 -2
- package/src/duckdb/src/planner/binder.cpp +1 -1
- package/src/duckdb/src/planner/bound_result_modifier.cpp +30 -11
- package/src/duckdb/src/planner/expression/bound_aggregate_expression.cpp +11 -10
- package/src/duckdb/src/planner/expression/bound_between_expression.cpp +5 -5
- package/src/duckdb/src/planner/expression/bound_case_expression.cpp +5 -5
- package/src/duckdb/src/planner/expression/bound_cast_expression.cpp +3 -3
- package/src/duckdb/src/planner/expression/bound_columnref_expression.cpp +2 -2
- package/src/duckdb/src/planner/expression/bound_comparison_expression.cpp +4 -4
- package/src/duckdb/src/planner/expression/bound_conjunction_expression.cpp +2 -2
- package/src/duckdb/src/planner/expression/bound_constant_expression.cpp +2 -2
- package/src/duckdb/src/planner/expression/bound_default_expression.cpp +7 -1
- package/src/duckdb/src/planner/expression/bound_expression.cpp +1 -1
- package/src/duckdb/src/planner/expression/bound_function_expression.cpp +3 -4
- package/src/duckdb/src/planner/expression/bound_lambda_expression.cpp +4 -5
- package/src/duckdb/src/planner/expression/bound_lambdaref_expression.cpp +2 -2
- package/src/duckdb/src/planner/expression/bound_operator_expression.cpp +3 -4
- package/src/duckdb/src/planner/expression/bound_parameter_expression.cpp +2 -2
- package/src/duckdb/src/planner/expression/bound_reference_expression.cpp +2 -2
- package/src/duckdb/src/planner/expression/bound_subquery_expression.cpp +1 -1
- package/src/duckdb/src/planner/expression/bound_unnest_expression.cpp +3 -3
- package/src/duckdb/src/planner/expression/bound_window_expression.cpp +8 -21
- package/src/duckdb/src/planner/expression.cpp +18 -0
- package/src/duckdb/src/planner/expression_binder/base_select_binder.cpp +2 -2
- package/src/duckdb/src/planner/expression_binder.cpp +3 -2
- package/src/duckdb/src/planner/expression_iterator.cpp +2 -2
- package/src/duckdb/src/planner/filter/conjunction_filter.cpp +2 -2
- package/src/duckdb/src/planner/filter/constant_filter.cpp +1 -1
- package/src/duckdb/src/planner/logical_operator.cpp +3 -4
- package/src/duckdb/src/planner/logical_operator_visitor.cpp +1 -1
- package/src/duckdb/src/planner/operator/logical_distinct.cpp +5 -4
- package/src/duckdb/src/planner/operator/logical_pivot.cpp +14 -2
- package/src/duckdb/src/planner/planner.cpp +5 -15
- package/src/duckdb/src/planner/table_filter.cpp +1 -1
- package/src/duckdb/src/storage/arena_allocator.cpp +2 -2
- package/src/duckdb/src/storage/buffer/block_handle.cpp +1 -1
- package/src/duckdb/src/storage/checkpoint/write_overflow_strings_to_disk.cpp +2 -2
- package/src/duckdb/src/storage/checkpoint_manager.cpp +3 -3
- package/src/duckdb/src/storage/compression/bitpacking.cpp +8 -8
- package/src/duckdb/src/storage/compression/dictionary_compression.cpp +36 -36
- package/src/duckdb/src/storage/compression/fixed_size_uncompressed.cpp +11 -11
- package/src/duckdb/src/storage/compression/fsst.cpp +34 -34
- package/src/duckdb/src/storage/compression/rle.cpp +8 -8
- package/src/duckdb/src/storage/compression/string_uncompressed.cpp +13 -13
- package/src/duckdb/src/storage/compression/validity_uncompressed.cpp +11 -11
- package/src/duckdb/src/storage/data_table.cpp +12 -10
- package/src/duckdb/src/storage/index.cpp +13 -0
- package/src/duckdb/src/storage/single_file_block_manager.cpp +3 -3
- package/src/duckdb/src/storage/standard_buffer_manager.cpp +3 -3
- package/src/duckdb/src/storage/statistics/list_stats.cpp +1 -1
- package/src/duckdb/src/storage/statistics/numeric_stats.cpp +1 -1
- package/src/duckdb/src/storage/statistics/string_stats.cpp +15 -14
- package/src/duckdb/src/storage/storage_manager.cpp +6 -0
- package/src/duckdb/src/storage/table/chunk_info.cpp +2 -2
- package/src/duckdb/src/storage/table/column_data.cpp +7 -3
- package/src/duckdb/src/storage/table/column_segment.cpp +3 -3
- package/src/duckdb/src/storage/table/list_column_data.cpp +8 -7
- package/src/duckdb/src/storage/table/row_group.cpp +8 -7
- package/src/duckdb/src/storage/table/row_group_collection.cpp +6 -3
- package/src/duckdb/src/storage/table/standard_column_data.cpp +5 -4
- package/src/duckdb/src/storage/table/struct_column_data.cpp +4 -3
- package/src/duckdb/src/storage/table/update_segment.cpp +12 -12
- package/src/duckdb/src/storage/wal_replay.cpp +5 -6
- package/src/duckdb/src/transaction/cleanup_state.cpp +3 -3
- package/src/duckdb/src/transaction/commit_state.cpp +8 -8
- package/src/duckdb/src/transaction/duck_transaction.cpp +9 -7
- package/src/duckdb/src/transaction/duck_transaction_manager.cpp +16 -16
- package/src/duckdb/src/transaction/rollback_state.cpp +3 -3
- package/src/duckdb/src/verification/prepared_statement_verifier.cpp +1 -1
- package/src/duckdb/src/verification/statement_verifier.cpp +3 -4
- package/src/duckdb/third_party/hyperloglog/hyperloglog.hpp +2 -2
- package/src/duckdb/third_party/libpg_query/include/nodes/nodes.hpp +0 -1
- package/src/duckdb/third_party/libpg_query/include/nodes/parsenodes.hpp +0 -14
- package/src/duckdb/third_party/libpg_query/src_backend_parser_gram.cpp +12828 -12956
- package/src/duckdb/third_party/pcg/pcg_extras.hpp +1 -1
- package/src/duckdb/third_party/zstd/compress/zstd_compress.cpp +3 -0
- package/src/duckdb/third_party/zstd/include/zstd/compress/zstd_cwksp.h +4 -0
- package/src/duckdb/ub_extension_icu_third_party_icu_i18n.cpp +5 -5
- package/src/duckdb/ub_src_parser_transform_statement.cpp +0 -2
- package/test/extension.test.ts +11 -0
- package/src/duckdb/src/include/duckdb/parser/parsed_data/create_database_info.hpp +0 -46
- package/src/duckdb/src/parser/transform/statement/transform_create_database.cpp +0 -28
@@ -44,11 +44,31 @@ public:
|
|
44
44
|
|
45
45
|
virtual void Serialize(Serializer &serialize) = 0;
|
46
46
|
static unique_ptr<ChunkInfo> Deserialize(Deserializer &source);
|
47
|
+
|
48
|
+
public:
|
49
|
+
template <class TARGET>
|
50
|
+
TARGET &Cast() {
|
51
|
+
if (type != TARGET::TYPE) {
|
52
|
+
throw InternalException("Failed to cast chunk info to type - query result type mismatch");
|
53
|
+
}
|
54
|
+
return reinterpret_cast<TARGET &>(*this);
|
55
|
+
}
|
56
|
+
|
57
|
+
template <class TARGET>
|
58
|
+
const TARGET &Cast() const {
|
59
|
+
if (type != TARGET::TYPE) {
|
60
|
+
throw InternalException("Failed to cast chunk info to type - query result type mismatch");
|
61
|
+
}
|
62
|
+
return reinterpret_cast<const TARGET &>(*this);
|
63
|
+
}
|
47
64
|
};
|
48
65
|
|
49
66
|
class ChunkConstantInfo : public ChunkInfo {
|
50
67
|
public:
|
51
|
-
|
68
|
+
static constexpr const ChunkInfoType TYPE = ChunkInfoType::CONSTANT_INFO;
|
69
|
+
|
70
|
+
public:
|
71
|
+
explicit ChunkConstantInfo(idx_t start);
|
52
72
|
|
53
73
|
atomic<transaction_t> insert_id;
|
54
74
|
atomic<transaction_t> delete_id;
|
@@ -71,7 +91,10 @@ private:
|
|
71
91
|
|
72
92
|
class ChunkVectorInfo : public ChunkInfo {
|
73
93
|
public:
|
74
|
-
|
94
|
+
static constexpr const ChunkInfoType TYPE = ChunkInfoType::VECTOR_INFO;
|
95
|
+
|
96
|
+
public:
|
97
|
+
explicit ChunkVectorInfo(idx_t start);
|
75
98
|
|
76
99
|
//! The transaction ids of the transactions that inserted the tuples (if any)
|
77
100
|
atomic<transaction_t> inserted[STANDARD_VECTOR_SIZE];
|
@@ -42,6 +42,18 @@ public:
|
|
42
42
|
|
43
43
|
virtual void FlushSegment(unique_ptr<ColumnSegment> segment, idx_t segment_size);
|
44
44
|
virtual void WriteDataPointers(RowGroupWriter &writer);
|
45
|
+
|
46
|
+
public:
|
47
|
+
template <class TARGET>
|
48
|
+
TARGET &Cast() {
|
49
|
+
D_ASSERT(dynamic_cast<TARGET *>(this));
|
50
|
+
return reinterpret_cast<TARGET &>(*this);
|
51
|
+
}
|
52
|
+
template <class TARGET>
|
53
|
+
const TARGET &Cast() const {
|
54
|
+
D_ASSERT(dynamic_cast<const TARGET *>(this));
|
55
|
+
return reinterpret_cast<const TARGET &>(*this);
|
56
|
+
}
|
45
57
|
};
|
46
58
|
|
47
59
|
struct PartialBlockForCheckpoint : public PartialBlock {
|
@@ -130,7 +130,7 @@ public:
|
|
130
130
|
idx_t start_row, Deserializer &source, const LogicalType &type,
|
131
131
|
optional_ptr<ColumnData> parent);
|
132
132
|
|
133
|
-
virtual void
|
133
|
+
virtual void GetColumnSegmentInfo(idx_t row_group_index, vector<idx_t> col_path, vector<ColumnSegmentInfo> &result);
|
134
134
|
virtual void Verify(RowGroup &parent);
|
135
135
|
|
136
136
|
bool CheckZonemap(TableFilter &filter);
|
@@ -58,7 +58,8 @@ public:
|
|
58
58
|
|
59
59
|
void DeserializeColumn(Deserializer &source) override;
|
60
60
|
|
61
|
-
void
|
61
|
+
void GetColumnSegmentInfo(duckdb::idx_t row_group_index, vector<duckdb::idx_t> col_path,
|
62
|
+
vector<duckdb::ColumnSegmentInfo> &result) override;
|
62
63
|
|
63
64
|
private:
|
64
65
|
uint64_t FetchListOffset(idx_t row_idx);
|
@@ -31,7 +31,7 @@ class RowGroupCollection;
|
|
31
31
|
class RowGroupWriter;
|
32
32
|
class UpdateSegment;
|
33
33
|
class TableStatistics;
|
34
|
-
|
34
|
+
struct ColumnSegmentInfo;
|
35
35
|
class Vector;
|
36
36
|
struct ColumnCheckpointState;
|
37
37
|
struct RowGroupPointer;
|
@@ -141,7 +141,7 @@ public:
|
|
141
141
|
void MergeIntoStatistics(idx_t column_idx, BaseStatistics &other);
|
142
142
|
unique_ptr<BaseStatistics> GetStatistics(idx_t column_idx);
|
143
143
|
|
144
|
-
void
|
144
|
+
void GetColumnSegmentInfo(idx_t row_group_index, vector<ColumnSegmentInfo> &result);
|
145
145
|
|
146
146
|
void Verify();
|
147
147
|
|
@@ -26,6 +26,7 @@ struct TableAppendState;
|
|
26
26
|
class DuckTransaction;
|
27
27
|
class BoundConstraint;
|
28
28
|
class RowGroupSegmentTree;
|
29
|
+
struct ColumnSegmentInfo;
|
29
30
|
|
30
31
|
class RowGroupCollection {
|
31
32
|
public:
|
@@ -88,7 +89,7 @@ public:
|
|
88
89
|
void CommitDropColumn(idx_t index);
|
89
90
|
void CommitDropTable();
|
90
91
|
|
91
|
-
|
92
|
+
vector<ColumnSegmentInfo> GetColumnSegmentInfo();
|
92
93
|
const vector<LogicalType> &GetTypes() const;
|
93
94
|
|
94
95
|
shared_ptr<RowGroupCollection> AddColumn(ClientContext &context, ColumnDefinition &new_column,
|
@@ -35,11 +35,33 @@ class RowGroupSegmentTree;
|
|
35
35
|
struct SegmentScanState {
|
36
36
|
virtual ~SegmentScanState() {
|
37
37
|
}
|
38
|
+
|
39
|
+
template <class TARGET>
|
40
|
+
TARGET &Cast() {
|
41
|
+
D_ASSERT(dynamic_cast<TARGET *>(this));
|
42
|
+
return reinterpret_cast<TARGET &>(*this);
|
43
|
+
}
|
44
|
+
template <class TARGET>
|
45
|
+
const TARGET &Cast() const {
|
46
|
+
D_ASSERT(dynamic_cast<const TARGET *>(this));
|
47
|
+
return reinterpret_cast<const TARGET &>(*this);
|
48
|
+
}
|
38
49
|
};
|
39
50
|
|
40
51
|
struct IndexScanState {
|
41
52
|
virtual ~IndexScanState() {
|
42
53
|
}
|
54
|
+
|
55
|
+
template <class TARGET>
|
56
|
+
TARGET &Cast() {
|
57
|
+
D_ASSERT(dynamic_cast<TARGET *>(this));
|
58
|
+
return reinterpret_cast<TARGET &>(*this);
|
59
|
+
}
|
60
|
+
template <class TARGET>
|
61
|
+
const TARGET &Cast() const {
|
62
|
+
D_ASSERT(dynamic_cast<const TARGET *>(this));
|
63
|
+
return reinterpret_cast<const TARGET &>(*this);
|
64
|
+
}
|
43
65
|
};
|
44
66
|
|
45
67
|
typedef unordered_map<block_id_t, BufferHandle> buffer_handle_set_t;
|
@@ -56,7 +56,8 @@ public:
|
|
56
56
|
|
57
57
|
void DeserializeColumn(Deserializer &source) override;
|
58
58
|
|
59
|
-
void
|
59
|
+
void GetColumnSegmentInfo(duckdb::idx_t row_group_index, vector<duckdb::idx_t> col_path,
|
60
|
+
vector<duckdb::ColumnSegmentInfo> &result) override;
|
60
61
|
|
61
62
|
void Verify(RowGroup &parent) override;
|
62
63
|
};
|
@@ -59,7 +59,8 @@ public:
|
|
59
59
|
|
60
60
|
void DeserializeColumn(Deserializer &source) override;
|
61
61
|
|
62
|
-
void
|
62
|
+
void GetColumnSegmentInfo(duckdb::idx_t row_group_index, vector<duckdb::idx_t> col_path,
|
63
|
+
vector<duckdb::ColumnSegmentInfo> &result) override;
|
63
64
|
|
64
65
|
void Verify(RowGroup &parent) override;
|
65
66
|
};
|
@@ -46,9 +46,9 @@ public:
|
|
46
46
|
}
|
47
47
|
|
48
48
|
private:
|
49
|
-
bool CanCheckpoint(DuckTransaction
|
49
|
+
bool CanCheckpoint(optional_ptr<DuckTransaction> current = nullptr);
|
50
50
|
//! Remove the given transaction from the list of active transactions
|
51
|
-
void RemoveTransaction(DuckTransaction
|
51
|
+
void RemoveTransaction(DuckTransaction &transaction) noexcept;
|
52
52
|
void LockClients(vector<ClientLockWrapper> &client_locks, ClientContext &context);
|
53
53
|
|
54
54
|
private:
|
@@ -62,12 +62,12 @@ public:
|
|
62
62
|
template <class TARGET>
|
63
63
|
TARGET &Cast() {
|
64
64
|
D_ASSERT(dynamic_cast<TARGET *>(this));
|
65
|
-
return
|
65
|
+
return reinterpret_cast<TARGET &>(*this);
|
66
66
|
}
|
67
67
|
template <class TARGET>
|
68
68
|
const TARGET &Cast() const {
|
69
69
|
D_ASSERT(dynamic_cast<const TARGET *>(this));
|
70
|
-
return
|
70
|
+
return reinterpret_cast<const TARGET &>(*this);
|
71
71
|
}
|
72
72
|
};
|
73
73
|
|
@@ -124,4 +124,12 @@ Catalog &AttachedDatabase::ParentCatalog() {
|
|
124
124
|
return *parent_catalog;
|
125
125
|
}
|
126
126
|
|
127
|
+
bool AttachedDatabase::IsInitialDatabase() const {
|
128
|
+
return is_initial_database;
|
129
|
+
}
|
130
|
+
|
131
|
+
void AttachedDatabase::SetInitialDatabase() {
|
132
|
+
is_initial_database = true;
|
133
|
+
}
|
134
|
+
|
127
135
|
} // namespace duckdb
|
@@ -12,7 +12,7 @@ using duckdb::timestamp_t;
|
|
12
12
|
|
13
13
|
duckdb_state duckdb_appender_create(duckdb_connection connection, const char *schema, const char *table,
|
14
14
|
duckdb_appender *out_appender) {
|
15
|
-
Connection *conn =
|
15
|
+
Connection *conn = reinterpret_cast<Connection *>(connection);
|
16
16
|
|
17
17
|
if (!connection || !table || !out_appender) {
|
18
18
|
return DuckDBError;
|
@@ -39,7 +39,7 @@ duckdb_state duckdb_appender_destroy(duckdb_appender *appender) {
|
|
39
39
|
return DuckDBError;
|
40
40
|
}
|
41
41
|
duckdb_appender_close(*appender);
|
42
|
-
auto wrapper =
|
42
|
+
auto wrapper = reinterpret_cast<AppenderWrapper *>(*appender);
|
43
43
|
if (wrapper) {
|
44
44
|
delete wrapper;
|
45
45
|
}
|
@@ -52,7 +52,7 @@ duckdb_state duckdb_appender_run_function(duckdb_appender appender, FUN &&functi
|
|
52
52
|
if (!appender) {
|
53
53
|
return DuckDBError;
|
54
54
|
}
|
55
|
-
auto wrapper =
|
55
|
+
auto wrapper = reinterpret_cast<AppenderWrapper *>(appender);
|
56
56
|
if (!wrapper->appender) {
|
57
57
|
return DuckDBError;
|
58
58
|
}
|
@@ -72,7 +72,7 @@ const char *duckdb_appender_error(duckdb_appender appender) {
|
|
72
72
|
if (!appender) {
|
73
73
|
return nullptr;
|
74
74
|
}
|
75
|
-
auto wrapper =
|
75
|
+
auto wrapper = reinterpret_cast<AppenderWrapper *>(appender);
|
76
76
|
if (wrapper->error.empty()) {
|
77
77
|
return nullptr;
|
78
78
|
}
|
@@ -92,7 +92,7 @@ duckdb_state duckdb_append_internal(duckdb_appender appender, T value) {
|
|
92
92
|
if (!appender) {
|
93
93
|
return DuckDBError;
|
94
94
|
}
|
95
|
-
auto *appender_instance =
|
95
|
+
auto *appender_instance = reinterpret_cast<AppenderWrapper *>(appender);
|
96
96
|
try {
|
97
97
|
appender_instance->appender->Append<T>(value);
|
98
98
|
} catch (std::exception &ex) {
|
@@ -23,9 +23,9 @@ duckdb_state duckdb_query_arrow_schema(duckdb_arrow result, duckdb_arrow_schema
|
|
23
23
|
if (!out_schema) {
|
24
24
|
return DuckDBSuccess;
|
25
25
|
}
|
26
|
-
auto wrapper =
|
26
|
+
auto wrapper = reinterpret_cast<ArrowResultWrapper *>(result);
|
27
27
|
ArrowConverter::ToArrowSchema((ArrowSchema *)*out_schema, wrapper->result->types, wrapper->result->names,
|
28
|
-
wrapper->
|
28
|
+
wrapper->options);
|
29
29
|
return DuckDBSuccess;
|
30
30
|
}
|
31
31
|
|
@@ -33,7 +33,7 @@ duckdb_state duckdb_query_arrow_array(duckdb_arrow result, duckdb_arrow_array *o
|
|
33
33
|
if (!out_array) {
|
34
34
|
return DuckDBSuccess;
|
35
35
|
}
|
36
|
-
auto wrapper =
|
36
|
+
auto wrapper = reinterpret_cast<ArrowResultWrapper *>(result);
|
37
37
|
auto success = wrapper->result->TryFetch(wrapper->current_chunk, wrapper->result->GetErrorObject());
|
38
38
|
if (!success) { // LCOV_EXCL_START
|
39
39
|
return DuckDBError;
|
@@ -41,12 +41,12 @@ duckdb_state duckdb_query_arrow_array(duckdb_arrow result, duckdb_arrow_array *o
|
|
41
41
|
if (!wrapper->current_chunk || wrapper->current_chunk->size() == 0) {
|
42
42
|
return DuckDBSuccess;
|
43
43
|
}
|
44
|
-
ArrowConverter::ToArrowArray(*wrapper->current_chunk,
|
44
|
+
ArrowConverter::ToArrowArray(*wrapper->current_chunk, reinterpret_cast<ArrowArray *>(*out_array), wrapper->options);
|
45
45
|
return DuckDBSuccess;
|
46
46
|
}
|
47
47
|
|
48
48
|
idx_t duckdb_arrow_row_count(duckdb_arrow result) {
|
49
|
-
auto wrapper =
|
49
|
+
auto wrapper = reinterpret_cast<ArrowResultWrapper *>(result);
|
50
50
|
if (wrapper->result->HasError()) {
|
51
51
|
return 0;
|
52
52
|
}
|
@@ -54,12 +54,12 @@ idx_t duckdb_arrow_row_count(duckdb_arrow result) {
|
|
54
54
|
}
|
55
55
|
|
56
56
|
idx_t duckdb_arrow_column_count(duckdb_arrow result) {
|
57
|
-
auto wrapper =
|
57
|
+
auto wrapper = reinterpret_cast<ArrowResultWrapper *>(result);
|
58
58
|
return wrapper->result->ColumnCount();
|
59
59
|
}
|
60
60
|
|
61
61
|
idx_t duckdb_arrow_rows_changed(duckdb_arrow result) {
|
62
|
-
auto wrapper =
|
62
|
+
auto wrapper = reinterpret_cast<ArrowResultWrapper *>(result);
|
63
63
|
if (wrapper->result->HasError()) {
|
64
64
|
return 0;
|
65
65
|
}
|
@@ -76,35 +76,35 @@ idx_t duckdb_arrow_rows_changed(duckdb_arrow result) {
|
|
76
76
|
}
|
77
77
|
|
78
78
|
const char *duckdb_query_arrow_error(duckdb_arrow result) {
|
79
|
-
auto wrapper =
|
79
|
+
auto wrapper = reinterpret_cast<ArrowResultWrapper *>(result);
|
80
80
|
return wrapper->result->GetError().c_str();
|
81
81
|
}
|
82
82
|
|
83
83
|
void duckdb_destroy_arrow(duckdb_arrow *result) {
|
84
84
|
if (*result) {
|
85
|
-
auto wrapper =
|
85
|
+
auto wrapper = reinterpret_cast<ArrowResultWrapper *>(*result);
|
86
86
|
delete wrapper;
|
87
87
|
*result = nullptr;
|
88
88
|
}
|
89
89
|
}
|
90
90
|
|
91
91
|
duckdb_state duckdb_execute_prepared_arrow(duckdb_prepared_statement prepared_statement, duckdb_arrow *out_result) {
|
92
|
-
auto wrapper =
|
92
|
+
auto wrapper = reinterpret_cast<PreparedStatementWrapper *>(prepared_statement);
|
93
93
|
if (!wrapper || !wrapper->statement || wrapper->statement->HasError() || !out_result) {
|
94
94
|
return DuckDBError;
|
95
95
|
}
|
96
96
|
auto arrow_wrapper = new ArrowResultWrapper();
|
97
97
|
if (wrapper->statement->context->config.set_variables.find("TimeZone") ==
|
98
98
|
wrapper->statement->context->config.set_variables.end()) {
|
99
|
-
arrow_wrapper->
|
99
|
+
arrow_wrapper->options.time_zone = "UTC";
|
100
100
|
} else {
|
101
|
-
arrow_wrapper->
|
101
|
+
arrow_wrapper->options.time_zone =
|
102
102
|
wrapper->statement->context->config.set_variables["TimeZone"].GetValue<std::string>();
|
103
103
|
}
|
104
104
|
|
105
105
|
auto result = wrapper->statement->Execute(wrapper->values, false);
|
106
106
|
D_ASSERT(result->type == QueryResultType::MATERIALIZED_RESULT);
|
107
107
|
arrow_wrapper->result = duckdb::unique_ptr_cast<QueryResult, MaterializedQueryResult>(std::move(result));
|
108
|
-
*out_result = (
|
108
|
+
*out_result = reinterpret_cast<duckdb_arrow>(arrow_wrapper);
|
109
109
|
return !arrow_wrapper->result->HasError() ? DuckDBSuccess : DuckDBError;
|
110
110
|
}
|
@@ -34,7 +34,7 @@ bool CastDecimalCInternal(duckdb_result *source, duckdb_string &result, idx_t co
|
|
34
34
|
default:
|
35
35
|
throw duckdb::InternalException("Unimplemented internal type for decimal");
|
36
36
|
}
|
37
|
-
result.data =
|
37
|
+
result.data = reinterpret_cast<char *>(duckdb_malloc(sizeof(char) * (result_string.GetSize() + 1)));
|
38
38
|
memcpy(result.data, result_string.GetData(), result_string.GetSize());
|
39
39
|
result.data[result_string.GetSize()] = '\0';
|
40
40
|
result.size = result_string.GetSize();
|
@@ -68,7 +68,7 @@ duckdb_blob FetchDefaultValue::Operation() {
|
|
68
68
|
|
69
69
|
template <>
|
70
70
|
bool FromCBlobCastWrapper::Operation(duckdb_blob input, duckdb_string &result) {
|
71
|
-
string_t input_str((
|
71
|
+
string_t input_str(const_char_ptr_cast(input.data), input.size);
|
72
72
|
return ToCStringCastWrapper<duckdb::CastFromBlob>::template Operation<string_t, duckdb_string>(input_str, result);
|
73
73
|
}
|
74
74
|
|
@@ -16,7 +16,7 @@ duckdb_state duckdb_create_config(duckdb_config *out_config) {
|
|
16
16
|
} catch (...) { // LCOV_EXCL_START
|
17
17
|
return DuckDBError;
|
18
18
|
} // LCOV_EXCL_STOP
|
19
|
-
*out_config = (
|
19
|
+
*out_config = reinterpret_cast<duckdb_config>(config);
|
20
20
|
return DuckDBSuccess;
|
21
21
|
}
|
22
22
|
|
@@ -42,13 +42,10 @@ duckdb_state duckdb_set_config(duckdb_config config, const char *name, const cha
|
|
42
42
|
if (!config || !name || !option) {
|
43
43
|
return DuckDBError;
|
44
44
|
}
|
45
|
-
|
46
|
-
if (!config_option) {
|
47
|
-
return DuckDBError;
|
48
|
-
}
|
45
|
+
|
49
46
|
try {
|
50
47
|
auto db_config = (DBConfig *)config;
|
51
|
-
db_config->
|
48
|
+
db_config->SetOptionByName(name, Value(option));
|
52
49
|
} catch (...) {
|
53
50
|
return DuckDBError;
|
54
51
|
}
|
@@ -10,7 +10,7 @@ duckdb_data_chunk duckdb_create_data_chunk(duckdb_logical_type *ctypes, idx_t co
|
|
10
10
|
}
|
11
11
|
duckdb::vector<duckdb::LogicalType> types;
|
12
12
|
for (idx_t i = 0; i < column_count; i++) {
|
13
|
-
auto ltype =
|
13
|
+
auto ltype = reinterpret_cast<duckdb::LogicalType *>(ctypes[i]);
|
14
14
|
types.push_back(*ltype);
|
15
15
|
}
|
16
16
|
|
@@ -21,7 +21,7 @@ duckdb_data_chunk duckdb_create_data_chunk(duckdb_logical_type *ctypes, idx_t co
|
|
21
21
|
|
22
22
|
void duckdb_destroy_data_chunk(duckdb_data_chunk *chunk) {
|
23
23
|
if (chunk && *chunk) {
|
24
|
-
auto dchunk =
|
24
|
+
auto dchunk = reinterpret_cast<duckdb::DataChunk *>(*chunk);
|
25
25
|
delete dchunk;
|
26
26
|
*chunk = nullptr;
|
27
27
|
}
|
@@ -31,7 +31,7 @@ void duckdb_data_chunk_reset(duckdb_data_chunk chunk) {
|
|
31
31
|
if (!chunk) {
|
32
32
|
return;
|
33
33
|
}
|
34
|
-
auto dchunk =
|
34
|
+
auto dchunk = reinterpret_cast<duckdb::DataChunk *>(chunk);
|
35
35
|
dchunk->Reset();
|
36
36
|
}
|
37
37
|
|
@@ -39,7 +39,7 @@ idx_t duckdb_data_chunk_get_column_count(duckdb_data_chunk chunk) {
|
|
39
39
|
if (!chunk) {
|
40
40
|
return 0;
|
41
41
|
}
|
42
|
-
auto dchunk =
|
42
|
+
auto dchunk = reinterpret_cast<duckdb::DataChunk *>(chunk);
|
43
43
|
return dchunk->ColumnCount();
|
44
44
|
}
|
45
45
|
|
@@ -47,7 +47,7 @@ duckdb_vector duckdb_data_chunk_get_vector(duckdb_data_chunk chunk, idx_t col_id
|
|
47
47
|
if (!chunk || col_idx >= duckdb_data_chunk_get_column_count(chunk)) {
|
48
48
|
return nullptr;
|
49
49
|
}
|
50
|
-
auto dchunk =
|
50
|
+
auto dchunk = reinterpret_cast<duckdb::DataChunk *>(chunk);
|
51
51
|
return reinterpret_cast<duckdb_vector>(&dchunk->data[col_idx]);
|
52
52
|
}
|
53
53
|
|
@@ -55,7 +55,7 @@ idx_t duckdb_data_chunk_get_size(duckdb_data_chunk chunk) {
|
|
55
55
|
if (!chunk) {
|
56
56
|
return 0;
|
57
57
|
}
|
58
|
-
auto dchunk =
|
58
|
+
auto dchunk = reinterpret_cast<duckdb::DataChunk *>(chunk);
|
59
59
|
return dchunk->size();
|
60
60
|
}
|
61
61
|
|
@@ -63,7 +63,7 @@ void duckdb_data_chunk_set_size(duckdb_data_chunk chunk, idx_t size) {
|
|
63
63
|
if (!chunk) {
|
64
64
|
return;
|
65
65
|
}
|
66
|
-
auto dchunk =
|
66
|
+
auto dchunk = reinterpret_cast<duckdb::DataChunk *>(chunk);
|
67
67
|
dchunk->SetCardinality(size);
|
68
68
|
}
|
69
69
|
|
@@ -71,7 +71,7 @@ duckdb_logical_type duckdb_vector_get_column_type(duckdb_vector vector) {
|
|
71
71
|
if (!vector) {
|
72
72
|
return nullptr;
|
73
73
|
}
|
74
|
-
auto v =
|
74
|
+
auto v = reinterpret_cast<duckdb::Vector *>(vector);
|
75
75
|
return reinterpret_cast<duckdb_logical_type>(new duckdb::LogicalType(v->GetType()));
|
76
76
|
}
|
77
77
|
|
@@ -79,7 +79,7 @@ void *duckdb_vector_get_data(duckdb_vector vector) {
|
|
79
79
|
if (!vector) {
|
80
80
|
return nullptr;
|
81
81
|
}
|
82
|
-
auto v =
|
82
|
+
auto v = reinterpret_cast<duckdb::Vector *>(vector);
|
83
83
|
return duckdb::FlatVector::GetData(*v);
|
84
84
|
}
|
85
85
|
|
@@ -87,7 +87,7 @@ uint64_t *duckdb_vector_get_validity(duckdb_vector vector) {
|
|
87
87
|
if (!vector) {
|
88
88
|
return nullptr;
|
89
89
|
}
|
90
|
-
auto v =
|
90
|
+
auto v = reinterpret_cast<duckdb::Vector *>(vector);
|
91
91
|
return duckdb::FlatVector::Validity(*v).GetData();
|
92
92
|
}
|
93
93
|
|
@@ -95,7 +95,7 @@ void duckdb_vector_ensure_validity_writable(duckdb_vector vector) {
|
|
95
95
|
if (!vector) {
|
96
96
|
return;
|
97
97
|
}
|
98
|
-
auto v =
|
98
|
+
auto v = reinterpret_cast<duckdb::Vector *>(vector);
|
99
99
|
auto &validity = duckdb::FlatVector::Validity(*v);
|
100
100
|
validity.EnsureWritable();
|
101
101
|
}
|
@@ -108,7 +108,7 @@ void duckdb_vector_assign_string_element_len(duckdb_vector vector, idx_t index,
|
|
108
108
|
if (!vector) {
|
109
109
|
return;
|
110
110
|
}
|
111
|
-
auto v =
|
111
|
+
auto v = reinterpret_cast<duckdb::Vector *>(vector);
|
112
112
|
auto data = duckdb::FlatVector::GetData<duckdb::string_t>(*v);
|
113
113
|
data[index] = duckdb::StringVector::AddString(*v, str, str_len);
|
114
114
|
}
|
@@ -117,7 +117,7 @@ duckdb_vector duckdb_list_vector_get_child(duckdb_vector vector) {
|
|
117
117
|
if (!vector) {
|
118
118
|
return nullptr;
|
119
119
|
}
|
120
|
-
auto v =
|
120
|
+
auto v = reinterpret_cast<duckdb::Vector *>(vector);
|
121
121
|
return reinterpret_cast<duckdb_vector>(&duckdb::ListVector::GetEntry(*v));
|
122
122
|
}
|
123
123
|
|
@@ -125,7 +125,7 @@ idx_t duckdb_list_vector_get_size(duckdb_vector vector) {
|
|
125
125
|
if (!vector) {
|
126
126
|
return 0;
|
127
127
|
}
|
128
|
-
auto v =
|
128
|
+
auto v = reinterpret_cast<duckdb::Vector *>(vector);
|
129
129
|
return duckdb::ListVector::GetListSize(*v);
|
130
130
|
}
|
131
131
|
|
@@ -133,7 +133,7 @@ duckdb_state duckdb_list_vector_set_size(duckdb_vector vector, idx_t size) {
|
|
133
133
|
if (!vector) {
|
134
134
|
return duckdb_state::DuckDBError;
|
135
135
|
}
|
136
|
-
auto v =
|
136
|
+
auto v = reinterpret_cast<duckdb::Vector *>(vector);
|
137
137
|
duckdb::ListVector::SetListSize(*v, size);
|
138
138
|
return duckdb_state::DuckDBSuccess;
|
139
139
|
}
|
@@ -142,7 +142,7 @@ duckdb_state duckdb_list_vector_reserve(duckdb_vector vector, idx_t required_cap
|
|
142
142
|
if (!vector) {
|
143
143
|
return duckdb_state::DuckDBError;
|
144
144
|
}
|
145
|
-
auto v =
|
145
|
+
auto v = reinterpret_cast<duckdb::Vector *>(vector);
|
146
146
|
duckdb::ListVector::Reserve(*v, required_capacity);
|
147
147
|
return duckdb_state::DuckDBSuccess;
|
148
148
|
}
|
@@ -151,7 +151,7 @@ duckdb_vector duckdb_struct_vector_get_child(duckdb_vector vector, idx_t index)
|
|
151
151
|
if (!vector) {
|
152
152
|
return nullptr;
|
153
153
|
}
|
154
|
-
auto v =
|
154
|
+
auto v = reinterpret_cast<duckdb::Vector *>(vector);
|
155
155
|
return reinterpret_cast<duckdb_vector>(duckdb::StructVector::GetEntries(*v)[index].get());
|
156
156
|
}
|
157
157
|
|
@@ -33,7 +33,7 @@ duckdb_state duckdb_open(const char *path, duckdb_database *out) {
|
|
33
33
|
|
34
34
|
void duckdb_close(duckdb_database *database) {
|
35
35
|
if (database && *database) {
|
36
|
-
auto wrapper =
|
36
|
+
auto wrapper = reinterpret_cast<DatabaseData *>(*database);
|
37
37
|
delete wrapper;
|
38
38
|
*database = nullptr;
|
39
39
|
}
|
@@ -43,7 +43,7 @@ duckdb_state duckdb_connect(duckdb_database database, duckdb_connection *out) {
|
|
43
43
|
if (!database || !out) {
|
44
44
|
return DuckDBError;
|
45
45
|
}
|
46
|
-
auto wrapper =
|
46
|
+
auto wrapper = reinterpret_cast<DatabaseData *>(database);
|
47
47
|
Connection *connection;
|
48
48
|
try {
|
49
49
|
connection = new Connection(*wrapper->database);
|
@@ -56,14 +56,14 @@ duckdb_state duckdb_connect(duckdb_database database, duckdb_connection *out) {
|
|
56
56
|
|
57
57
|
void duckdb_disconnect(duckdb_connection *connection) {
|
58
58
|
if (connection && *connection) {
|
59
|
-
Connection *conn =
|
59
|
+
Connection *conn = reinterpret_cast<Connection *>(*connection);
|
60
60
|
delete conn;
|
61
61
|
*connection = nullptr;
|
62
62
|
}
|
63
63
|
}
|
64
64
|
|
65
65
|
duckdb_state duckdb_query(duckdb_connection connection, const char *query, duckdb_result *out) {
|
66
|
-
Connection *conn =
|
66
|
+
Connection *conn = reinterpret_cast<Connection *>(connection);
|
67
67
|
auto result = conn->Query(query);
|
68
68
|
return duckdb_translate_result(std::move(result), out);
|
69
69
|
}
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
void duckdb_destroy_value(duckdb_value *value) {
|
4
4
|
if (value && *value) {
|
5
|
-
auto val =
|
5
|
+
auto val = reinterpret_cast<duckdb::Value *>(*value);
|
6
6
|
delete val;
|
7
7
|
*value = nullptr;
|
8
8
|
}
|
@@ -22,18 +22,18 @@ duckdb_value duckdb_create_int64(int64_t input) {
|
|
22
22
|
}
|
23
23
|
|
24
24
|
char *duckdb_get_varchar(duckdb_value value) {
|
25
|
-
auto val =
|
25
|
+
auto val = reinterpret_cast<duckdb::Value *>(value);
|
26
26
|
auto str_val = val->DefaultCastAs(duckdb::LogicalType::VARCHAR);
|
27
27
|
auto &str = duckdb::StringValue::Get(str_val);
|
28
28
|
|
29
|
-
auto result =
|
29
|
+
auto result = reinterpret_cast<char *>(malloc(sizeof(char *) * (str.size() + 1)));
|
30
30
|
memcpy(result, str.c_str(), str.size());
|
31
31
|
result[str.size()] = '\0';
|
32
32
|
return result;
|
33
33
|
}
|
34
34
|
|
35
35
|
int64_t duckdb_get_int64(duckdb_value value) {
|
36
|
-
auto val =
|
36
|
+
auto val = reinterpret_cast<duckdb::Value *>(value);
|
37
37
|
if (!val->DefaultTryCastAs(duckdb::LogicalType::BIGINT)) {
|
38
38
|
return 0;
|
39
39
|
}
|