r10922: 03 May 2006 Kevin Rosenberg <kevin@rosenberg.net>
[clsql.git] / doc / ref-fdml.xml
index 8a72a5c28c748405e9e1e1286a8c6947213f7890..a5162ff6c1b3801e054353b6bd28556e2d053d4d 100644 (file)
         :from [employee]
         :where [= [emplid] 1] 
         :field-names nil)
-=> (("Vladamir" "Lenin" "lenin@soviet.org"))
+=> (("Vladimir" "Lenin" "lenin@soviet.org"))
 (update-records [employee] 
                 :av-pairs'((first_name "Yuri")
                            (last_name "Gagarin")
       <title>Examples</title>
       <screen>
 (query "select emplid,first_name,last_name,height from employee where emplid = 1")
-=> ((1 "Vladamir" "Lenin" 1.5564661d0)), 
+=> ((1 "Vladimir" "Lenin" 1.5564661d0)), 
    ("emplid" "first_name" "last_name" "height")
 
 (query "select emplid,first_name,last_name,height from employee where emplid = 1" 
        :field-names nil)
-=> ((1 "Vladamir" "Lenin" 1.5564661d0))
+=> ((1 "Vladimir" "Lenin" 1.5564661d0))
 
 (query "select emplid,first_name,last_name,height from employee where emplid = 1" 
        :field-names nil
        :result-types nil)
-=> (("1" "Vladamir" "Lenin" "1.5564661"))
+=> (("1" "Vladimir" "Lenin" "1.5564661"))
 
 (query "select emplid,first_name,last_name,height from employee where emplid = 1" 
        :field-names nil
        :result-types '(:int t t :double))
-=> ((1 "Vladamir" "Lenin" 1.5564661))
+=> ((1 "Vladimir" "Lenin" 1.5564661))
 
 (query "select last_name from employee where emplid > 5" :flatp t)
 => ("Andropov" "Chernenko" "Gorbachev" "Yeltsin" "Putin"), 
                      :where [&lt; [emplid] 5]] 
               :titles '("ID" "FORENAME" "SURNAME" "EMAIL"))
 ID FORENAME SURNAME  EMAIL               
-1  Vladamir Lenin    lenin@soviet.org    
+1  Vladimir Lenin    lenin@soviet.org    
 2  Josef    Stalin   stalin@soviet.org   
 3  Leon     Trotsky  trotsky@soviet.org  
 4  Nikita   Kruschev kruschev@soviet.org 
@@ -1079,7 +1079,7 @@ ID FORENAME   SURNAME   EMAIL
 7  Konstantin Chernenko chernenko@soviet.org 
 8  Mikhail    Gorbachev gorbachev@soviet.org 
 9  Boris      Yeltsin   yeltsin@soviet.org   
-10 Vladamir   Putin     putin@soviet.org     
+10 Vladimir   Putin     putin@soviet.org     
 => 
 </screen>
     </refsect1>
@@ -1188,6 +1188,22 @@ ID FORENAME   SURNAME   EMAIL
             </para>
           </listitem>
         </varlistentry>
+        <varlistentry>
+          <term><parameter>limit</parameter></term>
+          <listitem>
+            <para>
+              A non-negative integer. 
+            </para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term><parameter>offset</parameter></term>
+          <listitem>
+            <para>
+              A non-negative integer. 
+            </para>
+          </listitem>
+        </varlistentry>
         <varlistentry>
           <term><parameter>order-by</parameter></term>
           <listitem>
@@ -1286,10 +1302,10 @@ ID FORENAME   SURNAME   EMAIL
           <para>
             This value is only considered when CLOS objects are being
             selected. A boolean with a default value of &nil;. When
-            the value of the <variable>caching</variable> keyword is
+            the value of the <varname>caching</varname> keyword is
             &t;, a second equivalent <function>select</function> call
             will return the same view class instance objects. When
-            <variable>refresh</variable> is &t;, then slots of the
+            <varname>refresh</varname> is &t;, then slots of the
             existing instances are updated as necessary. In such
             cases, you may wish to override the hook
             <function>instance-refresh</function>.
@@ -1302,7 +1318,7 @@ ID FORENAME   SURNAME   EMAIL
           <para>
             This value is only considered when CLOS objects are being
             selected.  A boolean with a default value of
-            <variable>*default-caching*</variable>. &clsql; caches
+            <varname>*default-caching*</varname>. &clsql; caches
             objects in accordance with the &commonsql; interface: a
             second equivalent <function>select</function> call will
             return the same view class instance objects.
@@ -1341,8 +1357,8 @@ ID FORENAME   SURNAME   EMAIL
         specified lisp type. The keyword arguments
         <parameter>all</parameter>, <parameter>distinct</parameter>,
         <parameter>from</parameter>, <parameter>group-by</parameter>,
-        <parameter>having</parameter>,
-        <parameter>order-by</parameter>,
+        <parameter>having</parameter>, <parameter>limit</parameter>, 
+        <parameter>offset</parameter>, <parameter>order-by</parameter>,
         <parameter>set-operation</parameter> and
         <parameter>where</parameter> are used to specify, using the
         symbolic SQL syntax, the corresponding components of the SQL
@@ -1397,7 +1413,7 @@ ID FORENAME   SURNAME   EMAIL
                      :field-names nil 
                      :result-types nil 
                      :order-by [first-name])
