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.
This commit is contained in:
parent
f73b2bbbdc
commit
0038c1e218
@ -886,9 +886,14 @@ SyncRepUpdateConfig(void)
|
|||||||
*/
|
*/
|
||||||
syncrep_scanner_init(SyncRepStandbyNames);
|
syncrep_scanner_init(SyncRepStandbyNames);
|
||||||
parse_rc = syncrep_yyparse();
|
parse_rc = syncrep_yyparse();
|
||||||
Assert(parse_rc == 0);
|
|
||||||
syncrep_scanner_finish();
|
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;
|
SyncRepConfig = syncrep_parse_result;
|
||||||
syncrep_parse_result = NULL;
|
syncrep_parse_result = NULL;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user