On 30/07/2018 15:26, David Rowley wrote: >> - Add some tests. The if (nBufferedTuples > 0) that flushes the tuples >> when the partition changes is not currently exercised. > > That seems like a good idea. In fact, it uncovered a bug around > ConvertPartitionTupleSlot() freeing the previously stored tuple out > the slot which resulted in a crash. I didn't notice before because my > test had previously not required any tuple conversions.
I think we need to think of a better place to put that temporary file, and clean it up properly afterwards. I'm not sure whether we have existing uses like that.
Also, maybe the test should check afterwards that the right count of rows ended up in each partition?
Yea, I actually would suggest changing the data inserted in the third insert statement to have 'Three' in the third column:
insert into parted_copytest select x,1,'One' from generate_series(1011,1020) x;
And then this check:
select count(*) from parted_copytest group by a, b, c;