Hi, In a current project I've a PL/Python function that uses default parameters, like this:
CREATE FUNCTION auth.create_user( email text, initial_password text, display_name text DEFAULT NULL, mobile_phone text DEFAULT NULL, status auth.enum_user_status DEFAULT 'active' ) RETURNS text AS $$ ... rest of function ... Now I try to test if 'display_name' is actually passed or not, and if not set it to something sensible, like so: ... if display_name is None: display_name = email[:email.find('@')] ... And ... that fails with an error stating that 'display_name' is referenced before assignment. However, if I do it like this, it works: ... if display_name is None: real_display_name = email[:email.find('@')] ... In straight Python the first example works, however in PL/Python only the second works. Is this how it is supposed to be and did I perhaps miss something in the docs, or is it a bug? Kind regards, Jeroen