xiangfu0 opened a new pull request, #18969:
URL: https://github.com/apache/pinot/pull/18969
## Summary
`GenericRowSerializer`/`GenericRowDeserializer` (used by the segment
processing framework's map/reduce sort path) supported single-value `BYTES` and
`BIG_DECIMAL`, but their multi-value switch branches only handled
`INT`/`LONG`/`FLOAT`/`DOUBLE`/`STRING`. Serializing a row with an MV `BYTES` or
MV `BIG_DECIMAL` column threw `IllegalStateException("Unsupported MV stored
type")`.
This adds the missing MV `BYTES` and `BIG_DECIMAL` cases to all four switch
blocks — serialize size pass, serialize write pass, deserialize, and compare —
mirroring the existing SV cases and the MV `STRING` length-prefixed layout.
This is a bug fix orthogonal to UUID support, split out from
apache/pinot#18870 per review feedback
(https://github.com/apache/pinot/pull/18870#discussion_r3553622794).
## Testing
Extended `GenericRowSerDeTest` with MV `BYTES` and MV `BIG_DECIMAL` columns
(covered by the existing round-trip and compare tests) and added a negative
compare test (`testMvBytesAndBigDecimalCompare`) that exercises the
non-zero-result and differing-cardinality branches for both new types. All 7
tests pass.
--
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]