Re: insert/update/delete statements returning a query response

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Barry Lind <barry(at)xythos(dot)com>
Cc: PostgreSQL Development <pgsql-hackers(at)postgresql(dot)org>, stuart(at)zapata(dot)org
Subject: Re: insert/update/delete statements returning a query response
Date: 2001-11-26 23:36:49
Message-ID: 16056.1006817809@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers pgsql-jdbc

Barry Lind <barry(at)xythos(dot)com> writes:
> Is this behavior intended in the backend? The problem is that when you
> create a rule on an object that calls a stored function and invoke that
> rule on an insert/update/delete statement your insert/update/delete
> statement will now return a query result to the front end over the FE/BE
> protocol. (I am not sure this is the exact senerio, but something
> similar).

If the rule adds SELECT operations to the basic statement then those
SELECT(s) will return results to the frontend. I think this is
appropriate, perhaps even necessary for some applications of rules.

> This means that the user now needs to perform a
> executeQuery() call when using these insert/update/delete statements in
> JDBC because the JDBC driver isn't able to accept a query response when
> issuing a insert/update/delete call.

I would regard that as a JDBC bug: it should be able to accept a query
response at any time. It shouldn't have preconceived ideas about what
a given query will produce.

It probably would be a good idea to add some kind of "CALL" or "PERFORM"
statement to the backend, having the same semantics as SELECT except
that the query result is discarded instead of being shipped to the
client. However, this is largely syntactic sugar with maybe a tiny
bit of performance-improvement rationale. JDBC should be able to cope
with all the cases that libpq does, and libpq handles this scenario
with aplomb.

regards, tom lane

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2001-11-26 23:44:07 Re: DEBUG lines in server log
Previous Message Tom Lane 2001-11-26 23:28:17 Re: Minor buglet in update...from (I think)

Browse pgsql-jdbc by date

  From Date Subject
Next Message Stuart Robinson 2001-11-27 00:36:56 Re: insert/update/delete statements returning a query response
Previous Message Rene Pijlman 2001-11-26 22:54:04 Re: JDBC bug?