[Owncloud] oracle support

Thomas Müller thomas.mueller at tmit.eu
Mon Jul 23 19:32:38 UTC 2012


Look slike MDB2 has a solution for this:
http://pear.php.net/manual/en/package.database.mdb2.intro-quote.php

Take care,

Tom

Am Montag, dem 23.07.2012 um 20:12 schrieb Jörn Friedrich Dreyer:
> The problem: Oracle up-cases identifiers in queries that have not been 
> quoted:
> 
> SELECT user FROM oc_fscache
> 
> becomes
> 
> SELECT USER FROM OC_FSCACHE;
> 
> This causes problems as some of our queries use quotes and some don't, 
> resulting in strange errors where oracle dies on comparing strings with 
> integers ... yeah, welcome to debugging hell.
> 
> I already tried removing back ticks in OC_DB::processQuery() and setting 
> 'quote_identifier' = false for MDB2.  The idea was to use oracles 
> automatic uppercase conversion. MDB2 would not quote table names and 
> columns and oracle would create them up-cased. PDO statements would be 
> stripped of quotes and no further modifications would have been 
> necessary. Unfortunately, Oracle disallows the use of some registered 
> words like 'USER', 'SIZE', 'UID', and maybe others we use as column names.
> 
> The only other viable option I now see is forcing the use of back ticks 
> and lowercase for table AND column names. Not only when creating the 
> database with MDB2 (which is already the case) but in all queries. 
> Lowercase versions of user, uid and size do not collide with Oracle 
> reserved words. OC_DB::processQuery() can then change the quotation if 
> needed before executing a query with PDO. So, the general way things 
> work would not change. However, I would need to fix at least 248 matches 
> of ' *PREFIX*' and even more occurances of unescaped column names. In 
> the future we might add a code smell for unescaped SQL identifiers in 
> our CI server (hint hint ... this is a very good use case for CI by the 
> way).
> 
> I admit that adding backticks seems superflous and to my personal taste 
> even hinders readability, but I don't see another sane solution to 
> support oracle.
> 
> Maybe someone of you does?
>
> so long
> 
> Jörn
> 
> -- 
> Jörn Friedrich Dreyer (jfd at owncloud.com)
> Software Developer
> ownCloud GmbH
> 
> Your Data, Your Cloud, Your Way!
> 
> ownCloud GmbH, GF: Markus Rex, Holger Dyroff
> Schloßäckerstrasse 26a, 90443 Nürnberg, HRB 28050 (AG Nürnberg)
> 
> _______________________________________________
> Owncloud mailing list
> Owncloud at kde.org
> https://mail.kde.org/mailman/listinfo/owncloud



More information about the Owncloud mailing list