From: | Bruce Momjian <bruce(at)momjian(dot)us> |
---|---|
To: | Tzahi Fadida <Tzahi(dot)ML(at)gmail(dot)com> |
Cc: | PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: [PATCHES] Adding fulldisjunctions to the contrib |
Date: | 2006-08-12 04:22:26 |
Message-ID: | 200608120422.k7C4MQ229459@momjian.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers pgsql-patches |
I am still waiting for someone to tell us that they would use this
capability for a real-world problem.
---------------------------------------------------------------------------
Tzahi Fadida wrote:
> On Friday 11 August 2006 07:18, Bruce Momjian wrote:
> > I have looked over this addition, and I think I finally understand it.
> > Given three tables, A, B, C, which join as A->B, B->C, C->A, you can
> > really join them as A->B->C, and A->C->B. What full disjunction does is
> > to perform both of those joins, and return a one row for each join. Here
>
> What it does is to return all the possible natural joins, i.e.:
> A
> B
> C
> A,B
> A,C
> ...
> A,B,C
>
> And, it removes any redundant information so that if we have a tuple
> that already contains another tuple's information that tuple is discarded.
> Also, note that the full disjunction algorithm i implemented
> is commonly used in cases where the scheme graph is cyclic
> and thus, you cannot use natural full outer join
> to compute the FD.
>
> Finally, you can FD(A,B,C,D,...) any number of relations (limited to 32 in
> the implementation) with no regard to the order between them.
>
> A case study and comparison can be found here:
> http://www.technion.ac.il/~tzahi/soc.html
>
> > is an example from the README:
> >
> > Example of an input and output of a full disjunctions:
> > INPUT:
> >
> > --A---|---B---|---C--
> > X---Y-|-Y---Z-|-X---Z
> > a-|-b-|-b-|-c-|-a-|-d
> >
> > A,B and C are relations. X,Y and Z are attributes. a,b,c and d are
> > values.
> >
> > Note that A,B and C are connected in a cycle. That is:
> > A is connected to B on attribute Y,
> > B is connected to C on attribute Z,
> > C is connected to A on attribute X.
> >
> > The output of the full disjunctions FD(A,B,C):
> >
> > FD
> > X---Y---Z
> > a-|-b-|-c
> > a-|-b-|-d
> >
> > This code is pretty complex, so I can see why it should be in /contrib.
> > Are there reasonable use cases for this capability?
> >
> > ---------------------------------------------------------------------------
> >
> > Tzahi Fadida wrote:
> > > Hi,
> > > I wish to add the fulldisjunctions function to the contrib.
> > > With the help of Jonah, we (or rather he :) created a patch with
> > > regression tests. The function is finished programmatically but
> > > still a little more code documentation touches and improved error
> > > messages are needed. All the rest was extensively tested.
> > >
> > > Attached is the patch.
> > >
> > > Works great. Just compiled from a fresh cvs which i patched with the
> > > attached diff. ran the fulldijsjunction.sql in the
> > > share/contrib/fulldisjunction and let it run and it works great.
> > > 10x.
> > >
> > > --
> > > Regards,
> > > ????????Tzahi.
> > > --
> > > Tzahi Fadida
> > > Blog: http://tzahi.blogsite.org | Home Site: http://tzahi.webhop.info
> > > WARNING TO SPAMMERS: ?see at
> > > http://members.lycos.co.uk/my2nis/spamwarning.html
> >
> > [ Attachment, skipping... ]
> >
> > > ---------------------------(end of broadcast)---------------------------
> > > TIP 3: Have you checked our extensive FAQ?
> > >
> > > http://www.postgresql.org/docs/faq
>
> --
> Regards,
> ????????Tzahi.
> --
> Tzahi Fadida
> Blog: http://tzahi.blogsite.org | Home Site: http://tzahi.webhop.info
> WARNING TO SPAMMERS: ?see at
> http://members.lycos.co.uk/my2nis/spamwarning.html
--
Bruce Momjian bruce(at)momjian(dot)us
EnterpriseDB http://www.enterprisedb.com
+ If your life is a hard drive, Christ can be your backup. +
From | Date | Subject | |
---|---|---|---|
Next Message | Hannu Krosing | 2006-08-12 09:24:50 | Re: Forcing current WAL file to be archived |
Previous Message | Bruce Momjian | 2006-08-12 04:20:15 | Re: [COMMITTERS] pgsql: plperl: Allow conversion from perl to |
From | Date | Subject | |
---|---|---|---|
Next Message | Hannu Krosing | 2006-08-12 09:24:50 | Re: Forcing current WAL file to be archived |
Previous Message | Satoshi Nagayasu | 2006-08-12 04:12:42 | Re: pgstattuple extension for indexes |