pgsql: Include values of A_Const nodes in query jumbling

From: Michael Paquier <michael(at)paquier(dot)xyz>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Include values of A_Const nodes in query jumbling
Date: 2023-02-07 00:05:24
Message-ID: E1pPBUB-001x6n-1F@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Include values of A_Const nodes in query jumbling

Like the implementation for node copy, write and read, this node
requires a custom implementation so as the query jumbling is able to
consider the correct value assigned to it, depending on its type (int,
float, bool, string, bitstring).

Based on a dump of pg_stat_statements from the regression database, this
would confuse the query jumbling of the following queries:
- SET.
- COPY TO with SELECT queries.
- START TRANSACTION with different isolation levels.
- ALTER TABLE with default expressions.
- CREATE TABLE with partition bounds.

Note that there may be a long-term argument in tracking the location of
such nodes so as query strings holding such nodes could be normalized,
but this is left as a separate discussion.

Oversight in 3db72eb.

Discussion: https://postgr.es/m/Y9+HuYslMAP6yyPb@paquier.xyz

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/9ba37b2cb6a174b37fc51d0649ef73e56eae27fc

Modified Files
--------------
.../expected/pg_stat_statements.out | 16 +++++++++-
.../pg_stat_statements/sql/pg_stat_statements.sql | 8 +++++
src/backend/nodes/queryjumblefuncs.c | 35 ++++++++++++++++++++++
src/include/nodes/parsenodes.h | 2 +-
4 files changed, 59 insertions(+), 2 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message David Rowley 2023-02-07 04:24:36 pgsql: More refactoring of heapgettup() and heapgettup_pagemode()
Previous Message Andres Freund 2023-02-06 23:43:01 Re: pg_upgrade test failure