Re: Generating code for query jumbling through gen_node_support.pl

Peter Eisentraut <peter.eisentraut@enterprisedb.com>

From: Peter Eisentraut <peter.eisentraut@enterprisedb.com>
To: Michael Paquier <michael@paquier.xyz>
Cc: Postgres hackers <pgsql-hackers@lists.postgresql.org>, "Drouvot, Bertrand" <bdrouvot@amazon.com>
Date: 2023-01-26T08:37:13Z
Lists: pgsql-hackers
On 24.01.23 07:57, Michael Paquier wrote:
>> For the 0004 patch, it should be documented why one would want one behavior
>> or the other.  That's totally unclear right now.
> I am not 100% sure whether we should have this part at the end, but as
> an exit path in case somebody complains about the extra load with the
> automated jumbling compared to the hash of the query strings, that can
> be used as a backup.  Anyway, attached is what would be a
> clarification.

Ok, the documentation make sense now.  I wonder what the performance 
impact is.  Probably, nobody cares about microoptimizing CREATE TABLE 
statements.  But BEGIN/COMMIT could matter.  However, whatever you do in 
between the BEGIN and COMMIT will already be jumbled, so you're already 
paying the overhead.  Hopefully, jumbling such simple commands will have 
no noticeable overhead.

In other words, we should test this and hopefully get rid of the 
'string' method.



Commits

  1. Mark more nodes with attribute no_query_jumble

  2. Include values of A_Const nodes in query jumbling

  3. Generate code for query jumbling through gen_node_support.pl

  4. Rework format of comments in headers for nodes

  5. Move queryjumble.c code to src/backend/nodes/

  6. Fix some compiler warnings in aset.c and generation.c

  7. Reformat some node comments