Re: BUG #19542: Boolean syntax in GRAPH_TABLE
От
vaibhave postgres
Тема
Re: BUG #19542: Boolean syntax in GRAPH_TABLE
Дата
Msg-id
CAM_eQjx8oO1CwcnYukKsTzzy-rcTn2vHdXk3jtgA91ZdoQ=4nw@mail.gmail.com
Ответ на
BUG #19542: Boolean syntax in GRAPH_TABLE (PG Bug reporting form)
Список
Дерево обсуждения
BUG #19542: Boolean syntax in GRAPH_TABLE PG Bug reporting form <noreply@postgresql.org>
Re: BUG #19542: Boolean syntax in GRAPH_TABLE vaibhave postgres <postgresvaibhave@gmail.com>
Re: BUG #19542: Boolean syntax in GRAPH_TABLE Peter Eisentraut <peter@eisentraut.org>
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)
В списке pgsql-bugs по дате отправления
От: Tom Lane
Дата:
От: John Naylor
Дата: