import
được thực thi trên mọi cuộc gọi chức năng. Đây là hành vi tương tự bạn sẽ nhận được nếu bạn đã viết một mô-đun Python bình thường với câu lệnh import
bên trong một hàm chức năng như trái ngược với ở cấp mô-đun.
Có, điều này sẽ ảnh hưởng đến hiệu suất.
Bạn có thể làm việc này bằng bộ nhớ đệm nhập khẩu của bạn như thế này:
CREATE FUNCTION test() RETURNS text
LANGUAGE plpythonu
AS $$
if 'json' in SD:
json = SD['json']
else:
import json
SD['json'] = json
return json.dumps(...)
$$;
Đây là thừa nhận không phải là rất xinh đẹp, và cách tốt hơn để làm điều này đang được thảo luận, nhưng họ sẽ không xảy ra trước khi PostgreSQL 9.4.
Nguồn
2013-02-22 13:32:05
Ah, chỉ sau câu trả lời của bạn, tôi tra cứu trong tài liệu có từ điển toàn cầu SD. Cảm ơn nhiều. – Mauli
@Peter Eisentraut bạn có biết liệu có bất kỳ cải tiến nào đối với vấn đề này trong các phiên bản pg gần đây không? –
Không có bất kỳ thay đổi nào đối với điều này. –