Patch applied. Thanks. (The first if == NULL test was already in CVS).
---------------------------------------------------------------------------
a_ogawa wrote:
>
> Tom Lane <tgl@sss.pgh.pa.us> writes:
> > a_ogawa <a_ogawa@hi-ho.ne.jp> writes:
> > > It is a reasonable idea. However, the majority part of MemSet was not
> > > able to be avoided by this idea. Because the per-tuple contexts are used
> > > at the early stage of executor.
> >
> > Drat. Well, what about changing that? We could introduce additional
> > contexts or change the startup behavior so that the ones that are
> > frequently reset don't have any data in them unless you are working
> > with pass-by-ref values inside the inner loop.
>
> That might be possible. However, I think that we should change only
> aset.c about this article.
> I thought further: We can check whether context was used from the last
> reset even when blocks list is not empty. Please see attached patch.
>
> The effect of the patch that I measured is as follows:
>
> o Execution time that executed the SQL ten times.
> (1)Linux(CPU: Pentium III, Compiler option: -O2)
> - original: 24.960s
> - patched : 23.114s
>
> (2)Linux(CPU: Pentium 4, Compiler option: -O2)
> - original: 8.730s
> - patched : 7.962s
>
> (3)Solaris(CPU: Ultra SPARC III, Compiler option: -O2)
> - original: 37.0s
> - patched : 33.7s
>
> regards,
>
> ---
> Atsushi Ogawa
[ Attachment, skipping... ]
>
> ---------------------------(end of broadcast)---------------------------
> TIP 2: you can get off all lists at once with the unregister command
> (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
--
Bruce Momjian | http://candle.pha.pa.us
pgman@candle.pha.pa.us | (610) 359-1001
+ If your life is a hard drive, | 13 Roberts Road
+ Christ can be your backup. | Newtown Square, Pennsylvania 19073