I'm trying to understand how sorting exactly works in Postgres, I've understood that there are two sorting mechanisms depending on the size of the data, one being qsort which is initiated if workmem is < 1024 kb and the other being external sort which is initiated in the other case. I tried to find out more material to understand how it exactly works but I'm unable to find any help material.
Jim has answered this already.
Moreover, I'm trying to study the code using gdb by attaching it to the pg_backend_pid and having a breakpoint at raw_parser, from where I start analyzing. Any help material or resources would be really appreciated.
In case of sort specifically, fire a query with an ORDER BY and break at ExecSort. Step through this function and its minions. Try range of sizes of results i.e. size of row * number of rows to understand the dynamics.
Thanks.
--Hitesh
--
Best Wishes, Ashutosh Bapat EnterpriseDB Corporation The Postgres Database Company