[
https://issues.apache.org/jira/browse/CASSANDRA-21719?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Johnny Miller reassigned CASSANDRA-21719:
-----------------------------------------
Assignee: Johnny Miller
> ANN query responses fail to serialize when the table has static columns
> outside the selection
> ---------------------------------------------------------------------------------------------
>
> Key: CASSANDRA-21719
> URL: https://issues.apache.org/jira/browse/CASSANDRA-21719
> Project: Apache Cassandra
> Issue Type: Bug
> Components: Feature/SAI
> Reporter: Johnny Miller
> Assignee: Johnny Miller
> Priority: Normal
>
> On a replica serving an ANN query, StorageAttachedIndexSearcher wraps the
> top-k results in InMemoryUnfilteredPartitionIterator
> (StorageAttachedIndexSearcher.java line 149 on trunk). That iterator reports
> its columns as command.metadata().regularAndStaticColumns() instead of the
> columns the command actually fetched
> (InMemoryUnfilteredPartitionIterator.java line 115,
> InMemoryPartitionIterator.java line 107, same on cassandra-5.0). The response
> serializer builds its header from iterator.columns()
> (UnfilteredRowIteratorSerializer.java lines 101 to 104), and
> SerializationHeader.serializeForMessaging requires those columns to be a
> subset of what the command fetched. When the table has a static column the
> query did not select, that check fails and the read errors with
> IllegalStateException("... is not a subset of ...") from Columns.java line
> 618. For example, SELECT s1 with an ANN ORDER BY on a table that also has a
> static column s2.
> The DataStax fork fixed this by returning the base iterator's columns,
> datastax/cassandra@ddbb38014c (their CNDB-14997). PartitionInfo.java here is
> byte for byte the fork's pre-fix version. Their regression test covers
> fork-only features (generic ORDER BY, BM25) so a port would need a trimmed
> test. I could not find an equivalent fix or an existing ticket here.
> Verified on cassandra-5.0 and trunk.
> Happy to port it the same way as CASSANDRA-21615 if wanted.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]