Tinaj1234 has uploaded a new change for review. https://gerrit.wikimedia.org/r/108219
Change subject: Removing page_restrictions from page table ...................................................................... Removing page_restrictions from page table Experimental patch-Do not merge. Removing page_restrictions from page table as it is superseded by the page_restriction table. Bug: 33334 Change-Id: I1509ad3cc9a99eeff7df4cfc548dd1640053ccc7 --- M includes/WikiPage.php M includes/api/ApiQueryInfo.php M includes/installer/MysqlUpdater.php M includes/installer/SqliteUpdater.php A maintenance/archives/patch-drop-page_restrictions.sql A maintenance/sqlite/archives/patch-drop-page_restrictions.sql M maintenance/tables.sql 7 files changed, 51 insertions(+), 23 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core refs/changes/19/108219/1 diff --git a/includes/WikiPage.php b/includes/WikiPage.php index 8c035aa..d8988af 100644 --- a/includes/WikiPage.php +++ b/includes/WikiPage.php @@ -278,7 +278,6 @@ 'page_id', 'page_namespace', 'page_title', - 'page_restrictions', 'page_counter', 'page_is_redirect', 'page_is_new', @@ -407,7 +406,6 @@ $this->mTitle->loadFromRow( $data ); // Old-fashioned restrictions - $this->mTitle->loadRestrictions( $data->page_restrictions ); $this->mId = intval( $data->page_id ); $this->mCounter = intval( $data->page_counter ); @@ -1253,7 +1251,6 @@ 'page_namespace' => $this->mTitle->getNamespace(), 'page_title' => $this->mTitle->getDBkey(), 'page_counter' => 0, - 'page_restrictions' => '', 'page_is_redirect' => 0, // Will set this shortly... 'page_is_new' => 1, 'page_random' => wfRandom(), @@ -2405,7 +2402,6 @@ // Clear out legacy restriction fields $dbw->update( 'page', - array( 'page_restrictions' => '' ), array( 'page_id' => $id ), __METHOD__ ); @@ -2594,20 +2590,20 @@ * @throws MWException * @return String */ - protected static function flattenRestrictions( $limit ) { - if ( !is_array( $limit ) ) { - throw new MWException( 'WikiPage::flattenRestrictions given non-array restriction set' ); - } - - $bits = array(); - ksort( $limit ); - - foreach ( array_filter( $limit ) as $action => $restrictions ) { - $bits[] = "$action=$restrictions"; - } - - return implode( ':', $bits ); - } +// protected static function flattenRestrictions( $limit ) { +// if ( !is_array( $limit ) ) { +// throw new MWException( 'WikiPage::flattenRestrictions given non-array restriction set' ); +// } +// +// $bits = array(); +// ksort( $limit ); +// +// foreach ( array_filter( $limit ) as $action => $restrictions ) { +// $bits[] = "$action=$restrictions"; +// } +// +// return implode( ':', $bits ); +// } /** * Same as doDeleteArticleReal(), but returns a simple boolean. This is kept around for diff --git a/includes/api/ApiQueryInfo.php b/includes/api/ApiQueryInfo.php index 43b8c0c..bc12675 100644 --- a/includes/api/ApiQueryInfo.php +++ b/includes/api/ApiQueryInfo.php @@ -59,7 +59,6 @@ public function requestExtraData( $pageSet ) { global $wgDisableCounters, $wgContentHandlerUseDB; - $pageSet->requestField( 'page_restrictions' ); // when resolving redirects, no page will have this field if ( !$pageSet->isResolvingRedirects() ) { $pageSet->requestField( 'page_is_redirect' ); @@ -288,7 +287,6 @@ } } - $this->pageRestrictions = $pageSet->getCustomField( 'page_restrictions' ); // when resolving redirects, no page will have this field $this->pageIsRedir = !$pageSet->isResolvingRedirects() ? $pageSet->getCustomField( 'page_is_redirect' ) diff --git a/includes/installer/MysqlUpdater.php b/includes/installer/MysqlUpdater.php index 9dfbff8..96eb3bb 100644 --- a/includes/installer/MysqlUpdater.php +++ b/includes/installer/MysqlUpdater.php @@ -249,6 +249,8 @@ array( 'addIndex', 'logging', 'log_user_text_type_time', 'patch-logging_user_text_type_time_index.sql' ), array( 'addIndex', 'logging', 'log_user_text_time', 'patch-logging_user_text_time_index.sql' ), array( 'addField', 'page', 'page_links_updated', 'patch-page_links_updated.sql' ), + array( 'dropField', 'page', 'page_restrictions', 'patch-drop-page_restrictions.sql' ), + ); } diff --git a/includes/installer/SqliteUpdater.php b/includes/installer/SqliteUpdater.php index 3db3758..e70ee68 100644 --- a/includes/installer/SqliteUpdater.php +++ b/includes/installer/SqliteUpdater.php @@ -126,6 +126,8 @@ array( 'addIndex', 'logging', 'log_user_text_type_time', 'patch-logging_user_text_type_time_index.sql' ), array( 'addIndex', 'logging', 'log_user_text_time', 'patch-logging_user_text_time_index.sql' ), array( 'addField', 'page', 'page_links_updated', 'patch-page_links_updated.sql' ), + array( 'dropField', 'page', 'page_restrictions', 'patch-drop-page_restrictions.sql' ), + ); } diff --git a/maintenance/archives/patch-drop-page_restrictions.sql b/maintenance/archives/patch-drop-page_restrictions.sql new file mode 100644 index 0000000..32c5e9e --- /dev/null +++ b/maintenance/archives/patch-drop-page_restrictions.sql @@ -0,0 +1,3 @@ +-- page_restrictions is superseded by the page_restriction table, delete it + +ALTER TABLE /*$wgDBprefix*/page DROP COLUMN page_restrictions; diff --git a/maintenance/sqlite/archives/patch-drop-page_restrictions.sql b/maintenance/sqlite/archives/patch-drop-page_restrictions.sql new file mode 100644 index 0000000..6aec5c2 --- /dev/null +++ b/maintenance/sqlite/archives/patch-drop-page_restrictions.sql @@ -0,0 +1,29 @@ +-- page_restrictions is superseded by the page_restriction table, hence delete it + +CREATE TABLE /*_*/page_tmp( + page_id int unsigned NOT NULL PRIMARY KEY AUTO_INCREMENT, + page_namespace int NOT NULL, + page_title varchar(255) binary NOT NULL, + page_counter bigint unsigned NOT NULL default 0, + page_is_redirect tinyint unsigned NOT NULL default 0, + page_is_new tinyint unsigned NOT NULL default 0, + page_random real unsigned NOT NULL, + page_touched binary(14) NOT NULL default '', + page_links_updated varbinary(14) NULL default NULL, + page_latest int unsigned NOT NULL, + page_len int unsigned NOT NULL, + page_content_model varbinary(32) DEFAULT NULL +)/*$wgDBTableOptions*/; + +INSERT INTO /*_*/page_tmp + SELECT page_id, page_namespace, page_title, page_counter, page_is_redirect, page_is_new, page_random, page_touched, page_links_updated, page_content_model, page_latest, page_len + FROM /*_*/page; + +DROP TABLE /*_*/page; + +ALTER TABLE /*_*/page_tmp RENAME TO /*_*/page; + +CREATE UNIQUE INDEX /*i*/name_title ON /*_*/page (page_namespace,page_title); +CREATE INDEX /*i*/page_random ON /*_*/page (page_random); +CREATE INDEX /*i*/page_len ON /*_*/page (page_len); +CREATE INDEX /*i*/page_redirect_namespace_len ON /*_*/page (page_is_redirect, page_namespace, page_len); \ No newline at end of file diff --git a/maintenance/tables.sql b/maintenance/tables.sql index fb2f0e1..4e9fd50 100644 --- a/maintenance/tables.sql +++ b/maintenance/tables.sql @@ -232,9 +232,7 @@ -- Spaces are transformed into underscores in title storage. page_title varchar(255) binary NOT NULL, - -- Comma-separated set of permission keys indicating who - -- can move or edit the page. - page_restrictions tinyblob NOT NULL, + -- Number of times this page has been viewed. page_counter bigint unsigned NOT NULL default 0, -- To view, visit https://gerrit.wikimedia.org/r/108219 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I1509ad3cc9a99eeff7df4cfc548dd1640053ccc7 Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/core Gerrit-Branch: master Gerrit-Owner: Tinaj1234 <tinajohnson.1...@gmail.com> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits