This looks like an awesome addition. I have one technical questions...
Is it possible to actually transform the row_number case into a LIMIT clause or make the planner support for this case equivalent to it (in which case we can replace the LIMIT clause planning to transform into a window function)? The reason I ask is because the Limit plan node is actually quite a bit more optimized than the general window function plan node. It calculates cost estimates based on the limit and can support Top-N sort nodes. But the bigger question is whether this patch is ready for a committer to look at? Were you able to resolve Andy Fan's bug report? Did you resolve the two questions in the original email?