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 1wHF5N-006zLi-2k for pgsql-hackers@arkaria.postgresql.org; Mon, 27 Apr 2026 06:04:50 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wHF5L-00CPCa-33 for pgsql-hackers@arkaria.postgresql.org; Mon, 27 Apr 2026 06:04:47 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wHF5L-00CPCS-20 for pgsql-hackers@lists.postgresql.org; Mon, 27 Apr 2026 06:04:47 +0000 Received: from mail-vs1-xe30.google.com ([2607:f8b0:4864:20::e30]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wHF5J-00000003Hta-2nGA for pgsql-hackers@lists.postgresql.org; Mon, 27 Apr 2026 06:04:47 +0000 Received: by mail-vs1-xe30.google.com with SMTP id ada2fe7eead31-610aadb2d9fso3182890137.0 for ; Sun, 26 Apr 2026 23:04:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1777269884; cv=none; d=google.com; s=arc-20240605; b=iILMA/6YrCylUZ0kLq7lzeLMlmzufKq/7FBfuQI+SB1piIjw/LYSCU8dkruoVYeuGT aUk+cqXqJyqHGdo6N8cRB+28clSdis3We0IKAhgmfqh3tmxuRBItSoZuE9eObhZDfrAA /pUkf7ar5/c18J/Vp1daBz1QT5WKnMowiQDqLYNB9AuBDDaE61re5HLJPP3AtxfDFykC n4tEUOoalyXLFWlJJvz24gBQnx5B0abshDpSEf991OGaVWVeyxprfaXiONVFOcCp8V5O pq9BOaVwLcd4VfxCve+H1f4AZbR9wnFgO1j1ZsKaL1WV4HWKV/wKDIGzxH1pex+uKel8 Stng== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=QTtGE1v2pPzNwMCYJ0IQ5364PKgc92qKirIHviN5lZI=; fh=dVZWop4VO5hMFE6Yx9zR6qWrho1jU/My/MSOUeP3XtA=; b=IAtcm+Hnv99cZaBNpzxon27Xu9lOZj0n/qrP48cylenF2pvwoXIdH1xu7vuAGNch+Y h2HV7q0z/k0ICz7EmLkdnmB+2PkGMv7p+Ueq5+iHwNuqwSRaN41sPDhTq3asudzoUgGa Z4hGOZh2Gpe2O4ltolz9y7kjF27Rwu0akeD0XER6dr4BC+E0wjA3sWhybnxA/57EIfYO quwtErGMtVefgDJJatSrWu7d1bP1C1OsM6nx6p+4SwvRxD1JSX3Mm6ZySUY76D86XYZX 8eOh2vhaYufYtVNnHDikDiffK7JdZlsxS65tuQv8JuLno/WwGFnra3BOHVodzLKoHKWm BQQQ==; 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=1777269884; x=1777874684; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=QTtGE1v2pPzNwMCYJ0IQ5364PKgc92qKirIHviN5lZI=; b=aUIVe5Aqxuk0g2HA1EBDMcf5CzIrtSvqiEpiC+y5yyoB8tH90D8XfeteW2cK4bay+a e9W5lG8bj4Y8eWU7EpEgjYvVYWPpEo1i7bwaZiiAWY112q1PN0Xk6AD+xEx+tNUkI6fR pQpO776kGqOodjzFUD9SuguN4obd+mXr0C6GYAwfXrc9aRG7lr/rZiC/tvBiwnMOJBJu Jks3EQd4JfWvmxuzSFoP6cDZXc5qYf28hLuwonb5e6e40hIFFu6fFeSD1nijjLs6x0wq UiyDwA27EO3FHAg+eU+D+ns3d1OgfBIESd9xDVR/iYxWUMQejQPo/ttYpfgZU6NRQdqy n/IQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777269884; x=1777874684; h=cc: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=QTtGE1v2pPzNwMCYJ0IQ5364PKgc92qKirIHviN5lZI=; b=qOpTqN0W8JQZdHFm+R9peNrT/KNYVOAJ4AStMdIm6SF2Ig2DAQbfZLcl1izj8wjzyC Ym4nJQGWFJYKeYgoQyxn/R6D14W8ps5IIrp/6LP/8OG/pyBXCndyoQN6O3VRkrhHpt/H lS/glzn9INBjXbmCrXXk495VB/2aYcu2HP6zDDkvfB58EWwa92pm7XyGGWU14Op4Oi9M qFHpbN8v8EZ5nodsp79EQizUsBpiS3gBGxqaLqb0j7kIHmp1sjgrjG6x8slrA/V+n6NW lQBNvLEa2odD7cTyj7vIXcCnAZXAjo66kmI6MCTihgNsz/AQdlwkVzUeAKWaFv3roAxt nA+Q== X-Gm-Message-State: AOJu0YwEOyL1lhS0HMk9nxCWg/r2lFLozxikbJepnrCdJiOuzJmESBqd PZVn+SLLliNpJgL8uhqi0shraZx27ae+ExMhCBWfsgauLZUaw6eUvfg1sEot2j1UqQa0S6DfPZ8 Qq56//ZfI1dCAt69R16XQO756s7FCM8c= X-Gm-Gg: AeBDiev7d0aSRgqG/y86mGqhp/lj9TXUOOaDMc2ObCOxwvXNKrr48kolRpe7TnC0vtz geBcWlU2t0PWb7YT1WoW8maFRso14tpZGVPbS3Q7iAmT2MZjmv7MeipUdOAMXz7CwLBlyA/BNQb 2vaOxP6e/Uzx4Dd2qU50yw1PIBRT+xyOVfW9fOQtFZuSFgJ+NbHli/vmx1kxjLwbH2dzcUyuGAL EanUvLqDIEYkbHCHSGD5bcMbvXudatNO8RblD63z4Fbm2O3wbeJw2ZuvKuiKEzLEwEoAB+0Axqm 3Pk1qtzjNh6wGdiTVQ== X-Received: by 2002:a05:6102:6c9:b0:607:f24a:1bef with SMTP id ada2fe7eead31-616f60b3913mr17954142137.13.1777269883896; Sun, 26 Apr 2026 23:04:43 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: SATYANARAYANA NARLAPURAM Date: Sun, 26 Apr 2026 23:04:32 -0700 X-Gm-Features: AVHnY4K_1NByzPxD--4JhUncKt4K5K_aPlmYaPV3uZHZ5VYDbOfolisizZ10HGM Message-ID: Subject: Re: [PATCH] Resolve unknown-type literals in GRAPH_TABLE COLUMNS To: Junwang Zhao Cc: PostgreSQL Hackers , Ashutosh Bapat Content-Type: multipart/mixed; boundary="00000000000019af7206506ae422" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000019af7206506ae422 Content-Type: multipart/alternative; boundary="00000000000019af7006506ae420" --00000000000019af7006506ae420 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi, On Sun, Apr 26, 2026 at 8:10=E2=80=AFAM Junwang Zhao wr= ote: > Hi SATYANARAYANA, > > On Sun, Apr 26, 2026 at 3:53=E2=80=AFAM SATYANARAYANA NARLAPURAM > wrote: > > > > Hi hackers, > > > > transformRangeGraphTable() calls transformExpr() and > > assign_list_collations() for COLUMNS expressions but missed calling > > resolveTargetListUnknowns(). As a result, literals such as 'val1' > > in a COLUMNS clause retained type "unknown", causing failures with > > ORDER BY, UNION, and output conversions. > > > > Fix by calling resolveTargetListUnknowns() on the columns target > > list right after assign_list_collations(), similar to SELECT target > lists in > > transformSelectStmt(). > > > > Attached a patch to fix this, which also includes test cases to > reproduce. > > I can reproduce this and the patch fixes it. > > One question: why is resolveTargetListUnknowns called after > assign_list_collations? > > I'm asking because in transformSelectStmt, resolveTargetListUnknowns > is invoked before assign_query_collations. It might not matter, but keepi= ng > the order consistent would be good for readers. Updated the patch. It should be before. Thanks, Satya --00000000000019af7006506ae420 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi,

On Sun, Apr 26, = 2026 at 8:10=E2=80=AFAM Junwang Zhao <zhjwpku@gmail.com> wrote:
Hi SATYANARAYANA,

On Sun, Apr 26, 2026 at 3:53=E2=80=AFAM SATYANARAYANA NARLAPURAM
<satyanar= lapuram@gmail.com> wrote:
>
> Hi hackers,
>
> transformRangeGraphTable() calls transformExpr() and
> assign_list_collations() for COLUMNS expressions but missed calling > resolveTargetListUnknowns(). As a result, literals such as 'val1&#= 39;
> in a COLUMNS clause retained type "unknown", causing failure= s with
> ORDER BY, UNION, and output conversions.
>
> Fix by calling resolveTargetListUnknowns() on the columns target
> list right after assign_list_collations(), similar to SELECT target li= sts in
> transformSelectStmt().
>
> Attached a patch to fix this, which also includes test cases to reprod= uce.

I can reproduce this and the patch fixes it.

One question: why is resolveTargetListUnknowns called after
assign_list_collations?

I'm asking because in transformSelectStmt, resolveTargetListUnknowns is invoked before assign_query_collations. It might not matter, but keeping=
the order consistent would be good for readers.

=
Updated the patch. It should be before.


<= /div>
Thanks,
Satya=C2=A0
--00000000000019af7006506ae420-- --00000000000019af7206506ae422 Content-Type: application/octet-stream; name="v2-0001-Resolve-unknown-type-literals-in-GRAPH_TABLE-COLUMNS.patch" Content-Disposition: attachment; filename="v2-0001-Resolve-unknown-type-literals-in-GRAPH_TABLE-COLUMNS.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mogslc4j0 RnJvbTogU2F0eWEgTmFybGFwdXJhbSA8c2F0eWFuYXJsYXB1cmFtQGdtYWlsLmNvbT4KU3ViamVj dDogW1BBVENIXSBSZXNvbHZlIHVua25vd24tdHlwZSBsaXRlcmFscyBpbiBHUkFQSF9UQUJMRSBD T0xVTU5TIGV4cHJlc3Npb25zCgp0cmFuc2Zvcm1SYW5nZUdyYXBoVGFibGUoKSBjYWxscyB0cmFu c2Zvcm1FeHByKCkgYW5kCmFzc2lnbl9saXN0X2NvbGxhdGlvbnMoKSBmb3IgQ09MVU1OUyBleHBy ZXNzaW9ucyBidXQgbWlzc2VkIGNhbGxpbmcKcmVzb2x2ZVRhcmdldExpc3RVbmtub3ducygpLiBB cyBhIHJlc3VsdCwgbGl0ZXJhbHMgc3VjaCBhcyAnY29sMScKaW4gYSBDT0xVTU5TIGNsYXVzZSBy ZXRhaW5lZCB0eXBlICJ1bmtub3duIiwgY2F1c2luZyBmYWlsdXJlcyB3aXRoCk9SREVSIEJZLCBV TklPTiwgYW5kIG91dHB1dCBjb252ZXJzaW9ucy4KCkZpeCBieSBjYWxsaW5nIHJlc29sdmVUYXJn ZXRMaXN0VW5rbm93bnMoKSBvbiB0aGUgY29sdW1ucyB0YXJnZXQKbGlzdCByaWdodCBiZWZvcmUg YXNzaWduX2xpc3RfY29sbGF0aW9ucygpLCBzaW1pbGFyIHRvIFNFTEVDVCB0YXJnZXQKbGlzdHMg aW4gdHJhbnNmb3JtU2VsZWN0U3RtdCgpLgotLS0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV9jbGF1c2UuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jbGF1c2UuYwpp bmRleCBmMzczNjk3OS4uZjY3OWY1MTAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV9jbGF1c2UuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY2xhdXNlLmMKQEAg LTEwMDQsNiArMTAwNCw5IEBAIHRyYW5zZm9ybVJhbmdlR3JhcGhUYWJsZShQYXJzZVN0YXRlICpw c3RhdGUsIFJhbmdlR3JhcGhUYWJsZSAqcmd0KQogCQljb2x1bW5zID0gbGFwcGVuZChjb2x1bW5z LCB0ZSk7CiAJfQogCisJLyogUmVzb2x2ZSB1bmtub3duLXR5cGUgbGl0ZXJhbHMgdG8gdGV4dCAq LworCXJlc29sdmVUYXJnZXRMaXN0VW5rbm93bnMocHN0YXRlLCBjb2x1bW5zKTsKKwogCS8qCiAJ ICogQXNzaWduIGNvbGxhdGlvbnMgdG8gY29sdW1uIGV4cHJlc3Npb25zIG5vdyBzaW5jZQogCSAq IGFzc2lnbl9xdWVyeV9jb2xsYXRpb25zKCkgZG9lcyBub3QgcHJvY2VzcyByYW5nZXRhYmxlIGVu dHJpZXMuCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2dyYXBoX3RhYmxl Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZ3JhcGhfdGFibGUub3V0CmluZGV4IGQz YzIwNjEwLi4yMTJmYTI5ZiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9n cmFwaF90YWJsZS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ncmFwaF90YWJs ZS5vdXQKQEAgLTExMTAsNCArMTExMCw1OCBAQCBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChn MSBNQVRDSCAoYSBJUyB2bDEpIENPTFVNTlMgKHVwcGVyKGEudm5hbWUpIEFTIG4pKSBPUgogIFYx MwogKDMgcm93cykKIAorLS0gU3RyaW5nIGFuZCBOVUxMIGxpdGVyYWxzIGluIENPTFVNTlMgbXVz dCByZXNvbHZlIHRvIHByb3BlciB0eXBlcworLS0gKG5vdCByZW1haW4gYXMgInVua25vd24iKQor U0VMRUNUIHBnX3R5cGVvZihjMSksIGMxCisgIEZST00gR1JBUEhfVEFCTEUgKGcxIE1BVENIIChh IElTIHZsMSkKKyAgICBDT0xVTU5TIChhLnZuYW1lIEFTIG4sICd2YWwxJyBBUyBjMSkpIE9SREVS IEJZIG47CisgcGdfdHlwZW9mIHwgIGMxICAKKy0tLS0tLS0tLS0tKy0tLS0tLQorIHRleHQgICAg ICB8IHZhbDEKKyB0ZXh0ICAgICAgfCB2YWwxCisgdGV4dCAgICAgIHwgdmFsMQorKDMgcm93cykK KworLS0gT1JERVIgQlkgb24gYSBsaXRlcmFsIGNvbHVtbgorU0VMRUNUICogRlJPTSBHUkFQSF9U QUJMRSAoZzEgTUFUQ0ggKGEgSVMgdmwxKQorICAgIENPTFVNTlMgKGEudm5hbWUgQVMgbiwgJ3Zh bDEnIEFTIGMxKSkgT1JERVIgQlkgYzEsIG47CisgIG4gIHwgIGMxICAKKy0tLS0tKy0tLS0tLQor IHYxMSB8IHZhbDEKKyB2MTIgfCB2YWwxCisgdjEzIHwgdmFsMQorKDMgcm93cykKKworLS0gVU5J T04gYmV0d2VlbiBHUkFQSF9UQUJMRSBsaXRlcmFsIGNvbHVtbiBhbmQgcGxhaW4gdGV4dAorU0VM RUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZzEgTUFUQ0ggKGEgSVMgdmwxKQorICAgIENPTFVNTlMg KGEudm5hbWUgQVMgbiwgJ3ZhbDEnIEFTIGMxKSkKKyAgVU5JT04gQUxMIFNFTEVDVCAndmFsMics ICd2YWwzJzsKKyAgbiAgIHwgIGMxICAKKy0tLS0tLSstLS0tLS0KKyB2MTEgIHwgdmFsMQorIHYx MiAgfCB2YWwxCisgdjEzICB8IHZhbDEKKyB2YWwyIHwgdmFsMworKDQgcm93cykKKworLS0gTlVM TCBsaXRlcmFsIG11c3Qgbm90IGNhdXNlIGZhaWx1cmVzCitTRUxFQ1QgbiwgcGdfdHlwZW9mKGMx KQorICBGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRDSCAoYSBJUyB2bDEpCisgICAgQ09MVU1OUyAo YS52bmFtZSBBUyBuLCBOVUxMIEFTIGMxKSkgT1JERVIgQlkgbjsKKyAgbiAgfCBwZ190eXBlb2Yg CistLS0tLSstLS0tLS0tLS0tLQorIHYxMSB8IHRleHQKKyB2MTIgfCB0ZXh0CisgdjEzIHwgdGV4 dAorKDMgcm93cykKKworLS0gaW50ZWdlciBsaXRlcmFsIHR5cGUgaXMgcHJlc2VydmVkCitTRUxF Q1QgcGdfdHlwZW9mKGMxKQorICBGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRDSCAoYSBJUyB2bDEp CisgICAgQ09MVU1OUyAoNDIgQVMgYzEpKSBMSU1JVCAxOworIHBnX3R5cGVvZiAKKy0tLS0tLS0t LS0tCisgaW50ZWdlcgorKDEgcm93KQorCiAtLSBsZWF2ZSB0aGUgb2JqZWN0cyBiZWhpbmQgZm9y IHBnX3VwZ3JhZGUvcGdfZHVtcCB0ZXN0cwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9z cWwvZ3JhcGhfdGFibGUuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZ3JhcGhfdGFibGUuc3Fs CmluZGV4IDI1MjFjNGNhLi4zZDc0YWI0YyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9z cWwvZ3JhcGhfdGFibGUuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2dyYXBoX3RhYmxl LnNxbApAQCAtNjM0LDQgKzYzNCwyNSBAQCBTRUxFQ1Qgc3JjLnZuYW1lLCBjb3VudCgqKQogU0VM RUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZzEgTUFUQ0ggKGEgSVMgdmwxKSBDT0xVTU5TIChhLnZu YW1lIHx8ICchJyBBUyBuKSkgT1JERVIgQlkgbjsKIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUg KGcxIE1BVENIIChhIElTIHZsMSkgQ09MVU1OUyAodXBwZXIoYS52bmFtZSkgQVMgbikpIE9SREVS IEJZIG47CiAKKy0tIFN0cmluZyBhbmQgTlVMTCBsaXRlcmFscyBpbiBDT0xVTU5TIG11c3QgcmVz b2x2ZSB0byBwcm9wZXIgdHlwZXMKKy0tIChub3QgcmVtYWluIGFzICJ1bmtub3duIikKK1NFTEVD VCBwZ190eXBlb2YoYzEpLCBjMQorICBGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRDSCAoYSBJUyB2 bDEpCisgICAgQ09MVU1OUyAoYS52bmFtZSBBUyBuLCAndmFsMScgQVMgYzEpKSBPUkRFUiBCWSBu OworLS0gT1JERVIgQlkgb24gYSBsaXRlcmFsIGNvbHVtbgorU0VMRUNUICogRlJPTSBHUkFQSF9U QUJMRSAoZzEgTUFUQ0ggKGEgSVMgdmwxKQorICAgIENPTFVNTlMgKGEudm5hbWUgQVMgbiwgJ3Zh bDEnIEFTIGMxKSkgT1JERVIgQlkgYzEsIG47CistLSBVTklPTiBiZXR3ZWVuIEdSQVBIX1RBQkxF IGxpdGVyYWwgY29sdW1uIGFuZCBwbGFpbiB0ZXh0CitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxF IChnMSBNQVRDSCAoYSBJUyB2bDEpCisgICAgQ09MVU1OUyAoYS52bmFtZSBBUyBuLCAndmFsMScg QVMgYzEpKQorICBVTklPTiBBTEwgU0VMRUNUICd2YWwyJywgJ3ZhbDMnOworLS0gTlVMTCBsaXRl cmFsIG11c3Qgbm90IGNhdXNlIGZhaWx1cmVzCitTRUxFQ1QgbiwgcGdfdHlwZW9mKGMxKQorICBG Uk9NIEdSQVBIX1RBQkxFIChnMSBNQVRDSCAoYSBJUyB2bDEpCisgICAgQ09MVU1OUyAoYS52bmFt ZSBBUyBuLCBOVUxMIEFTIGMxKSkgT1JERVIgQlkgbjsKKy0tIGludGVnZXIgbGl0ZXJhbCB0eXBl IGlzIHByZXNlcnZlZAorU0VMRUNUIHBnX3R5cGVvZihjMSkKKyAgRlJPTSBHUkFQSF9UQUJMRSAo ZzEgTUFUQ0ggKGEgSVMgdmwxKQorICAgIENPTFVNTlMgKDQyIEFTIGMxKSkgTElNSVQgMTsKKwog LS0gbGVhdmUgdGhlIG9iamVjdHMgYmVoaW5kIGZvciBwZ191cGdyYWRlL3BnX2R1bXAgdGVzdHMK --00000000000019af7206506ae422--