pg_rewind: Fix busted sanity check.
authorRobert Haas
Fri, 21 Jul 2017 16:48:22 +0000 (12:48 -0400)
committerRobert Haas
Fri, 21 Jul 2017 17:04:18 +0000 (13:04 -0400)
As written, the code would only fail the sanity check if none of the
columns returned by the server were of the expected type, but we want
it to fail if even one column is not of the expected type.

Discussion: http://postgr.es/m/CA+TgmoYuY5zW7JEs+1hSS1D=V5K8h1SQuESrq=bMNeo0B71Sfw@mail.gmail.com

src/bin/pg_rewind/libpq_fetch.c

index 5683eeccdc1ef32aeec676613e03e34e13c9d4da..3c8df288bf22a217a49f3facb98bf8e1c7790d35 100644 (file)
@@ -270,8 +270,8 @@ receiveFileChunks(const char *sql)
        if (PQnfields(res) != 3 || PQntuples(res) != 1)
            pg_fatal("unexpected result set size while fetching remote files\n");
 
-       if (PQftype(res, 0) != TEXTOID &&
-           PQftype(res, 1) != INT4OID &&
+       if (PQftype(res, 0) != TEXTOID ||
+           PQftype(res, 1) != INT4OID ||
            PQftype(res, 2) != BYTEAOID)
        {
            pg_fatal("unexpected data types in result set while fetching remote files: %u %u %u\n",