Tim Bunce wrote: > > On Mon, Mar 04, 2002 at 08:50:45AM -0800, Jeff Zucker wrote: > > > Hmm, I just checked the SQL92 standard and if I'm reading it correctly > > the situation is ugly. Section 5.2.13 appears to say that a regular > > identifier and a delimited identifier are equivalent if the *upper case* > > version of the regular identifier compares *in a case sensitive manor* > > to the delimited identifier. > > Got a URL?
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>". As I understand that, it means regular identifiers match delimited identifiers only if the delimited identifier is all upper case and the regular identifier, when uppercase is equal to it. This would be regardless of the value of SQL_IDENTIFIER_CASE. > Why not go the SQL_IDENTIFIER_CASE = SQL_IC_MIXED route and say > that BooG == "BooG". That's fairly natural and obvious and I think > it would cause least problems in the long run. And wouldn't that > also suit DBD::CSV users? That makes sense but I think the paragraph above means something like this: boog <> "boog" BOOG <> "boog" boog == "BOOG" BOOG == "BOOG" -- Jeff