4 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
+ * Version 2.10.11
* base/basic-sql.lisp: Avoid multiple evaluation
of query-expression in DO-QUERY
* sql/objects.lisp: Make SELECT a normal function.
SELECT now accepts type-modified database identifiers, such as
[foo :string] which means that the values in column foo are returned
as Lisp strings. Add new *update-records-on-make-instance* special
- variable controlling automatic creation of new instances.
+ variable controlling automatic creation of new instances. Add missing
+ RESULT-TYPES keyword to FIND-ALL. Add :target-slot support.
* sql/packages.lisp: Export *update-records-on-make-instance*
+ * test/test-oodml.lisp: Add tests for :target-slot and many-to-many
+ selections.
* test/test-fdml.lisp: Add tests for type-modified
database identifiers.
+ * test/test-init.lisp: Stop using add-relation since implementing
+ many-to-many joins. Use *update-records-on-make-instance*
+ to automatically store records on instance creation. Add many-to-many
+ employee-address view-class.
4 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
* Version 2.10.10
* Large object testing
* Test bigint type
* :db-constraint tests
-
-POSSIBLE EXTENSIONS
-
-* port Oracle backend to UFFI
-* large object support
-* add support for prepared statements
+* *update-records-on-make-instance*
COMMONSQL SPEC
>> The object-oriented sql interface
DEF-VIEW-CLASS
- o get :target-slot working
o implement :retrieval :immediate
>> Symbolic SQL syntax
o variables (e.g., table identifiers) should be instantiated at runtime
+POSSIBLE EXTENSIONS
+
+* port Oracle backend to UFFI
+* large object support
+* add support for prepared statements
+
NOTES ABOUT THE BACKENDS
+cl-sql (2.10.11-1) unstable; urgency=low
+
+ * New upstream
+
+ -- Kevin M. Rosenberg <kmr@debian.org> Wed, 5 May 2004 02:06:19 -0600
+
cl-sql (2.10.10-1) unstable; urgency=low
* New upstream
(res (fault-join-slot-raw class object slot-def)))
(when res
(cond
+ ((and ts (gethash :target-slot dbi) (gethash :set dbi))
+ (mapcar (lambda (obj)
+ (let* ((target-name (gethash :target-slot dbi))
+ (target-class (find-class target-name)))
+ (cons
+ (car
+ (fault-join-slot-raw
+ target-class
+ obj
+ (find target-name (class-slots (class-of obj))
+ :key #'slot-definition-name)))
+ obj)))
+ res))
((and ts (gethash :set dbi))
(mapcar (lambda (obj)
(cons obj (slot-value obj ts))) res))
(defun find-all (view-classes &rest args &key all set-operation distinct from
where group-by having order-by order-by-descending offset limit
- refresh flatp (database *default-database*))
+ refresh flatp result-types (database *default-database*))
"Called by SELECT to generate object query results when the
View Classes VIEW-CLASSES are passed as arguments to SELECT."
- (declare (ignore all set-operation group-by having offset limit)
+ (declare (ignore all set-operation group-by having offset limit result-types)
(optimize (debug 3) (speed 1)))
(remf args :from)
(remf args :flatp)