int i_oid;
int i_subname;
int i_subowner;
+ int i_subbinary;
int i_substream;
int i_subtwophasestate;
int i_subdisableonerr;
- int i_suborigin;
+ int i_subpasswordrequired;
+ int i_subrunasowner;
int i_subconninfo;
int i_subslotname;
int i_subsynccommit;
int i_subpublications;
- int i_subbinary;
- int i_subpasswordrequired;
+ int i_suborigin;
int i,
ntups;
if (fout->remoteVersion >= 160000)
appendPQExpBufferStr(query,
- " s.suborigin,\n"
- " s.subpasswordrequired\n");
+ " s.subpasswordrequired,\n"
+ " s.subrunasowner,\n"
+ " s.suborigin\n");
else
appendPQExpBuffer(query,
- " '%s' AS suborigin,\n"
- " 't' AS subpasswordrequired\n",
+ " 't' AS subpasswordrequired,\n"
+ " 't' AS subrunasowner,\n"
+ " '%s' AS suborigin\n",
LOGICALREP_ORIGIN_ANY);
appendPQExpBufferStr(query,
i_oid = PQfnumber(res, "oid");
i_subname = PQfnumber(res, "subname");
i_subowner = PQfnumber(res, "subowner");
- i_subconninfo = PQfnumber(res, "subconninfo");
- i_subslotname = PQfnumber(res, "subslotname");
- i_subsynccommit = PQfnumber(res, "subsynccommit");
- i_subpublications = PQfnumber(res, "subpublications");
i_subbinary = PQfnumber(res, "subbinary");
i_substream = PQfnumber(res, "substream");
i_subtwophasestate = PQfnumber(res, "subtwophasestate");
i_subdisableonerr = PQfnumber(res, "subdisableonerr");
- i_suborigin = PQfnumber(res, "suborigin");
i_subpasswordrequired = PQfnumber(res, "subpasswordrequired");
+ i_subrunasowner = PQfnumber(res, "subrunasowner");
+ i_subconninfo = PQfnumber(res, "subconninfo");
+ i_subslotname = PQfnumber(res, "subslotname");
+ i_subsynccommit = PQfnumber(res, "subsynccommit");
+ i_subpublications = PQfnumber(res, "subpublications");
+ i_suborigin = PQfnumber(res, "suborigin");
subinfo = pg_malloc(ntups * sizeof(SubscriptionInfo));
AssignDumpId(&subinfo[i].dobj);
subinfo[i].dobj.name = pg_strdup(PQgetvalue(res, i, i_subname));
subinfo[i].rolname = getRoleName(PQgetvalue(res, i, i_subowner));
- subinfo[i].subconninfo = pg_strdup(PQgetvalue(res, i, i_subconninfo));
- if (PQgetisnull(res, i, i_subslotname))
- subinfo[i].subslotname = NULL;
- else
- subinfo[i].subslotname = pg_strdup(PQgetvalue(res, i, i_subslotname));
- subinfo[i].subsynccommit =
- pg_strdup(PQgetvalue(res, i, i_subsynccommit));
- subinfo[i].subpublications =
- pg_strdup(PQgetvalue(res, i, i_subpublications));
+
subinfo[i].subbinary =
pg_strdup(PQgetvalue(res, i, i_subbinary));
subinfo[i].substream =
pg_strdup(PQgetvalue(res, i, i_subtwophasestate));
subinfo[i].subdisableonerr =
pg_strdup(PQgetvalue(res, i, i_subdisableonerr));
- subinfo[i].suborigin = pg_strdup(PQgetvalue(res, i, i_suborigin));
subinfo[i].subpasswordrequired =
pg_strdup(PQgetvalue(res, i, i_subpasswordrequired));
+ subinfo[i].subrunasowner =
+ pg_strdup(PQgetvalue(res, i, i_subrunasowner));
+ subinfo[i].subconninfo =
+ pg_strdup(PQgetvalue(res, i, i_subconninfo));
+ if (PQgetisnull(res, i, i_subslotname))
+ subinfo[i].subslotname = NULL;
+ else
+ subinfo[i].subslotname =
+ pg_strdup(PQgetvalue(res, i, i_subslotname));
+ subinfo[i].subsynccommit =
+ pg_strdup(PQgetvalue(res, i, i_subsynccommit));
+ subinfo[i].subpublications =
+ pg_strdup(PQgetvalue(res, i, i_subpublications));
+ subinfo[i].suborigin = pg_strdup(PQgetvalue(res, i, i_suborigin));
/* Decide whether we want to dump it */
selectDumpableObject(&(subinfo[i].dobj), fout);
if (strcmp(subinfo->subdisableonerr, "t") == 0)
appendPQExpBufferStr(query, ", disable_on_error = true");
- if (pg_strcasecmp(subinfo->suborigin, LOGICALREP_ORIGIN_ANY) != 0)
- appendPQExpBuffer(query, ", origin = %s", subinfo->suborigin);
+ if (strcmp(subinfo->subpasswordrequired, "t") != 0)
+ appendPQExpBuffer(query, ", password_required = false");
+
+ if (strcmp(subinfo->subrunasowner, "t") == 0)
+ appendPQExpBufferStr(query, ", run_as_owner = true");
if (strcmp(subinfo->subsynccommit, "off") != 0)
appendPQExpBuffer(query, ", synchronous_commit = %s", fmtId(subinfo->subsynccommit));
- if (strcmp(subinfo->subpasswordrequired, "t") != 0)
- appendPQExpBuffer(query, ", password_required = false");
+ if (pg_strcasecmp(subinfo->suborigin, LOGICALREP_ORIGIN_ANY) != 0)
+ appendPQExpBuffer(query, ", origin = %s", subinfo->suborigin);
appendPQExpBufferStr(query, ");\n");