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 <[email protected]> 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 ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers