Je me demande quelle est la précision de l' SELECT DISTINCT
opérateur sur une géométrie PostGIS. Sur mon système, la requête suivante me donne un nombre de 5, ce qui signifie que les points insérés sont considérés comme égaux s'ils diffèrent de moins de 1e-5 et je ne suis pas sûr que ce soit une fonctionnalité de PostGIS, un problème de mon installation ou un bug.
Est-ce que quelqu'un sait si c'est le comportement attendu?
CREATE TEMP TABLE test (geom geometry);
INSERT INTO test
VALUES
(St_GeomFromText('POINT (0.1 0.1)')),
(St_GeomFromText('POINT (0.001 0.001)')),
(St_GeomFromText('POINT (0.0001 0.0001)')),
(St_GeomFromText('POINT (0.00001 0.00001)')),
(St_GeomFromText('POINT (0.000001 0.000001)')),
(St_GeomFromText('POINT (0.0000001 0.0000001)')),
(St_GeomFromText('POINT (0.00000001 0.00000001)')),
(St_GeomFromText('POINT (0.000000001 0.000000001)'));
SELECT COUNT(*) FROM (SELECT DISTINCT geom FROM test) AS test;
count
-------
5
(1 row)
J'utilise:
$ psql --version
psql (PostgreSQL) 9.3.1
et
SELECT PostGIS_full_version();
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
POSTGIS="2.1.1 r12113" GEOS="3.4.2-CAPI-1.8.2 r3921" PROJ="Rel. 4.8.0, 6 March 2012" GDAL="GDAL 1.10.1, released 2013/08/26" LIBXML="2.7.3" LIBJSON="UNKNOWN" RASTER
sur OSX 10.9