Tom Lane wrote:
> Gregory Stark <stark@enterprisedb.com> writes:
> > "Tom Lane" <tgl@sss.pgh.pa.us> writes:
> >> It might work to change struct varlena's contents to something like
> >>
> >> char vl_len_[4]; /* Do not touch this field directly! */
> >> char vl_dat[1];
>
> > Oh, that would probably fix this problem pretty well.
>
> > Touching vl_dat is only safe if you've either just allocated the object
> > yourself or you've already detoasted it.
>
> Sure, but that's been true ever since TOAST was first put in. The
> varvarlena patch didn't change that coding rule.
>
> I'll go try the char[4] hack and see if it works on the machines I have.
Tom has applied this change to CVS HEAD and 8.3.X.
-- Bruce Momjian <bruce@momjian.us> http://momjian.us EnterpriseDB
http://postgres.enterprisedb.com
+ If your life is a hard drive, Christ can be your backup. +