Commit Graph

15 Commits

Author SHA1 Message Date
Tomasz Grabiec
8e8f63de85 mutation_partition_view: Avoid unnecessary copy into temporary
Message-Id: <1465909038-8174-1-git-send-email-tgrabiec@scylladb.com>
2016-06-14 17:02:17 +03:00
Duarte Nunes
91aac30f12 mutations: Row tombstones are now a set of ranges
This patch changes the type of the mutation partition's row_tombstones
to be a range_tombstone_list, so that they are now represented as a
set of disjoint ranges. All of its usages are updated accordingly.

Fixes #1155

Signed-off-by: Duarte Nunes <duarte@scylladb.com>
2016-06-02 16:21:59 +02:00
Duarte Nunes
e2812c1b7a idl: Rename range_tombstone::key to start
... and make it a clustering_key_prefix, in preparation of
supporting not-whole-row range tombstones.

Signed-off-by: Duarte Nunes <duarte@scylladb.com>
2016-06-02 16:21:36 +02:00
Pekka Enberg
38a54df863 Fix pre-ScyllaDB copyright statements
People keep tripping over the old copyrights and copy-pasting them to
new files. Search and replace "Cloudius Systems" with "ScyllaDB".

Message-Id: <1460013664-25966-1-git-send-email-penberg@scylladb.com>
2016-04-08 08:12:47 +03:00
Paweł Dziepak
bdc23ae5b5 remove db/serializer.hh includes
Signed-off-by: Paweł Dziepak <pdziepak@scylladb.com>
2016-03-02 09:07:09 +00:00
Tomasz Grabiec
f72fd9eefd Merge branch 'pdziepak/canonical-mutation-idl/v1' from sesastar-dev.git 2016-02-23 17:02:43 +01:00
Tomasz Grabiec
995b638d96 mutation_partition_visitor: Fix crash for large blobs
Fixes #927.

The new visiting code builds cell instances using
atomic_cell::make_*() factory methods, which won't work in LSA context
because they depend on managed_bytes storage to be linearized. It may
not be since large blob support. This worked before because we created
cells from views before which works in all contexts.

Fix by constructing them in standard allocator context.

Message-Id: <1456234064-13608-2-git-send-email-tgrabiec@scylladb.com>
2016-02-23 16:41:39 +02:00
Tomasz Grabiec
33cf65c2aa mutation_partition_view: Fix use-after-move on visitor instance
The line:

  boost::apply_visitor(atomic_cell_or_collection_visitor(std::move(visitor), id, col), cell);

is executed in a loop, so visitor could be used after being
moved-from. This may not always be allowed for some visitors. Also,
vistors may keep state, which should be preserved for the whole
visitation.

This doesn't fix any issue right now.

Message-Id: <1456234064-13608-1-git-send-email-tgrabiec@scylladb.com>
2016-02-23 16:41:39 +02:00
Paweł Dziepak
c55fa9e4c2 schema: make column_mapping serializer-friendly
- unnested column_mapping::column
- more accessors

Signed-off-by: Paweł Dziepak <pdziepak@scylladb.com>
2016-02-19 23:11:16 +00:00
Paweł Dziepak
186061adef mutation_partition: switch serialization to IDL-based one
Signed-off-by: Paweł Dziepak <pdziepak@scylladb.com>
2016-02-19 21:49:08 +00:00
Tomasz Grabiec
0edfe138f8 mutation_partition_view: Make visitable also with column_mapping 2016-01-08 21:10:26 +01:00
Tomasz Grabiec
f0cfa61968 Relax header dependencies 2015-12-03 09:10:02 +01:00
Avi Kivity
d5cf0fb2b1 Add license notices 2015-09-20 10:43:39 +03:00
Paweł Dziepak
11e1d82403 mutation_partition: serialize row_marker of deletable_row
Signed-off-by: Paweł Dziepak <pdziepak@cloudius-systems.com>
2015-07-30 14:10:06 +02:00
Tomasz Grabiec
4ab66de0ae db: Introduce frozen_mutation
The immediate motivation for introducing frozen_mutation is inability
to deserialize current "mutation" object, which needs schema reference
at the time it's constructed. It needs schema to initialize its
internal maps with proper key comparators, which depend on schema.

frozen_mutation is an immutable, compact form of a mutation. It
doesn't use complex in-memory strucutres, data is stored in a linear
buffer. In case of frozen_mutation schema needs to be supplied only at
the time mutation partition is visited. Therefore it can be trivially
deserialized without schema.
2015-05-08 09:19:01 +02:00