From: | Greg Sabino Mullane <htamfids(at)gmail(dot)com> |
---|---|
To: | Christopher Inokuchi <cinokuchi(at)gmail(dot)com> |
Cc: | pgsql-bugs(at)lists(dot)postgresql(dot)org |
Subject: | Re: Window Functions with identical PARTITION BY and ORDER BY clauses evaluated separately |
Date: | 2025-03-07 14:23:40 |
Message-ID: | CAKAnmmK2EkwdfT24LUp4JBOfxdB5tT_oqdyFKC7P-_opF7js1g@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
Those are different windows. See:
https://www.postgresql.org/docs/current/sql-expressions.html#SYNTAX-WINDOW-FUNCTIONS
Because the (optional) frame_clause is part of the window_definition, it
does seem like a minor documentation bug as we ought to mention that the
frame (if it exists) needs to be equivalent too. Here's a better link to
where we state that:
https://www.postgresql.org/docs/current/queries-table-expressions.html#QUERIES-WINDOW
Here's a simplified example:
greg=# explain select count(*) over (partition by oid rows between 1000
preceding and 1000 following),
count(*) over (partition by oid rows between 1000 preceding and 1000
following) from pg_class;
QUERY PLAN
-------------------------------------------------------------------------------------------------
WindowAgg (cost=0.28..60.87 rows=791 width=20)
-> Index Only Scan using pg_class_oid_index on pg_class
(cost=0.28..49.00 rows=791 width=4)
(2 rows)
greg=# explain select count(*) over (partition by oid rows between 1000
preceding and 1000 following),
count(*) over (partition by oid rows between 1000 preceding and 9999
following) from pg_class;
QUERY PLAN
-------------------------------------------------------------------------------------------------------
WindowAgg (cost=0.28..72.73 rows=791 width=20)
-> WindowAgg (cost=0.28..60.87 rows=791 width=12)
-> Index Only Scan using pg_class_oid_index on pg_class
(cost=0.28..49.00 rows=791 width=4)
Cheers,
Greg
--
Crunchy Data - https://www.crunchydata.com
Enterprise Postgres Software Products & Tech Support
From | Date | Subject | |
---|---|---|---|
Next Message | PG Bug reporting form | 2025-03-07 16:09:38 | BUG #18834: Query planer is choosing the sub-optimal plan when limit is present |
Previous Message | Álvaro Herrera | 2025-03-07 10:37:42 | Re: BUG #18832: Segfault in GrantLockLocal |