Обсуждение: General Bug Report: Documentation problem
============================================================================ 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: --------- --------------------------------------------------------------------------
> 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