Home Explore Blog CI



postgresql

55th chunk of `doc/src/sgml/protocol.sgml`
01c3cbe9cddf96bd26e2e13e1d7f56824b90af6184bb6f240000000100000fa1
 The parameter format codes.  Each must presently be
         zero (text) or one (binary).
        </para>
       </listitem>
      </varlistentry>

      <varlistentry>
       <term>Int16</term>
       <listitem>
        <para>
         The number of parameter values that follow (possibly zero).
         This must match the number of parameters needed by the query.
        </para>
       </listitem>
      </varlistentry>
     </variablelist>

     <para>
      Next, the following pair of fields appear for each parameter:
     </para>

     <variablelist>
      <varlistentry>
       <term>Int32</term>
       <listitem>
        <para>
         The length of the parameter value, in bytes (this count
         does not include itself).  Can be zero.
         As a special case, -1 indicates a NULL parameter value.
         No value bytes follow in the NULL case.
        </para>
       </listitem>
      </varlistentry>

      <varlistentry>
       <term>Byte<replaceable>n</replaceable></term>
       <listitem>
        <para>
         The value of the parameter, in the format indicated by the
         associated format code.
         <replaceable>n</replaceable> is the above length.
        </para>
       </listitem>
      </varlistentry>
     </variablelist>

     <para>
      After the last parameter, the following fields appear:
     </para>

     <variablelist>
      <varlistentry>
       <term>Int16</term>
       <listitem>
        <para>
         The number of result-column format codes that follow
         (denoted <replaceable>R</replaceable> below).
         This can be zero to indicate that there are no result columns
         or that the result columns should all use the default format
         (text);
         or one, in which case the specified format code is applied
         to all result columns (if any); or it can equal the actual
         number of result columns of the query.
        </para>
       </listitem>
      </varlistentry>

      <varlistentry>
       <term>Int16[<replaceable>R</replaceable>]</term>
       <listitem>
        <para>
         The result-column format codes.  Each must presently be
         zero (text) or one (binary).
        </para>
       </listitem>
      </varlistentry>
     </variablelist>
    </listitem>
   </varlistentry>

   <varlistentry id="protocol-message-formats-BindComplete">
    <term>BindComplete (B)</term>
    <listitem>
     <variablelist>
      <varlistentry>
       <term>Byte1('2')</term>
       <listitem>
        <para>
         Identifies the message as a Bind-complete indicator.
        </para>
       </listitem>
      </varlistentry>

      <varlistentry>
       <term>Int32(4)</term>
       <listitem>
        <para>
         Length of message contents in bytes, including self.
        </para>
       </listitem>
      </varlistentry>

     </variablelist>
    </listitem>
   </varlistentry>

   <varlistentry id="protocol-message-formats-CancelRequest">
    <term>CancelRequest (F)</term>
    <listitem>
     <variablelist>
      <varlistentry>
       <term>Int32(16)</term>
       <listitem>
        <para>
         Length of message contents in bytes, including self.
        </para>
       </listitem>
      </varlistentry>

      <varlistentry>
       <term>Int32(80877102)</term>
       <listitem>
        <para>
         The cancel request code.  The value is chosen to contain
         <literal>1234</literal> in the most significant 16 bits, and <literal>5678</literal> in the
         least significant 16 bits.  (To avoid confusion, this code
         must not be the same as any protocol version number.)
        </para>
       </listitem>
      </varlistentry>

      <varlistentry>
       <term>Int32</term>
       <listitem>
        <para>
         The process ID of the target backend.
        </para>
       </listitem>
      </varlistentry>

      <varlistentry>
       <term>Byte<replaceable>n</replaceable></term>
       <listitem>
        <para>
         The secret key for

Title: Protocol Message Formats for Bind, BindComplete, and CancelRequest
Summary
This section describes the message formats for Bind, BindComplete, and CancelRequest messages in a protocol, including the structure of parameter values, result-column format codes, and cancel request codes, as well as the length and content of each message type.