Re: query_id: jumble names of temp tables for better pg_stat_statement UX
Michael Paquier <michael@paquier.xyz>
From: Michael Paquier <michael@paquier.xyz>
To: Alexander Kukushkin <cyberdemn@gmail.com>
Cc: Sami Imseih <samimseih@gmail.com>, Tom Lane <tgl@sss.pgh.pa.us>, Christoph Berg <myon@debian.org>, Lukas Fittl <lukas@fittl.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>, ma lz <ma100@hotmail.com>
Date: 2025-07-15T23:39:29Z
Lists: pgsql-hackers, pgsql-general
On Tue, Jul 15, 2025 at 04:48:05PM +0200, Alexander Kukushkin wrote: > I totally understand the wish to make pg_stat_statements useful for > workloads that create/drop a ton of temporary tables. > However, when pursuing this goal we impacted other types of totally valid > workloads when tables with the same name exist in different schemas. > Example: > create schema s1; > create table s1.t as select id from generate_series(1, 10) as id; > create schema s2; > create table s1.t as select id from generate_series(1, 1000000) as id; I suspect that you mean s2.t and not s1.t here. > select count(id) from s1.t; > select count(id) from s2.t; > > That is, two different queries, accessing two absolutely different tables > (one of them has 100000 times more rows!) were merged together. Yes, we had this argument upthread, and it is still possible to differentiate both cases by using a different alias in the FROM clause, as of: select count(id) from s1.t as t1; select count(id) from s2.t as t2; The new behavior where we do not need to worry about temporary tables, which is not that uncommon because some workloads like using these for JOIN patterns as a "temporary" anchor in a session, has more benefits IMO, particularly more if the connections have a rather higher turnover. -- Michael
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Use relation name instead of OID in query jumbling for RangeTblEntry
- 787514b30bb7 18.0 landed
-
Fix two issues with custom_query_jumble in gen_node_support.pl
- 27ee6ede6bc9 18.0 landed
-
pg_stat_statements: Add more tests with temp tables and namespaces
- 3430215fe35f 18.0 landed
-
Add support for custom_query_jumble as a node field attribute
- 5ac462e2b7ac 18.0 landed