From: | Greg Jaskiewicz <gryzman(at)gmail(dot)com> |
---|---|
To: | Guillaume Lelarge <guillaume(at)lelarge(dot)info> |
Cc: | leaf_yxj <leaf_yxj(at)163(dot)com>, pgsql-general(at)postgresql(dot)org |
Subject: | Re: create one function to let other user execute vacuum command. got such an error. |
Date: | 2012-03-28 06:50:23 |
Message-ID: | C97A7021-C91B-41F3-8902-8CC41F5F5511@gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On 28 Mar 2012, at 07:44, Guillaume Lelarge wrote:
> On Tue, 2012-03-27 at 18:51 -0700, leaf_yxj wrote:
>> create one function to let other user execute vacuum command. got such an
>> error. Please help. Thanks. Regards . Grace
>>
>> rrp=> create function vacuum_f ( tablename char(100))
>> Returns char(100) AS $$
>> vacuum tablename;
>> $$ Language plpgsql security definer;
>> ERROR: syntax error at or near "vacuum"
>> LINE 3: vacuum tablename;
>> ^
>> rrp=>
>>
>
> Well, first, it doesn't follow PL/pgsql guidelines. You need at least a
> BEGIN at the beginning of the function, and an END at the end.
>
> But even with this, you cannot use VACUUM in a function. Don't remember
> the reason why right now, but all you'll get is this error:
>
> ERROR: VACUUM cannot be executed from a function or multi-command
> string
>
Because its not a transaction safe operation.
Beside's , what's with the char(100) ? Function like that,you should use text type.
From | Date | Subject | |
---|---|---|---|
Next Message | Toby Corkindale | 2012-03-28 07:14:18 | How to tell if server is in backup mode? |
Previous Message | Guillaume Lelarge | 2012-03-28 06:44:26 | Re: create one function to let other user execute vacuum command. got such an error. |