2010/9/8 Bèrto ëd Sèra <[email protected]>

> Hi!
>
> I would also expect you to be able to make a Stored Procedure executing the
> same command, although I never tried it myself.
>
>
It is not possible... vacuum cannot be executed inside a function or
transaction.

See de sample:

-- Using function
CREATE OR REPLACE FUNCTION fc_vacuum(TEXT) RETURNS VOID AS
$$
BEGIN
  EXECUTE 'VACUUM '||$1;
  RETURN;
END;
$$
LANGUAGE plpgsql;


postg...@bdteste=# select fc_vacuum('foo');
ERROR:  VACUUM cannot be executed from a function
CONTEXT:  SQL statement "VACUUM foo"
PL/pgSQL function "fc_vacuum" line 2 at execute statement


-- Using transaction
postg...@bdteste=# begin;
BEGIN
postg...@bdteste=# VACUUM foo;
ERROR:  VACUUM cannot run inside a transaction block


Best regards,

-- 
Fabrízio de Royes Mello
>> Blog sobre TI: http://fabriziomello.blogspot.com
>> Perfil Linkedin: http://br.linkedin.com/in/fabriziomello

Reply via email to