Hi,
Am 19.11.2011 01:04, schrieb Vlad Khorsun:
>>> Because standard prohibits any kind of aggregates in recursive CTE
>>> members.
>>>
So this would mean option b) is correct:
b) [ ] window functions are not supposed to work in the "child select"
part of recursive CTEs
- since Window functions belong to <aggregate function> | <grouping
operation> ?
I was just trying to use an apparent side effect of the Window
functions to get my Child select ordered: when you use e.g.
row_number() over (partition by <group_field>)
in a Select that has no explicit Order By clause, it seems(!) to order
the result set as if you did an Order By <group_field>,row_number.
(I doubt that would be a safe way to do that "implicit" ordering in
a consistent way, anyway - like what if you use TWO window functions?)
That said, imho the server should complain when you try to use a
window function in the recursive child select, instead of happily
returning rows :-) - or at least it should be documented in the
Release Notes for the window functions.
P.S. on further investigation - it's not an _endless_ recursion,
after 1024 rows you get an error "Too many concurrent executions
of the same request" - which is where it hits the hard-coded limit
for the maximum recursion depth i guess. The good news: it doesn't
crash the server, so you can try again :-)
cheers,
Frank
------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure
contains a definitive record of customers, application performance,
security threats, fraudulent activity, and more. Splunk takes this
data and makes sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-novd2d
Firebird-Devel mailing list, web interface at
https://lists.sourceforge.net/lists/listinfo/firebird-devel