Jag hittade ett bra svar här:Spåra framsteg för en uppdateringssats
Tricket är att först skapa en sekvens (namnge den som du vill):
CREATE SEQUENCE query_progress START 1;
Lägg sedan till i din frågas WHERE-del:
AND NEXTVAL('query_progress')!=0
Nu kan du fråga efter förloppet:
SELECT NEXTVAL('query_progress');
Glöm slutligen inte att bli av med sekvensen:
DROP SEQUENCE query_progress;
Observera att detta med största sannolikhet kommer att göra att din fråga körs ännu långsammare och varje gång du kontrollerar framstegen kommer den att öka värdet. Länken ovan föreslog att man skulle skapa en tillfällig sekvens men PostgreSQL verkar inte göra dem synliga över sessioner.