Add defgeneric for database-last-auto-increment-id
[clsql.git] / sql / generics.lisp
index d8066cf04a8709fbcddaf58e9c766af737ac380b..b0a44725e766490248ab2373d41df8047e96af02 100644 (file)
@@ -4,12 +4,10 @@
 ;;;;
 ;;;; Name:     generics.lisp
 ;;;; Purpose:  Generic function definitions for DB interfaces
-;;;; Author:   Kevin M. Rosenberg based on
+;;;; Author:   Kevin M. Rosenberg
 ;;;; Created:  Apr 2004
 ;;;;
-;;;; $Id$
-;;;;
-;;;; This file, part of CLSQL, is Copyright (c) 2002-2004 by Kevin M. Rosenberg
+;;;; This file, part of CLSQL, is Copyright (c) 2004-2010 by Kevin M. Rosenberg
 ;;;;
 ;;;; CLSQL users are granted the rights to distribute and use this software
 ;;;; as governed by the terms of the Lisp Lesser GNU Public License
@@ -19,7 +17,7 @@
 (in-package #:clsql-sys)
 
 
-;; FDML 
+;; FDML
 
 (defgeneric execute-command (expression &key database)
   (:documentation
@@ -48,7 +46,7 @@ record selected by QUERY-EXPRESSION, the results are returned as
 elements of a list."))
 
 
-;; OODML 
+;; OODML
 
 (defgeneric update-record-from-slot (object slot &key database)
   (:documentation
@@ -63,7 +61,7 @@ attributes having default values. Furthermore, OBJECT becomes
 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
@@ -74,7 +72,7 @@ represented by SLOTS are initialised from the values of the
 supplied slots with other attributes having default
 values. Furthermore, OBJECT becomes associated with DATABASE."))
 
-(defgeneric update-records-from-instance (object &key database)
+(defgeneric update-records-from-instance (object &key database this-class)
   (:documentation
    "Using an instance of a View Class, OBJECT, update the table
 that stores its instance data. DATABASE defaults to
@@ -90,7 +88,7 @@ associated with DATABASE."))
 table of the database associated with OBJECT. If OBJECT is not
 yet associated with a database, an error is signalled."))
 
-(defgeneric update-instance-from-records (object &key database)
+(defgeneric update-instance-from-records (object &key database this-class)
   (:documentation
    "Updates the slot values of the View Class instance OBJECT
 using the attribute values of the appropriate table of DATABASE
@@ -109,8 +107,8 @@ database, *DEFAULT-DATABASE*.  Join slots are updated but
 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
@@ -141,9 +139,13 @@ DATABASE-NULL-VALUE on the type of the slot."))
   )
 (defgeneric read-sql-value  (val type database db-type)
   )
+(defgeneric database-make-autoincrement-sequence (class slotdef database)
+  )
 
+(defgeneric database-last-auto-increment-id (database table column)
+  )
 
-;; Generation of SQL strings from lisp expressions 
+;; Generation of SQL strings from lisp expressions
 
 (defgeneric output-sql (expr database)
   (:documentation "Writes an SQL string appropriate for DATABASE