Re: Unloading a table consistently - Mailing list pgsql-general

From ptjm@news-reader-radius.uniserve.com (Patrick TJ McPhee)
Subject Re: Unloading a table consistently
Date
Msg-id 7r-dndm-hYIKpoDVnZ2dnUVZ_ternZ2d@uniservecommunications
Whole thread Raw
In response to Unloading a table consistently  (Christophe <xof@thebuild.com>)
Responses Re: Unloading a table consistently
Re: Unloading a table consistently
List pgsql-general
In article <9478.1209833817@sss.pgh.pa.us>, Tom Lane <tgl@sss.pgh.pa.us> wrote:

% If you can't tolerate locking out writers for that long, you won't
% be able to use TRUNCATE.  The operation I think you were imagining is
%
% BEGIN;
% SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
% COPY log TO 'filename-path';
% DELETE FROM log;
% COMMIT;
% VACUUM log;    -- highly recommended at this point

How about something along the lines of

BEGIN;
ALTER TABLE log RENAME to log_old;
CREATE TABLE log(...);
COMMIT;

BEGIN;
LOCK table log_old;
COPY log_old TO 'filename-path';
DROP TABLE log_old;
COMMIT;

I believe this will keep the writers writing while keeping the efficiency
of truncating.
--

Patrick TJ McPhee
North York  Canada
ptjm@interlog.com

pgsql-general by date:

Previous
From: "Nathan Thatcher"
Date:
Subject: Custom C function - is palloc broken?
Next
From: Martijn van Oosterhout
Date:
Subject: Re: How to modify ENUM datatypes?