changed generic-odbc to correctly handle owner in list views
authorRuss Tyndall <russ@acceleration.net>
Wed, 17 Dec 2008 15:22:05 +0000 (10:22 -0500)
committerNathan Bird <nathan@acceleration.net>
Mon, 2 Feb 2009 19:31:28 +0000 (14:31 -0500)
sql/generic-odbc.lisp

index 91310fbf9124e132c5851360c03725558ff17ad3..698200abbd5b13cc300b536db8fc46746b195bb6 100644 (file)
 
 (defmethod database-list-views ((database generic-odbc-database)
                                  &key (owner nil))
-  (declare (ignore owner))
   (multiple-value-bind (rows col-names)
       (funcall (list-all-database-tables-fn database) :db (odbc-conn database))
     (declare (ignore col-names))
     ;; TABLE_SCHEM is hard-coded in second column by ODBC Driver Manager
     ;; TABLE_NAME in third column, TABLE_TYPE in fourth column
-    (loop for row in rows
-          when (and (not (string-equal "information_schema" (nth 1 row)))
-                    (string-equal "VIEW" (nth 3 row))
+    (loop for (category view-owner name type . rest) in rows
+          when (and (or (null owner) (string-equal owner view-owner) )
+                   (not (string-equal "information_schema" view-owner))
+                    (string-equal "VIEW" type)
                     (not (and (eq :mssql (database-underlying-type database))
-                              (member (nth 2 row) '("sysconstraints" "syssegments") :test #'string-equal))))
-          collect (nth 2 row))))
+                              (member name '("sysconstraints" "syssegments") :test #'string-equal))))
+          collect name)))
 
 
 (defmethod database-list-attributes ((table string) (database generic-odbc-database)