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
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 |