Is there a function which just reset the record pointer to 1, so I can reprocess
those records?
While I haven't actually programmed using this API...
The documentation doesn't seem to indicate the presence of a "record pointer", it shows that PQgetvalue accepts both row and column numbers as input, and it indicates the PGResult stays in memory - and contains the entire result - until PQclear'ed. This leads me to think that you should be able to access values in any cell at any time, including multiple times, without issue. Have you tried it?
Now, if you are using Row-by-Row mode that likely varies a bit: but your example doesn't show that to be the case.
David J.