X-Git-Url: http://git.kpe.io/?p=clsql.git;a=blobdiff_plain;f=sql%2Fgenerics.lisp;fp=sql%2Fgenerics.lisp;h=0d1a4da4bcac85582e4a4bb24d568934bef07d97;hp=3f3ee7c07262f20c338ce41adb3bfebbd711fb82;hb=dc107d34212597ed1272cfa21138d384e71b00d2;hpb=8535462c3fdef182cd226770e6e07160f380acac diff --git a/sql/generics.lisp b/sql/generics.lisp index 3f3ee7c..0d1a4da 100644 --- a/sql/generics.lisp +++ b/sql/generics.lisp @@ -144,12 +144,29 @@ 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-add-autoincrement-sequence (class database) + (:method (class database) nil) + (:documentation "If a database needs to add a sequence for its + autoincrement to work, this is where it should go. Default is + that it doesnt so just return nil")) +(defgeneric database-remove-autoincrement-sequence (class database) + (:method (class database) nil) + (:documentation "If a database needs to add a sequence for its + autoincrement to work, this is where it should go. Default is + that it doesnt so just return nil")) +(defgeneric auto-increment-sequence-name (class slotdef database) + (:documentation "The sequence name to create for this autoincremnt column on this class + if returns nil, there is no associated sequence ")) + +(defmethod auto-increment-sequence-name :around (class slot database) + (when (auto-increment-column-p slot database) + (call-next-method))) (defgeneric database-last-auto-increment-id (database table column) ) + + ;; Generation of SQL strings from lisp expressions (defgeneric output-sql (expr database)