r2006: debian
[clsql.git] / sql / usql.cl
index 9d96874f2033fc514db01739bfb9b941bbee38e3..d2a53eccd64868f36136ecd659493182ee37bbba 100644 (file)
@@ -8,7 +8,7 @@
 ;;;; Programmers:   Kevin M. Rosenberg and onShore Development Inc
 ;;;; Date Started:  Mar 2002
 ;;;;
-;;;; $Id: usql.cl,v 1.2 2002/04/03 17:58:23 kevin Exp $
+;;;; $Id: usql.cl,v 1.6 2002/04/07 15:11:21 kevin Exp $
 ;;;;
 ;;;; This file, part of CLSQL, is Copyright (c) 2002 by Kevin M. Rosenberg
 ;;;; and onShore Development Inc
@@ -57,6 +57,9 @@ specifies the database to operation on, defaulting to
   (error "(rename-attribute ~a ~a ~a ~a) is not implemented" table oldatt newname database))
 
 
+(defclass %sql-expression ()
+    ())
+
 ;; For SQL Identifiers of generic type
 (defclass sql-ident (%sql-expression)
   ((name
@@ -96,14 +99,6 @@ specifies the database to operation on, defaulting to
 (defun sequence-next (name &key (database *default-database*))
   (database-sequence-next name database))
 
-#+ignore
-(defclass sql-typecast-exp (sql-value-exp)
-  ()
-  (:documentation
-   "An SQL typecast expression.")
-  )
-
-#+ignore
 (defclass sql-value-exp (%sql-expression)
   ((modifier
     :initarg :modifier
@@ -115,22 +110,36 @@ specifies the database to operation on, defaulting to
    "An SQL value expression.")
   )
 
+(defclass sql-typecast-exp (sql-value-exp)
+  ()
+  (:documentation
+   "An SQL typecast expression.")
+  )
 (defvar +null-string+ "NULL")
 
 (defvar *sql-stream* nil
   "stream which accumulates SQL output")
 
-(defclass %sql-expression ()
-  ())
-
 (defmethod output-sql ((expr %sql-expression) &optional
                        (database *default-database*))
   (declare (ignore database))
   (write-string +null-string+ *sql-stream*))
 
-#+ignore
 (defmethod print-object ((self %sql-expression) stream)
   (print-unreadable-object
    (self stream :type t)
    (write-string (sql-output self) stream)))
 
+
+;; Methods for translating high-level table classes to low-level functions
+
+(defmethod database-list-attributes ((table sql-ident) database)
+  (database-list-attributes (string-downcase
+                            (symbol-name (slot-value table 'name)))
+                           database)
+  )
+
+(defmethod database-attribute-type (attribute (table sql-ident) database)
+  (database-attribute-type attribute (string-downcase
+                                     (symbol-name (slot-value table 'name)))
+                          database))