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
@@ -2,6 +2,38 @@
|
|
2
2
|
|
3
3
|
namespace duckdb {
|
4
4
|
|
5
|
+
//===--------------------------------------------------------------------===//
|
6
|
+
// PartialBlock
|
7
|
+
//===--------------------------------------------------------------------===//
|
8
|
+
|
9
|
+
PartialBlock::PartialBlock(PartialBlockState state, BlockManager &block_manager,
|
10
|
+
const shared_ptr<BlockHandle> &block_handle)
|
11
|
+
: state(state), block_manager(block_manager), block_handle(block_handle) {
|
12
|
+
}
|
13
|
+
|
14
|
+
void PartialBlock::AddUninitializedRegion(idx_t start, idx_t end) {
|
15
|
+
uninitialized_regions.push_back({start, end});
|
16
|
+
}
|
17
|
+
|
18
|
+
void PartialBlock::FlushInternal(const idx_t free_space_left) {
|
19
|
+
|
20
|
+
// ensure that we do not leak any data
|
21
|
+
if (free_space_left > 0 || !uninitialized_regions.empty()) {
|
22
|
+
auto buffer_handle = block_manager.buffer_manager.Pin(block_handle);
|
23
|
+
|
24
|
+
// memset any uninitialized regions
|
25
|
+
for (auto &uninitialized : uninitialized_regions) {
|
26
|
+
memset(buffer_handle.Ptr() + uninitialized.start, 0, uninitialized.end - uninitialized.start);
|
27
|
+
}
|
28
|
+
// memset any free space at the end of the block to 0 prior to writing to disk
|
29
|
+
memset(buffer_handle.Ptr() + Storage::BLOCK_SIZE - free_space_left, 0, free_space_left);
|
30
|
+
}
|
31
|
+
}
|
32
|
+
|
33
|
+
//===--------------------------------------------------------------------===//
|
34
|
+
// PartialBlockManager
|
35
|
+
//===--------------------------------------------------------------------===//
|
36
|
+
|
5
37
|
PartialBlockManager::PartialBlockManager(BlockManager &block_manager, CheckpointType checkpoint_type,
|
6
38
|
uint32_t max_partial_block_size, uint32_t max_use_count)
|
7
39
|
: block_manager(block_manager), checkpoint_type(checkpoint_type), max_partial_block_size(max_partial_block_size),
|
@@ -9,9 +41,7 @@ PartialBlockManager::PartialBlockManager(BlockManager &block_manager, Checkpoint
|
|
9
41
|
}
|
10
42
|
PartialBlockManager::~PartialBlockManager() {
|
11
43
|
}
|
12
|
-
|
13
|
-
// Partial Blocks
|
14
|
-
//===--------------------------------------------------------------------===//
|
44
|
+
|
15
45
|
PartialBlockAllocation PartialBlockManager::GetBlockAllocation(uint32_t segment_size) {
|
16
46
|
PartialBlockAllocation allocation;
|
17
47
|
allocation.block_manager = &block_manager;
|
@@ -47,7 +77,7 @@ void PartialBlockManager::AllocateBlock(PartialBlockState &state, uint32_t segme
|
|
47
77
|
state.block_id = INVALID_BLOCK;
|
48
78
|
}
|
49
79
|
state.block_size = Storage::BLOCK_SIZE;
|
50
|
-
state.
|
80
|
+
state.offset = 0;
|
51
81
|
state.block_use_count = 1;
|
52
82
|
}
|
53
83
|
|
@@ -60,21 +90,22 @@ bool PartialBlockManager::GetPartialBlock(idx_t segment_size, unique_ptr<Partial
|
|
60
90
|
partial_block = std::move(entry->second);
|
61
91
|
partially_filled_blocks.erase(entry);
|
62
92
|
|
63
|
-
D_ASSERT(partial_block->state.
|
64
|
-
D_ASSERT(ValueIsAligned(partial_block->state.
|
93
|
+
D_ASSERT(partial_block->state.offset > 0);
|
94
|
+
D_ASSERT(ValueIsAligned(partial_block->state.offset));
|
65
95
|
return true;
|
66
96
|
}
|
67
97
|
|
68
98
|
void PartialBlockManager::RegisterPartialBlock(PartialBlockAllocation &&allocation) {
|
69
99
|
auto &state = allocation.partial_block->state;
|
100
|
+
D_ASSERT(checkpoint_type != CheckpointType::FULL_CHECKPOINT || state.block_id >= 0);
|
70
101
|
if (state.block_use_count < max_use_count) {
|
71
|
-
auto unaligned_size = allocation.allocation_size + state.
|
102
|
+
auto unaligned_size = allocation.allocation_size + state.offset;
|
72
103
|
auto new_size = AlignValue(unaligned_size);
|
73
104
|
if (new_size != unaligned_size) {
|
74
105
|
// register the uninitialized region so we can correctly initialize it before writing to disk
|
75
106
|
allocation.partial_block->AddUninitializedRegion(unaligned_size, new_size);
|
76
107
|
}
|
77
|
-
state.
|
108
|
+
state.offset = new_size;
|
78
109
|
auto new_space_left = state.block_size - new_size;
|
79
110
|
// check if the block is STILL partially filled after adding the segment_size
|
80
111
|
if (new_space_left >= Storage::BLOCK_SIZE - max_partial_block_size) {
|
@@ -82,7 +113,7 @@ void PartialBlockManager::RegisterPartialBlock(PartialBlockAllocation &&allocati
|
|
82
113
|
partially_filled_blocks.insert(make_pair(new_space_left, std::move(allocation.partial_block)));
|
83
114
|
}
|
84
115
|
}
|
85
|
-
idx_t free_space = state.block_size - state.
|
116
|
+
idx_t free_space = state.block_size - state.offset;
|
86
117
|
auto block_to_free = std::move(allocation.partial_block);
|
87
118
|
if (!block_to_free && partially_filled_blocks.size() > MAX_BLOCK_MAP_SIZE) {
|
88
119
|
// Free the page with the least space free.
|
@@ -98,10 +129,6 @@ void PartialBlockManager::RegisterPartialBlock(PartialBlockAllocation &&allocati
|
|
98
129
|
}
|
99
130
|
}
|
100
131
|
|
101
|
-
void PartialBlock::Merge(PartialBlock &other, idx_t offset, idx_t other_size) {
|
102
|
-
throw InternalException("PartialBlock::Merge not implemented for this block type");
|
103
|
-
}
|
104
|
-
|
105
132
|
void PartialBlockManager::Merge(PartialBlockManager &other) {
|
106
133
|
if (&other == this) {
|
107
134
|
throw InternalException("Cannot merge into itself");
|
@@ -117,10 +144,10 @@ void PartialBlockManager::Merge(PartialBlockManager &other) {
|
|
117
144
|
// we can merge this block into an existing block - merge them
|
118
145
|
// merge blocks
|
119
146
|
auto allocation = GetBlockAllocation(used_space);
|
120
|
-
allocation.partial_block->Merge(*e.second, allocation.state.
|
147
|
+
allocation.partial_block->Merge(*e.second, allocation.state.offset, used_space);
|
121
148
|
|
122
149
|
// re-register the partial block
|
123
|
-
allocation.state.
|
150
|
+
allocation.state.offset += used_space;
|
124
151
|
RegisterPartialBlock(std::move(allocation));
|
125
152
|
} else {
|
126
153
|
// we cannot merge this block - append it directly to the current block manager
|
@@ -3,31 +3,31 @@
|
|
3
3
|
// Do not edit this file manually, your changes will be overwritten
|
4
4
|
//===----------------------------------------------------------------------===//
|
5
5
|
|
6
|
-
#include "duckdb/common/serializer/
|
7
|
-
#include "duckdb/common/serializer/
|
6
|
+
#include "duckdb/common/serializer/serializer.hpp"
|
7
|
+
#include "duckdb/common/serializer/deserializer.hpp"
|
8
8
|
#include "duckdb/parser/constraints/list.hpp"
|
9
9
|
|
10
10
|
namespace duckdb {
|
11
11
|
|
12
|
-
void Constraint::
|
12
|
+
void Constraint::Serialize(Serializer &serializer) const {
|
13
13
|
serializer.WriteProperty(100, "type", type);
|
14
14
|
}
|
15
15
|
|
16
|
-
unique_ptr<Constraint> Constraint::
|
16
|
+
unique_ptr<Constraint> Constraint::Deserialize(Deserializer &deserializer) {
|
17
17
|
auto type = deserializer.ReadProperty<ConstraintType>(100, "type");
|
18
18
|
unique_ptr<Constraint> result;
|
19
19
|
switch (type) {
|
20
20
|
case ConstraintType::CHECK:
|
21
|
-
result = CheckConstraint::
|
21
|
+
result = CheckConstraint::Deserialize(deserializer);
|
22
22
|
break;
|
23
23
|
case ConstraintType::FOREIGN_KEY:
|
24
|
-
result = ForeignKeyConstraint::
|
24
|
+
result = ForeignKeyConstraint::Deserialize(deserializer);
|
25
25
|
break;
|
26
26
|
case ConstraintType::NOT_NULL:
|
27
|
-
result = NotNullConstraint::
|
27
|
+
result = NotNullConstraint::Deserialize(deserializer);
|
28
28
|
break;
|
29
29
|
case ConstraintType::UNIQUE:
|
30
|
-
result = UniqueConstraint::
|
30
|
+
result = UniqueConstraint::Deserialize(deserializer);
|
31
31
|
break;
|
32
32
|
default:
|
33
33
|
throw SerializationException("Unsupported type for deserialization of Constraint!");
|
@@ -35,19 +35,19 @@ unique_ptr<Constraint> Constraint::FormatDeserialize(FormatDeserializer &deseria
|
|
35
35
|
return result;
|
36
36
|
}
|
37
37
|
|
38
|
-
void CheckConstraint::
|
39
|
-
Constraint::
|
38
|
+
void CheckConstraint::Serialize(Serializer &serializer) const {
|
39
|
+
Constraint::Serialize(serializer);
|
40
40
|
serializer.WriteProperty(200, "expression", expression);
|
41
41
|
}
|
42
42
|
|
43
|
-
unique_ptr<Constraint> CheckConstraint::
|
43
|
+
unique_ptr<Constraint> CheckConstraint::Deserialize(Deserializer &deserializer) {
|
44
44
|
auto expression = deserializer.ReadProperty<unique_ptr<ParsedExpression>>(200, "expression");
|
45
45
|
auto result = duckdb::unique_ptr<CheckConstraint>(new CheckConstraint(std::move(expression)));
|
46
46
|
return std::move(result);
|
47
47
|
}
|
48
48
|
|
49
|
-
void ForeignKeyConstraint::
|
50
|
-
Constraint::
|
49
|
+
void ForeignKeyConstraint::Serialize(Serializer &serializer) const {
|
50
|
+
Constraint::Serialize(serializer);
|
51
51
|
serializer.WriteProperty(200, "pk_columns", pk_columns);
|
52
52
|
serializer.WriteProperty(201, "fk_columns", fk_columns);
|
53
53
|
serializer.WriteProperty(202, "fk_type", info.type);
|
@@ -57,7 +57,7 @@ void ForeignKeyConstraint::FormatSerialize(FormatSerializer &serializer) const {
|
|
57
57
|
serializer.WriteProperty(206, "fk_keys", info.fk_keys);
|
58
58
|
}
|
59
59
|
|
60
|
-
unique_ptr<Constraint> ForeignKeyConstraint::
|
60
|
+
unique_ptr<Constraint> ForeignKeyConstraint::Deserialize(Deserializer &deserializer) {
|
61
61
|
auto result = duckdb::unique_ptr<ForeignKeyConstraint>(new ForeignKeyConstraint());
|
62
62
|
deserializer.ReadProperty(200, "pk_columns", result->pk_columns);
|
63
63
|
deserializer.ReadProperty(201, "fk_columns", result->fk_columns);
|
@@ -69,25 +69,25 @@ unique_ptr<Constraint> ForeignKeyConstraint::FormatDeserialize(FormatDeserialize
|
|
69
69
|
return std::move(result);
|
70
70
|
}
|
71
71
|
|
72
|
-
void NotNullConstraint::
|
73
|
-
Constraint::
|
72
|
+
void NotNullConstraint::Serialize(Serializer &serializer) const {
|
73
|
+
Constraint::Serialize(serializer);
|
74
74
|
serializer.WriteProperty(200, "index", index);
|
75
75
|
}
|
76
76
|
|
77
|
-
unique_ptr<Constraint> NotNullConstraint::
|
77
|
+
unique_ptr<Constraint> NotNullConstraint::Deserialize(Deserializer &deserializer) {
|
78
78
|
auto index = deserializer.ReadProperty<LogicalIndex>(200, "index");
|
79
79
|
auto result = duckdb::unique_ptr<NotNullConstraint>(new NotNullConstraint(index));
|
80
80
|
return std::move(result);
|
81
81
|
}
|
82
82
|
|
83
|
-
void UniqueConstraint::
|
84
|
-
Constraint::
|
83
|
+
void UniqueConstraint::Serialize(Serializer &serializer) const {
|
84
|
+
Constraint::Serialize(serializer);
|
85
85
|
serializer.WriteProperty(200, "is_primary_key", is_primary_key);
|
86
86
|
serializer.WriteProperty(201, "index", index);
|
87
87
|
serializer.WriteProperty(202, "columns", columns);
|
88
88
|
}
|
89
89
|
|
90
|
-
unique_ptr<Constraint> UniqueConstraint::
|
90
|
+
unique_ptr<Constraint> UniqueConstraint::Deserialize(Deserializer &deserializer) {
|
91
91
|
auto result = duckdb::unique_ptr<UniqueConstraint>(new UniqueConstraint());
|
92
92
|
deserializer.ReadProperty(200, "is_primary_key", result->is_primary_key);
|
93
93
|
deserializer.ReadProperty(201, "index", result->index);
|
@@ -3,8 +3,8 @@
|
|
3
3
|
// Do not edit this file manually, your changes will be overwritten
|
4
4
|
//===----------------------------------------------------------------------===//
|
5
5
|
|
6
|
-
#include "duckdb/common/serializer/
|
7
|
-
#include "duckdb/common/serializer/
|
6
|
+
#include "duckdb/common/serializer/serializer.hpp"
|
7
|
+
#include "duckdb/common/serializer/deserializer.hpp"
|
8
8
|
#include "duckdb/parser/parsed_data/create_info.hpp"
|
9
9
|
#include "duckdb/parser/parsed_data/create_index_info.hpp"
|
10
10
|
#include "duckdb/parser/parsed_data/create_table_info.hpp"
|
@@ -16,7 +16,7 @@
|
|
16
16
|
|
17
17
|
namespace duckdb {
|
18
18
|
|
19
|
-
void CreateInfo::
|
19
|
+
void CreateInfo::Serialize(Serializer &serializer) const {
|
20
20
|
serializer.WriteProperty(100, "type", type);
|
21
21
|
serializer.WriteProperty(101, "catalog", catalog);
|
22
22
|
serializer.WriteProperty(102, "schema", schema);
|
@@ -26,7 +26,7 @@ void CreateInfo::FormatSerialize(FormatSerializer &serializer) const {
|
|
26
26
|
serializer.WriteProperty(106, "sql", sql);
|
27
27
|
}
|
28
28
|
|
29
|
-
unique_ptr<CreateInfo> CreateInfo::
|
29
|
+
unique_ptr<CreateInfo> CreateInfo::Deserialize(Deserializer &deserializer) {
|
30
30
|
auto type = deserializer.ReadProperty<CatalogType>(100, "type");
|
31
31
|
auto catalog = deserializer.ReadProperty<string>(101, "catalog");
|
32
32
|
auto schema = deserializer.ReadProperty<string>(102, "schema");
|
@@ -34,35 +34,37 @@ unique_ptr<CreateInfo> CreateInfo::FormatDeserialize(FormatDeserializer &deseria
|
|
34
34
|
auto internal = deserializer.ReadProperty<bool>(104, "internal");
|
35
35
|
auto on_conflict = deserializer.ReadProperty<OnCreateConflict>(105, "on_conflict");
|
36
36
|
auto sql = deserializer.ReadProperty<string>(106, "sql");
|
37
|
+
deserializer.Set<CatalogType>(type);
|
37
38
|
unique_ptr<CreateInfo> result;
|
38
39
|
switch (type) {
|
39
40
|
case CatalogType::INDEX_ENTRY:
|
40
|
-
result = CreateIndexInfo::
|
41
|
+
result = CreateIndexInfo::Deserialize(deserializer);
|
41
42
|
break;
|
42
43
|
case CatalogType::MACRO_ENTRY:
|
43
|
-
result = CreateMacroInfo::
|
44
|
+
result = CreateMacroInfo::Deserialize(deserializer);
|
44
45
|
break;
|
45
46
|
case CatalogType::SCHEMA_ENTRY:
|
46
|
-
result = CreateSchemaInfo::
|
47
|
+
result = CreateSchemaInfo::Deserialize(deserializer);
|
47
48
|
break;
|
48
49
|
case CatalogType::SEQUENCE_ENTRY:
|
49
|
-
result = CreateSequenceInfo::
|
50
|
+
result = CreateSequenceInfo::Deserialize(deserializer);
|
50
51
|
break;
|
51
52
|
case CatalogType::TABLE_ENTRY:
|
52
|
-
result = CreateTableInfo::
|
53
|
+
result = CreateTableInfo::Deserialize(deserializer);
|
53
54
|
break;
|
54
55
|
case CatalogType::TABLE_MACRO_ENTRY:
|
55
|
-
result = CreateMacroInfo::
|
56
|
+
result = CreateMacroInfo::Deserialize(deserializer);
|
56
57
|
break;
|
57
58
|
case CatalogType::TYPE_ENTRY:
|
58
|
-
result = CreateTypeInfo::
|
59
|
+
result = CreateTypeInfo::Deserialize(deserializer);
|
59
60
|
break;
|
60
61
|
case CatalogType::VIEW_ENTRY:
|
61
|
-
result = CreateViewInfo::
|
62
|
+
result = CreateViewInfo::Deserialize(deserializer);
|
62
63
|
break;
|
63
64
|
default:
|
64
65
|
throw SerializationException("Unsupported type for deserialization of CreateInfo!");
|
65
66
|
}
|
67
|
+
deserializer.Unset<CatalogType>();
|
66
68
|
result->catalog = std::move(catalog);
|
67
69
|
result->schema = std::move(schema);
|
68
70
|
result->temporary = temporary;
|
@@ -72,57 +74,59 @@ unique_ptr<CreateInfo> CreateInfo::FormatDeserialize(FormatDeserializer &deseria
|
|
72
74
|
return result;
|
73
75
|
}
|
74
76
|
|
75
|
-
void CreateIndexInfo::
|
76
|
-
CreateInfo::
|
77
|
+
void CreateIndexInfo::Serialize(Serializer &serializer) const {
|
78
|
+
CreateInfo::Serialize(serializer);
|
77
79
|
serializer.WriteProperty(200, "name", index_name);
|
78
80
|
serializer.WriteProperty(201, "table", table);
|
79
81
|
serializer.WriteProperty(202, "index_type", index_type);
|
80
82
|
serializer.WriteProperty(203, "constraint_type", constraint_type);
|
81
83
|
serializer.WriteProperty(204, "parsed_expressions", parsed_expressions);
|
82
|
-
serializer.WriteProperty(205, "
|
83
|
-
serializer.WriteProperty(206, "
|
84
|
-
serializer.WriteProperty(207, "
|
85
|
-
serializer.WriteProperty(208, "
|
84
|
+
serializer.WriteProperty(205, "scan_types", scan_types);
|
85
|
+
serializer.WriteProperty(206, "names", names);
|
86
|
+
serializer.WriteProperty(207, "column_ids", column_ids);
|
87
|
+
serializer.WriteProperty(208, "options", options);
|
88
|
+
serializer.WriteProperty(209, "index_type_name", index_type_name);
|
86
89
|
}
|
87
90
|
|
88
|
-
unique_ptr<CreateInfo> CreateIndexInfo::
|
91
|
+
unique_ptr<CreateInfo> CreateIndexInfo::Deserialize(Deserializer &deserializer) {
|
89
92
|
auto result = duckdb::unique_ptr<CreateIndexInfo>(new CreateIndexInfo());
|
90
93
|
deserializer.ReadProperty(200, "name", result->index_name);
|
91
94
|
deserializer.ReadProperty(201, "table", result->table);
|
92
95
|
deserializer.ReadProperty(202, "index_type", result->index_type);
|
93
96
|
deserializer.ReadProperty(203, "constraint_type", result->constraint_type);
|
94
97
|
deserializer.ReadProperty(204, "parsed_expressions", result->parsed_expressions);
|
95
|
-
deserializer.ReadProperty(205, "
|
96
|
-
deserializer.ReadProperty(206, "
|
97
|
-
deserializer.ReadProperty(207, "
|
98
|
-
deserializer.ReadProperty(208, "
|
98
|
+
deserializer.ReadProperty(205, "scan_types", result->scan_types);
|
99
|
+
deserializer.ReadProperty(206, "names", result->names);
|
100
|
+
deserializer.ReadProperty(207, "column_ids", result->column_ids);
|
101
|
+
deserializer.ReadProperty(208, "options", result->options);
|
102
|
+
deserializer.ReadProperty(209, "index_type_name", result->index_type_name);
|
99
103
|
return std::move(result);
|
100
104
|
}
|
101
105
|
|
102
|
-
void CreateMacroInfo::
|
103
|
-
CreateInfo::
|
106
|
+
void CreateMacroInfo::Serialize(Serializer &serializer) const {
|
107
|
+
CreateInfo::Serialize(serializer);
|
104
108
|
serializer.WriteProperty(200, "name", name);
|
105
109
|
serializer.WriteProperty(201, "function", function);
|
106
110
|
}
|
107
111
|
|
108
|
-
unique_ptr<CreateInfo> CreateMacroInfo::
|
109
|
-
auto result = duckdb::unique_ptr<CreateMacroInfo>(new CreateMacroInfo());
|
112
|
+
unique_ptr<CreateInfo> CreateMacroInfo::Deserialize(Deserializer &deserializer) {
|
113
|
+
auto result = duckdb::unique_ptr<CreateMacroInfo>(new CreateMacroInfo(deserializer.Get<CatalogType>()));
|
110
114
|
deserializer.ReadProperty(200, "name", result->name);
|
111
115
|
deserializer.ReadProperty(201, "function", result->function);
|
112
116
|
return std::move(result);
|
113
117
|
}
|
114
118
|
|
115
|
-
void CreateSchemaInfo::
|
116
|
-
CreateInfo::
|
119
|
+
void CreateSchemaInfo::Serialize(Serializer &serializer) const {
|
120
|
+
CreateInfo::Serialize(serializer);
|
117
121
|
}
|
118
122
|
|
119
|
-
unique_ptr<CreateInfo> CreateSchemaInfo::
|
123
|
+
unique_ptr<CreateInfo> CreateSchemaInfo::Deserialize(Deserializer &deserializer) {
|
120
124
|
auto result = duckdb::unique_ptr<CreateSchemaInfo>(new CreateSchemaInfo());
|
121
125
|
return std::move(result);
|
122
126
|
}
|
123
127
|
|
124
|
-
void CreateSequenceInfo::
|
125
|
-
CreateInfo::
|
128
|
+
void CreateSequenceInfo::Serialize(Serializer &serializer) const {
|
129
|
+
CreateInfo::Serialize(serializer);
|
126
130
|
serializer.WriteProperty(200, "name", name);
|
127
131
|
serializer.WriteProperty(201, "usage_count", usage_count);
|
128
132
|
serializer.WriteProperty(202, "increment", increment);
|
@@ -132,7 +136,7 @@ void CreateSequenceInfo::FormatSerialize(FormatSerializer &serializer) const {
|
|
132
136
|
serializer.WriteProperty(206, "cycle", cycle);
|
133
137
|
}
|
134
138
|
|
135
|
-
unique_ptr<CreateInfo> CreateSequenceInfo::
|
139
|
+
unique_ptr<CreateInfo> CreateSequenceInfo::Deserialize(Deserializer &deserializer) {
|
136
140
|
auto result = duckdb::unique_ptr<CreateSequenceInfo>(new CreateSequenceInfo());
|
137
141
|
deserializer.ReadProperty(200, "name", result->name);
|
138
142
|
deserializer.ReadProperty(201, "usage_count", result->usage_count);
|
@@ -144,15 +148,15 @@ unique_ptr<CreateInfo> CreateSequenceInfo::FormatDeserialize(FormatDeserializer
|
|
144
148
|
return std::move(result);
|
145
149
|
}
|
146
150
|
|
147
|
-
void CreateTableInfo::
|
148
|
-
CreateInfo::
|
151
|
+
void CreateTableInfo::Serialize(Serializer &serializer) const {
|
152
|
+
CreateInfo::Serialize(serializer);
|
149
153
|
serializer.WriteProperty(200, "table", table);
|
150
154
|
serializer.WriteProperty(201, "columns", columns);
|
151
155
|
serializer.WriteProperty(202, "constraints", constraints);
|
152
156
|
serializer.WritePropertyWithDefault(203, "query", query, unique_ptr<SelectStatement>());
|
153
157
|
}
|
154
158
|
|
155
|
-
unique_ptr<CreateInfo> CreateTableInfo::
|
159
|
+
unique_ptr<CreateInfo> CreateTableInfo::Deserialize(Deserializer &deserializer) {
|
156
160
|
auto result = duckdb::unique_ptr<CreateTableInfo>(new CreateTableInfo());
|
157
161
|
deserializer.ReadProperty(200, "table", result->table);
|
158
162
|
deserializer.ReadProperty(201, "columns", result->columns);
|
@@ -161,28 +165,28 @@ unique_ptr<CreateInfo> CreateTableInfo::FormatDeserialize(FormatDeserializer &de
|
|
161
165
|
return std::move(result);
|
162
166
|
}
|
163
167
|
|
164
|
-
void CreateTypeInfo::
|
165
|
-
CreateInfo::
|
168
|
+
void CreateTypeInfo::Serialize(Serializer &serializer) const {
|
169
|
+
CreateInfo::Serialize(serializer);
|
166
170
|
serializer.WriteProperty(200, "name", name);
|
167
171
|
serializer.WriteProperty(201, "logical_type", type);
|
168
172
|
}
|
169
173
|
|
170
|
-
unique_ptr<CreateInfo> CreateTypeInfo::
|
174
|
+
unique_ptr<CreateInfo> CreateTypeInfo::Deserialize(Deserializer &deserializer) {
|
171
175
|
auto result = duckdb::unique_ptr<CreateTypeInfo>(new CreateTypeInfo());
|
172
176
|
deserializer.ReadProperty(200, "name", result->name);
|
173
177
|
deserializer.ReadProperty(201, "logical_type", result->type);
|
174
178
|
return std::move(result);
|
175
179
|
}
|
176
180
|
|
177
|
-
void CreateViewInfo::
|
178
|
-
CreateInfo::
|
181
|
+
void CreateViewInfo::Serialize(Serializer &serializer) const {
|
182
|
+
CreateInfo::Serialize(serializer);
|
179
183
|
serializer.WriteProperty(200, "view_name", view_name);
|
180
184
|
serializer.WriteProperty(201, "aliases", aliases);
|
181
185
|
serializer.WriteProperty(202, "types", types);
|
182
186
|
serializer.WritePropertyWithDefault(203, "query", query, unique_ptr<SelectStatement>());
|
183
187
|
}
|
184
188
|
|
185
|
-
unique_ptr<CreateInfo> CreateViewInfo::
|
189
|
+
unique_ptr<CreateInfo> CreateViewInfo::Deserialize(Deserializer &deserializer) {
|
186
190
|
auto result = duckdb::unique_ptr<CreateViewInfo>(new CreateViewInfo());
|
187
191
|
deserializer.ReadProperty(200, "view_name", result->view_name);
|
188
192
|
deserializer.ReadProperty(201, "aliases", result->aliases);
|