| 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: | Whole Thread | Raw Message | 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
| 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 |