Re: automatically generating node support functions

From: Peter Eisentraut <peter(dot)eisentraut(at)enterprisedb(dot)com>
To: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: automatically generating node support functions
Date: 2021-08-17 14:36:45
Message-ID: c091e5cd-45f8-69ee-6a9b-de86912cc7e7@enterprisedb.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Here is another set of preparatory patches that clean up various special
cases and similar in the node support.

0001-Remove-T_Expr.patch

Removes unneeded T_Expr.

0002-Add-COPY_ARRAY_FIELD-and-COMPARE_ARRAY_FIELD.patch
0003-Add-WRITE_INDEX_ARRAY.patch

These add macros to handle a few cases that were previously hand-coded.

0004-Make-node-output-prefix-match-node-structure-name.patch

Some nodes' output/read functions use a label that is slightly different
from their node name, e.g., "NOTIFY" instead of "NOTIFYSTMT". This
cleans that up so that an automated approach doesn't have to deal with
these special cases.

0005-Add-Cardinality-typedef.patch

Adds a typedef Cardinality for double fields that store an estimated row
or other count. Works alongside Cost and Selectivity.

This is useful because it appears that the serialization format for
these float fields depends on their intent: Cardinality => %.0f, Cost =>
%.2f, Selectivity => %.4f. The only remaining exception is allvisfrac,
which uses %.6f. Maybe that could also be a Selectivity, but I left it
as is. I think this improves the clarity in this area.

Attachment Content-Type Size
0001-Remove-T_Expr.patch text/plain 626 bytes
0002-Add-COPY_ARRAY_FIELD-and-COMPARE_ARRAY_FIELD.patch text/plain 2.3 KB
0003-Add-WRITE_INDEX_ARRAY.patch text/plain 1.8 KB
0004-Make-node-output-prefix-match-node-structure-name.patch text/plain 6.2 KB
0005-Add-Cardinality-typedef.patch text/plain 8.8 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Zhihong Yu 2021-08-17 14:47:40 Re: Allow parallel DISTINCT
Previous Message Ranier Vilela 2021-08-17 14:27:42 Re: Fix uninitialized variable access (src/backend/utils/mmgr/freepage.c)