r1666: *** empty log message ***
[clsql.git] / doc / ref.sgml
index 0c860c16c838d9d33b7daff2c23092fe15d7786a..c1ba587421f5c3c9ee8eef4b32e0919cfe7d7e76 100644 (file)
       </refnamediv>
       <refsect1>
        <title>Syntax</title>
-       <synopsis><function>query</function> <replaceable>query-expression</replaceable> &amp;key <replaceable>database</replaceable> => <returnvalue>result</returnvalue></synopsis>
+       <synopsis><function>query</function> <replaceable>query-expression</replaceable> &amp;key <replaceable>database</replaceable> <replaceable>types</replaceable> => <returnvalue>result</returnvalue></synopsis>
       </refsect1>
       <refsect1>
        <title>Arguments and Values</title>
                of <symbol>*default-database*</symbol>.</para>
            </listitem>
          </varlistentry>
+         <varlistentry>
+           <term><parameter>types</parameter></term>
+           <listitem>
+             <para>A 
+               <glossterm linkend="gloss-field-types">field type
+                 specififier</glossterm>. The default is &nil;.
+               </para>
+               <para>
+                 The purpose of this argument is cause &clsql; to
+                 import SQL numeric fields into numeric Lisp objects
+                 rather than strings. This reduces the cost of
+                 allocating a temporary string and the &clsql; users'
+                 inconvenience of converting number strings into number
+                 objects.
+               </para>
+               <para>
+                 A value of <symbol>:auto</symbol> causes &clsql;
+                 to automatically convert SQL fields into a
+                 numeric format where applicable. The default value of
+                 &nil; causes all fields to be returned as strings
+                 regardless of the SQL type. Otherwise a list is expected
+                 which has a element for each field that specifies the
+                 conversion. If the list is shorter than the number
+                 of fields, the a value of <symbol>t</symbol> is
+                 assumed for the field.  If the list is longer than
+                 the number of fields, the extra elements are
+                 ignored.
+                 <simplelist type="vert">
+                   <member><symbol>:int</symbol> Field is imported as a
+                     32-bit signed integer.
+                   </member>
+                   <member><symbol>:double</symbol> Field is imported as a
+                     double-float number.
+                   </member>
+                   <member><symbol>t</symbol> Field is imported as a
+                     string.
+                   </member>
+                 </simplelist>
+               </para>
+           </listitem>
+         </varlistentry>
          <varlistentry>
            <term><returnvalue>result</returnvalue></term>
            <listitem>
       </refnamediv>
       <refsect1>
        <title>Syntax</title>
-       <synopsis><function>map-query</function> <replaceable>output-type-spec</replaceable> <replaceable>function</replaceable> <replaceable>query-expression</replaceable> &amp;key <replaceable>database</replaceable> => <returnvalue>result</returnvalue></synopsis>
+       <synopsis><function>map-query</function> <replaceable>output-type-spec</replaceable> <replaceable>function</replaceable> <replaceable>query-expression</replaceable> &amp;key <replaceable>database</replaceable> <replaceable>types</replaceable> => <returnvalue>result</returnvalue></synopsis>
       </refsect1>
       <refsect1>
        <title>Arguments and Values</title>
                of <symbol>*default-database*</symbol>.</para>
            </listitem>
          </varlistentry>
+         <varlistentry>
+           <term><parameter>types</parameter></term>
+           <listitem>
+             <para>
+               A <glossterm linkend="gloss-field-types">field type specififier</glossterm>. 
+               The default is &nil;. See <link
+               linkend="query"><function>query</function></link>
+               for the semantics of this argument.  
+             </para>
+           </listitem>
+         </varlistentry>
          <varlistentry>
            <term><returnvalue>result</returnvalue></term>
            <listitem>
       </refnamediv>
       <refsect1>
        <title>Syntax</title>
-       <synopsis><function>do-query</function> ((&amp;rest <replaceable>args</replaceable>) <replaceable>query-expression</replaceable> &amp;key <replaceable>database</replaceable>) &amp;body <replaceable>body</replaceable> => <returnvalue>nil</returnvalue></synopsis>
+       <synopsis><function>do-query</function> ((&amp;rest <replaceable>args</replaceable>) <replaceable>query-expression</replaceable> &amp;key <replaceable>database</replaceable> <replaceable>types</replaceable>) &amp;body <replaceable>body</replaceable> => <returnvalue>nil</returnvalue></synopsis>
       </refsect1>
       <refsect1>
        <title>Arguments and Values</title>
                <symbol>*default-database*</symbol>.</para>
            </listitem>
          </varlistentry>
+         <varlistentry>
+           <term><parameter>types</parameter></term>
+           <listitem>
+             <para>
+               A <glossterm linkend="gloss-field-types">field type specififier</glossterm>. 
+               The default is &nil;. See <link
+               linkend="query"><function>query</function></link>
+               for the semantics of this argument.  
+             </para>
+           </listitem>
+         </varlistentry>
          <varlistentry>
            <term><parameter>body</parameter></term>
            <listitem>