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 1wMgUU-000GjU-1x for pgsql-hackers@arkaria.postgresql.org; Tue, 12 May 2026 06:21:14 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wMgUS-003N7P-07 for pgsql-hackers@arkaria.postgresql.org; Tue, 12 May 2026 06:21:12 +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 1wMgUR-003N7F-2J for pgsql-hackers@lists.postgresql.org; Tue, 12 May 2026 06:21:11 +0000 Received: from mail-wr1-x431.google.com ([2a00:1450:4864:20::431]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wMgUP-00000000Amd-0kBW for pgsql-hackers@lists.postgresql.org; Tue, 12 May 2026 06:21:11 +0000 Received: by mail-wr1-x431.google.com with SMTP id ffacd0b85a97d-43fe62837baso2608245f8f.3 for ; Mon, 11 May 2026 23:21:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1778566868; cv=none; d=google.com; s=arc-20240605; b=XuKjOsMjs/yzdKKDL376W4kJYCL+R1mqQ6Wa3XF76YR2XZrYm57QM2pP96dBG5mtLM 6U9EVaKiUWA7s4FoXbKdv1r8n7eWloemFnFxdT9LRltkZw4rlMZic077tzqlyCdx6800 oRJ+IeAQmH9PgVJ3boTZjbvizQmuUAvpQdcH5bXpld9QfpRoglhSBG5y7i//yKrnwJYJ WV2mTnolKJ8D8BxJ6Y2Fp3XaLeRbsWHNH7bg1E1C4FcsKRg5Dw0qQNJINwm2iYw4g+ys ySJOY3E2vCIBtIYO4fMHqr/elA/kgEzNkM6EyG2icaPkLjPITtJWMI/+ZkF+MvS5TQg9 xlCg== 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=DpfH6OkAgyoNvfNrjYfRAC9YRLyVqFwpMiJNtGAHcVA=; fh=fT8rifTmFkP/XvJtIZl0kq5+SivlQNCXqc39E5K7mXo=; b=aXMVyc8EV9tMRLR5Xctg9LIavchoVTY3nybbA8K0WwO7pePiDMgxT4xPA5LZPrN6m6 YBYeIJN8MJtjo0WHixGJ+H2JMrlm0UkT48NMJ/xu39dCgtTnTN4OTusnfO4gx5cyS5AZ 4X06UNBekmhq0l6xtArbRSR6D0qFokTOoStbIOl43DlUtqMCCFSIOJqrK54TvVjjBg65 y0kr3+nUNQkvai07l+v73cYPP/pw91xSAGFK2usNBgjiSU+1K2RgHKfchqbbVzPUWP4c BRBabsUG+8CmcBg0jgexA03WhRFuxBgfFSIt3gcEiRxaaUgxm3/Zx6OBB+ooYzrOaJGX L99g==; 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=1778566868; x=1779171668; 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=DpfH6OkAgyoNvfNrjYfRAC9YRLyVqFwpMiJNtGAHcVA=; b=nH2Juaf96shyg46ipdLL7R5CVWQEN0j4bZYU6lbsz860o/6sHVKFfvAQRzSzNeTHKF gnt6aO0KpvIkCocK0Xy4pLOpOyJ/n7yYEJahkHgJxdTLNSpSphPqFoZcn4KAX1aB48jC 6qY6ChULI/22glWen17fJnTJP2COwS0GcQb3CXzyHAGUwh8Bw64Z6wFR6EmUsnHZiW9a g2RcV+9wfNfRKnI18olw3XyU+h4oBtNpk/oprG/9y9e8BAhWXo+B2WFivwTLyQC22DTs EKJqt/tyCDJSdgSyr4qxqCtnPrYEMPkiG6Sexjfn0gVovk9LauIGEwTn5pvkw33kVoWE Z3Pw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778566868; x=1779171668; 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=DpfH6OkAgyoNvfNrjYfRAC9YRLyVqFwpMiJNtGAHcVA=; b=F4LIAtrjKEW5PCR4iOp+g+cYciRr/7zCqViujY8g0eFV7UJvMKfsHt2mOgPD3SqxjJ LS6pNnHe4YL9AgDxZdSbuMFLWzhnDLvpR5kGFhJqpPcFv79Skt6xj2Kyw17DCNjg8Lnh acIZsciMTTxUOos0VZm4uq1VHT9F0av1IWNdlYgz+4q0kT+VcuKMRbQvXHrT8Du5OpNs zFB4oVtNgtuANvXRYnvEBaEqPk/PKC94o6r/K5YzvywGrPOvZS3QPISv8rkmnd+MsAtJ xAX6TMUcu4wnEDwWai8qjIyeVe1ZnKkAQIT3zscGJisXYd5btEzO21FmB9WO520yAtwU 0eJw== X-Forwarded-Encrypted: i=1; AFNElJ+9UCSvLa2CSCv1ojrloLR8SpnMgsRqKOGt2LW7cvkMjmcToBu5Uo7N8WeO7UwlCykfp47j7cNy5P7oY4Ap@lists.postgresql.org X-Gm-Message-State: AOJu0YzYuIjjgweA7x5fdXG8kq0vFPQ8KCA3+IscC/Nbhwt8nCtOmI6L YC1IGb29U5plg+syoJaE1TKU+Qo3xyVA2cven0/K/rTJd6sG1h9kfYRcFod55EluYS9X3zCGFbE qBNV7TeeCczj3zeD6F6LnUfdWTHoO+Bo= X-Gm-Gg: Acq92OGSWEqkujG+E0DWLhjPojc7fmDZ75LQxGFYpVwEzgRGFA2IJRjUtAHaijWOxwJ qiuK081yS+4WW5U70s9ltR41tJqwQFf+Nzogyp09we09dsoA4B6fHHq6s8GicTXZC58zrs5gm+O PDiyw5mQeJnY0+dl+89A0BmiXuvmUtjo8gFTFjSI/OcYXIjMmaPNictevQuGpRxr10BbE1qj3Cr 4ieSqHpW6hA+YQ8fzazg9PeTeidlNgzCVBTHQIMvswsnMokTPHNiDSsMkC2zPYT9HSAD5uf/hPq eWCI1h/+/ogVroyU+PXbpF3r+bytoKcocl+EdOjEUPv3WHyX7hR+6pRp9xlZ3tA= X-Received: by 2002:a05:6000:2085:b0:452:d03a:7abe with SMTP id ffacd0b85a97d-45b1262ee7dmr1917196f8f.17.1778566867781; Mon, 11 May 2026 23:21:07 -0700 (PDT) MIME-Version: 1.0 References: <2b3490b5-e0e5-4f3b-9165-df1990bee70b@eisentraut.org> In-Reply-To: <2b3490b5-e0e5-4f3b-9165-df1990bee70b@eisentraut.org> From: Ashutosh Bapat Date: Tue, 12 May 2026 11:50:55 +0530 X-Gm-Features: AVHnY4Jc-vgrGZdMLU13Gnmt_GTAU_XDMZuUhg6glwdGQM7qfpSTldAlzywqou0 Message-ID: Subject: Re: [PATCH] Resolve unknown-type literals in GRAPH_TABLE COLUMNS To: Peter Eisentraut Cc: SATYANARAYANA NARLAPURAM , Junwang Zhao , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="0000000000005d4e68065198de18" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000005d4e68065198de18 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Mon, May 4, 2026 at 8:42=E2=80=AFPM Peter Eisentraut wrote: > > On 29.04.26 16:09, Ashutosh Bapat wrote: > > On Mon, Apr 27, 2026 at 11:34=E2=80=AFAM SATYANARAYANA NARLAPURAM > > wrote: > >> > >> Hi, > >> > >> On Sun, Apr 26, 2026 at 8:10=E2=80=AFAM Junwang Zhao wrote: > >>> > >>> 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 repr= oduce. > >>> > >>> 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 k= eeping > >>> the order consistent would be good for readers. > >> > >> > >> Updated the patch. It should be before. > > > > Do we really need a test for ORDER BY on a literal column? I replaced > > all the test queries with a single one which covers all the scenarios > > covered by those queries. > > > > The patch needed to consider pstate->p_resolve_unknowns. Unknown > > literals are not resolved as text always. See the test query. > > I couldn't find a commit to apply this patch cleanly (the subject says > patch 5/5, so maybe you had some unpublished local changes?). I am maintaining all the SQL/PGQ fixes in the same branch and creating patches from that branch. Hence 5/5. But still it shouldn't have applied cleanly. Both git cherry-pick and git am , on a fresh branch succeeded. Please let me know if you still face the issue. > After > applying the test case manually, it looks like the test output is > already correct without the code change. So if this patch is still > required, we need a better test case. > Yes, the test query doesn't reproduce the bug. Actually all but only two queries from the Satya's patch show the bug. I have included a test query which fails, with expected error message, without code changes now. Also I don't think we need a separate section for this test query. Included the query in one of the earliest sections in the file. --=20 Best Wishes, Ashutosh Bapat --0000000000005d4e68065198de18 Content-Type: text/x-patch; charset="US-ASCII"; name="v20260512-0001-Resolve-unknown-type-literals-in-GRAPH_TAB.patch" Content-Disposition: attachment; filename="v20260512-0001-Resolve-unknown-type-literals-in-GRAPH_TAB.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mp28qxsv0 RnJvbSA2OWZjYmYyYjkwN2ZmODNhYWExNzU5M2M1NTk2ZTQ5NWNjMDcyMGU3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBc2h1dG9zaCBCYXBhdCA8YXNodXRvc2guYmFwYXQub3NzQGdt YWlsLmNvbT4KRGF0ZTogV2VkLCAyOSBBcHIgMjAyNiAxOTowNzoxMyArMDUzMApTdWJqZWN0OiBb UEFUQ0ggdjIwMjYwNTEyIDQvNF0gUmVzb2x2ZSB1bmtub3duLXR5cGUgbGl0ZXJhbHMgaW4gR1JB UEhfVEFCTEUKIENPTFVNTlMKClRoZSB1bmtub3duLXR5cGUgbGl0ZXJhbHMgaW4gdGhlIENPTFVN TlMgY2xhdXNlIG9mIGEgR1JBUEhfVEFCTEUgYXJlIG5vdwpyZXNvbHZlZCB0byB0aGUgYXBwcm9w cmlhdGUgdHlwZXMsIGNhdXNpbmcgdmFyaW91cyBmYWlsdXJlcy4gQ2FsbApyZXNvbHZlVGFyZ2V0 TGlzdFVua25vd25zKCkgb24gdGhlIGNvbHVtbnMgdGFyZ2V0bGlzdCB0byByZXNvbHZlIHVua25v bncgdHlwZQpsaXRlcmFscy4gRG8gdGhpcyBiZWZvcmUgYXNzaWduaW5nIGNvbGxhdGlvbnMgc28g dGhhdCB0aGUgcmVzb2x2ZWQgdHlwZXMgYXJlCnVzZWQgZm9yIGNvbGxhdGlvbnMgYXNzaWdubWVu dC4KClJlcG9ydGVkIGJ5OiBTYXR5YSBOYXJsYXB1cmFtIDxzYXR5YW5hcmxhcHVyYW1AZ21haWwu Y29tPgpBdXRob3I6IFNhdHlhIE5hcmxhcHVyYW0gPHNhdHlhbmFybGFwdXJhbUBnbWFpbC5jb20+ CkF1dGhvcjogQXNodXRvc2ggQmFwYXQgPGFzaHV0b3NoLmJhcGF0Lm9zc0BnbWFpbC5jb20+ClJl dmlld2VkIGJ5OiBKdW53YW5nIFpoYW8gPHpoandwa3VAZ21haWwuY29tPgpEaXNjdXNzaW9uOiBo dHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9tZXNzYWdlLWlkL0NBSGcrUURjeUtOV3l6RG9LTXhp Wk5qdjdDLXdBeHM4eTBab05rT1YxMzdZK25rM1VYZ0BtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9jbGF1c2UuYyAgICAgICAgIHwgNCArKysrCiBzcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL2dyYXBoX3RhYmxlLm91dCB8IDkgKysrKysrKysrCiBzcmMvdGVzdC9y ZWdyZXNzL3NxbC9ncmFwaF90YWJsZS5zcWwgICAgICB8IDIgKysKIDMgZmlsZXMgY2hhbmdlZCwg MTUgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9j bGF1c2UuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jbGF1c2UuYwppbmRleCA0MjcwYzIz ODJjNC4uM2QwNTg1YjhlZmIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9j bGF1c2UuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY2xhdXNlLmMKQEAgLTEwMDMs NiArMTAwMywxMCBAQCB0cmFuc2Zvcm1SYW5nZUdyYXBoVGFibGUoUGFyc2VTdGF0ZSAqcHN0YXRl LCBSYW5nZUdyYXBoVGFibGUgKnJndCkKIAkJY29sdW1ucyA9IGxhcHBlbmQoY29sdW1ucywgdGUp OwogCX0KIAorCS8qIHJlc29sdmUgYW55IHN0aWxsLXVucmVzb2x2ZWQgb3V0cHV0IGNvbHVtbnMg YXMgYmVpbmcgdHlwZSB0ZXh0ICovCisJaWYgKHBzdGF0ZS0+cF9yZXNvbHZlX3Vua25vd25zKQor CQlyZXNvbHZlVGFyZ2V0TGlzdFVua25vd25zKHBzdGF0ZSwgY29sdW1ucyk7CisKIAkvKgogCSAq IEFzc2lnbiBjb2xsYXRpb25zIHRvIGNvbHVtbiBleHByZXNzaW9ucyBub3cgc2luY2UKIAkgKiBh c3NpZ25fcXVlcnlfY29sbGF0aW9ucygpIGRvZXMgbm90IHByb2Nlc3MgcmFuZ2V0YWJsZSBlbnRy aWVzLgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ncmFwaF90YWJsZS5v dXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2dyYXBoX3RhYmxlLm91dAppbmRleCBjYzZk ODBhZmQ4Mi4uZThkNDlmZDVjZDQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvZ3JhcGhfdGFibGUub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZ3JhcGhf dGFibGUub3V0CkBAIC0xNjAsNiArMTYwLDE1IEBAIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUg KG15c2hvcCBNQVRDSCAoYyBJUyBjdXN0b21lcnMpIENPTFVNTlMgKGMubmFtZSkpOwogIGN1c3Rv bWVyMwogKDMgcm93cykKIAorLS0gVW5rbm93biB0eXBlIHJlc29sdXRpb24KK1NFTEVDVCAqLCBw Z190eXBlb2YodW5rbm93bl9jb2wpIEFTIHVua25vd25fY29sX3R5cGUsIHBnX3R5cGVvZihudWxs X2NvbCkgQVMgbnVsbF9jb2xfdHlwZSBGUk9NIEdSQVBIX1RBQkxFIChteXNob3AgTUFUQ0ggKGMg SVMgY3VzdG9tZXJzKSBDT0xVTU5TIChjLm5hbWUsICd1bmtub3duLWxpdGVyYWwnIEFTIHVua25v d25fY29sLCBOVUxMIEFTIG51bGxfY29sKSk7CisgICBuYW1lICAgIHwgICB1bmtub3duX2NvbCAg IHwgbnVsbF9jb2wgfCB1bmtub3duX2NvbF90eXBlIHwgbnVsbF9jb2xfdHlwZSAKKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLQorIGN1c3RvbWVyMSB8IHVua25vd24tbGl0ZXJhbCB8ICAgICAgICAgIHwgdGV4 dCAgICAgICAgICAgICB8IHRleHQKKyBjdXN0b21lcjIgfCB1bmtub3duLWxpdGVyYWwgfCAgICAg ICAgICB8IHRleHQgICAgICAgICAgICAgfCB0ZXh0CisgY3VzdG9tZXIzIHwgdW5rbm93bi1saXRl cmFsIHwgICAgICAgICAgfCB0ZXh0ICAgICAgICAgICAgIHwgdGV4dAorKDMgcm93cykKKwogU0VM RUNUICogRlJPTSBHUkFQSF9UQUJMRSAobXlzaG9wIE1BVENIIChjIElTIGN1c3RvbWVycyBXSEVS RSBjLmFkZHJlc3MgPSAnVVMnKS1bSVMgY3VzdG9tZXJfb3JkZXJzXS0+KG8gSVMgb3JkZXJzKSBD T0xVTU5TIChjLm5hbWUpKTsKICAgIG5hbWUgICAgCiAtLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEv c3JjL3Rlc3QvcmVncmVzcy9zcWwvZ3JhcGhfdGFibGUuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9z cWwvZ3JhcGhfdGFibGUuc3FsCmluZGV4IDBlMzgxZWM3MmJjLi5lNzYxZjA5ZTA1NyAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZ3JhcGhfdGFibGUuc3FsCisrKyBiL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL2dyYXBoX3RhYmxlLnNxbApAQCAtMTM0LDYgKzEzNCw4IEBAIElOU0VSVCBJ TlRPIHdpc2hsaXN0X2l0ZW1zICh3aXNobGlzdF9pdGVtc19pZCwgd2lzaGxpc3RfaWQsIHByb2R1 Y3Rfbm8pIFZBTFVFUwogCiAtLSBzaW5nbGUgZWxlbWVudCBwYXRoIHBhdHRlcm4KIFNFTEVDVCAq IEZST00gR1JBUEhfVEFCTEUgKG15c2hvcCBNQVRDSCAoYyBJUyBjdXN0b21lcnMpIENPTFVNTlMg KGMubmFtZSkpOworLS0gVW5rbm93biB0eXBlIHJlc29sdXRpb24KK1NFTEVDVCAqLCBwZ190eXBl b2YodW5rbm93bl9jb2wpIEFTIHVua25vd25fY29sX3R5cGUsIHBnX3R5cGVvZihudWxsX2NvbCkg QVMgbnVsbF9jb2xfdHlwZSBGUk9NIEdSQVBIX1RBQkxFIChteXNob3AgTUFUQ0ggKGMgSVMgY3Vz dG9tZXJzKSBDT0xVTU5TIChjLm5hbWUsICd1bmtub3duLWxpdGVyYWwnIEFTIHVua25vd25fY29s LCBOVUxMIEFTIG51bGxfY29sKSk7CiBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChteXNob3Ag TUFUQ0ggKGMgSVMgY3VzdG9tZXJzIFdIRVJFIGMuYWRkcmVzcyA9ICdVUycpLVtJUyBjdXN0b21l cl9vcmRlcnNdLT4obyBJUyBvcmRlcnMpIENPTFVNTlMgKGMubmFtZSkpOwogLS0gZ3JhcGggZWxl bWVudCBzcGVjaWZpY2F0aW9uIHdpdGhvdXQgbGFiZWwgb3IgdmFyaWFibGUKIFNFTEVDVCAqIEZS T00gR1JBUEhfVEFCTEUgKG15c2hvcCBNQVRDSCAoYyBJUyBjdXN0b21lcnMgV0hFUkUgYy5hZGRy ZXNzID0gJ1VTJyktW10tPihvIElTIG9yZGVycykgQ09MVU1OUyAoYy5uYW1lIEFTIGN1c3RvbWVy X25hbWUpKTsKLS0gCjIuMzQuMQoK --0000000000005d4e68065198de18--