Received: from maia.hub.org (unknown [200.46.204.183]) by mail.postgresql.org (Postfix) with ESMTP id 3365163437F for ; Thu, 26 Nov 2009 12:35:01 -0400 (AST) Received: from mail.postgresql.org ([200.46.204.86]) by maia.hub.org (mx1.hub.org [200.46.204.183]) (amavisd-maia, port 10024) with ESMTP id 03194-04 for ; Thu, 26 Nov 2009 16:34:53 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from hook.sigaev.ru (hook.sigaev.ru [212.192.243.50]) by mail.postgresql.org (Postfix) with ESMTP id 0211F632CDA for ; Thu, 26 Nov 2009 12:34:50 -0400 (AST) Received: by hook.sigaev.ru (Postfix, from userid 1003) id 49D30398F6; Thu, 26 Nov 2009 19:34:34 +0300 (MSK) Received: from xor.sai.msu.ru (toulouse.jfg-networks.net [82.224.249.154]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) (Authenticated sender: teodor) by hook.sigaev.ru (Postfix) with ESMTPSA id 0D705398F2 for ; Thu, 26 Nov 2009 19:34:23 +0300 (MSK) Message-ID: <4B0EAE0D.606@sigaev.ru> Date: Thu, 26 Nov 2009 19:34:21 +0300 From: Teodor Sigaev User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.8.1.23) Gecko/20090909 SeaMonkey/1.1.18 MIME-Version: 1.0 To: Pgsql Hackers Subject: Re: KNNGiST for knn-search (WIP) References: <4B0AC9E1.5050509@sigaev.ru> In-Reply-To: <4B0AC9E1.5050509@sigaev.ru> Content-Type: multipart/mixed; boundary="------------060608070501080407010905" X-Virus-Scanned: Maia Mailguard 1.0.1 X-Spam-Status: No, hits=-2.599 tagged_above=-10 required=5 tests=BAYES_00=-2.599 X-Spam-Level: X-Archive-Number: 200911/1810 X-Sequence-Number: 150509 This is a multi-part message in MIME format. --------------060608070501080407010905 Content-Type: text/plain; charset=KOI8-R; format=flowed Content-Transfer-Encoding: 7bit Hi! Contrib module is reworked as a patch for current GiST. Now GiST supports KNN-search, the query looks like SELECT * FROM point_tbl ORDER BY f1 <-> '0,1'; or SELECT * FROM point_tbl WHERE f1 <@ '(-10,-10),(10,10)':: box ORDER BY f1 <-> '0,1'; Plans are: EXPLAIN (COSTS OFF) SELECT * FROM point_tbl ORDER BY f1 <-> '0,1'; QUERY PLAN ----------------------------------------- Index Scan using gpointind on point_tbl Index Cond: (f1 <-> '(0,1)'::point) EXPLAIN (COSTS OFF) SELECT * FROM point_tbl WHERE f1 <@ '(-10,-10),(10,10)':: box ORDER BY f1 <-> '0,1'; QUERY PLAN ------------------------------------------------------------------------------ Index Scan using gpointind on point_tbl Index Cond: ((f1 <@ '(10,10),(-10,-10)'::box) AND (f1 <-> '(0,1)'::point)) pg_am now has new column amcanorderbyop (can order by operation), indexes with this flag enabled can be used to speedup operations, which returns non-boolean value, currently type of returned value should have default btree operator class to perform sort. Planner (find_usable_indexes function, actually) could push pathkey expression into restriction clauses of index. I'm not fully satisfied with this piece of code, but, may be, someone has a better idea. I though about adding separate indexorderquals in IndexPath structure... Both GiST's get methods are optimized and there is no overhead, since gistrescan method can choose what traversal algorithm to use using information about types of values returned by operations. If at least one of them returns non-boolean result, then KNN-search will be performed. The only change in interface of supporting functions is: consistentFn function could return float8 non-negative value and it's mandatory to perform KNN-search. Old-style consistent functions are supported. Patch contains (it still requires rbtree-0.5 and point_ops-0.4 patches): - GiST changes - changes in point_ops to support knn-search - contrib/pg_trgm now has new operation <-> returns distance between texts. This operation is supported in KNN-search - contrib/btree_gist provides <-> and its support for GiST for types int2, int4, int8, float4, float8, money, oid, interval, time, date, timestamp and timestamptz TODO: - selectivity of ordering operation should be 1.0 - current patch remove support of IndexScanDesc->kill_prior_tuple, it's needed to restore support if it will not create too big overhead - documentation -- Teodor Sigaev E-mail: teodor@sigaev.ru WWW: http://www.sigaev.ru/ --------------060608070501080407010905 Content-Type: application/x-tar; name="builtin_knngist-0.4.gz" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="builtin_knngist-0.4.gz" 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 --------------060608070501080407010905--