मैं एक फ़ंक्शन लिख रहा हूं जिसमें एक ज्यामिति है जो एक पैरामीटर के रूप में है जो विभिन्न अनुमानों में हो सकती है:
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;
फ़ंक्शन को एक विशिष्ट प्रक्षेपण (32737) में ज्यामिति की आवश्यकता होती है, लेकिन मैं कॉल करने वाले को परिवर्तन करने के लिए बाध्य नहीं करना चाहता, मैं इसे फ़ंक्शन के अंदर संभालना पसंद करता हूं।
सवाल यह है कि वास्तविक सिड की जांच के बजाय, हमेशा ST_Transform को कॉल करना सुरक्षित है ? अगर ज्यामिति पहले से ही लक्ष्य प्रक्षेपण में है तो क्या कुछ करेंगे?
मैं इस तरह से एक प्रश्न के साथ जाँच करता हूं कि यह सुरक्षित लगता है, लेकिन यह भयानक होगा यदि कोई इस बात की पुष्टि कर सकता है क्योंकि मैंने इसे डॉक्स में नहीं देखा था।
SELECT ST_AsEWKT(geom), ST_AsEWKT(ST_Transform(geom, 32737)) FROM table_in_32737;