Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wgI5Z-0065ni-28 for pgsql-bugs@arkaria.postgresql.org; Sun, 05 Jul 2026 08:20:33 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wgI5Y-00BgqR-1p for pgsql-bugs@arkaria.postgresql.org; Sun, 05 Jul 2026 08:20:32 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wgI5Y-00BgqJ-0e for pgsql-bugs@lists.postgresql.org; Sun, 05 Jul 2026 08:20:32 +0000 Received: from mail-ua1-x935.google.com ([2607:f8b0:4864:20::935]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wgI5W-00000001bHH-2MMI for pgsql-bugs@lists.postgresql.org; Sun, 05 Jul 2026 08:20:31 +0000 Received: by mail-ua1-x935.google.com with SMTP id a1e0cc1a2514c-9693bd72129so1363594241.1 for ; Sun, 05 Jul 2026 01:20:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1783239630; cv=none; d=google.com; s=arc-20260327; b=XRhlg73EqLQcCTYN6BFaIZxqV7jCfVAsJzOJbHLq78eoivIWlMnCJkrIbYLjKoRLU3 gkHODupGRuR+IMpmewhlN7+/JDW1fZf8he32hGFllJFb364v7Y3hGPXbbgXWWS5W36Tg bqdimUzVsk+PwI9Mjmniou35AOsAjAhaLTJkrZBCClK6SY00zHjmR+pvwvp5cpYseI/c Eh1QL+XG8ZIQCvHCAJ7SMSgnDaRVaiHpl49Q94m6sN0bCN2S+HKJ7yMope7tR8tcFO0x 4hBaKmPytIHCM8d2GOYFv3IRqcghYRk/neag1wzMK+VFCCkQToebcbYjrAfjKeI7R8lY 6zqw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=8ZKu4lcC9STpJUSfYuk8/dcVk9p2YqrFCh8tmSf8L6s=; fh=aLgW98Aw9+uMlU2xjnk8+/L9PyvzmYU9eN9a+mgEEsk=; b=WX5IbtHc/Vzu5DWzwv4td96bH+odFzLpnBfPkz5aZ5NoHafjmRTb503hQrwr+5Zi0R QI2vxS852XryNn2+q9WKrENDuWTf5Pl7UwDJUHSQXMZWgCaf6er9Xi8y/IjOuqbxG6+N ZxFfEYULLekTjwKzC6l0jZENfvO+C9Bjt15yLwM5WbkhAhPeGqR13zMXW7YoBGgWGT/L FEGBPn3XZqc5USmCI3d63FtfR3oljRbEz5fpMtPzAdc3HYW90WzvaDZxihIQIJa3pMlU nadnfK+ZHhepHHIsgZT0f8whd0QcOiOJg6+NfGL4e+8aD3E81DgRe7zS+AHvAGPLiJ6T g/9g==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1783239630; x=1783844430; darn=lists.postgresql.org; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :from:to:cc:subject:date:message-id:reply-to; bh=8ZKu4lcC9STpJUSfYuk8/dcVk9p2YqrFCh8tmSf8L6s=; b=TlGQ/ZenedbPxeXBcXrI6LnyHdRQNv720yMqP7yxhxJd9OfnXtTdOqVYFKbtqqWaB1 io6HC78u93PzPt2X/fJSZIBrjWYxi6+iyB3bbQpXHdsQD9HTR3y7k9mpRIaXpKfoW3Sz 0L0mq9tM0M6LnydJxSnIh6cmaycx5ebl5MYo/p4yrXVMYoyteflr+XzxihZzKvbSJZUx jNZJ02vExPG3X+F65yyYFIfhMEr2/W9g/6QTrv9Lq+Nh3xeFsetemHPnIc8pvnKG4Z0s +uijzJe9/uRWO4pRMi2v+ZoPnxWBf/0KI0DFOzYqg85PDwoDXFw8pT30Ubesmjv2SNnT NxEQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783239630; x=1783844430; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=8ZKu4lcC9STpJUSfYuk8/dcVk9p2YqrFCh8tmSf8L6s=; b=UEf6UyE+v50A3pg75QiWPiuLJ39TiwDRHd8Z25/K82Vbn/WLyGzOXXX9fhDKtAOvcD l/3uRpHErZC4tk0u5JVWcQQHDFuOy8ngf7Kqdveo3Jcw+E7ThubuPVYFroUqEPcamGn9 E5ngBE51loUZzcRgtwLPUpXVZauSFUMPVJPSxiM6NdnzpQELYrTfju4le5BUuWd+rftP 5yA8dWLnb4SMjr2amTvq/CH32YNlLXmQ+abApxbymRglDsY9Ea2CUkVffEORqsC1Knv4 ChGtUnRbxRvKScOvhfDVqeZsRcICAmL00hVfXVogFEeorlIISS+otqe6icjrvhbjbzkU 2WoQ== X-Forwarded-Encrypted: i=1; AHgh+RoxZbXAghCElu54E1uBoBQNNkg6ScGjD9vg+KtIPiVd4zYprcLcRl8HwpQtBnsdV/cHSznpush14Ja/@lists.postgresql.org X-Gm-Message-State: AOJu0Yxx3cqB2tV6uuaWBejgqDo9ieHpKU/7UJxbDUeguM0ZA1m2Ei6H a+rbsyAjIkqRA8eDiuNRVA5qyKlCu3ua5moqV8CSvDR16zCkG3UvSRSoTYpb/8SfoEuzw1N8bcQ N7eQbVy4f/w/HNQvyG98jGzno6Z0kAcU= X-Gm-Gg: AfdE7cm9jKxpl+azi/dKZUiKxaMI6yn/KO6dMTgFdxO9hT7fpBZtDjRbis4+mi6if5X LR44BjZWnWsn0uxVptrBoqjd+pR2+usiHM8zZxY/k8LSR4L1xPhdjlE9tAr19VXVvjfPvbhE+AW aq1G3ygrzKK4uvlH9XVFgvM6bwFIGlgJsvMw/5qf523lHbpyNnxWD6gFp/i1rKxzTPWnS4/sm+o 2yC85UzuW7I5H7Fg5RdacjDFsK1VAug6w1mXa6PZecaMkumEwl2CuWDQ1FQqmrKO8sOxw== X-Received: by 2002:a05:6102:808f:b0:737:783d:18fb with SMTP id ada2fe7eead31-7427c5b0678mr2025949137.10.1783239629551; Sun, 05 Jul 2026 01:20:29 -0700 (PDT) MIME-Version: 1.0 References: <19542-97a0785e900e2fde@postgresql.org> In-Reply-To: <19542-97a0785e900e2fde@postgresql.org> From: vaibhave postgres Date: Sun, 5 Jul 2026 13:50:18 +0530 X-Gm-Features: AVVi8CfwUa1XnAb3xXv275F5ZDNIqwirGzEOXMZGLy6o7N5NiSRjobY2jydRzm8 Message-ID: Subject: Re: BUG #19542: Boolean syntax in GRAPH_TABLE To: h.lefebvre.69@gmail.com, pgsql-bugs@lists.postgresql.org Content-Type: multipart/mixed; boundary="000000000000ab61610655d8d44e" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000ab61610655d8d44e Content-Type: multipart/alternative; boundary="000000000000ab61600655d8d44c" --000000000000ab61600655d8d44c Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable 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=E2=80=AFPM PG Bug reporting form wrote: > The following bug has been logged on the website: > > Bug reference: 19542 > Logged by: Herv=C3=A9 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=3D'Place des F=C3=AAtes' )-[t IS dessert where t.correspond= ance > ]->(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 " =3D true" (ugly) : > select * from GRAPH_TABLE (trajet MATCH ( a IS quai where > a.nom_station=3D'Place des F=C3=AAtes' )-[t IS dessert where t.correspond= ance=3Dtrue > ]->(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=C3=AAtes | 7bis | Place des F=C3=AAtes | 11 | t > Place des F=C3=AAtes | 11 | Place des F=C3=AAtes | 7bis | t > (2 rows) > > > > > --000000000000ab61600655d8d44c Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Thanks for reporting.=C2=A0

The crash c= omes from replace_property_refs() (src/backend/rewrite/rewriteGraphTable.c)= which rewrites the GraphPropertyRef nodes.=C2=A0

= It calls expression_tree_mutator() directly on the top level node instead o= f calling it's mutator (replace_property_refs_mutator()) which treats= =C2=A0GraphPropertyRef<= span style=3D"background-color:transparent">=C2=A0as a leaf & just copi= es it unchanged.=C2=A0

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

The fix is to call the m= utator directly at the entry point.

Thanks,
<= div>Vaibhave.

On Fri, Jul 3, 2026 at 7:53=E2=80= =AFPM PG Bug reporting form <n= oreply@postgresql.org> wrote:
The following bug has been logged on the website:

Bug reference:=C2=A0 =C2=A0 =C2=A0 19542
Logged by:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Herv=C3=A9 Lefebvre
Email address:=C2=A0 =C2=A0 =C2=A0 h.lefebvre.69@gmail.com
PostgreSQL version: 19beta1
Operating system:=C2=A0 =C2=A0Linux
Description:=C2=A0 =C2=A0 =C2=A0 =C2=A0

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

select * from GRAPH_TABLE (trajet MATCH ( a IS quai where
a.nom_station=3D'Place des F=C3=AAtes' )-[t IS dessert where t.corr= espondance ]->(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:=C2=A0 unrecognized node type: 63

You have to add " =3D true"=C2=A0 (ugly) :
select * from GRAPH_TABLE (trajet MATCH ( a IS quai where
a.nom_station=3D'Place des F=C3=AAtes' )-[t IS dessert where t.corr= espondance=3Dtrue
]->(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));
=C2=A0 =C2=A0 station1=C2=A0 =C2=A0 =C2=A0| ligne1 |=C2=A0 =C2=A0 station2= =C2=A0 =C2=A0 =C2=A0| ligne2 | correspondance
-----------------+--------+-----------------+--------+----------------
=C2=A0Place des F=C3=AAtes | 7bis=C2=A0 =C2=A0| Place des F=C3=AAtes | 11= =C2=A0 =C2=A0 =C2=A0| t
=C2=A0Place des F=C3=AAtes | 11=C2=A0 =C2=A0 =C2=A0| Place des F=C3=AAtes |= 7bis=C2=A0 =C2=A0| t
(2 rows)




--000000000000ab61600655d8d44c-- --000000000000ab61610655d8d44e Content-Type: application/octet-stream; name="fix-19542.patch" Content-Disposition: attachment; filename="fix-19542.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mr7ists10 ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Jld3JpdGUvcmV3cml0ZUdyYXBoVGFibGUuYyBiL3Ny Yy9iYWNrZW5kL3Jld3JpdGUvcmV3cml0ZUdyYXBoVGFibGUuYwppbmRleCAzM2Q0ZTg2NmQ3NC4u ZDhjMzY0ZDY1ODggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Jld3JpdGUvcmV3cml0ZUdyYXBo VGFibGUuYworKysgYi9zcmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVHcmFwaFRhYmxlLmMKQEAg LTExNTIsNyArMTE1MiwxMSBAQCByZXBsYWNlX3Byb3BlcnR5X3JlZnMoT2lkIHByb3BncmFwaGlk LCBOb2RlICpub2RlLCBjb25zdCBMaXN0ICptYXBwaW5ncykKIAljb250ZXh0Lm1hcHBpbmdzID0g bWFwcGluZ3M7CiAJY29udGV4dC5wcm9wZ3JhcGhpZCA9IHByb3BncmFwaGlkOwogCi0JcmV0dXJu IGV4cHJlc3Npb25fdHJlZV9tdXRhdG9yKG5vZGUsIHJlcGxhY2VfcHJvcGVydHlfcmVmc19tdXRh dG9yLCAmY29udGV4dCk7CisJLyoKKwkgKiBJbnZva2UgdGhlIG11dGF0b3IgZGlyZWN0bHkgcmF0 aGVyIHRoYW4gdGhyb3VnaCBleHByZXNzaW9uX3RyZWVfbXV0YXRvcigpCisJICogc28gdGhhdCBh IHRvcC1sZXZlbCBHcmFwaFByb3BlcnR5UmVmIGlzIHJlcGxhY2VkIHRvby4KKwkgKi8KKwlyZXR1 cm4gcmVwbGFjZV9wcm9wZXJ0eV9yZWZzX211dGF0b3Iobm9kZSwgJmNvbnRleHQpOwogfQogCiAv KgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ncmFwaF90YWJsZS5vdXQg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2dyYXBoX3RhYmxlLm91dAppbmRleCBjYzZkODBh ZmQ4Mi4uOWU2MmQyMTNlMzggMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv Z3JhcGhfdGFibGUub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZ3JhcGhfdGFi bGUub3V0CkBAIC0xMDQ0LDQgKzEwNDQsMjMgQEAgU0VMRUNUIHNyYy52bmFtZSwgY291bnQoKikg RlJPTSB2MSBBUyBzcmMKICB2MTMgICB8ICAgICAxCiAoMyByb3dzKQogCistLSBhIFdIRVJFIGNs YXVzZSB0aGF0IGlzIGEgYmFyZSBib29sZWFuIHByb3BlcnR5IHJlZmVyZW5jZSAoYSB0b3AtbGV2 ZWwKKy0tIEdyYXBoUHJvcGVydHlSZWYpIG11c3QgYmUgcmV3cml0dGVuIGp1c3QgbGlrZSBhIG5l c3RlZCBwcm9wZXJ0eSByZWZlcmVuY2UKK0FMVEVSIFBST1BFUlRZIEdSQVBIIGcxIEFMVEVSIFZF UlRFWCBUQUJMRSB2MSBBTFRFUiBMQUJFTCB2bDEgQUREIFBST1BFUlRJRVMgKHZwcm9wMSA+IDE1 IEFTIGlzX2JpZyk7CistLSBiYXJlIGJvb2xlYW4gcHJvcGVydHkgaW4gYW4gZWxlbWVudCBwYXR0 ZXJuIFdIRVJFIGNsYXVzZQorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZzEgTUFUQ0ggKGEg SVMgdmwxIFdIRVJFIGEuaXNfYmlnKSBDT0xVTU5TIChhLnZuYW1lIEFTIHNlbGYpKSBPUkRFUiBC WSBzZWxmOworIHNlbGYgCistLS0tLS0KKyB2MTIKKyB2MTMKKygyIHJvd3MpCisKKy0tIGJhcmUg Ym9vbGVhbiBwcm9wZXJ0eSBpbiB0aGUgZ3JhcGggcGF0dGVybiBXSEVSRSBjbGF1c2UKK1NFTEVD VCAqIEZST00gR1JBUEhfVEFCTEUgKGcxIE1BVENIIChhIElTIHZsMSkgV0hFUkUgYS5pc19iaWcg Q09MVU1OUyAoYS52bmFtZSBBUyBzZWxmKSkgT1JERVIgQlkgc2VsZjsKKyBzZWxmIAorLS0tLS0t CisgdjEyCisgdjEzCisoMiByb3dzKQorCiAtLSBsZWF2ZSB0aGUgb2JqZWN0cyBiZWhpbmQgZm9y IHBnX3VwZ3JhZGUvcGdfZHVtcCB0ZXN0cwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9z cWwvZ3JhcGhfdGFibGUuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZ3JhcGhfdGFibGUuc3Fs CmluZGV4IDBlMzgxZWM3MmJjLi40NjY2ODIzM2U2NCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvZ3JhcGhfdGFibGUuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2dyYXBo X3RhYmxlLnNxbApAQCAtNTk2LDQgKzU5NiwxMiBAQCBTRUxFQ1Qgc3JjLnZuYW1lLCBjb3VudCgq KSBGUk9NIHYxIEFTIHNyYwogICBIQVZJTkcgY291bnQoKikgPj0gKFNFTEVDVCBjb3VudCgqKSBG Uk9NIEdSQVBIX1RBQkxFIChnMSBNQVRDSCAoYSBJUyB2bDEgfCB2bDIpIENPTFVNTlMgKGEudm5h bWUgQVMgbikpIFdIRVJFIG4gPSBzcmMudm5hbWUpCiAgIE9SREVSIEJZIHZuYW1lOwogCistLSBh IFdIRVJFIGNsYXVzZSB0aGF0IGlzIGEgYmFyZSBib29sZWFuIHByb3BlcnR5IHJlZmVyZW5jZSAo YSB0b3AtbGV2ZWwKKy0tIEdyYXBoUHJvcGVydHlSZWYpIG11c3QgYmUgcmV3cml0dGVuIGp1c3Qg bGlrZSBhIG5lc3RlZCBwcm9wZXJ0eSByZWZlcmVuY2UKK0FMVEVSIFBST1BFUlRZIEdSQVBIIGcx IEFMVEVSIFZFUlRFWCBUQUJMRSB2MSBBTFRFUiBMQUJFTCB2bDEgQUREIFBST1BFUlRJRVMgKHZw cm9wMSA+IDE1IEFTIGlzX2JpZyk7CistLSBiYXJlIGJvb2xlYW4gcHJvcGVydHkgaW4gYW4gZWxl bWVudCBwYXR0ZXJuIFdIRVJFIGNsYXVzZQorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZzEg TUFUQ0ggKGEgSVMgdmwxIFdIRVJFIGEuaXNfYmlnKSBDT0xVTU5TIChhLnZuYW1lIEFTIHNlbGYp KSBPUkRFUiBCWSBzZWxmOworLS0gYmFyZSBib29sZWFuIHByb3BlcnR5IGluIHRoZSBncmFwaCBw YXR0ZXJuIFdIRVJFIGNsYXVzZQorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZzEgTUFUQ0gg KGEgSVMgdmwxKSBXSEVSRSBhLmlzX2JpZyBDT0xVTU5TIChhLnZuYW1lIEFTIHNlbGYpKSBPUkRF UiBCWSBzZWxmOworCiAtLSBsZWF2ZSB0aGUgb2JqZWN0cyBiZWhpbmQgZm9yIHBnX3VwZ3JhZGUv cGdfZHVtcCB0ZXN0cwo= --000000000000ab61610655d8d44e--