From: | Simon Riggs <simon(at)2ndquadrant(dot)com> |
---|---|
To: | Alvaro Herrera <alvherre(at)commandprompt(dot)com> |
Cc: | Pg Patches <pgsql-patches(at)postgresql(dot)org> |
Subject: | Re: Snapshot management, final |
Date: | 2008-04-22 21:58:38 |
Message-ID: | 1208901518.4259.1272.camel@ebony.site |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-patches |
On Tue, 2008-04-22 at 17:50 -0400, Alvaro Herrera wrote:
> Simon Riggs wrote:
> > On Tue, 2008-04-22 at 15:49 -0400, Alvaro Herrera wrote:
> >
> > > - Three CopySnapshot call sites remain outside snapmgr.c: DoCopy() on
> > > copy.c, ExplainOnePlan() on explain.c and _SPI_execute_plan() on spi.c.
> > > They are there because they grab the current ActiveSnapshot, modify it,
> > > and then use the resulting snapshot. There is no corresponding
> > > FreeSnapshot, because it's not needed.
> >
> > Not needed? How can we be certain that the modified snapshot does not
> > outlive its original source?
>
> It's not CopySnapshot that's not needed, but FreeSnapshot. The point
> here is that the snapshot will be freed automatically as soon as it is
> PopActiveSnapshot'd out of existance. CopySnapshot creates a new,
> separate copy of the passed snapshot, and each of them will be freed
> (separately) as soon as their refcounts reach zero.
OK, so it can;t be copied to a longer lived memory context?
--
Simon Riggs
2ndQuadrant http://www.2ndQuadrant.com
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2008-04-22 22:13:00 | Re: Snapshot management, final |
Previous Message | Alvaro Herrera | 2008-04-22 21:50:56 | Re: Snapshot management, final |