Re: bugfix: invalid bit/varbit input causes the log file to beunreadable - Mailing list pgsql-hackers

From Quan Zongliang
Subject Re: bugfix: invalid bit/varbit input causes the log file to beunreadable
Date
Msg-id b9b3ca53-5165-9a0e-7a44-3cf4c4d0a5e3@gmail.com
Whole thread Raw
In response to Re: bugfix: invalid bit/varbit input causes the log file to be unreadable  (Tom Lane <tgl@sss.pgh.pa.us>)
List 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 by date:

Previous
From: Fujii Masao
Date:
Subject: Re: [Bug fix]There is the case archive_timeout parameter is ignoredafter recovery works.
Next
From: Ashutosh Bapat
Date:
Subject: Re: POC: postgres_fdw insert batching