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 1w5zsD-003qC0-0n for pgsql-hackers@arkaria.postgresql.org; Fri, 27 Mar 2026 05:36:45 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w5zsB-007kzQ-22 for pgsql-hackers@arkaria.postgresql.org; Fri, 27 Mar 2026 05:36:44 +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 1w5zsB-007kzI-12 for pgsql-hackers@lists.postgresql.org; Fri, 27 Mar 2026 05:36:43 +0000 Received: from mail-pj1-x102f.google.com ([2607:f8b0:4864:20::102f]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w5zs8-00000001QF8-4515 for pgsql-hackers@postgresql.org; Fri, 27 Mar 2026 05:36:43 +0000 Received: by mail-pj1-x102f.google.com with SMTP id 98e67ed59e1d1-35b88a4f123so978690a91.1 for ; Thu, 26 Mar 2026 22:36:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1774589798; cv=none; d=google.com; s=arc-20240605; b=U3h0YlWmPSBaZ7lhLHxGE0llfKqHxBNPQDmJQDjqXsYLDFW1HD8cbDD4jXnrmDui/w fU4L+y7w1J8pDh2DWkYHRN8ltX7lUwTNqpkWPThaGqmsuGisbQaR7xTw/dGDMUY7Fu6D zQIXUqt2r8zB3NAssyVxQ82K9MbQntMlRGZ9eZgTDd9nk33QDwZS/f8cqdbbAJ1jGZus caDtumJT2Wpx8yV9rctOAZ8CrhPr+9YMFvNcnVldF64kmTGt1ojVZ7zzHFzavid27xQa zr9H8TztGl+GB3S9CQmuxsRNMMnjP1++xxIDrZ17VGCP3DEsEF9GCW7YtGnrjDw5dO3v nTAA== 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=qNkv4q18ebLLBwjQWE7XYjtP0uZrzuF+ghzdvdx2ugs=; fh=33ILs9SXvu8m3ZGUkkzvecjfRQxF71EQWoq6KB9XWTs=; b=bJ/eLcVxfE6WQYIqiySKAHvrx8eenDBkU/f5zaFXuOhixBI8U0TyBIU04ooJwdOSwv VJgLdcZ2dsaXWXgHmsGy0UfVghQjBZd5Md+shOXjH0OrgJ3O0jFLwB+dZ5arKbTnr4Xy bh+Z4urlF0aDiCAaKh2DUyolE0geMaRNMeVYwMd3M2NiQm0KOFaDgWt64a1mlhX/PkXL OxsVXhqhWHLGg8kwegF0w+M7InedXm0/wvNA6XItR6dNUkuzTLjZCpOu7wuBvvKoq4SO Wa43n6uOrK9G0EL/RlQFE6IcOWDZq/VRViKUj6QrvoUxgx4C43JzFRWKWhpyhfTX86a4 TzUQ==; 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=1774589798; x=1775194598; darn=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=qNkv4q18ebLLBwjQWE7XYjtP0uZrzuF+ghzdvdx2ugs=; b=MFOb0vpJeQH0RePGfDtTZ9upr8R54sTEec/0A0h9sqL+jXHOmigmmn6VkNBv5zfGTt ZFyFEuNcNBhgL8NWNUqcNV9RDDAzy0Sbs4pH94Tx9R8CqBcoSVjslW+Cee06h5TY46ua EpAe0hr8nXq/9Asm4L3vaYTlmerWBYH/15enQ4eIfgVVuxkoXrRU/IoBemv0zglefdUP tJoFntbYUoiMpMgilJNYRhtCBU01Vf+L/3xs48FpTPQu6/64lzHaZczKHd6ZdRvEF4Dq 1Wg1B/xqdCiof4gq6AV81+zbjjny+u+5QoD0LU6ivPTiKKltuXZFAtprKkyoHC1CSlvj eJLA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774589798; x=1775194598; 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=qNkv4q18ebLLBwjQWE7XYjtP0uZrzuF+ghzdvdx2ugs=; b=jgbJI3Bsdad+HUNq89EIdpX6m4Ds96IPjvrJSoUZgOFgokipWFmPbQodN+RD4uaNdI k43/V1ZXsyRVjFxNMC2jZeSI6bSkV7jsqLFAQwwdH2vfUCt5awkKZVDsGAeq7ZyYb0cc Jg3UTWzucRSpuwapBwbe/RivKqcQX6McP4P3KSSvPXOEgZmK49RFX4v5QT0pEeJ7C6WI koMW81pRUwUNHjjMheOVZCFgZpHlF/cTMZjzDo/q5xV6KaI9PE/pICBaqiRun9f8JzU6 nJ1yeyMlfkNd2sbVqlmB39CpYcNhcRi+qJs3a8eNtYUTsOEIdUZWGE17CKqGlv94NHUJ kfKg== X-Forwarded-Encrypted: i=1; AJvYcCU8wHEkBl9nHvwbPijgchkjzQgahJBCmcgfREK7p4dW02pAx7/HDJn1ElNQ4L6dSB5vYoVYCSizOsiwJTcw@postgresql.org X-Gm-Message-State: AOJu0Yxiuds/1eFxdW+tUyJN8uZbDXb2yFbtNrMs9k0skmhF6e60KDmM rOPSNGmN5nIlYEVYjN2wmjjQ6mKaGdBmdcVNS0i2qUOXHd5Qil5WGAuFM0adM9RlCzGgLkoVwuY kJjVQ+m3QkiLBbjfuvI1XRMe2FAQUAfQ= X-Gm-Gg: ATEYQzzc9ZvgTK/uXtLp1Lgan1FPkaxUdjOGpc/3TrFMrXe9GrpDWD9+piLd0m5meea ysNHhiTA2Be3kabovvlKvZe0HEFpZ1glpUNhJpXGSxDUVBUnFdIdPGpxP5+IVdZIG1/LabIr1gp xm7nZo83jO9o02La2Ta1E0zriLZvQkThPFCEi2b3skB0Q4+wJrsHmJIt98tHLAhbxOowI5hehuW 73Gpvsqem1/WY25hnTzqvVbDuCuSREEm/0FXS4NSiq1QbdUFFS3FhAl89Olr4tGJxHZZIpLLxTT uu0JSbRw X-Received: by 2002:a17:90b:17c5:b0:35b:9ab6:1d59 with SMTP id 98e67ed59e1d1-35c30db6f20mr888519a91.13.1774589798331; Thu, 26 Mar 2026 22:36:38 -0700 (PDT) MIME-Version: 1.0 References: <20250331212648.ad4ab804559001d7f0788741@sraoss.co.jp> <20260327005646.8b9df4658b2dd510d3f95ec0@sraoss.co.jp> <20260327120057.04d16c1240fe402a3a093ada@sraoss.co.jp> In-Reply-To: <20260327120057.04d16c1240fe402a3a093ada@sraoss.co.jp> From: Amit Langote Date: Fri, 27 Mar 2026 14:36:21 +0900 X-Gm-Features: AQROBzB2EvsuIJqPf9_Xz578HfZ4wy4BOnuKN2O-iuYdr8uz2BdEpqx_0orLbl0 Message-ID: Subject: Re: Add comments about fire_triggers argument in ri_triggers.c To: Yugo Nagata Cc: surya poondla , pgsql-hackers@postgresql.org, Kirill Reshke Content-Type: multipart/mixed; boundary="0000000000008d4fdf064dfae26b" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000008d4fdf064dfae26b Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Fri, Mar 27, 2026 at 12:01=E2=80=AFPM Yugo Nagata = wrote: > On Fri, 27 Mar 2026 09:39:17 +0900 > Amit Langote wrote: > > > On Fri, Mar 27, 2026 at 12:56=E2=80=AFAM Yugo Nagata wrote: > > > > > > Hi, > > > > > > Thank you all for the review and comments. > > > > > > > Yes Amit, I agree that SPI_execute_snapshot() comments do provide s= ome > > > > context on AFTER triggers, but I still feel the newly added comment > > > > in ri_PerformCheck() gives additional context on why the fire_trigg= ers is > > > > set to false. > > > > > > Yes, that is what I intended. The existing comments on > > > SPI_execute_snapshot() explain how the fire_triggers parameter works, > > > but I would like to add a comment explaining why the AFTER trigger fo= r > > > RI needs to set it to false. > > > > > > If the explanation of the effect of fire_triggers seems redundant, I = am > > > fine with the following shorter version: > > > > > > + * Set fire_triggers to false to ensure that check triggers f= ire after all > > > + * RI updates on the same row are complete. > > > > Thanks for the updated patch. Yes, adding the comment might be good, > > but I'd suggest a small tweak: > > > > + * Set fire_triggers to false to ensure that AFTER triggers > > are queued in > > + * the outer query's after-trigger context and fire after all > > RI updates on > > + * the same row are complete, rather than immediately. > > > > Two changes: > > > > * "check triggers" -> "AFTER triggers", since fire_triggers=3Dfalse > > affects any AFTER triggers queued during the SPI execution, not just > > RI check triggers. > > > > * mention of the outer query's after-trigger context to explain the > > mechanism by which the deferral works. > > > > Does that additional context help? > > Thank you for the suggestion. > That looks good to me. It is clearer than the previous version. Ok, will push the attached. --=20 Thanks, Amit Langote --0000000000008d4fdf064dfae26b Content-Type: application/octet-stream; name="v3-0001-Add-comment-explaining-fire_triggers-false-in-ri_.patch" Content-Disposition: attachment; filename="v3-0001-Add-comment-explaining-fire_triggers-false-in-ri_.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn8gxidq0 RnJvbSAwOGM5MDk5N2I2ODJkODhkNTlkNjQ4MWVhMDA1NDIxMDhiODY3YTU5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbWl0IExhbmdvdGUgPGFtaXRsYW5AcG9zdGdyZXNxbC5vcmc+ CkRhdGU6IEZyaSwgMjcgTWFyIDIwMjYgMTQ6MzM6MzUgKzA5MDAKU3ViamVjdDogW1BBVENIIHYz XSBBZGQgY29tbWVudCBleHBsYWluaW5nIGZpcmVfdHJpZ2dlcnM9ZmFsc2UgaW4KIHJpX1BlcmZv cm1DaGVjaygpCgpUaGUgcmVhc29uIGZvciBwYXNzaW5nIGZpcmVfdHJpZ2dlcnM9ZmFsc2UgdG8g U1BJX2V4ZWN1dGVfc25hcHNob3QoKQppbiByaV9QZXJmb3JtQ2hlY2soKSB3YXMgbm90IGRvY3Vt ZW50ZWQsIG1ha2luZyBpdCB1bmNsZWFyIHdoeSBpdCB3YXMKZG9uZSB0aGF0IHdheS4gIEFkZCBh IGNvbW1lbnQgZXhwbGFpbmluZyB0aGF0IGl0IGVuc3VyZXMgQUZURVIKdHJpZ2dlcnMgYXJlIHF1 ZXVlZCBpbiB0aGUgb3V0ZXIgcXVlcnkncyBhZnRlci10cmlnZ2VyIGNvbnRleHQgYW5kCmZpcmUg b25seSBhZnRlciBhbGwgUkkgdXBkYXRlcyBvbiB0aGUgc2FtZSByb3cgYXJlIGNvbXBsZXRlLgoK QXV0aG9yOiBZdWdvIE5hZ2F0YSA8bmFnYXRhQHNyYW9zcy5jby5qcD4KUmV2aWV3ZWQtYnk6IEtp cmlsbCBSZXNoa2UgPHJlc2hrZWtpcmlsbEBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBTdXJ5YSBQ b29uZGxhIDxzdXJ5YXBvb25kbGE0QGdtYWlsLmNvbT4KRGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0 Z3IuZXMvbS8yMDI1MDMzMTIxMjY0OC5hZDRhYjgwNDU1OTAwMWQ3ZjA3ODg3NDFAc3Jhb3NzLmNv LmpwCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3JpX3RyaWdnZXJzLmMgfCA4ICsrKysrKyst CiAxIGZpbGUgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3JpX3RyaWdnZXJzLmMgYi9zcmMvYmFja2VuZC91 dGlscy9hZHQvcmlfdHJpZ2dlcnMuYwppbmRleCBkMjJiOGVmN2YzYy4uNjIzMGEyZWE5YWQgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9yaV90cmlnZ2Vycy5jCisrKyBiL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC9yaV90cmlnZ2Vycy5jCkBAIC0yNTgyLDcgKzI1ODIsMTMgQEAgcmlf UGVyZm9ybUNoZWNrKGNvbnN0IFJJX0NvbnN0cmFpbnRJbmZvICpyaWluZm8sCiAJCQkJCQkgICBz YXZlX3NlY19jb250ZXh0IHwgU0VDVVJJVFlfTE9DQUxfVVNFUklEX0NIQU5HRSB8CiAJCQkJCQkg ICBTRUNVUklUWV9OT0ZPUkNFX1JMUyk7CiAKLQkvKiBGaW5hbGx5IHdlIGNhbiBydW4gdGhlIHF1 ZXJ5LiAqLworCS8qCisJICogRmluYWxseSB3ZSBjYW4gcnVuIHRoZSBxdWVyeS4KKwkgKgorCSAq IFNldCBmaXJlX3RyaWdnZXJzIHRvIGZhbHNlIHRvIGVuc3VyZSB0aGF0IEFGVEVSIHRyaWdnZXJz IGFyZSBxdWV1ZWQgaW4KKwkgKiB0aGUgb3V0ZXIgcXVlcnkncyBhZnRlci10cmlnZ2VyIGNvbnRl eHQgYW5kIGZpcmUgYWZ0ZXIgYWxsIFJJIHVwZGF0ZXMKKwkgKiBvbiB0aGUgc2FtZSByb3cgYXJl IGNvbXBsZXRlLCByYXRoZXIgdGhhbiBpbW1lZGlhdGVseS4KKwkgKi8KIAlzcGlfcmVzdWx0ID0g U1BJX2V4ZWN1dGVfc25hcHNob3QocXBsYW4sCiAJCQkJCQkJCQkgIHZhbHMsIG51bGxzLAogCQkJ CQkJCQkJICB0ZXN0X3NuYXBzaG90LCBjcm9zc2NoZWNrX3NuYXBzaG90LAotLSAKMi40Ny4zCgo= --0000000000008d4fdf064dfae26b--