On Wednesday, June 15, 2016 10:43:13 AM EDT David G. Johnston wrote: > On Wed, Jun 15, 2016 at 10:30 AM, Jan de Visser <jan@xxxxxxxxxxxxx> wrote: > > Point is that you're doing a SELECT. A SELECT returns a result, which can > > be > > empty. I would use executeQuery and ignore the result. > > > > There is a bit of a mismatch between the JDBC stored procedure model and > > the > > pgsql function model, because pgsql doesn't have true stored procedures. > > Can you point to docs, JDBC and/or PG, that describe what it means to > "RETURN void"? > > At a high-level SQL returns SETs and the empty set is a valid SET. I take > it from your comment that JDBC considers the empty set "a result", whose > record count is zero. Hrm... jan=# create or replace function foo() returns void as $$ begin raise notice 'foo() called'; end $$ language plpgsql; CREATE FUNCTION jan=# select foo(); NOTICE: foo() called foo ----- (1 row) So there's a row. Don't know what that row would contain, and how it would map to JDBC. -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general