Re: PL/pgSQL Function Problem

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: the inquirer <listquestions(at)yahoo(dot)com>
Cc: pgsql-general(at)postgresql(dot)org, pgsql-novice(at)postgresql(dot)org, pgsql-sql(at)postgresql(dot)org
Subject: Re: PL/pgSQL Function Problem
Date: 2004-09-11 06:03:30
Message-ID: 7435.1094882610@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general pgsql-novice pgsql-sql

the inquirer <listquestions(at)yahoo(dot)com> writes:
> I am trying to create a function that creates a user
> and adds a row to a table. It produces no warnings or
> errors when I create the function but when I attempt
> to execute it I get a syntax error. I do not
> understand why this is happening.

> CREATE OR REPLACE FUNCTION create_author (
> VARCHAR(32), VARCHAR(32), VARCHAR(32) )
> RETURNS INTEGER AS '
> DECLARE
> name_ ALIAS FOR $1;
> username_ ALIAS FOR $2;
> password_ ALIAS FOR $3;
> authorid_ INTEGER;
> BEGIN
> CREATE USER username_ WITH ENCRYPTED PASSWORD
> password_ IN GROUP authors;

Utility statements (which is to say anything except SELECT/INSERT/
UPDATE/DELETE) generally don't cope with parameters. The above won't
work because it's trying to substitute parameters for username_ and
password_ in the CREATE USER utility statement. You could make it work
by constructing the CREATE USER command as a string and then EXECUTE'ing
it.

(I agree this ain't ideal, but it's where we're at...)

regards, tom lane

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Tom Lane 2004-09-11 06:10:47 Re: stringToNode() for plan nodes...
Previous Message Martijn van Oosterhout 2004-09-11 05:16:30 Re: One Database per Data File?

Browse pgsql-novice by date

  From Date Subject
Next Message Tom Lane 2004-09-11 06:19:16 Re: Alter session set current_schema
Previous Message Oliver Elphick 2004-09-11 06:00:11 Re: Alter session set current_schema

Browse pgsql-sql by date

  From Date Subject
Next Message Tom Lane 2004-09-11 06:17:03 Re: Using UPDATE FROM
Previous Message Michael Glaesemann 2004-09-11 05:44:02 Re: HOW TO HANDLE ZEROS IN DATE FIELD?