Para su consulta, desea un índice en xml_files("purchaseNumber", "docPublishDate" desc) :
create index idx_xml_files_2 on xml_files("purchaseNumber", "docPublishDate" desc)
Postgres debería usar este índice para order by , que facilita el distinct on .
Aunque no afectará el rendimiento, también sugeriría simplificar el where cláusula a:
where parsing_status IS NULL