r8973: add makefiles, remove explain function, fix truncate
[clsql.git] / sql / sql.lisp
index 077e27dd365bcd7e79aea520667c3b29be4693f9..28d5a922b857a4f9dd9387f497ddcc02d5a7c2f1 100644 (file)
   (execute-command (sql-output expr database) :database database)
   (values))
 
-(defmethod explain ((expr %sql-expression) &key (database *default-database*))
-  (let ((expression (sql-output expr database)))
-    (format *standard-output* "explain: ~S~%" expression)
-    (execute-command (concatenate 'string "explain " expression))))
-
 
 (defmethod query ((expr %sql-expression) &key (database *default-database*)
                   (result-types nil) (flatp nil))
   (unless (is-database-open database)
     (database-reconnect database))
   (dolist (table (list-tables database))
-    (drop-table table database))
+    (drop-table table :database database))
   (dolist (index (list-indexes database))
-    (drop-index index database))
+    (drop-index index :database database))
   (dolist (seq (list-sequences database))
-    (drop-sequence seq database)))
+    (drop-sequence seq :database database)))
 
 (defun print-query (query-exp &key titles (formats t) (sizes t) (stream t)
                              (database *default-database*))
@@ -255,6 +250,12 @@ condition is true."
         (write-char #\) *sql-stream*)))
   t)
 
+(defmethod describe-table ((table sql-create-table)
+                          &key (database *default-database*))
+  (database-describe-table
+   database
+   (string-downcase (symbol-name (slot-value table 'name)))))
+
 #+nil
 (defmethod add-storage-class ((self database) (class symbol) &key (sequence t))
   (let ((tablename (view-table (find-class class))))