Re: [HACKERS] What can we learn from MySQL?
Stephan Szabo <sszabo@megazone.bigpanda.com>
From: Stephan Szabo <sszabo@megazone.bigpanda.com>
To: Shachar Shemesh <psql@shemesh.biz>
Cc: Robert Treat <xzilla@users.sourceforge.net>, Dennis Bjorklund <db@zigo.dhs.org>, Bruce Momjian <pgman@candle.pha.pa.us>, PostgreSQL-development <pgsql-hackers@postgresql.org>, PostgreSQL advocacy <pgsql-advocacy@postgresql.org>
Date: 2004-04-23T20:16:15Z
Lists: pgsql-hackers
On Fri, 23 Apr 2004, Shachar Shemesh wrote: > Stephan Szabo wrote: > > >I've tried just changing the parser to unconditionally casefold to upper. > >First thing that happens is that initdb breaks. In addition, you have > >potential issues with comparisons against the catalog's versions of > >standard functions as such if you allow the case folding to be changed > >after the catalogs are setup. > > > > > That's not the migration path I was thinking of. > > What I was thinking of was: > 1. Have a setting, probably per-session. Per database works too. > 2. Aside from the folder upper and folder lower, have a third option. > This is "fold upper, if fails, fold lower. If succeeds, issue a > warning". This should allow programs that rely on the folding (such as > initdb) to be debugged during the transition period. If you can do this in a clean fashion without tromping all around the code, that'd be reasonable, however, istm that you'd need to either pre-fold both directions from the given identifier string and pass an extra copy around or pass the original identifier and its quoted status and fold on use. I think either of these are likely to be very intrusive for what essentially amounts to a transitional feature. In addition, I'm not sure that this would always work in any case, since some of those usages may be quoted identifiers that were once generated from a case-folded string (for example, looking up a name in the catalogs and quoting it).