Updated get-database-type-specifier to handle text/longchar type
[clsql.git] / doc / ref-fddl.xml
index 5d542ded1ffdf0b8b92969d71c67d9a63bc108c5..b48bd3b8395395d9202799e5d648227335631fb0 100644 (file)
@@ -24,7 +24,7 @@
       <refentrytitle>CREATE-TABLE</refentrytitle>
     </refmeta>
     <refnamediv>
-      <refname><emphasis>Function</emphasis> <emphasis role="bold">CREATE-TABLE</emphasis></refname>
+      <refname>CREATE-TABLE</refname>
       <refpurpose>Create a database table.</refpurpose>
       <refclass>Function</refclass>
     </refnamediv>
               '(([id] integer)
                 ([height] float)
                 ([name] (string 24))
-                ([comments] longchar)))
+                ([comments] text)))
 => 
 (table-exists-p [foo]) 
 => T 
+
+(create-table [foo] '(([bar] integer :not-null :unique :primary-key) 
+                      ([baz] string :not-null :unique)))
+=> 
+(table-exists-p [foo])
+=> T
+
+(create-table [foo] '(([bar] integer :not-null) ([baz] string :not-null))
+              :constraints '("UNIQUE (bar,baz)" "PRIMARY KEY (bar)"))
+=> 
+(table-exists-p [foo])
+=> T
       </screen>
     </refsect1>
     <refsect1>
       <refentrytitle>DROP-TABLE</refentrytitle>
     </refmeta>
     <refnamediv>
-      <refname><emphasis>Function</emphasis> <emphasis role="bold">DROP-TABLE</emphasis></refname>
+      <refname>DROP-TABLE</refname>
       <refpurpose>Drop a database table.</refpurpose>
       <refclass>Function</refclass>
     </refnamediv>
       <refentrytitle>LIST-TABLES</refentrytitle>
     </refmeta>
     <refnamediv>
-      <refname><emphasis>Function</emphasis> <emphasis role="bold">LIST-TABLES</emphasis></refname>
+      <refname>LIST-TABLES</refname>
       <refpurpose>Returns a list of database tables.</refpurpose>
       <refclass>Function</refclass>
     </refnamediv>
       <refentrytitle>TABLE-EXISTS-P</refentrytitle>
     </refmeta>
     <refnamediv>
-      <refname><emphasis>Function</emphasis> <emphasis role="bold">TABLE-EXISTS-P</emphasis></refname>
+      <refname>TABLE-EXISTS-P</refname>
       <refpurpose>Tests for the existence of a database table.</refpurpose>
       <refclass>Function</refclass>
     </refnamediv>
       <refentrytitle>CREATE-VIEW</refentrytitle>
     </refmeta>
     <refnamediv>
-      <refname><emphasis>Function</emphasis> <emphasis role="bold">CREATE-VIEW</emphasis></refname>
+      <refname>CREATE-VIEW</refname>
       <refpurpose>Create a database view.</refpurpose>
       <refclass>Function</refclass>
     </refnamediv>
     ("Konstantin" "Chernenko" "chernenko@soviet.org")
     ("Mikhail" "Gorbachev" "gorbachev@soviet.org")
     ("Boris" "Yeltsin" "yeltsin@soviet.org")
-    ("Vladamir" "Putin" "putin@soviet.org")), 
+    ("Vladimir" "Putin" "putin@soviet.org")), 
    ("first_name" "last_name" "email")
       </screen>
     </refsect1>
       <refentrytitle>DROP-VIEW</refentrytitle>
     </refmeta>
     <refnamediv>
-      <refname><emphasis>Function</emphasis> <emphasis role="bold">DROP-VIEW</emphasis></refname>
+      <refname>DROP-VIEW</refname>
       <refpurpose>Drops a database view.</refpurpose>
       <refclass>Function</refclass>
     </refnamediv>
       <refentrytitle>LIST-VIEWS</refentrytitle>
     </refmeta>
     <refnamediv>
-      <refname><emphasis>Function</emphasis> <emphasis role="bold">LIST-VIEWS</emphasis></refname>
+      <refname>LIST-VIEWS</refname>
       <refpurpose>Returns a list of database views.</refpurpose>
       <refclass>Function</refclass>
     </refnamediv>
       <refentrytitle>VIEW-EXISTS-P</refentrytitle>
     </refmeta>
     <refnamediv>
-      <refname><emphasis>Function</emphasis> <emphasis role="bold">VIEW-EXISTS-P</emphasis></refname>
+      <refname>VIEW-EXISTS-P</refname>
       <refpurpose>Tests for the existence of a database view.</refpurpose>
       <refclass>Function</refclass>
     </refnamediv>
       <refentrytitle>CREATE-INDEX</refentrytitle>
     </refmeta>
     <refnamediv>
