X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=sql%2Fsql.lisp;h=21f5371b905685dd5e092914bc8491d44148b77b;hb=db5e98459718c42c3ba6aba2b45b61c26837c991;hp=a904c89ba7af437459d289932cc3f3c4bb6fda18;hpb=6c70be35cc348b559d8aa869ecd0e14e27d5edbc;p=clsql.git diff --git a/sql/sql.lisp b/sql/sql.lisp index a904c89..21f5371 100644 --- a/sql/sql.lisp +++ b/sql/sql.lisp @@ -27,11 +27,6 @@ (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)) @@ -43,12 +38,15 @@ (clsql-base-sys::signal-no-database-error database)) (unless (is-database-open database) (database-reconnect database)) - (dolist (table (list-tables database)) - (drop-table table database)) - (dolist (index (list-indexes database)) - (drop-index index database)) - (dolist (seq (list-sequences database)) - (drop-sequence seq database))) + (when (db-type-has-views? (database-underlying-type database)) + (dolist (view (list-views :database database)) + (drop-view view :database database))) + (dolist (table (list-tables :database database)) + (drop-table table :database database)) + (dolist (index (list-indexes :database database)) + (drop-index index :database database)) + (dolist (seq (list-sequences :database database)) + (drop-sequence seq :database database))) (defun print-query (query-exp &key titles (formats t) (sizes t) (stream t) (database *default-database*)) @@ -222,6 +220,10 @@ condition is true." (declare (ignore database)) (db-timestring self)) +(defmethod database-output-sql ((self duration) database) + (declare (ignore database)) + (format nil "'~a'" (duration-timestring self))) + (defmethod database-output-sql (thing database) (if (or (null thing) (eq 'null thing))