Josh Berkus <[EMAIL PROTECTED]> writes: > Tom Lane wrote: >> Josh Berkus <[EMAIL PROTECTED]> writes: >>> Would it be a worth it for us to implement a non-standard simple syntax >>> sugar on top of WITH RECURSIVE? Or, at least, something like CONNECT_BY()? >> >> The Oracle syntax only *looks* simple. When you start to study it >> you realize that it's a horrid, messy kluge. > > Yeah. I was actually thinking more of something like: > > <table_identifier> RECURSIVE JOIN ON <column_expression> <operator> > <column_expression> > > ... which would be a pretty good simplest-case syntax. > > When I mentioned connect_by() I was referring to Joe's function, not Oracle's > syntax, which I think is awful.
Sounds good*... until you start thinking about the details. Which is precisely where Oracle's syntax breaks down too. In the above syntax where do you specify the base case? Where do you specify any restrictions which stop infinite recursion? How do you get the recursion depth for a record? These aren't optional bells and whistles, the feature is unusable without them, basically every recursive query needs to use at least the first two and usually all three. * (actually it's awful but I think what you really meant to say was <table_ref> RECURSIVE JOIN <join_qual>) -- Gregory Stark EnterpriseDB http://www.enterprisedb.com Ask me about EnterpriseDB's RemoteDBA services! -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers