Me pregunto cuál es la precisión del SELECT DISTINCT
operador en una geometría PostGIS. En mi sistema, la siguiente consulta me da un recuento de 5, lo que significa que los puntos insertados se consideran iguales si difieren en menos de 1e-5 y no estoy seguro de si esa es una característica de PostGIS, un problema de mi instalación o un error
¿Alguien sabe si ese es el comportamiento esperado?
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)
Estoy usando:
$ psql --version
psql (PostgreSQL) 9.3.1
y
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
en OSX 10.9