2 <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
3 "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
4 <!ENTITY % myents SYSTEM "entities.inc">
8 <!-- Object Oriented Data Definition Language -->
9 <reference id="ref-ooddl">
10 <title>Object Oriented Data Definition Language (OODDL)</title>
17 <refentry id="standard-db-object">
19 <refname>STANDARD-DB-OBJECT</refname>
20 <refpurpose>Superclass for all &clsql; View Classes.</refpurpose>
21 <refclass>Class</refclass>
24 <title>Class Precedence List</title>
26 <simplelist type="inline">
27 <member><type>standard-db-object</type></member>
28 <member><type>standard-object</type></member>
29 <member><type>t</type></member>
34 <title>Description</title> <para>This class is the superclass
35 of all &clsql; View Classes.</para>
38 <title class="contenttitle">Class details</title>
39 <programlisting>(defclass STANDARD-DB-OBJECT ()(...))</programlisting>
42 <title class="contenttitle">Slots</title>
45 <property>slot VIEW-DATABASE is of type T</property>
51 <refentry id="default-varchar-length">
53 <refname>*DEFAULT-VARCHAR-LENGTH*</refname>
54 <refpurpose><!-- purpose --></refpurpose>
55 <refclass>Variable</refclass>
58 <title>Value Type</title>
64 <title>Initial Value</title>
65 <para><symbol>nil</symbol></para>
68 <title>Description</title>
72 <title>Examples</title>
78 <title>Affected By</title>
82 <title>See Also</title>
91 <refentry id="create-view-from-class">
93 <refname>CREATE-VIEW-FROM-CLASS</refname>
94 <refpurpose><!-- purpose --></refpurpose>
95 <refclass>Function</refclass>
100 <function> (CREATE-VIEW-FROM-CLASS VIEW-CLASS-NAME &KEY (DATABASE *DEFAULT-DATABASE*)) [function]</function> => <returnvalue><!-- result --></returnvalue></synopsis>
103 <title>Arguments and Values</title>
105 <!-- arguments and values -->
109 <title>Description</title>
110 <para>Creates a table as defined by the View Class
111 VIEW-CLASS-NAME in DATABASE which defaults to
116 <title>Examples</title>
122 <title>Side Effects</title>
124 <!-- side effects -->
128 <title>Affected by</title>
136 <title>Exceptional Situations</title>
138 <!-- execeptional situations -->
142 <title>See Also</title>
157 <refentry id="def-view-class">
159 <refname>DEF-VIEW-CLASS</refname>
160 <refpurpose><!-- purpose --></refpurpose>
161 <refclass>Function</refclass>
164 <title>Syntax</title>
166 <function> (DEF-VIEW-CLASS CLASS SUPERS SLOTS &REST CL-OPTIONS) [macro]</function> => <returnvalue><!-- result --></returnvalue></synopsis>
169 <title>Arguments and Values</title>
171 <!-- arguments and values -->
175 <title>Description</title>
176 <para>Creates a View Class called CLASS whose slots SLOTS can
177 map onto the attributes of a table in a database. If SUPERS is
178 nil then the superclass of CLASS will be STANDARD-DB-OBJECT,
179 otherwise SUPERS is a list of superclasses for CLASS which
180 must include STANDARD-DB-OBJECT or a descendent of this
181 class. The syntax of DEFCLASS is extended through the addition
182 of a class option :base-table which defines the database table
183 onto which the View Class maps and which defaults to
184 CLASS. The DEFCLASS syntax is also extended through additional
185 slot options. The :db-kind slot option specifies the kind of
186 DB mapping which is performed for this slot and defaults to
187 :base which indicates that the slot maps to an ordinary column
188 of the database table. A :db-kind value of :key indicates that
189 this slot is a special kind of :base slot which maps onto a
190 column which is one of the unique keys for the database table,
191 the value :join indicates this slot represents a join onto
192 another View Class which contains View Class objects, and the
193 value :virtual indicates a standard CLOS slot which does not
194 map onto columns of the database table. If a slot is specified
195 with :db-kind :join, the slot option :db-info contains a list
196 which specifies the nature of the join. For slots of :db-kind
197 :base or :key, the :type slot option has a special
198 interpretation such that Lisp types, such as string, integer
199 and float are automatically converted into appropriate SQL
200 types for the column onto which the slot maps. This behaviour
201 may be over-ridden using the :db-type slot option which is a
202 string specifying the vendor-specific database type for this
203 slot's column definition in the database. The :column slot
204 option specifies the name of the SQL column which the slot
205 maps onto, if :db-kind is not :virtual, and defaults to the
206 slot name. The :void-value slot option specifies the value to
207 store if the SQL value is NULL and defaults to NIL. The
208 :db-constraints slot option is a string representing an SQL
209 table constraint expression or a list of such strings.
213 <title>Examples</title>
219 <title>Side Effects</title>
221 <!-- side effects -->
225 <title>Affected by</title>
233 <title>Exceptional Situations</title>
235 <!-- execeptional situations -->
239 <title>See Also</title>
254 <refentry id="drop-view-from-class">
256 <refname>DROP-VIEW-FROM-CLASS</refname>
257 <refpurpose><!-- purpose --></refpurpose>
258 <refclass>Function</refclass>
261 <title>Syntax</title>
263 <function> (DROP-VIEW-FROM-CLASS VIEW-CLASS-NAME &KEY (DATABASE *DEFAULT-DATABASE*)) [function]</function> => <returnvalue><!-- result --></returnvalue></synopsis>
266 <title>Arguments and Values</title>
268 <!-- arguments and values -->
272 <title>Description</title>
273 <para>Removes a table defined by the View Class
274 VIEW-CLASS-NAME from DATABASE which defaults to
279 <title>Examples</title>
285 <title>Side Effects</title>
287 <!-- side effects -->
291 <title>Affected by</title>
299 <title>Exceptional Situations</title>
301 <!-- execeptional situations -->
305 <title>See Also</title>
320 <refentry id="list-classes">
322 <refname>LIST-CLASSES</refname>
323 <refpurpose><!-- purpose --></refpurpose>
324 <refclass>Function</refclass>
327 <title>Syntax</title>
329 <function> (LIST-CLASSES &KEY (TEST #'IDENTITY) (ROOT-CLASS (FIND-CLASS 'STANDARD-DB-OBJECT)) (DATABASE *DEFAULT-DATABASE*)) [function]</function> => <returnvalue><!-- result --></returnvalue></synopsis>
332 <title>Arguments and Values</title>
334 <!-- arguments and values -->
338 <title>Description</title>
339 <para>Returns a list of all the View Classes which
340 are connected to DATABASE, which defaults to
341 *DEFAULT-DATABASE*, and which descend from the class
342 ROOT-CLASS and which satisfy the function TEST. By
343 default ROOT-CLASS is STANDARD-DB-OBJECT and TEST is
348 <title>Examples</title>
354 <title>Side Effects</title>
356 <!-- side effects -->
360 <title>Affected by</title>
368 <title>Exceptional Situations</title>
370 <!-- execeptional situations -->
374 <title>See Also</title>