On 2013-01-25 13:56:11 +0100, Magnus Hagander wrote: > On Fri, Jan 25, 2013 at 1:31 PM, Andres Freund <and...@2ndquadrant.com> wrote: > > On 2013-01-25 08:49:10 +0000, Magnus Hagander wrote: > >> Make pg_dump exclude unlogged table data on hot standby slaves > > > > This missed the fact that there is no ExecuteSqlQueryForSingleRow and > > surroundign infrastructure. > > Ugh, that's what I get for pushing something just before getting on a > plane. Thanks for spotting. > > Fix looks good, except I'd just put the query text inline in PQexec() > and not bother with a separate variable..
The query needs to get passed to check_sql_result and write_msg as well, thats why I added the extra variable. I don't think my -committers post got through (seems to be restricted), so I am CCing -hackers so somebody else can see the patch. Andres -- Andres Freund http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services
>From c6a4ffe4c70a861c676a2447dfd3ab518d2e2f2b Mon Sep 17 00:00:00 2001 From: Andres Freund <and...@anarazel.de> Date: Fri, 25 Jan 2013 13:21:03 +0100 Subject: [PATCH] Fix backpatch of unlogged table check for pg_dump The previous commit used ExecuteSqlQueryForSingleRow which is only there in 9.2+. --- src/bin/pg_dump/pg_dump.c | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c index bef2b43..964823f 100644 --- a/src/bin/pg_dump/pg_dump.c +++ b/src/bin/pg_dump/pg_dump.c @@ -656,9 +656,25 @@ main(int argc, char **argv) * When running against 9.0 or later, check if we are in recovery mode, * which means we are on a hot standby. */ - if (fout->remoteVersion >= 90000) + if (g_fout->remoteVersion >= 90000) { - PGresult *res = ExecuteSqlQueryForSingleRow(fout, "SELECT pg_catalog.pg_is_in_recovery()"); + PGresult *res; + const char *query = "SELECT pg_catalog.pg_is_in_recovery()"; + int ntups; + + res = PQexec(g_conn, query); + check_sql_result(res, g_conn, query, PGRES_TUPLES_OK); + ntups = PQntuples(res); + + if (ntups != 1) + { + write_msg(NULL, ngettext("query returned %d row instead of one: %s\n", + "query returned %d rows instead of one: %s\n", + ntups), + ntups, query); + exit_nicely(); + } + if (strcmp(PQgetvalue(res, 0, 0), "t") == 0) { /* -- 1.7.12.289.g0ce9864.dirty
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers