X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=sql%2Foodml.lisp;h=e575d4df66ae7e58bc921badebe500629eb55a85;hb=a1fccdbb82a77d39ea7a1e23f60ee25485d0d262;hp=0ddaabad5d5444eda23851945f018cf7d9a3bd67;hpb=4a30248613bca9864145306a00bb801cf5348017;p=clsql.git diff --git a/sql/oodml.lisp b/sql/oodml.lisp index 0ddaaba..e575d4d 100644 --- a/sql/oodml.lisp +++ b/sql/oodml.lisp @@ -232,7 +232,8 @@ :av-pairs av-pairs :database database) (when (and pk-slot (not pk)) - (setf pk (if (member :auto-increment (listify (view-class-slot-db-constraints pk-slot))) + (setf pk (if (or (member :auto-increment (listify (view-class-slot-db-constraints pk-slot))) + (not (null (view-class-slot-autoincrement-sequence pk-slot)))) (setf (slot-value obj (slot-definition-name pk-slot)) (database-last-auto-increment-id database table @@ -256,7 +257,9 @@ (when (and (slot-exists-p slot 'db-constraints) (listp (view-class-slot-db-constraints slot)) (member :default (view-class-slot-db-constraints slot))) - (update-slot-from-record obj (slot-definition-name slot)))) + (unless (and (slot-boundp obj (slot-definition-name slot)) + (slot-value obj (slot-definition-name slot))) + (update-slot-from-record obj (slot-definition-name slot))))) ;;this may just be a NOP. (setf (slot-value obj 'view-database) database)))