Usando ST_Contains
na where
cláusula às vezes me dá mensagens de erro como
ERROR: GEOSContains: TopologyException: side location conflict at 37.3706 55.7882
Por enquanto, não posso garantir a validade de todas as geometrias no banco de dados, usando ferramentas de importação de terceiros, por isso apenas pego todas as exceções:
CREATE OR REPLACE FUNCTION safe_st_contains(geom1 geometry, geom2 geometry)
RETURNS BOOL AS
$$
BEGIN
RETURN ST_Contains($1, $2);
EXCEPTION WHEN others THEN
RAISE NOTICE 'TopologyException'; -- this is a guess
RETURN FALSE;
END;
$$
LANGUAGE plpgsql;
Gostaria de saber onde realmente pertencem as exceções como TopologyException e quais condições de exceção devo usar em vez de OTHERS
?
fonte