r11657: 25 Apr 2007 Kevin Rosenberg <kevin@rosenberg.net>
[clsql.git] / sql / ooddl.lisp
index fe201eb4c8e71a8318c225cdc9c87c2ee813ff53..09d879a020510582bfd75589265e9d8b21332b00 100644 (file)
     :db-kind :virtual))
   (:metaclass standard-db-class)
   (:documentation "Superclass for all CLSQL View Classes."))
-#+clisp
-(eval-when (:compile-toplevel :load-toplevel :execute)
-  (make-instance 'standard-db-object)
-  (finalize-inheritance (find-class 'standard-db-object)))
 
 (defparameter *default-string-length* 255
   "The length of a string which does not have a user-specified length.")
@@ -133,20 +129,24 @@ in DATABASE which defaults to *DEFAULT-DATABASE*."
 ;; Drop the tables which store the given view class
 ;;
 
-(defun drop-view-from-class (view-class-name &key (database *default-database*))
+(defun drop-view-from-class (view-class-name &key (database *default-database*)
+                                             (owner nil))
   "Removes a table defined by the View Class VIEW-CLASS-NAME from
 DATABASE which defaults to *DEFAULT-DATABASE*."
   (let ((tclass (find-class view-class-name)))
     (if tclass
         (let ((*default-database* database))
-          (%uninstall-class tclass))
+          (%uninstall-class tclass :owner owner))
         (error "Class ~s not found." view-class-name)))
   (values))
 
-(defun %uninstall-class (self &key (database *default-database*))
+(defun %uninstall-class (self &key
+                              (database *default-database*)
+                              (owner nil))
   (drop-table (sql-expression :table (view-table self))
               :if-does-not-exist :ignore
-              :database database)
+              :database database
+              :owner owner)
   (setf (database-view-classes database)
         (remove self (database-view-classes database))))