Case-sensitive column alias not found in group by
GoogleCodeExporter opened this issue · 2 comments
GoogleCodeExporter commented
A case-sensitive column alias does not seem to work in GROUP BY.
sql> select 1 "x" group by "x";
Error: org.h2.jdbc.JdbcSQLException: Column "x" not found; SQL statement:
select 1 "x" group by "x" [42122-181]
The same column works fine in ORDER BY, or when not using quotes.
sql> select 1 "x" order by "x";
x
1
(1 row, 1 ms)
sql> select 1 x group by x;
X
1
(1 row, 0 ms)
This happens on 1.4.181 (2014-08-06).
Original issue reported on code.google.com by thilopl...@googlemail.com
on 21 Aug 2014 at 3:10
GoogleCodeExporter commented
I tracked this down to this piece of code in Select.java at line 778
if (found < 0) {
// special case: GROUP BY a column alias
for (int j = 0; j < expSize; j++) {
Expression e = expressions.get(j);
if (db.equalsIdentifiers(sql, e.getAlias())) {
found = j;
break;
}
}
At this point in time sql == ""x"" and e.getAlias() == "x"
Note the extra quotes around the x in the sql variable.
But I have no idea how to fix it.
Original comment by noelgrandin
on 25 Aug 2014 at 2:57
GoogleCodeExporter commented
This should be fixed in version 1.4.184.
Original comment by thomas.t...@gmail.com
on 19 Dec 2014 at 8:46
- Changed state: Fixed