-      <refname><emphasis>Function</emphasis> <emphasis role="bold">CREATE-INDEX</emphasis></refname>
+      <refname>CREATE-INDEX</refname>
       <refpurpose>Create a database index.</refpurpose>
       <refclass>Function</refclass>
     </refnamediv>
       <refentrytitle>DROP-INDEX</refentrytitle>
     </refmeta>
     <refnamediv>
-      <refname><emphasis>Function</emphasis> <emphasis role="bold">DROP-INDEX</emphasis></refname>
+      <refname>DROP-INDEX</refname>
       <refpurpose>Drop a database index.</refpurpose>
       <refclass>Function</refclass>
     </refnamediv>
       <refentrytitle>LIST-INDEXES</refentrytitle>
     </refmeta>
     <refnamediv>
-      <refname><emphasis>Function</emphasis> <emphasis role="bold">LIST-INDEXES</emphasis></refname>
+      <refname>LIST-INDEXES</refname>
       <refpurpose>Returns a list of database indexes.</refpurpose>
       <refclass>Function</refclass>
     </refnamediv>
       <refentrytitle>INDEX-EXISTS-P</refentrytitle>
     </refmeta>
     <refnamediv>
-      <refname><emphasis>Function</emphasis> <emphasis role="bold">INDEX-EXISTS-P</emphasis></refname>
+      <refname>INDEX-EXISTS-</refname>
       <refpurpose>Tests for the existence of a database index.</refpurpose>
       <refclass>Function</refclass>
     </refnamediv>
       <refentrytitle>ATTRIBUTE-TYPE</refentrytitle>
     </refmeta>
     <refnamediv>
-      <refname><emphasis>Function</emphasis> <emphasis role="bold">ATTRIBUTE-TYPE</emphasis></refname>
+      <refname>ATTRIBUTE-TYPE</refname>
       <refpurpose>Returns the type of the supplied attribute.</refpurpose>
       <refclass>Function</refclass>
     </refnamediv>
       <refentrytitle>LIST-ATTRIBUTE-TYPES</refentrytitle>
     </refmeta>
     <refnamediv>
-      <refname><emphasis>Function</emphasis> <emphasis role="bold">LIST-ATTRIBUTE-TYPES</emphasis></refname>
+      <refname>LIST-ATTRIBUTE-TYPES</refname>
       <refpurpose>Returns information about the attribute types of a table.</refpurpose>
       <refclass>Function</refclass>
     </refnamediv>
       <refentrytitle>LIST-ATTRIBUTES</refentrytitle>
     </refmeta>
     <refnamediv>
-      <refname><emphasis>Function</emphasis> <emphasis role="bold">LIST-ATTRIBUTES</emphasis></refname>
+      <refname>LIST-ATTRIBUTES</refname>
       <refpurpose>Returns the attributes of a table as a list.</refpurpose>
       <refclass>Function</refclass>
     </refnamediv>
       <refentrytitle>CREATE-SEQUENCE</refentrytitle>
     </refmeta>
     <refnamediv>
-      <refname><emphasis>Function</emphasis> <emphasis role="bold">CREATE-SEQUENCE</emphasis></refname>
+      <refname>CREATE-SEQUENCE</refname>
       <refpurpose>Create a database sequence.</refpurpose>
       <refclass>Function</refclass>
     </refnamediv>
       <refentrytitle>DROP-SEQUENCE</refentrytitle>
     </refmeta>
     <refnamediv>
-      <refname><emphasis>Function</emphasis> <emphasis role="bold">DROP-SEQUENCE</emphasis></refname>
+      <refname>DROP-SEQUENCE</refname>
       <refpurpose>Drop a database sequence.</refpurpose>
       <refclass>Function</refclass>
     </refnamediv>
       <refentrytitle>LIST-SEQUENCES</refentrytitle>
     </refmeta>
     <refnamediv>
-      <refname><emphasis>Function</emphasis> <emphasis role="bold">LIST-SEQUENCES</emphasis></refname>
+      <refname>LIST-SEQUENCES</refname>
       <refpurpose>Returns a list of database sequences.</refpurpose>
       <refclass>Function</refclass>
     </refnamediv>
       <refentrytitle>SEQUENCE-EXISTS-P</refentrytitle>
     </refmeta>
     <refnamediv>
