mirror of
https://github.com/scylladb/scylladb.git
synced 2026-04-20 16:40:35 +00:00
" When a view's partition key contains only columns from the base's partition key (and not an additional one), the liveness - existance or disappearance - of a view-table row is tied to the liveness of the base table row. And that, in turn, depends not only on selected columns (base-table columns SELECTed to also appear in the view) but also on unselected columns. This means that we may need to keep a view row alive even without data, just because some unselected column is alive in the base table. Before this patch set we tried to build a single "row marker" in the view column which tried to summarize the liveness information in all unselected columns. But this proved unworkable, as explained in issue #3362 and as will be demonstrated in unit tests at the end of this series. Because we can't replace several unselected cells by one row marker, what we do in this series is to add for each for the unselected cells a "virtual cell" which contains the cell's liveness information (timestamp, deletion, ttl) but not its value. For collections, we can't represent the entire collection by one virtual cell, and rather need a collection of virtual cells. Fixes #3362 " * 'virtual-cols-v3' of https://github.com/nyh/scylla: Materialized Views: test that virtual columns are not visible Materialized Views: unit test reproducing fixed issue #3362 Materialized Views: no need for elaborate row marker calculations Materialized Views: add unselected columns as virtual columns Materialized Views: fill virtual columns Do not allow selecting a virtual column schema: persist "view virtual" columns to a separate system table schema: add "view virtual" flag to schema's column_definition Add "empty" type name to CQL parser, but only for internal parsing