Hey,
I am running PostgreSQL 8.1.4 and I want to create a user from inside a
function. Is this possible in 8.1?
Ive found quite a few references on google using EXECUTE, but this seems
relevant to earlier versions, not 8.1.
I have a function like this:
CREATE FUNCTION user_create (un varchar, uid bigint, pw varchar) RETURNS
VARCHAR LANGUAGE plpgsql AS '
BEGIN
EXECUTE "CREATE USER " || un || " WITH PASSWORD " || pw;
RETURN un;
END
';
Executing this function yields:
# SELECT user_create('bob',1234,'bobspassword');
ERROR: column "CREATE USER " does not exist
CONTEXT: SQL statement "SELECT "CREATE USER " || $1 || " WITH PASSWORD
" || $2 "
PL/pgSQL function "user_create" line 2 at execute statement
Directly executing CREATE USER in this function also fails.. CREATE USER
$1 appears to be what is being executed.
Any tips would be appreciated.
Cheers,
Dan