Return-path: Received: from mx1.hub.org (mx1.hub.org [200.46.208.251]) by momjian.us (8.11.6/8.11.6) with ESMTP id l4NKk1U13627 for ; Wed, 23 May 2007 16:46:01 -0400 (EDT) Received: from postgresql.org (postgresql.org [200.46.204.71]) by mx1.hub.org (Postfix) with ESMTP id D75E9606C2A; Wed, 23 May 2007 17:45:55 -0300 (ADT) Received: from localhost (maia-4.hub.org [200.46.204.183]) by postgresql.org (Postfix) with ESMTP id C8EE89FBC6A for ; Wed, 23 May 2007 17:42:15 -0300 (ADT) Received: from postgresql.org ([200.46.204.71]) by localhost (mx1.hub.org [200.46.204.183]) (amavisd-maia, port 10024) with ESMTP id 17729-05 for ; Wed, 23 May 2007 17:42:11 -0300 (ADT) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.5 Received: from py-out-1112.google.com (py-out-1112.google.com [64.233.166.178]) by postgresql.org (Postfix) with ESMTP id 1FA0B9FA5BF for ; Wed, 23 May 2007 17:42:11 -0300 (ADT) Received: by py-out-1112.google.com with SMTP id u52so535120pyb for ; Wed, 23 May 2007 13:42:09 -0700 (PDT) DKIM-Signature: a=rsa-sha1; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:user-agent:mime-version:to:cc:subject:references:in-reply-to:content-type:content-transfer-encoding:sender; b=cgL6/7l7uKz2AVIMX8QWARr6MAHmtTmXpi3RV7/t4Y5Pf4j1ZSKfW4nxDgz/9PYdK0JeGU2LNPs6a5BRI9KHZrdGQXl3hgDPTGp+ujHtBaTZWHyNRhoffByGQgSZsqNsirtmI2PHt7QNY/Y5Esfh3KH/TnTFJ/OjcHz/Nivooz8= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:user-agent:mime-version:to:cc:subject:references:in-reply-to:content-type:content-transfer-encoding:sender; b=bm5t3CU8Ekxfao2MiQ7vSJjFhbu2z++OKPYes4LHBXXBo3x8OjCsmLRL+mIVNCGGHD/WzQvNP9ouQ8ZY3dYFYmsdk72lO0KkhNNZ2bg8hizIQwg4nc0nv+MRmp/A4YGpxCj98O1iSvVzXJu86i9DmCnjAF7V1MXX6I4iL3XDIX0= Received: by 10.90.86.10 with SMTP id j10mr1152302agb.1179952929657; Wed, 23 May 2007 13:42:09 -0700 (PDT) Received: from ?172.20.7.150? ( [137.122.39.10]) by mx.google.com with ESMTP id 10sm228125nzo.2007.05.23.13.42.06; Wed, 23 May 2007 13:42:07 -0700 (PDT) Message-ID: <4654A710.80804@enterprisedb.com> Date: Wed, 23 May 2007 21:41:52 +0100 From: Heikki Linnakangas User-Agent: Icedove 1.5.0.10 (X11/20070329) MIME-Version: 1.0 To: Alexey Klyukin cc: PostgreSQL-development Subject: Re: [HACKERS] GIT patch review References: <46544352.6060804@commandprompt.com> In-Reply-To: <46544352.6060804@commandprompt.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: Maia Mailguard 1.0.1 X-Mailing-List: pgsql-hackers List-Archive: List-Help: List-Id: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: Precedence: bulk Sender: pgsql-hackers-owner@postgresql.org Status: RO Alexey Klyukin wrote: > What about proposition for indexam changes, I can't find any patches there ? > > (http://momjian.us/mhonarc/patches/msg00125.html) That mail is just discussion that lead to the patch below: > Is the patch for changing amgetmulti to amgetbitmap relevant to the GIT patch ? > > This original patch is here: > http://archives.postgresql.org/pgsql-patches/2007-03/msg00163.php The fundamental change to the indexam API that GIT requires is support for returning candidate matches. There's two parts to that: the bitmap index scan API (amgetmulti) and the regular amgettuple API. Another issue that needs to be dealt with is that as the GIT patch stands, it doesn't retain the ordering of tuples within a heap page, which means that they need to be sorted on a page-by-page basis when returning them to the executor. That's ugly, the way it's implemented now. To make it less ugly, we'd need support in the amgettuple API to return tuples in partial ordering. Since there was discussion on changing the bitmap index API to make it more efficient for on-disk bitmap indexes, I created a combined patch that both works nicely with on-disk bitmap indexes, and supports candidate matches. That's what the amgetmulti->amgetbitmap patch does. The other part, supporting candidate matches in the amgettuple API hasn't been done. I posted a design that's in the patch queue ("Indexam interface proposal"), hoping to have a consensus on that. There was some discussion on using the candidate matches support for GIN and GiST as well. IIRC there was no objections to the candidate matches support, but I haven't written a patch to do that. A more controversial and invasive change is the support for returning tuples in partial ordering. If we don't want to do that, we can modify the main GIT/clustered indexes patch so that it does retain the full ordering of tuples. It'll degrade much more quickly to a normal B-tree if tuples are not perfectly ordered on the heap, if tuples are updated for examply, but it'll be less invasive. > It doesn't apply cleanly to the cvs head, I can provide necessary changes > (actually I've sent them and figured there is a nowhere mentioned limit on > -hackers which is why I'm resending the message without that patch), Ok, thanks. > Any other suggestions on reviewing the GIT patch ? You might want to start by reading the readme: http://community.enterprisedb.com/git/git-readme.txt Thanks for looking into this. If you have any questions, just ask. -- Heikki Linnakangas EnterpriseDB http://www.enterprisedb.com ---------------------------(end of broadcast)--------------------------- TIP 2: Don't 'kill -9' the postmaster --ELM1205175344-27290-1_--