Re: "IN" in a geometric database using data type "point" - Mailing list pgsql-general

From Tom Lane
Subject Re: "IN" in a geometric database using data type "point"
Date
Msg-id 29114.1285509882@sss.pgh.pa.us
Whole thread Raw
In response to "IN" in a geometric database using data type "point"  (Romain Billoir <billoirr@gmail.com>)
List pgsql-general
Romain Billoir <billoirr@gmail.com> writes:
> Hi, i'm trying to request a database using data type "point" using keyword
> "IN" with a list of point generated by PHP, like this:
> 'SELECT * FROM map WHERE position IN ((point(-1,-1), (point(1,-1),
> point(1,1), point(-1,1))'
> but this request returns me an error: operator doesn't exist point = point.

For historical reasons the equality operator for points is named ~=
... which IN doesn't understand.  I think your best bet is to spell
it out instead of using the IN shorthand:

SELECT * FROM map WHERE position ~= point(-1,-1) or position ~= point(1,-1)
or position ~= point(1,1) ...

            regards, tom lane

pgsql-general by date:

Previous
From: David Fetter
Date:
Subject: Re: Exclusion constraint issue
Next
From: Tom Lane
Date:
Subject: Re: 9.0RC1 error variable not found in subplantarget lists