r2060: *** empty log message ***
[clsql.git] / sql / usql.cl
index 85e7b7780a7404dba0893949d1fb109e19e0541e..432a80347ba1eddc4493c067297f424f836752bf 100644 (file)
@@ -8,7 +8,7 @@
 ;;;; Programmers:   Kevin M. Rosenberg and onShore Development Inc
 ;;;; Date Started:  Mar 2002
 ;;;;
-;;;; $Id: usql.cl,v 1.4 2002/04/06 22:27:41 kevin Exp $
+;;;; $Id: usql.cl,v 1.8 2002/05/19 16:26:06 kevin Exp $
 ;;;;
 ;;;; This file, part of CLSQL, is Copyright (c) 2002 by Kevin M. Rosenberg
 ;;;; and onShore Development Inc
@@ -74,22 +74,6 @@ specifies the database to operation on, defaulting to
     `(make-instance 'sql-ident :name ',name)))
 
 
-;; KMR -- change aref to more specific char
-(defun sql-escape (identifier)
-  (let* ((unescaped (etypecase identifier
-                      (symbol (symbol-name identifier))
-                      (string identifier)))
-         (escaped (make-string (length unescaped))))
-    (dotimes (i (length unescaped))
-      (setf (char escaped i)
-            (cond ((equal (char unescaped i) #\-)
-                   #\_)
-                  ;; ...
-                  (t
-                   (char unescaped i)))))
-    escaped))
-
-
 (defun create-sequence (name &key (database *default-database*))
   (database-create-sequence name database))
 
@@ -120,16 +104,30 @@ specifies the database to operation on, defaulting to
 (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*))
 
+(defmethod sql-output ((expr t))
+  (declare (ignore expr))  
+  "")
+
 (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))