আমি একটি ফাংশন লিখছি যার একটি জ্যামিতি হিসাবে প্যারামিটার রয়েছে যা বিভিন্ন অনুমানে হতে পারে:
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_Transfor কল করা নিরাপদ ? জ্যামিতি ইতিমধ্যে লক্ষ্য প্রক্ষেপণে থাকলে কি কিছু করবে?
আমি এ জাতীয় একটি কোয়েরি যাচাই করে দেখছি যে এটি নিরাপদ বলে মনে হচ্ছে, তবে এটি দস্তাবেজে না দেখে কেউ যদি এটির সত্যতা নিশ্চিত করতে পারে তবে তা দুর্দান্ত।
SELECT ST_AsEWKT(geom), ST_AsEWKT(ST_Transform(geom, 32737)) FROM table_in_32737;