修改问题,有false状态的逻辑复制槽残留时备份报错信息提示不准确

This commit is contained in:
zhaobingyu
2022-11-14 10:13:22 +08:00
parent 726ee16633
commit 699c941b0b
2 changed files with 22 additions and 5 deletions

View File

@ -1177,7 +1177,7 @@ pg_start_backup(const char *label, bool smooth, pgBackup *backup,
securec_check_for_sscanf_s(ret, 2, "\0", "\0");
repslotLsn = ((uint64) lsn_hi )<< 32 | lsn_lo;
startLsn = Min(startLsn, repslotLsn);
char* slotname = pg_strdup(PQgetvalue(res, i, 0));
parray_append(logical_replslot, slotname);
}

View File

@ -101,10 +101,27 @@ pg_ptrack_get_pagemapset(PGconn *backup_conn, XLogRecPtr lsn)
PQclear(res);
elog(INFO, "change bitmap end lsn location is %s", params[1]);
res = pgut_execute(backup_conn,
"SELECT path,changed_block_number,changed_block_list "
"FROM pg_cbm_get_changed_block($1, $2)",
2, (const char **) params);
const char *query = "SELECT path,changed_block_number,changed_block_list FROM \
pg_cbm_get_changed_block($1, $2)";
res = pgut_execute_extended(backup_conn, query,
2, (const char **) params, true, true);
switch (PQresultStatus(res))
{
case PGRES_TUPLES_OK:
case PGRES_COMMAND_OK:
case PGRES_COPY_IN:
break;
default:
elog(ERROR, "query failed: %s query was: %s\n"
"Please check the replication slots, if it has slots useless,"
"delete it and try again.",
PQerrorMessage(backup_conn), query);
break;
}
pfree(params[0]);
pfree(params[1]);