(in-package #:clsql-sys)
-;; FDML
+;; FDML
+
+(defgeneric choose-database-for-instance (object &optional database)
+ (:documentation "Used by the oodml functions to select which
+ database object to use. Chooses the database associated with the
+ object primarily, falls back to the database provided as an argument
+ or the *DEFAULT-DATABASE*."))
+
(defgeneric execute-command (expression &key database)
(:documentation
elements of a list."))
-;; OODML
+;; OODML
(defgeneric update-record-from-slot (object slot &key database)
(:documentation
associated with DATABASE."))
(defgeneric update-record-from-slots (object slots &key database)
- (:documentation
+ (:documentation
"Updates the values stored in the columns represented by the
slots, specified by the CLOS slot names SLOTS, of View Class
instance OBJECT. DATABASE defaults to *DEFAULT-DATABASE* and
using values from the slot values of OBJECT, and OBJECT becomes
associated with DATABASE."))
-(defgeneric delete-instance-records (object)
+(defgeneric delete-instance-records (object &key database)
(:documentation
"Deletes the records represented by OBJECT in the appropriate
table of the database associated with OBJECT. If OBJECT is not
instances of the class on which the join is made are not
updated."))
-(defgeneric instance-refreshed (object)
- (:documentation
+(defgeneric instance-refreshed (object)
+ (:documentation
"Provides a hook which is called within an object oriented
call to SELECT with a non-nil value of REFRESH when the View
Class instance OBJECT has been updated from the database. A
nil, otherwise its value will be set to the result of calling
DATABASE-NULL-VALUE on the type of the slot."))
-(defgeneric output-sql (expr database)
- )
-
-(defgeneric output-sql-hash-key (arg database)
- )
-
-(defgeneric collect-table-refs (sql)
- )
-(defgeneric database-output-sql (arg database)
- )
-(defgeneric database-constraint-description (constraint database)
- )
(defgeneric database-pkey-constraint (class database)
)
-(defgeneric database-constraint-statement (constraints database)
- )
-(defgeneric %install-class (class database)
+(defgeneric %install-class (class database &key transactions)
)
(defgeneric database-generate-column-definition (class slotdef database)
)
(defgeneric read-sql-value (val type database db-type)
)
+
+;; Generation of SQL strings from lisp expressions
+
+(defgeneric output-sql (expr database)
+ (:documentation "Writes an SQL string appropriate for DATABASE
+ and corresponding to the lisp expression EXPR to
+ *SQL-STREAM*. The function SQL-OUTPUT is a top-level call for
+ generating SQL strings which initialises *SQL-STREAM*, calls
+ OUTPUT-SQL and reads the generated SQL string from
+ *SQL-STREAM*."))
+
+(defgeneric database-output-sql (expr database)
+ (:documentation "Returns an SQL string appropriate for DATABASE
+ and corresponding to the lisp expression
+ EXPR. DATABASE-OUTPUT-SQL is called by OUTPUT-SQL when no more
+ specific method exists for EXPR."))
+
+(defgeneric output-sql-hash-key (expr database)
+ (:documentation "Returns a list (or other object suitable for
+use as the key of an EQUAL hash table) which uniquely identifies
+the arguments EXPR and DATABASE."))
+
+(defgeneric collect-table-refs (sql)
+ )
+
+(defgeneric database-constraint-statement (constraints database)
+ )