in puttuple_common(), the transition from an internal to external sort is
performed at the bottom of the TSS_INITIAL case in the main switch
statement.
The transition? Do we internal sort somewhere else and then external sort
here in tuplesort.c?
The function dumptuples() heapifies the in-core tuples (divides the
in-core tuples into initial runs and then advances the state to
TSS_BUILDRUNS).
Cannot see where dumptuples() "advances the state to TSS_BUILDRUNS".
I expected something like
state->status = TSS_BUILDRUNS;
executed through dumptuples()
I recommend you run the code in the debugger on a external-sorting query:
watch two or three tuples go into the heap and you'll get the idea.
The top of the heap is at state->memtuples[0] the heap goes down from
there. New tuples are added there and the heap is adjusted (Using the
tuplesort_heap_siftup() function).
-Tim
---------------------------(end of broadcast)---------------------------
TIP 7: You can help support the PostgreSQL project by donating at
http://www.postgresql.org/about/donate