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 1vuTY0-007cIs-1Q for pgsql-performance@arkaria.postgresql.org; Mon, 23 Feb 2026 10:52:16 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vuTXz-00CsRP-0t for pgsql-performance@arkaria.postgresql.org; Mon, 23 Feb 2026 10:52:15 +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 1vuTXy-00CsRG-2o for pgsql-performance@lists.postgresql.org; Mon, 23 Feb 2026 10:52:14 +0000 Received: from mail-centralusazon11020102.outbound.protection.outlook.com ([52.101.61.102] helo=DM1PR04CU001.outbound.protection.outlook.com) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1vuTXv-00000000qtX-0S1n for pgsql-performance@lists.postgresql.org; Mon, 23 Feb 2026 10:52:14 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=yJyajjF29d8ON5vYAUhK7E9BiyDxKWYXkbbCTwpIXbRJdHPS9D91/8vq+agPYSO5SCj69Jqu+wTQ17HddsabmvobmiXpCmdgmK0Ky7lwBIb2v5XTvJqcIY5f1dN4/mBFa+Zn0o29XWIUO1YNLkQ2kIbMhMu1g7d9NXdZ61sCVMJ4pKs/7sEjXdqwArONncJECeV844ORo7gauIA06MTV0SmAkMbilGmNEeWleJFP/wE9QXqfih++BPHMr4aeWD/asbwmcj9DPvaANaVXktKJH5RP00tAmgSDL9Sg6LwYxgbkd8B6TybaF7PtKUETZk5oUUdMkud+DIGx18dlSmWNkA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=0/KvwH86Hfm8WeyN9z+IEQdx3ugwKFq0Qj8FaVrqu3A=; b=v5sRrp+Fv4fWL+i5fNGAMOoziyrxBVSOKGpdbLOQRb6yEOHbLAmk8G9rx5366WtHlS3ToKde7a5YKdb3GuuMitXwNIE3w/loyuAR8KUeSL3ORgMamsGjOrEto5MeVRlJB3FsNY1tYsQmcujRXotY1TiLNz+njmrSv5B9n9pN73Ll0Qj/sLxXkshdhpD0ujcoXzNN3s3lNZpM26vUYv/c2XXo5MsIrlK5q6etqUX76cHU1Bef9zAQN0pSNdpmmfWjBC8RXN92PhhiFaUgzYPWCwswsQMu45oaFusGvvm+ZOVFcuPAiR1EV3aHBNcNwItmpYaXM83DuM83l4kL5LdSFQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=voss-solutions.com; dmarc=pass action=none header.from=voss-solutions.com; dkim=pass header.d=voss-solutions.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=voss-solutions.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=0/KvwH86Hfm8WeyN9z+IEQdx3ugwKFq0Qj8FaVrqu3A=; b=aQNHjbb4g8RMfrqJqNQl2pBIAffSHcs+/R0IyKhortggPzMmwE9V45kSaIglRg4Jh1imCALAC3+Z30CPurHPXQvr82CgasYrdCM5F391nOko/qoAl9oMymehsWo3N5vOqe736kjT4BUy3oIXJoj9nPwMQQcVWw+vLkth3Rcl0LY= Received: from CH0PR10MB4908.namprd10.prod.outlook.com (2603:10b6:610:cb::18) by CO6PR10MB5649.namprd10.prod.outlook.com (2603:10b6:303:14c::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.17; Mon, 23 Feb 2026 10:52:05 +0000 Received: from CH0PR10MB4908.namprd10.prod.outlook.com ([fe80::f022:610a:554c:8e40]) by CH0PR10MB4908.namprd10.prod.outlook.com ([fe80::f022:610a:554c:8e40%4]) with mapi id 15.20.9632.010; Mon, 23 Feb 2026 10:52:05 +0000 From: Nyasha Chigwamba To: Tom Lane CC: "pgsql-performance@lists.postgresql.org" Subject: Re: LATERAL subquery predicate pushdown: filter applied after JSON construction instead of inside join (PG 18) Thread-Topic: LATERAL subquery predicate pushdown: filter applied after JSON construction instead of inside join (PG 18) Thread-Index: AQHcm2HpOCzn9hTYHUKXgqMXWD3NMrV9w3YAgAxxDIY= Date: Mon, 23 Feb 2026 10:52:05 +0000 Message-ID: References: <4119091.1770831458@sss.pgh.pa.us> In-Reply-To: <4119091.1770831458@sss.pgh.pa.us> Accept-Language: en-CA, en-US Content-Language: en-CA X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=voss-solutions.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CH0PR10MB4908:EE_|CO6PR10MB5649:EE_ x-ms-office365-filtering-correlation-id: bc1fe77c-3f48-4557-b456-08de72c99552 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|376014|366016|7053199007|8096899003|38070700021; x-microsoft-antispam-message-info: =?iso-8859-1?Q?hFzfoVuA75UmbmNeKo9yoeqomlrz2uNVLa0PpLTjZmObs82l6Doqu3yLkF?= =?iso-8859-1?Q?/0Zd+1KQ+lCAV4wuwWlKXN5KotLV6iuB75YpmJs3VmP8b8grL976omeXYZ?= =?iso-8859-1?Q?H+SuehwFGLTmzBqlisHybZC/sLS6wuEB7d8EK+MOVhlEr9iZw99+V3mzgF?= =?iso-8859-1?Q?iEbILrcxlSi0NdGw6v7nTr/C1smp4LSgfJ7qcOYmk9A6QtwNAcPuOcN9ps?= =?iso-8859-1?Q?u5ROPpfKONgXqlj98hN8BHyKPOmN0KZtKWHqvpWc0nbpJVATlBAR/+wNn6?= =?iso-8859-1?Q?PUAnjiL8x6o48c7xjK++tEjJtJNKvgg1iuOR2G17DGmOJY+kuyZ4bSem8b?= =?iso-8859-1?Q?N8rhOvLydtnKwiuqQfRXbmNRfJnrteOfooj94wMrhq1Cx4wE3NlHalBZgH?= =?iso-8859-1?Q?DMPPRA8MNbO6yIISgetTUaalqBamEm4U2MX+gQW8RAqiMcGp2w2HTYMyQG?= =?iso-8859-1?Q?ZsZ0p6JR25jj0AuzZeMGzFGw8Gbge4ydybYnYxGPPr+lmhBdisVujW1eUc?= =?iso-8859-1?Q?UkE/17stEERRURYD0HsvlYTcfnsWqHjpbmYndVP/C/+GM/Fb9KTnOirIW5?= =?iso-8859-1?Q?Sj4UkR2wRH7VtO6VIOZwLifP9jSH6ExZdwH02+OTybwpw+NF69xf38/EOx?= =?iso-8859-1?Q?Wz8WCo6IKw703MY20Nz/gL5qbbRHDcpXdtVhvj+7SPOJTr/xUGgECy6TJu?= =?iso-8859-1?Q?rquT/1c8YGr/MS/EtanFHPpDlZbXPaeVX0SFTNhhmpcXwwFdpjvFi/TZoR?= =?iso-8859-1?Q?0mBb27vfSFu1HWlcg1E+XrIuSrUCxtUqhJKRzPM1SWu8R6ymVZm0XMaHxH?= =?iso-8859-1?Q?ztxVeBoMQyzBJsvbVrMbaqeMjJTy+VTEo+hRsBF7WqBoSFP9LUt8ma8oKy?= =?iso-8859-1?Q?seDrySwoWo1pypR8GD894bDobSiXDiLrayf6GaSPWxnYp0mWh766t+Dsu5?= =?iso-8859-1?Q?Pvj1Pzmi75MMoHec4XKOdoPJv1km9kJSH7Rzda8Hc4I8IR94kpw9coh3BK?= =?iso-8859-1?Q?zeaR+cL1PSij2/3LQ/Mi6PaPiaT/Tqh3XdQQ8i5JLKFGHJeSAPzFua6lLq?= =?iso-8859-1?Q?ACOahBBOGwmhLOgWtWfdOOwcIxMjiQpE7Thxbw8yyUyliTSIWycRy+M6Kb?= =?iso-8859-1?Q?36zfy3g46RANSHqBvSzBQxQ1s9k5RySoUWOwb5IG7pj9y5ZpKgpnawFrBV?= =?iso-8859-1?Q?83qHXETSugojXaengwbGvypMSf1LSgBAneuCt90SUWgzqLK6yLaQAViRO9?= =?iso-8859-1?Q?l6q4Kx8FiEUmIhbD8epTR4EjoUJdeVFPRIdIbJk7O74TQrJdKfZ+mnqxRC?= =?iso-8859-1?Q?2ph3iP5UxAtISi71o0W3VZ1zdz/n/nuqw6gp2Z4S3lv9gAooRnchCaj5AQ?= =?iso-8859-1?Q?7Lvlg769oLDC1Ev4dMLqthSztOP97MVolMW0nmxu0GZ2qaQ8OOSoLgCCp5?= =?iso-8859-1?Q?Lt3mm60v9ihSb/pI8GBsKV6miQcPYeut/nTuh7l7b9/o9PQTBJ3jjPcxRV?= =?iso-8859-1?Q?9YpU3Si/vAdF5tbwZb8fGEm4gqpt4KqkUVYoEG5a+xaeweIZWERI993MRc?= =?iso-8859-1?Q?P1hxpWvivssenfVATM2lJl1e6Av7MyMt5cCA+19gQoSqsU+YKm5jYJzmJV?= =?iso-8859-1?Q?N7eEvko2SjPGlwEN5WYB/nnhtTPjGSME+lXsaLxWHqC3w3E3uNDtcDJ9nK?= =?iso-8859-1?Q?5YJRKwHUjo+CZvnqwoA=3D?= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH0PR10MB4908.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(7053199007)(8096899003)(38070700021);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?9NpU3XILaLGp5Huhwh+0VonJS69x6k877Fxn3b6TukktCw0A3ekUra9XvP?= =?iso-8859-1?Q?k/rXEdfVYp9eUU3Am1VdiyLutUq7IhDhBNv5he7DuKl4/2ftNZz9fqYG8O?= =?iso-8859-1?Q?qPkgHQ1zJNTXfgmuK+DJgbhEqQ11BUVhkWvMy/YW5P2GQITvyVCp5gSxiD?= =?iso-8859-1?Q?T1vR18smRkggasBrX087k4l0HO5rTOQnZvY7YB0JrMZe/hwiVqgATA0/LZ?= =?iso-8859-1?Q?9omGgmY2a3iqlS1ifc4DTyv9MFkKqYCQnMdIpLP+B6shsFr+IC6vWiCsWM?= =?iso-8859-1?Q?PvYbSvC4csZT9O9R7wdcTOOz+2HoY5OTK7WjRPbf/RfRcKEwQGyW7sZwmC?= =?iso-8859-1?Q?sr9IK9wcFM8Qpy9oTVBhUGZWqNEvAbUciiXBe2QfYjxEkk7DfDDHLv8I3c?= =?iso-8859-1?Q?edERwA47SU0NNdboYO0J56jSVwDaOqXgVsPRYe4fwbtmeYMi7PaEDrt9Cw?= =?iso-8859-1?Q?ar1hxpqs+XV1iGTpoIMMkZJpsQ/BMnaGRsLI4qyjqMCgQX1q4VS7x3Xvcd?= =?iso-8859-1?Q?veXSejOf5m5PJzf7LRGQPLmtT253UjpnYwvDvoz+d6sCxxIpQr1s7QdLDh?= =?iso-8859-1?Q?f73gMR6H5cKOuDELgPOtmyUDiRNtUdcFZNWP7yQhc9KRtIEoYVmje+vz8j?= =?iso-8859-1?Q?Dx7RTIEbjGNB39lu6nS0BZUOy+3YbPihSAb2Glu23CLLqqGnwGginvvT3i?= =?iso-8859-1?Q?Gd4mqwHXLyLK6oKd+YKHKHxeblGOrasXIWNRL33zTMroOh38BfEyQALoae?= =?iso-8859-1?Q?gGnx04wOFUNYtsxiq6RZBOMiYvUYh0nqPzqX8zmZYILw/aYFoYKQ9RY96t?= =?iso-8859-1?Q?C87HbLQf8rF41kCnUxmjzfkjDVj+Zq8LIUfKMjxJZtAECRMHYjB3qItXDC?= =?iso-8859-1?Q?bI0VDcvu+jw7UeDr1IVE4r0xuJaeGM9jXoZmgaOGhRSHwpVu5LPaWo03ZL?= =?iso-8859-1?Q?LZ42IrKBMJT9Wr+kQBS1fdGn5FkZMvjTtkfhY6kgj4vqdRPsqFtpWfdtgW?= =?iso-8859-1?Q?clly7dKTZJZVGG6CvQITvhpoJqHKTNiiE17jH8wSJc1jTuuAseS+SAIRBS?= =?iso-8859-1?Q?GsypbazAfDcZ/4imxNBsF6qaPlcXuBN1sWb9VSTNFakGAW3j6AqJzq/JlH?= =?iso-8859-1?Q?qe4qUAuJUjn3SoN3WX0LsMOl2hLue3ceo/b+Isnvm3kCRMF7lyqvqZmUCO?= =?iso-8859-1?Q?BmNLJj47eJmZ4vXk2ahHmADsiQG3yT2BxD3T1NlqiLzF88CkLC91L0e4xR?= =?iso-8859-1?Q?oMqAZTDhA4Y5uift8WbmzbEzkSOSaSq5dJaMf438U+tj2RdHPz8li4zkh+?= =?iso-8859-1?Q?rR4DfJYVarWUU82V1QLXrpl896DbN7dLN+YXSL5wtchydbxkoJtgp1raEP?= =?iso-8859-1?Q?hk8lS3jxzcVWDtm+HB+Ph3olieFKjizyMrwWkzdV/J6N4tXerM97S7Ns45?= =?iso-8859-1?Q?LokBp1xeZMzFK8Rd5e45g+B08ctVRNVV5GgZEWR3l/I51UT+7ZhzWYgWoW?= =?iso-8859-1?Q?CxF5U+JlseJSWDutiUg/OudL0/OK+P7/9DJKzYpT2ZPRcz2cB1GkzzDhr8?= =?iso-8859-1?Q?+5yR7TLP3rfe4A1LvBb7oy18LZS3BfQ5HDXTNLOvX3+xm2fqnSVthGr21h?= =?iso-8859-1?Q?h7igoWBUBmZM8SzFNsmcUa1nIsvSP5kJhrI3qMj/tRFPpkoA1K1INbms6I?= =?iso-8859-1?Q?LPL2qglgQt7ZJbZvwi5AR/r6yfiPtBu3Su1KS4tv7/25KOzneuHyKdC+vn?= =?iso-8859-1?Q?SCMiUC65MuVArLMcUpGy99El1XFGGRxfFOXgrk9v4vjkBNU4WX456KSE24?= =?iso-8859-1?Q?fjvII1W7UNI93h/BPOoechnLTkx9WDI=3D?= Content-Type: multipart/alternative; boundary="_000_CH0PR10MB49081B6CC0088E6533A890CFB46BACH0PR10MB4908namp_" MIME-Version: 1.0 X-OriginatorOrg: voss-solutions.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CH0PR10MB4908.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: bc1fe77c-3f48-4557-b456-08de72c99552 X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Feb 2026 10:52:05.2209 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 87dd248d-6541-4fb2-83dd-ad8ad409b500 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: TCUBzXIa/pP8G/72M1RJcvYKmhy5TJUIgWX7lwGZzj6fnCqXZj5O0KqxdrbVl5eXeK2ieGGQqcAbkCAVhwNkYHZnIlZ8UUB8/eha8XZ46VFWGegaY55clYto/GGK3hYz X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO6PR10MB5649 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --_000_CH0PR10MB49081B6CC0088E6533A890CFB46BACH0PR10MB4908namp_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Hi Tom, Thank you for this - much appreciated. Removing the ORDER BY LIMIT does cha= nge the query and after some further investigation, it looks like I also ne= ed to project the raw columns then apply the filters on the projected colum= ns as a opposed to filtering on the constructed JSONB. Regards, Nyasha ________________________________ From: Tom Lane Sent: February 11, 2026 12:37 PM To: Nyasha Chigwamba Cc: pgsql-performance@lists.postgresql.org Subject: Re: LATERAL subquery predicate pushdown: filter applied after JSON= construction instead of inside join (PG 18) Nyasha Chigwamba writes: > Question: Can the planner push predicates on view columns into the underl= ying LATERAL subqueries? It can, but it will not push them into a subquery with LIMIT, because that would potentially change the subquery result. I'd try to get rid of all those ORDER BY LIMIT bits in your view definition. That's generally considered an antipattern in SQL. It's definitely an optimization fence. regards, tom lane This communication is confidential and if not addressed to you and has been= received in error, you must: (i) notify the sender immediately and delete = the e-mail; and (ii) refrain from copying, printing, forwarding, publishing= or disclosing the contents of the e-mail. --_000_CH0PR10MB49081B6CC0088E6533A890CFB46BACH0PR10MB4908namp_ Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
Hi Tom,

Thank you for this - much appreciated. Removing the ORDER BY LIMIT does cha= nge the query and after some further investigation, it looks like I also ne= ed to project the raw columns then apply the filters on the projected colum= ns as a opposed to filtering on the constructed JSONB.

Regards,
Nyasha

From: Tom Lane <tgl@sss.pgh.pa.us>
Sent: February 11, 2026 12:37 PM
To: Nyasha Chigwamba <nyasha.chigwamba@voss-solutions.com>= ;
Cc: pgsql-performance@lists.postgresql.org <pgsql-performanc= e@lists.postgresql.org>
Subject: Re: LATERAL subquery predicate pushdown: filter applie= d after JSON construction instead of inside join (PG 18)
 
Nyasha Chigwamba &= lt;nyasha.chigwamba@voss-solutions.com> writes:
> Question: Can the planner push predicates on view columns into the und= erlying LATERAL subqueries?

It can, but it will not push them into a subquery with LIMIT,
because that would potentially change the subquery result.

I'd try to get rid of all those ORDER BY LIMIT bits in your
view definition.  That's generally considered an antipattern
in SQL.  It's definitely an optimization fence.

            &nb= sp;           regards, to= m lane
This communication is confidential and if not addressed to you and has been= received in error, you must: (i) notify the sender immediately and delete = the e-mail; and (ii) refrain from copying, printing, forwarding, publishing= or disclosing the contents of the e-mail. --_000_CH0PR10MB49081B6CC0088E6533A890CFB46BACH0PR10MB4908namp_--