[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