| From: | Thomas Kellerer <spam_eater(at)gmx(dot)net> |
|---|---|
| To: | pgsql-general(at)postgresql(dot)org |
| Subject: | Re: what's the exact command definition in read committed isolation level? |
| Date: | 2016-04-18 15:53:59 |
| Message-ID: | nf2vuo$vab$1@ger.gmane.org |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-general |
Tom Lane schrieb am 18.04.2016 um 17:16:
>>> For trigger, e.g. written in pl/pgsql, each sql command within the
>>> function may see more new data beyond the (entry) snapshot of outer
>>> command.
>
>> No it will not see "more data")
>
>> It runs in the same _transaction_ as the "firing" command and thus sees
>> **exactly** the same data as the triggering statement
>
> No, that's not true: a trigger is a function and what it can see is
> determined by the rules of the PL it's written in. Typically a
> function that's marked STABLE or IMMUTABLE will see the same snapshot
> as the calling query, but a function that's VOLATILE will take a new
> snapshot for each query it contains.
Does that mean a VOLATILE function runs in a different transaction?
And does that mean it will see committed data that the calling statement would not see?
| From | Date | Subject | |
|---|---|---|---|
| Next Message | David Bennett | 2016-04-18 23:59:34 | Re: How do BEGIN/COMMIT/ABORT operate in a nested SPI query? |
| Previous Message | Tom Lane | 2016-04-18 15:16:24 | Re: Re: what's the exact command definition in read committed isolation level? |