dev/core#2039 Fix OpenID::add to ensure is_primary is set #18498
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.
Overview
In my efforts to determine the the non-performant line of code that makes sure IM is set is
not required I edited tests to track down when is_primary is not correct & determined it
is missing from the add function - same as #18489 for IM
Before
Calling OpenID::add does not ensure contact has one primary
After
Calling OpenID::add does ensure contact has one primary - further establishing
civicrm-core/CRM/Core/BAO/Location.php
Line 73 in d357f22
Technical Details
When creating 7 contacts with 7 contributions 18% of the total 393 queries were from that 1 line of code, 12% were for entities that were not created. My goal is to 'prove' the line of code can go - it turns out we needed to fix im & open_id before that is true (whether anyone uses them is an open question.....)
Comments
The 2 other commits are open as separate PRs - this can merge once they are merged
https://lab.civicrm.org/dev/core/-/issues/2039