mirror of
https://github.com/scylladb/scylladb.git
synced 2026-06-02 13:06:57 +00:00
This patch changes the way TTL is stored in the CDC log table. Instead of including TTL of cell `X` in the third element of the tuple in column `_X`, TTL is written to the previously unused column `ttl`. This is done for cosmetic purposes. This implementation works under assumption that there will be only one TTL included in a mutation coming from a CQL write. This might not be the case when writing a batch that modifies the same row twice, e.g.: ``` BATCH INSERT INTO ks.t (pk, ck, v1) VALUES (1,2,3) USING TTL 10; INSERT INTO ks.t (pk, ck, v2) VALUES (1,2,3) USING TTL 20; END BATCH ``` In this case, this implementation will choose only one TTL value to be written in the CDC log: ``` ... | batch_seq_no | _ck | _pk | _v1 | _v2 | operation | ttl ...-+--------------+-----+-----+--------+--------+-----------+----- ... | 0 | 2 | 1 | (0, 3) | (0, 3) | 1 | 20 ``` This behavior might be changed as a part of issue #5719, which considers splitting a batch write mutation when it contains multiple writes to the same row. Refs #5689 Tests: unit(dev)