duckdb 0.8.1-dev23.0 → 0.8.1-dev253.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/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/include/json_common.hpp +1 -1
- package/src/duckdb/extension/json/include/json_executors.hpp +1 -1
- package/src/duckdb/extension/json/json_functions/json_create.cpp +6 -6
- package/src/duckdb/extension/json/json_functions/json_merge_patch.cpp +1 -1
- package/src/duckdb/extension/json/json_functions/json_transform.cpp +1 -1
- package/src/duckdb/extension/json/json_functions.cpp +3 -0
- 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 +7 -5
- 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 +1 -1
- 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 +1 -1
- 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/libpg_query/src_backend_parser_gram.cpp +11391 -11442
- package/src/duckdb/third_party/pcg/pcg_extras.hpp +1 -1
@@ -61,7 +61,7 @@ public:
|
|
61
61
|
string ToString() const override;
|
62
62
|
|
63
63
|
bool KeysAreCompatible(const BoundWindowExpression &other) const;
|
64
|
-
bool Equals(const BaseExpression
|
64
|
+
bool Equals(const BaseExpression &other) const override;
|
65
65
|
|
66
66
|
unique_ptr<Expression> Copy() override;
|
67
67
|
|
@@ -41,19 +41,17 @@ public:
|
|
41
41
|
|
42
42
|
hash_t Hash() const override;
|
43
43
|
|
44
|
-
bool Equals(const BaseExpression
|
44
|
+
bool Equals(const BaseExpression &other) const override {
|
45
45
|
if (!BaseExpression::Equals(other)) {
|
46
46
|
return false;
|
47
47
|
}
|
48
|
-
return return_type == ((Expression
|
49
|
-
}
|
50
|
-
|
51
|
-
static bool Equals(const Expression *left, const Expression *right) {
|
52
|
-
return BaseExpression::Equals((const BaseExpression *)left, (const BaseExpression *)right);
|
48
|
+
return return_type == ((Expression &)other).return_type;
|
53
49
|
}
|
54
50
|
static bool Equals(const Expression &left, const Expression &right) {
|
55
|
-
return left.Equals(
|
51
|
+
return left.Equals(right);
|
56
52
|
}
|
53
|
+
static bool Equals(const unique_ptr<Expression> &left, const unique_ptr<Expression> &right);
|
54
|
+
static bool ListEquals(const vector<unique_ptr<Expression>> &left, const vector<unique_ptr<Expression>> &right);
|
57
55
|
//! Create a copy of this expression
|
58
56
|
virtual unique_ptr<Expression> Copy() = 0;
|
59
57
|
|
@@ -124,8 +124,8 @@ protected:
|
|
124
124
|
const LogicalType &list_child_type);
|
125
125
|
BindResult BindExpression(OperatorExpression &expr, idx_t depth);
|
126
126
|
BindResult BindExpression(ParameterExpression &expr, idx_t depth);
|
127
|
-
BindResult BindExpression(PositionalReferenceExpression &ref, idx_t depth);
|
128
127
|
BindResult BindExpression(SubqueryExpression &expr, idx_t depth);
|
128
|
+
BindResult BindPositionalReference(unique_ptr<ParsedExpression> &expr, idx_t depth, bool root_expression);
|
129
129
|
|
130
130
|
void TransformCapturedLambdaColumn(unique_ptr<Expression> &original, unique_ptr<Expression> &replacement,
|
131
131
|
vector<unique_ptr<Expression>> &captures, LogicalType &list_child_type);
|
@@ -33,6 +33,9 @@ public:
|
|
33
33
|
};
|
34
34
|
|
35
35
|
class ConjunctionOrFilter : public ConjunctionFilter {
|
36
|
+
public:
|
37
|
+
static constexpr const TableFilterType TYPE = TableFilterType::CONJUNCTION_OR;
|
38
|
+
|
36
39
|
public:
|
37
40
|
ConjunctionOrFilter();
|
38
41
|
|
@@ -45,6 +48,9 @@ public:
|
|
45
48
|
};
|
46
49
|
|
47
50
|
class ConjunctionAndFilter : public ConjunctionFilter {
|
51
|
+
public:
|
52
|
+
static constexpr const TableFilterType TYPE = TableFilterType::CONJUNCTION_AND;
|
53
|
+
|
48
54
|
public:
|
49
55
|
ConjunctionAndFilter();
|
50
56
|
|
@@ -13,6 +13,9 @@
|
|
13
13
|
namespace duckdb {
|
14
14
|
|
15
15
|
class IsNullFilter : public TableFilter {
|
16
|
+
public:
|
17
|
+
static constexpr const TableFilterType TYPE = TableFilterType::IS_NULL;
|
18
|
+
|
16
19
|
public:
|
17
20
|
IsNullFilter();
|
18
21
|
|
@@ -24,6 +27,9 @@ public:
|
|
24
27
|
};
|
25
28
|
|
26
29
|
class IsNotNullFilter : public TableFilter {
|
30
|
+
public:
|
31
|
+
static constexpr const TableFilterType TYPE = TableFilterType::IS_NOT_NULL;
|
32
|
+
|
27
33
|
public:
|
28
34
|
IsNotNullFilter();
|
29
35
|
|
@@ -83,6 +83,11 @@ public:
|
|
83
83
|
return true;
|
84
84
|
}
|
85
85
|
|
86
|
+
//! Allows LogicalOperators to opt out of serialization
|
87
|
+
virtual bool SupportSerialization() const {
|
88
|
+
return true;
|
89
|
+
};
|
90
|
+
|
86
91
|
//! Returns the set of table indexes of this operator
|
87
92
|
virtual vector<idx_t> GetTableIndex() const;
|
88
93
|
|
@@ -96,7 +101,7 @@ public:
|
|
96
101
|
if (TARGET::TYPE != LogicalOperatorType::LOGICAL_INVALID && type != TARGET::TYPE) {
|
97
102
|
throw InternalException("Failed to cast logical operator to type - logical operator type mismatch");
|
98
103
|
}
|
99
|
-
return
|
104
|
+
return reinterpret_cast<TARGET &>(*this);
|
100
105
|
}
|
101
106
|
|
102
107
|
template <class TARGET>
|
@@ -104,7 +109,7 @@ public:
|
|
104
109
|
if (TARGET::TYPE != LogicalOperatorType::LOGICAL_INVALID && type != TARGET::TYPE) {
|
105
110
|
throw InternalException("Failed to cast logical operator to type - logical operator type mismatch");
|
106
111
|
}
|
107
|
-
return
|
112
|
+
return reinterpret_cast<const TARGET &>(*this);
|
108
113
|
}
|
109
114
|
};
|
110
115
|
} // namespace duckdb
|
@@ -8,10 +8,10 @@
|
|
8
8
|
|
9
9
|
#pragma once
|
10
10
|
|
11
|
-
#include "duckdb/planner/logical_operator.hpp"
|
12
|
-
#include "duckdb/function/copy_function.hpp"
|
13
11
|
#include "duckdb/common/filename_pattern.hpp"
|
14
12
|
#include "duckdb/common/local_file_system.hpp"
|
13
|
+
#include "duckdb/function/copy_function.hpp"
|
14
|
+
#include "duckdb/planner/logical_operator.hpp"
|
15
15
|
|
16
16
|
namespace duckdb {
|
17
17
|
|
@@ -41,6 +41,10 @@ public:
|
|
41
41
|
void Serialize(FieldWriter &writer) const override;
|
42
42
|
static unique_ptr<LogicalOperator> Deserialize(LogicalDeserializationState &state, FieldReader &reader);
|
43
43
|
idx_t EstimateCardinality(ClientContext &context) override;
|
44
|
+
//! Skips the serialization check in VerifyPlan
|
45
|
+
bool SupportSerialization() const override {
|
46
|
+
return false;
|
47
|
+
}
|
44
48
|
|
45
49
|
protected:
|
46
50
|
void ResolveTypes() override {
|
@@ -29,6 +29,10 @@ public:
|
|
29
29
|
public:
|
30
30
|
void Serialize(FieldWriter &writer) const override;
|
31
31
|
static unique_ptr<LogicalOperator> Deserialize(LogicalDeserializationState &state, FieldReader &reader);
|
32
|
+
//! Skips the serialization check in VerifyPlan
|
33
|
+
bool SupportSerialization() const override {
|
34
|
+
return false;
|
35
|
+
}
|
32
36
|
|
33
37
|
protected:
|
34
38
|
void ResolveTypes() override {
|
@@ -8,8 +8,8 @@
|
|
8
8
|
|
9
9
|
#pragma once
|
10
10
|
|
11
|
-
#include "duckdb/planner/logical_operator.hpp"
|
12
11
|
#include "duckdb/parser/statement/explain_statement.hpp"
|
12
|
+
#include "duckdb/planner/logical_operator.hpp"
|
13
13
|
|
14
14
|
namespace duckdb {
|
15
15
|
|
@@ -37,6 +37,10 @@ public:
|
|
37
37
|
idx_t EstimateCardinality(ClientContext &context) override {
|
38
38
|
return 3;
|
39
39
|
}
|
40
|
+
//! Skips the serialization check in VerifyPlan
|
41
|
+
bool SupportSerialization() const override {
|
42
|
+
return false;
|
43
|
+
}
|
40
44
|
|
41
45
|
protected:
|
42
46
|
void ResolveTypes() override {
|
@@ -8,8 +8,8 @@
|
|
8
8
|
|
9
9
|
#pragma once
|
10
10
|
|
11
|
-
#include "duckdb/planner/logical_operator.hpp"
|
12
11
|
#include "duckdb/function/table_function.hpp"
|
12
|
+
#include "duckdb/planner/logical_operator.hpp"
|
13
13
|
#include "duckdb/planner/table_filter.hpp"
|
14
14
|
|
15
15
|
namespace duckdb {
|
@@ -62,6 +62,10 @@ public:
|
|
62
62
|
void Serialize(FieldWriter &writer) const override;
|
63
63
|
static unique_ptr<LogicalOperator> Deserialize(LogicalDeserializationState &state, FieldReader &reader);
|
64
64
|
vector<idx_t> GetTableIndex() const override;
|
65
|
+
//! Skips the serialization check in VerifyPlan
|
66
|
+
bool SupportSerialization() const override {
|
67
|
+
return function.verify_serialization;
|
68
|
+
};
|
65
69
|
|
66
70
|
protected:
|
67
71
|
void ResolveTypes() override;
|
@@ -17,6 +17,9 @@
|
|
17
17
|
namespace duckdb {
|
18
18
|
|
19
19
|
class LogicalPivot : public LogicalOperator {
|
20
|
+
public:
|
21
|
+
static constexpr const LogicalOperatorType TYPE = LogicalOperatorType::LOGICAL_PIVOT;
|
22
|
+
|
20
23
|
public:
|
21
24
|
LogicalPivot(idx_t pivot_idx, unique_ptr<LogicalOperator> plan, BoundPivotInfo info);
|
22
25
|
|
@@ -8,9 +8,9 @@
|
|
8
8
|
|
9
9
|
#pragma once
|
10
10
|
|
11
|
-
#include "duckdb/planner/logical_operator.hpp"
|
12
|
-
#include "duckdb/parser/parsed_data/pragma_info.hpp"
|
13
11
|
#include "duckdb/function/pragma_function.hpp"
|
12
|
+
#include "duckdb/parser/parsed_data/pragma_info.hpp"
|
13
|
+
#include "duckdb/planner/logical_operator.hpp"
|
14
14
|
|
15
15
|
namespace duckdb {
|
16
16
|
|
@@ -34,6 +34,10 @@ public:
|
|
34
34
|
void Serialize(FieldWriter &writer) const override;
|
35
35
|
static unique_ptr<LogicalOperator> Deserialize(LogicalDeserializationState &state, FieldReader &reader);
|
36
36
|
idx_t EstimateCardinality(ClientContext &context) override;
|
37
|
+
//! Skips the serialization check in VerifyPlan
|
38
|
+
bool SupportSerialization() const override {
|
39
|
+
return false;
|
40
|
+
}
|
37
41
|
|
38
42
|
protected:
|
39
43
|
void ResolveTypes() override {
|
@@ -36,6 +36,10 @@ public:
|
|
36
36
|
void Serialize(FieldWriter &writer) const override;
|
37
37
|
static unique_ptr<LogicalOperator> Deserialize(LogicalDeserializationState &state, FieldReader &reader);
|
38
38
|
idx_t EstimateCardinality(ClientContext &context) override;
|
39
|
+
//! Skips the serialization check in VerifyPlan
|
40
|
+
bool SupportSerialization() const override {
|
41
|
+
return false;
|
42
|
+
}
|
39
43
|
|
40
44
|
protected:
|
41
45
|
void ResolveTypes() override {
|
@@ -55,9 +55,29 @@ public:
|
|
55
55
|
virtual string ColumnNotFoundError(const string &column_name) const;
|
56
56
|
virtual BindResult Bind(ColumnRefExpression &colref, idx_t depth);
|
57
57
|
virtual optional_ptr<StandardEntry> GetStandardEntry();
|
58
|
+
|
59
|
+
public:
|
60
|
+
template <class TARGET>
|
61
|
+
TARGET &Cast() {
|
62
|
+
if (binding_type != TARGET::TYPE) {
|
63
|
+
throw InternalException("Failed to cast binding to type - binding type mismatch");
|
64
|
+
}
|
65
|
+
return reinterpret_cast<TARGET &>(*this);
|
66
|
+
}
|
67
|
+
|
68
|
+
template <class TARGET>
|
69
|
+
const TARGET &Cast() const {
|
70
|
+
if (binding_type != TARGET::TYPE) {
|
71
|
+
throw InternalException("Failed to cast binding to type - binding type mismatch");
|
72
|
+
}
|
73
|
+
return reinterpret_cast<const TARGET &>(*this);
|
74
|
+
}
|
58
75
|
};
|
59
76
|
|
60
77
|
struct EntryBinding : public Binding {
|
78
|
+
public:
|
79
|
+
static constexpr const BindingType TYPE = BindingType::CATALOG_ENTRY;
|
80
|
+
|
61
81
|
public:
|
62
82
|
EntryBinding(const string &alias, vector<LogicalType> types, vector<string> names, idx_t index,
|
63
83
|
StandardEntry &entry);
|
@@ -70,6 +90,10 @@ public:
|
|
70
90
|
//! TableBinding is exactly like the Binding, except it keeps track of which columns were bound in the linked LogicalGet
|
71
91
|
//! node for projection pushdown purposes.
|
72
92
|
struct TableBinding : public Binding {
|
93
|
+
public:
|
94
|
+
static constexpr const BindingType TYPE = BindingType::TABLE;
|
95
|
+
|
96
|
+
public:
|
73
97
|
TableBinding(const string &alias, vector<LogicalType> types, vector<string> names,
|
74
98
|
vector<column_t> &bound_column_ids, optional_ptr<StandardEntry> entry, idx_t index,
|
75
99
|
bool add_row_id = false);
|
@@ -94,6 +118,8 @@ protected:
|
|
94
118
|
//! DummyBinding is like the Binding, except the alias and index are set by default. Used for binding lambdas and macro
|
95
119
|
//! parameters.
|
96
120
|
struct DummyBinding : public Binding {
|
121
|
+
public:
|
122
|
+
static constexpr const BindingType TYPE = BindingType::DUMMY;
|
97
123
|
// NOTE: changing this string conflicts with the storage version
|
98
124
|
static constexpr const char *DUMMY_NAME = "0_macro_parameters";
|
99
125
|
|
@@ -47,6 +47,23 @@ public:
|
|
47
47
|
void Serialize(Serializer &serializer) const;
|
48
48
|
virtual void Serialize(FieldWriter &writer) const = 0;
|
49
49
|
static unique_ptr<TableFilter> Deserialize(Deserializer &source);
|
50
|
+
|
51
|
+
public:
|
52
|
+
template <class TARGET>
|
53
|
+
TARGET &Cast() {
|
54
|
+
if (filter_type != TARGET::TYPE) {
|
55
|
+
throw InternalException("Failed to cast table to type - table filter type mismatch");
|
56
|
+
}
|
57
|
+
return reinterpret_cast<TARGET &>(*this);
|
58
|
+
}
|
59
|
+
|
60
|
+
template <class TARGET>
|
61
|
+
const TARGET &Cast() const {
|
62
|
+
if (filter_type != TARGET::TYPE) {
|
63
|
+
throw InternalException("Failed to cast table to type - table filter type mismatch");
|
64
|
+
}
|
65
|
+
return reinterpret_cast<const TARGET &>(*this);
|
66
|
+
}
|
50
67
|
};
|
51
68
|
|
52
69
|
class TableFilterSet {
|
@@ -28,6 +28,9 @@ struct BoundPivotInfo {
|
|
28
28
|
};
|
29
29
|
|
30
30
|
class BoundPivotRef : public BoundTableRef {
|
31
|
+
public:
|
32
|
+
static constexpr const TableReferenceType TYPE = TableReferenceType::PIVOT;
|
33
|
+
|
31
34
|
public:
|
32
35
|
explicit BoundPivotRef() : BoundTableRef(TableReferenceType::PIVOT) {
|
33
36
|
}
|
@@ -113,7 +113,7 @@ bool ChimpAnalyze(AnalyzeState &state, Vector &input, idx_t count) {
|
|
113
113
|
UnifiedVectorFormat vdata;
|
114
114
|
input.ToUnifiedFormat(count, vdata);
|
115
115
|
|
116
|
-
auto data = (
|
116
|
+
auto data = UnifiedVectorFormat::GetData<CHIMP_TYPE>(vdata);
|
117
117
|
for (idx_t i = 0; i < count; i++) {
|
118
118
|
auto idx = vdata.sel->get_index(i);
|
119
119
|
analyze_state.WriteValue(data[idx], vdata.validity.RowIsValid(idx));
|
@@ -127,7 +127,7 @@ public:
|
|
127
127
|
}
|
128
128
|
|
129
129
|
void Append(UnifiedVectorFormat &vdata, idx_t count) {
|
130
|
-
auto data = (
|
130
|
+
auto data = UnifiedVectorFormat::GetData<CHIMP_TYPE>(vdata);
|
131
131
|
|
132
132
|
for (idx_t i = 0; i < count; i++) {
|
133
133
|
auto idx = vdata.sel->get_index(i);
|
@@ -145,7 +145,7 @@ public:
|
|
145
145
|
current_segment->count++;
|
146
146
|
|
147
147
|
if (is_valid) {
|
148
|
-
T floating_point_value = Load<T>((
|
148
|
+
T floating_point_value = Load<T>(const_data_ptr_cast(&value));
|
149
149
|
NumericStats::Update<T>(current_segment->stats.statistics, floating_point_value);
|
150
150
|
} else {
|
151
151
|
//! FIXME: find a cheaper alternative to storing a NULL
|
@@ -102,7 +102,7 @@ struct EmptyPatasWriter {
|
|
102
102
|
using EXACT_TYPE = typename FloatingToExact<VALUE_TYPE>::type;
|
103
103
|
|
104
104
|
auto state_wrapper = (PatasAnalyzeState<VALUE_TYPE> *)state_p;
|
105
|
-
state_wrapper->WriteValue(Load<EXACT_TYPE>((
|
105
|
+
state_wrapper->WriteValue(Load<EXACT_TYPE>(const_data_ptr_cast(&uncompressed_value)), is_valid);
|
106
106
|
}
|
107
107
|
};
|
108
108
|
|
@@ -117,7 +117,7 @@ bool PatasAnalyze(AnalyzeState &state, Vector &input, idx_t count) {
|
|
117
117
|
UnifiedVectorFormat vdata;
|
118
118
|
input.ToUnifiedFormat(count, vdata);
|
119
119
|
|
120
|
-
auto data = (
|
120
|
+
auto data = UnifiedVectorFormat::GetData<T>(vdata);
|
121
121
|
for (idx_t i = 0; i < count; i++) {
|
122
122
|
auto idx = vdata.sel->get_index(i);
|
123
123
|
analyze_state.state.template Update<EmptyPatasWriter>(data[idx], vdata.validity.RowIsValid(idx));
|
@@ -52,7 +52,7 @@ public:
|
|
52
52
|
NumericStats::Update<VALUE_TYPE>(state_wrapper->current_segment->stats.statistics, value);
|
53
53
|
}
|
54
54
|
|
55
|
-
state_wrapper->WriteValue(Load<EXACT_TYPE>((
|
55
|
+
state_wrapper->WriteValue(Load<EXACT_TYPE>(const_data_ptr_cast(&value)));
|
56
56
|
}
|
57
57
|
};
|
58
58
|
|
@@ -138,7 +138,7 @@ public:
|
|
138
138
|
}
|
139
139
|
|
140
140
|
void Append(UnifiedVectorFormat &vdata, idx_t count) {
|
141
|
-
auto data = (
|
141
|
+
auto data = UnifiedVectorFormat::GetData<T>(vdata);
|
142
142
|
|
143
143
|
for (idx_t i = 0; i < count; i++) {
|
144
144
|
auto idx = vdata.sel->get_index(i);
|
@@ -153,13 +153,13 @@ public:
|
|
153
153
|
template <class TARGET>
|
154
154
|
TARGET &Cast() {
|
155
155
|
D_ASSERT(dynamic_cast<TARGET *>(this));
|
156
|
-
return
|
156
|
+
return reinterpret_cast<TARGET &>(*this);
|
157
157
|
}
|
158
158
|
|
159
159
|
template <class TARGET>
|
160
160
|
const TARGET &Cast() const {
|
161
161
|
D_ASSERT(dynamic_cast<const TARGET *>(this));
|
162
|
-
return
|
162
|
+
return reinterpret_cast<const TARGET &>(*this);
|
163
163
|
}
|
164
164
|
};
|
165
165
|
|
@@ -82,6 +82,18 @@ protected:
|
|
82
82
|
unique_ptr<WriteAheadLog> wal;
|
83
83
|
//! Whether or not the database is opened in read-only mode
|
84
84
|
bool read_only;
|
85
|
+
|
86
|
+
public:
|
87
|
+
template <class TARGET>
|
88
|
+
TARGET &Cast() {
|
89
|
+
D_ASSERT(dynamic_cast<TARGET *>(this));
|
90
|
+
return reinterpret_cast<TARGET &>(*this);
|
91
|
+
}
|
92
|
+
template <class TARGET>
|
93
|
+
const TARGET &Cast() const {
|
94
|
+
D_ASSERT(dynamic_cast<const TARGET *>(this));
|
95
|
+
return reinterpret_cast<const TARGET &>(*this);
|
96
|
+
}
|
85
97
|
};
|
86
98
|
|
87
99
|
//! Stores database in a single file.
|
@@ -80,7 +80,7 @@ public:
|
|
80
80
|
UnifiedVectorFormat &data, idx_t offset, idx_t count) {
|
81
81
|
D_ASSERT(segment.GetBlockOffset() == 0);
|
82
82
|
auto handle_ptr = handle.Ptr();
|
83
|
-
auto source_data = (
|
83
|
+
auto source_data = UnifiedVectorFormat::GetData<string_t>(data);
|
84
84
|
auto result_data = (int32_t *)(handle_ptr + DICTIONARY_HEADER_SIZE);
|
85
85
|
uint32_t *dictionary_size = (uint32_t *)handle_ptr;
|
86
86
|
uint32_t *dictionary_end = (uint32_t *)(handle_ptr + sizeof(uint32_t));
|
@@ -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 {
|
@@ -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;
|
@@ -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
|
|