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

Re: Selects query inside function must read commited data

From: Oliver Elphick <olly(at)lfix(dot)co(dot)uk>
To: aspire420(at)hotpop(dot)com
Cc: pgsql-admin(at)postgresql(dot)org
Subject: Re: Selects query inside function must read commited data
Date: 2004-01-25 16:15:34
Message-ID: 1075047334.1491.16.camel@linda.lfix.co.uk (view raw or flat)
Thread:
Lists: pgsql-admin
On Sun, 2004-01-25 at 08:51, V i s h a l Kashyap @ [Sai Hertz And
Control Systems] wrote:
> Since sai_func_a() which encapsulates the function sai_func_b has not
> completed yet till #4 or #5
> then how does the function sai_func_b reads the new data since it is
> not committed yet.
> 
> If I am not wrong PostgreSQL select statements works on committed data
> thus the new
> inserted data at #3 must not be available to sai_func_b() till #5

No.  All operations by a single transaction are visible inside the
transaction. Therefore an encapsulated function can see anything already
done in the whole transaction.  A function must be entirely inside a
transaction and cannot start a transaction, so there can never be any
problem about this.

Within a transaction, you cannot see data committed by any _other_
transaction that had not already committed when your transaction
started.

-- 
Oliver Elphick                                Oliver(dot)Elphick(at)lfix(dot)co(dot)uk
Isle of Wight, UK                             http://www.lfix.co.uk/oliver
GPG: 1024D/3E1D0C1C: CA12 09E0 E8D5 8870 5839  932A 614D 4C34 3E1D 0C1C
                 ========================================
     "My little children, let us not love in word, neither 
      in tongue; but in deed and in truth."          
                                            I John 3:18 


In response to

Responses

pgsql-admin by date

Next:From: V i s h a l Kashyap @ [Sai Hertz And Control Systems]Date: 2004-01-25 16:31:45
Subject: Re: Selects query inside function must read commited data
Previous:From: Johannes BaropDate: 2004-01-25 14:46:42
Subject: Making a Trigger: UserLogin and UserlogOut

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