Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement support for different UUID binary formats #42108

Merged
merged 6 commits into from Oct 25, 2022

Conversation

ltrk2
Copy link
Contributor

@ltrk2 ltrk2 commented Oct 5, 2022

Changelog category (leave one):

  • New Feature

Changelog entry (a user-readable short description of the changes that goes to CHANGELOG.md):

Implement support for different UUID binary formats with support for the two most prevalent ones: the default big-endian and Microsoft's mixed-endian as specified in RFC 4122

@ltrk2 ltrk2 force-pushed the feature/implement-uuid-variants branch from 0fcf42b to c037886 Compare October 5, 2022 19:37
@robot-ch-test-poll2 robot-ch-test-poll2 added the pr-feature Pull request with new product feature label Oct 5, 2022
@alexey-milovidov alexey-milovidov added the can be tested Allows running workflows for external contributors label Oct 5, 2022
@ltrk2
Copy link
Contributor Author

ltrk2 commented Oct 6, 2022

I checked the failing builds and I can see from the ones I could interpret that the constructor of UUIDSerializer should be explicit. I'll make sure to resolve this.

@ltrk2 ltrk2 force-pushed the feature/implement-uuid-variants branch from a5323e2 to 208d992 Compare October 6, 2022 17:08
@nickitat
Copy link
Member

pls check ASTFuzzer error report

@nickitat nickitat self-assigned this Oct 19, 2022
@ltrk2
Copy link
Contributor Author

ltrk2 commented Oct 20, 2022

pls check ASTFuzzer error report

I'll make sure to do so, thanks!

@ltrk2
Copy link
Contributor Author

ltrk2 commented Oct 21, 2022

@nickitat I appreciate you taking the time to review my changes. I've updated the pull request and I believe that the issue detected by the fuzzer should be resolved.

@ltrk2 ltrk2 force-pushed the feature/implement-uuid-variants branch from 66ffd55 to 3f6b563 Compare October 21, 2022 15:53
@nickitat nickitat merged commit 2c902bb into ClickHouse:master Oct 25, 2022
if (arguments.size() < 2)
return UUIDSerializer::Variant::Default;

const auto representation = static_cast<magic_enum::underlying_type_t<UUIDSerializer::Variant>>(arguments[1].column->getInt(0));
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

arguments[1].column->getInt(0)

AFAIK, the column may be empty (especially when called from executeDryRunImpl), so it may crash:
https://s3.amazonaws.com/clickhouse-test-reports/61799/ace983f3d5d20c4cfaf6220cda7e3251bfb93278/ast_fuzzer__msan_.html

msan report: https://pastila.nl/?000d758a/f6f27b43f714b735c5b0bb5246f3531c#DdJW2oeYhxwNOiJON6ioOQ==

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
can be tested Allows running workflows for external contributors pr-feature Pull request with new product feature
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants