Tôi đang viết một hàm có dạng hình học như một tham số có thể nằm trong các hình chiếu khác nhau:
CREATE OR REPLACE FUNCTION foo(in geometry) RETURNS boolean AS $$
DECLARE
transformed_geom geometry := in;
BEGIN
IF ST_SRID(transformed_geom) != 32737 THEN
transformed_geom := ST_Transform(transformed_geom, 32737);
END IF;
[ ... ]
END;
$$ language plpgsql;
Hàm cần hình học trong một hình chiếu cụ thể (32737) nhưng tôi không muốn bắt buộc người gọi thực hiện chuyển đổi, tôi thích xử lý nó bên trong hàm.
Câu hỏi là, thay vì kiểm tra srid thực tế, có an toàn không khi gọi ST_Transform ? Sẽ làm bất cứ điều gì nếu hình học đã có trong hình chiếu đích?
Tôi kiểm tra với một truy vấn như thế này rằng nó có vẻ an toàn, nhưng sẽ thật tuyệt nếu ai đó có thể xác nhận điều này vì tôi không thấy nó trong các tài liệu.
SELECT ST_AsEWKT(geom), ST_AsEWKT(ST_Transform(geom, 32737)) FROM table_in_32737;