Я пишу postgres функцию для выполнения некоторых пространственных вычислений.
Мне нужно отлавливать ошибки неправильной геометрии и несовпадающих SRID из двух таблиц, которые являются аргументами функции.
приведенный ниже код работает, но кажется плохим способом добиться этого.
-- check the geometries in each table
EXECUTE format('SELECT DISTINCT ST_GeometryType(geom) FROM %s', master_table)
INTO master_type_holder;
IF master_type_holder != 'ST_Polygon' THEN
RAISE EXCEPTION 'master table geometries must be type ST_Polygon';
END IF;
EXECUTE format('SELECT DISTINCT ST_GeometryType(geom) FROM %s', ref_table)
INTO ref_type_holder;
IF ref_type_holder != 'ST_Polygon' THEN
RAISE EXCEPTION 'Reference table geometries must be type ST_Polygon';
END IF;
Спасибо за любые предложения