-=> ("Boris" "Josef" "Konstantin" "Leon" "Leonid" "Mikhail" "Nikita" "Vladamir"
+=> ("Boris" "Josef" "Konstantin" "Leon" "Leonid" "Mikhail" "Nikita" "Vladimir"
     "Yuri")
 
 (select [first-name] [count [*]] :from [employee]
@@ -1406,7 +1422,7 @@ ID FORENAME   SURNAME   EMAIL
                                 :order-by [first-name]
                                 :field-names nil)
 => (("Boris" "1") ("Josef" "1") ("Konstantin" "1") ("Leon" "1") ("Leonid" "1")
-    ("Mikhail" "1") ("Nikita" "1") ("Vladamir" "2") ("Yuri" "1"))
+    ("Mikhail" "1") ("Nikita" "1") ("Vladimir" "2") ("Yuri" "1"))
 
 (select [last-name] :from [employee] 
                     :where [like [email] "%org"]
@@ -1423,7 +1439,7 @@ ID FORENAME   SURNAME   EMAIL
                        :result-types :auto)
 => (10)
 
-(clsql:select [avg [height]] :from [employee] :flatp t :field-names nil)
+(select [avg [height]] :from [employee] :flatp t :field-names nil)
 => (1.58999584d0)
 
 (select [emplid] [last-name] :from [employee] :where [= [emplid] 1]) 
@@ -1442,19 +1458,27 @@ ID FORENAME   SURNAME   EMAIL
                  :flatp t)
 => (1 2 3 4)
 
-(clsql:select [emplid] :from [employee] 
-                       :where [in [emplid] '(1 2 3 4)]
-                       :flatp t 
-                       :order-by [emplid] 
-                       :field-names nil)
+(select [emplid] :from [employee] 
+        :where [in [emplid] '(1 2 3 4)]
+        :flatp t 
+        :order-by [emplid] 
+        :field-names nil)
 => (1 2 3 4)
 
+(select [emplid] :from [employee] 
+        :order-by [emplid]
+        :limit 5 
+        :offset 3
+        :field-names nil
+        :flatp t)
+=> (4 5 6 7 8)
+
 (select [first-name] [last-name] :from [employee] 
         :field-names nil 
         :order-by '(([first-name] :asc) ([last-name] :desc)))
 => (("Boris" "Yeltsin") ("Josef" "Stalin") ("Konstantin" "Chernenko")
     ("Leon" "Trotsky") ("Leonid" "Brezhnev") ("Mikhail" "Gorbachev")
-    ("Nikita" "Kruschev") ("Vladamir" "Putin") ("Vladamir" "Lenin")
+    ("Nikita" "Kruschev") ("Vladimir" "Putin") ("Vladimir" "Lenin")
     ("Yuri" "Andropov"))
 
 (select [last-name] :from [employee]                   
@@ -1465,7 +1489,7 @@ ID FORENAME   SURNAME   EMAIL
                  :field-names nil)
 => ("Andropov" "Boris" "Brezhnev" "Chernenko" "Gorbachev" "Josef" "Konstantin"
     "Kruschev" "Lenin" "Leon" "Leonid" "Mikhail" "Nikita" "Putin" "Stalin"
-    "Trotsky" "Vladamir" "Yeltsin" "Yuri")
+    "Trotsky" "Vladimir" "Yeltsin" "Yuri")
       </screen>
     </refsect1>
     <refsect1>
@@ -1825,7 +1849,7 @@ ID FORENAME   SURNAME   EMAIL
                 :order-by [last-name]]
       collect (concatenate 'string forename " " surname))
 => ("Yuri Andropov" "Leonid Brezhnev" "Konstantin Chernenko" "Mikhail Gorbachev"
-    "Nikita Kruschev" "Vladamir Lenin" "Vladamir Putin" "Josef Stalin"
+    "Nikita Kruschev" "Vladimir Lenin" "Vladimir Putin" "Josef Stalin"
     "Leon Trotsky" "Boris Yeltsin")
 
 (loop for (e) being the records in 
@@ -2033,8 +2057,8 @@ ID FORENAME   SURNAME   EMAIL
            [select [first-name] [last-name] :from [employee] 
                    :order-by [last-name]])
 => (("Yuri" "Andropov") ("Leonid" "Brezhnev") ("Konstantin" "Chernenko")
-    ("Mikhail" "Gorbachev") ("Nikita" "Kruschev") ("Vladamir" "Lenin")
-    ("Vladamir" "Putin") ("Josef" "Stalin") ("Leon" "Trotsky") 
+    ("Mikhail" "Gorbachev") ("Nikita" "Kruschev") ("Vladimir" "Lenin")
+    ("Vladimir" "Putin") ("Josef" "Stalin") ("Leon" "Trotsky") 
     ("Boris" "Yeltsin"))
 
 (map-query 'list #'last-name [select 'employee :order-by [emplid]])