import
jest wykonywane przy każdym wywołaniu funkcji. To jest to samo zachowanie, które można by uzyskać, gdybyś napisał normalny moduł Pythona z import
instrukcja wewnątrz ciała funkcji, w przeciwieństwie do na poziomie modułu.
Tak, wpłynie to na wydajność.
Możesz obejść ten problem, buforując swoje importy w następujący sposób:
CREATE FUNCTION test() RETURNS text
LANGUAGE plpythonu
AS $$
if 'json' in SD:
json = SD['json']
else:
import json
SD['json'] = json
return json.dumps(...)
$$;
Nie jest to wprawdzie zbyt ładne i omawiane są lepsze sposoby na zrobienie tego, ale nie zdarzy się to przed PostgreSQL 9.4.