From 0038c1e2181b520a9307aae6587e110468072392 Mon Sep 17 00:00:00 2001 From: Fujii Masao Date: Mon, 11 Apr 2016 15:52:27 +0900 Subject: [PATCH] Use ereport(ERROR) instead of Assert() to emit syncrep_parser error. The existing code would either Assert or generate an invalid SyncRepConfig variable, neither of which is desirable. A regular error should be thrown instead. This commit silences compiler warning in non assertion-enabled builds. Per report from Jeff Janes. Suggested fix by Tom Lane. --- src/backend/replication/syncrep.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/backend/replication/syncrep.c b/src/backend/replication/syncrep.c index cb6b5e5317..3c9142eddc 100644 --- a/src/backend/replication/syncrep.c +++ b/src/backend/replication/syncrep.c @@ -886,9 +886,14 @@ SyncRepUpdateConfig(void) */ syncrep_scanner_init(SyncRepStandbyNames); parse_rc = syncrep_yyparse(); - Assert(parse_rc == 0); syncrep_scanner_finish(); + if (parse_rc != 0) + ereport(ERROR, + (errcode(ERRCODE_SYNTAX_ERROR), + errmsg_internal("synchronous_standby_names parser returned %d", + parse_rc))); + SyncRepConfig = syncrep_parse_result; syncrep_parse_result = NULL; }