Monotonic WindowFunc support for ntile(), percent_rank() and cume_dist()

From: David Rowley <dgrowleyml(at)gmail(dot)com>
To: PostgreSQL Developers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Monotonic WindowFunc support for ntile(), percent_rank() and cume_dist()
Date: 2023-01-23 22:01:08
Message-ID: CAApHDvqR+VqB8s+xR-24bzJbU8xyFrBszJ17qKgECf7cWxLCaA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

9d9c02ccd [1] added infrastructure in the query planner and executor
so that the executor would know to stop processing a monotonic
WindowFunc when its value went beyond what some qual in the outer
query could possibly match in future evaluations due to the
WindowFunc's monotonic nature.

In that commit, support was added so that the optimisation would work
for row_number(), rank(), dense_rank() and forms of count(*). On
further inspection, it looks like the same can be done for ntile(),
percent_rank() and cume_dist(). These WindowFuncs are always
monotonically increasing.

I've attached a trivial patch to add the required support request type
to the existing prosupport functions for these window functions.

David

[1] https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=9d9c02ccd

Attachment Content-Type Size
more_monotonic_wfuncs.patch text/plain 6.0 KB

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Peter Smith 2023-01-23 22:15:53 Re: Time delayed LR (WAS Re: logical replication restrictions)
Previous Message Corey Huinker 2023-01-23 21:50:05 Re: Add SHELL_EXIT_CODE to psql