Re: Quick pointer required re indexing geometry
От | Dimitri Fontaine |
---|---|
Тема | Re: Quick pointer required re indexing geometry |
Дата | |
Msg-id | 87vdkuh2vk.fsf@hi-media-techno.com обсуждение исходный текст |
Ответ на | Quick pointer required re indexing geometry (Paul Matthews <plm@netspace.net.au>) |
Ответы |
Re: Quick pointer required re indexing geometry
|
Список | pgsql-hackers |
Hi, Paul Matthews <plm@netspace.net.au> writes: > Witting a box@>point function easy. Having a spot of trouble trying to > figure out where and how to graft this into the GiST stuff. Could > someone please point me in the general direction? You want index support for it, I suppose? Without index support (but needed anyway), you implement your code in a C module then make it visible from SQL. I'm not sure you're asking help for the C part so don't expand, please ask more if needed: CREATE OR REPLACE FUNCTION box_contains_point(box, point) RETURNS bool AS 'MODULE_PATHNAME' LANGUAGE 'C' IMMUTABLE STRICT; CREATE OPERATOR @> (LEFTARG = box,RIGHTARG = point,PROCEDURE = box_contains_point,COMMUTATOR = '<@',RESTRICT = contsel,JOIN = contjoinsel ); COMMENT ON OPERATOR @>(box, point) IS 'box contains point?'; Now for adding support for index lookups, you have to see documentation about OPERATOR CLASS and OPERATOR FAMILY. I guess you need to make a family out of point and box if none already exists, add the @> operator there and point to your function. I'm unclear if you need to add it to an OPERATOR CLASS too and which, so I won't risk into writing the commands. Cross datatype indexing support, as far as I've understood, is tied together with operator families. Hope this helps, regards, -- dim
В списке pgsql-hackers по дате отправления: