Re: syslog output from explain looks weird... - Mailing list pgsql-hackers
From | Bruce Momjian |
---|---|
Subject | Re: syslog output from explain looks weird... |
Date | |
Msg-id | 200011250438.XAA01181@candle.pha.pa.us Whole thread Raw |
In response to | Re: syslog output from explain looks weird... (Larry Rosenman <ler@lerctr.org>) |
List | pgsql-hackers |
Applied. > * Tom Lane <tgl@sss.pgh.pa.us> [001122 22:44]: > > Larry Rosenman <ler@lerctr.org> writes: > > > Looking some more, I found some other places that need a space (I > > > suspect...), so here is an updated patch. > > > > This seems like the wrong way to go about it, because anytime anyone > > changes any elog output anywhere, we'll risk another failure. If > > syslog can't cope with empty lines, I think the right fix is for the > > output-to-syslog routine to change the data just before sending --- > > then there is only one place to fix. See the syslog output routine in > > src/backend/utils/error/elog.c. > Makes sense. Here's a new patch, now the output even looks better: > Nov 23 00:58:04 lerami pg-test[9914]: [2-1] NOTICE: QUERY PLAN: > Nov 23 00:58:04 lerami pg-test[9914]: [2-2] > Nov 23 00:58:04 lerami pg-test[9914]: [2-3] Seq Scan on upsdata > (cost=0.00..2766.62 rows=2308 width=48) > Nov 23 00:58:04 lerami pg-test[9914]: [2-4] > > > Index: src/backend/utils/error/elog.c > =================================================================== > RCS file: /home/projects/pgsql/cvsroot/pgsql/src/backend/utils/error/elog.c,v > retrieving revision 1.67 > diff -c -r1.67 elog.c > *** src/backend/utils/error/elog.c 2000/11/14 19:13:27 1.67 > --- src/backend/utils/error/elog.c 2000/11/23 06:58:23 > *************** > *** 657,663 **** > seq++; > > /* divide into multiple syslog() calls if message is too long */ > ! if (len > PG_SYSLOG_LIMIT) > { > static char buf[PG_SYSLOG_LIMIT+1]; > int chunk_nr = 0; > --- 657,664 ---- > seq++; > > /* divide into multiple syslog() calls if message is too long */ > ! /* or if the message contains embedded NewLine(s) '\n' */ > ! if (len > PG_SYSLOG_LIMIT || strchr(line,'\n') != NULL ) > { > static char buf[PG_SYSLOG_LIMIT+1]; > int chunk_nr = 0; > *************** > *** 667,675 **** > --- 668,684 ---- > { > int l; > int i; > + /* if we start at a newline, move ahead one char */ > + if (line[0] == '\n') > + { > + line++; > + len--; > + } > > strncpy(buf, line, PG_SYSLOG_LIMIT); > buf[PG_SYSLOG_LIMIT] = '\0'; > + if (strchr(buf,'\n') != NULL) > + *strchr(buf,'\n') = '\0'; > > l = strlen(buf); > #ifdef MULTIBYTE > -- > Larry Rosenman http://www.lerctr.org/~ler > Phone: +1 972-414-9812 (voice) Internet: ler@lerctr.org > US Mail: 1905 Steamboat Springs Drive, Garland, TX 75044-6749 > -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 853-3000+ If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania19026
pgsql-hackers by date: