X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=sql%2Fusql.cl;h=d2a53eccd64868f36136ecd659493182ee37bbba;hb=865598033baf78cf3ba9da36a031a85eb18849e0;hp=5afb663c96cb859c81229e50dbf3c0901beef545;hpb=2359c743fa126e65514454a7996e025f139a8241;p=clsql.git diff --git a/sql/usql.cl b/sql/usql.cl index 5afb663..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.1 2002/04/01 05:27:55 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)) - -(defclass sql-typecast-exp (sql-value-exp) - () - (:documentation - "An SQL typecast expression.") - ) - - (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))