SinglePartitionReadCommand.queryNeitherCountersNorCollections() is used to determine whether we can search sstables in timestamp order. We cannot use this optimization when there are multicell values (such as unfrozen collections or UDTs). However, this method only checks column.type.isCollection() || column.type.isCounter(). Instead, it should check column.type.isMulticell() || column.type.isCounter().
This has two implications:
- We are using timestamp-order searching when querying non-frozen UDTs, which can lead to incorrect/stale results being returned.
- We are not taking advantage of this optimization when querying frozen collections.