Hi,
On 2020-12-28 13:25:14 -0500, Tom Lane wrote:
> The most straightforward way to do that is to introduce a new error
> level. Having to renumber existing levels is a bit of a pain, but
> I'm not aware of anything that should break in source-code terms.
> We make similar ABI breaks in every major release.
I don't see a problem either.
> /* Select default errcode based on elevel */
> if (elevel >= ERROR)
> edata->sqlerrcode = ERRCODE_INTERNAL_ERROR;
> - else if (elevel == WARNING)
> + else if (elevel >= WARNING)
> edata->sqlerrcode = ERRCODE_WARNING;
> else
> edata->sqlerrcode = ERRCODE_SUCCESSFUL_COMPLETION;
> @@ -2152,6 +2157,7 @@ write_eventlog(int level, const char *line, int len)
> eventlevel = EVENTLOG_INFORMATION_TYPE;
> break;
> case WARNING:
> + case WARNING_CLIENT_ONLY:
> eventlevel = EVENTLOG_WARNING_TYPE;
> break;
> case ERROR:
> [...]
I don't think it needs to be done right now, but I again want to suggest
it'd be nice if we split log levels into a bitmask. If we bits, separate
from the log level, for do-not-log-to-client and do-not-log-to-server
some of this code would imo look nicer.
Looks good to me.
Greetings,
Andres Freund