Re: [PATCHES] WITH RECURSIVE updated to CVS TIP - Mailing list pgsql-hackers

From Tatsuo Ishii
Subject Re: [PATCHES] WITH RECURSIVE updated to CVS TIP
Date
Msg-id 20080716.135704.80197870.t-ishii@sraoss.co.jp
Whole thread Raw
In response to Re: [PATCHES] WITH RECURSIVE updated to CVS TIP  (David Fetter <david@fetter.org>)
Responses Re: [PATCHES] WITH RECURSIVE updated to CVS TIP  (David Fetter <david@fetter.org>)
List pgsql-hackers
> On Wed, Jul 16, 2008 at 09:37:25AM +0900, Tatsuo Ishii wrote:
> > > On Tue, Jul 08, 2008 at 06:01:05PM +0900, Tatsuo Ishii wrote:
> > > > Here is the patches he made against CVS HEAD (as of today).
> > > >
> > > > According to him followings are fixed with the patches:
> > > >
> > > > - fix crush with DISTINCT
> > > > - fix creating VIEW
> > > > - fix the case when recursion plan has another recursion plan under it
> > > > - fix WITH RECURSIVE ...(..) SELECT ...WHERE.. returns wrong result
> > > > - fix inifinit recursion with OUTER JOIN
> > >
> > > Great!
> > >
> > > I've patched psql for some partial support of WITH [RECURSIVE].
> > >
> > > http://git.postgresql.org/?p=~davidfetter/postgresql/.git;a=commit;h=da63f9a82b9e902b5542f788b2e6e6bc95221793
> >
> > Thanks. I will incorporate them with propsed patches.
>
> Part of the point of this exercise is to make git the way to do this.
> Can you please point me to a git repository where your latest changes
> are so I can publish them?
>
> > > > Not yet fixed:
> > > >
> > > > - detect certain queries those are not valid acroding to the standard
> > > > - sort query names acording to the dependency
> > >
> > > Is there something in the standard on how to do this?  How to sort
> > > the nodes other ways?
> >
> > No idea.  What do you think if we allow only one query name at the
> > moment.
>
> I'm not sure I understand what that has to do with sorting.
>
> Please find attached a place where I've found some problems sorting by
> tree by array as Asaba-san suggested.

Humm. your problem seems to do nothing with the problem I refer to.

What I have in my mind is something like:

WITH RECURSIVE foo(a, b) AS
(SELECT ... UNION SELECT...),

bar(c, d) AS
(SELECT ... FROM foo WHERE ...UNION...)
)
SELECT * FROM foo;

In this there are two query names (foo, bar) and we need to detect the
dependency that bar relies on foo before processing the query.

However, as I said earlier, this kind of use case would be rare in the
real world, and I'd like to limit ourselves to having only one query
name at the moment.

Also I suggest to concentrate on reviewing the WITH RECURSIVE
implementation itself now, rather than discussing how to use git
repository or how to write an interesting WITH RECURSIVE applications.

Don't get me wrong. I believe git is a great tool. But we have limited
time and need to think about the priority.
--
Tatsuo Ishii
SRA OSS, Inc. Japan

pgsql-hackers by date:

Previous
From: "David E. Wheeler"
Date:
Subject: Re: PATCH: CITEXT 2.0 v3
Next
From: Greg Smith
Date:
Subject: Re: Sorting writes during checkpoint