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 1wFDTy-004qlV-1x for pgsql-hackers@arkaria.postgresql.org; Tue, 21 Apr 2026 15:57:51 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wFDTx-009gCS-2y for pgsql-hackers@arkaria.postgresql.org; Tue, 21 Apr 2026 15:57:49 +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 1wFDTF-009d48-00 for pgsql-hackers@lists.postgresql.org; Tue, 21 Apr 2026 15:57:05 +0000 Received: from mail-ua1-x931.google.com ([2607:f8b0:4864:20::931]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wFDT7-000000026pU-3sqJ for pgsql-hackers@lists.postgresql.org; Tue, 21 Apr 2026 15:57:04 +0000 Received: by mail-ua1-x931.google.com with SMTP id a1e0cc1a2514c-9540bb77b1aso2544159241.1 for ; Tue, 21 Apr 2026 08:56:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1776787017; cv=none; d=google.com; s=arc-20240605; b=f9flUo5zs4A3uRFMXV8Pgpu+NU8O9cbDYSY5idjcezVM1bvbafdMkLVjvKDs1WkPv4 22aP5GIebSCQxJ+0JiM7AeEEyn++eRG4pW8Ho/XlERfe9uyJ0e3S+B8LAX3m2cr/sxso icxNbfi65/LEaRz0u8AfSNr75Hy2o5iMRSSf9TxgMS4LOWjxMDSves5OPAII0fsQL99r 5ydhnTVc2oRFJXSTWaJPa03NLSUP78kxaFCdnmVw/VaytCbOgXGNStc8pErbDSHK7tBY 44UqVO8PMfoLV6cnryB/Kktp9wSCTDrPRFV9lmC0YgKI6EGVPRoFCUO49LW5hwCB6tkP Ad1g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=to:subject:message-id:date:from:mime-version:dkim-signature; bh=RrWjpFbuF5mCg8hu9aatRTtgMJb5+Gg0v4XMZmc4vpA=; fh=rf79rTKPGsw7cX8Ly8TKTWm50sbG7CfzRgfTSNZkF6w=; b=bFCLcOqtnKp++4IYhXnanrp45s92RXNiaL84Mxpnh6yY/n2iXhkPrP/w17ytw7WppY DL5XINxC1xjmatPVnvXXIyfw/D7ai2ZQwQIJthBt0KpV16SZFdbVL6EjmsTWW3JDhmeu hChjJe4Imb/JhNQECHeOCF5fzG9X2WSXgKRT4uKGtsSDIqO3ROasGuxLraAgtkMlrsyO r4dJ4/TYh4b8kk9dTvr+3mTs6GEeNiVg/ML8biUo1zHhlmSj/1daOvBFUcjGDT+68LSM 1NyJZT4PNTu2Pt5gfU2J9uzg/AYMsaG0VDEe8MNJ2N8JZArwtE5WHm1VryV3xueyRi4D Z5Vg==; 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=1776787017; x=1777391817; darn=lists.postgresql.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=RrWjpFbuF5mCg8hu9aatRTtgMJb5+Gg0v4XMZmc4vpA=; b=kkj3Q7eOvczc1uhktryjmKl0cRnpEiHfs5YUWgDJbsPqnXD8vt+RP1sVEt4t0a5eaz LXZGf7M4REGVu3D+zV485XqdAJhn3sfw8lUEVfD4PcVEJ4sonxTohS6N+9N6EdN2Ju4i FiiHqBcjwNzdiDUAfCkubcFlI3Ef8UYSruEay5677OSWGAaK9PNCyezCPnA6p3p5bnbs td7H4kLyyqtDBOM1fSf5LqX34Re17jjK36Be8K9CbDOXuyjdWxyf1cgCSeMMqFg8OjAM zdmwxLHaVnbMgB1WVTXJX8db0KwstzjArc6nB/jrBPlR3NU+m6z1RKgJL7KWFIMeKWN9 h3Vw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776787017; x=1777391817; h=to:subject:message-id:date:from:mime-version:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=RrWjpFbuF5mCg8hu9aatRTtgMJb5+Gg0v4XMZmc4vpA=; b=SHpLKCS+bXbzoJDvDGHp6xbFRNZWT8MNoOOMkuKneNx4H6MtHXYmmjYJ7t/BsFZdGh 6QcM+G9vBBZGCbvoqq1dgOqh98VKoYUZMU/+26chqMoYg70+KTg1+FPt2nkpVRjBlRO9 mOxwQlWY29CudQI4mrMaWS6/ZU5O72DmLmPHjB4qbqwgwLGM2S7CbMKEs7M0LERnsb9Q O2G14spr7iHfrW8iX7cD3qEIO/5oDkeqPQNTCSI690CV6G4wmoyAhaSaAypHzAsvngC2 vRy6a8Gp6rBWNtCd2gv2XpJCK3v2SfQMk9lX6q8zWHSqw7Gn23bmnD8CPmrVpxc7ZDCg 0d7g== X-Gm-Message-State: AOJu0YyWpODoCJeL5NLAKN9X6Q1j84u6pSulBO+MZcyUV1G4A6xdNm8/ BP+Dw7UJnHGYN6O9x+hQ/XktU9JK+qWK1wW+M6gaWIFeqRBtuU0N85HjtL7f6dSsEwZSxQH2iRD bGQLatYuZPQ4l8EAYBcEzivrXg/N4UY9M21ZU X-Gm-Gg: AeBDiesQOSZbya5oMaL2C4ERII9ABzV9g6ge73v1B2mQyWP/ufLAiLgSHFCHiP2VnWy KCI53O5GU2Oz3EusDkoINtPrPEpDrMCPNpQM/wOmynl0LD2sf8YsXMes+PHYHZDdjn9AaEy91/5 3HVlZVYN0PvoiAVFEXGv27+U499ELv83SRWF7bNugOPFag/6nGGb3HxKL/W5eRRuu3ndRnjCPgg 1n9w3h32DYVsZZ/FOlNVkR3oqhd1ipuKeVsidHuuOW0jm5i0u5MFMjKCTtyKjm1rJ4M3JD9toKY dGlwnCuUjayc3BYPZw== X-Received: by 2002:a05:6102:41a6:b0:60f:c9ba:b992 with SMTP id ada2fe7eead31-616f68d760dmr9527028137.16.1776787016658; Tue, 21 Apr 2026 08:56:56 -0700 (PDT) MIME-Version: 1.0 From: SATYANARAYANA NARLAPURAM Date: Tue, 21 Apr 2026 08:56:44 -0700 X-Gm-Features: AQROBzBTUbzdbEQ3ADW3lP1S9AeBhW05T3l-bKRn8wXhpNre9nFJgYpe2wqqyVs Message-ID: Subject: [Patch]Add Graph* node support to expression_tree_mutator To: PostgreSQL Hackers , Ashutosh Bapat Content-Type: multipart/mixed; boundary="000000000000f8666d064ffa764f" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000f8666d064ffa764f Content-Type: multipart/alternative; boundary="000000000000f8666b064ffa764d" --000000000000f8666b064ffa764d Content-Type: text/plain; charset="UTF-8" Hi hackers, expression_tree_mutator_impl() was missing case handlers for T_GraphPattern, T_GraphElementPattern, and T_GraphPropertyRef. The corresponding expression_tree_walker_impl() already handled all three node types, but the mutator did not, causing an "unrecognized node type: 106" error whenever a GRAPH_TABLE subquery appeared in a HAVING clause. SELECT 1 FROM hv GROUP BY id HAVING (SELECT COUNT(*) FROM GRAPH_TABLE(gh MATCH (a) COLUMNS (a.id AS x))) > 0; SET ERROR: unrecognized node type: 106 Attached a patch to address this. Thanks, Satya --000000000000f8666b064ffa764d Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi hackers,

expression_tree_mutator_imp= l() was missing case handlers for
T_GraphPattern, T_GraphElementPattern,= and T_GraphPropertyRef.
The corresponding expression_tree_walker_impl()= already handled
all three node types, but the mutator did not, causing = an
"unrecognized node type: 106" error whenever a GRAPH_TABLE<= br>subquery appeared in a HAVING clause.

SELECT 1 = FROM hv GROUP BY id
HAVING (SELECT COUNT(*) FROM GRAPH_TABLE(gh MATCH (a= ) COLUMNS (a.id AS x))) > 0;
SET
ERROR= : =C2=A0unrecognized node type: 106

Attached a pat= ch to address this.

Thanks,
Satya
<= /div> --000000000000f8666b064ffa764d-- --000000000000f8666d064ffa764f Content-Type: application/octet-stream; name="0001-Add-Graph-node-support-to-expression_tree_mutator.patch" Content-Disposition: attachment; filename="0001-Add-Graph-node-support-to-expression_tree_mutator.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mo8t3jkq0 RnJvbSAwMDM0MGZhYTNiZTY0NTQxZjZmYWMyYmNhNTU4ODBmNjIxZjk0MGQwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBzYXR5YW5hcmF5YW5hIG5hcmxhcHVyYW0gPHNhdHlhbmFybGFw dXJhbUBnbWFpbC5jb20+CkRhdGU6IFR1ZSwgMjEgQXByIDIwMjYgMTQ6MzM6MzMgKzAwMDAKU3Vi amVjdDogW1BBVENIXSBBZGQgR3JhcGgqIG5vZGUgc3VwcG9ydCB0byBleHByZXNzaW9uX3RyZWVf bXV0YXRvcgoKZXhwcmVzc2lvbl90cmVlX211dGF0b3JfaW1wbCgpIHdhcyBtaXNzaW5nIGNhc2Ug aGFuZGxlcnMgZm9yClRfR3JhcGhQYXR0ZXJuLCBUX0dyYXBoRWxlbWVudFBhdHRlcm4sIGFuZCBU X0dyYXBoUHJvcGVydHlSZWYuClRoZSBjb3JyZXNwb25kaW5nIGV4cHJlc3Npb25fdHJlZV93YWxr ZXJfaW1wbCgpIGFscmVhZHkgaGFuZGxlZAphbGwgdGhyZWUgbm9kZSB0eXBlcywgYnV0IHRoZSBt dXRhdG9yIGRpZCBub3QsIGNhdXNpbmcgYW4KInVucmVjb2duaXplZCBub2RlIHR5cGU6IDEwNiIg ZXJyb3Igd2hlbmV2ZXIgYSBHUkFQSF9UQUJMRQpzdWJxdWVyeSBhcHBlYXJlZCBpbiBhIEhBVklO RyBjbGF1c2UuCgpUaGUgZml4IGFkZHMgdGhyZWUgY2FzZSBoYW5kbGVycyBtaXJyb3JpbmcgdGhl IHdhbGtlcjoKLSBUX0dyYXBoUHJvcGVydHlSZWY6IGxlYWYgbm9kZSwgRkxBVENPUFkgb25seQot IFRfR3JhcGhFbGVtZW50UGF0dGVybjogRkxBVENPUFkgKyBNVVRBVEUgc3ViZXhwciwgd2hlcmVD bGF1c2UKLSBUX0dyYXBoUGF0dGVybjogRkxBVENPUFkgKyBNVVRBVEUgcGF0aF9wYXR0ZXJuX2xp c3QsIHdoZXJlQ2xhdXNlCi0tLQogc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMgICAgICAg ICAgICAgfCAzMSArKysrKysrKysrKysrKysrKysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9ncmFwaF90YWJsZS5vdXQgfCAxNSArKysrKysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9z cWwvZ3JhcGhfdGFibGUuc3FsICAgICAgfCAgOSArKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDU1 IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3Mu YyBiL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCmluZGV4IGMwYjg4MGVjLi5jMThmMmIw ZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKKysrIGIvc3JjL2Jh Y2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKQEAgLTM4MTAsNiArMzgxMCwzNyBAQCBleHByZXNzaW9u X3RyZWVfbXV0YXRvcl9pbXBsKE5vZGUgKm5vZGUsCiAJCQkJcmV0dXJuIChOb2RlICopIG5ld25v ZGU7CiAJCQl9CiAJCQlicmVhazsKKwkJY2FzZSBUX0dyYXBoUHJvcGVydHlSZWY6CisJCQl7CisJ CQkJR3JhcGhQcm9wZXJ0eVJlZiAqbmV3bm9kZTsKKworCQkJCUZMQVRDT1BZKG5ld25vZGUsIG5v ZGUsIEdyYXBoUHJvcGVydHlSZWYpOworCQkJCS8qIGxlYWYgbm9kZSwgbm8gZXhwcmVzc2lvbiBz dWJub2RlcyAqLworCQkJCXJldHVybiAoTm9kZSAqKSBuZXdub2RlOworCQkJfQorCQkJYnJlYWs7 CisJCWNhc2UgVF9HcmFwaEVsZW1lbnRQYXR0ZXJuOgorCQkJeworCQkJCUdyYXBoRWxlbWVudFBh dHRlcm4gKmdlcCA9IChHcmFwaEVsZW1lbnRQYXR0ZXJuICopIG5vZGU7CisJCQkJR3JhcGhFbGVt ZW50UGF0dGVybiAqbmV3bm9kZTsKKworCQkJCUZMQVRDT1BZKG5ld25vZGUsIGdlcCwgR3JhcGhF bGVtZW50UGF0dGVybik7CisJCQkJTVVUQVRFKG5ld25vZGUtPnN1YmV4cHIsIGdlcC0+c3ViZXhw ciwgTGlzdCAqKTsKKwkJCQlNVVRBVEUobmV3bm9kZS0+d2hlcmVDbGF1c2UsIGdlcC0+d2hlcmVD bGF1c2UsIE5vZGUgKik7CisJCQkJcmV0dXJuIChOb2RlICopIG5ld25vZGU7CisJCQl9CisJCQli cmVhazsKKwkJY2FzZSBUX0dyYXBoUGF0dGVybjoKKwkJCXsKKwkJCQlHcmFwaFBhdHRlcm4gKmdw ID0gKEdyYXBoUGF0dGVybiAqKSBub2RlOworCQkJCUdyYXBoUGF0dGVybiAqbmV3bm9kZTsKKwor CQkJCUZMQVRDT1BZKG5ld25vZGUsIGdwLCBHcmFwaFBhdHRlcm4pOworCQkJCU1VVEFURShuZXdu b2RlLT5wYXRoX3BhdHRlcm5fbGlzdCwgZ3AtPnBhdGhfcGF0dGVybl9saXN0LCBMaXN0ICopOwor CQkJCU1VVEFURShuZXdub2RlLT53aGVyZUNsYXVzZSwgZ3AtPndoZXJlQ2xhdXNlLCBOb2RlICop OworCQkJCXJldHVybiAoTm9kZSAqKSBuZXdub2RlOworCQkJfQorCQkJYnJlYWs7CiAJCWRlZmF1 bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG5vZGUgdHlwZTogJWQiLAogCQkJCSAo aW50KSBub2RlVGFnKG5vZGUpKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvZ3JhcGhfdGFibGUub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ncmFwaF90YWJs ZS5vdXQKaW5kZXggYjU3OWUzZGYuLjVlNTdkMjQ4IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL2dyYXBoX3RhYmxlLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL2dyYXBoX3RhYmxlLm91dApAQCAtMTAyMiw0ICsxMDIyLDE5IEBAIFNFTEVDVCBzbmFtZSwg ZG5hbWUgRlJPTSBHUkFQSF9UQUJMRSAoZzEgTUFUQ0ggKHNyYyktPihkZXN0KSBXSEVSRSBzcmMu dnByb3AxID4KIEVSUk9SOiAgc3VicXVlcmllcyB3aXRoaW4gR1JBUEhfVEFCTEUgcmVmZXJlbmNl IGFyZSBub3Qgc3VwcG9ydGVkCiBTRUxFQ1Qgc25hbWUsIGRuYW1lIEZST00gR1JBUEhfVEFCTEUg KGcxIE1BVENIIChzcmMpLT4oZGVzdCkgV0hFUkUgb3V0X2RlZ3JlZShzcmMudm5hbWUpID4gKFNF TEVDVCBtYXgob3V0X2RlZ3JlZShubmFtZSkpIEZST00gR1JBUEhfVEFCTEUgKGcxIE1BVENIIChu b2RlKSBDT0xVTU5TIChub2RlLnZuYW1lIEFTIG5uYW1lKSkpIENPTFVNTlMoc3JjLnZuYW1lIEFT IHNuYW1lLCBkZXN0LnZuYW1lIEFTIGRuYW1lKSk7CiBFUlJPUjogIHN1YnF1ZXJpZXMgd2l0aGlu IEdSQVBIX1RBQkxFIHJlZmVyZW5jZSBhcmUgbm90IHN1cHBvcnRlZAorLS0gR1JBUEhfVEFCTEUg c3VicXVlcnkgaW4gSEFWSU5HIGNsYXVzZQorU0VMRUNUIHNyYy52bmFtZSwgY291bnQoKikKKyAg RlJPTSB2MSBBUyBzcmMKKyAgR1JPVVAgQlkgc3JjLnZuYW1lCisgIEhBVklORyBjb3VudCgqKSA+ PSAoU0VMRUNUIGNvdW50KCopCisgICAgICAgICAgICAgICAgICAgICAgICBGUk9NIEdSQVBIX1RB QkxFIChnMSBNQVRDSCAoYSBJUyB2bDEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBDT0xVTU5TIChhLnZuYW1lIEFTIG4pKQorICAgICAgICAgICAgICAgICAgICAg ICBXSEVSRSBuID0gc3JjLnZuYW1lKTsKKyB2bmFtZSB8IGNvdW50IAorLS0tLS0tLSstLS0tLS0t CisgdjEzICAgfCAgICAgMQorIHYxMiAgIHwgICAgIDEKKyB2MTEgICB8ICAgICAxCisoMyByb3dz KQorCiAtLSBsZWF2ZSB0aGUgb2JqZWN0cyBiZWhpbmQgZm9yIHBnX3VwZ3JhZGUvcGdfZHVtcCB0 ZXN0cwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZ3JhcGhfdGFibGUuc3FsIGIv c3JjL3Rlc3QvcmVncmVzcy9zcWwvZ3JhcGhfdGFibGUuc3FsCmluZGV4IDRmZjk4ODE3Li4zZDUy MjRkMyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZ3JhcGhfdGFibGUuc3FsCisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2dyYXBoX3RhYmxlLnNxbApAQCAtNTgyLDQgKzU4Miwx MyBAQCBTRUxFQ1QgKiBGUk9NIGN1c3RvbWVycyBjbyBXSEVSRSBjby5jdXN0b21lcl9pZCA9IChT RUxFQ1QgY3VzdG9tZXJfaWQgRlJPTSBHUkFQSAogU0VMRUNUIHNuYW1lLCBkbmFtZSBGUk9NIEdS QVBIX1RBQkxFIChnMSBNQVRDSCAoc3JjKS0+KGRlc3QpIFdIRVJFIHNyYy52cHJvcDEgPiAoU0VM RUNUIG1heCh2MS52cHJvcDEpIEZST00gdjEpIENPTFVNTlMoc3JjLnZuYW1lIEFTIHNuYW1lLCBk ZXN0LnZuYW1lIEFTIGRuYW1lKSk7CiBTRUxFQ1Qgc25hbWUsIGRuYW1lIEZST00gR1JBUEhfVEFC TEUgKGcxIE1BVENIIChzcmMpLT4oZGVzdCkgV0hFUkUgb3V0X2RlZ3JlZShzcmMudm5hbWUpID4g KFNFTEVDVCBtYXgob3V0X2RlZ3JlZShubmFtZSkpIEZST00gR1JBUEhfVEFCTEUgKGcxIE1BVENI IChub2RlKSBDT0xVTU5TIChub2RlLnZuYW1lIEFTIG5uYW1lKSkpIENPTFVNTlMoc3JjLnZuYW1l IEFTIHNuYW1lLCBkZXN0LnZuYW1lIEFTIGRuYW1lKSk7CiAKKy0tIEdSQVBIX1RBQkxFIHN1YnF1 ZXJ5IGluIEhBVklORyBjbGF1c2UKK1NFTEVDVCBzcmMudm5hbWUsIGNvdW50KCopCisgIEZST00g djEgQVMgc3JjCisgIEdST1VQIEJZIHNyYy52bmFtZQorICBIQVZJTkcgY291bnQoKikgPj0gKFNF TEVDVCBjb3VudCgqKQorICAgICAgICAgICAgICAgICAgICAgICAgRlJPTSBHUkFQSF9UQUJMRSAo ZzEgTUFUQ0ggKGEgSVMgdmwxKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgQ09MVU1OUyAoYS52bmFtZSBBUyBuKSkKKyAgICAgICAgICAgICAgICAgICAgICAgV0hF UkUgbiA9IHNyYy52bmFtZSk7CisKIC0tIGxlYXZlIHRoZSBvYmplY3RzIGJlaGluZCBmb3IgcGdf dXBncmFkZS9wZ19kdW1wIHRlc3RzCi0tIAoyLjQzLjAKCg== --000000000000f8666d064ffa764f--