From: Reedy Date: Thu, 23 May 2019 23:16:42 +0000 (+0100) Subject: resourceloader: Use AND instead of OR for upsert conds in saveFileDependencies() X-Git-Tag: 1.34.0-rc.0~1601^2 X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=commitdiff_plain;h=9d1734fa9155e8664566102e3d37c4c0e783cc8f;ds=sidebyside resourceloader: Use AND instead of OR for upsert conds in saveFileDependencies() Follows-up e7b57d881a, which changed it from replace() to upsert() but lost one of the wrapping arrays in doing so. Previously updated many more rows than expected on Postgresql, when it should only be updating individual rows, not all rows that match either criteria. SQL query before: WHERE ((md_module = 'jquery.makeCollapsible.styles') OR (md_skin = 'vector|en-gb')) SQL query after: WHERE ((md_module = 'jquery.makeCollapsible.styles' AND md_skin = 'vector|en-gb')) Not a problem on MySQL as upsert() is implemented differently there. Bug: T222385 Change-Id: If8a458bf4543b297b3a06f31e09c0e77666bf7e6 --- diff --git a/includes/resourceloader/ResourceLoaderModule.php b/includes/resourceloader/ResourceLoaderModule.php index ca311d9de5..66a4edfb1c 100644 --- a/includes/resourceloader/ResourceLoaderModule.php +++ b/includes/resourceloader/ResourceLoaderModule.php @@ -504,7 +504,7 @@ abstract class ResourceLoaderModule implements LoggerAwareInterface { 'md_skin' => $vary, 'md_deps' => $deps, ], - [ 'md_module', 'md_skin' ], + [ [ 'md_module', 'md_skin' ] ], [ 'md_deps' => $deps, ],