On Thu, 2002-06-06 at 21:13, Tom Lane wrote:
> Hannu Krosing <hannu@tm.ee> writes:
> > <rant>
> > One thing I think we have stripped too much is time travel.
>
> Actually, I was just discussing that at last night's dinner with someone
> whose name I forget at the moment (I have his card, but not on me).
> He claimed to know how to support time travel as an optional feature
> --- ie, you don't pay for it if you don't need it. I'm hoping to hear
> more about this after the conference is over...
I guess that we could do something similar to oracle (yes, they have
some limited time travel starting from ver 9i ;-p )
1. They log transaction times at some rather coarse interval - this is
the cheap part if done relatively seldom.
2. then they have gone through much of trouble to get historic data from
the logs.
The part that could make it cheap for us is that we don't need to go to
logs, just having an option to tell the executor to assume it is in some
other transaction in some part of the tree would be enough (and to
ignore the new dead-tuple bit in indexes now that it is there) - this
should be possible at very low extra cost.
so we could resurrect old tuples by selecting them into new table:
CREATE TABLE salvage_mytable
AS
SELECT oid as oldoid,tmin as oldtmin, ..., * FROM mytable
AS OF YESTERDAY;
-------------
Hannu