xiangfu0 opened a new pull request, #19183:
URL: https://github.com/apache/pinot/pull/19183
> **Stacked on #19181** — GitHub shows the cumulative diff until that
merges. Review only the second commit ("[UUID 4c] ..."); the diff shrinks to 6
files / +168 −26 once #19181 lands. Stacked rather than independent because
both touch `BaseTransformFunctionTest`, whose UUID column and assertion branch
these tests build on.
## What
Three transform functions didn't handle a `UUID` operand.
### `BinaryOperatorTransformFunction`
Comparing a UUID column dispatched to the STRING path, so `=`, `<`, `>` etc.
ran over the *rendered* form rather than the stored bytes. **The fix is generic
and not UUID-specific**: it routes any BYTES-stored logical type through the
bytes comparison, which is what the stored representation calls for. UUID is
simply the first such type to exist.
### `CaseTransformFunction`
UUID branches returned through the string path, so a bare STRING literal
branch — `CASE WHEN c THEN uuidCol ELSE '0000...' END` — was never coerced to
UUID bytes.
### `InTransformFunction`
The IN list was parsed as hex, which rejects the canonical dashed form users
actually write.
## Testing
Each function gets UUID coverage in its existing test: comparison operators
against a UUID column, CASE with UUID and bare-string branches, and IN with
dashed, dashless and mixed-case members.
## About this PR
Split out of #18872. Part of the #18140 UUID split.
--
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]