We have a (dense) supercolumn table that we're trying to upgrade from 2.2 to 3.x. On this table we perform conditional updates on one of the values using a CQL query. In 2.2 this works as expected: the query returns either a single-column row with true, or a two-column row with false and the current value.
In 3.x this query is internally rewritten to work on a map, using a Maps.SetterByKey operation. The update itself is applied correctly, but when the condition fails and the update is not applied, the query returns all values in the supercolumn/map instead of just the value of the subcolumn/key from the where clause.
In particular, since it returns just the values, and not the keys/mapping, there's no way to know which of the values is the value of the row we're trying to update.
See the attached patch for a test that succeeds on 2.2, but fails with the described behavior on 3.0 and on the latest 3.11.