Hello,
As a new user of PostgreSQL, I have started using pg_stat_statements, and was pleased but a little surprised: First of all, the normalized form of the query string makes it impossible to be used in EXPLAIN commands.
Yes, because of the normalization.
Second, normalized constants and parameters values where missing to be able to test optimizations results manually with EXPLAIN.
The normalization is entirely voluntary. Otherwise, probably every query would generate a distinct entry, which for a high load system would be a very bad idea, and there would be no point to the extension.
Note that with recent pg you can reuse the query with with a PREPARE, and then EXPLAIN on the EXECUTE.
PREPARE foo(INT) AS <the-query-with-its-dollar-vars>; EXPLAIN EXECUTE foo(5432); EXPLAIN EXECUTE foo(2345); DEALLOCATE foo;
Third, execution plan was not available (making usage of AUTO_EXPLAIN
Yep, but ISTM that the plan might differ depending on the actual values, so it would not make much sense to keep it anyway.
-- Fabien.