Fields can appear in
any order. For each field there is the following:
</para>
<variablelist>
<varlistentry>
<term>Byte1</term>
<listitem>
<para>
A code identifying the field type; if zero, this is
the message terminator and no string follows.
The presently defined field types are listed in
<xref linkend="protocol-error-fields"/>.
Since more field types might be added in future,
frontends should silently ignore fields of unrecognized
type.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>String</term>
<listitem>
<para>
The field value.
</para>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
<varlistentry id="protocol-message-formats-Execute">
<term>Execute (F)</term>
<listitem>
<variablelist>
<varlistentry>
<term>Byte1('E')</term>
<listitem>
<para>
Identifies the message as an Execute command.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Int32</term>
<listitem>
<para>
Length of message contents in bytes, including self.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>String</term>
<listitem>
<para>
The name of the portal to execute
(an empty string selects the unnamed portal).
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Int32</term>
<listitem>
<para>
Maximum number of rows to return, if portal contains
a query that returns rows (ignored otherwise). Zero
denotes <quote>no limit</quote>.
</para>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
<varlistentry id="protocol-message-formats-Flush">
<term>Flush (F)</term>
<listitem>
<variablelist>
<varlistentry>
<term>Byte1('H')</term>
<listitem>
<para>
Identifies the message as a Flush command.
</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-FunctionCall">
<term>FunctionCall (F)</term>
<listitem>
<variablelist>
<varlistentry>
<term>Byte1('F')</term>
<listitem>
<para>
Identifies the message as a function call.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Int32</term>
<listitem>
<para>
Length of message contents in bytes, including self.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Int32</term>
<listitem>
<para>
Specifies the object ID of the function to call.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Int16</term>
<listitem>
<para>
The number of argument format codes that follow
(denoted <replaceable>C</replaceable> below).
This can be zero to indicate that there are no arguments
or that the arguments all use the default format (text);
or one, in which case the specified format code is applied
to all arguments; or it can equal the actual number of
arguments.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Int16[<replaceable>C</replaceable>]</term>
<listitem>
<para>
The argument format codes. Each must presently be
zero (text) or one (binary).
</para>