Return-Path: owner-postman
Received: from LOCALHOST (LOCALHOST [127.0.0.1]) by nobozo.CS.Berkeley.EDU (8.6.4/8.6.3) with SMTP id TAA16530 for postgres-redist; Mon, 6 Jun 1994 19:21:35 -0700
Resent-From: POSTGRES mailing list <postman@postgres.Berkeley.EDU>
Resent-Message-Id: <199406070221.TAA16530@nobozo.CS.Berkeley.EDU>
Sender: owner-postman@postgres.Berkeley.EDU
X-Return-Path: owner-postman
Received: from faerie.CS.Berkeley.EDU (faerie.CS.Berkeley.EDU [128.32.149.14]) by nobozo.CS.Berkeley.EDU (8.6.4/8.6.3) with ESMTP id TAA16520 for <postgres@postgres.Berkeley.EDU>; Mon, 6 Jun 1994 19:21:34 -0700
Received: from LOCALHOST (LOCALHOST [127.0.0.1]) by faerie.CS.Berkeley.EDU (8.6.4/8.1B) with SMTP id TAA14287; Mon, 6 Jun 1994 19:21:16 -0700
Message-Id: <199406070221.TAA14287@faerie.CS.Berkeley.EDU>
X-Authentication-Warning: faerie.CS.Berkeley.EDU: Host LOCALHOST didn't use HELO protocol
From: aoki@postgres.Berkeley.EDU (Paul M. Aoki)
To: shlam@ie.cuhk.hk
Cc: postgres@postgres.Berkeley.EDU
Subject: Re: how to clean up pg_log, pg_time and pg_variable? 
Reply-To: aoki@postgres.Berkeley.EDU (Paul M. Aoki)
In-reply-to: Your message of Tue, 07 Jun 94 10:09:28 +0800 
	     <9406070209.AA21554@eng.ie.cuhk.hk> 
Date: Mon, 06 Jun 94 19:21:15 -0700
X-Sender: aoki@postgres.Berkeley.EDU
Resent-To: postgres-redist@postgres.Berkeley.EDU
X-Mts: smtp
Resent-Date: Mon, 06 Jun 94 19:21:34 -0700
Resent-XMts: smtp

shlam@ie.cuhk.hk writes:
> Then I want to do what is the consequence if I accidentally delete these files?

any tuples that have not been processed by the "vacuum" command become
invisible/"uncommitted", as if they had been rolled back.

the reason is that until the vacuum cleaner processes a newly-
inserted tuple, the system has to consult pg_time and pg_log to see
if/when its transaction committed.  if a tuple has not been vacuumed
*and* there is no commit info (because the files were deleted) then
the system assumes the transaction aborted and that the tuple should
be ignored.

an anonymous hacker points out that if you are super-crafty you can
replace log/time pages that correspond to transactions for which *all*
tuples in *all* databases are guaranteed to have been vacuumed with
zero-filled pages (i.e., create a file with "holes," like those
created by dbm) since these do not take up actual file system space.
this is a nifty, tricky way to do the truncation i was talking about
before.  we don't currently have a tool to do this.
--
  Paul M. Aoki  |  CS Div., Dept. of EECS, UCB  |  aoki@postgres.Berkeley.EDU
                |  Berkeley, CA 94720           |  ...!uunet!ucbvax!aoki

==============================================================================
   To add/remove yourself to/from the POSTGRES mailing list: send mail with 
   the subject line ADD or DEL to "postgres-request@postgres.Berkeley.EDU"

   If this fails, send mail to "post_questions@postgres.Berkeley.EDU" and
   a human will deal with it.  DO NOT post to the "postgres" mailing list.
==============================================================================
