From 1131fbc71b84045553bd90333dd70f9d3b9ae1dd Mon Sep 17 00:00:00 2001 From: Dilip Kumar Date: Mon, 27 Apr 2020 15:36:39 +0530 Subject: [PATCH v21 12/12] Add streaming option in pg_dump --- src/bin/pg_dump/pg_dump.c | 9 +++++++-- src/bin/pg_dump/pg_dump.h | 1 + 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c index f33c2463a7..b6ae988b02 100644 --- a/src/bin/pg_dump/pg_dump.c +++ b/src/bin/pg_dump/pg_dump.c @@ -4209,6 +4209,7 @@ getSubscriptions(Archive *fout) int i_oid; int i_subname; int i_rolname; + int i_substream; int i_subconninfo; int i_subslotname; int i_subsynccommit; @@ -4243,8 +4244,8 @@ getSubscriptions(Archive *fout) appendPQExpBuffer(query, "SELECT s.tableoid, s.oid, s.subname," "(%s s.subowner) AS rolname, " - " s.subconninfo, s.subslotname, s.subsynccommit, " - " s.subpublications " + " s.substream, s.subconninfo, s.subslotname, " + " s.subsynccommit, s.subpublications " "FROM pg_subscription s " "WHERE s.subdbid = (SELECT oid FROM pg_database" " WHERE datname = current_database())", @@ -4257,6 +4258,7 @@ getSubscriptions(Archive *fout) i_oid = PQfnumber(res, "oid"); i_subname = PQfnumber(res, "subname"); i_rolname = PQfnumber(res, "rolname"); + i_substream = PQfnumber(res, "substream"); i_subconninfo = PQfnumber(res, "subconninfo"); i_subslotname = PQfnumber(res, "subslotname"); i_subsynccommit = PQfnumber(res, "subsynccommit"); @@ -4273,6 +4275,7 @@ getSubscriptions(Archive *fout) AssignDumpId(&subinfo[i].dobj); subinfo[i].dobj.name = pg_strdup(PQgetvalue(res, i, i_subname)); subinfo[i].rolname = pg_strdup(PQgetvalue(res, i, i_rolname)); + subinfo[i].substream = pg_strdup(PQgetvalue(res, i, i_substream)); subinfo[i].subconninfo = pg_strdup(PQgetvalue(res, i, i_subconninfo)); if (PQgetisnull(res, i, i_subslotname)) subinfo[i].subslotname = NULL; @@ -4350,6 +4353,8 @@ dumpSubscription(Archive *fout, SubscriptionInfo *subinfo) else appendPQExpBufferStr(query, "NONE"); + if (strcmp(subinfo->substream, "f") != 0) + appendPQExpBuffer(query, ", streaming = on"); if (strcmp(subinfo->subsynccommit, "off") != 0) appendPQExpBuffer(query, ", synchronous_commit = %s", fmtId(subinfo->subsynccommit)); diff --git a/src/bin/pg_dump/pg_dump.h b/src/bin/pg_dump/pg_dump.h index 5f70400b25..3ccb6be953 100644 --- a/src/bin/pg_dump/pg_dump.h +++ b/src/bin/pg_dump/pg_dump.h @@ -623,6 +623,7 @@ typedef struct _SubscriptionInfo { DumpableObject dobj; char *rolname; + char *substream; char *subconninfo; char *subslotname; char *subsynccommit; -- 2.23.0