diff options
author | Brion Vibber <brion@users.mediawiki.org> | 2005-08-17 08:43:48 +0000 |
---|---|---|
committer | Brion Vibber <brion@users.mediawiki.org> | 2005-08-17 08:43:48 +0000 |
commit | 59db0ac6d13b75f3dd348d856325968d41db99aa (patch) | |
tree | 76a13eda2759d77a6c5f2f3d9a50f267cea611ac | |
parent | 4ddf1bdcbe23d9a29f179f39e9bfa6b2648360d8 (diff) | |
download | mediawikicore-59db0ac6d13b75f3dd348d856325968d41db99aa.tar.gz mediawikicore-59db0ac6d13b75f3dd348d856325968d41db99aa.zip |
Use null in wl_notificationtimestamp! The database provides this for a reason.
Can now add items to one's watchlist on MySQL again.
Notes
Notes:
http://mediawiki.org/wiki/Special:Code/MediaWiki/10579
-rw-r--r-- | maintenance/archives/patch-email-notification.sql | 2 | ||||
-rw-r--r-- | maintenance/archives/patch-watchlist-null.sql | 9 | ||||
-rw-r--r-- | maintenance/tables.sql | 3 | ||||
-rw-r--r-- | maintenance/updaters.inc | 18 |
4 files changed, 29 insertions, 3 deletions
diff --git a/maintenance/archives/patch-email-notification.sql b/maintenance/archives/patch-email-notification.sql index 02a32a07e7c9..f9bc0440bade 100644 --- a/maintenance/archives/patch-email-notification.sql +++ b/maintenance/archives/patch-email-notification.sql @@ -8,4 +8,4 @@ -- ("notification flags") at once by clicking the new button on his/her watchlist page. -- T. Gries/M. Arndt 11.09.2004 - December 2004 -ALTER TABLE /*$wgDBprefix*/watchlist ADD (wl_notificationtimestamp varchar(14) binary NOT NULL default '0'); +ALTER TABLE /*$wgDBprefix*/watchlist ADD (wl_notificationtimestamp varchar(14) binary); diff --git a/maintenance/archives/patch-watchlist-null.sql b/maintenance/archives/patch-watchlist-null.sql new file mode 100644 index 000000000000..37ffc16351cd --- /dev/null +++ b/maintenance/archives/patch-watchlist-null.sql @@ -0,0 +1,9 @@ +-- Set up wl_notificationtimestamp with NULL support. +-- 2005-08-17 + +ALTER TABLE /*$wgDBprefix*/watchlist + CHANGE wl_notificationtimestamp wl_notificationtimestamp varchar(14) binary; + +UPDATE /*$wgDBprefix*/watchlist + SET wl_notificationtimestamp=NULL + WHERE wl_notificationtimestamp='0'; diff --git a/maintenance/tables.sql b/maintenance/tables.sql index 144eb57896a9..4f9a26f5b3f7 100644 --- a/maintenance/tables.sql +++ b/maintenance/tables.sql @@ -662,8 +662,7 @@ CREATE TABLE /*$wgDBprefix*/watchlist ( -- Timestamp when user was last sent a notification e-mail; -- cleared when the user visits the page. - -- FIXME: add proper null support etc - wl_notificationtimestamp varchar(14) binary NOT NULL default '0', + wl_notificationtimestamp varchar(14) binary, UNIQUE KEY (wl_user, wl_namespace, wl_title), KEY namespace_title (wl_namespace,wl_title) diff --git a/maintenance/updaters.inc b/maintenance/updaters.inc index 5cde1e51b3c3..07bc251e2e5f 100644 --- a/maintenance/updaters.inc +++ b/maintenance/updaters.inc @@ -629,6 +629,22 @@ function do_user_groups_reformat() { } +function do_watchlist_null() { + # Make sure wl_notificationtimestamp can be NULL, + # and update old broken items. + global $wgDatabase; + $info = $wgDatabase->fieldInfo( 'watchlist', 'wl_notificationtimestamp' ); + + if( $info->not_null ) { + echo "Making wl_notificationtimestamp nullable... "; + dbsource( 'maintenance/archives/patch-watchlist-null.sql', $wgDatabase ); + echo "ok\n"; + } else { + echo "...wl_notificationtimestamp is already nullable.\n"; + } + +} + function do_all_updates() { global $wgNewTables, $wgNewFields, $wgRenamedTables; @@ -670,6 +686,8 @@ function do_all_updates() { do_user_unique_update(); flush(); do_user_groups_update(); flush(); + + do_watchlist_null(); flush(); initialiseMessages(); flush(); } |