]> granicus.if.org Git - postgresql/commitdiff
pg_rewind: Fix busted sanity check.
authorRobert Haas <rhaas@postgresql.org>
Fri, 21 Jul 2017 16:48:22 +0000 (12:48 -0400)
committerRobert Haas <rhaas@postgresql.org>
Fri, 21 Jul 2017 17:04:04 +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 5128e1c2502874e3cde9b954d7e431b39fc39338..fdb4198154e935a1028c6ca7aa696272d381ee95 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",