ST_Contains
in where
句を使用すると、次のようなエラーメッセージが表示されることがあります
ERROR: GEOSContains: TopologyException: side location conflict at 37.3706 55.7882
現時点では、サードパーティのインポートツールを使用してDBのすべてのジオメトリの有効性を保証することはできないため、すべての例外をキャッチします。
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;
TopologyExceptionなどの例外が実際にどこに属していて、代わりにどの例外条件を使用する必要があるのか知りたいのOTHERS
ですが?