Re: [Patch]Add Graph* node support to expression_tree_mutator

Robert Haas <robertmhaas@gmail.com>

From: Robert Haas <robertmhaas@gmail.com>
To: Ashutosh Bapat <ashutosh.bapat.oss@gmail.com>
Cc: SATYANARAYANA NARLAPURAM <satyanarlapuram@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2026-04-29T20:46:57Z
Lists: pgsql-hackers
On Tue, Apr 28, 2026 at 11:05 AM Ashutosh Bapat
<ashutosh.bapat.oss@gmail.com> wrote:
> The walker didn't WALK labelexpr and quantifier either. Given that
> labelexpr is a boolean expression it needs to be WALKed. quantifier is
> IntList which is ignored by other nodes as well when WALKing. But we
> need to copy quantifier in mutator otherwise the mutated expression
> will point to the same IntList as the original node. Other nodes also
> copy the OidLists and IntLists when mutating them. I have modified the
> test query to cover the label expression mutator.
>
> raw_expression_walker didn't cover labelexpr either. Added it there.
> The label expression at that stage contains ColumnRef and BoolExpr
> which are already covered by raw expression tree walker.

Hi,

Thanks for working on this. I ran into it independently today, and
then discovered this thread. In expression_tree_mutator_impl,
T_GraphLabelRef can be added to the "Primitive node types with no
expression subnodes" section just as was done in
expression_tree_walker_impl.

Other than that, this looks good to me.

-- 
Robert Haas
EDB: http://www.enterprisedb.com



Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Handle nodes that may appear in GraphPattern expression trees