Re: pg_stat_statements query normalization, and the 'in' operator

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: unixway(dot)drive(at)gmail(dot)com
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: pg_stat_statements query normalization, and the 'in' operator
Date: 2017-08-12 15:31:35
Message-ID: 17373.1502551895@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

unixway(dot)drive(at)gmail(dot)com writes:
> Given the following list of queries:

> create table foo (id serial, bar integer);
> select * from foo where id in (1);
> select * from foo where id in (2,3);
> select * from foo where id in (1,3,5);
> select * from foo where id in (select id from foo);

> would it be possible to have first three select queries to be normalized
> into a single one so that 'select query from pg_stat_statements' returns
> something like:

> select * from foo where id in (...);
> select * from foo where id in (select id from foo);

Wouldn't recommend holding your breath for that. But you could do the
same conversion on the client side that the parser would do anyway:

select * from foo where id = any ('{1,3,5}'::integer[]);

regards, tom lane

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2017-08-12 16:09:34 Re: Timing-sensitive case in src/test/recovery TAP tests
Previous Message Amit Kapila 2017-08-12 13:18:51 Re: why not parallel seq scan for slow functions