fallintoplace commented on PR #1256:
URL: https://github.com/apache/arrow-go/pull/1256#issuecomment-5464472096

   I would request changes here because I think there is still one case this 
doesn't handle.
   
   I tried `PLAIN` nullable FLBA first, then `BYTE_STREAM_SPLIT` FLBA on the 
next page, reusing the same `valueBuf`.
   
   After the PLAIN page, `spacedExpand` can leave two entries pointing to the 
same slice. Then BSS uses that same buffer and writes into the slices before 
`spacedExpandSwap` happens.
   
   So something like `[P0, P1, P1, _, P2]` can be left from the first page. 
Then BSS decodes into the first 3 entries, and the second and third values can 
both write into `P1`.
   
   So I think one value can already be overwritten before `spacedExpandSwap` 
gets a chance to fix the layout.
   
   Maybe worth adding a `PLAIN -> BYTE_STREAM_SPLIT` multi-page test for this 
case.
   


-- 
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]

Reply via email to