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 1wAlhW-000J2U-38 for pgsql-hackers@arkaria.postgresql.org; Thu, 09 Apr 2026 09:29:27 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wAlhV-004z2d-13 for pgsql-hackers@arkaria.postgresql.org; Thu, 09 Apr 2026 09:29:26 +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 1wAlhV-004z2V-05 for pgsql-hackers@lists.postgresql.org; Thu, 09 Apr 2026 09:29:25 +0000 Received: from mail-pl1-x62c.google.com ([2607:f8b0:4864:20::62c]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wAlhT-000000009ew-49RD for pgsql-hackers@postgresql.org; Thu, 09 Apr 2026 09:29:25 +0000 Received: by mail-pl1-x62c.google.com with SMTP id d9443c01a7336-2b2469e5117so3269805ad.1 for ; Thu, 09 Apr 2026 02:29:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1775726961; cv=none; d=google.com; s=arc-20240605; b=eekT2/M4DdVx/gzjq7FQdNieBWaD0pKdZW6IeFz/U92l4YdQ+jHnLP3uYHCooMJhXG jqdqIxPrpvMV+JUbGQXsKWaFsTCRHtC02NZbf7miCN46xEREEuXgFvEUiBmvbrdcTF9Y 8wx1lgwY41vmzRbgbNkKjl/awWh6ojsQrZ3/wqqSC7XKZQfpHelM7J/SdfbktC3GwmOZ 23JePHOGIFmpjZSUp0fNFrAiTMDJK2x0FN5rZLdow1KJPQ2JaxdNoM/34KrnhMcsKU3C 5bkrO3wnli8wIBpE3aosb5BmBa1IVyEejRFUu+qvOmmd/8tYK0whtx9mqBDKffPIYdeq 2gEA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=zsAvQQ1uFiwjgPboTGpqnTD9fSdNgX6FLPLbR/p3hmI=; fh=Wnw2+2BmbY5bDwDXOiULndM2ZgPQ4yU/F5ezZXkNd9o=; b=Tg7i/D+zg79NNY+87J9OzfUl2bhZJ9U9smYtRtnU7VSuF+V5vXA3GLJo9hiLYLyNom Wjp8E8RGqB9eUNrYTc3tYaze3aAUi9zgbKfMbAJ7jYNv+PizV9O+b65c3nTk+MPzpaWu CT+9tTXjfH8CkHHCxtW7y4rXTqD7jq3khIFid1H5mg1LgtV9e5B9JRaVJoLELOhZ2YDF SSH8LXQkCuZVxd8LASKmr4LNENKhWtuejRMm5GQdhheZ5HmU5jK20TD4O7A4OSXUybLd CqO/ch+4O+9TciQvbdJXMuKpMtuCJqIvPwq6918dYjPQ7PrdCv/BcsK+22KOZgDOFty4 Mw0A==; darn=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=1775726961; x=1776331761; darn=postgresql.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=zsAvQQ1uFiwjgPboTGpqnTD9fSdNgX6FLPLbR/p3hmI=; b=PHThLV1tZw7QbZeuWJ7r7RtfLLGV0PBFFv0HBEYd/Gck3o903EPKf8Z39Y5ICxJmjK 7IOIdXc4vQae44kqkdUcHm9wsyO1V87GRmBG4/lLlo7ITW7Zx+w4yY1ii/J46JTFt8s/ 1juUiTazTjwSXSoLYfG+k/gDy5S2Pz3PMZGUWXP0tG5Fw2l7FyZ8vJ5A3FMVD7wvKYZi A+eMlf3azB+VuOu59oEzWXfLG9VACwyanfbJzhawwlalN5wOIuLk7CBiwas5WuNUS3Bd hk+m9VUB/dEMh88F450sn6Rc90x2c6TSWofqkd14E7g0+m7vkX7Nm1dW2K8N0rGroWKJ Ft0g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775726961; x=1776331761; h=content-transfer-encoding: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=zsAvQQ1uFiwjgPboTGpqnTD9fSdNgX6FLPLbR/p3hmI=; b=eihZjKMTk6GXG54qtPCc325SRUZbeJEZCRJf5cTnM6H1bg+YBwRm0kyqQfwx8liPeO myoeLNdkkO324DYTyF4RMvNA5qy01eJW23rSayy2pM6WSx1dwwuvwBaoDdUrD9DeDgax fkuNwXVCdXCvrJTtfBl+JjbOa8wBtRty0L7RGHUq9TnbxdJHeqKbWee+A5mRJRiRCiml ujlkEGTPeR8ez4C2vla5Y3PvaJI1QxmBFfvh3BSkyVgNbq3o22JHPhUg9l3kBsZ9jt+P 8/Tgy5JfopJtTNa3tjhKleFwpB8ZFXPG5+7siXM1ZnqT4KLgxaNpEUYjLrCsxSEWFuVd 2jww== X-Gm-Message-State: AOJu0YyvyFyD692ieWrjVQ+YtOs1014R1TwuEJnKbJkCfNNZSOs+e2xI vR79/5m/jV1MNg0f1iEkLgFpnu5ZWPrBS/FhoDdFfPPxXt9inRoCdZTgjocvp38npKMfjCV4Rql v5tb3QKXOPOdLhEJ6YA5e20lPh6gzSmedmQ== X-Gm-Gg: AeBDiesZUr1MTR3GMsy+dzZEthmZUNWVDUg7QR1RaeytBdkwLqGTYPU4r9lw7XG1Pqw jIgRtWYHp7laJ+YbyhvjLJgW/cKHPpcMzbZ9fTW8HYhZMTIutchx60m4KeKF3BzKkrURfnlyBXG xDvf7wVeKK+2DY3xKGukQeFOK+krj6Nue11Ak2uBm3f67fNgSwHqWrx5ObFmU8EuKmDCWKJlmLw C9dEmYe0F+d0OgdMqqffqnz1ucfC1TQPw7E/kZy2786RQT6Qk++/YLWaZ7yirWZZdSuhY18+gcS I/E79jhIgdfym6reBJx2CYhR/5sQlzySOaeKabJvGUo+LPptoxU6RveIHO5YFTIo0ywJbBC9Xxw = X-Received: by 2002:a17:903:3848:b0:2b2:9a84:e870 with SMTP id d9443c01a7336-2b2c72d51d9mr25509495ad.8.1775726961483; Thu, 09 Apr 2026 02:29:21 -0700 (PDT) MIME-Version: 1.0 References: <2BE661BA-D909-4093-BF78-DB9B0C099337@gmail.com> <77FA04FE-1F84-4DA1-8855-8BBFD8CC889A@gmail.com> <72AA2663-B642-4FB1-BDC2-5FAFF2D2DF15@gmail.com> In-Reply-To: From: Amit Langote Date: Thu, 9 Apr 2026 18:29:04 +0900 X-Gm-Features: AQROBzD_B6yN8nH1A_TKev30LqoFzmRgIRdMgkwTAw9zlBDT64DRIQFizDu-HNc Message-ID: Subject: Re: Eliminating SPI / SQL from some RI triggers - take 3 To: Evan Montgomery-Recht Cc: PostgreSQL-development Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On Wed, Apr 8, 2026 at 10:23=E2=80=AFAM Amit Langote wrote: > On Tue, Apr 7, 2026 at 10:00=E2=80=AFPM Evan Montgomery-Recht > wrote: > > Unrelated to my patch, SonarCloud flagged a potential issue in > > recheck_matched_pk_tuple() (line 3370): the function loops over > > ii_NumIndexKeyAttrs elements of the skeys array, but the caller in > > ri_FastPathFlushArray passes recheck_skey[1] -- an array of exactly > > one element. This is safe because ri_FastPathFlushArray is the > > > > single-column FK path, so ii_NumIndexKeyAttrs is always 1 there. > > However, the function signature doesn't communicate this constraint, > > which flags as CWE-125 (out-of-bounds read) / CERT C ARR30-C. Adding > > an nkeys parameter (like ri_FastPathProbeOne already has) would make > > the contract explicit. > > Makes sense. Will push the attached patch for this. Pushed this fix. --=20 Thanks, Amit Langote