X-Git-Url: http://git.kpe.io/?p=clsql.git;a=blobdiff_plain;f=doc%2Fref-ooddl.xml;fp=doc%2Fref-ooddl.xml;h=5c51f4b5f35ff3f3c636cea7c2e8e37485a047e8;hp=3114dcf6b6069cc07a01f9644f7e0a8ac6492829;hb=d0695ffb828519fade3aa5166236812e6144975b;hpb=7b9b150cf1be6c4a52855c1a8004673cac1beaa0 diff --git a/doc/ref-ooddl.xml b/doc/ref-ooddl.xml index 3114dcf..5c51f4b 100644 --- a/doc/ref-ooddl.xml +++ b/doc/ref-ooddl.xml @@ -16,8 +16,8 @@ SQL columns being mapped to slots of the CLOS object. - The mapping between SQL tables and CLOS objects is defined - with the macro def-view-class. SQL tables are created with create-view-from-class @@ -25,8 +25,10 @@ linkend="drop-view-from-class">drop-view-from-class. - The above functions refer to the Lisp view of the SQL - table. This Lisp view should not be confused with SQL VIEW statement. + The above functions refer to the Lisp + view of the SQL table. This Lisp view + should not be confused with SQL VIEW + statement. @@ -86,21 +88,27 @@ Description If a slot of a class defined by - DEF-VIEW-CLASS is of the type - STRING or VARCHAR and does - not have a length specified, then the value of this variable - is used as SQL length. + def-view-class is of the type + string or + varchar and does not have a length + specified, then the value of this variable is used as SQL + length. Examples - (let ((*default-string-length* 80)) - (def-view-class s80 () - ((a :type string) - (b :type (string 80)) - (c :type varchar)))) - (create-view-from-class 's80) +(let ((*default-string-length* 80)) + (def-view-class s80 () + ((a :type string) + (b :type (string 80)) + (c :type varchar)))) +=> #<Standard-Db-Class S80 {480A431D}> + +(create-view-from-class 's80) +=> +(table-exists-p [s80]) +=> T The above code causes a SQL table to be created with the SQL command @@ -109,8 +117,10 @@ Affected By - Some SQL backends do not support VARCHAR - lengths greater than 255 . + + Some SQL backends do not support + varchar lengths greater than 255. + See Also @@ -125,13 +135,13 @@ CREATE-VIEW-FROM-CLASS - Create a SQL table from a view class. + Create a SQL table from a View Class. Function Syntax - (create-view-from-class view-class-name &key (database *default-database*) (transactions t)) => + create-view-from-class view-class-name &key database transactions => Arguments and Values @@ -140,8 +150,9 @@ view-class-name - The name of a view class that has been defined with - def-view-class. + The name of a View + Class that has been defined with def-view-class. @@ -149,7 +160,10 @@ database - The database in which to create the SQL table. + The database in + which to create the SQL table. This will default to the + value of *default-database*. @@ -157,7 +171,8 @@ transactions - When &nil; specifies that a table type which does not support transactions should be used. + When &nil; specifies that a table type which does not + support transactions should be used. @@ -166,18 +181,21 @@ Description - Creates a table as defined by the View Class - view-class-name in database. + Creates a table as defined by the View Class + view-class-name in + database. Examples - * (def-view-class 'foo () ((a :type (string 80)))) - #<CLSQL-SYS::STANDARD-DB-CLASS FOO> - * (create-view-from-class 'foo) - * (list-tables) - ("FOO") +(def-view-class foo () ((a :type (string 80)))) +=> #<Standard-Db-Class FOO {4807F7CD}> +(create-view-from-class 'foo) +=> +(list-tables) +=> ("FOO") @@ -236,7 +254,7 @@ Syntax - (def-view-class name superclasses slots &rest class-options) => class + def-view-class name superclasses slots &rest class-options => class Arguments and Values @@ -250,7 +268,7 @@ - name + superclasses The superclasses for the defined class. @@ -265,6 +283,14 @@ + + class options + + + The class options. + + + class @@ -281,29 +307,30 @@ :db-kind - specifies the kind of - database mapping which is performed for this slot and defaults - to :base which indicates that the - slot maps to an ordinary column of the database table. A - :db-kind value of - :key indicates that this slot is - a special kind of :base slot - which maps onto a column which is one of the unique keys - for the database table, the value - :join indicates this slot - represents a join onto another View Class which contains - View Class objects, and the value - :virtual indicates a standard - CLOS slot which does not map onto columns of the - database table. + database mapping which is performed for this slot and + defaults to :base which indicates + that the slot maps to an ordinary column of the database + table. A :db-kind value of + :key indicates that this slot is a + special kind of :base slot which + maps onto a column which is one of the unique keys for the + database table, the value :join + indicates this slot represents a join onto another + View Class + which contains View Class objects, and the value + :virtual indicates a standard CLOS + slot which does not map onto columns of the database + table. - :db-info - if a slot is specified with - :db-kind :join, the - slot option :db-info contains a property list - which specifies the nature of the join. The valid members of the list - are: + :db-info - if a slot is specified + with :db-kind + :join, the slot option + :db-info contains a property list + which specifies the nature of the join. The valid members + of the list are: @@ -356,13 +383,17 @@ - :set - set - This controls what is stored in the join slot. - The default value is &t;. When set is &t; and - target-slot is undefined, the join slot will contain - a list of instances of the join class. Whereas, if target-slot is defined, - then the join slot will contain a list of pairs of (target-value join-instance). - When set is &nil;, the join slot will contain a single instances. + :set set - + This controls what is stored in the join slot. The + default value is &t;. When set is + &t; and target-slot is undefined, + the join slot will contain a list of instances of the + join class. Whereas, if + target-slot is defined, then the + join slot will contain a list of pairs of + (target-value join-instance). + When set is &nil;, the join slot + will contain a single instances. @@ -380,25 +411,32 @@ option. The valid values are: - string - a variable length character field up to - *default-string-length* characters. + string - a variable length + character field up to *default-string-length* + characters. - (string n) - a fixed length character field - n characters long. + (string n) - a fixed length + character field n characters + long. - varchar - a variable length character field up to - *default-string-length* characters. + varchar - a variable length + character field up to *default-string-length* + characters. - (varchar n) - a variable length character field up to - n characters in length. + (varchar n) - a variable length + character field up to n + characters in length. - char - a single character field + char - a single character field - integer - signed integer at least 32-bits wide + integer - signed integer + at least 32-bits wide (integer n) float (float n) @@ -426,18 +464,19 @@ BIGINT - wall-time - a slot which - stores a date and time in a SQL timestamp - column. &clsql; provides a number of time - manipulation functions to support objects of type - wall-time. + wall-time - a slot which stores + a date and time in a SQL timestamp column. &clsql; + provides a number of time manipulation functions to + support objects of type wall-time. - duration - stores a duration structure. - &clsql; provides routines for wall-time and duration - processing. + duration - stores a + duration structure. &clsql; provides + routines for wall-time and + duration processing. - boolean - stores a &t; or &nil; value. + boolean - stores a &t; or + &nil; value. generalized-boolean - similar to a boolean in that either a @@ -453,11 +492,14 @@ symbol - stores a symbol - list - stores a list by writing it to a string. The items - in the list must be able to be readable written. + list - stores a list by writing + it to a string. The items in the list must be able to + be readable written. - vector - stores a vector similarly to list - array - stores a array similarly to list + vector - stores a vector + similarly to list + array - stores a array + similarly to list @@ -475,16 +517,21 @@ - :void-value - specifies - the value to store in the Lisp instance if the SQL value is NULL and defaults - to NIL. + :void-value - specifies the value + to store in the Lisp instance if the SQL value is NULL and + defaults to NIL. - :db-constraints - is a string - representing an SQL table constraint expression or a - list of such strings. + :db-constraints - is a keyword + symbol representing an SQL column constraint expression or + a list of such symbols. The following column constraints + are supported: :not-null, + :primary-key, :unique, + :unsigned (&mysql; specific), + :zerofill (&mysql; specific) and + :auto-increment (&mysql; specific). @@ -503,9 +550,10 @@ - :base-table - specifies the name of the - SQL database table. The default value is the class name. Like slot names, - hypens in the class name are converted to underscore characters. + :base-table - specifies the name + of the SQL database table. The default value is the + class name. Like slot names, hypens in the class name + are converted to underscore characters. @@ -514,7 +562,8 @@ Description - Creates a View Class called name whose + Creates a View + Class called name whose slots slots can map onto the attributes of a table in a database. If superclasses is &nil; then the @@ -522,8 +571,8 @@ standard-db-object, otherwise superclasses is a list of superclasses for class which must include - standard-db-object or a descendent of this - class. + standard-db-object or a descendent of + this class. @@ -734,7 +783,7 @@ Syntax - (drop-view-from-class view-class-name &key (database *default-database*)) => + drop-view-from-class view-class-name &key database => Arguments and Values @@ -743,7 +792,18 @@ view-class-name - The name of the view class. + The name of the View + Class. + + + + + database + + + database + object. This will default to the value of + *default-database*. @@ -751,20 +811,22 @@ Description - Removes a table defined by the View Class - VIEW-CLASS-NAME from - DATABASE which defaults to - *DEFAULT-DATABASE*. + Removes a table defined by the View Class + view-class-name from + database which defaults to + *default-database*. Examples - * (list-tables) - ("FOO" "BAR") - * (drop-view-from-class 'foo) - * (list-tables) - ("BAR") +(list-tables) +=> ("FOO" "BAR") +(drop-view-from-class 'foo) +=> +(list-tables) +=> ("BAR") @@ -799,7 +861,7 @@ Notes - + None. @@ -813,7 +875,7 @@ Syntax - (list-classes &key (test #'identity) (root-class (find-class 'standard-db-object)) (database *default-database*)) => classes + list-classes &key test root-class database => classes Arguments and Values @@ -831,8 +893,9 @@ root-class - specifies the root class to the search. By default, standard-db-object is used - which is the root for all view classes. + specifies the root class to the search. By default, + standard-db-object is used which + is the root for all view classes. @@ -840,7 +903,10 @@ database - The database to search for view classes. + The database to + search for view classes. This will default to the value + of *default-database*. @@ -866,14 +932,14 @@ Examples - * (list-classes) - (#<clsql-sys::standard-db-class big> #<clsql-sys::standard-db-class employee-address> - #<clsql-sys::standard-db-class address> #<clsql-sys::standard-db-class company> - #<clsql-sys::standard-db-class employee>) +(list-classes) +=> (#<clsql-sys::standard-db-class big> #<clsql-sys::standard-db-class employee-address> + #<clsql-sys::standard-db-class address> #<clsql-sys::standard-db-class company> + #<clsql-sys::standard-db-class employee>) - * (list-classes :test #'(lambda (c) (> (length (symbol-name (class-name c))) 3))) - (#<clsql-sys::standard-db-class employee-address> #<clsql-sys::standard-db-class address> - #<clsql-sys::standard-db-class company> #<clsql-sys::standard-db-class employee>) +(list-classes :test #'(lambda (c) (> (length (symbol-name (class-name c))) 3))) +=> (#<clsql-sys::standard-db-class employee-address> #<clsql-sys::standard-db-class address> + #<clsql-sys::standard-db-class company> #<clsql-sys::standard-db-class employee>) @@ -886,7 +952,8 @@ Affected by - Which view classes have been defined in the Lisp session. + Which view classes have been defined in the Lisp + session. @@ -904,6 +971,12 @@ + + Notes + + None. + +