for studying polyphase merge algorithm of tuplesort.c, I use ddd and apend a table, which has a schema as follows:
CREATE TABLE Towns ( id SERIAL UNIQUE NOT NULL, code VARCHAR(10) NOT NULL, -- Only unique inside a department article TEXT, name TEXT NOT NULL, -- Names are not really unique, for instance 'Sainte-Croix' department VARCHAR(4) NOT NULL REFERENCES Departments (code), UNIQUE (code, department) -- UNIQUE (name, department) -- Not perfectly unique but almost );
and has 36684 records, and every record is like: id code article name department 31800 266 \N Machault 77
and for getting into external sort, I type the following command:
select * from towns order by name desc;
but I found it need not reach D5 and D6 during sorting, I thought that the reason is the amount of runs is 3 (too small) before merging, for generate more runs, I shuffled the records
when inputting them and got the same result.
so that I want some help, what schema and records do I as least need for reaching D5 and D6? any advice will be appreciated!