Re: BUG #19542: Boolean syntax in GRAPH_TABLE - Mailing list pgsql-bugs

From vaibhave postgres
Subject Re: BUG #19542: Boolean syntax in GRAPH_TABLE
Date
Msg-id CAM_eQjx8oO1CwcnYukKsTzzy-rcTn2vHdXk3jtgA91ZdoQ=4nw@mail.gmail.com
Whole thread
In response to BUG #19542: Boolean syntax in GRAPH_TABLE  (PG Bug reporting form <noreply@postgresql.org>)
Responses Re: BUG #19542: Boolean syntax in GRAPH_TABLE
List pgsql-bugs
Thanks for reporting. 

The crash comes from replace_property_refs() (src/backend/rewrite/rewriteGraphTable.c) which rewrites the GraphPropertyRef nodes. 

It calls expression_tree_mutator() directly on the top level node instead of calling it's mutator (replace_property_refs_mutator()) which treats GraphPropertyRef as a leaf & just copies it unchanged. 

```
case T_GraphLabelRef: 
case T_GraphPropertyRef: 
case T_MergeSupportFunc: 
return copyObject(node);
```

The fix is to call the mutator directly at the entry point.

Thanks,
Vaibhave.

On Fri, Jul 3, 2026 at 7:53 PM PG Bug reporting form <noreply@postgresql.org> wrote:
The following bug has been logged on the website:

Bug reference:      19542
Logged by:          Hervé Lefebvre
Email address:      h.lefebvre.69@gmail.com
PostgreSQL version: 19beta1
Operating system:   Linux
Description:       

In MATCH clause you cannot use "WHERE boolean" Syntax. aka :

select * from GRAPH_TABLE (trajet MATCH ( a IS quai where
a.nom_station='Place des Fêtes' )-[t IS dessert where t.correspondance ]->(b
IS quai) columns (a.nom_station as station1, a.num_ligne as ligne1,
b.nom_station as station2, b.num_ligne as ligne2, T.correspondance as
correspondance));
ERROR:  unrecognized node type: 63

You have to add " = true"  (ugly) :
select * from GRAPH_TABLE (trajet MATCH ( a IS quai where
a.nom_station='Place des Fêtes' )-[t IS dessert where t.correspondance=true
]->(b IS quai) columns (a.nom_station as station1, a.num_ligne as ligne1,
b.nom_station as station2, b.num_ligne as ligne2, T.correspondance as
correspondance));
    station1     | ligne1 |    station2     | ligne2 | correspondance
-----------------+--------+-----------------+--------+----------------
 Place des Fêtes | 7bis   | Place des Fêtes | 11     | t
 Place des Fêtes | 11     | Place des Fêtes | 7bis   | t
(2 rows)




Attachment

pgsql-bugs by date:

Previous
From: Tom Lane
Date:
Subject: Re: BUG #19543: ALTER RULE ... RENAME accepts reserved name "_RETURN" for a non-view rule; breaks a restored dump
Next
From: John Naylor
Date:
Subject: Re: BUG #19533: Wrong results from WindowAgg run-condition pushdown on count() with EXCLUDE CURRENT ROW