From: OverlordQ Date: Wed, 9 Dec 2009 02:26:50 +0000 (+0000) Subject: Followup to r59818, change transcache timestamp field to be consistent with other... X-Git-Tag: 1.31.0-rc.0~38592 X-Git-Url: http://git.cyclocoop.org/url?a=commitdiff_plain;h=8c0dbeb9285ea69c7ae240460871c79bfb9139e2;p=lhc%2Fweb%2Fwiklou.git Followup to r59818, change transcache timestamp field to be consistent with other timestamp fields, requires schema change --- diff --git a/includes/parser/Parser.php b/includes/parser/Parser.php index de688e9a3b..34f8bff37a 100644 --- a/includes/parser/Parser.php +++ b/includes/parser/Parser.php @@ -3172,14 +3172,11 @@ class Parser function fetchScaryTemplateMaybeFromCache($url) { global $wgTranscludeCacheExpiry; $dbr = wfGetDB(DB_SLAVE); + $tsCond = $dbr->timestamp( time() - $wgTranscludeCacheExpiry ); $obj = $dbr->selectRow('transcache', array('tc_time', 'tc_contents'), - array('tc_url' => $url)); + array('tc_url' => $url, "tc_time >= " . $dbr->addQuotes( $tsCond ) ) ); if ($obj) { - $time = $obj->tc_time; - $text = $obj->tc_contents; - if ($time && time() < $time + $wgTranscludeCacheExpiry ) { - return $text; - } + return $obj->tc_contents; } $text = Http::get($url); diff --git a/maintenance/archives/patch-tc-timestamp.sql b/maintenance/archives/patch-tc-timestamp.sql new file mode 100644 index 0000000000..45fe13f98f --- /dev/null +++ b/maintenance/archives/patch-tc-timestamp.sql @@ -0,0 +1,4 @@ +ALTER TABLE /*_*/transcache MODIFY tc_time varchar(14); +UPDATE /*_*/transcache SET tc_time = DATE_FORMAT(FROM_UNIXTIME(tc_time), "%Y%c%d%H%i%s"); + +INSERT INTO /*_*/updatelog VALUES ('convert transcache field'); diff --git a/maintenance/updaters.inc b/maintenance/updaters.inc index 5708e48104..bdda7f35a5 100644 --- a/maintenance/updaters.inc +++ b/maintenance/updaters.inc @@ -192,7 +192,8 @@ $wgUpdates = array( array( 'add_index', 'log_search', 'ls_field_val', 'patch-log_search-rename-index.sql' ), array( 'add_index', 'change_tag', 'change_tag_rc_tag', 'patch-change_tag-indexes.sql' ), array( 'add_field', 'redirect', 'rd_interwiki', 'patch-rd_interwiki.sql' ), - + array( 'do_update_transcache_field' ), + // version-independent searchindex setup, added in 1.16 array( 'sqlite_setup_searchindex' ), ), @@ -1342,6 +1343,18 @@ function rename_eu_wiki_id() { wfOut( "ok\n" ); } +function do_update_transcache_field() { + global $wgDatabase; + if( update_row_exists( 'convert transcache field' ) ) { + wfOut( "...transcache tc_time already converted.\n" ); + return; + } else { + wfOut( "Converting tc_time from int(11) to varchar(13)... " ); + $wgDatabase->sourceFile( archive( 'patch-tc-timestamp.sql' ) ); + wfOut( "ok\n" ); + } +} + /*********************************************************************** * Start PG stuff * TODO: merge with above