Fix lack of error passing for nested preload #19
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Make sure these boxes checked before submitting your pull request.
For significant changes like big bug fixes, new features, please open an issue to make an agreement on an implementation design/plan first before starting it.
What did this pull request do?
For nested preloads there seems to be no passing of errors if a preload query fails. So for example in a test case from this PR, if
Level2
preload fails with error forerr = localDB.Preload("Level2").Find(&got).Error
, thenerr != nil
.However, for nested preload fails this is not the case. If
Level1
preload will fail with error from the DB, for theerr = localDB.Preload("Level2.Level1").Find(&got).Error
query we will haveerr == nil
. This may lead to segmentation faults when objects that are expected to be preloaded (becauseerr == nil
) are in fact not preloaded and empty.This PR fixes that by checking
currentScope
errors on preload callbacks.