netudima commented on code in PR #4536:
URL: https://github.com/apache/cassandra/pull/4536#discussion_r2689344850


##########
src/java/org/apache/cassandra/db/memtable/Flushing.java:
##########
@@ -245,7 +245,8 @@ public static SSTableMultiWriter 
createFlushWriter(ColumnFamilyStore cfs,
                                             new SerializationHeader(true,
                                                                     
flushSet.metadata(),
                                                                     
flushSet.columns(),
-                                                                    
flushSet.encodingStats()),
+                                                                    
flushSet.encodingStats(),
+                                                                    
flushSet.columnsChangedAfterCreation()),

Review Comment:
   We may have a value column type change while a memtable is populating.
   org.apache.cassandra.schema.ColumnMetadata#compareTo (used by search 
iterator in 
org.apache.cassandra.db.rows.UnfilteredSerializer#serializeColumnData) relies 
on names, it means this logic should convert cell type to the first found in 
the flushSet.columns().
   Also, org.apache.cassandra.db.memtable.AbstractMemtable.ColumnsCollector#get 
uses BTree, so the same compareTo named-based logic should be used there as 
well.
   So, if I got the logic correctly, it looks like if we have have same-name 
cells from different rows with a different type then we will convert it to one 
type during a serialization (hm, interesting, it looks like there is no 
guarantee that it will be the latest one..)



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to