Last modified: 2011-05-15 11:31:06 UTC
I have an already existing Semantic MediaWiki site in PostgreSQL. When I upgraded to SMW 1.5.4, there were luckily no schema changes, because the "Initialise or upgrade tables" process fails. Here's the bizarre error message that the software spits out - apparently, someone's being oddly specific about quotes, and PostgreSQL has a problem with that: --------------- Setting up standard database configuration for SMW ... Selected storage engine is "SMWSQLStore2" (or an extension thereof) Checking table smw_ids ... Table already exists, checking structure ... Warning: pg_query() [function.pg-query]: Query failed: ERROR: syntax error at or near "\" LINE 6: case when a.attnotnull THEN \'NO\'::text else \'YES\'::tex... ^ in /usr/share/mediawiki/includes/db/DatabasePostgres.php on line 580 --------------- I use MediaWiki 1.15.5-1 (Debian packaged version), PHP 5.2.6 and PostgreSQL 8.4.2.
The problem is that getFields function in SemanticMediaWiki/includes/storage/SMW_SQLHelpers.php uses a heredoc for the SQL for the postgre branch, but the query text is escaping single quotes like it's a big block of single quote string. Which would have been painfully obvious if, before making a versioned release, a simple upgrade was run against a test postgresql installation :-/ I'll attach a patch against 1.5.5.1
Created attachment 8087 [details] Postgresql database upgrade fix
Thanks John, I'll review your patch and apply it so it's in the next release (and set up a PostGres install to test compatibility :)
*Bulk BZ Change: +Patch to open bugs with patches attached that are missing the keyword*
This should now be fixed, I installed SMW trunk on MW trunk using PostGres, and fixed the issues popping up both during the installation and upgrading process. This code will be in SMW 1.6.