Not sure if it matters, but 3 variants of st_relate exist. The WHERE for
bool is variant 1 and the WHERE for text is variant 2. Variant 2 and 3
return text, but are different return types. Maybe 2 different results
is to be expected?
Docs:
https://postgis.net/docs/ST_Relate.html
Scott
On 10/15/25 10:28, Paul Ramsey via postgis-users wrote:
Maybe you have found an old bug? Running exactly the same SQL as you, I
get two rows from each query.
postgis=# SELECT d.id <http://d.id>,
ST_Relate(d.geom,
l.geom) as patternMatrix
FROM docks as d, lakes as l
WHERE ST_Relate(d.geom, l.geom, '1FF00F212');
id | patternmatrix
----+---------------
1 | 1FF00F212
2 | 1FF00F212
(2 rows)
postgis=# SELECT
postgis-# d.id <http://d.id>,
postgis-# ST_Relate(d.geom, l.geom) as patternMatrix
postgis-# FROM docks as d, lakes as l
postgis-# WHERE ST_Relate(d.geom, l.geom) = '1FF00F212';
id | patternmatrix
----+---------------
1 | 1FF00F212
2 | 1FF00F212
(2 rows)
postgis=#
postgis=# select postgis_full_version();
postgis_full_version
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
POSTGIS="3.7.0dev 3.6.0rc2-134-g5dc95f1bc" [EXTENSION] PGSQL="180"
GEOS="3.15.0dev-CAPI-1.21.0" PROJ="9.6.2 NETWORK_ENABLED=ON
URL_ENDPOINT=https://cdn.proj.org <https://cdn.proj.org>
USER_WRITABLE_DIRECTORY=/Users/pramsey/Library/Application Support/proj
DATABASE_PATH=/opt/homebrew/Cellar/proj/9.6.2/share/proj/
proj.db" (compiled against PROJ 9.6.2) LIBXML="2.9.13" LIBJSON="0.18"
LIBPROTOBUF="1.5.2" WAGYU="0.5.0 (Internal)" (core procs from "3.7.0dev
3.6.0rc2-125-g747d7732b" need upgrade)
On Wed, Oct 15, 2025 at 9:22 AM Antonio Valanzano <[email protected]
<mailto:[email protected]>> wrote:
I am following the "Introduction to PostGIS " tutorial at https://
postgis.net/workshops/postgis-intro/ <https://postgis.net/workshops/
postgis-intro/>
and for chapter 26 "Dimensionally Extended 9-Intersection Model" I
am trying to replicate the examples.
If I use the two different versions of ST_Relate I do not obtain the
same result
SELECT
d.id <http://d.id>,
ST_Relate(d.geom, l.geom) as patternMatrix
FROM docks as d, lakes as l
WHERE ST_Relate(d.geom, l.geom, '1FF00F212') = true;
-- 1 row
"id" "patternmatrix"
1 "1FF00F212"
SELECT
d.id <http://d.id>,
ST_Relate(d.geom, l.geom) as patternMatrix
FROM docks as d, lakes as l
WHERE ST_Relate(d.geom, l.geom) = '1FF00F212';
-- 2 rows
"id" "patternmatrix"
1 "1FF00F212"
2 "1FF00F212"
Could someone give me an explanation of such a difference ?