From: | Chris Gamache <cgg007(at)yahoo(dot)com> |
---|---|
To: | pgsql-sql(at)postgresql(dot)org |
Subject: | Historic Query using a view/function ? |
Date: | 2004-01-04 18:54:44 |
Message-ID: | 20040104185444.78502.qmail@web13808.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 at 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!?
Find out what made the Top Yahoo! Searches of 2003
http://search.yahoo.com/top2003
From | Date | Subject | |
---|---|---|---|
Next Message | Tatsuo Ishii | 2004-01-04 23:39:51 | Re: DO INSTEAD in rule |
Previous Message | Tom Lane | 2004-01-04 17:48:26 | Re: DO INSTEAD in rule |