Currently, our session id, displayed by log_line_prefix and CSV output, is made up of the session start time epoch seconds and the process id. The problem is that the printf mask is currently %lx.%x, causing a process id less than 4096 to not display a full four hex digits after the decimal point. I think this is confusing because the number .423 appears higher than .1423, though it is not. Here is what our current output looks like with log_line_prefix="%c: ":
50785b3e.7ff9: ERROR: syntax error at or near "test" at character 1 50785b3e.7ff9: STATEMENT: test 50785b3e.144: ERROR: syntax error at or near "test" at character 1 50785b3e.144: STATEMENT: test With my fix, here is the updated output: 507864d3.7ff2: ERROR: syntax error at or near "test" at character 1 507864d3.7ff2: STATEMENT: test 507864d3.013d: ERROR: syntax error at or near "test" at character 1 507864d3.013d: STATEMENT: test Patch attached. -- Bruce Momjian <br...@momjian.us> http://momjian.us EnterpriseDB http://enterprisedb.com + It's impossible for everything to be true. +
diff --git a/src/backend/utils/error/elog.c b/src/backend/utils/error/elog.c new file mode 100644 index a40b343..68b7ab3 *** a/src/backend/utils/error/elog.c --- b/src/backend/utils/error/elog.c *************** log_line_prefix(StringInfo buf, ErrorDat *** 1970,1976 **** } break; case 'c': ! appendStringInfo(buf, "%lx.%x", (long) (MyStartTime), MyProcPid); break; case 'p': appendStringInfo(buf, "%d", MyProcPid); --- 1970,1976 ---- } break; case 'c': ! appendStringInfo(buf, "%lx.%04x", (long) (MyStartTime), MyProcPid); break; case 'p': appendStringInfo(buf, "%d", MyProcPid); *************** write_csvlog(ErrorData *edata) *** 2149,2155 **** appendStringInfoChar(&buf, ','); /* session id */ ! appendStringInfo(&buf, "%lx.%x", (long) MyStartTime, MyProcPid); appendStringInfoChar(&buf, ','); /* Line number */ --- 2149,2155 ---- appendStringInfoChar(&buf, ','); /* session id */ ! appendStringInfo(&buf, "%lx.%04x", (long) MyStartTime, MyProcPid); appendStringInfoChar(&buf, ','); /* Line number */
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers