CheckMyDatabase some error messages in two lines.

Started by jian healmost 2 years ago4 messageshackers
Jump to latest
#1jian he
jian.universality@gmail.com

hi.
https://www.postgresql.org/docs/devel/error-style-guide.html#ERROR-STYLE-GUIDE-FORMATTING
"Don't end a message with a newline."

accidentally, I found some error messages in the function
CheckMyDatabase spread into two lines.
so i try to consolidate them into one line.

Attachments:

make_error_format_in_one_line.difftext/x-patch; charset=US-ASCII; name=make_error_format_in_one_line.diffDownload+4-9
#2Nathan Bossart
nathandbossart@gmail.com
In reply to: jian he (#1)
Re: CheckMyDatabase some error messages in two lines.

On Mon, Jun 10, 2024 at 08:00:00AM +0800, jian he wrote:

https://www.postgresql.org/docs/devel/error-style-guide.html#ERROR-STYLE-GUIDE-FORMATTING
"Don't end a message with a newline."

accidentally, I found some error messages in the function
CheckMyDatabase spread into two lines.
so i try to consolidate them into one line.

-				 errdetail("The database was initialized with LC_COLLATE \"%s\", "
-						   " which is not recognized by setlocale().", collate),
+				 errdetail("The database was initialized with LC_COLLATE \"%s\", which is not recognized by setlocale().", collate),

Both approaches produce the same message. With the existing code, the two
string literals will be concatenated without newlines. It is probably
split into two lines to avoid a long line in the source code.

--
nathan

#3Tom Lane
tgl@sss.pgh.pa.us
In reply to: Nathan Bossart (#2)
Re: CheckMyDatabase some error messages in two lines.

Nathan Bossart <nathandbossart@gmail.com> writes:

On Mon, Jun 10, 2024 at 08:00:00AM +0800, jian he wrote:

-				 errdetail("The database was initialized with LC_COLLATE \"%s\", "
-						   " which is not recognized by setlocale().", collate),
+				 errdetail("The database was initialized with LC_COLLATE \"%s\", which is not recognized by setlocale().", collate),

Both approaches produce the same message. With the existing code, the two
string literals will be concatenated without newlines. It is probably
split into two lines to avoid a long line in the source code.

No doubt. People have done it both ways in the past, but I think
currently there's a weak consensus in favor of using one line for
such messages even when it runs past 80 columns, mainly because
that makes it easier to grep the source code for a message text.

But: I don't see too much value in changing this particular instance,
because the line break is in a place where it would not likely cause
you to miss finding the line. You might grep for the first part of
the string or the second part, but probably not for ", which is not".
If the line break were in the middle of a phrase, there'd be more
argument for collapsing it out.

regards, tom lane

#4Michael Paquier
michael@paquier.xyz
In reply to: Tom Lane (#3)
Re: CheckMyDatabase some error messages in two lines.

On Sun, Jun 09, 2024 at 10:12:53PM -0400, Tom Lane wrote:

No doubt. People have done it both ways in the past, but I think
currently there's a weak consensus in favor of using one line for
such messages even when it runs past 80 columns, mainly because
that makes it easier to grep the source code for a message text.

I recall the same consensus here. Greppability matters across the
board.

But: I don't see too much value in changing this particular instance,
because the line break is in a place where it would not likely cause
you to miss finding the line. You might grep for the first part of
the string or the second part, but probably not for ", which is not".
If the line break were in the middle of a phrase, there'd be more
argument for collapsing it out.

Not sure these ones are worth it, either, so I'd let them be.
--
Michael