From: Brad Jorsch Date: Thu, 12 Oct 2017 18:34:15 +0000 (-0400) Subject: Replace more uses of "SELECT *" X-Git-Tag: 1.31.0-rc.0~1731^2 X-Git-Url: http://git.cyclocoop.org//%22javascript:ModifierStyle%28%27%22.%24id.%22%27%29/%22?a=commitdiff_plain;h=fa4a909def47f176f9c3f732a32e8cad3a8a50d5;p=lhc%2Fweb%2Fwiklou.git Replace more uses of "SELECT *" With the introduction of CommentStore, selects from various table require certain joins or column aliases for proper operation. The upcoming actor table change, and the suggested title table change, will add more such requirements. Change-Id: Ic8213bff74b8350b15cd271d0ef252e63e7e79bd --- diff --git a/includes/CategoryFinder.php b/includes/CategoryFinder.php index 89bf5c7327..2a70f5f3fd 100644 --- a/includes/CategoryFinder.php +++ b/includes/CategoryFinder.php @@ -190,7 +190,7 @@ class CategoryFinder { $layer = []; $res = $this->dbr->select( /* FROM */ 'categorylinks', - /* SELECT */ '*', + /* SELECT */ [ 'cl_to', 'cl_from' ], /* WHERE */ [ 'cl_from' => $this->next ], __METHOD__ . '-1' ); diff --git a/includes/MovePage.php b/includes/MovePage.php index 2f8255ba38..fe8246535f 100644 --- a/includes/MovePage.php +++ b/includes/MovePage.php @@ -310,7 +310,7 @@ class MovePage { # Protect the redirect title as the title used to be... $res = $dbw->select( 'page_restrictions', - '*', + [ 'pr_type', 'pr_level', 'pr_cascade', 'pr_user', 'pr_expiry' ], [ 'pr_page' => $pageid ], __METHOD__, 'FOR UPDATE' diff --git a/includes/installer/DatabaseInstaller.php b/includes/installer/DatabaseInstaller.php index 6c56b3d430..d4150c87ab 100644 --- a/includes/installer/DatabaseInstaller.php +++ b/includes/installer/DatabaseInstaller.php @@ -697,7 +697,7 @@ abstract class DatabaseInstaller { } $this->db->selectDB( $this->getVar( 'wgDBname' ) ); - if ( $this->db->selectRow( 'interwiki', '*', [], __METHOD__ ) ) { + if ( $this->db->selectRow( 'interwiki', '1', [], __METHOD__ ) ) { $status->warning( 'config-install-interwiki-exists' ); return $status; diff --git a/includes/libs/objectcache/WANObjectCache.php b/includes/libs/objectcache/WANObjectCache.php index 1f757a41e9..cab5782f37 100644 --- a/includes/libs/objectcache/WANObjectCache.php +++ b/includes/libs/objectcache/WANObjectCache.php @@ -1083,7 +1083,7 @@ class WANObjectCache implements IExpiringStore, LoggerAwareInterface { * $setOpts += Database::getCacheSetOptions( $dbr ); * * // Load the row for this file - * $row = $dbr->selectRow( 'file', '*', [ 'id' => $id ], __METHOD__ ); + * $row = $dbr->selectRow( 'file', File::selectFields(), [ 'id' => $id ], __METHOD__ ); * * return $row ? (array)$row : false; * }, @@ -1169,7 +1169,7 @@ class WANObjectCache implements IExpiringStore, LoggerAwareInterface { * * // Load the rows for these files * $rows = []; - * $res = $dbr->select( 'file', '*', [ 'id' => $ids ], __METHOD__ ); + * $res = $dbr->select( 'file', File::selectFields(), [ 'id' => $ids ], __METHOD__ ); * foreach ( $res as $row ) { * $rows[$row->id] = $row; * $mtime = wfTimestamp( TS_UNIX, $row->timestamp ); diff --git a/includes/upload/UploadStash.php b/includes/upload/UploadStash.php index 755f9fdf7b..da896f973d 100644 --- a/includes/upload/UploadStash.php +++ b/includes/upload/UploadStash.php @@ -515,7 +515,12 @@ class UploadStash { $row = $dbr->selectRow( 'uploadstash', - '*', + [ + 'us_user', 'us_key', 'us_orig_path', 'us_path', 'us_props', + 'us_size', 'us_sha1', 'us_mime', 'us_media_type', + 'us_image_width', 'us_image_height', 'us_image_bits', + 'us_source_type', 'us_timestamp', 'us_status', + ], [ 'us_key' => $key ], __METHOD__ ); diff --git a/maintenance/checkImages.php b/maintenance/checkImages.php index 3e57393096..2df0a0954c 100644 --- a/maintenance/checkImages.php +++ b/maintenance/checkImages.php @@ -44,7 +44,8 @@ class CheckImages extends Maintenance { $repo = RepoGroup::singleton()->getLocalRepo(); do { - $res = $dbr->select( 'image', '*', [ 'img_name > ' . $dbr->addQuotes( $start ) ], + $res = $dbr->select( 'image', LocalFile::selectFields(), + [ 'img_name > ' . $dbr->addQuotes( $start ) ], __METHOD__, [ 'LIMIT' => $this->mBatchSize ] ); foreach ( $res as $row ) { $numImages++; diff --git a/maintenance/cleanupBlocks.php b/maintenance/cleanupBlocks.php index 7a3034fb78..f489333f8f 100644 --- a/maintenance/cleanupBlocks.php +++ b/maintenance/cleanupBlocks.php @@ -66,7 +66,7 @@ class CleanupBlocks extends Maintenance { $bestBlock = null; $res2 = $db->select( 'ipblocks', - '*', + Block::selectFields(), [ 'ipb_user' => $row->ipb_user, ] diff --git a/maintenance/compareParserCache.php b/maintenance/compareParserCache.php index 504c7d7ace..afbb2685e0 100644 --- a/maintenance/compareParserCache.php +++ b/maintenance/compareParserCache.php @@ -45,7 +45,12 @@ class CompareParserCache extends Maintenance { $withdiff = 0; $parserCache = MediaWikiServices::getInstance()->getParserCache(); while ( $pages-- > 0 ) { - $row = $dbr->selectRow( 'page', '*', + $row = $dbr->selectRow( 'page', + // @todo Title::selectFields() or Title::getQueryInfo() or something + [ + 'page_namespace', 'page_title', 'page_id', + 'page_len', 'page_is_redirect', 'page_latest', + ], [ 'page_namespace' => $this->getOption( 'namespace' ), 'page_is_redirect' => 0, diff --git a/maintenance/eraseArchivedFile.php b/maintenance/eraseArchivedFile.php index c90056db45..05fbbbcb49 100644 --- a/maintenance/eraseArchivedFile.php +++ b/maintenance/eraseArchivedFile.php @@ -55,7 +55,7 @@ class EraseArchivedFile extends Maintenance { $afile = false; } else { // specified version $dbw = $this->getDB( DB_MASTER ); - $row = $dbw->selectRow( 'filearchive', '*', + $row = $dbw->selectRow( 'filearchive', ArchivedFile::selectFields(), [ 'fa_storage_group' => 'deleted', 'fa_storage_key' => $filekey ], __METHOD__ ); if ( !$row ) { @@ -85,7 +85,7 @@ class EraseArchivedFile extends Maintenance { protected function scrubAllVersions( $name ) { $dbw = $this->getDB( DB_MASTER ); - $res = $dbw->select( 'filearchive', '*', + $res = $dbw->select( 'filearchive', ArchivedFile::selectFields(), [ 'fa_name' => $name, 'fa_storage_group' => 'deleted' ], __METHOD__ ); foreach ( $res as $row ) { diff --git a/maintenance/populateLogSearch.php b/maintenance/populateLogSearch.php index 1b07407e4a..e75b84d530 100644 --- a/maintenance/populateLogSearch.php +++ b/maintenance/populateLogSearch.php @@ -76,7 +76,9 @@ class PopulateLogSearch extends LoggedUpdateMaintenance { while ( $blockEnd <= $end ) { $this->output( "...doing log_id from $blockStart to $blockEnd\n" ); $cond = "log_id BETWEEN $blockStart AND $blockEnd"; - $res = $db->select( 'logging', '*', $cond, __FUNCTION__ ); + $res = $db->select( + 'logging', [ 'log_id', 'log_type', 'log_action', 'log_params' ], $cond, __FUNCTION__ + ); foreach ( $res as $row ) { // RevisionDelete logs - revisions if ( LogEventsList::typeAction( $row, $delTypes, 'revision' ) ) { diff --git a/maintenance/populateRevisionSha1.php b/maintenance/populateRevisionSha1.php index fb97e910f8..c06f1e85df 100644 --- a/maintenance/populateRevisionSha1.php +++ b/maintenance/populateRevisionSha1.php @@ -55,10 +55,10 @@ class PopulateRevisionSha1 extends LoggedUpdateMaintenance { } $this->output( "Populating rev_sha1 column\n" ); - $rc = $this->doSha1Updates( 'revision', 'rev_id', 'rev' ); + $rc = $this->doSha1Updates( 'revision', 'rev_id', Revision::selectFields(), 'rev' ); $this->output( "Populating ar_sha1 column\n" ); - $ac = $this->doSha1Updates( 'archive', 'ar_rev_id', 'ar' ); + $ac = $this->doSha1Updates( 'archive', 'ar_rev_id', Revision::selectArchiveFields(), 'ar' ); $this->output( "Populating ar_sha1 column legacy rows\n" ); $ac += $this->doSha1LegacyUpdates(); @@ -74,7 +74,7 @@ class PopulateRevisionSha1 extends LoggedUpdateMaintenance { * @param string $prefix * @return int Rows changed */ - protected function doSha1Updates( $table, $idCol, $prefix ) { + protected function doSha1Updates( $table, $idCol, $fields, $prefix ) { $db = $this->getDB( DB_MASTER ); $start = $db->selectField( $table, "MIN($idCol)", false, __METHOD__ ); $end = $db->selectField( $table, "MAX($idCol)", false, __METHOD__ ); @@ -93,7 +93,7 @@ class PopulateRevisionSha1 extends LoggedUpdateMaintenance { $this->output( "...doing $idCol from $blockStart to $blockEnd\n" ); $cond = "$idCol BETWEEN $blockStart AND $blockEnd AND $idCol IS NOT NULL AND {$prefix}_sha1 = ''"; - $res = $db->select( $table, '*', $cond, __METHOD__ ); + $res = $db->select( $table, $fields, $cond, __METHOD__ ); $this->beginTransaction( $db, __METHOD__ ); foreach ( $res as $row ) { @@ -117,7 +117,7 @@ class PopulateRevisionSha1 extends LoggedUpdateMaintenance { protected function doSha1LegacyUpdates() { $count = 0; $db = $this->getDB( DB_MASTER ); - $res = $db->select( 'archive', '*', + $res = $db->select( 'archive', Revision::selectArchiveFields(), [ 'ar_rev_id IS NULL', 'ar_sha1' => '' ], __METHOD__ ); $updateSize = 0; diff --git a/maintenance/rebuildImages.php b/maintenance/rebuildImages.php index 109350cd74..a8fb9a3bd0 100644 --- a/maintenance/rebuildImages.php +++ b/maintenance/rebuildImages.php @@ -125,12 +125,12 @@ class ImageBuilder extends Maintenance { flush(); } - function buildTable( $table, $key, $callback ) { + function buildTable( $table, $key, $fields, $callback ) { $count = $this->dbw->selectField( $table, 'count(*)', '', __METHOD__ ); $this->init( $count, $table ); $this->output( "Processing $table...\n" ); - $result = $this->getDB( DB_REPLICA )->select( $table, '*', [], __METHOD__ ); + $result = $this->getDB( DB_REPLICA )->select( $table, $fields, [], __METHOD__ ); foreach ( $result as $row ) { $update = call_user_func( $callback, $row, null ); @@ -145,7 +145,7 @@ class ImageBuilder extends Maintenance { function buildImage() { $callback = [ $this, 'imageCallback' ]; - $this->buildTable( 'image', 'img_name', $callback ); + $this->buildTable( 'image', 'img_name', LocalFile::selectFields(), $callback ); } function imageCallback( $row, $copy ) { @@ -157,7 +157,8 @@ class ImageBuilder extends Maintenance { } function buildOldImage() { - $this->buildTable( 'oldimage', 'oi_archive_name', [ $this, 'oldimageCallback' ] ); + $this->buildTable( 'oldimage', 'oi_archive_name', OldLocalFile::selectFields(), + [ $this, 'oldimageCallback' ] ); } function oldimageCallback( $row, $copy ) { diff --git a/maintenance/refreshFileHeaders.php b/maintenance/refreshFileHeaders.php index fd3faeb622..16702350f6 100644 --- a/maintenance/refreshFileHeaders.php +++ b/maintenance/refreshFileHeaders.php @@ -76,7 +76,7 @@ class RefreshFileHeaders extends Maintenance { $conds[] = "img_minor_mime = {$dbr->addQuotes( $minor_mime )}"; } - $res = $dbr->select( 'image', '*', $conds, + $res = $dbr->select( 'image', LocalFile::selectFields(), $conds, __METHOD__, [ 'LIMIT' => $this->mBatchSize, 'ORDER BY' => 'img_name ASC' ] ); if ( $res->numRows() > 0 ) { diff --git a/maintenance/refreshImageMetadata.php b/maintenance/refreshImageMetadata.php index f6e9e9c35f..41da6b46e4 100644 --- a/maintenance/refreshImageMetadata.php +++ b/maintenance/refreshImageMetadata.php @@ -127,7 +127,7 @@ class RefreshImageMetadata extends Maintenance { do { $res = $dbw->select( 'image', - '*', + LocalFile::selectFields(), array_merge( $conds, $conds2 ), __METHOD__, $options diff --git a/maintenance/storage/testCompression.php b/maintenance/storage/testCompression.php index 90d8d03110..deb2ca60d5 100644 --- a/maintenance/storage/testCompression.php +++ b/maintenance/storage/testCompression.php @@ -50,7 +50,11 @@ $type = isset( $options['type'] ) ? $options['type'] : 'ConcatenatedGzipHistoryB $dbr = $this->getDB( DB_REPLICA ); $res = $dbr->select( [ 'page', 'revision', 'text' ], - '*', + array_merge( + Revision::selectFields(), + Revision::selectPageFields(), + Revision::selectTextFields() + ), [ 'page_namespace' => $title->getNamespace(), 'page_title' => $title->getDBkey(),