I suspect the delimiter switch is not being handled by the code that splits
the file into statements, so the procedure definition gets split at the
first semicolon.

-- brion
On Jul 28, 2011 3:55 AM, "Robert Vogel" <vo...@hallowelt.biz> wrote:
> Hi Roan,
>
> thanks for the quick reply. This is (one of) the statement(s) we've got a
problem with.
>
> ------------------
>
> DROP PROCEDURE IF EXISTS `insertfile_getFilePosition`;
> DELIMITER $$
> CREATE PROCEDURE `insertfile_getFilePosition`(filename VARCHAR(255))
> BEGIN
> SELECT tmp.rank FROM
> (SELECT @row:=@row+1 rank, i.img_name
> FROM /*$wgDBprefix*/image i, (SELECT @row:=0) r
> WHERE (i.img_major_mime != 'image' AND i.img_minor_mime != 'tiff')
> ORDER BY i.img_name ASC) tmp
> WHERE tmp.img_name = filename;
> END
> $$
> DELIMITER ;
>
> ------------------
>
> If provided to the SQL Database directly, it works. But the update.php
throws a syntax error.
> In general, is it possible to provide stored procedures this way?
> Could there be a problem with the way the sql-file is read?
>
> Greetings,
>
> Robert Vogel
> Social Web Technologien
> Softwareentwicklung
> Hallo Welt! - Medienwerkstatt GmbH
>
>
> __________________________________
>
> Untere Bachgasse 15
> 93047 Regensburg
>
> Tel. +49 (0) 941 - 56 95 94 98
> Fax +49 (0) 941 - 50 27 58 13
>
> www.hallowelt.biz
> vo...@hallowelt.biz
>
>
> Sitz: Regensburg
> Amtsgericht: Regensburg
> Handelsregister: HRB 10467
> E.USt.Nr.: DE 253050833
> Geschäftsführer: Anja Ebersbach, Markus Glaser, Dr. Richard Heigl, Radovan
Kubani
>
> On Wed, 27 Jul 2011 at 22:16 PM, Roan Kattouw <roan.katt...@gmail.com>
wrote:
>>On Wed, Jul 27, 2011 at 12:47 PM, Robert Vogel <vo...@hallowelt.biz>
wrote:
>>> Hello everybody!
>>>
>>> At my company we develop extensions for MediaWiki. We use the
"LoadExtensionSchemaUpdates" hook to create tables with the
"maintenance/update.php" script.
>>> Recently we faced the question whether it is possible to have stored
procedures/functions in an extensions SQL-File, or not. We tried it out and
it didn't work for us. The update.php says we've got an error in the SQL
syntax, but there isn't one.
>>>
>>> Can anybody help us? Is it possible to provide stored procedures to the
database using the update.php? Is there an example anywhere? Thx.
>>>
>>The SQL syntax error message comes from the database engine, not from
MediaWiki. So if it tells you there's an SQL syntax error, there's a syntax
error for sure. What you should look at:
>>1. does the DB backend you connect to support the syntax you're using?
>>Infamously, MySQL 4.0 will reject anything containing subqueries as a
syntax error, because subquery support wasn't introduced until 4.1 if memory
serves 2. is MediaWiki connecting to the DB that you think it's connecting
to? There might be a version-triggered error like #1 above, but you might
not notice if you're connecting to a different version than MediaWiki is 3.
are you using magic phrases like /*_*/, /*$wgDBTablePrefix*/, /*i*/ or
/*$wgDBTableOptions*/ ? MediaWiki substitutes these before sending the SQL
to the DB backend, so make sure you test your queries with these
substitutions applied
>>
>>Roan Kattouw (Catrope)
>
> _______________________________________________
> Wikitech-l mailing list
> Wikitech-l@lists.wikimedia.org
> https://lists.wikimedia.org/mailman/listinfo/wikitech-l
_______________________________________________
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Reply via email to