duckdb 0.8.1-dev26.0 → 0.8.1-dev287.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 +8 -8
- package/package.json +1 -1
- package/src/duckdb/extension/icu/icu-datepart.cpp +1 -1
- package/src/duckdb/extension/icu/icu-makedate.cpp +5 -4
- 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 +3 -1
- 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 +40 -25
- 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 +1 -1
- 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 +113 -0
- package/src/duckdb/src/catalog/catalog_entry/table_catalog_entry.cpp +7 -0
- package/src/duckdb/src/catalog/catalog_entry.cpp +4 -4
- 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/catalog/duck_catalog.cpp +1 -0
- package/src/duckdb/src/common/adbc/adbc.cpp +301 -106
- package/src/duckdb/src/common/adbc/driver_manager.cpp +10 -22
- package/src/duckdb/src/common/arrow/arrow_appender.cpp +12 -12
- package/src/duckdb/src/common/arrow/arrow_wrapper.cpp +7 -7
- 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 +19 -14
- package/src/duckdb/src/common/field_writer.cpp +1 -1
- package/src/duckdb/src/common/file_system.cpp +15 -2
- 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/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/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 +44 -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 +32 -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 +36 -37
- package/src/duckdb/src/core_functions/aggregate/distributive/sum.cpp +22 -22
- package/src/duckdb/src/core_functions/aggregate/holistic/approximate_quantile.cpp +48 -84
- package/src/duckdb/src/core_functions/aggregate/holistic/mode.cpp +49 -51
- package/src/duckdb/src/core_functions/aggregate/holistic/quantile.cpp +97 -121
- package/src/duckdb/src/core_functions/aggregate/holistic/reservoir_quantile.cpp +62 -99
- 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 +45 -45
- 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 +3 -3
- package/src/duckdb/src/core_functions/scalar/list/flatten.cpp +2 -4
- package/src/duckdb/src/core_functions/scalar/list/list_aggregates.cpp +3 -3
- package/src/duckdb/src/core_functions/scalar/list/list_lambdas.cpp +6 -7
- 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 +3 -3
- 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 +30 -32
- package/src/duckdb/src/execution/index/art/fixed_size_allocator.cpp +3 -4
- package/src/duckdb/src/execution/join_hashtable.cpp +4 -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 +25 -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_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_unnest.cpp +3 -3
- 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_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 +2 -2
- package/src/duckdb/src/execution/window_segment_tree.cpp +8 -6
- package/src/duckdb/src/function/aggregate/distributive/count.cpp +158 -20
- package/src/duckdb/src/function/aggregate/distributive/first.cpp +66 -74
- package/src/duckdb/src/function/aggregate/sorted_aggregate_function.cpp +13 -13
- 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 +3 -3
- package/src/duckdb/src/function/scalar/operators/arithmetic.cpp +2 -3
- 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 +25 -23
- 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 +1 -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 +15 -20
- package/src/duckdb/src/function/table/repeat.cpp +2 -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/test_vector_types.cpp +82 -26
- package/src/duckdb/src/function/table/table_scan.cpp +2 -2
- 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 +6 -0
- 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/adbc/adbc.hpp +5 -0
- package/src/duckdb/src/include/duckdb/common/allocator.hpp +15 -4
- package/src/duckdb/src/include/duckdb/common/arrow/arrow_buffer.hpp +7 -2
- 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/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 +3 -3
- 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 +8 -29
- 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 +3 -1
- 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_function.hpp +2 -2
- package/src/duckdb/src/include/duckdb/function/table_function.hpp +8 -7
- package/src/duckdb/src/include/duckdb/main/capi/cast/utils.hpp +1 -1
- package/src/duckdb/src/include/duckdb/main/config.hpp +2 -0
- 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 +17 -0
- package/src/duckdb/src/include/duckdb/main/relation.hpp +12 -0
- package/src/duckdb/src/include/duckdb/main/settings.hpp +9 -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/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 +1 -1
- 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 +107 -91
- 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 +34 -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/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/index.hpp +2 -2
- package/src/duckdb/src/include/duckdb/storage/partial_block_manager.hpp +1 -1
- 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/scan_state.hpp +22 -0
- 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/capi/appender-c.cpp +5 -5
- package/src/duckdb/src/main/capi/arrow-c.cpp +10 -10
- 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 +3 -3
- package/src/duckdb/src/main/config.cpp +1 -0
- package/src/duckdb/src/main/database_manager.cpp +1 -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/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 +22 -6
- package/src/duckdb/src/optimizer/deliminator.cpp +12 -12
- package/src/duckdb/src/optimizer/expression_heuristics.cpp +1 -0
- 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/parallel/executor.cpp +1 -1
- 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_expression.cpp +34 -18
- package/src/duckdb/src/parser/parsed_expression_iterator.cpp +4 -4
- package/src/duckdb/src/parser/parser.cpp +4 -4
- 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 +28 -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/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_database.cpp +3 -4
- 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 -22
- 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 +46 -46
- package/src/duckdb/src/planner/bind_context.cpp +9 -10
- package/src/duckdb/src/planner/binder/expression/bind_function_expression.cpp +1 -1
- 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 +8 -8
- 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 -1
- package/src/duckdb/src/planner/binder/statement/bind_create_table.cpp +18 -1
- 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 +4 -2
- package/src/duckdb/src/planner/binder/tableref/bind_table_function.cpp +17 -7
- package/src/duckdb/src/planner/binder.cpp +1 -1
- package/src/duckdb/src/planner/bound_result_modifier.cpp +16 -11
- package/src/duckdb/src/planner/expression/bound_aggregate_expression.cpp +5 -5
- 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_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 +15 -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/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 +8 -7
- package/src/duckdb/src/storage/index.cpp +1 -3
- package/src/duckdb/src/storage/local_storage.cpp +2 -1
- package/src/duckdb/src/storage/magic_bytes.cpp +1 -1
- 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/table/chunk_info.cpp +2 -2
- package/src/duckdb/src/storage/table/column_segment.cpp +3 -3
- package/src/duckdb/src/storage/table/list_column_data.cpp +3 -3
- package/src/duckdb/src/storage/table/row_group.cpp +4 -4
- package/src/duckdb/src/storage/table/standard_column_data.cpp +1 -1
- 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/pcg/pcg_extras.hpp +1 -1
- package/src/duckdb/ub_extension_icu_third_party_icu_i18n.cpp +5 -5
@@ -19,7 +19,7 @@ namespace duckdb {
|
|
19
19
|
const char MainHeader::MAGIC_BYTES[] = "DUCK";
|
20
20
|
|
21
21
|
void MainHeader::Serialize(Serializer &ser) {
|
22
|
-
ser.WriteData((
|
22
|
+
ser.WriteData(const_data_ptr_cast(MAGIC_BYTES), MAGIC_BYTE_SIZE);
|
23
23
|
ser.Write<uint64_t>(version_number);
|
24
24
|
FieldWriter writer(ser);
|
25
25
|
for (idx_t i = 0; i < FLAG_COUNT; i++) {
|
@@ -170,7 +170,7 @@ void SingleFileBlockManager::CreateNewDatabase() {
|
|
170
170
|
h2.free_list = INVALID_BLOCK;
|
171
171
|
h2.block_count = 0;
|
172
172
|
SerializeHeaderStructure<DatabaseHeader>(h2, header_buffer.buffer);
|
173
|
-
ChecksumAndWrite(header_buffer, Storage::FILE_HEADER_SIZE *
|
173
|
+
ChecksumAndWrite(header_buffer, Storage::FILE_HEADER_SIZE * 2ULL);
|
174
174
|
// ensure that writing to disk is completed before returning
|
175
175
|
handle->Sync();
|
176
176
|
// we start with h2 as active_header, this way our initial write will be in h1
|
@@ -197,7 +197,7 @@ void SingleFileBlockManager::LoadExistingDatabase() {
|
|
197
197
|
DatabaseHeader h1, h2;
|
198
198
|
ReadAndChecksum(header_buffer, Storage::FILE_HEADER_SIZE);
|
199
199
|
h1 = DeserializeHeaderStructure<DatabaseHeader>(header_buffer.buffer);
|
200
|
-
ReadAndChecksum(header_buffer, Storage::FILE_HEADER_SIZE *
|
200
|
+
ReadAndChecksum(header_buffer, Storage::FILE_HEADER_SIZE * 2ULL);
|
201
201
|
h2 = DeserializeHeaderStructure<DatabaseHeader>(header_buffer.buffer);
|
202
202
|
// check the header with the highest iteration count
|
203
203
|
if (h1.iteration > h2.iteration) {
|
@@ -751,7 +751,7 @@ void StandardBufferManager::FreeReservedMemory(idx_t size) {
|
|
751
751
|
// Buffer Allocator
|
752
752
|
//===--------------------------------------------------------------------===//
|
753
753
|
data_ptr_t StandardBufferManager::BufferAllocatorAllocate(PrivateAllocatorData *private_data, idx_t size) {
|
754
|
-
auto &data = (
|
754
|
+
auto &data = private_data->Cast<BufferAllocatorData>();
|
755
755
|
auto reservation = data.manager.EvictBlocksOrThrow(size, nullptr, "failed to allocate data of size %s%s",
|
756
756
|
StringUtil::BytesToHumanReadableString(size));
|
757
757
|
// We rely on manual tracking of this one. :(
|
@@ -760,7 +760,7 @@ data_ptr_t StandardBufferManager::BufferAllocatorAllocate(PrivateAllocatorData *
|
|
760
760
|
}
|
761
761
|
|
762
762
|
void StandardBufferManager::BufferAllocatorFree(PrivateAllocatorData *private_data, data_ptr_t pointer, idx_t size) {
|
763
|
-
auto &data = (
|
763
|
+
auto &data = private_data->Cast<BufferAllocatorData>();
|
764
764
|
BufferPoolReservation r(data.manager.GetBufferPool());
|
765
765
|
r.size = size;
|
766
766
|
r.Resize(0);
|
@@ -772,7 +772,7 @@ data_ptr_t StandardBufferManager::BufferAllocatorRealloc(PrivateAllocatorData *p
|
|
772
772
|
if (old_size == size) {
|
773
773
|
return pointer;
|
774
774
|
}
|
775
|
-
auto &data = (
|
775
|
+
auto &data = private_data->Cast<BufferAllocatorData>();
|
776
776
|
BufferPoolReservation r(data.manager.GetBufferPool());
|
777
777
|
r.size = old_size;
|
778
778
|
r.Resize(size);
|
@@ -90,7 +90,7 @@ void ListStats::Verify(const BaseStatistics &stats, Vector &vector, const Select
|
|
90
90
|
UnifiedVectorFormat vdata;
|
91
91
|
vector.ToUnifiedFormat(count, vdata);
|
92
92
|
|
93
|
-
auto list_data = (
|
93
|
+
auto list_data = UnifiedVectorFormat::GetData<list_entry_t>(vdata);
|
94
94
|
idx_t total_list_count = 0;
|
95
95
|
for (idx_t i = 0; i < count; i++) {
|
96
96
|
auto idx = sel.get_index(i);
|
@@ -525,7 +525,7 @@ void NumericStats::TemplatedVerify(const BaseStatistics &stats, Vector &vector,
|
|
525
525
|
UnifiedVectorFormat vdata;
|
526
526
|
vector.ToUnifiedFormat(count, vdata);
|
527
527
|
|
528
|
-
auto data = (
|
528
|
+
auto data = UnifiedVectorFormat::GetData<T>(vdata);
|
529
529
|
auto min_value = NumericStats::MinOrNull(stats);
|
530
530
|
auto max_value = NumericStats::MaxOrNull(stats);
|
531
531
|
for (idx_t i = 0; i < count; i++) {
|
@@ -116,7 +116,7 @@ static void ConstructValue(const_data_ptr_t data, idx_t size, data_t target[]) {
|
|
116
116
|
}
|
117
117
|
|
118
118
|
void StringStats::Update(BaseStatistics &stats, const string_t &value) {
|
119
|
-
auto data = (
|
119
|
+
auto data = const_data_ptr_cast(value.GetData());
|
120
120
|
auto size = value.GetSize();
|
121
121
|
|
122
122
|
//! we can only fit 8 bytes, so we might need to trim our string
|
@@ -136,12 +136,12 @@ void StringStats::Update(BaseStatistics &stats, const string_t &value) {
|
|
136
136
|
string_data.max_string_length = size;
|
137
137
|
}
|
138
138
|
if (stats.GetType().id() == LogicalTypeId::VARCHAR && !string_data.has_unicode) {
|
139
|
-
auto unicode = Utf8Proc::Analyze((
|
139
|
+
auto unicode = Utf8Proc::Analyze(const_char_ptr_cast(data), size);
|
140
140
|
if (unicode == UnicodeType::UNICODE) {
|
141
141
|
string_data.has_unicode = true;
|
142
142
|
} else if (unicode == UnicodeType::INVALID) {
|
143
|
-
throw InvalidInputException(
|
144
|
-
|
143
|
+
throw InvalidInputException(ErrorManager::InvalidUnicodeError(string(const_char_ptr_cast(data), size),
|
144
|
+
"segment statistics update"));
|
145
145
|
}
|
146
146
|
}
|
147
147
|
}
|
@@ -166,7 +166,7 @@ void StringStats::Merge(BaseStatistics &stats, const BaseStatistics &other) {
|
|
166
166
|
FilterPropagateResult StringStats::CheckZonemap(const BaseStatistics &stats, ExpressionType comparison_type,
|
167
167
|
const string &constant) {
|
168
168
|
auto &string_data = StringStats::GetDataUnsafe(stats);
|
169
|
-
auto data = (
|
169
|
+
auto data = const_data_ptr_cast(constant.c_str());
|
170
170
|
auto size = constant.size();
|
171
171
|
|
172
172
|
idx_t value_size = size > StringStatsData::MAX_STRING_MINMAX_SIZE ? StringStatsData::MAX_STRING_MINMAX_SIZE : size;
|
@@ -219,10 +219,11 @@ string StringStats::ToString(const BaseStatistics &stats) {
|
|
219
219
|
auto &string_data = StringStats::GetDataUnsafe(stats);
|
220
220
|
idx_t min_len = GetValidMinMaxSubstring(string_data.min);
|
221
221
|
idx_t max_len = GetValidMinMaxSubstring(string_data.max);
|
222
|
-
return StringUtil::Format(
|
223
|
-
|
224
|
-
|
225
|
-
|
222
|
+
return StringUtil::Format("[Min: %s, Max: %s, Has Unicode: %s, Max String Length: %s]",
|
223
|
+
string(const_char_ptr_cast(string_data.min), min_len),
|
224
|
+
string(const_char_ptr_cast(string_data.max), max_len),
|
225
|
+
string_data.has_unicode ? "true" : "false",
|
226
|
+
string_data.has_max_string_length ? to_string(string_data.max_string_length) : "?");
|
226
227
|
}
|
227
228
|
|
228
229
|
void StringStats::Verify(const BaseStatistics &stats, Vector &vector, const SelectionVector &sel, idx_t count) {
|
@@ -230,7 +231,7 @@ void StringStats::Verify(const BaseStatistics &stats, Vector &vector, const Sele
|
|
230
231
|
|
231
232
|
UnifiedVectorFormat vdata;
|
232
233
|
vector.ToUnifiedFormat(count, vdata);
|
233
|
-
auto data = (
|
234
|
+
auto data = UnifiedVectorFormat::GetData<string_t>(vdata);
|
234
235
|
for (idx_t i = 0; i < count; i++) {
|
235
236
|
auto idx = sel.get_index(i);
|
236
237
|
auto index = vdata.sel->get_index(idx);
|
@@ -256,13 +257,13 @@ void StringStats::Verify(const BaseStatistics &stats, Vector &vector, const Sele
|
|
256
257
|
throw InternalException("Invalid unicode detected in vector: %s", vector.ToString(count));
|
257
258
|
}
|
258
259
|
}
|
259
|
-
if (StringValueComparison((
|
260
|
-
string_data.min) < 0) {
|
260
|
+
if (StringValueComparison(const_data_ptr_cast(data),
|
261
|
+
MinValue<idx_t>(len, StringStatsData::MAX_STRING_MINMAX_SIZE), string_data.min) < 0) {
|
261
262
|
throw InternalException("Statistics mismatch: value is smaller than min.\nStatistics: %s\nVector: %s",
|
262
263
|
stats.ToString(), vector.ToString(count));
|
263
264
|
}
|
264
|
-
if (StringValueComparison((
|
265
|
-
string_data.max) > 0) {
|
265
|
+
if (StringValueComparison(const_data_ptr_cast(data),
|
266
|
+
MinValue<idx_t>(len, StringStatsData::MAX_STRING_MINMAX_SIZE), string_data.max) > 0) {
|
266
267
|
throw InternalException("Statistics mismatch: value is bigger than max.\nStatistics: %s\nVector: %s",
|
267
268
|
stats.ToString(), vector.ToString(count));
|
268
269
|
}
|
@@ -241,7 +241,7 @@ void ChunkVectorInfo::Serialize(Serializer &serializer) {
|
|
241
241
|
for (idx_t i = 0; i < count; i++) {
|
242
242
|
deleted_tuples[sel.get_index(i)] = false;
|
243
243
|
}
|
244
|
-
serializer.WriteData((
|
244
|
+
serializer.WriteData(data_ptr_cast(deleted_tuples), sizeof(bool) * STANDARD_VECTOR_SIZE);
|
245
245
|
}
|
246
246
|
|
247
247
|
unique_ptr<ChunkInfo> ChunkVectorInfo::Deserialize(Deserializer &source) {
|
@@ -250,7 +250,7 @@ unique_ptr<ChunkInfo> ChunkVectorInfo::Deserialize(Deserializer &source) {
|
|
250
250
|
auto result = make_uniq<ChunkVectorInfo>(start);
|
251
251
|
result->any_deleted = true;
|
252
252
|
bool deleted_tuples[STANDARD_VECTOR_SIZE];
|
253
|
-
source.ReadData((
|
253
|
+
source.ReadData(data_ptr_cast(deleted_tuples), sizeof(bool) * STANDARD_VECTOR_SIZE);
|
254
254
|
for (idx_t i = 0; i < STANDARD_VECTOR_SIZE; i++) {
|
255
255
|
if (deleted_tuples[i]) {
|
256
256
|
result->deleted[i] = 0;
|
@@ -331,7 +331,7 @@ idx_t ColumnSegment::FilterSelection(SelectionVector &sel, Vector &result, const
|
|
331
331
|
// similar to the CONJUNCTION_AND, but we need to take care of the SelectionVectors (OR all of them)
|
332
332
|
idx_t count_total = 0;
|
333
333
|
SelectionVector result_sel(approved_tuple_count);
|
334
|
-
auto &conjunction_or = (
|
334
|
+
auto &conjunction_or = filter.Cast<ConjunctionOrFilter>();
|
335
335
|
for (auto &child_filter : conjunction_or.child_filters) {
|
336
336
|
SelectionVector temp_sel;
|
337
337
|
temp_sel.Initialize(sel);
|
@@ -357,14 +357,14 @@ idx_t ColumnSegment::FilterSelection(SelectionVector &sel, Vector &result, const
|
|
357
357
|
return approved_tuple_count;
|
358
358
|
}
|
359
359
|
case TableFilterType::CONJUNCTION_AND: {
|
360
|
-
auto &conjunction_and = (
|
360
|
+
auto &conjunction_and = filter.Cast<ConjunctionAndFilter>();
|
361
361
|
for (auto &child_filter : conjunction_and.child_filters) {
|
362
362
|
FilterSelection(sel, result, *child_filter, approved_tuple_count, mask);
|
363
363
|
}
|
364
364
|
return approved_tuple_count;
|
365
365
|
}
|
366
366
|
case TableFilterType::CONSTANT_COMPARISON: {
|
367
|
-
auto &constant_filter = (
|
367
|
+
auto &constant_filter = filter.Cast<ConstantFilter>();
|
368
368
|
// the inplace loops take the result as the last parameter
|
369
369
|
switch (result.GetType().InternalType()) {
|
370
370
|
case PhysicalType::UINT8: {
|
@@ -167,7 +167,7 @@ void ListColumnData::Append(BaseStatistics &stats, ColumnAppendState &state, Vec
|
|
167
167
|
auto &list_validity = list_data.validity;
|
168
168
|
|
169
169
|
// construct the list_entry_t entries to append to the column data
|
170
|
-
auto input_offsets = (
|
170
|
+
auto input_offsets = UnifiedVectorFormat::GetData<list_entry_t>(list_data);
|
171
171
|
auto start_offset = child_column->GetMaxEntry();
|
172
172
|
idx_t child_count = 0;
|
173
173
|
|
@@ -210,7 +210,7 @@ void ListColumnData::Append(BaseStatistics &stats, ColumnAppendState &state, Vec
|
|
210
210
|
|
211
211
|
UnifiedVectorFormat vdata;
|
212
212
|
vdata.sel = FlatVector::IncrementalSelectionVector();
|
213
|
-
vdata.data = (
|
213
|
+
vdata.data = data_ptr_cast(append_offsets.get());
|
214
214
|
|
215
215
|
// append the list offsets
|
216
216
|
ColumnData::AppendData(stats, state, vdata, count);
|
@@ -337,7 +337,7 @@ unique_ptr<ColumnCheckpointState> ListColumnData::Checkpoint(RowGroup &row_group
|
|
337
337
|
auto base_state = ColumnData::Checkpoint(row_group, partial_block_manager, checkpoint_info);
|
338
338
|
auto child_state = child_column->Checkpoint(row_group, partial_block_manager, checkpoint_info);
|
339
339
|
|
340
|
-
auto &checkpoint_state = (
|
340
|
+
auto &checkpoint_state = base_state->Cast<ListColumnCheckpointState>();
|
341
341
|
checkpoint_state.validity_state = std::move(validity_state);
|
342
342
|
checkpoint_state.child_state = std::move(child_state);
|
343
343
|
return base_state;
|
@@ -502,7 +502,7 @@ void RowGroup::TemplatedScan(TransactionData transaction, CollectionScanState &s
|
|
502
502
|
if (column == COLUMN_IDENTIFIER_ROW_ID) {
|
503
503
|
D_ASSERT(result.data[i].GetType().InternalType() == PhysicalType::INT64);
|
504
504
|
result.data[i].SetVectorType(VectorType::FLAT_VECTOR);
|
505
|
-
auto result_data =
|
505
|
+
auto result_data = FlatVector::GetData<int64_t>(result.data[i]);
|
506
506
|
for (size_t sel_idx = 0; sel_idx < approved_tuple_count; sel_idx++) {
|
507
507
|
result_data[sel_idx] = this->start + current_row + sel.get_index(sel_idx);
|
508
508
|
}
|
@@ -650,7 +650,7 @@ void RowGroup::AppendVersionInfo(TransactionData transaction, idx_t count) {
|
|
650
650
|
} else {
|
651
651
|
D_ASSERT(version_info->info[vector_idx]->type == ChunkInfoType::VECTOR_INFO);
|
652
652
|
// use existing vector
|
653
|
-
info =
|
653
|
+
info = &version_info->info[vector_idx]->Cast<ChunkVectorInfo>();
|
654
654
|
}
|
655
655
|
info->Append(start, end, transaction.transaction_id);
|
656
656
|
}
|
@@ -985,7 +985,7 @@ void VersionDeleteState::Delete(row_t row_id) {
|
|
985
985
|
info.version_info->info[vector_idx] =
|
986
986
|
make_uniq<ChunkVectorInfo>(info.start + vector_idx * STANDARD_VECTOR_SIZE);
|
987
987
|
} else if (info.version_info->info[vector_idx]->type == ChunkInfoType::CONSTANT_INFO) {
|
988
|
-
auto &constant =
|
988
|
+
auto &constant = info.version_info->info[vector_idx]->Cast<ChunkConstantInfo>();
|
989
989
|
// info exists but it's a constant info: convert to a vector info
|
990
990
|
auto new_info = make_uniq<ChunkVectorInfo>(info.start + vector_idx * STANDARD_VECTOR_SIZE);
|
991
991
|
new_info->insert_id = constant.insert_id.load();
|
@@ -995,7 +995,7 @@ void VersionDeleteState::Delete(row_t row_id) {
|
|
995
995
|
info.version_info->info[vector_idx] = std::move(new_info);
|
996
996
|
}
|
997
997
|
D_ASSERT(info.version_info->info[vector_idx]->type == ChunkInfoType::VECTOR_INFO);
|
998
|
-
current_info =
|
998
|
+
current_info = &info.version_info->info[vector_idx]->Cast<ChunkVectorInfo>();
|
999
999
|
current_chunk = vector_idx;
|
1000
1000
|
chunk_row = vector_idx * STANDARD_VECTOR_SIZE;
|
1001
1001
|
}
|
@@ -189,7 +189,7 @@ unique_ptr<ColumnCheckpointState> StandardColumnData::Checkpoint(RowGroup &row_g
|
|
189
189
|
ColumnCheckpointInfo &checkpoint_info) {
|
190
190
|
auto validity_state = validity.Checkpoint(row_group, partial_block_manager, checkpoint_info);
|
191
191
|
auto base_state = ColumnData::Checkpoint(row_group, partial_block_manager, checkpoint_info);
|
192
|
-
auto &checkpoint_state = (
|
192
|
+
auto &checkpoint_state = base_state->Cast<StandardColumnCheckpointState>();
|
193
193
|
checkpoint_state.validity_state = std::move(validity_state);
|
194
194
|
return base_state;
|
195
195
|
}
|
@@ -48,9 +48,9 @@ Value UpdateInfo::GetValue(idx_t index) {
|
|
48
48
|
|
49
49
|
switch (type.id()) {
|
50
50
|
case LogicalTypeId::VALIDITY:
|
51
|
-
return Value::BOOLEAN(
|
51
|
+
return Value::BOOLEAN(reinterpret_cast<bool *>(tuple_data)[index]);
|
52
52
|
case LogicalTypeId::INTEGER:
|
53
|
-
return Value::INTEGER(
|
53
|
+
return Value::INTEGER(reinterpret_cast<int32_t *>(tuple_data)[index]);
|
54
54
|
default:
|
55
55
|
throw NotImplementedException("Unimplemented type for UpdateInfo::GetValue");
|
56
56
|
}
|
@@ -85,7 +85,7 @@ void UpdateInfo::Verify() {
|
|
85
85
|
// Update Fetch
|
86
86
|
//===--------------------------------------------------------------------===//
|
87
87
|
static void MergeValidityInfo(UpdateInfo *current, ValidityMask &result_mask) {
|
88
|
-
auto info_data =
|
88
|
+
auto info_data = reinterpret_cast<bool *>(current->tuple_data);
|
89
89
|
for (idx_t i = 0; i < current->N; i++) {
|
90
90
|
result_mask.Set(current->tuples[i], info_data[i]);
|
91
91
|
}
|
@@ -100,7 +100,7 @@ static void UpdateMergeValidity(transaction_t start_time, transaction_t transact
|
|
100
100
|
|
101
101
|
template <class T>
|
102
102
|
static void MergeUpdateInfo(UpdateInfo *current, T *result_data) {
|
103
|
-
auto info_data =
|
103
|
+
auto info_data = reinterpret_cast<T *>(current->tuple_data);
|
104
104
|
if (current->N == STANDARD_VECTOR_SIZE) {
|
105
105
|
// special case: update touches ALL tuples of this vector
|
106
106
|
// in this case we can just memcpy the data
|
@@ -241,7 +241,7 @@ void UpdateSegment::FetchCommitted(idx_t vector_index, Vector &result) {
|
|
241
241
|
//===--------------------------------------------------------------------===//
|
242
242
|
static void MergeUpdateInfoRangeValidity(UpdateInfo *current, idx_t start, idx_t end, idx_t result_offset,
|
243
243
|
ValidityMask &result_mask) {
|
244
|
-
auto info_data =
|
244
|
+
auto info_data = reinterpret_cast<bool *>(current->tuple_data);
|
245
245
|
for (idx_t i = 0; i < current->N; i++) {
|
246
246
|
auto tuple_idx = current->tuples[i];
|
247
247
|
if (tuple_idx < start) {
|
@@ -261,7 +261,7 @@ static void FetchCommittedRangeValidity(UpdateInfo *info, idx_t start, idx_t end
|
|
261
261
|
|
262
262
|
template <class T>
|
263
263
|
static void MergeUpdateInfoRange(UpdateInfo *current, idx_t start, idx_t end, idx_t result_offset, T *result_data) {
|
264
|
-
auto info_data =
|
264
|
+
auto info_data = reinterpret_cast<T *>(current->tuple_data);
|
265
265
|
for (idx_t i = 0; i < current->N; i++) {
|
266
266
|
auto tuple_idx = current->tuples[i];
|
267
267
|
if (tuple_idx < start) {
|
@@ -352,7 +352,7 @@ static void FetchRowValidity(transaction_t start_time, transaction_t transaction
|
|
352
352
|
Vector &result, idx_t result_idx) {
|
353
353
|
auto &result_mask = FlatVector::Validity(result);
|
354
354
|
UpdateInfo::UpdatesForTransaction(info, start_time, transaction_id, [&](UpdateInfo *current) {
|
355
|
-
auto info_data =
|
355
|
+
auto info_data = reinterpret_cast<bool *>(current->tuple_data);
|
356
356
|
// FIXME: we could do a binary search in here
|
357
357
|
for (idx_t i = 0; i < current->N; i++) {
|
358
358
|
if (current->tuples[i] == row_idx) {
|
@@ -576,7 +576,7 @@ void UpdateSegment::InitializeUpdateInfo(UpdateInfo &info, row_t *ids, const Sel
|
|
576
576
|
static void InitializeUpdateValidity(UpdateInfo *base_info, Vector &base_data, UpdateInfo *update_info, Vector &update,
|
577
577
|
const SelectionVector &sel) {
|
578
578
|
auto &update_mask = FlatVector::Validity(update);
|
579
|
-
auto tuple_data =
|
579
|
+
auto tuple_data = reinterpret_cast<bool *>(update_info->tuple_data);
|
580
580
|
|
581
581
|
if (!update_mask.AllValid()) {
|
582
582
|
for (idx_t i = 0; i < update_info->N; i++) {
|
@@ -590,7 +590,7 @@ static void InitializeUpdateValidity(UpdateInfo *base_info, Vector &base_data, U
|
|
590
590
|
}
|
591
591
|
|
592
592
|
auto &base_mask = FlatVector::Validity(base_data);
|
593
|
-
auto base_tuple_data =
|
593
|
+
auto base_tuple_data = reinterpret_cast<bool *>(base_info->tuple_data);
|
594
594
|
if (!base_mask.AllValid()) {
|
595
595
|
for (idx_t i = 0; i < base_info->N; i++) {
|
596
596
|
base_tuple_data[i] = base_mask.RowIsValidUnsafe(base_info->tuples[i]);
|
@@ -1045,10 +1045,10 @@ static idx_t SortSelectionVector(SelectionVector &sel, idx_t count, row_t *ids)
|
|
1045
1045
|
UpdateInfo *CreateEmptyUpdateInfo(TransactionData transaction, idx_t type_size, idx_t count,
|
1046
1046
|
unsafe_unique_array<char> &data) {
|
1047
1047
|
data = make_unsafe_uniq_array<char>(sizeof(UpdateInfo) + (sizeof(sel_t) + type_size) * STANDARD_VECTOR_SIZE);
|
1048
|
-
auto update_info =
|
1048
|
+
auto update_info = reinterpret_cast<UpdateInfo *>(data.get());
|
1049
1049
|
update_info->max = STANDARD_VECTOR_SIZE;
|
1050
|
-
update_info->tuples =
|
1051
|
-
update_info->tuple_data = ((
|
1050
|
+
update_info->tuples = reinterpret_cast<sel_t *>((data_ptr_cast(update_info)) + sizeof(UpdateInfo));
|
1051
|
+
update_info->tuple_data = (data_ptr_cast(update_info)) + sizeof(UpdateInfo) + sizeof(sel_t) * update_info->max;
|
1052
1052
|
update_info->version_number = transaction.transaction_id;
|
1053
1053
|
return update_info;
|
1054
1054
|
}
|
@@ -195,15 +195,16 @@ void ReplayState::ReplayEntry(WALType entry_type) {
|
|
195
195
|
// Replay Table
|
196
196
|
//===--------------------------------------------------------------------===//
|
197
197
|
void ReplayState::ReplayCreateTable() {
|
198
|
-
|
199
198
|
auto info = TableCatalogEntry::Deserialize(source, context);
|
200
199
|
if (deserialize_only) {
|
201
200
|
return;
|
202
201
|
}
|
203
202
|
|
204
203
|
// bind the constraints to the table again
|
204
|
+
|
205
205
|
auto binder = Binder::CreateBinder(context);
|
206
|
-
auto
|
206
|
+
auto &schema = catalog.GetSchema(context, info->schema);
|
207
|
+
auto bound_info = binder->BindCreateTableInfo(std::move(info), schema);
|
207
208
|
|
208
209
|
catalog.CreateTable(context, *bound_info);
|
209
210
|
}
|
@@ -282,9 +283,7 @@ void ReplayState::ReplayDropSchema() {
|
|
282
283
|
//===--------------------------------------------------------------------===//
|
283
284
|
void ReplayState::ReplayCreateType() {
|
284
285
|
auto info = TypeCatalogEntry::Deserialize(source);
|
285
|
-
|
286
|
-
return;
|
287
|
-
}
|
286
|
+
info->on_conflict = OnCreateConflict::IGNORE_ON_CONFLICT;
|
288
287
|
catalog.CreateType(context, *info);
|
289
288
|
}
|
290
289
|
|
@@ -486,7 +485,7 @@ void ReplayState::ReplayDelete() {
|
|
486
485
|
|
487
486
|
D_ASSERT(chunk.ColumnCount() == 1 && chunk.data[0].GetType() == LogicalType::ROW_TYPE);
|
488
487
|
row_t row_ids[1];
|
489
|
-
Vector row_identifiers(LogicalType::ROW_TYPE, (
|
488
|
+
Vector row_identifiers(LogicalType::ROW_TYPE, data_ptr_cast(row_ids));
|
490
489
|
|
491
490
|
auto source_ids = FlatVector::GetData<row_t>(chunk.data[0]);
|
492
491
|
// delete the tuples from the current table
|
@@ -28,12 +28,12 @@ void CleanupState::CleanupEntry(UndoFlags type, data_ptr_t data) {
|
|
28
28
|
break;
|
29
29
|
}
|
30
30
|
case UndoFlags::DELETE_TUPLE: {
|
31
|
-
auto info =
|
31
|
+
auto info = reinterpret_cast<DeleteInfo *>(data);
|
32
32
|
CleanupDelete(*info);
|
33
33
|
break;
|
34
34
|
}
|
35
35
|
case UndoFlags::UPDATE_TUPLE: {
|
36
|
-
auto info =
|
36
|
+
auto info = reinterpret_cast<UpdateInfo *>(data);
|
37
37
|
CleanupUpdate(*info);
|
38
38
|
break;
|
39
39
|
}
|
@@ -80,7 +80,7 @@ void CleanupState::Flush() {
|
|
80
80
|
}
|
81
81
|
|
82
82
|
// set up the row identifiers vector
|
83
|
-
Vector row_identifiers(LogicalType::ROW_TYPE, (
|
83
|
+
Vector row_identifiers(LogicalType::ROW_TYPE, data_ptr_cast(row_numbers));
|
84
84
|
|
85
85
|
// delete the tuples from all the indexes
|
86
86
|
try {
|
@@ -45,7 +45,7 @@ void CommitState::WriteCatalogEntry(CatalogEntry &entry, data_ptr_t dataptr) {
|
|
45
45
|
D_ASSERT(table_entry.IsDuckTable());
|
46
46
|
// ALTER TABLE statement, read the extra data after the entry
|
47
47
|
auto extra_data_size = Load<idx_t>(dataptr);
|
48
|
-
auto extra_data = (
|
48
|
+
auto extra_data = data_ptr_cast(dataptr + sizeof(idx_t));
|
49
49
|
|
50
50
|
BufferedDeserializer source(extra_data, extra_data_size);
|
51
51
|
string column_name = source.Read<string>();
|
@@ -72,7 +72,7 @@ void CommitState::WriteCatalogEntry(CatalogEntry &entry, data_ptr_t dataptr) {
|
|
72
72
|
if (entry.type == CatalogType::VIEW_ENTRY) {
|
73
73
|
// ALTER TABLE statement, read the extra data after the entry
|
74
74
|
auto extra_data_size = Load<idx_t>(dataptr);
|
75
|
-
auto extra_data = (
|
75
|
+
auto extra_data = data_ptr_cast(dataptr + sizeof(idx_t));
|
76
76
|
// deserialize it
|
77
77
|
BufferedDeserializer source(extra_data, extra_data_size);
|
78
78
|
string column_name = source.Read<string>();
|
@@ -247,7 +247,7 @@ void CommitState::CommitEntry(UndoFlags type, data_ptr_t data) {
|
|
247
247
|
}
|
248
248
|
case UndoFlags::INSERT_TUPLE: {
|
249
249
|
// append:
|
250
|
-
auto info =
|
250
|
+
auto info = reinterpret_cast<AppendInfo *>(data);
|
251
251
|
if (HAS_LOG && !info->table->info->IsTemporary()) {
|
252
252
|
info->table->WriteToLog(*log, info->start_row, info->count);
|
253
253
|
}
|
@@ -257,7 +257,7 @@ void CommitState::CommitEntry(UndoFlags type, data_ptr_t data) {
|
|
257
257
|
}
|
258
258
|
case UndoFlags::DELETE_TUPLE: {
|
259
259
|
// deletion:
|
260
|
-
auto info =
|
260
|
+
auto info = reinterpret_cast<DeleteInfo *>(data);
|
261
261
|
if (HAS_LOG && !info->table->info->IsTemporary()) {
|
262
262
|
WriteDelete(*info);
|
263
263
|
}
|
@@ -267,7 +267,7 @@ void CommitState::CommitEntry(UndoFlags type, data_ptr_t data) {
|
|
267
267
|
}
|
268
268
|
case UndoFlags::UPDATE_TUPLE: {
|
269
269
|
// update:
|
270
|
-
auto info =
|
270
|
+
auto info = reinterpret_cast<UpdateInfo *>(data);
|
271
271
|
if (HAS_LOG && !info->segment->column_data.GetTableInfo().IsTemporary()) {
|
272
272
|
WriteUpdate(*info);
|
273
273
|
}
|
@@ -293,14 +293,14 @@ void CommitState::RevertCommit(UndoFlags type, data_ptr_t data) {
|
|
293
293
|
break;
|
294
294
|
}
|
295
295
|
case UndoFlags::INSERT_TUPLE: {
|
296
|
-
auto info =
|
296
|
+
auto info = reinterpret_cast<AppendInfo *>(data);
|
297
297
|
// revert this append
|
298
298
|
info->table->RevertAppend(info->start_row, info->count);
|
299
299
|
break;
|
300
300
|
}
|
301
301
|
case UndoFlags::DELETE_TUPLE: {
|
302
302
|
// deletion:
|
303
|
-
auto info =
|
303
|
+
auto info = reinterpret_cast<DeleteInfo *>(data);
|
304
304
|
info->table->info->cardinality += info->count;
|
305
305
|
// revert the commit by writing the (uncommitted) transaction_id back into the version info
|
306
306
|
info->vinfo->CommitDelete(transaction_id, info->rows, info->count);
|
@@ -308,7 +308,7 @@ void CommitState::RevertCommit(UndoFlags type, data_ptr_t data) {
|
|
308
308
|
}
|
309
309
|
case UndoFlags::UPDATE_TUPLE: {
|
310
310
|
// update:
|
311
|
-
auto info =
|
311
|
+
auto info = reinterpret_cast<UpdateInfo *>(data);
|
312
312
|
info->version_number = transaction_id;
|
313
313
|
break;
|
314
314
|
}
|
@@ -44,7 +44,7 @@ DuckTransaction &DuckTransaction::Get(ClientContext &context, Catalog &catalog)
|
|
44
44
|
if (!transaction.IsDuckTransaction()) {
|
45
45
|
throw InternalException("DuckTransaction::Get called on non-DuckDB transaction");
|
46
46
|
}
|
47
|
-
return (
|
47
|
+
return transaction.Cast<DuckTransaction>();
|
48
48
|
}
|
49
49
|
|
50
50
|
LocalStorage &DuckTransaction::GetLocalStorage() {
|
@@ -71,8 +71,8 @@ void DuckTransaction::PushCatalogEntry(CatalogEntry &entry, data_ptr_t extra_dat
|
|
71
71
|
}
|
72
72
|
|
73
73
|
void DuckTransaction::PushDelete(DataTable &table, ChunkVectorInfo *vinfo, row_t rows[], idx_t count, idx_t base_row) {
|
74
|
-
auto delete_info =
|
75
|
-
|
74
|
+
auto delete_info = reinterpret_cast<DeleteInfo *>(
|
75
|
+
undo_buffer.CreateEntry(UndoFlags::DELETE_TUPLE, sizeof(DeleteInfo) + sizeof(row_t) * count));
|
76
76
|
delete_info->vinfo = vinfo;
|
77
77
|
delete_info->table = &table;
|
78
78
|
delete_info->count = count;
|
@@ -81,18 +81,20 @@ void DuckTransaction::PushDelete(DataTable &table, ChunkVectorInfo *vinfo, row_t
|
|
81
81
|
}
|
82
82
|
|
83
83
|
void DuckTransaction::PushAppend(DataTable &table, idx_t start_row, idx_t row_count) {
|
84
|
-
auto append_info =
|
84
|
+
auto append_info =
|
85
|
+
reinterpret_cast<AppendInfo *>(undo_buffer.CreateEntry(UndoFlags::INSERT_TUPLE, sizeof(AppendInfo)));
|
85
86
|
append_info->table = &table;
|
86
87
|
append_info->start_row = start_row;
|
87
88
|
append_info->count = row_count;
|
88
89
|
}
|
89
90
|
|
90
91
|
UpdateInfo *DuckTransaction::CreateUpdateInfo(idx_t type_size, idx_t entries) {
|
91
|
-
|
92
|
+
data_ptr_t base_info = undo_buffer.CreateEntry(
|
92
93
|
UndoFlags::UPDATE_TUPLE, sizeof(UpdateInfo) + (sizeof(sel_t) + type_size) * STANDARD_VECTOR_SIZE);
|
94
|
+
auto update_info = reinterpret_cast<UpdateInfo *>(base_info);
|
93
95
|
update_info->max = STANDARD_VECTOR_SIZE;
|
94
|
-
update_info->tuples =
|
95
|
-
update_info->tuple_data =
|
96
|
+
update_info->tuples = reinterpret_cast<sel_t *>(base_info + sizeof(UpdateInfo));
|
97
|
+
update_info->tuple_data = base_info + sizeof(UpdateInfo) + sizeof(sel_t) * update_info->max;
|
96
98
|
update_info->version_number = transaction_id;
|
97
99
|
return update_info;
|
98
100
|
}
|