public inbox for [email protected]  
help / color / mirror / Atom feed
From: John Naylor <[email protected]>
To: David Rowley <[email protected]>
Cc: Richard Guo <[email protected]>
Cc: Chengpeng Yan <[email protected]>
Cc: [email protected] <[email protected]>
Cc: [email protected] <[email protected]>
Subject: Re: BUG #19533: Wrong results from WindowAgg run-condition pushdown on count() with EXCLUDE CURRENT ROW
Date: Fri, 3 Jul 2026 16:09:52 +0700
Message-ID: <CANWCAZbiYQ+=CHAaftwp2x83Gy6tJCB8GUe15yO5DW-cpp0Mxg@mail.gmail.com> (raw)
In-Reply-To: <CAApHDvoJ07GM6V2QWyJAgsJcM-dcFS+nwPq4Um=-NsXv5PmoCw@mail.gmail.com>
References: <[email protected]>
	<[email protected]>
	<CAMbWs4-6umOecRifmC88RW0SHWDAvb4c3-VD8XQ3NJufsUyUOQ@mail.gmail.com>
	<CAApHDvqHXZpF9pPStLqPp5O=G2gVpPD959bMTRRkLjdy4Tvx7g@mail.gmail.com>
	<CAApHDvoJ07GM6V2QWyJAgsJcM-dcFS+nwPq4Um=-NsXv5PmoCw@mail.gmail.com>

On Fri, Jul 3, 2026 at 10:38 AM David Rowley <[email protected]> wrote:
> It's a little hard for me to know what to do here, as I really don't
> know how commonly people use the EXCLUDE clause, and more so, how
> often the Run Condition optimisation will apply when those are used.
> It would be good to have an idea if the bug discovery was from a
> real-world case, or if it was discovered from tooling, or from looking
> at the code.

If it was from tooling, it must have stopped with the first case it
found, as is often the case. I just tried myself and found three more
apparent bugs with EXCLUDE both with and without the v1 patch. Do you
want to see the reproducers, or rethink the risk/reward ratio of
what's handled? I'm also not sure how common that clause is.

Separately, I also I believe I found a counterexample to the part
starting with /* No ORDER BY clause then all rows are peers */ :

CREATE TABLE t7 (x int);
INSERT INTO t7 VALUES (7), (8), (9);

=# SELECT * FROM
  (SELECT x,
          count(*) OVER (ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) c
   FROM t7) s
WHERE c >= 2;
 x | c
---+---
(0 rows)

=# SELECT * FROM
  (SELECT x,
          count(*) OVER (ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) c
   FROM t7) s
WHERE c + 0 >= 2;    -- baseline
 x | c
---+---
 2 | 2
 2 | 3
(2 rows)

--
John Naylor
Amazon Web Services





view thread (15+ messages)  latest in thread

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: [email protected]
  Cc: [email protected], [email protected], [email protected], [email protected], [email protected], [email protected]
  Subject: Re: BUG #19533: Wrong results from WindowAgg run-condition pushdown on count() with EXCLUDE CURRENT ROW
  In-Reply-To: <CANWCAZbiYQ+=CHAaftwp2x83Gy6tJCB8GUe15yO5DW-cpp0Mxg@mail.gmail.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox