LucidDB / luciddb

DEFUNCT: See README
https://github.com/LucidDB/luciddb
Apache License 2.0
52 stars 24 forks source link

[FRG-78] Collation Clause Should be on Expression Instead of Identifier #792

Open dynamobi-build opened 12 years ago

dynamobi-build commented 12 years ago

[reporter="jvs", created="Fri, 17 Mar 2006 15:07:11 -0500 (GMT-05:00)"] Currently, the parser binds a COLLATE clause to an identifier. But SQL2003
Part 2 Section 6.28 says it's applicable to an entire character string expression
(nothing special about identifiers). So, we need a new operator to represent
it, and class SqlIdentifier should not have a collation attribute.

------- Comment #1 From John Sichi 2005-02-01 19:57 [reply] -------
I am deleting the current incorrect parser definitions, because they're getting
in the way for UDT DDL.

------- Comment #2 From John Sichi 2005-02-02 01:33 [reply] -------
I am disabling SqlParserTest.testLiteralCollate; please re-enable it once
fixed.

------- Comment #3 From John Sichi 2005-02-02 01:43 [reply] -------
Note that everything I said about identifiers goes for literals as well (e.g.
SqlCharStringLiteral shouldn't have a collation attribute).

------- Comment #4 From John Sichi 2005-02-02 01:51 [reply] -------
Also disabling a bunch of tests in SqlValidatorTest.

------- Comment #5 From Wael Chatila 2005-02-02 21:25 [reply] -------
accept

------- Comment #6 From John Sichi 2005-02-03 02:55 [reply] -------
Also disabled some tests in Rex2CalcPlanTest. All disabled tests are marked
with comment referring to dtbug 280.

------- Comment #7 From Stephan Zuercher 2005-06-01 08:49 [reply] -------
Reassign from Wael to component owner.

------- Comment #8 From John Sichi 2005-06-08 14:56 [reply] -------
Reassigning to Julian for dispatch. This is the bug with the description of
the other mistakes Wael made with collation support.

dynamobi-build commented 12 years ago

[author="edan", created="Wed, 21 Jun 2006 15:08:22 -0500 (GMT-05:00)"] Error handling is poor when using collations. Example:

select 'a' collate x from t

gives a parse error 'Expecting '. The end-user cannot be
expected to know that collation names are of the form xxx$yy[$zz]. The error
should be from the validator, not the parser, and should say 'Unknown
collation 'x''.

Another query:

select 'a' collate x$y from t

gives java.nio.charset.UnsupportedCharsetException. Again, this should be a
validation error not a parse error, something like 'Unknown charset 'y''.