Re: autocommit and stored procedures

From: Dave Cramer <pg(at)fastcrypt(dot)com>
To: Albe Laurenz <all(at)adv(dot)magwien(dot)gv(dot)at>
Cc: <roehm(at)it(dot)usyd(dot)edu(dot)au>, <pgsql-jdbc(at)postgresql(dot)org>
Subject: Re: autocommit and stored procedures
Date: 2007-08-16 10:19:56
Message-ID: 77ED2597-BCE7-4BD1-9BD2-14EC2E178099@fastcrypt.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc


On 16-Aug-07, at 5:46 AM, Albe Laurenz wrote:

> roehm(at)it(dot)usyd(dot)edu(dot)au wrote:
>> In particular, does an JDBC autocommit around the call to a stored
>> procedure commit each statement within that stored procedure, or does
>> it commit the procedure as a whole?
>
> A function in PostgreSQL is always executed within one single
> transaction, so you cannot commit only part of the SQL-statements
> within a function.
>
> The JDBC 4.0 specification says:
>
> The Connection attribute auto-commit specifies when to end
> transactions. Enabling
> auto-commit causes a transaction commit after each individual SQL
> statement as
> soon as that statement is complete. The point at which a statement
> is considered to
> be "complete" depends on the type of SQL statement as well as what
> the application
> does after executing it:
>
> ■ For Data Manipulation Language (DML) statements such as Insert,
> Update,
> Delete, and DDL statements, the statement is complete as soon as
> it has finished
> executing.
> ■ For Select statements, the statement is complete when the
> associated result set
> is closed.
> ■ For CallableStatement objects or for statements that return
> multiple results,
> the statement is complete when all of the associated result sets
> have been closed,
> and all update counts and output parameters have been retrieved.

Isn't that interesting I wonder who's database has the above select
and CallableStatement semantics.

Dave
>
> To me that seems to mean that if I do
>
> executeUpdate("SELECT myfunction()")
>
> the autocommit should occur after the select statement is finished,
> i.e.
> after the complete function has been executed.
>
> But I'll admit that this is disputable...
>
> Yours,
> Laurenz Albe
>
> ---------------------------(end of
> broadcast)---------------------------
> TIP 9: In versions below 8.0, the planner will ignore your desire to
> choose an index scan if your joining column's datatypes do not
> match

In response to

Browse pgsql-jdbc by date

  From Date Subject
Next Message Benjamin Shive 2007-08-16 15:18:30 getGeneratedKeys() support?
Previous Message Albe Laurenz 2007-08-16 09:46:30 Re: autocommit and stored procedures