From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Guillaume Cottenceau <gc(at)mnc(dot)ch> |
Cc: | pgsql-jdbc(at)postgresql(dot)org |
Subject: | Re: postgresql-8.0.jar and failure of ORDER BY parameters |
Date: | 2005-05-04 14:14:19 |
Message-ID: | 17996.1115216059@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-jdbc |
Guillaume Cottenceau <gc(at)mnc(dot)ch> writes:
> SELECT .... ORDER BY ?, ?
> actionSt.setInt( 1, 4 );
> actionSt.setInt( 2, 5 );
This would appear to be asking for a sort by two constant values,
which of course is not going to order the data usefully at all
--- all the rows will have the same sort keys.
I suppose that it behaved differently in older versions of the JDBC
driver that didn't implement real server-side prepared statements.
If the parameters are substituted textually before the server sees
the command, then you have "ORDER BY 4,5" which is interpreted according
to the old SQL92 syntax --- ie, sort by fourth and fifth columns of the
output. But anything beyond a simple integer literal --- in particular,
a parameter symbol --- is treated as an expression value per SQL99.
So no, you can't do it like that. The fact that it happened to "work"
before was an artifact of the implementation.
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Guillaume Cottenceau | 2005-05-04 14:30:18 | Re: postgresql-8.0.jar and failure of ORDER BY parameters |
Previous Message | Dave Cramer | 2005-05-04 11:54:16 | Re: Connectivity of postgreSQL database to a JSP page |