mirror of
https://github.com/scylladb/scylladb.git
synced 2026-05-28 18:50:53 +00:00
This series prepares us for working on #11567 - allow adding a GSI to a pre-existing table. This will require changing the implementation of GSIs in Alternator to not use real columns in the schema for the materialized view, and instead of a computed column - a function which extracts the desired member from the `:attrs` map and de-serializes it. This series does not contain the GSI re-implementation itself. Rather it contains a few small cleanups and mostly - new regression tests that cover this area, of adding and removing a GSI, and **using** a GSI, in more details than the tests we already had. I developed most of these tests while working on **buggy** fixes for #11567; The bugs in those implementations were exposed by the tests added here - they exposed bugs both in the new feature of adding or removing a GSI, and also regressions to the ordinary operation of GSI. So these tests should be helpful for whoever ends up fixing #11567, be it me based on my buggy implementation (which is _not_ included in this patch series), or someone else. No backports needed - this is part of a new feature, which we don't usually backport. Closes scylladb/scylladb#20383 * github.com:scylladb/scylladb: test/alternator: more extensive tests for GSI with two new key attributes test/alternator: test invalid key types for GSI test/alternator: test combination of LSI and GSI test/alternator: expand another test to use different write operations test/alternator: test GSIs with different key types alternator: better error message in some cases of key type mismatch test/alternator: test for more elaborate GSI updates test/alternator: strengthen tests for empty attribute values test/alternator: fix typo in test_batch.py test/alternator: more checks for GSI-key attribute validation Alternator: drop unneeded "IS NOT NULL" clauses in MV of GSI/LSI test/alternator: add more checks for adding/deleting a GSI test/alternator: ensure table deletions in test_gsi.py