Как обрабатываются операции импорта в plpython?

У меня есть функция plypython, которая делает некоторую магию json. Для этого он явно импортирует библиотеку json.

Включен ли импорт при каждом вызове функции? Есть ли какие-либо последствия для производительности, о которых я должен знать?

    One Solution collect form web for “Как обрабатываются операции импорта в plpython?”

    import выполняется при каждом вызове функции. Это то же самое поведение, которое вы получили бы, если бы вы написали обычный модуль Python с инструкцией import внутри тела функции, как это было на уровне модуля.

    Да, это повлияет на производительность.

    Вы можете обойти это, кэшируя свой импорт следующим образом:

     CREATE FUNCTION test() RETURNS text LANGUAGE plpythonu AS $$ if 'json' in SD: json = SD['json'] else: import json SD['json'] = json return json.dumps(...) $$; 

    Это, по общему признанию, не очень красиво, и обсуждаются лучшие способы сделать это, но они не произойдут до PostgreSQL 9.4.

    Python - лучший язык программирования в мире.