From 348cafca35b850b66b1181ba0661211e64f0d4f1 Mon Sep 17 00:00:00 2001 From: "nathan@acceleration.net" Date: Fri, 22 Feb 2008 17:01:46 -0500 Subject: [PATCH] darcs patch: Thu Aug 23 17:16:31 EDT 2007 Russ Tyndall * Changed many more instances of view-database to choose-database (so that joins work) plus a couple of other references to the view-database i found. --- sql/generics.lisp | 2 +- sql/oodml.lisp | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/sql/generics.lisp b/sql/generics.lisp index 0814d0f..d0d69d3 100644 --- a/sql/generics.lisp +++ b/sql/generics.lisp @@ -21,7 +21,7 @@ ;; FDML -(defgeneric choose-database-for-instance (object database) +(defgeneric choose-database-for-instance (object &optional database) (:documentation "Used by the oodml functions to select which database object to use. Chooses the database associated with the object primarily, falls back to the database provided as an argument diff --git a/sql/oodml.lisp b/sql/oodml.lisp index b5a5907..30f6b0d 100644 --- a/sql/oodml.lisp +++ b/sql/oodml.lisp @@ -95,9 +95,9 @@ (cond ((and value (null slot-reader)) (setf (slot-value instance slot-name) (read-sql-value value (delistify slot-type) - (view-database instance) + (choose-database-for-instance instance) (database-underlying-type - (view-database instance))))) + (choose-database-for-instance instance))))) ((null value) (update-slot-with-null instance slot-name slotdef)) ((typep slot-reader 'string) @@ -158,7 +158,7 @@ (mapc #'update-slot slotdeflist values) obj)) -(defmethod choose-database-for-instance ((obj standard-db-object) database) +(defmethod choose-database-for-instance ((obj standard-db-object) &optional database) "Determine which database connection to use for a standard-db-object. Errs if none is available." (or (find-if #'(lambda (db) @@ -625,10 +625,10 @@ :table jc-view-table)) :where jq :result-types :auto - :database (view-database object)))) + :database (choose-database-for-instance object)))) (mapcar #'(lambda (i) (let* ((instance (car i)) - (jcc (make-instance jc :view-database (view-database instance)))) + (jcc (make-instance jc :view-database (choose-database-for-instance object)))) (setf (slot-value jcc (gethash :foreign-key dbi)) key) (setf (slot-value jcc (gethash :home-key tdbi)) @@ -639,8 +639,8 @@ ;; just fill in minimal slots (mapcar #'(lambda (k) - (let ((instance (make-instance tsc :view-database (view-database object))) - (jcc (make-instance jc :view-database (view-database object))) + (let ((instance (make-instance tsc :view-database (choose-database-for-instance object))) + (jcc (make-instance jc :view-database (choose-database-for-instance object))) (fk (car k))) (setf (slot-value instance (gethash :home-key tdbi)) fk) (setf (slot-value jcc (gethash :foreign-key dbi)) @@ -651,7 +651,7 @@ (select (sql-expression :attribute (gethash :foreign-key tdbi) :table jc-view-table) :from (sql-expression :table jc-view-table) :where jq - :database (view-database object)))))))) + :database (choose-database-for-instance object)))))))) ;;; Remote Joins @@ -749,7 +749,7 @@ maximum of MAX-LEN instances updated in each query." (let ((jq (join-qualifier class object slot-def))) (when jq (select jc :where jq :flatp t :result-types nil - :database (view-database object)))))) + :database (choose-database-for-instance object)))))) (defun fault-join-slot (class object slot-def) (let* ((dbi (view-class-slot-db-info slot-def)) -- 2.34.1