projects
/
clsql.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add value check before updating :default slots.
[clsql.git]
/
sql
/
oodml.lisp
diff --git
a/sql/oodml.lisp
b/sql/oodml.lisp
index 0ddaabad5d5444eda23851945f018cf7d9a3bd67..e575d4df66ae7e58bc921badebe500629eb55a85 100644
(file)
--- a/
sql/oodml.lisp
+++ b/
sql/oodml.lisp
@@
-232,7
+232,8
@@
:av-pairs av-pairs
:database database)
(when (and pk-slot (not pk))
: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
(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)))
(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)))
;;this may just be a NOP.
(setf (slot-value obj 'view-database) database)))