Geometry RESTRICT and JOIN

Started by Paul Matthewsover 16 years ago2 messages
#1Paul Matthews
plm@netspace.net.au

I'm trying to add all the "box op point" operators. The C routines are
written and working as advertised. The manuals description of the
RESTRICT and JOIN clauses of CREATE OPERATOR don't seem too clear. Are
these samples correct, or am I totally off base here?

CREATE OPERATOR << (
LEFTARG = box,
RIGHTARG = point,
PROCEDURE = leftof,
RESTRICT = scalarltsel, -- ?? UNSURE
JOIN = positionjoinsel -- ?? UNCLEAR
);

CREATE OPERATOR &> (
LEFTARG = box,
RIGHTARG = point,
PROCEDURE = notleft,
RESTRICT = scalargtsel, -- ?? UNSURE
JOIN = positionjoinsel -- ?? UNCLEAR
);

CREATE OPERATOR @> (
LEFTARG = box,
RIGHTARG = point,
PROCEDURE = contains,
RESTRICT = eqsel, -- ?? UNSURE
JOIN = contjoinsel -- ?? UNCLEAR
);

...etc...

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Paul Matthews (#1)
Re: Geometry RESTRICT and JOIN

Paul Matthews <plm@netspace.net.au> writes:

I'm trying to add all the "box op point" operators. The C routines are
written and working as advertised. The manuals description of the
RESTRICT and JOIN clauses of CREATE OPERATOR don't seem too clear. Are
these samples correct, or am I totally off base here?

Well, I'm pretty sure you don't want the scalar selectivity functions
for any of these. IIRC the geometric selectivity functions already
come in pairs, eg you should use contsel and contjoinsel for @>.

regards, tom lane