Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 8787a06

Browse files
committed
Fix check_server_version() for Pg10+
1 parent 492c691 commit 8787a06

File tree

1 file changed

+16
-13
lines changed

1 file changed

+16
-13
lines changed

src/backup.c

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -877,30 +877,33 @@ do_backup(time_t start_time)
877877
static void
878878
check_server_version(void)
879879
{
880-
881880
/* confirm server version */
882881
server_version = PQserverVersion(backup_conn);
883882

883+
if (server_version == 0)
884+
elog(ERROR, "Unknown server version %d", server_version);
885+
886+
if (server_version < 100000)
887+
sprintf(server_version_str, "%d.%d",
888+
server_version / 10000,
889+
(server_version / 100) % 100);
890+
else
891+
sprintf(server_version_str, "%d",
892+
server_version / 10000);
893+
884894
if (server_version < 90500)
885895
elog(ERROR,
886-
"server version is %d.%d.%d, must be %s or higher",
887-
server_version / 10000,
888-
(server_version / 100) % 100,
889-
server_version % 100, "9.5");
896+
"server version is %s, must be %s or higher",
897+
server_version_str, "9.5");
890898

891899
if (from_replica && server_version < 90600)
892900
elog(ERROR,
893-
"server version is %d.%d.%d, must be %s or higher for backup from replica",
894-
server_version / 10000,
895-
(server_version / 100) % 100,
896-
server_version % 100, "9.6");
901+
"server version is %s, must be %s or higher for backup from replica",
902+
server_version_str, "9.6");
897903

898904
/* Do exclusive backup only for PostgreSQL 9.5 */
899905
exclusive_backup = server_version < 90600 ||
900906
current.backup_mode == BACKUP_MODE_DIFF_PTRACK;
901-
902-
/* Save server_version to use it in future */
903-
sprintf(server_version_str, "%d.%d", server_version / 10000, (server_version / 100) % 100);
904907
}
905908

906909
/*
@@ -2752,4 +2755,4 @@ pg_ptrack_get_block(backup_files_args *arguments,
27522755
pfree(params[3]);
27532756

27542757
return result;
2755-
}
2758+
}

0 commit comments

Comments
 (0)