diff --git a/src/backend/utils/error/elog.c b/src/backend/utils/error/elog.c index dfd102a..f27ab56 100644 --- a/src/backend/utils/error/elog.c +++ b/src/backend/utils/error/elog.c @@ -791,6 +791,7 @@ int errmsg(const char *fmt,...) { ErrorData *edata = &errordata[errordata_stack_depth]; + int saved_errno = errno; /* Not clobber errno. */ MemoryContext oldcontext; recursion_depth++; @@ -801,6 +802,7 @@ errmsg(const char *fmt,...) MemoryContextSwitchTo(oldcontext); recursion_depth--; + errno = saved_errno; return 0; /* return value does not matter */ }