On 5/19/26 7:42 AM, vellaipandiyan sm wrote:
I reviewed the REFRESH MATERIALIZED VIEW ... WHERE patch and had a few questions around concurrency semantics.

  * The original DELETE -> INSERT approach exposing a consistency gap
    makes sense, especially once tuple locks disappear after DELETE. The
    newer FOR UPDATE + single-CTE approach seems safer, though I wonder
    whether overlapping refreshes could still encounter deadlock
    scenarios around UPSERT conflicts.
  * The CONCURRENTLY behavior also feels somewhat unintuitive here. With
    WHERE refreshes, the non-CONCURRENT path appears more permissive for
    writers than CONCURRENTLY WHERE, which seems opposite to the
    expectation established by normal REFRESH MATERIALIZED VIEW semantics.
  * It may also help to document the intended guarantees around
    overlapping partial refreshes and concurrent DML on base tables.

Hi,

Thanks for the review, but please reply-all to the original thread when you review a patch so the original author and previous reviewers can see your review.

If you do not have the original email thread you can go into the archive and request it to be sent to you so you can reply to it.

You can click the "Resend email" link at https://www.postgresql.org/message-id/CAA4eK1KSEL%2Bb81L47MpdVCY79n0QgboxF6XTEjSc0ZcLkDzyWQ%40mail.gmail.com

--
Andreas Karlsson
Percona



Reply via email to