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 1vawBI-00FvCn-11 for pgsql-general@arkaria.postgresql.org; Wed, 31 Dec 2025 13:24:05 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vawBH-006KLQ-0T for pgsql-general@arkaria.postgresql.org; Wed, 31 Dec 2025 13:24:03 +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 1va9MM-00GE6M-1N for pgsql-general@lists.postgresql.org; Mon, 29 Dec 2025 09:16:15 +0000 Received: from pdx-out-003.esa.us-west-2.outbound.mail-perimeter.amazon.com ([44.246.68.102]) by magus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1va9MJ-003NDH-21 for pgsql-general@lists.postgresql.org; Mon, 29 Dec 2025 09:16:14 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.com; i=@amazon.com; q=dns/txt; s=amazoncorp2; t=1766999771; x=1798535771; h=from:to:subject:date:message-id:mime-version; bh=kRACtIgEvquhhj7bHncFFubqN1z6CBxJLoOjt3HnIEs=; b=c2boY8qeL7F8a3VsrSr+UkQfSUn8LqC3p7wcHRli0Zwa3HOc5+vttn2r PHRWJ6N1nU12mBs79Oo1EdoDcTteS/B6bCFlwLLjpwMnDn0dVKQ1LcC9R Ul3Wo9dhYSicc6rXtFAmc1ya44sVPHDuqC7LcmfVhi2Le0XqXLhalzX2X 4hzjTPqx4awiW+9REhqnVb4bffnlLWhWP/swcqPehG8clt03YWaDAHpDj DrZUdOMF3z5M2EAwNo+UHGEPy2Wpn5nHv8vD+I0GqcOBdz5vgJ+bAYnXc 2k9iZ3nb2YUsoaE4WyHSDB2oN9sBxqTeZyR3tBm0dCfU6plvTSp/Saohx Q==; X-CSE-ConnectionGUID: cHv7NmNmQBKC9J2XBuZgqw== X-CSE-MsgGUID: xw+uq0cYQimRJvGOQsNDNg== X-IronPort-AV: E=Sophos;i="6.21,185,1763424000"; d="scan'208,217";a="9879886" Received: from ip-10-5-0-115.us-west-2.compute.internal (HELO smtpout.naws.us-west-2.prod.farcaster.email.amazon.dev) ([10.5.0.115]) by internal-pdx-out-003.esa.us-west-2.outbound.mail-perimeter.amazon.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Dec 2025 09:16:05 +0000 Received: from EX19MTAUWC002.ant.amazon.com [205.251.233.51:11551] by smtpin.naws.us-west-2.prod.farcaster.email.amazon.dev [10.0.11.166:2525] with esmtp (Farcaster) id c52cc0c5-220b-4e1d-b934-f2c4490b1273; Mon, 29 Dec 2025 09:16:05 +0000 (UTC) X-Farcaster-Flow-ID: c52cc0c5-220b-4e1d-b934-f2c4490b1273 Received: from EX19EXOUWB001.ant.amazon.com (10.250.64.229) by EX19MTAUWC002.ant.amazon.com (10.250.64.143) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.2562.35; Mon, 29 Dec 2025 09:16:00 +0000 Received: from CY3PR08CU001.outbound.protection.outlook.com (10.250.64.168) by EX19EXOUWB001.ant.amazon.com (10.250.64.229) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.2562.35 via Frontend Transport; Mon, 29 Dec 2025 09:16:00 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Dtig05Hr0VHFWel4MCKEvjbuwGNcurEwE9pdbz81x+IlsnzuJnBKLJzsJpbdsniaRnCwRrAL3kUCzQtXAdkWbtC9Vh0ed2mOfSIEwkjJRw2CSSsqxRRKFrCvc5bRGgbG1txWZ91z+19EW25rLzHhvHEaujhS9Q01bRD4Hz1iOWTMUj76yhwqEQBK62H/OD2Htwwvg+L07xomw3EVStyJ4nH8pWhFAxfVMwxgYUWA/dv1YpBhFn/vCh0OlKIcS5hiyOxUKjwn0cXtcIUFR3Mt/S5zR+L/U8D4tB0oiHgSDNvRI8mypPzbe2HXtOUiLsp8tzmGmTbG+zVAqSN78FHEPA== 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=kRACtIgEvquhhj7bHncFFubqN1z6CBxJLoOjt3HnIEs=; b=aJ5mrlQcZVb7IZ/vr6jO66Cn1+/nkYyqUesI+2Ekyd1N0fGHMAmBqYUI/2RoTW5tfsndBRFHaoZhiA7kWOESUY9y25kiHHCWeaccWipVVD5HeCSAzoS0bxoV7x3DmGd8cKjTOQmodzvWhFHsf51EmZA6sDwEUnYTEFl64VE0c/gAEroooL3AefRmNsz4QfUbgzU1CohiIQO9pG74JYJJzAAOCHvNZH8Jo648XplflrawbWofp2UH+CZEq0sUCNeg2OKU/9h7xgTdrj2r/9zVIGk7523h2Ohg/C6Bn3sTDAxH59wvF2o/LT1L2njpwELiBEK8MQ1FglvM7GQOjjIeQA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amazon.com; dmarc=pass action=none header.from=amazon.com; dkim=pass header.d=amazon.com; arc=none Received: from CH5PR18MB927659.namprd18.prod.outlook.com (2603:10b6:610:2ef::20) by SN7PR18MB3968.namprd18.prod.outlook.com (2603:10b6:806:100::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9456.14; Mon, 29 Dec 2025 09:15:58 +0000 Received: from CH5PR18MB927659.namprd18.prod.outlook.com ([fe80::2963:ef10:e182:bcae]) by CH5PR18MB927659.namprd18.prod.outlook.com ([fe80::2963:ef10:e182:bcae%5]) with mapi id 15.20.9456.013; Mon, 29 Dec 2025 09:15:58 +0000 From: "Khan, Tanzeel" To: "pgsql-general@lists.postgresql.org" Subject: SELECT FOR UDPATE behavior inside joins Thread-Topic: SELECT FOR UDPATE behavior inside joins Thread-Index: AQHceKFQG1f4JGngWEKdz2KQb5dGTw== Date: Mon, 29 Dec 2025 09:15:58 +0000 Message-ID: Accept-Language: en-IN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-reactions: allow authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amazon.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CH5PR18MB927659:EE_|SN7PR18MB3968:EE_ x-ms-office365-filtering-correlation-id: b3de673e-415b-4f19-7038-08de46bae106 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|376014|366016|1800799024|13003099007|38070700021|8096899003; x-microsoft-antispam-message-info: =?Windows-1252?Q?eCYH22KBMq4fe8oJt1Vv2PtAGYfEDJwnKOqqcHkOF0mSFtrq83vec0nE?= =?Windows-1252?Q?jdZRWTJJemvrOsg5XG8debISS9gXGzGks84ZnDcT4Xz5YavAH4vVUiOO?= =?Windows-1252?Q?b2enNle1sKf3ANGw+8bxGx10lSVVSpO8a6/j4BKn2TvEczl522amLWAE?= =?Windows-1252?Q?IZqEWrP6SfRBDqDsa1Vx/nAsNk7eFTFFw2C33nSQ7lltUAwboDgyr5KN?= =?Windows-1252?Q?fp7muXjhb5Oqp73vrdpKS6v8Kilrbyzp/7dmVA/A1LgQwEsW3fz1P85W?= =?Windows-1252?Q?faBSCR2vUTiS0nWXxLNr/lDXlj9Fc5XohB3S1mc5s6E967UAtzY3K79D?= =?Windows-1252?Q?2NjDuMyc/I8mgBCVBWJz7U/mixQCbCVeYWG++lOuZ8Vudi1aVmLkAgon?= =?Windows-1252?Q?m8DWLPxv8U0KjNUyBcnOeMiivJq6aRHVcpzUvzj71lpoRMMbOpK3/Jo9?= =?Windows-1252?Q?pQwqtc9T4nU+fyqs4nFeD2O+aGCKwKPevQSZgLjWJ+pvCR7aKbUlBx10?= =?Windows-1252?Q?g0/p8En//jg4p97KbdHsGAAjdQlP/Wdfbprz8qGzw8BqAo4AbyYgIVjK?= =?Windows-1252?Q?jb7GEzhs1YrK/z69bTIgBLd+L6E70AHsagGq5oFSRMq435q10IoxLvAf?= =?Windows-1252?Q?dCZzf9SvYIc5Miz0ysCIB62RbU5zQiJfTIFLziCFJMTKb1rfSx+0BW6w?= =?Windows-1252?Q?q9tH/S+19d9lg63B2Bp0++BT8Zo5e/npAtn0e26gBuybErusgPZMqlN7?= =?Windows-1252?Q?kzcrHf/aYxs9k3zyvMOM8TUwBmjs7qz3YscbdNuWpURcrxR3vAKxOEnC?= =?Windows-1252?Q?acSU1KmaIp2zTRymP5Bcy71vby8msLSeyF5rx1JS0/YXIMUgf6ujUgzn?= =?Windows-1252?Q?n3Qm56ZYsGJKu40lEzu9LLQhwPj7FJGGjMsOExK2pHy16J08uBM4nhnn?= =?Windows-1252?Q?OlOsBz1Fpb097k30NhfknS9ddTLOlWT78SyDVT69aV6S1KPaaX14YpNV?= =?Windows-1252?Q?HhLJmZKTDpEdDTDk8yCwostTBrY99aJPzOZG7AkXgh/DNVHZl/oGAnEZ?= =?Windows-1252?Q?lnrfaTHL+4yN/iXP8LoibLmQ6AwXgGtYYeOUHA8MxBHemMgyfs+YbPLP?= =?Windows-1252?Q?9lkiugpQdx5lVUNGmkcRWMaKbSKrmcu4BQt5BSDZEVh0X9auEZZDWt8p?= =?Windows-1252?Q?h1Rru5oxtvQNSc9Tj9LiZcIPWK0F5tAAnPloDn74lu8/gFnXL4RmON4F?= =?Windows-1252?Q?thXygpYXrpMmECzCL7Moorr/zfcdckuhWtmXUxLrp4BGQMC5HXuOXg1x?= =?Windows-1252?Q?gDHssL51LY+MlWngeUxblaahBIJDw4bcC1hw5jecHMUml9Z5WND5KMFd?= =?Windows-1252?Q?ho+j3Xt4c7toaVtJ+3Aw2JL5GSryRpuOQIj3jxB3XYG6GZqLxNWNKqFx?= =?Windows-1252?Q?tDRCGrk9C0xV5zTSq3N1QD+xCxh3TS28wbTFY9KIzCFzm7BepaCUewlZ?= =?Windows-1252?Q?+dMUas3OdcBDb1QPd17+7YpImMbjMAlKV4YIRrgTI2y37FagqY/uzx6z?= =?Windows-1252?Q?t7koDh4Xr7Ymo7VP8cyKqzo/BjIKmDnGU7SB6nBT2yF69VX2GY9kRrI+?= =?Windows-1252?Q?qRoXmWsba4NoBHOS3cONUjO4?= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH5PR18MB927659.namprd18.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(13003099007)(38070700021)(8096899003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?Windows-1252?Q?v+f4baFxeLN1i9YYYtpTmon96MPzwEKlRe43TQxD8gvwHBBUB/A6uFTa?= =?Windows-1252?Q?E1Zy3WKKXGGDz4KEgLfO2x4TEX9jOGLwVzgi1axRE5l/rn7rKXhHFbTa?= =?Windows-1252?Q?vkiCfj3K7DtdlCHoL2b+7ewerSHSs6JuRcoixNz4DDccpAbfk3ALhRrA?= =?Windows-1252?Q?7sDJorA+7YiNrPjA0xoAST2wcSYVpAxK4WwTv/NWt9fMcWMRSjT6qhOd?= =?Windows-1252?Q?mi4VWQ7KgFkflh21UTrYqFjybfsNvLBWroWEj8AQCrLQ0eBnbVxqiQVC?= =?Windows-1252?Q?x1VpHQFmf4njtt+VqsoujpPno+Am2m5N7jVcwI4KpgvOaEriAhAfW/GX?= =?Windows-1252?Q?sgHc6G4DDAx8yDp5LYmlRrFlMtqZ85i9nSgrO2FTYYgMrjd/IjZKUbay?= =?Windows-1252?Q?4HxZ8PpqYpsUNDjtdi85hdTcV3yWnKOAKTSskReby5q38NEqCTsrAuZU?= =?Windows-1252?Q?k0y/B7Z+6N4aGRVR5oDhpBQ8qxgzCbbj8rava7Eew5SVKxkMu3b8BNPN?= =?Windows-1252?Q?h7bAwybI+eADU9/EoHI1J224a77M+CQhJDr+ngXhchmRIE4QFkNUITEq?= =?Windows-1252?Q?+pitLoUQuXoBk4ApIVsvlxpvYKatp496syLJaPJyIxe8Q2Qu5n2nmoY7?= =?Windows-1252?Q?qZ21APRonWgf2YDhJMxCW/8UFAqXVHuoxxkzNB6oBjO6c5VPOpXaGdQ7?= =?Windows-1252?Q?Tq0n2nk3r8kcx1BF8TmQMfYDrjcDgxkiTgM8L1Q68v3KQr2dxxbnpdi4?= =?Windows-1252?Q?080jHX71tvt2q2dkCzzzGJv/TpLW9mkw98f8K1BkpTGCfRKn45v6iXVp?= =?Windows-1252?Q?u+g5skuRQ3VWyKil6YZqCCySuL+En+89llw1c6qL/o8nUL6qGJ1uF8J7?= =?Windows-1252?Q?RGckjXwteQKjveV/r+I0A7Rdr5xOKUNYTLp7YufPxiOqqlFgXMWz41L5?= =?Windows-1252?Q?boEk/kV8HJx8cLVlLvdHSKeZhO7CGM9Aa67bWC6Y911zxZmamQ5xbcib?= =?Windows-1252?Q?9Mjf2n9nUKu37vGC0qQhhvd9jHJkix9Y8tZsl8RdTtKvAUDeq015a2iq?= =?Windows-1252?Q?n3DKbhEplBKC02hPzHqJsiP4cSLu3pCnndCy6BdzsJ4ystRy6N40+KKr?= =?Windows-1252?Q?0Tr/nSCb1DwuVSoIxY9M/zD1F1lvlyv1kRI6i5kxPuLGpnC5ziG7a7x/?= =?Windows-1252?Q?KQ9bjiFM1l0KhL7OQ9zmRbkLkdtvkby+dpdz/79ht/xSmfVtjKmgFT9p?= =?Windows-1252?Q?+4suGFRQCIKL17f1lhUKlH3Y/9VWfgyBpi49QeHKv7D07K9NTyKykQ2A?= =?Windows-1252?Q?+eSgvsG2+ZrFGz8cCLiBAhESWnDJpIHO/Nbaksi+bUjpDAn5J99aUlS9?= =?Windows-1252?Q?zbwLluAICz3+5yGJznyvlumKFpAQSXpbRhLr+856OnHQcY+5QHwoC5Rk?= =?Windows-1252?Q?6uGUvzcc43nIVKdF3b8lf7ZUTQkjOYHtoewZ6h/pc8ZuFMaYITHwx0/C?= =?Windows-1252?Q?+M7IRRuY7wvtzrh2x2HLDqWF+3JXlWd6JDbAYizH0LSKzxDrHiTr/XMi?= =?Windows-1252?Q?hwKuIQo+zAJXc85QaJS3daxJu+IvW3LqueNi7I2EasfOBPiz4Nc95bat?= =?Windows-1252?Q?dY2r+psq1kdQjQWorGH/a7g7nqobH/uutiOTy2WGMJyMbx3jC6lsiUkQ?= =?Windows-1252?Q?6VkKPhH+8uV/7QkDqLv2X5qjHVsNucsNYSKoDAuD0SYfocNng/+GpgYB?= =?Windows-1252?Q?9xvuQTmp2ywEszkgx0enEFmfxV3fcVrwy6YZPm/O9x/9KQsuccXBcAgh?= =?Windows-1252?Q?IHzPKH/thY4hh1VHqb7RU7ei7vPp2LR70jw5A32ZimQDZ52OVnRL6mWl?= =?Windows-1252?Q?6MTDiw7YINT7T7eunGKwfbaVsY8a7rc60+k=3D?= Content-Type: multipart/alternative; boundary="_000_CH5PR18MB927659676A86C64F0EF16E91A8CDBFACH5PR18MB927659_" MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CH5PR18MB927659.namprd18.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b3de673e-415b-4f19-7038-08de46bae106 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Dec 2025 09:15:58.6251 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 5280104a-472d-4538-9ccf-1e1d0efe8b1b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 4Vrr232r4BS5yicNIDD9f/c6IV9AGlYwOLe2DtB2onpRlvIj/z8KcZSWPzC9yQeJEJplmqNnZMNtqQW1KSrKEw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR18MB3968 X-OriginatorOrg: amazon.com List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --_000_CH5PR18MB927659676A86C64F0EF16E91A8CDBFACH5PR18MB927659_ Content-Type: text/plain; charset="Windows-1252" Content-Transfer-Encoding: quoted-printable Hi, I am trying to understand the SELECT FOR UPDATE behavior when it is not ret= urning rows back to client. postgres=3D> CREATE TABLE t (col1 INT, col2 INT); postgres=3D> INSERT INTO t VALUES (1, 1); S1: BEGIN; UPDATE t SET col2 =3D col2 + 1 WHERE col1 =3D 1; S2: BEGIN; WITH cte AS (SELECT * FROM t WHERE col1 =3D 1 FOR UPDATE) UPDATE= t SET col2 =3D t.col2 + 1 FROM cte AS t_self_join WHERE (t.col2 =3D t_self= _join.col2); S1: COMMIT; S2: zero rows updated Why does session 2 update zero rows ? Shouldn=92t the SELECT FOR UPDATE and= UPDATE read the new version of the row as per > If so, the second updater proceeds with its operation using the updated v= ersion of the row. In the case of SELECT FOR UPDATE and SELECT FOR SHARE, t= his means it is the updated version of the row that is locked and returned = to the client. https://www.postgresql.org/docs/current/transaction-iso.html#XACT-READ-COMM= ITTED Does this mean the new version for row is only returned when the SELECT FOR= SHARE is returning rows back to client ? ------ Thanks, Tanzeel --_000_CH5PR18MB927659676A86C64F0EF16E91A8CDBFACH5PR18MB927659_ Content-Type: text/html; charset="Windows-1252" Content-Transfer-Encoding: quoted-printable
Hi,

I am trying to understand the SELECT FOR UPDATE behavior when it is not ret= urning rows back to client.

postgres=3D> CREATE TABLE t (col1 INT, col2 INT);
post= gres=3D> INSERT INTO t VALUES (1= , 1);

S1: BEGIN; UPDATE t SET col2 =3D col2 + 1 WHERE col1 =3D 1;
S2: BEGIN; WITH cte AS (SELECT * FROM t WHERE col1 =3D 1 FOR UPDATE) UPDATE= t SET col2 =3D t.col2 + 1 FROM cte AS t_self_join WHERE (t.col2 =3D t_self= _join.col2);
S1: COMMIT;
S2: zero rows updated

Why does session 2 update zero rows ? Shouldn=92t the SELECT FOR UPDATE and= UPDATE read the new version of the row as per
> If so, the second updater proceeds with its operation using the update= d version of the row. In the case of SELECT FOR UPDATE and SELECT FOR SHARE= , this means it is the updated version of the row that is locked and return= ed to the client.

Does this mean the new version for row is only returned when the SELECT FOR= SHARE is returning rows back to client ?

------
Thanks,
Tanzeel
--_000_CH5PR18MB927659676A86C64F0EF16E91A8CDBFACH5PR18MB927659_--