]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Fix two issues with custom_query_jumble in gen_node_support.pl
authorMichael Paquier <michael@paquier.xyz>
Wed, 26 Mar 2025 00:06:36 +0000 (09:06 +0900)
committerMichael Paquier <michael@paquier.xyz>
Wed, 26 Mar 2025 00:06:36 +0000 (09:06 +0900)
A node field marked with custom_query_jumble and query_jumble_ignore
would generate some code of a custom routine.  The script is changed so
as custom_query_jumble behaves like the other options in this case,
query_jumble_ignore taking priority, with no code generated.

A comment related to the code generated for node types was misplaced.

Thinkos introduced in 5ac462e2b7ac.

Reported-by: Tom Lane <tgl@sss.pgh.pa.us>
Discussion: https://postgr.es/m/1324036.1742945060@sss.pgh.pa.us

src/backend/nodes/gen_node_support.pl

index 40994b53fb28a2360fd8f705d57e30fe6c7a4ef0..f6229089cd15be313e6053d4065c210f905c89d1 100644 (file)
@@ -1309,16 +1309,16 @@ _jumble${n}(JumbleState *jstate, Node *node)
                        }
                }
 
-               # node type
                if ($query_jumble_custom)
                {
                        # Custom function that applies to one field of a node.
-                       print $jff "\tJUMBLE_CUSTOM($n, $f);\n";
+                       print $jff "\tJUMBLE_CUSTOM($n, $f);\n"
+                         unless $query_jumble_ignore;
                }
                elsif (($t =~ /^(\w+)\*$/ or $t =~ /^struct\s+(\w+)\*$/)
                        and elem $1, @node_types)
                {
-                       # Squash constants if requested.
+                       # Node type.  Squash constants if requested.
                        if ($query_jumble_squash)
                        {
                                print $jff "\tJUMBLE_ELEMENTS($f);\n"