NH-3956 - native SQL query plan cache fix. #562
Merged
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.
Fix and test cases for NH-3956: Native SQL query plan may get wrong plan.
Equals was relying on hashcode equality.
Code taken back prior to that "bad optimization", and compared to hibernate code base (main difference: NHibernate shortcuts on hashcode inequality, not Hibernate).
I have spotted some other discrepancies by the way, but left them untouched:
Equalsimplementations forINativeSQLQueryReturnclasses do only test theiraliasproperties on NHibernate side, while Hibernate test all properties.Test cases only test
Equality, they do not showcase query plan cache failures which may result from thoseEqualityfailures, contrary to those of NH-3954 for the proxy cache. But there is no reason the query plan cache would not have been affected by thoseEqualsfailures.