"Andrew - Supernews" <andrew+nonews@supernews.com> writes:
> The places in the intarray code that you tried to "fix" in your patch at
> the start of this thread are not dealing with data that came from a tuple,
> but from data that came from a decompress method. It's expected that the
> decompress method does the detoasting.
>
> So I think you've mis-analyzed the problem. That's especially true since
> you are claiming that the existing code is already buggy when in fact no
> such bugs have been reported (and clearly intarray has been running with
> toasted array values for years).
I'm not claiming, I'm asking, because I can't tell.
And it's not clear _int_gist.c has been running with toasted array values for
years because it's limited to arrays of 100 integers (or perhaps 200 integers,
there's a factor of 2 in the test). That's not enough to trigger toasting
unless there are other large columns in the same table.
I do know that with packed varlenas I get a crash in g_int_union among other
places. I can't tell where the datum came from originally and how it ended up
stored in packed format.
-- Gregory Stark EnterpriseDB http://www.enterprisedb.com