Usar ST_Containsen la wherecláusula a veces me da mensajes de error como
ERROR:  GEOSContains: TopologyException: side location conflict at 37.3706 55.7882
Por ahora no puedo garantizar la validez de cada geometría en DB, usando herramientas de importación de terceros, así que solo capturo cada excepción:
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;
Me gustaría saber dónde pertenecen realmente excepciones como TopologyException y qué condiciones de excepción debo usar en lugar de OTHERS.
fuente
