Re: DBD::Pg errstr method doesn't return full error messages
От | Peter Haworth |
---|---|
Тема | Re: DBD::Pg errstr method doesn't return full error messages |
Дата | |
Msg-id | PGM.20010504114957.21664.386@edison.ioppublishing.com обсуждение исходный текст |
Ответ на | DBD::Pg errstr method doesn't return full error messages (Vivek Khera <khera@kcilink.com>) |
Ответы |
Permissions and views.
Re: DBD::Pg errstr method doesn't return full error messages |
Список | pgsql-general |
On Thu, 3 May 2001 15:24:31 -0400, Vivek Khera wrote: > Hi, I'm using DBD::Pg version 0.98 with Postgres 7.1. I'm noticing > that quite often on an error, the $dbh->errstr method doesn't return > the full error. Here's a patch to DBD::Pg 0.98 which fixes this: --- dbdimp.c.orig Tue May 1 11:46:47 2001 +++ dbdimp.c Tue May 1 11:55:26 2001 @@ -72,18 +72,21 @@ char *error_msg; { D_imp_xxh(h); - char *err, *src, *dst; + char *err, *src, *dst, *end; int len = strlen(error_msg); - err = (char *)malloc(strlen(error_msg + 1)); + err = (char *)malloc(len + 1); if (!err) { return; } + /* Remove trailing newlines, allowing for multi-line messages */ + for(end = error_msg + len; end > error_msg && end[-1] == '\n'; --end); + src = error_msg; dst = err; /* copy error message without trailing newlines */ - while (*dst != '\0' && *dst != '\n') { + while (src < end){ *dst++ = *src++; } *dst = '\0'; -- Peter Haworth pmh@edison.ioppublishing.com "A good messenger expects to get shot." --Larry Wall
В списке pgsql-general по дате отправления: