Update comment in Category.php
authorAryeh Gregor <simetrical@users.mediawiki.org>
Wed, 8 Sep 2010 18:11:28 +0000 (18:11 +0000)
committerAryeh Gregor <simetrical@users.mediawiki.org>
Wed, 8 Sep 2010 18:11:28 +0000 (18:11 +0000)
Per code review I gave on r72547.  I'm actually not sure how to rewrite
this so it works with all DBs -- a replace() variant that called
nextSequenceValue() if the row didn't already exist, and reused the
existing id otherwise, would perhaps be ideal.  (Speaking of which,
replace() needs to be properly factored out, with the DBMS-independent
version in DatabaseBase and the MySQL one in DatabaseMysql.)

includes/Category.php

index 1e49c5f..614933f 100644 (file)
@@ -256,8 +256,11 @@ class Category {
                $dbw = wfGetDB( DB_MASTER );
                $dbw->begin();
 
-               # 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!
+               # 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',