You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by "Knut Anders Hatlen (JIRA)" <ji...@apache.org> on 2013/05/24 13:26:22 UTC

[jira] [Created] (DERBY-6227) Distinct aggregates don't work well with territory-based collation

Knut Anders Hatlen created DERBY-6227:
-----------------------------------------

             Summary: Distinct aggregates don't work well with territory-based collation
                 Key: DERBY-6227
                 URL: https://issues.apache.org/jira/browse/DERBY-6227
             Project: Derby
          Issue Type: Bug
          Components: SQL
    Affects Versions: 10.10.1.1
            Reporter: Knut Anders Hatlen


When working on DERBY-5840, I noticed that GroupedAggregateResultSet would do duplicate elimination by comparing the java.lang.String representation of the values. With territory-based collation, it is possible that two values that have different java.lang.String representation should be considered duplicates, and this logic will produce incorrect results.

Example:

ij version 10.10
ij> connect 'jdbc:derby:memory:db;territory=en_US;collation=TERRITORY_BASED:PRIMARY;create=true';
ij> create table t(i int, s varchar(10));
0 rows inserted/updated/deleted
ij> insert into t values (1, 'a'), (1, 'a'), (2, 'b'), (2, 'B'), (3, 'a'), (3, 'A'), (3, 'b'), (3, 'B'), (3, 'c');
9 rows inserted/updated/deleted
ij> select distinct s from t;
S         
----------
b         
a         
c         

3 rows selected
ij> select i, count(distinct s) from t group by i;
I          |2          
-----------------------
1          |1          
2          |2          
3          |5          

3 rows selected

I would have expected the last query to return

(1, 1)
(2, 1)
(3, 3)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira