http://www.mediawiki.org/wiki/Special:Code/MediaWiki/90024

Revision: 90024
Author:   aaron
Date:     2011-06-14 00:30:04 +0000 (Tue, 14 Jun 2011)
Log Message:
-----------
* Moved stats storage to new table. This makes adding stats easier and allows 
for historical stats.
* Added new FlaggedRevsStats class
* Track sample size for review lag data (not displayed yet)

Modified Paths:
--------------
    trunk/extensions/FlaggedRevs/FlaggedRevs.php
    trunk/extensions/FlaggedRevs/dataclasses/FlaggedRevs.hooks.php
    trunk/extensions/FlaggedRevs/maintenance/updateStats.inc
    
trunk/extensions/FlaggedRevs/presentation/specialpages/reports/ValidationStatistics_body.php
    trunk/extensions/FlaggedRevs/schema/FlaggedRevsUpdater.hooks.php
    trunk/extensions/FlaggedRevs/schema/mysql/FlaggedRevs.sql

Added Paths:
-----------
    trunk/extensions/FlaggedRevs/dataclasses/FlaggedRevsStats.php
    trunk/extensions/FlaggedRevs/schema/mysql/patch-flaggedrevs_statistics.sql
    
trunk/extensions/FlaggedRevs/schema/postgres/patch-flaggedrevs_statistics.sql

Modified: trunk/extensions/FlaggedRevs/FlaggedRevs.php
===================================================================
--- trunk/extensions/FlaggedRevs/FlaggedRevs.php        2011-06-14 00:18:16 UTC 
(rev 90023)
+++ trunk/extensions/FlaggedRevs/FlaggedRevs.php        2011-06-14 00:30:04 UTC 
(rev 90024)
@@ -248,6 +248,7 @@
 $wgAutoloadClasses['FlaggedPageConfig'] = $accessDir . 'FlaggedPageConfig.php';
 $wgAutoloadClasses['FlaggedRevsLog'] = $accessDir . 'FlaggedRevsLog.php';
 $wgAutoloadClasses['FRInclusionCache'] = $accessDir . 'FRInclusionCache.php';
+$wgAutoloadClasses['FlaggedRevsStats'] = $accessDir . 'FlaggedRevsStats.php';
 # Data object classes...
 $wgAutoloadClasses['FRExtraCacheUpdate'] = $accessDir . 
'FRExtraCacheUpdate.php';
 $wgAutoloadClasses['FRExtraCacheUpdateJob'] = $accessDir . 
'FRExtraCacheUpdate.php';

