Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kUdEO-0000L5-TB for pgsql-bugs@arkaria.postgresql.org; Mon, 19 Oct 2020 22:02:16 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1kUdEN-0005ub-B3 for pgsql-bugs@arkaria.postgresql.org; Mon, 19 Oct 2020 22:02:15 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kUdEM-0005sm-VE for pgsql-bugs@lists.postgresql.org; Mon, 19 Oct 2020 22:02:15 +0000 Received: from mail-io1-xd29.google.com ([2607:f8b0:4864:20::d29]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1kUdEJ-0008V8-1R for pgsql-bugs@lists.postgresql.org; Mon, 19 Oct 2020 22:02:12 +0000 Received: by mail-io1-xd29.google.com with SMTP id b8so1718155ioh.11 for ; Mon, 19 Oct 2020 15:02:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=endpoint.com; s=google; h=from:mime-version:subject:date:references:to:in-reply-to:message-id; bh=ro4tFS2YEYi1LwP+Hq1iI8dUIE0+KwjLo9vCKUkgrBI=; b=NJPY6IppxWGlD4/jhcGzpR25AfQreXvLZ2OHX0zzutrizNKN8KTus17HaAG3b6LVGO jdj9T/pIIY53Ym6LBws+hKlJyw9YJHVEgqf1HHoDUdzOaeWMGhGo9ZxG04HuP+I6cpw6 CVFW1KEBbDN3ZpUGiV9YmQPt4jz0gX6Q3sL1Dgp1ikKfLMLeXxykVRgfARusovxbk4br caokmQt1h4yQqsb7KTTjVEdrElzmf65qGXYisFQzezyad3pK7UONnxLIdjeD+CAox7oz fSlrRlHPEKQggaqvRUg1318zyZDIQQLT2gX3kSkeWPAnqluUuAUZYU7VVek6EnI5jLqx wLKg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:mime-version:subject:date:references:to :in-reply-to:message-id; bh=ro4tFS2YEYi1LwP+Hq1iI8dUIE0+KwjLo9vCKUkgrBI=; b=STrMJJmCLnvX8DkH74oc8iiR6AmGg3pDHr3cIMF33tSE3nXm/XF45rZReLNxHhMTNC qWlWjZqT0ik8HZIOyoi7MKqU3KIDfElVOBGnJBs9/hUgdbajqNrFWr6eq4Ls3do7Rb05 S4JLQKH2XCtI909uJPoV84mFGju+kcwx6a/aVHIb4LU7c2zoOQtCuvIcORmJLbpxh18z L+iDHA5TnDYRrxVCStk78XaHbQ10UX90Ovr+Dw9v1crgX3fFgViyGP+kRuRROApie83N Bd5t6sP6ikkPckkND1FJ027xn2snk54RcDvwYDOCgB3cLxLMx5v6n+OM2IRy5/AEqT1z vaQg== X-Gm-Message-State: AOAM530OAEEmyVJ1CkIlhEc4jxZLVBTpvd2mnGloZ6NrN0fSISuNqime hfOUFqcXaIfOLaUK+zhTBeuqmjEgSOJxOHNF X-Google-Smtp-Source: ABdhPJw2ZArAAxdELO3r576A4MJjSyFqUXk6ejIYOGuQEIOvoyKs1begUkmJX3FC/Kk36hK6sgTPvg== X-Received: by 2002:a02:19c2:: with SMTP id b185mr1671796jab.119.1603144928526; Mon, 19 Oct 2020 15:02:08 -0700 (PDT) Received: from [172.20.10.2] (48.sub-174-234-9.myvzw.com. [174.234.9.48]) by smtp.gmail.com with ESMTPSA id s14sm870028iln.32.2020.10.19.15.02.06 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 19 Oct 2020 15:02:07 -0700 (PDT) From: David Christensen Content-Type: multipart/signed; boundary="Apple-Mail=_3654762C-5BBB-4CF1-B302-D9F5E82F3F2F"; protocol="application/pgp-signature"; micalg=pgp-sha256 Mime-Version: 1.0 (Mac OS X Mail 13.4 \(3608.120.23.2.4\)) Subject: Re: BUG #16676: SELECT ... FETCH FIRST ROW WITH TIES FOR UPDATE SKIP LOCKED locks rows it doesn't return Date: Mon, 19 Oct 2020 17:02:04 -0500 References: <16676-fd62c3c835880da6@postgresql.org> To: pgsql-bugs@lists.postgresql.org In-Reply-To: <16676-fd62c3c835880da6@postgresql.org> Message-Id: <4143F72C-37BA-43B3-A768-259907CBA985@endpoint.com> X-Mailer: Apple Mail (2.3608.120.23.2.4) List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --Apple-Mail=_3654762C-5BBB-4CF1-B302-D9F5E82F3F2F Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii Proposed fix: Reorder Limit/LockRows nodes to prevent locking extra tuples in FETCH = FIRST WITH TIES Reference bug report: 16676 1 file changed, 12 insertions(+), 12 deletions(-) src/backend/optimizer/plan/planner.c | 24 ++++++++++++------------ modified src/backend/optimizer/plan/planner.c @@ -2293,6 +2293,18 @@ grouping_planner(PlannerInfo *root, bool = inheritance_update, { Path *path =3D (Path *) lfirst(lc); + /* + * If there is a LIMIT/OFFSET clause, add the LIMIT = node. + */ + if (limit_needed(parse)) + { + path =3D (Path *) create_limit_path(root, = final_rel, path, + = parse->limitOffset, + = parse->limitCount, + = parse->limitOption, + = offset_est, count_est); + } + /* * If there is a FOR [KEY] UPDATE/SHARE clause, add the = LockRows node. * (Note: we intentionally test parse->rowMarks not = root->rowMarks @@ -2307,18 +2319,6 @@ grouping_planner(PlannerInfo *root, bool = inheritance_update, = assign_special_exec_param(root)); } - /* - * If there is a LIMIT/OFFSET clause, add the LIMIT = node. - */ - if (limit_needed(parse)) - { - path =3D (Path *) create_limit_path(root, = final_rel, path, - = parse->limitOffset, - = parse->limitCount, - = parse->limitOption, - = offset_est, count_est); - } - /* * If this is an INSERT/UPDATE/DELETE, and we're not = being called from * inheritance_planner, add the ModifyTable node. --Apple-Mail=_3654762C-5BBB-4CF1-B302-D9F5E82F3F2F Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEECKA1l4YEfF4eK4/eN0ojyd+bZbgFAl+ODNwACgkQN0ojyd+b ZbjgExAAmN8JpHF4vxSS171w3LNiQP2QDemmkoD5jEE68jMt4KFuVbXJBlIsksgu mlvhGyiEhhRtuQuc0Qqh0Ds4T42QvyQ3oNrS5wSrIR+r3XPRexzH2PrHoHG2kihS jTIIlHxgeOMnw6H/ajsQBS/TWHyjXxvj6EoQziyByMO/fYvFh3dP+OPecZ9raAiB v5u934c+a55oFxrZor5iL+GFgNSx9i3b6QvRmescqRkx3y3J4ADpGFxH7u1BSIDw WgUHYKPzjS5xYGqUEpXtZujHmVsbDg+kdj2n0Ka2zi53ZnP2//xKpU0EQYwQQ+n0 vfFaowcCxNkn7j2/R7mOadiqTSKPKDqTwKZz/i0+HKeDbaxavZhEdHJuvGMwdwOf WAQ6lj0xHdpV3BnGe1v/bzhqaxmlfxtz3dMoDIUqdkRztJHQz9YIC+qnQupS090B GIKrlFgFo4jYFhE3/VQ8Vs7APzgMqhuAnVbixOO+SRWqIlAbV12g9HMhUe2FaLuP iizU2dwLE4UjwNKQ73gOTDUiHUuG6lQOm5IMn7QuJeIaOCulRT6X5b+tMcpiAG62 VPDOhspIjW61G3+L2ygzxSRCNQqFksqPhaHvQIwIU8yvQq2HY+Ty5MrnwSrc00YV woGsjM6pH7Q6p3ow1veWIpvWXKS1lmcpwo+eTVVo2EREYBN4pB4= =8mhs -----END PGP SIGNATURE----- --Apple-Mail=_3654762C-5BBB-4CF1-B302-D9F5E82F3F2F--