You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The function schemaLookup used in the custom diff looks for a non normalised schema and returns this if found. If not found then it looks for a normalised schema and returns this if found.
The wrapper function schemaLookupCheck tests if the id returned is the same as the (desired) id being compared against and if so the diff is considered semantically equivalent.
This logic misses a case where the non-normalised schema has been updated to a normalised schema....
100107 = v7 = normalised
100103 = v6 = non normalised
So we can match the non normalised schema, get back id 100103, compare that against 100107 and throw away the match. This results in drift that could be avoided if the code compared the id within the schema lookup function against the non normalised result if found and the normalised result if found, returning the id here only if it matches. In other words, look for the non normalised schema, if found compare against the desired id and return it if matched. If that doesn't match, look for the normalised schema, if found compare agasint the desired id and return it if found.
It's a bit of an edge case but one that occurred in our environment. Unfortunately the debug output does not show the ids found in each case so there is no useful logging that I can attach.
The text was updated successfully, but these errors were encountered:
The function schemaLookup used in the custom diff looks for a non normalised schema and returns this if found. If not found then it looks for a normalised schema and returns this if found.
The wrapper function schemaLookupCheck tests if the id returned is the same as the (desired) id being compared against and if so the diff is considered semantically equivalent.
This logic misses a case where the non-normalised schema has been updated to a normalised schema....
100107 = v7 = normalised
100103 = v6 = non normalised
So we can match the non normalised schema, get back id 100103, compare that against 100107 and throw away the match. This results in drift that could be avoided if the code compared the id within the schema lookup function against the non normalised result if found and the normalised result if found, returning the id here only if it matches. In other words, look for the non normalised schema, if found compare against the desired id and return it if matched. If that doesn't match, look for the normalised schema, if found compare agasint the desired id and return it if found.
It's a bit of an edge case but one that occurred in our environment. Unfortunately the debug output does not show the ids found in each case so there is no useful logging that I can attach.
The text was updated successfully, but these errors were encountered: