För din fråga vill du ha ett index på xml_files("purchaseNumber", "docPublishDate" desc) :
create index idx_xml_files_2 on xml_files("purchaseNumber", "docPublishDate" desc)
Postgres bör använda detta index för order by , vilket underlättar distinct on .
Även om det inte kommer att påverka prestanda, skulle jag också föreslå att du förenklar where klausul till:
where parsing_status IS NULL