From 9e82828825536bfd60600af46ed5c33ffbc95303 Mon Sep 17 00:00:00 2001 From: Tim Starling Date: Wed, 19 Mar 2008 11:19:00 +0000 Subject: [PATCH] Fixed no-op update query in common code path --- includes/Article.php | 38 +++++++++++++++++++++----------------- includes/Database.php | 3 +-- 2 files changed, 22 insertions(+), 19 deletions(-) diff --git a/includes/Article.php b/includes/Article.php index 33e21ec5ec..25157081d1 100644 --- a/includes/Article.php +++ b/includes/Article.php @@ -3372,31 +3372,35 @@ class Article { $insertCats = array_merge( $added, $deleted ); $insertRows = array(); foreach( $insertCats as $cat ) { - $insertRows []= array( 'cat_title' => $cat ); + $insertRows[] = array( 'cat_title' => $cat ); } $dbw->insert( 'category', $insertRows, __METHOD__, 'IGNORE' ); $addFields = array( 'cat_pages = cat_pages + 1' ); $removeFields = array( 'cat_pages = cat_pages - 1' ); if( $ns == NS_CATEGORY ) { - $addFields []= 'cat_subcats = cat_subcats + 1'; - $removeFields []= 'cat_subcats = cat_subcats - 1'; + $addFields[] = 'cat_subcats = cat_subcats + 1'; + $removeFields[] = 'cat_subcats = cat_subcats - 1'; } elseif( $ns == NS_IMAGE ) { - $addFields []= 'cat_files = cat_files + 1'; - $removeFields []= 'cat_files = cat_files - 1'; + $addFields[] = 'cat_files = cat_files + 1'; + $removeFields[] = 'cat_files = cat_files - 1'; } - $dbw->update( - 'category', - $addFields, - array( 'cat_title' => $added ), - __METHOD__ - ); - $dbw->update( - 'category', - $removeFields, - array( 'cat_title' => $deleted ), - __METHOD__ - ); + if ( $added ) { + $dbw->update( + 'category', + $addFields, + array( 'cat_title' => $added ), + __METHOD__ + ); + } + if ( $deleted ) { + $dbw->update( + 'category', + $removeFields, + array( 'cat_title' => $deleted ), + __METHOD__ + ); + } } } diff --git a/includes/Database.php b/includes/Database.php index 5863750331..e9db0a38d2 100644 --- a/includes/Database.php +++ b/includes/Database.php @@ -1569,8 +1569,7 @@ class Database { $list .= "$value"; } elseif ( ($mode == LIST_AND || $mode == LIST_OR) && is_array($value) ) { if( count( $value ) == 0 ) { - // Empty input... or should this throw an error? - $list .= '0'; + throw new MWException( __METHOD__.': empty input' ); } elseif( count( $value ) == 1 ) { // Special-case single values, as IN isn't terribly efficient $list .= $field." = ".$this->addQuotes( $value[0] ); -- 2.20.1