Received: from localhost (unknown [200.46.204.183]) by postgresql.org (Postfix) with ESMTP id 62E43650245 for ; Thu, 24 Jul 2008 16:24:18 -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 98473-09 for ; Thu, 24 Jul 2008 16:24:13 -0300 (ADT) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from hook.sigaev.ru (hook.sigaev.ru [212.192.243.50]) by postgresql.org (Postfix) with ESMTP id 39CF3650217 for ; Thu, 24 Jul 2008 16:24:15 -0300 (ADT) Received: by hook.sigaev.ru (Postfix, from userid 1003) id 7B5FB398EF; Thu, 24 Jul 2008 23:24:18 +0400 (MSD) Received: from xor.sai.msu.ru (ppp91-76-165-199.pppoe.mtu-net.ru [91.76.165.199]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by hook.sigaev.ru (Postfix) with ESMTP id 7788D398E0; Thu, 24 Jul 2008 23:24:12 +0400 (MSD) Message-ID: <4888D6DB.8030100@sigaev.ru> Date: Thu, 24 Jul 2008 23:24:11 +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: 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> <8993.1216843701@sss.pgh.pa.us> <4888A594.6010102@sigaev.ru> <7913.1216918895@sss.pgh.pa.us> In-Reply-To: <7913.1216918895@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/1147 X-Sequence-Number: 121407 > queries return the same row twice. A bitmap indexscan plan would mask > such an index bug ... but a plain indexscan won't. Fuh. :(. Well. Will fix. GiST: - GiST already supports both scan directions in theory, but page split may change order between forward and backward scans (user-defined pageSplit doesn't preserve order of tuples). Holding of split until end of scan will produce unacceptable concurrency level. - GiST can return one itempointer twice. It's fixable by storing content of current page in memory instead of just keeping page pinned. Will do (backpatches too). GIN: - GIN doesn't support backward scan direction and will not support in close future. - Right now GIN doesn't return twice the same itempointer, but with current fast_insert patch it might return. So, suppose, to fix that it's enough just to remember itempointers returned from pending list and use it as filter for results from regular structure. Will do. -- Teodor Sigaev E-mail: teodor@sigaev.ru WWW: http://www.sigaev.ru/