]> granicus.if.org Git - postgresql/commitdiff
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])