BUG #15839: Using text field for sorting in prepared query leads to wrong result

Started by PG Bug reporting formalmost 7 years ago2 messagesbugs
Jump to latest
#1PG Bug reporting form
noreply@postgresql.org

The following bug has been logged on the website:

Bug reference: 15839
Logged by: Александр Черников
Email address: me@helld.ru
PostgreSQL version: 10.6
Operating system: Ubuntu 18.04.1
Description:

Example request:
select * from orders where ClientId=$1 and Moment >= $2 and Moment < $3
order by $4 desc, ClientId limit $5 offset ($5-1)*$6;
Field in question is $4
Expected result - poor performance or clear error that dynamic sorting
cannot be used

#2David G. Johnston
david.g.johnston@gmail.com
In reply to: PG Bug reporting form (#1)
Re: BUG #15839: Using text field for sorting in prepared query leads to wrong result

On Fri, Jun 7, 2019 at 7:31 AM PG Bug reporting form <noreply@postgresql.org>
wrote:

The following bug has been logged on the website:

Bug reference: 15839
Logged by: Александр Черников
Email address: me@helld.ru
PostgreSQL version: 10.6
Operating system: Ubuntu 18.04.1
Description:

Example request:
select * from orders where ClientId=$1 and Moment >= $2 and Moment < $3
order by $4 desc, ClientId limit $5 offset ($5-1)*$6;
Field in question is $4
Expected result - poor performance or clear error that dynamic sorting
cannot be used

There is no bug here.

You wrote a valid query so no error should be issued. I don't see where
performance should come into this at all.

That parameters can only replace values, not identifiers, is a learning
issue that one just needs to usually encounter and take into memory. There
is no substitute for experimentation and validating ones queries. Quite
few problematic queries will execute just fine but give unexpected results.

David J.