From: Teodor Sigaev <teodor@sigaev.ru>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Pgsql Hackers <pgsql-hackers@postgresql.org>
Subject: Re: [PATCHES] GIN improvements
Date: Thu, 24 Jul 2008 23:24:11 +0400
Message-ID: <4888D6DB.8030100@sigaev.ru> (raw)
In-Reply-To: <7913.1216918895@sss.pgh.pa.us>
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>
> 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/
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-patches@postgresql.org
Cc: teodor@sigaev.ru, tgl@sss.pgh.pa.us, pgsql-hackers@postgresql.org
Subject: Re: [PATCHES] GIN improvements
In-Reply-To: <4888D6DB.8030100@sigaev.ru>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox