Re: bugfix: invalid bit/varbit input causes the log file to beunreadable
От | Quan Zongliang |
---|---|
Тема | Re: bugfix: invalid bit/varbit input causes the log file to beunreadable |
Дата | |
Msg-id | b9b3ca53-5165-9a0e-7a44-3cf4c4d0a5e3@gmail.com обсуждение исходный текст |
Ответ на | Re: bugfix: invalid bit/varbit input causes the log file to be unreadable (Tom Lane <tgl@sss.pgh.pa.us>) |
Список | pgsql-hackers |
Good.
I tested it, and it looks fine.
Thank you.
On 2020/6/29 1:10 上午, Tom Lane wrote:
I wrote:Even granting the premise, the proposed patch seems like a significant decrease in user-friendliness for typical cases. I'd rather see us make an effort to print one valid-per-the-DB-encoding character. Now that we can rely on snprintf to count %s restrictions in bytes, I think something like this should work: errmsg("\"%.*s\" is not a valid binary digit", pg_mblen(sp), sp))); But the real problem is that this is only the tip of the iceberg. You didn't even hit all the %c usages in varbit.c.I went through all the %c format sequences in the backend to see which ones could use this type of fix. There were not as many as I'd expected, but still a fair number. (I skipped cases where the input was coming from the catalogs, as well as some non-user-facing debug printouts.) That leads to the attached patch, which seems to do the job without breaking anything that works today. regards, tom lane PS: I failed to resist the temptation to improve some shoddy error messages nearby in pageinspect/heapfuncs.c.
В списке pgsql-hackers по дате отправления: