duckdb 0.8.2-dev4142.0 → 0.8.2-dev4314.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 +0 -2
- package/lib/duckdb.js +3 -3
- package/package.json +1 -1
- package/src/connection.cpp +9 -8
- package/src/database.cpp +5 -8
- package/src/duckdb/extension/icu/icu-datepart.cpp +2 -2
- package/src/duckdb/extension/icu/icu-strptime.cpp +0 -9
- package/src/duckdb/extension/icu/icu_extension.cpp +3 -3
- package/src/duckdb/extension/icu/third_party/icu/i18n/unicode/gregocal.h +1 -1
- package/src/duckdb/extension/json/buffered_json_reader.cpp +3 -17
- package/src/duckdb/extension/json/include/buffered_json_reader.hpp +2 -5
- package/src/duckdb/extension/json/include/json_deserializer.hpp +2 -2
- package/src/duckdb/extension/json/include/json_scan.hpp +5 -12
- package/src/duckdb/extension/json/include/json_serializer.hpp +3 -3
- package/src/duckdb/extension/json/include/json_transform.hpp +2 -5
- package/src/duckdb/extension/json/json_functions/json_serialize_sql.cpp +1 -1
- package/src/duckdb/extension/json/json_functions/json_transform.cpp +2 -18
- package/src/duckdb/extension/json/json_scan.cpp +7 -76
- package/src/duckdb/extension/json/serialize_json.cpp +8 -8
- package/src/duckdb/extension/parquet/column_writer.cpp +46 -45
- package/src/duckdb/extension/parquet/include/column_writer.hpp +2 -2
- package/src/duckdb/extension/parquet/include/parquet_reader.hpp +2 -5
- package/src/duckdb/extension/parquet/include/parquet_rle_bp_encoder.hpp +4 -4
- package/src/duckdb/extension/parquet/parquet_extension.cpp +74 -55
- package/src/duckdb/extension/parquet/parquet_writer.cpp +3 -2
- package/src/duckdb/extension/parquet/serialize_parquet.cpp +4 -4
- package/src/duckdb/src/catalog/catalog_entry/index_catalog_entry.cpp +0 -1
- package/src/duckdb/src/catalog/catalog_entry/macro_catalog_entry.cpp +0 -1
- package/src/duckdb/src/catalog/catalog_entry/schema_catalog_entry.cpp +0 -1
- package/src/duckdb/src/catalog/catalog_entry/sequence_catalog_entry.cpp +0 -1
- package/src/duckdb/src/catalog/catalog_entry/table_catalog_entry.cpp +0 -2
- package/src/duckdb/src/catalog/catalog_entry/type_catalog_entry.cpp +1 -3
- package/src/duckdb/src/catalog/catalog_entry/view_catalog_entry.cpp +0 -1
- package/src/duckdb/src/catalog/catalog_entry.cpp +2 -11
- package/src/duckdb/src/catalog/catalog_set.cpp +16 -14
- package/src/duckdb/src/catalog/default/default_functions.cpp +2 -2
- package/src/duckdb/src/common/arrow/arrow_converter.cpp +0 -1
- package/src/duckdb/src/common/constants.cpp +0 -1
- package/src/duckdb/src/common/enum_util.cpp +0 -10
- package/src/duckdb/src/common/exception.cpp +1 -1
- package/src/duckdb/src/common/extra_type_info.cpp +20 -192
- package/src/duckdb/src/common/multi_file_reader.cpp +0 -68
- package/src/duckdb/src/common/serializer/binary_serializer.cpp +9 -4
- package/src/duckdb/src/common/serializer/buffered_file_reader.cpp +3 -11
- package/src/duckdb/src/common/serializer/buffered_file_writer.cpp +1 -1
- package/src/duckdb/src/common/serializer/memory_stream.cpp +61 -0
- package/src/duckdb/src/common/serializer/{format_serializer.cpp → serializer.cpp} +2 -2
- package/src/duckdb/src/common/sort/partition_state.cpp +107 -29
- package/src/duckdb/src/common/types/column/column_data_collection.cpp +4 -4
- package/src/duckdb/src/common/types/data_chunk.cpp +11 -43
- package/src/duckdb/src/common/types/hyperloglog.cpp +4 -23
- package/src/duckdb/src/common/types/interval.cpp +2 -2
- package/src/duckdb/src/common/types/value.cpp +10 -135
- package/src/duckdb/src/common/types/vector.cpp +17 -149
- package/src/duckdb/src/common/types.cpp +2 -20
- package/src/duckdb/src/core_functions/aggregate/algebraic/avg.cpp +0 -1
- package/src/duckdb/src/core_functions/aggregate/distributive/string_agg.cpp +6 -7
- package/src/duckdb/src/core_functions/aggregate/holistic/approximate_quantile.cpp +5 -28
- package/src/duckdb/src/core_functions/aggregate/holistic/quantile.cpp +30 -78
- package/src/duckdb/src/core_functions/aggregate/holistic/reservoir_quantile.cpp +5 -30
- package/src/duckdb/src/core_functions/scalar/date/date_part.cpp +6 -9
- package/src/duckdb/src/core_functions/scalar/list/list_aggregates.cpp +21 -16
- package/src/duckdb/src/core_functions/scalar/list/list_lambdas.cpp +15 -23
- package/src/duckdb/src/execution/index/art/art.cpp +5 -1
- package/src/duckdb/src/execution/index/art/leaf.cpp +13 -10
- package/src/duckdb/src/execution/index/art/node48.cpp +0 -2
- package/src/duckdb/src/execution/index/fixed_size_allocator.cpp +38 -73
- package/src/duckdb/src/execution/index/fixed_size_buffer.cpp +245 -27
- package/src/duckdb/src/execution/operator/aggregate/physical_window.cpp +2 -3
- package/src/duckdb/src/execution/operator/join/physical_asof_join.cpp +35 -20
- package/src/duckdb/src/function/macro_function.cpp +0 -42
- package/src/duckdb/src/function/scalar/compressed_materialization/compress_integral.cpp +10 -8
- package/src/duckdb/src/function/scalar/compressed_materialization/compress_string.cpp +13 -12
- package/src/duckdb/src/function/scalar/operators/arithmetic.cpp +9 -11
- package/src/duckdb/src/function/scalar/system/aggregate_export.cpp +7 -33
- package/src/duckdb/src/function/scalar_function.cpp +1 -2
- package/src/duckdb/src/function/scalar_macro_function.cpp +0 -10
- package/src/duckdb/src/function/table/copy_csv.cpp +38 -38
- package/src/duckdb/src/function/table/read_csv.cpp +5 -174
- package/src/duckdb/src/function/table/table_scan.cpp +5 -42
- package/src/duckdb/src/function/table/version/pragma_version.cpp +2 -2
- package/src/duckdb/src/function/table_function.cpp +3 -4
- package/src/duckdb/src/function/table_macro_function.cpp +0 -10
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/schema_catalog_entry.hpp +0 -2
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/sequence_catalog_entry.hpp +0 -2
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/type_catalog_entry.hpp +0 -2
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry.hpp +3 -8
- package/src/duckdb/src/include/duckdb/common/constants.hpp +4 -2
- package/src/duckdb/src/include/duckdb/common/extra_type_info.hpp +16 -46
- package/src/duckdb/src/include/duckdb/common/index_vector.hpp +4 -4
- package/src/duckdb/src/include/duckdb/common/multi_file_reader.hpp +2 -6
- package/src/duckdb/src/include/duckdb/common/multi_file_reader_options.hpp +0 -4
- package/src/duckdb/src/include/duckdb/common/serializer/binary_deserializer.hpp +44 -23
- package/src/duckdb/src/include/duckdb/common/serializer/binary_serializer.hpp +31 -23
- package/src/duckdb/src/include/duckdb/common/serializer/buffered_file_reader.hpp +4 -6
- package/src/duckdb/src/include/duckdb/common/serializer/buffered_file_writer.hpp +3 -3
- package/src/duckdb/src/include/duckdb/common/serializer/deserialization_data.hpp +17 -0
- package/src/duckdb/src/include/duckdb/common/serializer/{format_deserializer.hpp → deserializer.hpp} +13 -13
- package/src/duckdb/src/include/duckdb/common/serializer/memory_stream.hpp +62 -0
- package/src/duckdb/src/include/duckdb/common/serializer/read_stream.hpp +38 -0
- package/src/duckdb/src/include/duckdb/common/serializer/serialization_traits.hpp +15 -13
- package/src/duckdb/src/include/duckdb/common/serializer/{format_serializer.hpp → serializer.hpp} +13 -12
- package/src/duckdb/src/include/duckdb/common/serializer/write_stream.hpp +36 -0
- package/src/duckdb/src/include/duckdb/common/sort/partition_state.hpp +14 -4
- package/src/duckdb/src/include/duckdb/common/types/column/column_data_collection.hpp +2 -2
- package/src/duckdb/src/include/duckdb/common/types/data_chunk.hpp +3 -8
- package/src/duckdb/src/include/duckdb/common/types/hyperloglog.hpp +4 -10
- package/src/duckdb/src/include/duckdb/common/types/interval.hpp +4 -4
- package/src/duckdb/src/include/duckdb/common/types/value.hpp +1 -5
- package/src/duckdb/src/include/duckdb/common/types/vector.hpp +2 -7
- package/src/duckdb/src/include/duckdb/common/types.hpp +1 -10
- package/src/duckdb/src/include/duckdb/execution/index/art/leaf.hpp +2 -0
- package/src/duckdb/src/include/duckdb/execution/index/fixed_size_allocator.hpp +1 -7
- package/src/duckdb/src/include/duckdb/execution/index/fixed_size_buffer.hpp +38 -8
- package/src/duckdb/src/include/duckdb/execution/operator/scan/csv/csv_reader_options.hpp +2 -11
- package/src/duckdb/src/include/duckdb/function/aggregate_function.hpp +4 -14
- package/src/duckdb/src/include/duckdb/function/copy_function.hpp +3 -3
- package/src/duckdb/src/include/duckdb/function/function_serialization.hpp +15 -98
- package/src/duckdb/src/include/duckdb/function/macro_function.hpp +1 -7
- package/src/duckdb/src/include/duckdb/function/scalar/nested_functions.hpp +9 -10
- package/src/duckdb/src/include/duckdb/function/scalar/strftime_format.hpp +2 -2
- package/src/duckdb/src/include/duckdb/function/scalar_function.hpp +2 -12
- package/src/duckdb/src/include/duckdb/function/scalar_macro_function.hpp +2 -7
- package/src/duckdb/src/include/duckdb/function/table/read_csv.hpp +4 -16
- package/src/duckdb/src/include/duckdb/function/table_function.hpp +2 -11
- package/src/duckdb/src/include/duckdb/function/table_macro_function.hpp +2 -7
- package/src/duckdb/src/include/duckdb/main/relation.hpp +9 -2
- package/src/duckdb/src/include/duckdb/parser/column_definition.hpp +1 -4
- package/src/duckdb/src/include/duckdb/parser/column_list.hpp +2 -6
- package/src/duckdb/src/include/duckdb/parser/common_table_expression_info.hpp +2 -2
- package/src/duckdb/src/include/duckdb/parser/constraint.hpp +2 -12
- package/src/duckdb/src/include/duckdb/parser/constraints/check_constraint.hpp +2 -5
- package/src/duckdb/src/include/duckdb/parser/constraints/foreign_key_constraint.hpp +2 -7
- package/src/duckdb/src/include/duckdb/parser/constraints/not_null_constraint.hpp +2 -7
- package/src/duckdb/src/include/duckdb/parser/constraints/unique_constraint.hpp +2 -7
- package/src/duckdb/src/include/duckdb/parser/expression/between_expression.hpp +2 -5
- package/src/duckdb/src/include/duckdb/parser/expression/bound_expression.hpp +1 -4
- package/src/duckdb/src/include/duckdb/parser/expression/case_expression.hpp +4 -6
- package/src/duckdb/src/include/duckdb/parser/expression/cast_expression.hpp +2 -4
- package/src/duckdb/src/include/duckdb/parser/expression/collate_expression.hpp +2 -4
- package/src/duckdb/src/include/duckdb/parser/expression/columnref_expression.hpp +2 -4
- package/src/duckdb/src/include/duckdb/parser/expression/comparison_expression.hpp +2 -4
- package/src/duckdb/src/include/duckdb/parser/expression/conjunction_expression.hpp +2 -4
- package/src/duckdb/src/include/duckdb/parser/expression/constant_expression.hpp +2 -5
- package/src/duckdb/src/include/duckdb/parser/expression/default_expression.hpp +2 -4
- package/src/duckdb/src/include/duckdb/parser/expression/function_expression.hpp +2 -4
- package/src/duckdb/src/include/duckdb/parser/expression/lambda_expression.hpp +2 -4
- package/src/duckdb/src/include/duckdb/parser/expression/operator_expression.hpp +2 -4
- package/src/duckdb/src/include/duckdb/parser/expression/parameter_expression.hpp +2 -4
- package/src/duckdb/src/include/duckdb/parser/expression/positional_reference_expression.hpp +2 -4
- package/src/duckdb/src/include/duckdb/parser/expression/star_expression.hpp +2 -4
- package/src/duckdb/src/include/duckdb/parser/expression/subquery_expression.hpp +2 -4
- package/src/duckdb/src/include/duckdb/parser/expression/window_expression.hpp +2 -4
- package/src/duckdb/src/include/duckdb/parser/parsed_data/alter_info.hpp +2 -5
- package/src/duckdb/src/include/duckdb/parser/parsed_data/alter_scalar_function_info.hpp +0 -2
- package/src/duckdb/src/include/duckdb/parser/parsed_data/alter_table_function_info.hpp +0 -2
- package/src/duckdb/src/include/duckdb/parser/parsed_data/alter_table_info.hpp +24 -51
- package/src/duckdb/src/include/duckdb/parser/parsed_data/attach_info.hpp +1 -4
- package/src/duckdb/src/include/duckdb/parser/parsed_data/copy_info.hpp +2 -2
- package/src/duckdb/src/include/duckdb/parser/parsed_data/create_collation_info.hpp +0 -3
- package/src/duckdb/src/include/duckdb/parser/parsed_data/create_copy_function_info.hpp +0 -3
- package/src/duckdb/src/include/duckdb/parser/parsed_data/create_function_info.hpp +0 -5
- package/src/duckdb/src/include/duckdb/parser/parsed_data/create_index_info.hpp +2 -7
- package/src/duckdb/src/include/duckdb/parser/parsed_data/create_info.hpp +1 -13
- package/src/duckdb/src/include/duckdb/parser/parsed_data/create_macro_info.hpp +2 -8
- package/src/duckdb/src/include/duckdb/parser/parsed_data/create_schema_info.hpp +2 -12
- package/src/duckdb/src/include/duckdb/parser/parsed_data/create_sequence_info.hpp +2 -7
- package/src/duckdb/src/include/duckdb/parser/parsed_data/create_table_info.hpp +2 -7
- package/src/duckdb/src/include/duckdb/parser/parsed_data/create_type_info.hpp +2 -7
- package/src/duckdb/src/include/duckdb/parser/parsed_data/create_view_info.hpp +2 -7
- package/src/duckdb/src/include/duckdb/parser/parsed_data/detach_info.hpp +2 -4
- package/src/duckdb/src/include/duckdb/parser/parsed_data/drop_info.hpp +2 -5
- package/src/duckdb/src/include/duckdb/parser/parsed_data/load_info.hpp +2 -21
- package/src/duckdb/src/include/duckdb/parser/parsed_data/parse_info.hpp +2 -2
- package/src/duckdb/src/include/duckdb/parser/parsed_data/pragma_info.hpp +2 -2
- package/src/duckdb/src/include/duckdb/parser/parsed_data/sample_options.hpp +2 -4
- package/src/duckdb/src/include/duckdb/parser/parsed_data/transaction_info.hpp +1 -4
- package/src/duckdb/src/include/duckdb/parser/parsed_data/vacuum_info.hpp +5 -7
- package/src/duckdb/src/include/duckdb/parser/parsed_expression.hpp +3 -16
- package/src/duckdb/src/include/duckdb/parser/query_node/cte_node.hpp +2 -4
- package/src/duckdb/src/include/duckdb/parser/query_node/recursive_cte_node.hpp +2 -4
- package/src/duckdb/src/include/duckdb/parser/query_node/select_node.hpp +2 -4
- package/src/duckdb/src/include/duckdb/parser/query_node/set_operation_node.hpp +2 -4
- package/src/duckdb/src/include/duckdb/parser/query_node.hpp +7 -14
- package/src/duckdb/src/include/duckdb/parser/result_modifier.hpp +14 -32
- package/src/duckdb/src/include/duckdb/parser/statement/select_statement.hpp +4 -9
- package/src/duckdb/src/include/duckdb/parser/tableref/basetableref.hpp +2 -6
- package/src/duckdb/src/include/duckdb/parser/tableref/emptytableref.hpp +2 -6
- package/src/duckdb/src/include/duckdb/parser/tableref/expressionlistref.hpp +2 -6
- package/src/duckdb/src/include/duckdb/parser/tableref/joinref.hpp +2 -6
- package/src/duckdb/src/include/duckdb/parser/tableref/pivotref.hpp +6 -14
- package/src/duckdb/src/include/duckdb/parser/tableref/subqueryref.hpp +2 -6
- package/src/duckdb/src/include/duckdb/parser/tableref/table_function_ref.hpp +2 -6
- package/src/duckdb/src/include/duckdb/parser/tableref.hpp +2 -10
- package/src/duckdb/src/include/duckdb/parser/transformer.hpp +1 -0
- package/src/duckdb/src/include/duckdb/planner/bound_constraint.hpp +0 -1
- package/src/duckdb/src/include/duckdb/planner/bound_result_modifier.hpp +2 -8
- package/src/duckdb/src/include/duckdb/planner/column_binding.hpp +4 -4
- package/src/duckdb/src/include/duckdb/planner/expression/bound_aggregate_expression.hpp +2 -4
- package/src/duckdb/src/include/duckdb/planner/expression/bound_between_expression.hpp +2 -4
- package/src/duckdb/src/include/duckdb/planner/expression/bound_case_expression.hpp +3 -9
- package/src/duckdb/src/include/duckdb/planner/expression/bound_cast_expression.hpp +2 -5
- package/src/duckdb/src/include/duckdb/planner/expression/bound_columnref_expression.hpp +2 -8
- package/src/duckdb/src/include/duckdb/planner/expression/bound_comparison_expression.hpp +2 -4
- package/src/duckdb/src/include/duckdb/planner/expression/bound_conjunction_expression.hpp +2 -5
- package/src/duckdb/src/include/duckdb/planner/expression/bound_constant_expression.hpp +2 -5
- package/src/duckdb/src/include/duckdb/planner/expression/bound_default_expression.hpp +2 -5
- package/src/duckdb/src/include/duckdb/planner/expression/bound_function_expression.hpp +2 -5
- package/src/duckdb/src/include/duckdb/planner/expression/bound_lambda_expression.hpp +2 -4
- package/src/duckdb/src/include/duckdb/planner/expression/bound_lambdaref_expression.hpp +2 -8
- package/src/duckdb/src/include/duckdb/planner/expression/bound_operator_expression.hpp +2 -5
- package/src/duckdb/src/include/duckdb/planner/expression/bound_parameter_data.hpp +2 -19
- package/src/duckdb/src/include/duckdb/planner/expression/bound_parameter_expression.hpp +2 -5
- package/src/duckdb/src/include/duckdb/planner/expression/bound_reference_expression.hpp +2 -5
- package/src/duckdb/src/include/duckdb/planner/expression/bound_subquery_expression.hpp +0 -3
- package/src/duckdb/src/include/duckdb/planner/expression/bound_unnest_expression.hpp +2 -5
- package/src/duckdb/src/include/duckdb/planner/expression/bound_window_expression.hpp +2 -5
- package/src/duckdb/src/include/duckdb/planner/expression.hpp +2 -14
- package/src/duckdb/src/include/duckdb/planner/filter/conjunction_filter.hpp +4 -8
- package/src/duckdb/src/include/duckdb/planner/filter/constant_filter.hpp +2 -4
- package/src/duckdb/src/include/duckdb/planner/filter/null_filter.hpp +4 -8
- package/src/duckdb/src/include/duckdb/planner/joinside.hpp +1 -6
- package/src/duckdb/src/include/duckdb/planner/logical_operator.hpp +2 -17
- package/src/duckdb/src/include/duckdb/planner/operator/logical_aggregate.hpp +2 -4
- package/src/duckdb/src/include/duckdb/planner/operator/logical_any_join.hpp +2 -4
- package/src/duckdb/src/include/duckdb/planner/operator/logical_column_data_get.hpp +2 -5
- package/src/duckdb/src/include/duckdb/planner/operator/logical_comparison_join.hpp +2 -6
- package/src/duckdb/src/include/duckdb/planner/operator/logical_copy_to_file.hpp +2 -4
- package/src/duckdb/src/include/duckdb/planner/operator/logical_create.hpp +2 -5
- package/src/duckdb/src/include/duckdb/planner/operator/logical_create_index.hpp +2 -5
- package/src/duckdb/src/include/duckdb/planner/operator/logical_create_table.hpp +2 -5
- package/src/duckdb/src/include/duckdb/planner/operator/logical_cross_product.hpp +2 -5
- package/src/duckdb/src/include/duckdb/planner/operator/logical_cteref.hpp +2 -4
- package/src/duckdb/src/include/duckdb/planner/operator/logical_delete.hpp +2 -5
- package/src/duckdb/src/include/duckdb/planner/operator/logical_delim_get.hpp +2 -4
- package/src/duckdb/src/include/duckdb/planner/operator/logical_dependent_join.hpp +0 -1
- package/src/duckdb/src/include/duckdb/planner/operator/logical_distinct.hpp +2 -4
- package/src/duckdb/src/include/duckdb/planner/operator/logical_dummy_scan.hpp +2 -4
- package/src/duckdb/src/include/duckdb/planner/operator/logical_empty_result.hpp +2 -4
- package/src/duckdb/src/include/duckdb/planner/operator/logical_execute.hpp +0 -2
- package/src/duckdb/src/include/duckdb/planner/operator/logical_explain.hpp +2 -5
- package/src/duckdb/src/include/duckdb/planner/operator/logical_export.hpp +0 -3
- package/src/duckdb/src/include/duckdb/planner/operator/logical_expression_get.hpp +2 -4
- package/src/duckdb/src/include/duckdb/planner/operator/logical_extension_operator.hpp +2 -4
- package/src/duckdb/src/include/duckdb/planner/operator/logical_filter.hpp +2 -4
- package/src/duckdb/src/include/duckdb/planner/operator/logical_get.hpp +2 -4
- package/src/duckdb/src/include/duckdb/planner/operator/logical_insert.hpp +2 -5
- package/src/duckdb/src/include/duckdb/planner/operator/logical_join.hpp +0 -2
- package/src/duckdb/src/include/duckdb/planner/operator/logical_limit.hpp +2 -5
- package/src/duckdb/src/include/duckdb/planner/operator/logical_limit_percent.hpp +2 -5
- package/src/duckdb/src/include/duckdb/planner/operator/logical_materialized_cte.hpp +2 -4
- package/src/duckdb/src/include/duckdb/planner/operator/logical_order.hpp +2 -5
- package/src/duckdb/src/include/duckdb/planner/operator/logical_pivot.hpp +2 -4
- package/src/duckdb/src/include/duckdb/planner/operator/logical_positional_join.hpp +2 -5
- package/src/duckdb/src/include/duckdb/planner/operator/logical_pragma.hpp +0 -2
- package/src/duckdb/src/include/duckdb/planner/operator/logical_prepare.hpp +0 -2
- package/src/duckdb/src/include/duckdb/planner/operator/logical_projection.hpp +2 -4
- package/src/duckdb/src/include/duckdb/planner/operator/logical_recursive_cte.hpp +2 -4
- package/src/duckdb/src/include/duckdb/planner/operator/logical_reset.hpp +2 -5
- package/src/duckdb/src/include/duckdb/planner/operator/logical_sample.hpp +2 -5
- package/src/duckdb/src/include/duckdb/planner/operator/logical_set.hpp +2 -5
- package/src/duckdb/src/include/duckdb/planner/operator/logical_set_operation.hpp +2 -5
- package/src/duckdb/src/include/duckdb/planner/operator/logical_show.hpp +2 -5
- package/src/duckdb/src/include/duckdb/planner/operator/logical_simple.hpp +2 -5
- package/src/duckdb/src/include/duckdb/planner/operator/logical_top_n.hpp +2 -4
- package/src/duckdb/src/include/duckdb/planner/operator/logical_unnest.hpp +2 -4
- package/src/duckdb/src/include/duckdb/planner/operator/logical_update.hpp +2 -4
- package/src/duckdb/src/include/duckdb/planner/operator/logical_window.hpp +2 -4
- package/src/duckdb/src/include/duckdb/planner/operator_extension.hpp +1 -3
- package/src/duckdb/src/include/duckdb/planner/parsed_data/bound_create_table_info.hpp +0 -5
- package/src/duckdb/src/include/duckdb/planner/table_filter.hpp +3 -12
- package/src/duckdb/src/include/duckdb/planner/tableref/bound_pivotref.hpp +2 -2
- package/src/duckdb/src/include/duckdb/storage/block.hpp +7 -4
- package/src/duckdb/src/include/duckdb/storage/checkpoint/row_group_writer.hpp +3 -2
- package/src/duckdb/src/include/duckdb/storage/checkpoint/table_data_writer.hpp +6 -6
- package/src/duckdb/src/include/duckdb/storage/checkpoint_manager.hpp +18 -18
- package/src/duckdb/src/include/duckdb/storage/data_pointer.hpp +6 -0
- package/src/duckdb/src/include/duckdb/storage/data_table.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/metadata/metadata_manager.hpp +4 -5
- package/src/duckdb/src/include/duckdb/storage/metadata/metadata_reader.hpp +2 -1
- package/src/duckdb/src/include/duckdb/storage/metadata/metadata_writer.hpp +2 -2
- package/src/duckdb/src/include/duckdb/storage/partial_block_manager.hpp +35 -19
- package/src/duckdb/src/include/duckdb/storage/statistics/base_statistics.hpp +2 -11
- package/src/duckdb/src/include/duckdb/storage/statistics/column_statistics.hpp +3 -5
- package/src/duckdb/src/include/duckdb/storage/statistics/distinct_statistics.hpp +3 -11
- package/src/duckdb/src/include/duckdb/storage/statistics/list_stats.hpp +2 -7
- package/src/duckdb/src/include/duckdb/storage/statistics/node_statistics.hpp +0 -26
- package/src/duckdb/src/include/duckdb/storage/statistics/numeric_stats.hpp +2 -7
- package/src/duckdb/src/include/duckdb/storage/statistics/string_stats.hpp +2 -7
- package/src/duckdb/src/include/duckdb/storage/statistics/struct_stats.hpp +2 -7
- package/src/duckdb/src/include/duckdb/storage/storage_info.hpp +4 -6
- package/src/duckdb/src/include/duckdb/storage/table/chunk_info.hpp +8 -17
- package/src/duckdb/src/include/duckdb/storage/table/column_checkpoint_state.hpp +5 -20
- package/src/duckdb/src/include/duckdb/storage/table/column_data.hpp +2 -2
- package/src/duckdb/src/include/duckdb/storage/table/list_column_data.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/table/row_group.hpp +2 -7
- package/src/duckdb/src/include/duckdb/storage/table/standard_column_data.hpp +2 -2
- package/src/duckdb/src/include/duckdb/storage/table/table_statistics.hpp +4 -7
- package/src/duckdb/src/include/duckdb/storage/write_ahead_log.hpp +27 -29
- package/src/duckdb/src/include/duckdb/verification/statement_verifier.hpp +0 -2
- package/src/duckdb/src/main/client_context.cpp +0 -6
- package/src/duckdb/src/main/client_verify.cpp +0 -2
- package/src/duckdb/src/main/extension/extension_helper.cpp +1 -0
- package/src/duckdb/src/main/relation.cpp +15 -2
- package/src/duckdb/src/parser/column_definition.cpp +0 -25
- package/src/duckdb/src/parser/column_list.cpp +0 -13
- package/src/duckdb/src/parser/constraint.cpp +0 -33
- package/src/duckdb/src/parser/constraints/check_constraint.cpp +0 -11
- package/src/duckdb/src/parser/constraints/foreign_key_constraint.cpp +0 -27
- package/src/duckdb/src/parser/constraints/not_null_constraint.cpp +0 -11
- package/src/duckdb/src/parser/constraints/unique_constraint.cpp +0 -24
- package/src/duckdb/src/parser/expression/between_expression.cpp +2 -16
- package/src/duckdb/src/parser/expression/case_expression.cpp +2 -29
- package/src/duckdb/src/parser/expression/cast_expression.cpp +2 -16
- package/src/duckdb/src/parser/expression/collate_expression.cpp +2 -14
- package/src/duckdb/src/parser/expression/columnref_expression.cpp +2 -13
- package/src/duckdb/src/parser/expression/comparison_expression.cpp +2 -14
- package/src/duckdb/src/parser/expression/conjunction_expression.cpp +2 -13
- package/src/duckdb/src/parser/expression/constant_expression.cpp +2 -12
- package/src/duckdb/src/parser/expression/default_expression.cpp +2 -9
- package/src/duckdb/src/parser/expression/function_expression.cpp +2 -32
- package/src/duckdb/src/parser/expression/lambda_expression.cpp +2 -14
- package/src/duckdb/src/parser/expression/operator_expression.cpp +2 -13
- package/src/duckdb/src/parser/expression/parameter_expression.cpp +2 -13
- package/src/duckdb/src/parser/expression/positional_reference_expression.cpp +2 -12
- package/src/duckdb/src/parser/expression/star_expression.cpp +2 -43
- package/src/duckdb/src/parser/expression/subquery_expression.cpp +2 -28
- package/src/duckdb/src/parser/expression/window_expression.cpp +2 -53
- package/src/duckdb/src/parser/parsed_data/alter_info.cpp +0 -35
- package/src/duckdb/src/parser/parsed_data/alter_scalar_function_info.cpp +0 -18
- package/src/duckdb/src/parser/parsed_data/alter_table_function_info.cpp +0 -13
- package/src/duckdb/src/parser/parsed_data/alter_table_info.cpp +1 -189
- package/src/duckdb/src/parser/parsed_data/attach_info.cpp +0 -29
- package/src/duckdb/src/parser/parsed_data/create_collation_info.cpp +0 -4
- package/src/duckdb/src/parser/parsed_data/create_copy_function_info.cpp +0 -4
- package/src/duckdb/src/parser/parsed_data/create_index_info.cpp +0 -48
- package/src/duckdb/src/parser/parsed_data/create_info.cpp +0 -47
- package/src/duckdb/src/parser/parsed_data/create_macro_info.cpp +1 -28
- package/src/duckdb/src/parser/parsed_data/create_sequence_info.cpp +0 -31
- package/src/duckdb/src/parser/parsed_data/create_table_info.cpp +0 -23
- package/src/duckdb/src/parser/parsed_data/create_type_info.cpp +0 -22
- package/src/duckdb/src/parser/parsed_data/create_view_info.cpp +0 -23
- package/src/duckdb/src/parser/parsed_data/detach_info.cpp +0 -19
- package/src/duckdb/src/parser/parsed_data/drop_info.cpp +0 -26
- package/src/duckdb/src/parser/parsed_data/sample_options.cpp +2 -25
- package/src/duckdb/src/parser/parsed_data/transaction_info.cpp +0 -16
- package/src/duckdb/src/parser/parsed_data/vacuum_info.cpp +0 -20
- package/src/duckdb/src/parser/parsed_expression.cpp +2 -79
- package/src/duckdb/src/parser/query_node/cte_node.cpp +2 -19
- package/src/duckdb/src/parser/query_node/recursive_cte_node.cpp +2 -21
- package/src/duckdb/src/parser/query_node/select_node.cpp +2 -47
- package/src/duckdb/src/parser/query_node/set_operation_node.cpp +2 -17
- package/src/duckdb/src/parser/query_node.cpp +2 -62
- package/src/duckdb/src/parser/result_modifier.cpp +2 -96
- package/src/duckdb/src/parser/statement/select_statement.cpp +2 -13
- package/src/duckdb/src/parser/tableref/basetableref.cpp +2 -21
- package/src/duckdb/src/parser/tableref/emptytableref.cpp +0 -9
- package/src/duckdb/src/parser/tableref/expressionlistref.cpp +2 -28
- package/src/duckdb/src/parser/tableref/joinref.cpp +2 -23
- package/src/duckdb/src/parser/tableref/pivotref.cpp +0 -61
- package/src/duckdb/src/parser/tableref/subqueryref.cpp +2 -15
- package/src/duckdb/src/parser/tableref/table_function.cpp +2 -17
- package/src/duckdb/src/parser/tableref.cpp +2 -52
- package/src/duckdb/src/planner/binder/expression/bind_subquery_expression.cpp +1 -4
- package/src/duckdb/src/planner/bound_result_modifier.cpp +0 -33
- package/src/duckdb/src/planner/expression/bound_aggregate_expression.cpp +6 -30
- package/src/duckdb/src/planner/expression/bound_between_expression.cpp +0 -19
- package/src/duckdb/src/planner/expression/bound_case_expression.cpp +0 -36
- package/src/duckdb/src/planner/expression/bound_cast_expression.cpp +0 -15
- package/src/duckdb/src/planner/expression/bound_columnref_expression.cpp +0 -20
- package/src/duckdb/src/planner/expression/bound_comparison_expression.cpp +0 -13
- package/src/duckdb/src/planner/expression/bound_conjunction_expression.cpp +0 -13
- package/src/duckdb/src/planner/expression/bound_constant_expression.cpp +0 -11
- package/src/duckdb/src/planner/expression/bound_expression.cpp +1 -5
- package/src/duckdb/src/planner/expression/bound_function_expression.cpp +8 -28
- package/src/duckdb/src/planner/expression/bound_lambda_expression.cpp +0 -4
- package/src/duckdb/src/planner/expression/bound_lambdaref_expression.cpp +0 -23
- package/src/duckdb/src/planner/expression/bound_operator_expression.cpp +0 -16
- package/src/duckdb/src/planner/expression/bound_parameter_expression.cpp +0 -18
- package/src/duckdb/src/planner/expression/bound_reference_expression.cpp +0 -16
- package/src/duckdb/src/planner/expression/bound_subquery_expression.cpp +0 -4
- package/src/duckdb/src/planner/expression/bound_unnest_expression.cpp +0 -15
- package/src/duckdb/src/planner/expression/bound_window_expression.cpp +7 -60
- package/src/duckdb/src/planner/expression.cpp +0 -74
- package/src/duckdb/src/planner/filter/conjunction_filter.cpp +0 -21
- package/src/duckdb/src/planner/filter/constant_filter.cpp +0 -12
- package/src/duckdb/src/planner/filter/null_filter.cpp +0 -14
- package/src/duckdb/src/planner/joinside.cpp +0 -24
- package/src/duckdb/src/planner/logical_operator.cpp +15 -215
- package/src/duckdb/src/planner/operator/logical_aggregate.cpp +0 -46
- package/src/duckdb/src/planner/operator/logical_any_join.cpp +0 -14
- package/src/duckdb/src/planner/operator/logical_column_data_get.cpp +0 -23
- package/src/duckdb/src/planner/operator/logical_comparison_join.cpp +0 -23
- package/src/duckdb/src/planner/operator/logical_copy_to_file.cpp +2 -56
- package/src/duckdb/src/planner/operator/logical_create.cpp +0 -12
- package/src/duckdb/src/planner/operator/logical_create_index.cpp +0 -25
- package/src/duckdb/src/planner/operator/logical_create_table.cpp +0 -10
- package/src/duckdb/src/planner/operator/logical_cross_product.cpp +0 -9
- package/src/duckdb/src/planner/operator/logical_cteref.cpp +0 -18
- package/src/duckdb/src/planner/operator/logical_delete.cpp +0 -22
- package/src/duckdb/src/planner/operator/logical_delim_get.cpp +0 -12
- package/src/duckdb/src/planner/operator/logical_dependent_join.cpp +0 -4
- package/src/duckdb/src/planner/operator/logical_distinct.cpp +0 -16
- package/src/duckdb/src/planner/operator/logical_dummy_scan.cpp +0 -10
- package/src/duckdb/src/planner/operator/logical_empty_result.cpp +0 -15
- package/src/duckdb/src/planner/operator/logical_expression_get.cpp +0 -24
- package/src/duckdb/src/planner/operator/logical_extension_operator.cpp +6 -19
- package/src/duckdb/src/planner/operator/logical_filter.cpp +0 -15
- package/src/duckdb/src/planner/operator/logical_get.cpp +12 -97
- package/src/duckdb/src/planner/operator/logical_insert.cpp +0 -77
- package/src/duckdb/src/planner/operator/logical_join.cpp +0 -17
- package/src/duckdb/src/planner/operator/logical_limit.cpp +0 -16
- package/src/duckdb/src/planner/operator/logical_limit_percent.cpp +0 -16
- package/src/duckdb/src/planner/operator/logical_materialized_cte.cpp +0 -13
- package/src/duckdb/src/planner/operator/logical_order.cpp +0 -15
- package/src/duckdb/src/planner/operator/logical_pivot.cpp +0 -20
- package/src/duckdb/src/planner/operator/logical_positional_join.cpp +0 -10
- package/src/duckdb/src/planner/operator/logical_pragma.cpp +0 -8
- package/src/duckdb/src/planner/operator/logical_prepare.cpp +0 -8
- package/src/duckdb/src/planner/operator/logical_projection.cpp +0 -12
- package/src/duckdb/src/planner/operator/logical_recursive_cte.cpp +0 -15
- package/src/duckdb/src/planner/operator/logical_reset.cpp +0 -12
- package/src/duckdb/src/planner/operator/logical_sample.cpp +0 -11
- package/src/duckdb/src/planner/operator/logical_set.cpp +0 -14
- package/src/duckdb/src/planner/operator/logical_set_operation.cpp +0 -13
- package/src/duckdb/src/planner/operator/logical_simple.cpp +0 -60
- package/src/duckdb/src/planner/operator/logical_top_n.cpp +0 -14
- package/src/duckdb/src/planner/operator/logical_unnest.cpp +0 -14
- package/src/duckdb/src/planner/operator/logical_update.cpp +0 -28
- package/src/duckdb/src/planner/operator/logical_window.cpp +0 -13
- package/src/duckdb/src/planner/planner.cpp +13 -22
- package/src/duckdb/src/planner/table_filter.cpp +0 -59
- package/src/duckdb/src/storage/checkpoint/row_group_writer.cpp +7 -17
- package/src/duckdb/src/storage/checkpoint/table_data_reader.cpp +7 -4
- package/src/duckdb/src/storage/checkpoint/table_data_writer.cpp +24 -22
- package/src/duckdb/src/storage/checkpoint_manager.cpp +203 -180
- package/src/duckdb/src/storage/data_table.cpp +2 -2
- package/src/duckdb/src/storage/metadata/metadata_manager.cpp +11 -9
- package/src/duckdb/src/storage/partial_block_manager.cpp +42 -15
- package/src/duckdb/src/storage/serialization/serialize_constraint.cpp +20 -20
- package/src/duckdb/src/storage/serialization/serialize_create_info.cpp +46 -42
- package/src/duckdb/src/storage/serialization/serialize_expression.cpp +63 -63
- package/src/duckdb/src/storage/serialization/serialize_logical_operator.cpp +167 -165
- package/src/duckdb/src/storage/serialization/serialize_macro_function.cpp +12 -12
- package/src/duckdb/src/storage/serialization/serialize_nodes.cpp +54 -54
- package/src/duckdb/src/storage/serialization/serialize_parse_info.cpp +88 -88
- package/src/duckdb/src/storage/serialization/serialize_parsed_expression.cpp +72 -72
- package/src/duckdb/src/storage/serialization/serialize_query_node.cpp +20 -20
- package/src/duckdb/src/storage/serialization/serialize_result_modifier.cpp +22 -22
- package/src/duckdb/src/storage/serialization/serialize_statement.cpp +4 -4
- package/src/duckdb/src/storage/serialization/serialize_storage.cpp +41 -6
- package/src/duckdb/src/storage/serialization/serialize_table_filter.cpp +24 -24
- package/src/duckdb/src/storage/serialization/serialize_tableref.cpp +32 -32
- package/src/duckdb/src/storage/serialization/serialize_types.cpp +29 -29
- package/src/duckdb/src/storage/single_file_block_manager.cpp +17 -22
- package/src/duckdb/src/storage/statistics/base_statistics.cpp +31 -85
- package/src/duckdb/src/storage/statistics/column_statistics.cpp +6 -19
- package/src/duckdb/src/storage/statistics/distinct_statistics.cpp +0 -26
- package/src/duckdb/src/storage/statistics/list_stats.cpp +6 -22
- package/src/duckdb/src/storage/statistics/numeric_stats.cpp +20 -135
- package/src/duckdb/src/storage/statistics/string_stats.cpp +5 -28
- package/src/duckdb/src/storage/statistics/struct_stats.cpp +8 -30
- package/src/duckdb/src/storage/storage_info.cpp +1 -1
- package/src/duckdb/src/storage/table/chunk_info.cpp +9 -88
- package/src/duckdb/src/storage/table/column_checkpoint_state.cpp +28 -34
- package/src/duckdb/src/storage/table/column_data.cpp +20 -25
- package/src/duckdb/src/storage/table/list_column_data.cpp +16 -9
- package/src/duckdb/src/storage/table/row_group.cpp +16 -92
- package/src/duckdb/src/storage/table/row_group_collection.cpp +5 -1
- package/src/duckdb/src/storage/table/standard_column_data.cpp +10 -7
- package/src/duckdb/src/storage/table/struct_column_data.cpp +17 -11
- package/src/duckdb/src/storage/table/table_statistics.cpp +13 -22
- package/src/duckdb/src/storage/wal_replay.cpp +108 -106
- package/src/duckdb/src/storage/write_ahead_log.cpp +135 -64
- package/src/duckdb/src/transaction/commit_state.cpp +22 -8
- package/src/duckdb/src/verification/deserialized_statement_verifier.cpp +11 -6
- package/src/duckdb/src/verification/statement_verifier.cpp +0 -5
- package/src/duckdb/third_party/parquet/parquet_types.h +1 -1
- package/src/duckdb/ub_src_common.cpp +0 -4
- package/src/duckdb/ub_src_common_serializer.cpp +2 -4
- package/src/duckdb/ub_src_planner.cpp +0 -2
- package/src/duckdb/ub_src_planner_expression.cpp +0 -2
- package/src/duckdb/ub_src_planner_operator.cpp +0 -8
- package/src/duckdb_node.cpp +6 -12
- package/src/duckdb_node.hpp +23 -13
- package/src/statement.cpp +15 -16
- package/test/database_fail.test.ts +20 -0
- package/test/worker.js +7 -0
- package/src/duckdb/src/common/field_writer.cpp +0 -97
- package/src/duckdb/src/common/serializer/buffered_deserializer.cpp +0 -27
- package/src/duckdb/src/common/serializer/buffered_serializer.cpp +0 -36
- package/src/duckdb/src/common/serializer.cpp +0 -24
- package/src/duckdb/src/include/duckdb/common/field_writer.hpp +0 -379
- package/src/duckdb/src/include/duckdb/common/serializer/buffered_deserializer.hpp +0 -41
- package/src/duckdb/src/include/duckdb/common/serializer/buffered_serializer.hpp +0 -50
- package/src/duckdb/src/include/duckdb/common/serializer.hpp +0 -151
- package/src/duckdb/src/include/duckdb/planner/plan_serialization.hpp +0 -44
- package/src/duckdb/src/include/duckdb/verification/deserialized_statement_verifier_v2.hpp +0 -32
- package/src/duckdb/src/planner/expression/bound_default_expression.cpp +0 -16
- package/src/duckdb/src/planner/operator/logical_execute.cpp +0 -12
- package/src/duckdb/src/planner/operator/logical_explain.cpp +0 -22
- package/src/duckdb/src/planner/operator/logical_export.cpp +0 -13
- package/src/duckdb/src/planner/operator/logical_show.cpp +0 -21
- package/src/duckdb/src/planner/parsed_data/bound_create_table_info.cpp +0 -22
- package/src/duckdb/src/planner/plan_serialization.cpp +0 -20
- package/src/duckdb/src/verification/deserialized_statement_verifier_v2.cpp +0 -34
- package/src/duckdb/ub_src_planner_parsed_data.cpp +0 -2
@@ -1,6 +1,7 @@
|
|
1
1
|
#include "duckdb/storage/table/struct_column_data.hpp"
|
2
2
|
#include "duckdb/storage/statistics/struct_stats.hpp"
|
3
|
-
#include "duckdb/
|
3
|
+
#include "duckdb/common/serializer/serializer.hpp"
|
4
|
+
#include "duckdb/common/serializer/deserializer.hpp"
|
4
5
|
#include "duckdb/storage/table/column_checkpoint_state.hpp"
|
5
6
|
#include "duckdb/storage/table/append_state.hpp"
|
6
7
|
#include "duckdb/storage/table/scan_state.hpp"
|
@@ -240,11 +241,13 @@ public:
|
|
240
241
|
return stats.ToUnique();
|
241
242
|
}
|
242
243
|
|
243
|
-
void WriteDataPointers(RowGroupWriter &writer) override {
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
244
|
+
void WriteDataPointers(RowGroupWriter &writer, Serializer &serializer) override {
|
245
|
+
serializer.WriteObject(101, "validity",
|
246
|
+
[&](Serializer &serializer) { validity_state->WriteDataPointers(writer, serializer); });
|
247
|
+
serializer.WriteList(102, "sub_columns", child_states.size(), [&](Serializer::List &list, idx_t i) {
|
248
|
+
auto &state = child_states[i];
|
249
|
+
list.WriteObject([&](Serializer &serializer) { state->WriteDataPointers(writer, serializer); });
|
250
|
+
});
|
248
251
|
}
|
249
252
|
};
|
250
253
|
|
@@ -265,11 +268,14 @@ unique_ptr<ColumnCheckpointState> StructColumnData::Checkpoint(RowGroup &row_gro
|
|
265
268
|
return std::move(checkpoint_state);
|
266
269
|
}
|
267
270
|
|
268
|
-
void StructColumnData::DeserializeColumn(Deserializer &
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
271
|
+
void StructColumnData::DeserializeColumn(Deserializer &deserializer) {
|
272
|
+
deserializer.ReadObject(101, "validity",
|
273
|
+
[&](Deserializer &deserializer) { validity.DeserializeColumn(deserializer); });
|
274
|
+
|
275
|
+
deserializer.ReadList(102, "sub_columns", [&](Deserializer::List &list, idx_t i) {
|
276
|
+
list.ReadObject([&](Deserializer &item) { sub_columns[i]->DeserializeColumn(item); });
|
277
|
+
});
|
278
|
+
|
273
279
|
this->count = validity.count;
|
274
280
|
}
|
275
281
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
#include "duckdb/storage/table/table_statistics.hpp"
|
2
2
|
#include "duckdb/storage/table/persistent_table_data.hpp"
|
3
|
-
#include "duckdb/common/serializer/
|
4
|
-
#include "duckdb/common/serializer/
|
3
|
+
#include "duckdb/common/serializer/serializer.hpp"
|
4
|
+
#include "duckdb/common/serializer/deserializer.hpp"
|
5
5
|
|
6
6
|
namespace duckdb {
|
7
7
|
|
@@ -101,35 +101,26 @@ void TableStatistics::CopyStats(TableStatistics &other) {
|
|
101
101
|
}
|
102
102
|
}
|
103
103
|
|
104
|
-
void TableStatistics::Serialize(Serializer &serializer) {
|
105
|
-
for (auto &stats : column_stats) {
|
106
|
-
stats->Serialize(serializer);
|
107
|
-
}
|
108
|
-
}
|
109
|
-
|
110
|
-
void TableStatistics::Deserialize(Deserializer &source, ColumnList &columns) {
|
111
|
-
for (auto &col : columns.Physical()) {
|
112
|
-
auto stats = ColumnStatistics::Deserialize(source, col.GetType());
|
113
|
-
column_stats.push_back(std::move(stats));
|
114
|
-
}
|
115
|
-
}
|
116
|
-
|
117
|
-
void TableStatistics::FormatSerialize(FormatSerializer &serializer) {
|
104
|
+
void TableStatistics::Serialize(Serializer &serializer) const {
|
118
105
|
auto column_count = column_stats.size();
|
119
106
|
serializer.WriteList(100, "column_stats", column_count,
|
120
|
-
[&](
|
107
|
+
[&](Serializer::List &list, idx_t i) { list.WriteElement(column_stats[i]); });
|
121
108
|
}
|
122
109
|
|
123
|
-
void TableStatistics::
|
110
|
+
void TableStatistics::Deserialize(Deserializer &deserializer, ColumnList &columns) {
|
124
111
|
auto physical_columns = columns.Physical();
|
112
|
+
|
125
113
|
auto iter = physical_columns.begin();
|
126
|
-
deserializer.ReadList(100, "column_stats", [&](
|
127
|
-
auto &col = *iter
|
114
|
+
deserializer.ReadList(100, "column_stats", [&](Deserializer::List &list, idx_t i) {
|
115
|
+
auto &col = *iter;
|
116
|
+
iter.operator++();
|
117
|
+
|
128
118
|
auto type = col.GetType();
|
129
119
|
deserializer.Set<LogicalType &>(type);
|
130
|
-
|
120
|
+
|
121
|
+
column_stats.push_back(list.ReadElement<shared_ptr<ColumnStatistics>>());
|
122
|
+
|
131
123
|
deserializer.Unset<LogicalType>();
|
132
|
-
column_stats.push_back(std::move(stats));
|
133
124
|
});
|
134
125
|
}
|
135
126
|
|
@@ -20,13 +20,14 @@
|
|
20
20
|
#include "duckdb/main/attached_database.hpp"
|
21
21
|
#include "duckdb/execution/index/art/art.hpp"
|
22
22
|
#include "duckdb/catalog/catalog_entry/duck_index_entry.hpp"
|
23
|
+
#include "duckdb/common/serializer/binary_deserializer.hpp"
|
23
24
|
|
24
25
|
namespace duckdb {
|
25
26
|
|
26
27
|
bool WriteAheadLog::Replay(AttachedDatabase &database, string &path) {
|
27
28
|
Connection con(database.GetDatabase());
|
28
|
-
auto
|
29
|
-
if (
|
29
|
+
auto initial_source = make_uniq<BufferedFileReader>(FileSystem::Get(database), path.c_str());
|
30
|
+
if (initial_source->Finished()) {
|
30
31
|
// WAL is empty
|
31
32
|
return false;
|
32
33
|
}
|
@@ -35,21 +36,25 @@ bool WriteAheadLog::Replay(AttachedDatabase &database, string &path) {
|
|
35
36
|
|
36
37
|
// first deserialize the WAL to look for a checkpoint flag
|
37
38
|
// if there is a checkpoint flag, we might have already flushed the contents of the WAL to disk
|
38
|
-
ReplayState checkpoint_state(database, *con.context
|
39
|
+
ReplayState checkpoint_state(database, *con.context);
|
39
40
|
checkpoint_state.deserialize_only = true;
|
40
41
|
try {
|
41
42
|
while (true) {
|
42
43
|
// read the current entry
|
43
|
-
|
44
|
+
BinaryDeserializer deserializer(*initial_source);
|
45
|
+
deserializer.Begin();
|
46
|
+
auto entry_type = deserializer.ReadProperty<WALType>(100, "wal_type");
|
44
47
|
if (entry_type == WALType::WAL_FLUSH) {
|
48
|
+
deserializer.End();
|
45
49
|
// check if the file is exhausted
|
46
|
-
if (
|
50
|
+
if (initial_source->Finished()) {
|
47
51
|
// we finished reading the file: break
|
48
52
|
break;
|
49
53
|
}
|
50
54
|
} else {
|
51
55
|
// replay the entry
|
52
|
-
checkpoint_state.ReplayEntry(entry_type);
|
56
|
+
checkpoint_state.ReplayEntry(entry_type, deserializer);
|
57
|
+
deserializer.End();
|
53
58
|
}
|
54
59
|
}
|
55
60
|
} catch (std::exception &ex) { // LCOV_EXCL_START
|
@@ -59,7 +64,7 @@ bool WriteAheadLog::Replay(AttachedDatabase &database, string &path) {
|
|
59
64
|
Printer::Print("Unknown Exception in WAL playback during initial read");
|
60
65
|
return false;
|
61
66
|
} // LCOV_EXCL_STOP
|
62
|
-
|
67
|
+
initial_source.reset();
|
63
68
|
if (checkpoint_state.checkpoint_id.IsValid()) {
|
64
69
|
// there is a checkpoint flag: check if we need to deserialize the WAL
|
65
70
|
auto &manager = database.GetStorageManager();
|
@@ -71,8 +76,8 @@ bool WriteAheadLog::Replay(AttachedDatabase &database, string &path) {
|
|
71
76
|
}
|
72
77
|
|
73
78
|
// we need to recover from the WAL: actually set up the replay state
|
74
|
-
BufferedFileReader reader(FileSystem::Get(database), path.c_str()
|
75
|
-
ReplayState state(database, *con.context
|
79
|
+
BufferedFileReader reader(FileSystem::Get(database), path.c_str());
|
80
|
+
ReplayState state(database, *con.context);
|
76
81
|
|
77
82
|
// replay the WAL
|
78
83
|
// note that everything is wrapped inside a try/catch block here
|
@@ -81,20 +86,22 @@ bool WriteAheadLog::Replay(AttachedDatabase &database, string &path) {
|
|
81
86
|
try {
|
82
87
|
while (true) {
|
83
88
|
// read the current entry
|
84
|
-
|
89
|
+
BinaryDeserializer deserializer(reader);
|
90
|
+
deserializer.Begin();
|
91
|
+
auto entry_type = deserializer.ReadProperty<WALType>(100, "wal_type");
|
85
92
|
if (entry_type == WALType::WAL_FLUSH) {
|
86
|
-
|
93
|
+
deserializer.End();
|
87
94
|
con.Commit();
|
88
95
|
// check if the file is exhausted
|
89
96
|
if (reader.Finished()) {
|
90
97
|
// we finished reading the file: break
|
91
98
|
break;
|
92
99
|
}
|
93
|
-
// otherwise we keep on reading
|
94
100
|
con.BeginTransaction();
|
95
101
|
} else {
|
96
102
|
// replay the entry
|
97
|
-
state.ReplayEntry(entry_type);
|
103
|
+
state.ReplayEntry(entry_type, deserializer);
|
104
|
+
deserializer.End();
|
98
105
|
}
|
99
106
|
}
|
100
107
|
} catch (std::exception &ex) { // LCOV_EXCL_START
|
@@ -113,76 +120,76 @@ bool WriteAheadLog::Replay(AttachedDatabase &database, string &path) {
|
|
113
120
|
//===--------------------------------------------------------------------===//
|
114
121
|
// Replay Entries
|
115
122
|
//===--------------------------------------------------------------------===//
|
116
|
-
void ReplayState::ReplayEntry(WALType entry_type) {
|
123
|
+
void ReplayState::ReplayEntry(WALType entry_type, BinaryDeserializer &deserializer) {
|
117
124
|
switch (entry_type) {
|
118
125
|
case WALType::CREATE_TABLE:
|
119
|
-
ReplayCreateTable();
|
126
|
+
ReplayCreateTable(deserializer);
|
120
127
|
break;
|
121
128
|
case WALType::DROP_TABLE:
|
122
|
-
ReplayDropTable();
|
129
|
+
ReplayDropTable(deserializer);
|
123
130
|
break;
|
124
131
|
case WALType::ALTER_INFO:
|
125
|
-
ReplayAlter();
|
132
|
+
ReplayAlter(deserializer);
|
126
133
|
break;
|
127
134
|
case WALType::CREATE_VIEW:
|
128
|
-
ReplayCreateView();
|
135
|
+
ReplayCreateView(deserializer);
|
129
136
|
break;
|
130
137
|
case WALType::DROP_VIEW:
|
131
|
-
ReplayDropView();
|
138
|
+
ReplayDropView(deserializer);
|
132
139
|
break;
|
133
140
|
case WALType::CREATE_SCHEMA:
|
134
|
-
ReplayCreateSchema();
|
141
|
+
ReplayCreateSchema(deserializer);
|
135
142
|
break;
|
136
143
|
case WALType::DROP_SCHEMA:
|
137
|
-
ReplayDropSchema();
|
144
|
+
ReplayDropSchema(deserializer);
|
138
145
|
break;
|
139
146
|
case WALType::CREATE_SEQUENCE:
|
140
|
-
ReplayCreateSequence();
|
147
|
+
ReplayCreateSequence(deserializer);
|
141
148
|
break;
|
142
149
|
case WALType::DROP_SEQUENCE:
|
143
|
-
ReplayDropSequence();
|
150
|
+
ReplayDropSequence(deserializer);
|
144
151
|
break;
|
145
152
|
case WALType::SEQUENCE_VALUE:
|
146
|
-
ReplaySequenceValue();
|
153
|
+
ReplaySequenceValue(deserializer);
|
147
154
|
break;
|
148
155
|
case WALType::CREATE_MACRO:
|
149
|
-
ReplayCreateMacro();
|
156
|
+
ReplayCreateMacro(deserializer);
|
150
157
|
break;
|
151
158
|
case WALType::DROP_MACRO:
|
152
|
-
ReplayDropMacro();
|
159
|
+
ReplayDropMacro(deserializer);
|
153
160
|
break;
|
154
161
|
case WALType::CREATE_TABLE_MACRO:
|
155
|
-
ReplayCreateTableMacro();
|
162
|
+
ReplayCreateTableMacro(deserializer);
|
156
163
|
break;
|
157
164
|
case WALType::DROP_TABLE_MACRO:
|
158
|
-
ReplayDropTableMacro();
|
165
|
+
ReplayDropTableMacro(deserializer);
|
159
166
|
break;
|
160
167
|
case WALType::CREATE_INDEX:
|
161
|
-
ReplayCreateIndex();
|
168
|
+
ReplayCreateIndex(deserializer);
|
162
169
|
break;
|
163
170
|
case WALType::DROP_INDEX:
|
164
|
-
ReplayDropIndex();
|
171
|
+
ReplayDropIndex(deserializer);
|
165
172
|
break;
|
166
173
|
case WALType::USE_TABLE:
|
167
|
-
ReplayUseTable();
|
174
|
+
ReplayUseTable(deserializer);
|
168
175
|
break;
|
169
176
|
case WALType::INSERT_TUPLE:
|
170
|
-
ReplayInsert();
|
177
|
+
ReplayInsert(deserializer);
|
171
178
|
break;
|
172
179
|
case WALType::DELETE_TUPLE:
|
173
|
-
ReplayDelete();
|
180
|
+
ReplayDelete(deserializer);
|
174
181
|
break;
|
175
182
|
case WALType::UPDATE_TUPLE:
|
176
|
-
ReplayUpdate();
|
183
|
+
ReplayUpdate(deserializer);
|
177
184
|
break;
|
178
185
|
case WALType::CHECKPOINT:
|
179
|
-
ReplayCheckpoint();
|
186
|
+
ReplayCheckpoint(deserializer);
|
180
187
|
break;
|
181
188
|
case WALType::CREATE_TYPE:
|
182
|
-
ReplayCreateType();
|
189
|
+
ReplayCreateType(deserializer);
|
183
190
|
break;
|
184
191
|
case WALType::DROP_TYPE:
|
185
|
-
ReplayDropType();
|
192
|
+
ReplayDropType(deserializer);
|
186
193
|
break;
|
187
194
|
default:
|
188
195
|
throw InternalException("Invalid WAL entry type!");
|
@@ -192,14 +199,12 @@ void ReplayState::ReplayEntry(WALType entry_type) {
|
|
192
199
|
//===--------------------------------------------------------------------===//
|
193
200
|
// Replay Table
|
194
201
|
//===--------------------------------------------------------------------===//
|
195
|
-
void ReplayState::ReplayCreateTable() {
|
196
|
-
auto info =
|
202
|
+
void ReplayState::ReplayCreateTable(BinaryDeserializer &deserializer) {
|
203
|
+
auto info = deserializer.ReadProperty<unique_ptr<CreateInfo>>(101, "table");
|
197
204
|
if (deserialize_only) {
|
198
205
|
return;
|
199
206
|
}
|
200
|
-
|
201
207
|
// bind the constraints to the table again
|
202
|
-
|
203
208
|
auto binder = Binder::CreateBinder(context);
|
204
209
|
auto &schema = catalog.GetSchema(context, info->schema);
|
205
210
|
auto bound_info = binder->BindCreateTableInfo(std::move(info), schema);
|
@@ -207,12 +212,13 @@ void ReplayState::ReplayCreateTable() {
|
|
207
212
|
catalog.CreateTable(context, *bound_info);
|
208
213
|
}
|
209
214
|
|
210
|
-
void ReplayState::ReplayDropTable() {
|
215
|
+
void ReplayState::ReplayDropTable(BinaryDeserializer &deserializer) {
|
216
|
+
|
211
217
|
DropInfo info;
|
212
218
|
|
213
219
|
info.type = CatalogType::TABLE_ENTRY;
|
214
|
-
info.schema =
|
215
|
-
info.name =
|
220
|
+
info.schema = deserializer.ReadProperty<string>(101, "schema");
|
221
|
+
info.name = deserializer.ReadProperty<string>(102, "name");
|
216
222
|
if (deserialize_only) {
|
217
223
|
return;
|
218
224
|
}
|
@@ -220,31 +226,32 @@ void ReplayState::ReplayDropTable() {
|
|
220
226
|
catalog.DropEntry(context, info);
|
221
227
|
}
|
222
228
|
|
223
|
-
void ReplayState::ReplayAlter() {
|
224
|
-
|
229
|
+
void ReplayState::ReplayAlter(BinaryDeserializer &deserializer) {
|
230
|
+
|
231
|
+
auto info = deserializer.ReadProperty<unique_ptr<ParseInfo>>(101, "info");
|
232
|
+
auto &alter_info = info->Cast<AlterInfo>();
|
225
233
|
if (deserialize_only) {
|
226
234
|
return;
|
227
235
|
}
|
228
|
-
catalog.Alter(context,
|
236
|
+
catalog.Alter(context, alter_info);
|
229
237
|
}
|
230
238
|
|
231
239
|
//===--------------------------------------------------------------------===//
|
232
240
|
// Replay View
|
233
241
|
//===--------------------------------------------------------------------===//
|
234
|
-
void ReplayState::ReplayCreateView() {
|
235
|
-
auto entry =
|
242
|
+
void ReplayState::ReplayCreateView(BinaryDeserializer &deserializer) {
|
243
|
+
auto entry = deserializer.ReadProperty<unique_ptr<CreateInfo>>(101, "view");
|
236
244
|
if (deserialize_only) {
|
237
245
|
return;
|
238
246
|
}
|
239
|
-
|
240
247
|
catalog.CreateView(context, entry->Cast<CreateViewInfo>());
|
241
248
|
}
|
242
249
|
|
243
|
-
void ReplayState::ReplayDropView() {
|
250
|
+
void ReplayState::ReplayDropView(BinaryDeserializer &deserializer) {
|
244
251
|
DropInfo info;
|
245
252
|
info.type = CatalogType::VIEW_ENTRY;
|
246
|
-
info.schema =
|
247
|
-
info.name =
|
253
|
+
info.schema = deserializer.ReadProperty<string>(101, "schema");
|
254
|
+
info.name = deserializer.ReadProperty<string>(102, "name");
|
248
255
|
if (deserialize_only) {
|
249
256
|
return;
|
250
257
|
}
|
@@ -254,9 +261,9 @@ void ReplayState::ReplayDropView() {
|
|
254
261
|
//===--------------------------------------------------------------------===//
|
255
262
|
// Replay Schema
|
256
263
|
//===--------------------------------------------------------------------===//
|
257
|
-
void ReplayState::ReplayCreateSchema() {
|
264
|
+
void ReplayState::ReplayCreateSchema(BinaryDeserializer &deserializer) {
|
258
265
|
CreateSchemaInfo info;
|
259
|
-
info.schema =
|
266
|
+
info.schema = deserializer.ReadProperty<string>(101, "schema");
|
260
267
|
if (deserialize_only) {
|
261
268
|
return;
|
262
269
|
}
|
@@ -264,11 +271,11 @@ void ReplayState::ReplayCreateSchema() {
|
|
264
271
|
catalog.CreateSchema(context, info);
|
265
272
|
}
|
266
273
|
|
267
|
-
void ReplayState::ReplayDropSchema() {
|
274
|
+
void ReplayState::ReplayDropSchema(BinaryDeserializer &deserializer) {
|
268
275
|
DropInfo info;
|
269
276
|
|
270
277
|
info.type = CatalogType::SCHEMA_ENTRY;
|
271
|
-
info.name =
|
278
|
+
info.name = deserializer.ReadProperty<string>(101, "schema");
|
272
279
|
if (deserialize_only) {
|
273
280
|
return;
|
274
281
|
}
|
@@ -279,18 +286,18 @@ void ReplayState::ReplayDropSchema() {
|
|
279
286
|
//===--------------------------------------------------------------------===//
|
280
287
|
// Replay Custom Type
|
281
288
|
//===--------------------------------------------------------------------===//
|
282
|
-
void ReplayState::ReplayCreateType() {
|
283
|
-
auto info =
|
289
|
+
void ReplayState::ReplayCreateType(BinaryDeserializer &deserializer) {
|
290
|
+
auto info = deserializer.ReadProperty<unique_ptr<CreateInfo>>(101, "type");
|
284
291
|
info->on_conflict = OnCreateConflict::IGNORE_ON_CONFLICT;
|
285
292
|
catalog.CreateType(context, info->Cast<CreateTypeInfo>());
|
286
293
|
}
|
287
294
|
|
288
|
-
void ReplayState::ReplayDropType() {
|
295
|
+
void ReplayState::ReplayDropType(BinaryDeserializer &deserializer) {
|
289
296
|
DropInfo info;
|
290
297
|
|
291
298
|
info.type = CatalogType::TYPE_ENTRY;
|
292
|
-
info.schema =
|
293
|
-
info.name =
|
299
|
+
info.schema = deserializer.ReadProperty<string>(101, "schema");
|
300
|
+
info.name = deserializer.ReadProperty<string>(102, "name");
|
294
301
|
if (deserialize_only) {
|
295
302
|
return;
|
296
303
|
}
|
@@ -301,8 +308,8 @@ void ReplayState::ReplayDropType() {
|
|
301
308
|
//===--------------------------------------------------------------------===//
|
302
309
|
// Replay Sequence
|
303
310
|
//===--------------------------------------------------------------------===//
|
304
|
-
void ReplayState::ReplayCreateSequence() {
|
305
|
-
auto entry =
|
311
|
+
void ReplayState::ReplayCreateSequence(BinaryDeserializer &deserializer) {
|
312
|
+
auto entry = deserializer.ReadProperty<unique_ptr<CreateInfo>>(101, "sequence");
|
306
313
|
if (deserialize_only) {
|
307
314
|
return;
|
308
315
|
}
|
@@ -310,11 +317,11 @@ void ReplayState::ReplayCreateSequence() {
|
|
310
317
|
catalog.CreateSequence(context, entry->Cast<CreateSequenceInfo>());
|
311
318
|
}
|
312
319
|
|
313
|
-
void ReplayState::ReplayDropSequence() {
|
320
|
+
void ReplayState::ReplayDropSequence(BinaryDeserializer &deserializer) {
|
314
321
|
DropInfo info;
|
315
322
|
info.type = CatalogType::SEQUENCE_ENTRY;
|
316
|
-
info.schema =
|
317
|
-
info.name =
|
323
|
+
info.schema = deserializer.ReadProperty<string>(101, "schema");
|
324
|
+
info.name = deserializer.ReadProperty<string>(102, "name");
|
318
325
|
if (deserialize_only) {
|
319
326
|
return;
|
320
327
|
}
|
@@ -322,11 +329,11 @@ void ReplayState::ReplayDropSequence() {
|
|
322
329
|
catalog.DropEntry(context, info);
|
323
330
|
}
|
324
331
|
|
325
|
-
void ReplayState::ReplaySequenceValue() {
|
326
|
-
auto schema =
|
327
|
-
auto name =
|
328
|
-
auto usage_count =
|
329
|
-
auto counter =
|
332
|
+
void ReplayState::ReplaySequenceValue(BinaryDeserializer &deserializer) {
|
333
|
+
auto schema = deserializer.ReadProperty<string>(101, "schema");
|
334
|
+
auto name = deserializer.ReadProperty<string>(102, "name");
|
335
|
+
auto usage_count = deserializer.ReadProperty<uint64_t>(103, "usage_count");
|
336
|
+
auto counter = deserializer.ReadProperty<int64_t>(104, "counter");
|
330
337
|
if (deserialize_only) {
|
331
338
|
return;
|
332
339
|
}
|
@@ -342,8 +349,8 @@ void ReplayState::ReplaySequenceValue() {
|
|
342
349
|
//===--------------------------------------------------------------------===//
|
343
350
|
// Replay Macro
|
344
351
|
//===--------------------------------------------------------------------===//
|
345
|
-
void ReplayState::ReplayCreateMacro() {
|
346
|
-
auto entry =
|
352
|
+
void ReplayState::ReplayCreateMacro(BinaryDeserializer &deserializer) {
|
353
|
+
auto entry = deserializer.ReadProperty<unique_ptr<CreateInfo>>(101, "macro");
|
347
354
|
if (deserialize_only) {
|
348
355
|
return;
|
349
356
|
}
|
@@ -351,11 +358,11 @@ void ReplayState::ReplayCreateMacro() {
|
|
351
358
|
catalog.CreateFunction(context, entry->Cast<CreateMacroInfo>());
|
352
359
|
}
|
353
360
|
|
354
|
-
void ReplayState::ReplayDropMacro() {
|
361
|
+
void ReplayState::ReplayDropMacro(BinaryDeserializer &deserializer) {
|
355
362
|
DropInfo info;
|
356
363
|
info.type = CatalogType::MACRO_ENTRY;
|
357
|
-
info.schema =
|
358
|
-
info.name =
|
364
|
+
info.schema = deserializer.ReadProperty<string>(101, "schema");
|
365
|
+
info.name = deserializer.ReadProperty<string>(102, "name");
|
359
366
|
if (deserialize_only) {
|
360
367
|
return;
|
361
368
|
}
|
@@ -366,20 +373,19 @@ void ReplayState::ReplayDropMacro() {
|
|
366
373
|
//===--------------------------------------------------------------------===//
|
367
374
|
// Replay Table Macro
|
368
375
|
//===--------------------------------------------------------------------===//
|
369
|
-
void ReplayState::ReplayCreateTableMacro() {
|
370
|
-
auto entry =
|
376
|
+
void ReplayState::ReplayCreateTableMacro(BinaryDeserializer &deserializer) {
|
377
|
+
auto entry = deserializer.ReadProperty<unique_ptr<CreateInfo>>(101, "table_macro");
|
371
378
|
if (deserialize_only) {
|
372
379
|
return;
|
373
380
|
}
|
374
|
-
|
375
381
|
catalog.CreateFunction(context, entry->Cast<CreateMacroInfo>());
|
376
382
|
}
|
377
383
|
|
378
|
-
void ReplayState::ReplayDropTableMacro() {
|
384
|
+
void ReplayState::ReplayDropTableMacro(BinaryDeserializer &deserializer) {
|
379
385
|
DropInfo info;
|
380
386
|
info.type = CatalogType::TABLE_MACRO_ENTRY;
|
381
|
-
info.schema =
|
382
|
-
info.name =
|
387
|
+
info.schema = deserializer.ReadProperty<string>(101, "schema");
|
388
|
+
info.name = deserializer.ReadProperty<string>(102, "name");
|
383
389
|
if (deserialize_only) {
|
384
390
|
return;
|
385
391
|
}
|
@@ -390,8 +396,8 @@ void ReplayState::ReplayDropTableMacro() {
|
|
390
396
|
//===--------------------------------------------------------------------===//
|
391
397
|
// Replay Index
|
392
398
|
//===--------------------------------------------------------------------===//
|
393
|
-
void ReplayState::ReplayCreateIndex() {
|
394
|
-
auto info =
|
399
|
+
void ReplayState::ReplayCreateIndex(BinaryDeserializer &deserializer) {
|
400
|
+
auto info = deserializer.ReadProperty<unique_ptr<CreateInfo>>(101, "index");
|
395
401
|
if (deserialize_only) {
|
396
402
|
return;
|
397
403
|
}
|
@@ -434,11 +440,11 @@ void ReplayState::ReplayCreateIndex() {
|
|
434
440
|
data_table.WALAddIndex(context, std::move(index), expressions);
|
435
441
|
}
|
436
442
|
|
437
|
-
void ReplayState::ReplayDropIndex() {
|
443
|
+
void ReplayState::ReplayDropIndex(BinaryDeserializer &deserializer) {
|
438
444
|
DropInfo info;
|
439
445
|
info.type = CatalogType::INDEX_ENTRY;
|
440
|
-
info.schema =
|
441
|
-
info.name =
|
446
|
+
info.schema = deserializer.ReadProperty<string>(101, "schema");
|
447
|
+
info.name = deserializer.ReadProperty<string>(102, "name");
|
442
448
|
if (deserialize_only) {
|
443
449
|
return;
|
444
450
|
}
|
@@ -449,18 +455,18 @@ void ReplayState::ReplayDropIndex() {
|
|
449
455
|
//===--------------------------------------------------------------------===//
|
450
456
|
// Replay Data
|
451
457
|
//===--------------------------------------------------------------------===//
|
452
|
-
void ReplayState::ReplayUseTable() {
|
453
|
-
auto schema_name =
|
454
|
-
auto table_name =
|
458
|
+
void ReplayState::ReplayUseTable(BinaryDeserializer &deserializer) {
|
459
|
+
auto schema_name = deserializer.ReadProperty<string>(101, "schema");
|
460
|
+
auto table_name = deserializer.ReadProperty<string>(102, "table");
|
455
461
|
if (deserialize_only) {
|
456
462
|
return;
|
457
463
|
}
|
458
464
|
current_table = &catalog.GetEntry<TableCatalogEntry>(context, schema_name, table_name);
|
459
465
|
}
|
460
466
|
|
461
|
-
void ReplayState::ReplayInsert() {
|
467
|
+
void ReplayState::ReplayInsert(BinaryDeserializer &deserializer) {
|
462
468
|
DataChunk chunk;
|
463
|
-
chunk.Deserialize(
|
469
|
+
deserializer.ReadObject(101, "chunk", [&](Deserializer &object) { chunk.Deserialize(object); });
|
464
470
|
if (deserialize_only) {
|
465
471
|
return;
|
466
472
|
}
|
@@ -472,9 +478,9 @@ void ReplayState::ReplayInsert() {
|
|
472
478
|
current_table->GetStorage().LocalAppend(*current_table, context, chunk);
|
473
479
|
}
|
474
480
|
|
475
|
-
void ReplayState::ReplayDelete() {
|
481
|
+
void ReplayState::ReplayDelete(BinaryDeserializer &deserializer) {
|
476
482
|
DataChunk chunk;
|
477
|
-
chunk.Deserialize(
|
483
|
+
deserializer.ReadObject(101, "chunk", [&](Deserializer &object) { chunk.Deserialize(object); });
|
478
484
|
if (deserialize_only) {
|
479
485
|
return;
|
480
486
|
}
|
@@ -494,15 +500,12 @@ void ReplayState::ReplayDelete() {
|
|
494
500
|
}
|
495
501
|
}
|
496
502
|
|
497
|
-
void ReplayState::ReplayUpdate() {
|
498
|
-
vector<column_t
|
499
|
-
|
500
|
-
column_path.reserve(column_index_count);
|
501
|
-
for (idx_t i = 0; i < column_index_count; i++) {
|
502
|
-
column_path.push_back(source.Read<column_t>());
|
503
|
-
}
|
503
|
+
void ReplayState::ReplayUpdate(BinaryDeserializer &deserializer) {
|
504
|
+
auto column_path = deserializer.ReadProperty<vector<column_t>>(101, "column_indexes");
|
505
|
+
|
504
506
|
DataChunk chunk;
|
505
|
-
chunk.Deserialize(
|
507
|
+
deserializer.ReadObject(102, "chunk", [&](Deserializer &object) { chunk.Deserialize(object); });
|
508
|
+
|
506
509
|
if (deserialize_only) {
|
507
510
|
return;
|
508
511
|
}
|
@@ -522,9 +525,8 @@ void ReplayState::ReplayUpdate() {
|
|
522
525
|
current_table->GetStorage().UpdateColumn(*current_table, context, row_ids, column_path, chunk);
|
523
526
|
}
|
524
527
|
|
525
|
-
void ReplayState::ReplayCheckpoint() {
|
526
|
-
checkpoint_id
|
527
|
-
checkpoint_id.offset = source.Read<uint32_t>();
|
528
|
+
void ReplayState::ReplayCheckpoint(BinaryDeserializer &deserializer) {
|
529
|
+
checkpoint_id = deserializer.ReadProperty<MetaBlockPointer>(101, "meta_block");
|
528
530
|
}
|
529
531
|
|
530
532
|
} // namespace duckdb
|