Thread: Bug #477: path ?# path

Bug #477: path ?# path

From
pgsql-bugs@postgresql.org
Date:
Curtis Barrett (curtis@northwestern.edu) reports a bug with a severity of 3
The lower the number the more severe it is.

Short Description
path ?# path

Long Description
nothing major. the ?# (geometric intersection) operator for paths iterates over point pairs in each path testing for
intersection.however, it ignores the last->first point pair for closed paths. a quick workaround is to tack the first
pointon the end of a closed path. 

Sample Code
# select '((1,1),(2,0))'::path ?# '((0,0),(0,2),(2,2))'::path;
 ?column?
----------
 f
(1 row)

# select '((1,1),(2,0))'::path ?# '((0,0),(0,2),(2,2),(0,0))'::path;
 ?column?
----------
 t
(1 row)


No file was uploaded with this report

Re: Bug #477: path ?# path

From
Bruce Momjian
Date:
Can someone comment on this?

> Curtis Barrett (curtis@northwestern.edu) reports a bug with a severity of 3
> The lower the number the more severe it is.
>
> Short Description
> path ?# path
>
> Long Description
> nothing major. the ?# (geometric intersection) operator for paths iterates over point pairs in each path testing for
intersection.however, it ignores the last->first point pair for closed paths. a quick workaround is to tack the first
pointon the end of a closed path. 
>
> Sample Code
> # select '((1,1),(2,0))'::path ?# '((0,0),(0,2),(2,2))'::path;
>  ?column?
> ----------
>  f
> (1 row)
>
> # select '((1,1),(2,0))'::path ?# '((0,0),(0,2),(2,2),(0,0))'::path;
>  ?column?
> ----------
>  t
> (1 row)
>
>
> No file was uploaded with this report
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster
>

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026

Re: Bug #477: path ?# path

From
Tom Lane
Date:
pgsql-bugs@postgresql.org writes:
> the ?# (geometric intersection) operator for paths iterates over point
> pairs in each path testing for intersection. however, it ignores the
> last->first point pair for closed paths.

Looks like a bug to me too; and path_distance, path_length, dist_ppath
also fail to consider the closing segment of a closed path.

Fixed for 7.2.

            regards, tom lane