Thread: Running functions that return void in psql

Running functions that return void in psql

From
Eric Brown
Date:
I've got quite a few plpgsql functions that insert, update or delete.
They're all declared to return void. All other functions, I can just
run 'select f(...);' from psql to test them. I don't understand how to
test these ones that return void from psql. Thanks.

Re: Running functions that return void in psql

From
Neil Conway
Date:
Eric Brown wrote:
> I've got quite a few plpgsql functions that insert, update or delete.
> They're all declared to return void. All other functions, I can just run
> 'select f(...);' from psql to test them. I don't understand how to test
> these ones that return void from psql.

neilc=# create function xyz() returns void as 'begin return; end;'
language 'plpgsql';
CREATE FUNCTION
neilc=# select xyz();
  xyz
-----

(1 row)

-Neil

Re: Running functions that return void in psql

From
Michael Fuhr
Date:
On Wed, Dec 15, 2004 at 12:19:14AM -0800, Eric Brown wrote:

> I've got quite a few plpgsql functions that insert, update or delete.
> They're all declared to return void. All other functions, I can just
> run 'select f(...);' from psql to test them. I don't understand how to
> test these ones that return void from psql. Thanks.

You could issue queries to verify that the expected inserts, updates,
or deletes (and only those operations) were actually done.

--
Michael Fuhr
http://www.fuhr.org/~mfuhr/

Re: Running functions that return void in psql

From
Eric Brown
Date:
Thanks. I forgot the 'return;' and the error message led me in the
wrong direction. Thanks!

On Dec 15, 2004, at 12:43 AM, Neil Conway wrote:

> Eric Brown wrote:
>> I've got quite a few plpgsql functions that insert, update or delete.
>> They're all declared to return void. All other functions, I can just
>> run 'select f(...);' from psql to test them. I don't understand how
>> to test these ones that return void from psql.
>
> neilc=# create function xyz() returns void as 'begin return; end;'
> language 'plpgsql';
> CREATE FUNCTION
> neilc=# select xyz();
>  xyz
> -----
>
> (1 row)
>
> -Neil

Re: Running functions that return void in psql

From
Richard Huxton
Date:
Eric Brown wrote:
> I've got quite a few plpgsql functions that insert, update or delete.
> They're all declared to return void. All other functions, I can just run
> 'select f(...);' from psql to test them. I don't understand how to test
> these ones that return void from psql. Thanks.

I always return boolean or a count of rows affected in these situations.

--
   Richard Huxton
   Archonet Ltd