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 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, ],