Обсуждение: General Bug Report: Documentation problem

Поиск
Список
Период
Сортировка

General Bug Report: Documentation problem

От
Unprivileged user
Дата:
============================================================================
                        POSTGRESQL BUG REPORT TEMPLATE
============================================================================


Your name               : Dan Merillat
Your email address      : Dan@merillat.org

Category                : install: other
Severity                : non-critical

Summary: Documentation problem

System Configuration
--------------------
  Operating System   : N/A

  PostgreSQL version : 6.3

  Compiler used      : N/A

Hardware:
---------
N/A

Versions of other tools:
------------------------
N/A

--------------------------------------------------------------------------

Problem Description:
--------------------
libpq documentation has a few errors.  Most notably, the reccomended style of error handling.
psuedocode: res=PQexec(conn, "error-prone-statement"); if (PQresultStatus(res) != PGRES_TUPLES_OK) { do_error_code(); }
This is actually incorrect, since on error, PQexec returns null, so PQresultStatus (which I can't find documented)
derefrencesa null pointer. 
Correct example code would be res=PQexec(conn, "error-prone-statment"); if (!res) { printf("PQexec(): %s\n",
PQerrorMessage(conn));exit(1) } 

If nobody else is working on the documentation reply to me, and I'll submit diffs.

--Dan


--------------------------------------------------------------------------

Test Case:
----------


--------------------------------------------------------------------------

Solution:
---------


--------------------------------------------------------------------------


Re: [BUGS] General Bug Report: Documentation problem

От
Bruce Momjian
Дата:
> Problem Description:  -------------------- libpq documentation
> has a few errors.  Most notably, the reccomended style of error
> handling.  psuedocode: res=PQexec(conn, "error-prone-statement");
> if (PQresultStatus(res) != PGRES_TUPLES_OK) { do_error_code();
> } This is actually incorrect, since on error, PQexec returns
> null, so PQresultStatus (which I can't find documented)
> derefrences a null pointer.  Correct example code would be
> res=PQexec(conn, "error-prone-statment"); if (!res) {
> printf("PQexec(): %s\n", PQerrorMessage(conn)); exit(1) }
>
> If nobody else is working on the documentation reply to me, and
> I'll submit diffs.

Very good point.  I have added !res || resultStatus(...) to the man
pages and sgml examples.

Thanks.

--
  Bruce Momjian                        |  http://www.op.net/~candle
  maillist@candle.pha.pa.us            |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026