[PostGIS] #5938: ST_Relate(geom, geom, pattern) inconsistent

PostGIS trac at osgeo.org
Fri Jul 4 20:55:18 PDT 2025


#5938: ST_Relate(geom, geom, pattern) inconsistent
----------------------+---------------------------
  Reporter:  pramsey  |      Owner:  pramsey
      Type:  defect   |     Status:  new
  Priority:  medium   |  Milestone:  PostGIS 3.5.4
 Component:  postgis  |    Version:  3.5.x
Resolution:           |   Keywords:
----------------------+---------------------------
Description changed by pramsey:

Old description:

> When used in the context of multiple return records, returns different
> results than in a single record return. Likely a caching issue. The
> relate pattern does not show the same instability.
> {{{
> SELECT
>  c.name AS city_name,
>  s.name AS state_name,
>  ST_Relate(c.point, s.poly),
>  ST_Relate(c.point, s.poly, 'T*F**F***') AS matches_mask
> FROM City c
> CROSS JOIN State s;
>
>  city_name | state_name | st_relate | matches_mask
> -----------+------------+-----------+--------------
>  Houston   | Kansas     | FF0FFF212 | f
>  Lawrence  | Kansas     | 0FFFFF212 | f
>

> SELECT
>  c.name AS city_name,
>  s.name AS state_name,
>  ST_Relate(c.point, s.poly),
>  ST_Relate(c.point, s.poly, 'T*F**F***') AS matches_mask
> FROM City c
> CROSS JOIN State s
> WHERE c.name = 'Lawrence';
>
>  city_name | state_name | st_relate | matches_mask
> -----------+------------+-----------+--------------
>  Lawrence  | Kansas     | 0FFFFF212 | t
> }}}

New description:

 https://lists.osgeo.org/pipermail/postgis-devel/2025-July/030578.html

 When used in the context of multiple return records, returns different
 results than in a single record return. Likely a caching issue. The relate
 pattern does not show the same instability.
 {{{
 SELECT
  c.name AS city_name,
  s.name AS state_name,
  ST_Relate(c.point, s.poly),
  ST_Relate(c.point, s.poly, 'T*F**F***') AS matches_mask
 FROM City c
 CROSS JOIN State s;

  city_name | state_name | st_relate | matches_mask
 -----------+------------+-----------+--------------
  Houston   | Kansas     | FF0FFF212 | f
  Lawrence  | Kansas     | 0FFFFF212 | f


 SELECT
  c.name AS city_name,
  s.name AS state_name,
  ST_Relate(c.point, s.poly),
  ST_Relate(c.point, s.poly, 'T*F**F***') AS matches_mask
 FROM City c
 CROSS JOIN State s
 WHERE c.name = 'Lawrence';

  city_name | state_name | st_relate | matches_mask
 -----------+------------+-----------+--------------
  Lawrence  | Kansas     | 0FFFFF212 | t
 }}}

--
-- 
Ticket URL: <https://trac.osgeo.org/postgis/ticket/5938#comment:2>
PostGIS <http://trac.osgeo.org/postgis/>
The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project.


More information about the postgis-tickets mailing list