Michael Glaesemann wrote:

Thanks for the links! I remember coming across a TimeCenter paper. The TimeCenter reference page is quite extensive and I look forward to reading more of the work Darwen and Date critiqued.

Sorry for the redundant Darwen critique link.


On Aug 6, 2004, at 6:37 PM, Mike Mascari wrote:

Partial indexes get me close to where I want with temporal features. I just wish the RI constraints had the ability to supply a WHERE clause. Between the two, it might get me were I want, rather than having to write triggers to ensure temporal integrity.


Would you mind going into more depth into how you're doing this?

It's rather crude. I've a start and end date on all temporal relations. I've a surrogate key as well. The uniqueness of the actual candidate key is enforced by a partial index only over tuples whose end date IS NULL. I maintain "temporal integrity" through ON UPDATE triggers. When a temporal tuple is deactivated, all relations that have the soon-to-be deactivated tuple's surrogate key are also deactivated. I also have a corresponding view for each temporal relation that is queried by non-reporting user interfaces. They see the active tuples, while the reporting component queries the base relations for the entire history.


However, this is all maintained by a series of spaghetti C-language SPI routines, and my own home-brewed version of pg_constraint, as opposed to nice declared referential integrity, for the obvious reasons.

Mike Mascari




---------------------------(end of broadcast)--------------------------- TIP 7: don't forget to increase your free space map settings

Reply via email to