>-----Original Message----- >From: Stephan Szabo [mailto:sszabo@xxxxxxxxxxxxxxxxxxxxx] >Sent: donderdag 22 februari 2007 23:13 >To: Joris Dobbelsteen >Cc: Martijn van Oosterhout; Robert Haas; pgsql-general@xxxxxxxxxxxxxx >Subject: Re: [GENERAL] complex referential integrity constraints > >On Thu, 22 Feb 2007, Joris Dobbelsteen wrote: > >> >-----Original Message----- >> >From: pgsql-general-owner@xxxxxxxxxxxxxx >> >[mailto:pgsql-general-owner@xxxxxxxxxxxxxx] On Behalf Of >Martijn van >> >Oosterhout >> >Sent: donderdag 22 februari 2007 18:17 >> >To: Joris Dobbelsteen >> >Cc: Robert Haas; pgsql-general@xxxxxxxxxxxxxx >> >Subject: Re: [GENERAL] complex referential integrity constraints >> > >> >On Thu, Feb 22, 2007 at 05:28:35PM +0100, Joris Dobbelsteen wrote: >> >> Even worse, I don't you can guarentee that this constraint >> >is enforced >> >> at all times. That means, not if you are using triggers. >> >> The only option seems using foreign keys and put in a lot of >> >redundant >> >> data. >> > >> >Err, foreign keys are implemented using triggers, so this statement >> >is self-contradictary. >> >> Are you really sure they are executed under the same >visibility rules? > >IIRC, the ri triggers use calls that you aren't able to get at >in triggers written in any of the PLs, but I think you should >be able to replicate the feat in a trigger written in C. Why they never did that? No need or no pratical situations where it went wrong? IMHO it should become possible to expose this functionality to the PL languages or as part of the trigger system? The current system can be shown to be underpowered to enforce constraints. It seems a bit cumbersome to have C functions for this purpose. However I must admit that looking through the postgres code doesn't make it much clearer to me whats actually going for these kind of tricky problems... - Joris