Opened 7 months ago
Closed 7 months ago
#22191 closed defect (bug) (fixed)
In update_metadata(), compare old/new values before deciding whether to call add_metadata()
| Reported by: |
|
Owned by: |
|
|---|---|---|---|
| Priority: | normal | Milestone: | 3.5 |
| Component: | Performance | Version: | |
| Severity: | normal | Keywords: | has-patch |
| Cc: |
Description (last modified by nacin)
In update_metadata(), we query for a meta_id of an existing key. If it exists, we continue. If we get nothing back, we call add_metadata().
We also compare the old value with the new value, and if they are the same, we bail.
Since that old value is from cache, it is possible for update_metadata() to not run a single query on its own if there is nothing to update. Only, we do, because we do the meta_id query first.
We should do the meta_id query second. This is the same pattern used by update_option().
Related: #22192, the strict type comparison causes false negatives.
Attachments (1)
Change History (3)
Note: See
TracTickets for help on using
tickets.

In [22231]: