Add libpq comment about how to determine the format used for passing
authorBruce Momjian <bruce@momjian.us>
Mon, 23 Jun 2008 21:10:49 +0000 (21:10 +0000)
committerBruce Momjian <bruce@momjian.us>
Mon, 23 Jun 2008 21:10:49 +0000 (21:10 +0000)
binary values.

Add comments to libpq C function for parameter passing.

doc/src/sgml/libpq.sgml
src/interfaces/libpq/fe-exec.c

index 006c81f30776c71507937e2a82a3546b7d5e07ee..629e501b8ac7341d83679211b577da9fb97ef65a 100644 (file)
@@ -1,4 +1,4 @@
-<!-- $PostgreSQL: pgsql/doc/src/sgml/libpq.sgml,v 1.258 2008/06/01 16:23:08 tgl Exp $ -->
+<!-- $PostgreSQL: pgsql/doc/src/sgml/libpq.sgml,v 1.259 2008/06/23 21:10:49 momjian Exp $ -->
 
 <chapter id="libpq">
  <title><application>libpq</application> - C Library</title>
@@ -1397,6 +1397,14 @@ PGresult *PQexecParams(PGconn *conn,
             If the array pointer is null then all parameters are presumed
             to be text strings.
            </para>
+           <para>
+            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 <type>numeric</> values requires
+            knowledge of the server storage format, as implemented
+            in <filename>src/backend/utils/adt/numeric.c</>.
+           </para>
           </listitem>
          </varlistentry>
 
index 25ad0e4a1a6fb31e6d4b93ec11f992d6882cbd28..50b5c7bcf7c37d0d7fe3010ce081dc3d862970ea 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/interfaces/libpq/fe-exec.c,v 1.195 2008/05/29 22:02:44 tgl Exp $
+ *   $PostgreSQL: pgsql/src/interfaces/libpq/fe-exec.c,v 1.196 2008/06/23 21:10:49 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -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])