(subquery nil))
(unless into
(error 'sql-user-error :message ":into keyword not supplied"))
- (let ((insert (make-instance 'sql-insert :into into)))
+ (let ((insert (make-instance 'sql-insert :into (database-identifier into nil))))
(with-slots (attributes values query)
insert
"Deletes records satisfying the SQL expression WHERE from the
table specified by FROM in DATABASE specifies a database which
defaults to *DEFAULT-DATABASE*."
- (let ((stmt (make-instance 'sql-delete :from from :where where)))
+ (let ((stmt (make-instance 'sql-delete :from (database-identifier from database) :where where)))
(execute-command stmt :database database)))
(defun update-records (table &key (attributes nil)
(when av-pairs
(setf attributes (mapcar #'car av-pairs)
values (mapcar #'cadr av-pairs)))
- (let ((stmt (make-instance 'sql-update :table table
+ (let ((stmt (make-instance 'sql-update :table (database-identifier table database)
:attributes attributes
:values values
:where where)))
(qe (gensym "QUERY-EXPRESSION-"))
(columns (gensym "COLUMNS-"))
(row (gensym "ROW-"))
- (db (gensym "DB-")))
+ (db (gensym "DB-"))
+ (last-form-eval (gensym "LFE-")))
`(let ((,qe ,query-expression)
(,db ,database))
(typecase ,qe
:result-types ,result-types)
(when ,result-set
(unwind-protect
- (do ((,row (make-list ,columns)))
+ (do ((,row (make-list ,columns))
+ (,last-form-eval nil))
((not (database-store-next-row ,result-set ,db ,row))
- nil)
+ ,last-form-eval)
(destructuring-bind ,args ,row
- ,@body))
+ (setq ,last-form-eval
+ (progn
+ ,@body))))
(database-dump-result-set ,result-set ,db)))))))))
(defun map-query (output-type-spec function query-expression