usages of -s and -n parameters depending on compression type
* (bug 13896) Rendering of devanagari numbers in automatic '#' number lists
* (bug 18704) Add an unique CSS class or ID to the tagfilter table row at RecentChanges
+* (bug 33689) Upgrade to 1.19 on Postgres fails due to incomplete query when
+ trying to defer foreign key for externallinks
=== API changes in 1.20 ===
* (bug 34316) Add ability to retrieve maximum upload size from MediaWiki API.
static function fromText( $db, $table, $field ) {
$q = <<<SQL
SELECT
- attnotnull, attlen, COALESCE(conname, '') AS conname,
+ attnotnull, attlen, conname AS conname,
COALESCE(condeferred, 'f') AS deferred,
COALESCE(condeferrable, 'f') AS deferrable,
CASE WHEN typname = 'int2' THEN 'smallint'
}
$this->output( "Altering column '$table.$field' to be DEFERRABLE INITIALLY DEFERRED\n" );
$conname = $fi->conname();
- $command = "ALTER TABLE $table DROP CONSTRAINT $conname";
- $this->db->query( $command );
- $command = "ALTER TABLE $table ADD CONSTRAINT $conname FOREIGN KEY ($field) REFERENCES $clause DEFERRABLE INITIALLY DEFERRED";
+ if ( $fi->conname() ) {
+ $conclause = "CONSTRAINT \"$conname\"";
+ $command = "ALTER TABLE $table DROP CONSTRAINT $conname";
+ $this->db->query( $command );
+ } else {
+ $this->output( "Column '$table.$field' does not have a foreign key constraint, will be added\n" );
+ $conclause = "";
+ }
+ $command = "ALTER TABLE $table ADD $conclause FOREIGN KEY ($field) REFERENCES $clause DEFERRABLE INITIALLY DEFERRED";
$this->db->query( $command );
}