On 10/12/22 04:40, David Rowley wrote: > I've not really done any analysis into which other window functions > can use this optimisation. The attached only adds support to > row_number()'s support function and only converts exactly "RANGE > UNBOUNDED PRECEDING AND CURRENT ROW" into "ROW UNBOUNDED PRECEDING AND > CURRENT ROW". That might need to be relaxed a little, but I've done > no analysis to find that out.
Per spec, the ROW_NUMBER() window function is not even allowed to have a frame specified.
b) The window framing clause of WDX shall not be present.
Also, the specification for ROW_NUMBER() is:
f) ROW_NUMBER() OVER WNS is equivalent to the <window function>:
COUNT (*) OVER (WNS1 ROWS UNBOUNDED PRECEDING)
So I don't think we need to test for anything at all and can indiscriminately add or replace the frame with ROWS UNBOUNDED PRECEDING.