mirror of
https://github.com/scylladb/scylladb.git
synced 2026-05-02 06:05:53 +00:00
Currently, the idl-generated deserialization code, e.g. mutation_partition_view::rows() deserializes and returns a complete utils::chunked_vector<deletable_row_view> . And that could be arbitrarily long. To consume it gently, we don't need the whole vector in advance, but rather we can consume it one element at a time (and in a nested way for cells in a row in the future). Use `range_deserializer` to consume range tombstones and rows one item at a time. We may consider in the future also gently iterating over cells in a row and then dipping into collection cells that might also contain a large number of items. Fixes #10558 Closes #10566 * github.com:scylladb/scylla: ser: use vector_deserializer by default for all idl vectors mutation_partition_view: do_accept_gently: use the range based deserializers idl-compiler: generate *_range methods using vector_deserializer serializer_impl: add vector_deserializer test: frozen_mutation_test: test_writing_and_reading_gently: log detailed error