sql >> Database >  >> RDS >> PostgreSQL

Hoe worden importstatements in plpython afgehandeld?

De import wordt uitgevoerd bij elke functieaanroep. Dit is hetzelfde gedrag dat u zou krijgen als u een normale Python-module zou schrijven met de import statement binnen een functielichaam in tegenstelling tot op moduleniveau.

Ja, dit heeft invloed op de prestaties.

U kunt dit omzeilen door uw importen als volgt te cachen:

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

 return json.dumps(...)
$$;

Dit is weliswaar niet erg mooi, en er worden betere manieren besproken om dit te doen, maar dat zal niet eerder gebeuren dan PostgreSQL 9.4.



  1. Docker - Postgres en pgAdmin 4:Verbinding geweigerd

  2. MySQL-terugdraaiing bij transactie met verbroken/verbroken verbinding

  3. Ontdek aan welke partitie een bepaalde waarde zou worden toegewezen in SQL Server (T-SQL)

  4. Moet ik macro's of VBA-code gebruiken?