-      <refname><emphasis>Function</emphasis> <emphasis role="bold">SEQUENCE-EXISTS-P</emphasis></refname>
+      <refname>SEQUENCE-EXISTS-P</refname>
       <refpurpose>Tests for the existence of a database sequence.</refpurpose>
       <refclass>Function</refclass>
     </refnamediv>
       <refentrytitle>SEQUENCE-LAST</refentrytitle>
     </refmeta>
     <refnamediv>
-      <refname><emphasis>Function</emphasis> <emphasis role="bold">SEQUENCE-LAST</emphasis></refname>
+      <refname>SEQUENCE-LAST</refname>
       <refpurpose>Return the last element in a database sequence.</refpurpose>
       <refclass>Function</refclass>
     </refnamediv>
       <refentrytitle>SEQUENCE-NEXT</refentrytitle>
     </refmeta>
     <refnamediv>
-      <refname><emphasis>Function</emphasis> <emphasis role="bold">SEQUENCE-NEXT</emphasis></refname>
+      <refname>SEQUENCE-NEXT</refname>
       <refpurpose>Increment the value of a database sequence.</refpurpose>
       <refclass>Function</refclass>
     </refnamediv>
       <refentrytitle>SET-SEQUENCE-POSITION</refentrytitle>
     </refmeta>
     <refnamediv>
-      <refname><emphasis>Function</emphasis> <emphasis role="bold">SET-SEQUENCE-POSITION</emphasis></refname>
+      <refname>SET-SEQUENCE-POSITION</refname>
       <refpurpose>Sets the position of a database sequence.</refpurpose>
       <refclass>Function</refclass>
     </refnamediv>
     </refsect1>
   </refentry>
 
+  <refentry id="truncate-database">
+    <refmeta>
+      <refentrytitle>TRUNCATE-DATABASE</refentrytitle>
+    </refmeta>
+    <refnamediv>
+      <refname>TRUNCATE-DATABASE</refname>
+      <refpurpose>Drop all tables, views, indexes and sequences in a database.</refpurpose>
+      <refclass>Function</refclass>
+    </refnamediv>
+    <refsect1>
+      <title>Syntax</title>
+      <synopsis>
+      <function>truncate-database</function> &amp;key <replaceable>database</replaceable> => <returnvalue></returnvalue></synopsis>
+    </refsect1>
+    <refsect1>
+      <title>Arguments and Values</title>
+      <variablelist>
+        <varlistentry>
+          <term><parameter>database</parameter></term>
+          <listitem>
+            <para>A 
+            <glossterm linkend="gloss-database-object">database
+            object</glossterm>. This will default to the value
+            of <symbol>*default-database*</symbol>.</para>
+          </listitem>
+        </varlistentry>
+      </variablelist>
+    </refsect1>
+    <refsect1>
+      <title>Description</title>
+      <para>
+        Drop all tables, views, indexes and sequences in
+        <parameter>database</parameter> which defaults to
+        <symbol>*default-database*</symbol>.
+      </para>
+    </refsect1>
+    <refsect1>
+      <title>Examples</title>
+      <screen>
+(list-tables)
+=> ("type_table" "type_bigint" "employee" "company" "addr" "ea_join" "big")
+(list-indexes)
+=> ("employeepk" "companypk" "addrpk")
+(list-views)
+=> ("lenins_group")
+(list-sequences)
+=> ("foo" "bar")
+(truncate-database)
+=> 
+(list-tables)
+=> NIL
+(list-indexes)
+=> NIL
+(list-views)
+=> NIL
+(list-sequences)
+=> NIL
+      </screen>
+    </refsect1>
+    <refsect1>
+      <title>Side Effects</title>
+      <para>
+        Modifications are made to the underlying database. 
+      </para>
+    </refsect1>
+    <refsect1>
+      <title>Affected by</title>
+      <para>
+        None. 
+      </para>
+    </refsect1>
+    <refsect1>
+      <title>Exceptional Situations</title>
+      <para>
+        Signals an error of type <symbol>sql-database-error</symbol> if 
+        <parameter>database</parameter> is not a database object. 
+      </para>
+    </refsect1>
+    <refsect1>
+      <title>See Also</title>
+      <para>
+        <simplelist>
+          <member><link linkend="drop-table"><function>drop-table</function></link></member>
+          <member><link linkend="drop-view"><function>drop-view</function></link></member>
+          <member><link linkend="drop-index"><function>drop-index</function></link></member>
+          <member><link linkend="drop-sequence"><function>drop-sequence</function></link></member>
+        </simplelist>
+      </para>
+    </refsect1>
+    <refsect1>
+      <title>Notes</title>
+      <para>
+        <function>truncate-database</function> is a &clsql; extension. 
+      </para>
+    </refsect1>
+  </refentry>
+
 </reference>