Skip site navigation (1) Skip section navigation (2)

Re: "stored procedures"

From: Josh Berkus <josh(at)agliodbs(dot)com>
To: Merlin Moncure <mmoncure(at)gmail(dot)com>
Cc: Thom Brown <thom(at)linux(dot)com>, Bruce Momjian <bruce(at)momjian(dot)us>, pgsql-hackers(at)postgresql(dot)org
Subject: Re: "stored procedures"
Date: 2011-09-01 17:18:32
Message-ID: (view raw, whole thread or download thread mbox)
Lists: pgsql-hackers
On 8/31/11 12:15 PM, Merlin Moncure wrote:
> An out of process, autonomous transaction type implementation should
> probably not sit under stored procedures for a number of reasons --
> mainly that it's going to expose too many implementation details to
> the user.  For example, does a SP heavy app have 2*N running
> processes?  Or do we slot them into a defined number of backends for
> that purpose? Yuck & yuck.  I like the AT feature, and kludge it
> frequently via dblink, but it's a solution for a different set of
> problems.

I think that transaction control without parallelism would be the 80%
solution.  That is, an SP has transaction control, but those
transactions are strictly serial, and cannot be run in parallel.  For
example, if you were writing an SP in PL/pgSQL, each "BEGIN ... END"
block would be an explicit transaction, and standalone-only statements
be allowed between BEGIN ... END blocks, or possibly in their own
special block type (I prefer the latter).

One issue we'd need to deal with is exception control around
single-statement transactions and non-transactional statements (VACUUM,
CREATE INDEX CONCURRENTLY, CHECKPOINT, etc.).  In some cases, the user
is going to want to catch exceptions and abort the SP, and in other
cases ignore them, so both need to be possible.

Josh Berkus
PostgreSQL Experts Inc.

In response to


pgsql-hackers by date

Next:From: Tom LaneDate: 2011-09-01 17:36:12
Subject: Re: Why buildfarm member anchovy is failing on 8.2 and 8.3 branches
Previous:From: Robert TreatDate: 2011-09-01 16:05:40
Subject: Re: Informix FDW - anybody working on this?

Privacy Policy | About PostgreSQL
Copyright © 1996-2018 The PostgreSQL Global Development Group