Re: support fix query_id for temp table

Michael Paquier <michael@paquier.xyz>

From: Michael Paquier <michael@paquier.xyz>
To: ma lz <ma100@hotmail.com>
Cc: "pgsql-general@lists.postgresql.org" <pgsql-general@lists.postgresql.org>
Date: 2024-02-01T08:46:36Z
Lists: pgsql-hackers, pgsql-general
On Thu, Feb 01, 2024 at 07:37:32AM +0000, ma lz wrote:
> session 1:
> create temp table ttt ( a int );
> insert into ttt values(3);                         -- query_id is XXX  from pg_stat_activity
> 
> session 2:
> create temp table ttt ( a int );
> insert into ttt values(3);                        -- query_id is YYY  from pg_stat_activity
> 
> I know temp table has different oid, so query_id is different, is
> there a way to use table name for temp table  instead of oid?

The CREATE TABLE statements have indeed the same query ID (in 16~),
and the inserts have a different one as they touch different schemas
and relations.  That's quite an old problem, that depends on the
RangeVar attached to an InsertStmt.  I don't quite see a way to
directly handle that except by using a custom implementation in query
jumbling for this node and its RangeVar, so there is no "easy" way to
tackle that :/
--
Michael

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Use relation name instead of OID in query jumbling for RangeTblEntry

  2. Fix two issues with custom_query_jumble in gen_node_support.pl

  3. pg_stat_statements: Add more tests with temp tables and namespaces

  4. Add support for custom_query_jumble as a node field attribute