Modified: trunk/extensions/FlaggedRevs/dataclasses/FlaggedRevs.hooks.php
===================================================================
--- trunk/extensions/FlaggedRevs/dataclasses/FlaggedRevs.hooks.php      
2011-06-14 00:18:16 UTC (rev 90023)
+++ trunk/extensions/FlaggedRevs/dataclasses/FlaggedRevs.hooks.php      
2011-06-14 00:30:04 UTC (rev 90024)
@@ -261,12 +261,12 @@
 
                static $pcCounts = null;
                if ( !$pcCounts ) {
-                       $dbr = wfGetDB( DB_SLAVE );
-                       $res = $dbr->select( 'flaggedrevs_stats', '*', array(), 
__METHOD__ );
+                       $stats = FlaggedRevsStats::getLatestStats();
+                       $reviewedPerNS = $stats['reviewedPages-NS'];
                        $totalCount = 0;
-                       foreach( $res as $row ) {
-                               $nsList[ "ns-{$row->namespace}" ] = 
$row->reviewed;
-                               $totalCount += $row->reviewed;
+                       foreach ( $reviewedPerNS as $ns => $reviewed ) {
+                               $nsList[ "ns-{$ns}" ] = $reviewed;
+                               $totalCount += $reviewed;
                        }
                        $nsList[ 'all' ] = $totalCount;
                }

Added: trunk/extensions/FlaggedRevs/dataclasses/FlaggedRevsStats.php
===================================================================
--- trunk/extensions/FlaggedRevs/dataclasses/FlaggedRevsStats.php               
                (rev 0)
+++ trunk/extensions/FlaggedRevs/dataclasses/FlaggedRevsStats.php       
2011-06-14 00:30:04 UTC (rev 90024)
@@ -0,0 +1,51 @@
+<?php
+/**
+ * FlaggedRevs stats functions
+ */
+class FlaggedRevsStats {
+       /*
+        * Get latest FR-related stats
+        * @return Array of current FR stats
+        */
+       public static function getLatestStats() {
+               $dbr = wfGetDB( DB_SLAVE );
+               $dbTs = $dbr->selectField( 'flaggedrevs_statistics', 
'MAX(frs_timestamp)' );
+               $res = $dbr->select( 'flaggedrevs_statistics',
+                       array( 'frs_stat_key', 'frs_stat_val' ),
+                       array( 'frs_timestamp' => $dbTs ),
+                       __METHOD__
+               );
+
+               $data = array();
+               $data['reviewLag-sampleSize'] = '-';
+               $data['reviewLag-average'] = '-';
+               $data['reviewLag-median'] = '-';
+               $data['reviewLag-percentiles'] = array();
+               $data['totalPages-NS'] = array();
+               $data['reviewedPages-NS'] = array();
+               $data['syncedPages-NS'] = array();
+               $data['pendingLag-average'] = '-';
+               $data['statTimestamp'] = wfTimestamp( TS_MW, $dbTs );
+
+               foreach( $res as $row ) {
+                       $key = explode( ':', $row->frs_stat_key );
+                       switch ( $key[0] ) {
+                               case 'reviewLag-sampleSize':
+                               case 'reviewLag-average':
+                               case 'reviewLag-median':
+                               case 'pendingLag-average':
+                                       $data[$key[0]] = 
(int)$row->frs_stat_val;
+                                       break;
+                               case 'reviewLag-percentile': // <stat 
name,percentile)
+                                       $data[$key[0]][$key[1]] = 
(int)$row->frs_stat_val;
+                                       break;
+                               case 'totalPages-NS': // <stat name,namespace)
+                               case 'reviewedPages-NS': // <stat 
name,namespace)
+                               case 'syncedPages-NS': // <stat name,namespace)
+                                       $data[$key[0]][$key[1]] = 
(int)$row->frs_stat_val;
+                                       break;
+                       }
+               }
+               return $data;
+       }
+}


Property changes on: 
trunk/extensions/FlaggedRevs/dataclasses/FlaggedRevsStats.php
___________________________________________________________________
Added: svn:eol-style
   + native

Modified: trunk/extensions/FlaggedRevs/maintenance/updateStats.inc
===================================================================
--- trunk/extensions/FlaggedRevs/maintenance/updateStats.inc    2011-06-14 
00:18:16 UTC (rev 90023)
+++ trunk/extensions/FlaggedRevs/maintenance/updateStats.inc    2011-06-14 
00:30:04 UTC (rev 90024)
@@ -52,51 +52,62 @@
                array( 'USE INDEX' => array('flaggedpages' => 
'fp_pending_since') )
        );
        # Get wait times for anon edits...
-       list( $aveRT, $medianRT, $rPerTable ) = getAveReviewTimesAnons( $dbr, 
$dbCache );
+       list( $aveRT, $medianRT, $rPerTable, $rSize ) = getAveReviewTimesAnons( 
$dbr, $dbCache );
 
        // Save the data...
-       // @TODO: new permanent schema
        #echo "\nAve=".($aveRT/3600)." Med=".($medianRT/3600)."\n";
        $dbw = wfGetDB( DB_MASTER );
-       // Make sure the master has flaggedrevs_stats and _stats2
-       if ( !$dbw->tableExists( 'flaggedrevs_stats' ) ||
-               !$dbw->tableExists( 'flaggedrevs_stats2' ) )
-       {
-               print( "Need to run update.php to create flaggedrevs_stats and 
flaggedrevs_stats2. Stopping." );
-               die( 1 );
+       // The timestamp to identify this whole batch of data
+       $encDataTimestamp = $dbw->timestamp();
+
+       $dataSet = array();
+       // All-namespace percentiles...
+       foreach( $rPerTable as $percentile => $seconds ) {
+               $dataSet[] = array(
+                       'frs_stat_key' => 
'reviewLag-percentile:'.(int)$percentile,
+                       'frs_stat_val'  => $seconds,
+                       'frs_timestamp' => $encDataTimestamp );
        }
-       $dbw->begin();
-       // Save/cache percentiles
-       $key = wfMemcKey( 'flaggedrevs', 'reviewPercentiles' );
-       $dbCache->set( $key, $rPerTable, 30*24*3600 );
-       // Per-namespace stats...
+       // Sample size...
+       $dataSet[] = array(
+               'frs_stat_key' => 'reviewLag-sampleSize',
+               'frs_stat_val'  => $rSize,
+               'frs_timestamp' => $encDataTimestamp );
+
+       // All-namespace ave/med review lag & ave pending lag stats...
+       $dataSet[] = array(
+               'frs_stat_key' => 'reviewLag-average',
+               'frs_stat_val'  => $aveRT,
+               'frs_timestamp' => $encDataTimestamp );
+       $dataSet[] = array(
+               'frs_stat_key' => 'reviewLag-median',
+               'frs_stat_val'  => $medianRT,
+               'frs_timestamp' => $encDataTimestamp );
+       $dataSet[] = array(
+               'frs_stat_key' => 'pendingLag-average',
+               'frs_stat_val'  => $avePET,
+               'frs_timestamp' => $encDataTimestamp );
+
+       // Per-namespace total/reviewed/synced stats...
        foreach( $wgFlaggedRevsNamespaces as $namespace ) {
-               $dbw->replace( 'flaggedrevs_stats',
-                       array( 'namespace' ),
-                       array( 'namespace' => intval($namespace),
-                               'total'    => isset($ns_total[$namespace]) ? 
$ns_total[$namespace] : 0,
-                               'reviewed' => isset($ns_reviewed[$namespace]) ? 
$ns_reviewed[$namespace] : 0,
-                               'synced'   => isset($ns_synced[$namespace]) ? 
$ns_synced[$namespace] : 0
-                       ),
-                       __METHOD__
-               );
+               $dataSet[] = array(
+                       'frs_stat_key' => 'totalPages-NS:'.(int)$namespace,
+                       'frs_stat_val'  => isset($ns_total[$namespace]) ? 
$ns_total[$namespace] : 0,
+                       'frs_timestamp' => $encDataTimestamp );
+               $dataSet[] = array(
+                       'frs_stat_key' => 'reviewedPages-NS:'.(int)$namespace,
+                       'frs_stat_val'  => isset($ns_reviewed[$namespace]) ? 
$ns_reviewed[$namespace] : 0,
+                       'frs_timestamp' => $encDataTimestamp );
+               $dataSet[] = array(
+                       'frs_stat_key' => 'syncedPages-NS:'.(int)$namespace,
+                       'frs_stat_val'  => isset($ns_synced[$namespace]) ? 
$ns_synced[$namespace] : 0,
+                       'frs_timestamp' => $encDataTimestamp );
        }
-       // Overall stats...
-       $dbw->replace( 'flaggedrevs_stats2',
-               array( 'stat_id' ),
-               array( 'stat_id' => 1,
-                       'ave_review_time' => $aveRT,
-                       'med_review_time' => $medianRT,
-                       'ave_pending_time' => $avePET
-               ),
-               __METHOD__
-       );
-       // Update timestamp
-       $dbw->replace( 'querycache_info', array('qci_type'),
-               array('qci_type' => 'validationstats', 'qci_timestamp' => 
$dbw->timestamp()),
-               __METHOD__
-       );
+
+       $dbw->begin();
+       $dbw->insert( 'flaggedrevs_statistics', $dataSet, __FUNCTION__, array( 
'IGNORE' ) );
        $dbw->commit();
+
        // Stats are now up to date!
        $key = wfMemcKey( 'flaggedrevs', 'statsUpdated' );
        $dbCache->set( $key, '1', $wgFlaggedRevsStatsAge );
@@ -252,5 +263,5 @@
                }
                echo "(sampled ".count($times)." edits)...";
        }
-       return array($aveRT,$medianRT,$rPerTable);
+       return array($aveRT,$medianRT,$rPerTable,count($times));
 }

Modified: 
trunk/extensions/FlaggedRevs/presentation/specialpages/reports/ValidationStatistics_body.php
===================================================================
--- 
trunk/extensions/FlaggedRevs/presentation/specialpages/reports/ValidationStatistics_body.php
        2011-06-14 00:18:16 UTC (rev 90023)
+++ 
trunk/extensions/FlaggedRevs/presentation/specialpages/reports/ValidationStatistics_body.php
        2011-06-14 00:30:04 UTC (rev 90024)
@@ -1,6 +1,8 @@
 <?php
 
 class ValidationStatistics extends IncludableSpecialPage {
+       protected $latestData = null;
+
        public function __construct() {
                parent::__construct( 'ValidationStatistics' );
        }
@@ -18,6 +20,7 @@
                $mt = $this->getMeanReviewWait();
                $mdt = $this->getMedianReviewWait();
                $pt = $this->getMeanPendingWait();
+               $pData = $this->getPercentiles();
                $timestamp = $this->getLastUpdate();
 
                $wgOut->addWikiMsg( 'validationstatistics-users',
@@ -28,13 +31,10 @@
                        return false;
                }
 
-               $key = wfMemcKey( 'flaggedrevs', 'reviewPercentiles' );
-               $dbCache = wfGetCache( CACHE_DB );
-               $data = $dbCache->get( $key );
                # Is there a review time table available?
-               if ( is_array( $data ) && count( $data ) ) {
+               if ( is_array( $pData ) && count( $pData ) ) {
                        $headerRows = $dataRows = '';
-                       foreach ( $data as $percentile => $perValue ) {
+                       foreach ( $pData as $percentile => $perValue ) {
                                $headerRows .= "<th>P<sub>" . intval( 
$percentile ) . "</sub></th>";
                                $dataRows .= '<td>' . 
$wgLang->formatTimePeriod( $perValue ) . '</td>';
                        }
@@ -82,36 +82,39 @@
                $wgOut->addHTML( "</tr>\n" );
                $namespaces = FlaggedRevs::getReviewNamespaces();
                foreach ( $namespaces as $namespace ) {
-                       $row = $this->db->selectRow( 'flaggedrevs_stats', '*',
-                               array( 'namespace' => $namespace ) );
-                       if( !$row ) continue; // NS added to config recently?
+                       $total = $this->getTotalPages( $namespace );
+                       $reviewed = $this->getReviewedPages( $namespace );
+                       $synced = $this->getSyncedPages( $namespace );
+                       if ( $total === '-' || $reviewed === '-' || $synced === 
'-' ) {
+                               continue; // NS added to config recently?
+                       }
 
-                       $NsText = $wgContLang->getFormattedNsText( 
$row->namespace );
+                       $NsText = $wgContLang->getFormattedNsText( $namespace );
                        $NsText = $NsText ? $NsText : wfMsgHTML( 
'blanknamespace' );
 
-                       $percRev = intval( $row->total ) == 0
+                       $percRev = intval( $total ) == 0
                                ? '-' // devision by zero
                                : wfMsg( 'parentheses',
                                        wfMsgExt( 'percent', array( 
'escapenoentities' ),
                                                $wgLang->formatnum( sprintf( 
'%4.2f',
-                                                       100 * intval( 
$row->reviewed ) / intval( $row->total ) ) )
+                                                       100 * intval( $reviewed 
) / intval( $total ) ) )
                                        )
                                );
-                       $percLatest = intval( $row->total ) == 0
+                       $percLatest = intval( $total ) == 0
                                ? '-' // devision by zero
                                : wfMsg( 'parentheses', 
                                        wfMsgExt( 'percent', array( 
'escapenoentities' ),
                                                $wgLang->formatnum( sprintf( 
'%4.2f',
-                                                       100 * intval( 
$row->synced ) / intval( $row->total ) ) )
+                                                       100 * intval( $synced ) 
/ intval( $total ) ) )
                                        )
                                );
-                       $percSynced = intval( $row->reviewed ) == 0
+                       $percSynced = intval( $reviewed ) == 0
                                ? '-' // devision by zero
                                : wfMsgExt( 'percent', array( 
'escapenoentities' ),
                                        $wgLang->formatnum( sprintf( '%4.2f',
-                                               100 * intval( $row->synced ) / 
intval( $row->reviewed ) ) )
+                                               100 * intval( $synced ) / 
intval( $reviewed ) ) )
                                );
-                       $outdated = intval( $row->reviewed ) - intval( 
$row->synced );
+                       $outdated = intval( $reviewed ) - intval( $synced );
                        $outdated = $wgLang->formatnum( max( 0, $outdated ) ); 
// lag between queries
 
                        $wgOut->addHTML(
@@ -120,14 +123,14 @@
                                                htmlspecialchars( $NsText ) .
                                        "</td>
                                        <td>" .
-                                               htmlspecialchars( 
$wgLang->formatnum( $row->total ) ) .
+                                               htmlspecialchars( 
$wgLang->formatnum( $total ) ) .
                                        "</td>
                                        <td>" .
-                                               htmlspecialchars( 
$wgLang->formatnum( $row->reviewed ) .
+                                               htmlspecialchars( 
$wgLang->formatnum( $reviewed ) .
                                                        
$wgContLang->getDirMark() ) . " <i>$percRev</i>
                                        </td>
                                        <td>" .
-                                               htmlspecialchars( 
$wgLang->formatnum( $row->synced ) .
+                                               htmlspecialchars( 
$wgLang->formatnum( $synced ) .
                                                        
$wgContLang->getDirMark() ) . " <i>$percLatest</i>
                                        </td>
                                        <td>" .
@@ -193,10 +196,10 @@
        }
        
        protected function readyForQuery() {
-               if ( !$this->db->tableExists( 'flaggedrevs_stats' ) ) {
+               if ( !$this->db->tableExists( 'flaggedrevs_statistics' ) ) {
                        return false;
                } else {
-                       return ( 0 != $this->db->selectField( 
'flaggedrevs_stats', 'COUNT(*)' ) );
+                       return ( 0 != $this->db->selectField( 
'flaggedrevs_statistics', 'COUNT(*)' ) );
                }
        }
        
@@ -211,30 +214,59 @@
                        array( 'ug_group' => 'reviewer' ),
                        __METHOD__ );
        }
-       
+
+       protected function getLatestStats() {
+               if ( $this->latestData !== null ) {
+                       return $this->latestData;
+               }
+               $this->latestData = FlaggedRevsStats::getLatestStats();
+               return $this->latestData;
+       }
+
        protected function getMeanReviewWait() {
-               if ( !$this->db->tableExists( 'flaggedrevs_stats2' ) ) return 
'-';
-               $val = $this->db->selectField( 'flaggedrevs_stats2', 
'ave_review_time' );
-               return ( $val == false ? '-' : $val );
+               $stats = $this->getLatestStats();
+               return $stats['reviewLag-average'];
        }
        
        protected function getMedianReviewWait() {
-               if ( !$this->db->tableExists( 'flaggedrevs_stats2' ) ) return 
'-';
-               $val = $this->db->selectField( 'flaggedrevs_stats2', 
'med_review_time' );
-               return ( $val == false ? '-' : $val );
+               $stats = $this->getLatestStats();
+               return $stats['reviewLag-median'];
        }
        
        protected function getMeanPendingWait() {
-               if ( !$this->db->tableExists( 'flaggedrevs_stats2' ) ) return 
'-';
-               $val = $this->db->selectField( 'flaggedrevs_stats2', 
'ave_pending_time' );
-               return ( $val == false ? '-' : $val );
+               $stats = $this->getLatestStats();
+               return $stats['pendingLag-average'];
        }
+
+       protected function getTotalPages( $ns ) {
+               $stats = $this->getLatestStats();
+               return isset( $stats['totalPages-NS'][$ns] )
+                       ? $stats['totalPages-NS'][$ns]
+                       : '-';
+       }
        
+       protected function getReviewedPages( $ns ) {
+               $stats = $this->getLatestStats();
+               return isset( $stats['reviewedPages-NS'][$ns] )
+                       ? $stats['reviewedPages-NS'][$ns]
+                       : '-';
+       }
+
+       protected function getSyncedPages( $ns ) {
+               $stats = $this->getLatestStats();
+               return isset( $stats['syncedPages-NS'][$ns] )
+                       ? $stats['syncedPages-NS'][$ns]
+                       : '-';
+       }
+
+       protected function getPercentiles() {
+               $stats = $this->getLatestStats();
+               return $stats['reviewLag-percentile'];
+       }
+
        protected function getLastUpdate() {
-               if ( !$this->db->tableExists( 'querycache_info' ) ) return '-';
-               $val = $this->db->selectField( 'querycache_info', 
'qci_timestamp',
-                       array( 'qci_type' => 'validationstats' ) );
-               return ( $val == false ? '-' : $val );
+               $stats = $this->getLatestStats();
+               return $stats['statTimestamp'];
        }
        
        // top X reviewers in the last Y hours

Modified: trunk/extensions/FlaggedRevs/schema/FlaggedRevsUpdater.hooks.php
===================================================================
--- trunk/extensions/FlaggedRevs/schema/FlaggedRevsUpdater.hooks.php    
2011-06-14 00:18:16 UTC (rev 90023)
+++ trunk/extensions/FlaggedRevs/schema/FlaggedRevsUpdater.hooks.php    
2011-06-14 00:30:04 UTC (rev 90024)
@@ -29,12 +29,12 @@
                                'flaggedpage_config', 'fpc_level', 
"$base/patch-fpc_level.sql", true ) );
                        $du->addExtensionUpdate( array( 'addTable',
                                'flaggedpage_pending', 
"$base/patch-flaggedpage_pending.sql", true ) );
-                       $du->addExtensionUpdate( array( 'addTable',
-                               'flaggedrevs_stats', 
"$base/patch-flaggedrevs_stats.sql", true ) );
                        $du->addExtensionUpdate( array( 
'FlaggedRevsUpdaterHooks::doFlaggedImagesTimestampNULL',
                                "$base/patch-fi_img_timestamp.sql" ) );
                        $du->addExtensionUpdate( array( 
'FlaggedRevsUpdaterHooks::doFlaggedRevsRevTimestamp',
                                "$base/patch-fr_page_rev-index.sql" ) );
