Historic Query using a view/function ?

From: Chris Gamache <cgg007(at)yahoo(dot)com>
To: pgsql-sql(at)postgresql(dot)org
Subject: Historic Query using a view/function ?
Date: 2003-12-23 16:46:31
Message-ID: 20031223164631.30803.qmail@web13803.mail.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

...Postgresql 7.2...

I'm building the history of a table using rules. I've been trying to figure out
a way to select on a table as it would have appeared in a point in time. I
can't seem to wrap my brain around the problem, tho.

Given some tables

CREATE TABLE list (
num int4 NOT NULL,
name varchar(50),
type varchar(50),
modified timestamptz DEFAULT ('now'::text)::timestamp(6) with time zone,
CONSTRAINT list_pkey PRIMARY KEY (num)
) WITH OIDS;

CREATE TABLE list_log (
num int4 NOT NULL,
name varchar(50),
type varchar(50),
modified timestamptz DEFAULT ('now'::text)::timestamp(6) with time zone,
mod_type varchar(3),
log_date timestamptz DEFAULT ('now'::text)::timestamp(6) with time zone
) WITH OIDS;

And some rules...

CREATE RULE list_del AS ON DELETE TO list DO INSERT INTO list_log (num, name,
type, modified, mod_type) VALUES (old.num, old.name, old.type, old.modified,
'D'::"varchar");

CREATE RULE list_upd AS ON UPDATE TO list WHERE ((old.name <> new.name) OR
(old.type <> new.type)) DO INSERT INTO list_log (num, name, type, modified,
mod_type) VALUES (old.num, old.name, old.type, old.modified, 'U'::"varchar");

It'd be great to be able to do something like...

SELECT * FROM hist_list('10/10/2003'::date) WHERE name like '%Jones';

... I don't think Functions can return tables in 7.2 ... Can anyone think of a
way around this?

CG

__________________________________
Do you Yahoo!?
New Yahoo! Photos - easier uploading and sharing.
http://photos.yahoo.com/

Browse pgsql-sql by date

  From Date Subject
Next Message Michael Glaesemann 2003-12-23 21:42:24 Distributed keys
Previous Message teknokrat 2003-12-23 13:23:35 Re: how do i get differences between rows