CREATE USER within function

Поиск
Список
Период
Сортировка
От Michal Taborsky
Тема CREATE USER within function
Дата
Msg-id b6s4oj$7c0$1@news.hub.org
обсуждение исходный текст
Список pgsql-general
Hi,

I am facing a problem. I am unable to call CREATE USER from within a
PL/PgSQL function. I am using Postgres 7.3.2.

The function looks like this (it is more complex in fact, but even if
stripped to this, it does not work anyway):

CREATE OR REPLACE FUNCTION
usr_createAccount(integer, name, text, text, bool, bool)
RETURNS bool AS '
BEGIN
CREATE USER $2 WITH PASSWORD $3 NOCREATEDB CREATEUSER IN GROUP "all",
"super";
RETURN true;
END;
' LANGUAGE 'plpgsql';

I keep getting this:

akcent=# select usr_createAccount(3, 'username', 'somepassword', 'cs',
true, false);
WARNING:  Error occurred while executing PL/pgSQL function usr_createaccount
WARNING:  line 2 at SQL statement
ERROR:  parser: parse error at or near "$1" at character 14

I am a bit confused by this error, because there is no "$1" string in
this function. I tried to do a CREATE USER in transaction, because I
suspected it to be the problem, but it worked just fine. Does anyone see
something which I don't ? What am I doing wrong ?

Thanks,
Michal


В списке pgsql-general по дате отправления:

Предыдущее
От: "rx"
Дата:
Сообщение:
Следующее
От: "No Longer Frustrated"
Дата:
Сообщение: Re: Newbie: problem Connecting to Server