Re: Continuous inserts... - Mailing list pgsql-sql

From Joerg Hessdoerfer
Subject Re: Continuous inserts...
Date
Msg-id 4.3.2.7.0.20000818095440.00af6770@192.168.0.1
Whole thread Raw
In response to Continuous inserts...  (Joerg Hessdoerfer <Joerg.Hessdoerfer@sea-gmbh.com>)
Responses Re: Continuous inserts...  (Stephan Szabo <sszabo@megazone23.bigpanda.com>)
List pgsql-sql
Hi!

Thanks all for your input...

At 09:15 17.08.00 -0700, you wrote:
[...]
> > Question: would it work to use a transaction to perform the rename?
> >
> > i.e.: continuous insert into table 'main' from client.
> >
> >  From somewhere else, execute:
> >
> > begin;
> > alter table main rename to vac_main;
> > create table main (...);
> > end;
> >
> > would the inserter notice this? Read: would ALL inserts AT ANY TIME 
> succeed?
>
>Unfortunately -- no.  Also, bad things can happen if the transaction
>errors since the rename happens immediately.  There's been talk on
>-hackers about this subject in the past.
>
>However, you might be able to do something like this, but
>I'm not sure it'll work and it's rather wierd:
>
>Have three tables you work with, a and b and c
>
>Set up rule on a to change insert to insert on b.
>Insert into a.
>When you want to vacuum, change the rule to insert to c.
>Vacuum b
>Change rule back
>move rows from a and c into b
>vacuum c
[...]

Good idea - I immediately tested it - rules rule! That seems to work perfectly,
and the client doesn't even see it happen (except for 'selects', one would 
have to setup
a rule to return something meaningful then...).

I did:
Two tables, a and b.
Normally, insert into a.
When Vacuuming starts, create rule on a to insert into b
Vacuum a
drop rule
copy records from b to a
vacuum b

Why did you suppose three tables? Did I overlook something?

Greetings,        Joerg
+------****  Science & Engineering Applications GmbH  ****------+
|                                                               |
| Joerg Hessdoerfer                                             |
| Leading SW developer Phone:    +49 (0)2203-962211             |
| S.E.A GmbH           Fax:                 -962212             |
| D-51147 Koeln        Internet: joerg.hessdoerfer@sea-gmbh.com |
|                                http://www.sea-gmbh.com        |
+---------------------------------------------------------------+



pgsql-sql by date:

Previous
From: "Francisco Hernandez"
Date:
Subject: database design and diagraming book recommendations..
Next
From: Joerg Hessdoerfer
Date:
Subject: Re: Continuous inserts...