Re: postgresql-8.0.jar and failure of ORDER BY parameters
От | Tom Lane |
---|---|
Тема | Re: postgresql-8.0.jar and failure of ORDER BY parameters |
Дата | |
Msg-id | 17996.1115216059@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | postgresql-8.0.jar and failure of ORDER BY parameters (Guillaume Cottenceau <gc@mnc.ch>) |
Ответы |
Re: postgresql-8.0.jar and failure of ORDER BY parameters
|
Список | pgsql-jdbc |
Guillaume Cottenceau <gc@mnc.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
В списке pgsql-jdbc по дате отправления: