﻿id,summary,reporter,owner,description,type,status,priority,milestone,component,version,severity,resolution,keywords,cc
22191,"In update_metadata(), compare old/new values before deciding whether to call add_metadata()",nacin,markjaquith,"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.",defect (bug),closed,normal,3.5,Performance,,normal,fixed,has-patch,
