I'm getting this same/similar error: "ERROR: bind message has 7 result formats but query has 6 columns " whenever I reboot my server. I've tried executing the EXEC('pgnp_refreshmetadata('''',''remotetablename'')') AT REMOTESERVER ; on my SQL Server 2008 box, but it has no effect.
As inferred, I'm running Microsoft SQL Server 2008 R2 (SP1) - 10.50.2500.0 (X64), the PGOLEDB driver is a 64-bit, v22.214.171.1247 and the PostGres server is PostgreSQL 8.3.8 on x86_64-redhat-linux-gnu, compiled by GCC gcc (GCC) 4.3.2 20081105 (Red Hat 4.3.2-7).
Most of the time, the error would almost cure itself and we're not sure why. Whether it was running the queries manually through a query analyzer or dropping and re-adding the linked server or some other random act. Currently we're experiencing random failures where one time a query runs and it works, other times it runs and generates the aforementioned error.