Tim Bunce wrote:
> 
> On Wed, Mar 06, 2002 at 03:04:51PM -0800, Jeff Zucker wrote:
>
> > It's from the PDF of SQL92 I purchased from www.ansi.org.  But here's
> > the text:
> >
> >   13)
> >   A <regular identifier> and a <delimited identifier> are equiva-
> >   lent if the <identifier body> of the <regular identifier> (with
> >   every letter that is a lower-case letter replaced by the equiva-
> >   lent upper-case letter or letters) and the <delimited identifier
> >   body> of the <delimited identifier> (with all occurrences of
> >   <quote> replaced by <quote symbol> and all occurrences of <dou-
> >   blequote symbol> replaced by <double quote>), considered as
> >   the repetition of a <character string literal> that specifies a
> >   <character set specification> of SQL_TEXT and an implementation-
> >   defined collation that is sensitive to case, compare equally
> >   according to the comparison rules in Subclause 8.2, "<comparison
> >   predicate>".
> >
>
> Perhaps, but the paragraph above seems too daft to be worth living with :)

Aha, you know what, I think I just figured out why it isn't daft and why
your suggestion to use mixed case matching (BooB = "BooB") can't work:

Rule A - Regular identifiers are case INSENSITIVE
Rule B - Delimited identifiers are case SENSITIVE

Therefore, these are the same as each other:

   x1 boob
   x2 BooB
   x3 BOOB

And these are different from each other:

   y1 "boob"
   y2 "BooB"
   y3 "BOOB"

If we allow group x to be equivalent to group y on the basis of mixed
case, then we'd end up either with the three identifiers in group x
different from each other (a violation of rule A) or the 3 identifiers
in group y as the same as each other (a violation of rule B).  So we can
never use mixed case to determiine the equivalence.  So we have to
arbitrarily say that x1,x2,x3 as a group are all equal to one and only
one of group y, either the lower case or the upper case.  The standards
says that would be upper case to avoid confusion.

So, not so daft after all?

-- 
Jeff

Reply via email to