Hi,
On 2022-04-04 11:43:31 -0400, Tom Lane wrote:
> Andrew Dunstan <andrew@dunslane.net> writes:
> > On 4/3/22 22:46, Andrew Dunstan wrote:
> >> On 4/3/22 20:11, Andres Freund wrote:
> >>> I don't think you're allowed to free stuff in a finalfunc - we might reuse the
> >>> transition state for further calls to the aggregate.
>
> >> Doh! Of course! I'll fix it in the morning. Thanks.
>
> > I've committed a fix for this. I didn't find something to clean out the
> > hash table, so I just removed the 'hash_destroy' and left it at that.
> > All the test I did came back with expected results.
> > Maybe a hash_reset() is something worth having assuming it's possible? I
> > note that simplehash has a reset function.
>
> But removing the hash entries would be just as much of a problem
> wouldn't it?
I think so. I guess we could mark it as FINALFUNC_MODIFY = READ_WRITE. But I
don't see a reason why it'd be needed here.
Is it a problem that skipped_keys is reset in the finalfunc? I don't know how
these functions work. So far I don't understand why
JsonUniqueBuilderState->skipped_keys is long lived...
Greetings,
Andres Freund