Dear Postgres JDBC hackers:
I've just recently started testing the postgres JDBC 3 driver
(8.0-311) after using JDBC 3 (pg74.216.jdbc). I now get an error on
a query of the type:
SELECT DISTINCT column1, column2 FROM table1 ORDER BY 1
where the "1" in the ORDER BY is set by PreparedStatement.setInt method
The error is: "SELECT DISTINCT, ORDER BY expressions must appear in
select list"
The error disappears when I change the query to:
SELECT DISTINCT column1, column2 FROM table1 ORDER BY column1
or when I hard code the ORDER BY 1 in the query instead of setting it
via setInt.
This error occurs only with the 8.0-311 driver or the 8.1dev-400 jdbc
drivers, it does not occur with the pg74-216 driver. This occurs
with both the 7.4 and 8.0 backends.
Is this change in behavior expected and our code was simply relying
on old semantics or misinterpretation of the JDBC standard?
Thanks,
Sumit