Adrian Klaver <adrian.klaver@xxxxxxxxxxx> writes: > On 10/15/2014 02:39 PM, Jonathan Rogers wrote: >> I was just reading the PL/Python docs section "42.7.1 Database Access >> Functions" and saw this example: >> >> CREATE FUNCTION usesavedplan() RETURNS trigger AS $$ >> plan = SD.setdefault("plan", plpy.prepare("SELECT 1")) >> # rest of function >> $$ LANGUAGE plpythonu; >> >> The above example uses the plpy.prepare() function, reusing the result >> across function calls uses setdefault(). Unfortunately, since >> setdefault() is a method on dict objects, the values passed to it must >> be evaluated before it can be called. Therefore, plpy.prepare() will be >> called every time usesavedplan() executes whether a result already >> exists in the SD dict or not. >> >> Can anyone clarify what occurs when plpy.prepare() is called? Is it >> worth using a Python conditional to determine whether to call it rather >> than using SD.setdefault()? > Like in the older documentation?: Hm ... this was changed in commit 6f6b46c9c0ca3d96. Peter, did you consider efficiency here? regards, tom lane -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general