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: