This introduce the syntax from aliased table names for aliased field
names into the abstract database layer:
array( 'alias' => 'field' ) gives 'field AS alias'
This patch also includes changes to query pages, api and some more
places to show, how the new syntax looks in "production".
This allow us to remove the "AS" for Non-PostgreSQL databases, if we
want that.
Change-Id: I5f0de1c2f29092c173aec3de93ffdef436799e8d
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.)
We would get some queries into the transaction ''sometimes'', depending if it was already initialised or not, and one code path left the transaction open.
None of the constructors will set $this->mTitle but not $this->mName,
and those are both private member variables. r69813 demonstrates that
no one had ever hit this code since it was first added in June 2008,
because it would have resulted in a fatal.
Updated all nextSequenceValue calls with new sequence names.
OverlordQ stated he'll handle changes to Postgres scripts.
Need someone to change DB2 scripts.
This is a global search and replace of NS_IMAGE and NS_IMAGE_TALK with NS_FILE and NS_FILE_TALK respectively in all core files, excluding those already updated in step 1 (r44004).
* Adds Category and CategoryList classes to represent categories themselves.
* Adds a category table, giving each category a name, ID, and counts of all members, subcats only, and files.
* Adds a maintenance script to populate the category table efficiently. This script is careful to wait for slaves and should be safe to run on a live database. The maintenance script's includes file is called by update.php.
* Until the category table is populated, the patch handles weird category table rows gracefully. It detects whether they're obviously impossible, and if so, it outputs appropriate messages.