Re: autonomous transactions
Darren Duncan <darren@darrenduncan.net>
From: Darren Duncan <darren@darrenduncan.net>
To: pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2010-09-17T03:28:12Z
Lists: pgsql-hackers
Robert Haas wrote: > On Thu, Sep 16, 2010 at 5:19 AM, Dimitri Fontaine <dfontaine@hi-media.com> wrote: >> I think they call that dynamic scope, in advanced programming >> language. I guess that's calling for a quote of Greenspun's Tenth Rule: >> >> Any sufficiently complicated C or Fortran program contains an ad hoc >> informally-specified bug-ridden slow implementation of half of Common >> Lisp. >> >> So the name of the game could be to find out a way to implement (a >> limited form of) dynamic scoping in PostgreSQL, in C, then find out all >> and any backend local variable that needs that to support autonomous >> transactions, then make it happen… Right? > > Interestingly, PostgreSQL was originally written in LISP, and there > are remnants of that in the code today; for example, our heavy use of > List nodes. But I don't think that has much to do with this project. > I plan to reserve judgment on the best way of managing the relevant > state until such time as someone has gone to the trouble of > identifying what state that is. It would probably do Pg some good to try and recapture its functional language roots where reasonably possible. I believe that, design-wise, functional languages really are the best way to do object-relational databases, given that pure functions and immutable data structures are typically the best way to express anything one would do with them. -- Darren Duncan