On 7/8/20 6:45 AM, Adrian Klaver wrote:
On 7/8/20 6:05 AM, Thomas Kellerer wrote:
Hello,
I noticed the following strage output when running Postgres 12.3 (not
psql) on Windows
postgres=# select pg_current_logfile();
pg_current_logfile
------------------------------------
pg_log/postgresql-2020-07-08.log\r
(1 row)
Note the "\r" at the end of the file name.
This does not happen when running Postgres on Linux.
Is this intended for some strange reason?
Or a bug or a technical limitation?
I'm guessing the difference between Unix line ending:
\n
and Windows:
\r\n
From source(backend/utils/adt/misc.c):
nlpos = strchr(log_filepath, '\n');
if (nlpos == NULL)
{
/* Uh oh. No newline found, so file content is corrupted. */
elog(ERROR,
"missing newline character in \"%s\"",
LOG_METAINFO_DATAFILE);
break;
}
*nlpos = '\0';
if (logfmt == NULL || strcmp(logfmt, log_format) == 0)
{
FreeFile(fd);
PG_RETURN_TEXT_P(cstring_to_text(log_filepath));
}
Regards
Thomas
--
Adrian Klaver
adrian.klaver@xxxxxxxxxxx