Thread: [HACKERS] pg_stat_statements query normalization, and the 'in' operator
[HACKERS] pg_stat_statements query normalization, and the 'in' operator
From
unixway.drive@gmail.com
Date:
Hello there, 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); (2 rows) instead of: select * from foo where id in (?,?); select * from foo where id in (?,?,?); select * from foo where id in (?); select* from foo where id in (select id from foo); (4 rows) ?
unixway.drive@gmail.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