On 25/07/2025 14:55, Matheus Alcantara wrote:
On Mon Jul 21, 2025 at 7:11 PM -03, Vik Fearing wrote:
SELECT a, b, c
FROM tab
QUALIFY wf() OVER () = ?
can be rewritten as:
SELECT a, b, c
FROM (
SELECT a, b, c, wf() OVER () = ? AS qc
FROM tab
) AS q
WHERE qc
and then let the optimizer take over. The standard does this kind of
thing all over the place; I don't know what the postgres project's
position on doing things like this are.
With this transformation users will see a Subquery plan node even if
it's not present on the original query, is that expected or it can be
confusing to users?
This is a definition technique, it does not need to be implemented as a
subquery.
--
Vik Fearing