r8811: add support for usql backend, integrate Marcus Pearce <ek735@soi.city.ac.uk...
[clsql.git] / base / conditions.lisp
index 5f0fb3a09077a9a36922de7ff21cebd2a10dc654..7fc778101abfa5bf01aa3f0feef7097f7eae9c4a 100644 (file)
@@ -8,7 +8,7 @@
 ;;;;                 Original code by Pierre R. Mai 
 ;;;; Date Started:  Feb 2002
 ;;;;
-;;;; $Id: conditions.lisp,v 1.1 2002/09/30 10:19:01 kevin Exp $
+;;;; $Id$
 ;;;;
 ;;;; This file, part of CLSQL, is Copyright (c) 2002 by Kevin M. Rosenberg
 ;;;; and Copyright (c) 1999-2001 by Pierre R. Mai
@@ -55,7 +55,7 @@
 and signal an clsql-invalid-spec-error if they don't match."
   `(handler-case
     (destructuring-bind ,template ,connection-spec 
-      (declare (ignore ,@template))
+      (declare (ignore ,@(remove '&optional template)))
       t)
     (error () (error 'clsql-invalid-spec-error
                     :connection-spec ,connection-spec
@@ -157,3 +157,26 @@ and signal an clsql-invalid-spec-error if they don't match."
          'clsql-nodb-error
          :database database))
 
+
+;; for USQL support
+
+(define-condition clsql-type-error (clsql-error clsql-condition)
+  ((slotname :initarg :slotname
+            :reader clsql-type-error-slotname)
+   (typespec :initarg :typespec
+            :reader clsql-type-error-typespec)
+   (value :initarg :value
+         :reader clsql-type-error-value))
+  (:report (lambda (c stream)
+            (format stream
+                    "Invalid value ~A in slot ~A, not of type ~A."
+                    (clsql-type-error-value c)
+                    (clsql-type-error-slotname c)
+                    (clsql-type-error-typespec c)))))
+
+(define-condition clsql-sql-syntax-error (clsql-error)
+  ((reason :initarg :reason
+          :reader clsql-sql-syntax-error-reason))
+  (:report (lambda (c stream)
+            (format stream "Invalid SQL syntax: ~A"
+                    (clsql-sql-syntax-error-reason c)))))
\ No newline at end of file