Details
-
Improvement
-
Status: Closed
-
Minor
-
Resolution: Duplicate
-
10.3.1.4
-
None
-
None
Description
If I create a database with TERRITORY_BASED collation and try to do a comparison between a user table column and a system table column, I get the following message. If I create it with UCS_BASIC collation there is no problem with the query. It makes sense to me that I can't compare these columns but I think it would be worthwhile to make a more informative error message since in fact normally comparisons between VARCHAR and VARCHAR are supported, just not comparisons between TERRITORY_BASED and UCS_BASIC.
Kathey
ij> connect 'jdbc:derby:enusdb;create=true;territory=en_US;collation=TERRITORY_BASED';
ij(CONNECTION1)> create table t (vc varchar(30));
0 rows inserted/updated/deleted
ij(CONNECTION1)> insert into t values('t');
1 row inserted/updated/deleted
ij(CONNECTION1)> select tableName, vc from sys.systables, t where vc = tableName;
ERROR 42818: Comparisons between 'VARCHAR' and 'VARCHAR' are not supported.
Bryan suggests ...
Can we make it say something like:
ERROR 42818: Comparisons between 'VARCHAR(en_US)' and 'VARCHAR(UCS_BASIC)' are not supported.
That is, sort of pack the collation information into the datatype
name somehow?
Attachments
Issue Links
- duplicates
-
DERBY-2668 At the time of compilation of a comparison operation, if the collation types of the operands do not match, then we should throw a meaningful error message.
- Closed
- is related to
-
DERBY-1478 Add built in language based ordering and like processing to Derby
- Closed