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]
