Обсуждение: pgsql/src include/nodes/execnodes.h include/ex ...
CVSROOT: /home/projects/pgsql/cvsroot
Module name: pgsql
Changes by: tgl@hub.org 01/05/27 16:48:51
Modified files:
src/include/nodes: execnodes.h
src/include/executor: executor.h
src/backend/executor: execMain.c execJunk.c
Log message:
When using a junkfilter, the output tuple should NOT be stored back into
the same tuple slot that the raw tuple came from, because that slot has
the wrong tuple descriptor. Store it into its own slot with the correct
descriptor, instead. This repairs problems with SPI functions seeing
inappropriate tuple descriptors --- for example, plpgsql code failing to
cope with SELECT FOR UPDATE.
Tom Lane writes: > Peter Eisentraut <peter_e@gmx.net> writes: > > Was this responsible for an occasional > > NOTICE: AllocSetCheck: JunkFilterContext: req size > alloc size for chunk %p in block %p > > during UPDATE? > > No, I don't think that's related. Can you provide a reproducible > example? I've been seeing these regularly when compiling with GCC 3.0-to-be snapshots with full optimization. The notices came in the regression test at various places, always during update. Today, they're gone, with the same compiler as yesterday. -- Peter Eisentraut peter_e@gmx.net http://funkturm.homeip.net/~peter
Peter Eisentraut <peter_e@gmx.net> writes:
> Was this responsible for an occasional
> NOTICE: AllocSetCheck: JunkFilterContext: req size > alloc size for chunk %p in block %p
> during UPDATE?
No, I don't think that's related. Can you provide a reproducible
example?
regards, tom lane
Peter Eisentraut <peter_e@gmx.net> writes:
> I've been seeing these regularly when compiling with GCC 3.0-to-be
> snapshots with full optimization. The notices came in the regression test
> at various places, always during update. Today, they're gone, with the
> same compiler as yesterday.
Ugh. That sounds like a memory clobber to me --- and no, I don't
believe that my changes yesterday fixed it.
regards, tom lane
Tom Lane writes: > Log message: > When using a junkfilter, the output tuple should NOT be stored back into > the same tuple slot that the raw tuple came from, because that slot has > the wrong tuple descriptor. Store it into its own slot with the correct > descriptor, instead. This repairs problems with SPI functions seeing > inappropriate tuple descriptors --- for example, plpgsql code failing to > cope with SELECT FOR UPDATE. Was this responsible for an occasional NOTICE: AllocSetCheck: JunkFilterContext: req size > alloc size for chunk %p in block %p during UPDATE? -- Peter Eisentraut peter_e@gmx.net http://funkturm.homeip.net/~peter