r10922: 03 May 2006 Kevin Rosenberg <kevin@rosenberg.net>
[clsql.git] / sql / conditions.lisp
index 72c4d31d1a98eb4a873c23c4b3f6db78c874bf79..5e805e172e11cc3464eafe0e261e92094cafec86 100644 (file)
 (in-package #:clsql-sys)
 
 (defvar *backend-warning-behavior* :warn
-  "Action to perform on warning messages from backend. Default is to :warn. May also be
-set to :error to signal an error or :ignore/nil to silently ignore the warning.")
+  "Action to perform on warning messages from backend. Default is
+to :warn. May also be set to :error to signal an error
+or :ignore/nil to silently ignore the warning.")
 
 ;;; CommonSQL-compatible conditions
  
 (define-condition sql-condition ()
   ())
 
-(define-condition sql-error (simple-error)
+(define-condition sql-error (simple-error sql-condition)
   ())
 
 (define-condition sql-database-error (sql-error)
@@ -42,10 +43,8 @@ set to :error to signal an error or :ignore/nil to silently ignore the warning."
                     :initform nil
                     :reader sql-error-database))
   (:report (lambda (c stream)
-            (format stream "A database error occurred~A: ~A / ~A~%  ~A"
-                    (if (sql-error-database c)
-                        (format nil " on database ~A" (sql-error-database c))
-                        "")
+            (format stream "A database error occurred~@[ on database ~A~]: ~A / ~A~%  ~A"
+                    (sql-error-database c)
                     (sql-error-error-id c)
                     (sql-error-secondary-error-id c)
                     (sql-error-database-message c))))