Received: from localhost (unknown [200.46.204.183]) by postgresql.org (Postfix) with ESMTP id E70D86502CE for ; Tue, 22 Jul 2008 16:40:21 -0300 (ADT) Received: from postgresql.org ([200.46.204.86]) by localhost (mx1.hub.org [200.46.204.183]) (amavisd-maia, port 10024) with ESMTP id 88115-03 for ; Tue, 22 Jul 2008 16:39:55 -0300 (ADT) Received: from mx3.hub.org (mx3.hub.org [206.223.169.73]) by postgresql.org (Postfix) with ESMTP id E38F4650829 for ; Tue, 22 Jul 2008 15:55:47 -0300 (ADT) X-Greylist: delayed 00:33:48.430431 by SQLgrey-1.7.6 Received: from hook.sigaev.ru (hook.sigaev.ru [212.192.243.50]) by mx3.hub.org (Postfix) with ESMTP id 857E537C682 for ; Tue, 22 Jul 2008 15:17:26 -0300 (ADT) Received: by hook.sigaev.ru (Postfix, from userid 1003) id B921F39909; Tue, 22 Jul 2008 21:22:40 +0400 (MSD) Received: from xor.sai.msu.ru (xor.sai.msu.ru [212.192.243.97]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by hook.sigaev.ru (Postfix) with ESMTP id 27C2F39903; Tue, 22 Jul 2008 21:22:38 +0400 (MSD) Message-ID: <48861758.4070507@sigaev.ru> Date: Tue, 22 Jul 2008 21:22:32 +0400 From: Teodor Sigaev User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.8.1.15) Gecko/20080715 SeaMonkey/1.1.10 MIME-Version: 1.0 To: Tom Lane CC: Oleg Bartunov , Pgsql Hackers Subject: Re: [PATCHES] GIN improvements References: <483FD205.4090904@sigaev.ru> <486BC501.6060605@sigaev.ru> <27880.1215810535@sss.pgh.pa.us> <487A6E0C.3090600@sigaev.ru> <29437.1216742605@sss.pgh.pa.us> In-Reply-To: <29437.1216742605@sss.pgh.pa.us> Content-Type: text/plain; charset=KOI8-R; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: Maia Mailguard 1.0.1 X-Spam-Status: No, hits=0 tagged_above=0 required=5 tests=none X-Spam-Level: X-Archive-Number: 200807/1003 X-Sequence-Number: 121263 > I started to look at this. I don't understand why VACUUM does an insert > cleanup before starting to vacuum, but VACUUM FULL doesn't? Hmm. May be I missed something, but I don't understand where and what... I tried to track all places of ambultdelete call. aminsertcleanup should be called before any ambulkdelete, because ambulkdelete doesn't scan pending list which can store items to be deleted and hence index will store item pointers to absent tuples. > needed is the one at vacuum startup, which tempts me to propose that > the new AM entry point should be called "amvacuumstartup", instead of > wiring in the assumption that what it's for is specifically cleanup > of insertions. That's possible but inserts into index should be forbidden between amvacuumstartup and last call of ambulkdelete. > > Comments? I can make the change if you think it's okay --- I'm busy > cleaning up docs and comments at the moment. -- Teodor Sigaev E-mail: teodor@sigaev.ru WWW: http://www.sigaev.ru/