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);
--- /dev/null
+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');
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' ),
),
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