;;;; 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.7 2002/05/19 16:05:23 kevin Exp $
;;;;
;;;; This file, part of CLSQL, is Copyright (c) 2002 by Kevin M. Rosenberg
;;;; and onShore Development Inc
`(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))
(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))
(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))