"Yann" <yann(dot)delorme(at)esker(dot)fr> writes:
> The issue is that in this case all rows are store in memory instead of file
> in the process postgresql.exe
> I think the issue is in the file tuplestore.c.
> When a tuple is added the function static void
> tuplestore_puttuple_common(Tuplestorestate *state, void *tuple), USEMEM is
> not called with tuple size.
Hmm ... yeah, I think there's a leak there.
> I think that, after adding the tuple in the array, a call to USEMEM should
> be done.
No, the callers of tuplestore_puttuple_common are supposed to do that.
But it looks like tuplestore_putvalues() forgot to do so. So data loads
that go through that particular API would miss incrementing the space
counter.
regards, tom lane