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 1wI5c0-007mPG-0m for pgsql-hackers@arkaria.postgresql.org; Wed, 29 Apr 2026 14:10:00 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wI5bz-003nv8-0y for pgsql-hackers@arkaria.postgresql.org; Wed, 29 Apr 2026 14:09:59 +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 1wI5by-003nuq-37 for pgsql-hackers@lists.postgresql.org; Wed, 29 Apr 2026 14:09:59 +0000 Received: from mail-wr1-x42c.google.com ([2a00:1450:4864:20::42c]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wI5bw-00000003oMo-2ssz for pgsql-hackers@lists.postgresql.org; Wed, 29 Apr 2026 14:09:58 +0000 Received: by mail-wr1-x42c.google.com with SMTP id ffacd0b85a97d-43cfce3a195so7209028f8f.2 for ; Wed, 29 Apr 2026 07:09:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1777471795; cv=none; d=google.com; s=arc-20240605; b=keL9fXiKBSvWCrCtjo0R19Hb5ujIx6SDunv69fBxY5RQUoDzCs6sKziLE3OxGpsCMq d3C5kKwCATc8L/esxbCOZlBHQAgdPvac0/MRqZkdoq6D6telESpE0b/TuDu9pEvsTYWp 30NeZsHzEzY71n9rNiQe9zVPugrd+svR5KuQ+kMGOfrI5/AotzQTuRB/ubR+WAaMfK0S kQMyR30ydum7LCw2q1R43GhuwavACBuGSopn9SS9Jkal1KDqP/ysbAp+zqcTaa6dHeOt HifCYUvcProbkER0drZIyHdUFRrH6jRNZYlGsyagf8D6A4Y8H3UY9x892d3e5PWhU6jL Sn0w== 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=eRyG1P1XTY2AUAhyFE/JAVMHuF7OtwQUH1e6AfkjyD4=; fh=scyv5NHr5P61K97rkrZDw+ubrZx5MZgC7ed0+YMGN1E=; b=E4ODyZZvuHa1pEmow71oVTUBIcT1+W3eDt7+Jwga38sjf4pMS/j3rDRBei2FePamcP sfMNW6aEg3VFYZqAQ7sYrJVckNZOEfPaXugmM9GBzof1ZFq5anyk7R7s/Lv0wqyOTxFG iuT1aoDnWjA0XqiKgBsYr5W23vQNwNZfLqSyUY0U9arvTUfxFu4f1QBOunLMAkOus4F/ xYzG30/QdOAzoqZ66xvjizKDa0Th2jZYzM+73UMvaHGriLuIq5aPQj0A7SSNxWxiY7U9 dP3iGHXt1q6z8R3phmZZvR42Q9Bpg2wh/uk/Ed0WwZ9h4OConrWu9RwFpwqbe6eibRy6 WMyQ==; 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=1777471795; x=1778076595; 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=eRyG1P1XTY2AUAhyFE/JAVMHuF7OtwQUH1e6AfkjyD4=; b=VexIRLv+4avefuitTkbX5PTxqy95eTbw9WZZ+dnQYmeb1mMynQ83til5b4vvkT9V2k /O228jIE0YjUymtTndwAXc7iu2o/1/uY7TdCuD3IMhJgLc0PT6awt4rJSOlTcTyU3iNw 5y52OcwTpm4Apctj91GbYAGuqQm6WpqPSCXQIb/KuSE/P7emZ8cHXQIMUV0+usqilsgm c5a2FnJ1qfUaIfHAl8EtecEYpV6/pGUs5MQJuAeHJrBDbNQD3CgjXpXIi6xXkhNw4qQe NdTfVukMM9gzCh71LvmQudRRg11HKrEAc/eAzgfcLzm++RFzSufY9idAYueObtFDN7IT FXeA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777471795; x=1778076595; 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=eRyG1P1XTY2AUAhyFE/JAVMHuF7OtwQUH1e6AfkjyD4=; b=Qc+/Ig9qNAwzKo4I/wG7bJwHue/hJuCJllkReox1bKIJY5DxytnXkubD+6cJHZxsUT MWUr2s13mHQjPFMYn4ghD28yhrCt1MBa/JEMdGyeW9CQOJIcfPXYdJltOLq9MvoYbIAF a1yukyc7DQUiSQRVbjkyKaBQghAjy00w8lUuRc47G7GNIp33dfqPqoPVyLZBBqKXUXIU J2rDY8igtkmXCvYZ9d0u55IWxlHomyI+1UIjhq2Za7jcWjvHhtmZHlcwfH0embnUspwx 5iZBRhnf+30gsVTrj7S3rVdeERSQbhlTJVpwuYv73J0wa06Lft1EnDjA8721tvDPoPsf Frgw== X-Forwarded-Encrypted: i=1; AFNElJ8F+hqf50OjXQX/20a8KVBt7XmYKt08TuICXXmayqnp3oNM5GMrE2/wqXtlvvM85gZ/dfdhBv1rdaAOMT5p@lists.postgresql.org X-Gm-Message-State: AOJu0Yx7Hg6jqlgpb9FisDxno3+eraNseHIYamEtU1faPYFL90s6n4yT PNTTLCm8StETfWhF7exXicbwCJmcuzExlNU/DXSZEOMMNWkUQHORJy6lvI8Nah7ZWIFGWzmjE+8 jba6Lpz9m4UG6hOuf8iSK4FsGGU8Y6groeg== X-Gm-Gg: AeBDiet9CtM6ZZv3yzBNdCOx6qQwjLP+Lf88uZvh6liMnT7pR5mc4dlncHHpPWTQuBO Kn2VBIRyo3gJJ0DsspDY5EjleKIYgf+TcPyKWknolw6cxio9mNzrUBjz2i0AkiJDt0UQi558NJS HhZWR1nwrIwzhyXIPwHtsSWbLunid6W56eNEGekc8jZ7p5N2bYr2Cs97FiJv9yuBdf3JD6FS/De nXVIfYV/wtQWg10rG72KggrmTG5B43mqEw/FAVgpIvhB3vM7u6qn4RCYG/VRL1o7IShb+LFruGQ nhdQtkmMofIzJy7/maXnkUhKfiN4u2Gtcwfn/pZwfIP5o8neESj6M/SSGtPzJwAuqfNhioem X-Received: by 2002:a05:6000:184d:b0:441:36b7:7262 with SMTP id ffacd0b85a97d-44647cda8abmr15613978f8f.13.1777471794892; Wed, 29 Apr 2026 07:09:54 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Ashutosh Bapat Date: Wed, 29 Apr 2026 19:39:41 +0530 X-Gm-Features: AVHnY4KmxLJUStFnP-P8rGK5ORU58lQSXanH-zuNu0B_sW2mBBVofr-VYFrXmtg Message-ID: Subject: Re: [PATCH] Resolve unknown-type literals in GRAPH_TABLE COLUMNS To: SATYANARAYANA NARLAPURAM Cc: Junwang Zhao , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="000000000000eee94e065099e68a" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000eee94e065099e68a Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable 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 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 keep= ing >> 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. -- Best Wishes, Ashutosh Bapat --000000000000eee94e065099e68a Content-Type: text/x-patch; charset="US-ASCII"; name="v20260429-0001-Resolve-unknown-type-literals-in-GRAPH_TAB.patch" Content-Disposition: attachment; filename="v20260429-0001-Resolve-unknown-type-literals-in-GRAPH_TAB.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mok4su7w0 RnJvbSBjOWU2YjBkZjk0NWU5MGJiMGJlNDNjODhkMWM1NWUxZWUwYTlhOTgyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBc2h1dG9zaCBCYXBhdCA8YXNodXRvc2guYmFwYXQub3NzQGdt YWlsLmNvbT4KRGF0ZTogV2VkLCAyOSBBcHIgMjAyNiAxOTowNzoxMyArMDUzMApTdWJqZWN0OiBb UEFUQ0ggdjIwMjYwNDI5IDUvNV0gUmVzb2x2ZSB1bmtub3duLXR5cGUgbGl0ZXJhbHMgaW4gR1JB UEhfVEFCTEUKIENPTFVNTlMKClRoZSB1bmtub3duLXR5cGUgbGl0ZXJhbHMgaW4gdGhlIENPTFVN TlMgY2xhdXNlIG9mIGEgR1JBUEhfVEFCTEUgYXJlIG5vdwpyZXNvbHZlZCB0byB0aGUgYXBwcm9w cmlhdGUgdHlwZXMsIGNhdXNpbmcgdmFyaW91cyBmYWlsdXJlcy4gQ2FsbApyZXNvbHZlVGFyZ2V0 TGlzdFVua25vd25zKCkgb24gdGhlIGNvbHVtbnMgdGFyZ2V0bGlzdCB0byByZXNvbHZlIHVua25v bncgdHlwZQpsaXRlcmFscy4gRG8gdGhpcyBiZWZvcmUgYXNzaWduaW5nIGNvbGxhdGlvbnMgc28g dGhhdCB0aGUgcmVzb2x2ZWQgdHlwZXMgYXJlCnVzZWQgZm9yIGNvbGxhdGlvbnMgYXNzaWdubWVu dC4KClJlcG9ydGVkIGJ5OiBTYXR5YSBOYXJsYXB1cmFtIDxzYXR5YW5hcmxhcHVyYW1AZ21haWwu Y29tPgpBdXRob3I6IFNhdHlhIE5hcmxhcHVyYW0gPHNhdHlhbmFybGFwdXJhbUBnbWFpbC5jb20+ CkF1dGhvcjogQXNodXRvc2ggQmFwYXQgPGFzaHV0b3NoLmJhcGF0Lm9zc0BnbWFpbC5jb20+ClJl dmlld2VkIGJ5OiBKdW53YW5nIFpoYW8gPHpoandwa3VAZ21haWwuY29tPgpEaXNjdXNzaW9uOiBo dHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9tZXNzYWdlLWlkL0NBSGcrUURjeUtOV3l6RG9LTXhp Wk5qdjdDLXdBeHM4eTBab05rT1YxMzdZK25rM1VYZ0BtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9jbGF1c2UuYyAgICAgICAgIHwgIDQgKysrKwogc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9ncmFwaF90YWJsZS5vdXQgfCAxMSArKysrKysrKysrKwogc3JjL3Rl c3QvcmVncmVzcy9zcWwvZ3JhcGhfdGFibGUuc3FsICAgICAgfCAgNiArKysrKysKIDMgZmlsZXMg Y2hhbmdlZCwgMjEgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNl ci9wYXJzZV9jbGF1c2UuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jbGF1c2UuYwppbmRl eCA0MjcwYzIzODJjNC4uM2QwNTg1YjhlZmIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNl ci9wYXJzZV9jbGF1c2UuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY2xhdXNlLmMK QEAgLTEwMDMsNiArMTAwMywxMCBAQCB0cmFuc2Zvcm1SYW5nZUdyYXBoVGFibGUoUGFyc2VTdGF0 ZSAqcHN0YXRlLCBSYW5nZUdyYXBoVGFibGUgKnJndCkKIAkJY29sdW1ucyA9IGxhcHBlbmQoY29s dW1ucywgdGUpOwogCX0KIAorCS8qIHJlc29sdmUgYW55IHN0aWxsLXVucmVzb2x2ZWQgb3V0cHV0 IGNvbHVtbnMgYXMgYmVpbmcgdHlwZSB0ZXh0ICovCisJaWYgKHBzdGF0ZS0+cF9yZXNvbHZlX3Vu a25vd25zKQorCQlyZXNvbHZlVGFyZ2V0TGlzdFVua25vd25zKHBzdGF0ZSwgY29sdW1ucyk7CisK IAkvKgogCSAqIEFzc2lnbiBjb2xsYXRpb25zIHRvIGNvbHVtbiBleHByZXNzaW9ucyBub3cgc2lu Y2UKIAkgKiBhc3NpZ25fcXVlcnlfY29sbGF0aW9ucygpIGRvZXMgbm90IHByb2Nlc3MgcmFuZ2V0 YWJsZSBlbnRyaWVzLgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ncmFw aF90YWJsZS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2dyYXBoX3RhYmxlLm91dApp bmRleCA4MDM4ZmNkMzliNy4uNWVmOThlMjgxZTYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvZ3JhcGhfdGFibGUub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvZ3JhcGhfdGFibGUub3V0CkBAIC0xMDQ3LDQgKzEwNDcsMTUgQEAgU0VMRUNUIHNyYy52bmFt ZSwgY291bnQoKikKICB2MTEgICB8ICAgICAxCiAoMyByb3dzKQogCistLSBVbmtub3duIHR5cGUg cmVzb2x1dGlvbgorU0VMRUNUIGMxLCBwZ190eXBlb2YoYzEpLCAibnVsbCIsIHBnX3R5cGVvZigi bnVsbCIpIEZST00KKyAgICAoU0VMRUNUICpGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRDSCAoYSBJ UyB2bDEpIENPTFVNTlMgKCcxJyBBUyBjMSwgTlVMTCBhcyAibnVsbCIpKQorICAgICBVTklPTgor ICAgICBTRUxFQ1QgMiwgTlVMTCk7CisgYzEgfCBwZ190eXBlb2YgfCBudWxsIHwgcGdfdHlwZW9m IAorLS0tLSstLS0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0KKyAgMSB8IGludGVnZXIgICB8 ICAgICAgfCB0ZXh0CisgIDIgfCBpbnRlZ2VyICAgfCAgICAgIHwgdGV4dAorKDIgcm93cykKKwog LS0gbGVhdmUgdGhlIG9iamVjdHMgYmVoaW5kIGZvciBwZ191cGdyYWRlL3BnX2R1bXAgdGVzdHMK ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2dyYXBoX3RhYmxlLnNxbCBiL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL2dyYXBoX3RhYmxlLnNxbAppbmRleCBhMzY4MWM2YzBlZi4uZDNkZGNk YzhlMjAgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2dyYXBoX3RhYmxlLnNxbAor KysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ncmFwaF90YWJsZS5zcWwKQEAgLTU5OSw0ICs1OTks MTAgQEAgU0VMRUNUIHNyYy52bmFtZSwgY291bnQoKikKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIENPTFVNTlMgKGEudm5hbWUgQVMgbikpCiAgICAgICAgICAgICAg ICAgICAgICAgIFdIRVJFIG4gPSBzcmMudm5hbWUpOwogCistLSBVbmtub3duIHR5cGUgcmVzb2x1 dGlvbgorU0VMRUNUIGMxLCBwZ190eXBlb2YoYzEpLCAibnVsbCIsIHBnX3R5cGVvZigibnVsbCIp IEZST00KKyAgICAoU0VMRUNUICpGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRDSCAoYSBJUyB2bDEp IENPTFVNTlMgKCcxJyBBUyBjMSwgTlVMTCBhcyAibnVsbCIpKQorICAgICBVTklPTgorICAgICBT RUxFQ1QgMiwgTlVMTCk7CisKIC0tIGxlYXZlIHRoZSBvYmplY3RzIGJlaGluZCBmb3IgcGdfdXBn cmFkZS9wZ19kdW1wIHRlc3RzCi0tIAoyLjM0LjEKCg== --000000000000eee94e065099e68a--