-
-
Notifications
You must be signed in to change notification settings - Fork 3.9k
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
AfterUpdate hooks fails for nil uuid pointer #7090
Comments
This PR adds the case to handle the assignment of a nil Ptr value to a uuid.UUID (resolved as an Array), so that the model object reflects the correct value after Updates() has completed.
Hey @neiledgar so I checked this out, and upon digging deeper I found that the issue here is that after the completion of So the root cause of this issue is the inconsistency of the model object and not just I've raised this PR to fix this issue, along with few test cases around the |
Hey @omkar-foss. Thank you for the pr/fix. This has fixed the my issue and the playground test now works. I will integrate and test with our system. |
Hey @omkar-foss. I can confirm can confirm this fixes my issue having pulled the PR into our system. Thanks again |
@neiledgar Thank you so much for your confirmation that the fix is working well. The PR is in review now (thanks to @a631807682) and when all concerns are resolved, it may get merged to master soon. |
GORM Playground Link
go-gorm/playground#747
Description
We use gorm hooks but we are seeing a problem when a field with type *uuid.UUID is updated with a nil. We expect the value passed to the AfterUpdate() hook to be nil but it is still populated with the original value. Note the database is updated with NULL as expected. It is the go struct in the AfterUpdate() hook that is incorrect.
This was working with gorm version v1.25.1 but is broken in gorm version 1.25.2. Specifically the breakage occurs with the commit 63534145fda9a2ac9ba703650b1a44da6a03e45e
The problem happens using Updates() with a pointer to uuid.UUID
The problem does not happen in the following scenarios
The text was updated successfully, but these errors were encountered: