follow up r76111. I had picked the wrong timedifference for the filecache.
[lhc/web/wiklou.git] / includes / Category.php
index 44f266e..614933f 100644 (file)
@@ -245,28 +245,33 @@ class Category {
                if ( wfReadOnly() ) {
                        return false;
                }
-               $dbw = wfGetDB( DB_MASTER );
-               $dbw->begin();
+
                # Note, we must use names for this, since categorylinks does.
                if ( $this->mName === null ) {
                        if ( !$this->initialize() ) {
                                return false;
                        }
-               } else {
-                       # Let's be sure that the row exists in the table.  We don't need to
-                       # do this if we got the row from the table in initialization!
-                       $seqVal = $dbw->nextSequenceValue( 'category_cat_id_seq' );
-                       $dbw->insert(
-                               'category',
-                               array(
-                                       'cat_id' => $seqVal,
-                                       'cat_title' => $this->mName
-                               ),
-                               __METHOD__,
-                               'IGNORE'
-                       );
                }
 
+               $dbw = wfGetDB( DB_MASTER );
+               $dbw->begin();
+
+               # Insert the row if it doesn't exist yet (e.g., this is being run via
+               # update.php from a pre-1.16 schema).  TODO: This will cause lots and
+               # lots of gaps on some non-MySQL DBMSes if you run populateCategory.php
+               # repeatedly.  Plus it's an extra query that's unneeded almost all the
+               # time.  This should be rewritten somehow, probably.
+               $seqVal = $dbw->nextSequenceValue( 'category_cat_id_seq' );
+               $dbw->insert(
+                       'category',
+                       array(
+                               'cat_id' => $seqVal,
+                               'cat_title' => $this->mName
+                       ),
+                       __METHOD__,
+                       'IGNORE'
+               );
+
                $cond1 = $dbw->conditional( 'page_namespace=' . NS_CATEGORY, 1, 'NULL' );
                $cond2 = $dbw->conditional( 'page_namespace=' . NS_FILE, 1, 'NULL' );
                $result = $dbw->selectRow(