From: Bruce Momjian Date: Mon, 23 Jun 2008 21:10:49 +0000 (+0000) Subject: Add libpq comment about how to determine the format used for passing X-Git-Tag: recoveryinfrav9~914 X-Git-Url: http://waps.l3s.uni-hannover.de/gitweb/?a=commitdiff_plain;h=804afb833eb2f9678d21e9ccc06435e40c062ba3;p=users%2Fsimon%2Fpostgres.git Add libpq comment about how to determine the format used for passing binary values. Add comments to libpq C function for parameter passing. --- diff --git a/doc/src/sgml/libpq.sgml b/doc/src/sgml/libpq.sgml index a052150520..5c2db0ef81 100644 --- a/doc/src/sgml/libpq.sgml +++ b/doc/src/sgml/libpq.sgml @@ -1397,6 +1397,14 @@ PGresult *PQexecParams(PGconn *conn, If the array pointer is null then all parameters are presumed to be text strings. + + Values passed in binary format require knowlege of + the internal representation expected by the backend. + For example, integers must be passed in network byte + order. Passing numeric values requires + knowledge of the server storage format, as implemented + in src/backend/utils/adt/numeric.c. + diff --git a/src/interfaces/libpq/fe-exec.c b/src/interfaces/libpq/fe-exec.c index 97bfcf990f..37f3f9946e 100644 --- a/src/interfaces/libpq/fe-exec.c +++ b/src/interfaces/libpq/fe-exec.c @@ -976,12 +976,13 @@ PQsendQueryGuts(PGconn *conn, goto sendFailed; } - /* construct the Bind message */ + /* Construct the Bind message */ if (pqPutMsgStart('B', false, conn) < 0 || pqPuts("", conn) < 0 || pqPuts(stmtName, conn) < 0) goto sendFailed; + /* Send parameter formats */ if (nParams > 0 && paramFormats) { if (pqPutInt(nParams, 2, conn) < 0) @@ -1001,6 +1002,7 @@ PQsendQueryGuts(PGconn *conn, if (pqPutInt(nParams, 2, conn) < 0) goto sendFailed; + /* Send parameters */ for (i = 0; i < nParams; i++) { if (paramValues && paramValues[i])