pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
PL/SQL Function: self-contained transaction?
4+ messages / 4 participants
[nested] [flat]

* PL/SQL Function: self-contained transaction?
@ 2005-08-22 17:16  Marc G. Fournier <scrappy@postgresql.org>
  0 siblings, 2 replies; 4+ messages in thread

From: Marc G. Fournier @ 2005-08-22 17:16 UTC (permalink / raw)
  To: pgsql-sql


In PostgreSQL, as everyone knows, a QUERY == a transaction, unless wrap'd 
in a BEGIN/END explicitly ... how does that work with a function?  is 
there an implicit BEGIN/END around the whole transaction, or each QUERY 
within the function itself?

If the whole function (and all QUERYs inside of it) are considered one 
transaction, can you do a begin/end within the function itself to 'force' 
commit on a specific part of the function?

----
Marc G. Fournier           Hub.Org Networking Services (http://www.hub.org)
Email: scrappy@hub.org           Yahoo!: yscrappy              ICQ: 7615664



^ permalink  raw  reply  [nested|flat] 4+ messages in thread

* Re: PL/SQL Function: self-contained transaction?
@ 2005-08-22 18:15  A. Kretschmer <akretschmer@despammed.com>
  parent: Marc G. Fournier <scrappy@postgresql.org>
  1 sibling, 0 replies; 4+ messages in thread

From: A. Kretschmer @ 2005-08-22 18:15 UTC (permalink / raw)
  To: pgsql-sql

am  22.08.2005, um 14:16:30 -0300 mailte Marc G. Fournier folgendes:
> 
> In PostgreSQL, as everyone knows, a QUERY == a transaction, unless wrap'd 
> in a BEGIN/END explicitly ... how does that work with a function?  is there 
> an implicit BEGIN/END around the whole transaction, or each QUERY within 
> the function itself?
> 
> If the whole function (and all QUERYs inside of it) are considered one 
> transaction,

Yes, exactly. 


Regards, Andreas
-- 
Andreas Kretschmer    (Kontakt: siehe Header)
Heynitz:  035242/47212,      D1: 0160/7141639
GnuPG-ID 0x3FFF606C http://wwwkeys.de.pgp.net
 ===    Schollglas Unternehmensgruppe    === 



^ permalink  raw  reply  [nested|flat] 4+ messages in thread

* Re: PL/SQL Function: self-contained transaction?
@ 2005-08-22 18:20  Greg Stark <gsstark@mit.edu>
  parent: Marc G. Fournier <scrappy@postgresql.org>
  1 sibling, 1 reply; 4+ messages in thread

From: Greg Stark @ 2005-08-22 18:20 UTC (permalink / raw)
  To: Marc G. Fournier <scrappy@postgresql.org>; +Cc: pgsql-sql


"Marc G. Fournier" <scrappy@postgresql.org> writes:

> In PostgreSQL, as everyone knows, a QUERY == a transaction, unless wrap'd in a
> BEGIN/END explicitly ... how does that work with a function?  is there an
> implicit BEGIN/END around the whole transaction, or each QUERY within the
> function itself?

The whole outer query issued from your frontend is in one transaction.

> If the whole function (and all QUERYs inside of it) are considered one
> transaction, can you do a begin/end within the function itself to 'force'
> commit on a specific part of the function?

Functions cannot issue start or end transactions. They're a creature of the
transaction you're in when you call them. Otherwise it wouldn't make sense to
be able to call them from within a query.

There is some discussion of "stored procedures" which would live outside of
transactions and be able to create transactions, commit, and roll them back.
But I don't think any of that work is committed yet. I'm not even sure it's
been written yet.

-- 
greg




^ permalink  raw  reply  [nested|flat] 4+ messages in thread

* Re: PL/SQL Function: self-contained transaction?
@ 2005-08-22 19:52  Richard_D_Levine@raytheon.com
  parent: Greg Stark <gsstark@mit.edu>
  0 siblings, 0 replies; 4+ messages in thread

From: Richard_D_Levine@raytheon.com @ 2005-08-22 19:52 UTC (permalink / raw)
  To: pgsql-sql

I think the Enterprise DB folks are actively working it.  I don't know what
their plans to release their work back to the community are.

Mail thread:
http://archives.postgresql.org/pgsql-general/2005-08/msg00582.php

Article: http://oetrends.com/news.php?action=view_record&idnum=428

Home: http://www.enterprisedb.com

Rick
pgsql-sql-owner@postgresql.org wrote on 08/22/2005 01:20:00 PM:

>
> "Marc G. Fournier" <scrappy@postgresql.org> writes:
>
> > In PostgreSQL, as everyone knows, a QUERY == a transaction, unless
> wrap'd in a
> > BEGIN/END explicitly ... how does that work with a function?  is there
an
> > implicit BEGIN/END around the whole transaction, or each QUERY within
the
> > function itself?
>
> The whole outer query issued from your frontend is in one transaction.
>
> > If the whole function (and all QUERYs inside of it) are considered one
> > transaction, can you do a begin/end within the function itself to
'force'
> > commit on a specific part of the function?
>
> Functions cannot issue start or end transactions. They're a creature of
the
> transaction you're in when you call them. Otherwise it wouldn't make
sense to
> be able to call them from within a query.
>
> There is some discussion of "stored procedures" which would live outside
of
> transactions and be able to create transactions, commit, and roll them
back.
> But I don't think any of that work is committed yet. I'm not even sure
it's
> been written yet.
>
> --
> greg
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 6: explain analyze is your friend




^ permalink  raw  reply  [nested|flat] 4+ messages in thread


end of thread, other threads:[~2005-08-22 19:52 UTC | newest]

Thread overview: 4+ messages (download: mbox mbox.gz follow: Atom feed)
-- links below jump to the message on this page --
2005-08-22 17:16 PL/SQL Function: self-contained transaction? Marc G. Fournier <scrappy@postgresql.org>
2005-08-22 18:15 ` A. Kretschmer <akretschmer@despammed.com>
2005-08-22 18:20 ` Greg Stark <gsstark@mit.edu>
2005-08-22 19:52   ` Richard_D_Levine@raytheon.com

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox