> Thanks for making the adjustments to this. > > I don't think there is any need to call tuplestore_updatemax() from > within writetup_heap(). That means having to update the maximum space > used every time a tuple is written to disk. That's a fairly massive > overhead. > > Instead, it should be fine to modify tuplestore_updatemax() to set a > flag to true if state->status != TSS_INMEM and then record the disk > space used. That flag won't ever be set to false again. > tuplestore_storage_type_name() should just return "Disk" if the new > disk flag is set, even if state->status == TSS_INMEM. Since the > work_mem size won't change between tuplestore_clear() calls, if we've > once spilt to disk, then we shouldn't care about the memory used for > runs that didn't. Those will always have used less memory. > > I did this quickly, but playing around with the attached, I didn't see > any slowdown.
Your patch looks good to me and I confirmed that with your patch I didn't see any slowdown either. Thanks! Best reagards, -- Tatsuo Ishii SRA OSS K.K. English: http://www.sraoss.co.jp/index_en/ Japanese:http://www.sraoss.co.jp