Dear list,

I'm trying to write a PL/pgSQL function that executes some code every time a user changes his/her password. The function is supposed to work like this:

CREATE OR REPLACE FUNCTION changePwd(varchar(255)) RETURNS boolean AS $$
DECLARE
        pwd varchar(255);
        curr_user name;
BEGIN
        curr_user = (SELECT session_user);
        pwd = $2;
        
        ALTER ROLE curr_user WITH ENCRYPTED PASSWORD pwd;
        -- [... do some other stuff ...]
        RETURN true;
END;
$$ LANGUAGE 'PLPGSQL';

but PostgreSQL returns:
ERROR:  Error »syntax error« at »$1« at character 13
QUERY:  ALTER ROLE  $1  WITH ENCRYPTED PASSWORD  $2

I have tried this in several ways and it seems, ALTER ROLE just does not accept a parameter instead of name. Does anybody have a solution for this?

Thanks in advance and best regards,
Lutz


---------------------------(end of broadcast)---------------------------
TIP 1: if posting/reading through Usenet, please send an appropriate
      subscribe-nomail command to [EMAIL PROTECTED] so that your
      message can get through to the mailing list cleanly

Reply via email to