X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=sql%2Fusql.cl;h=d2a53eccd64868f36136ecd659493182ee37bbba;hb=865598033baf78cf3ba9da36a031a85eb18849e0;hp=a22b108c12d184688138846d84b038832448e1aa;hpb=b4f641e256405778029888b10727095ce35055e0;p=clsql.git diff --git a/sql/usql.cl b/sql/usql.cl index a22b108..d2a53ec 100644 --- a/sql/usql.cl +++ b/sql/usql.cl @@ -8,7 +8,7 @@ ;;;; Programmers: Kevin M. Rosenberg and onShore Development Inc ;;;; Date Started: Mar 2002 ;;;; -;;;; $Id: usql.cl,v 1.3 2002/04/06 19:54:15 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,12 +99,6 @@ specifies the database to operation on, defaulting to (defun sequence-next (name &key (database *default-database*)) (database-sequence-next name database)) -(defclass sql-typecast-exp (sql-value-exp) - () - (:documentation - "An SQL typecast expression.") - ) - (defclass sql-value-exp (%sql-expression) ((modifier :initarg :modifier @@ -113,14 +110,16 @@ 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)) @@ -131,3 +130,16 @@ specifies the database to operation on, defaulting to (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))