+                       $du->addExtensionUpdate( array( 'addTable',
+                               'flaggedrevs_statistics', 
"$base/patch-flaggedrevs_statistics.sql", true ) );
                } elseif ( $wgDBtype == 'postgres' ) {
                        $base = dirname( __FILE__ ) . '/postgres';
                        // Initial install tables (current schema)
@@ -59,11 +59,12 @@
                                'flaggedpage_config', 'fpc_level', "TEXT NULL" 
) );
                        $du->addExtensionUpdate( array( 'addTable',
                                'flaggedpage_pending', 
"$base/patch-flaggedpage_pending.sql", true ) );
-                       // @TODO: PG stats table???
                        $du->addExtensionUpdate( array( 
'FlaggedRevsUpdaterHooks::doFlaggedImagesTimestampNULL',
                                "$base/patch-fi_img_timestamp.sql" ) );
                        $du->addExtensionUpdate( array( 
'FlaggedRevsUpdaterHooks::doFlaggedRevsRevTimestamp',
                                "$base/patch-fr_page_rev-index.sql" ) );
+                       $du->addExtensionUpdate( array( 'addTable',
+                               'flaggedrevs_statistics', 
"$base/patch-flaggedrevs_statistics.sql", true ) );
                } elseif ( $wgDBtype == 'sqlite' ) {
                        $base = dirname( __FILE__ ) . '/mysql';
                        $du->addExtensionUpdate( array( 'addTable',

Modified: trunk/extensions/FlaggedRevs/schema/mysql/FlaggedRevs.sql
===================================================================
--- trunk/extensions/FlaggedRevs/schema/mysql/FlaggedRevs.sql   2011-06-14 
00:18:16 UTC (rev 90023)
+++ trunk/extensions/FlaggedRevs/schema/mysql/FlaggedRevs.sql   2011-06-14 
00:30:04 UTC (rev 90024)
@@ -139,16 +139,14 @@
   frp_user_params mediumblob NOT NULL
 ) /*$wgDBTableOptions*/;
 
-CREATE TABLE /*_*/flaggedrevs_stats (
-       namespace int unsigned NOT NULL DEFAULT 0 PRIMARY KEY,
-       total     int unsigned NOT NULL DEFAULT 0,
-       reviewed  int unsigned NOT NULL DEFAULT 0,
-       synced    int unsigned NOT NULL DEFAULT 0
+-- This stores overall stats
+CREATE TABLE /*_*/flaggedrevs_statistics (
+    -- Timestamp stat was recorded
+       frs_timestamp varbinary(14) NOT NULL,
+    -- Stat key name, colons separate paramaters
+    frs_stat_key varchar(255) NOT NULL,
+    -- Stat value as an integer
+    frs_stat_val integer unsigned NOT NULL,
+    PRIMARY KEY(frs_stat_key,frs_timestamp)
 ) /*$wgDBTableOptions*/;
-
-CREATE TABLE /*_*/flaggedrevs_stats2 (
-       stat_id          int unsigned NOT NULL DEFAULT 1 PRIMARY KEY,
-       ave_review_time  int unsigned NOT NULL DEFAULT 0,
-       med_review_time  int unsigned NOT NULL DEFAULT 0,
-       ave_pending_time int unsigned NOT NULL DEFAULT 0
-) /*$wgDBTableOptions*/;
+CREATE INDEX /*i*/frs_timestamp ON /*_*/flaggedrevs_statistics (frs_timestamp);

Added: 
trunk/extensions/FlaggedRevs/schema/mysql/patch-flaggedrevs_statistics.sql
===================================================================
--- trunk/extensions/FlaggedRevs/schema/mysql/patch-flaggedrevs_statistics.sql  
                        (rev 0)
+++ trunk/extensions/FlaggedRevs/schema/mysql/patch-flaggedrevs_statistics.sql  
2011-06-14 00:30:04 UTC (rev 90024)
@@ -0,0 +1,15 @@
+-- old format --
+DROP TABLE IF EXISTS /*_*/flaggedrevs_stats;
+DROP TABLE IF EXISTS /*_*/flaggedrevs_stats2;
+
+-- This stores overall stats
+CREATE TABLE /*_*/flaggedrevs_statistics (
+    -- Timestamp stat was recorded
+       frs_timestamp varbinary(14) NOT NULL,
+    -- Stat key name, colons separate paramaters
+    frs_stat_key varchar(255) NOT NULL,
+    -- Stat value as an integer
+    frs_stat_val integer unsigned NOT NULL,
+    PRIMARY KEY(frs_stat_key,frs_timestamp)
+) /*$wgDBTableOptions*/;
+CREATE INDEX /*i*/frs_timestamp ON /*_*/flaggedrevs_statistics (frs_timestamp);


Property changes on: 
trunk/extensions/FlaggedRevs/schema/mysql/patch-flaggedrevs_statistics.sql
___________________________________________________________________
Added: svn:eol-style
   + native

Added: 
trunk/extensions/FlaggedRevs/schema/postgres/patch-flaggedrevs_statistics.sql
===================================================================
--- 
trunk/extensions/FlaggedRevs/schema/postgres/patch-flaggedrevs_statistics.sql   
                            (rev 0)
+++ 
trunk/extensions/FlaggedRevs/schema/postgres/patch-flaggedrevs_statistics.sql   
    2011-06-14 00:30:04 UTC (rev 90024)
@@ -0,0 +1,11 @@
+-- old format --
+DROP TABLE IF EXISTS flaggedrevs_stats;
+DROP TABLE IF EXISTS flaggedrevs_stats2;
+
+CREATE TABLE flaggedrevs_statistics (
+       frs_timestamp TIMESTAMPTZ NOT NULL,
+    frs_stat_key TEXT NOT NULL,
+    frs_stat_val BIGINT NOT NULL,
+    PRIMARY KEY(frs_stat_key,frs_timestamp)
+) /*$wgDBTableOptions*/;
+CREATE INDEX frs_timestamp ON flaggedrevs_statistics (frs_timestamp);


Property changes on: 
trunk/extensions/FlaggedRevs/schema/postgres/patch-flaggedrevs_statistics.sql
___________________________________________________________________
Added: svn:eol-style
   + native


_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to