[wp-trac] [WordPress Trac] #22192: update_metadata() and update_option() strict checks can cause false negatives
WordPress Trac
wp-trac at lists.automattic.com
Mon Oct 15 03:19:23 UTC 2012
#22192: update_metadata() and update_option() strict checks can cause false
negatives
------------------------------------------+--------------------------
Reporter: nacin | Type: defect (bug)
Status: new | Priority: normal
Milestone: Future Release | Component: Performance
Version: | Severity: normal
Keywords: needs-patch needs-unit-tests |
------------------------------------------+--------------------------
Given this:
{{{
add_post_meta( $post_id, 'key', 1 );
update_post_meta( $post_id, 'key', 1 );
}}}
The update should not work, because they are the same. However, the meta
cache will have "1" as a string, and then it will strict compare it to 1
as an integer. Thus, an unnecessary update will run.
Best I can tell, this could also affect update_option().
It is quite common to use integers and booleans directly into these
functions. They should be smart enough to recognize that "1" == 1 == true
and "0" == 0 == false, and that any numeric string is also equal to a
properly cast integer.
Unit tests needed.
Ticket from which this was spun: #22189, saving navigation menus is slow.
--
Ticket URL: <http://core.trac.wordpress.org/ticket/22192>
WordPress Trac <http://core.trac.wordpress.org/>
WordPress blogging software
More information about the wp-trac
mailing list