Followup to r59818, change transcache timestamp field to be consistent with other...
authorOverlordQ <overlordq@users.mediawiki.org>
Wed, 9 Dec 2009 02:26:50 +0000 (02:26 +0000)
committerOverlordQ <overlordq@users.mediawiki.org>
Wed, 9 Dec 2009 02:26:50 +0000 (02:26 +0000)
includes/parser/Parser.php
maintenance/archives/patch-tc-timestamp.sql [new file with mode: 0644]
maintenance/updaters.inc

index de688e9..34f8bff 100644 (file)
@@ -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 (file)
index 0000000..45fe13f
--- /dev/null
@@ -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');
index 5708e48..bdda7f3 100644 (file)
@@ -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