`(make-instance 'sql-ident-table :name ',name :table-alias ',alias)))
(defmethod output-sql ((expr sql-ident-table) database)
- (with-slots (name alias)
- expr
- (if (null alias)
- (write-string (sql-escape (convert-to-db-default-case (symbol-name name) database)) *sql-stream*)
- (progn
- (write-string (sql-escape (convert-to-db-default-case (symbol-name name) database)) *sql-stream*)
- (write-char #\Space *sql-stream*)
- (format *sql-stream* "~s" alias))))
+ (with-slots (name alias) expr
+ (let ((namestr (if (symbolp name)
+ (symbol-name name)
+ name)))
+ (if (null alias)
+ (write-string
+ (sql-escape (convert-to-db-default-case namestr database))
+ *sql-stream*)
+ (progn
+ (write-string
+ (sql-escape (convert-to-db-default-case namestr database))
+ *sql-stream*)
+ (write-char #\Space *sql-stream*)
+ (format *sql-stream* "~s" alias)))))
t)
(defmethod output-sql-hash-key ((expr sql-ident-table) database)
stmt
(write-string "DELETE FROM " *sql-stream*)
(typecase from
- (symbol (write-string (sql-escape from) *sql-stream*))
+ ((or symbol string) (write-string (sql-escape from) *sql-stream*))
(t (output-sql from database)))
(when where
(write-string " WHERE " *sql-stream*)
(defmethod database-output-sql ((str string) database)
(declare (optimize (speed 3) (safety 1)
- #+cmu (extensions:inhibit-warnings 3))
- (simple-string str))
+ #+cmu (extensions:inhibit-warnings 3)))
(let ((len (length str)))
(declare (type fixnum len))
(cond ((zerop len)
(concatenate 'string "'" str "'"))
(t
(let ((buf (make-string (+ (* len 2) 2) :initial-element #\')))
- (do* ((i 0 (incf i))
+ (declare (simple-string buf))
+ (do* ((i 0 (incf i))
(j 1 (incf j)))
((= i len) (subseq buf 0 (1+ j)))
(declare (type fixnum i j))
(declare (ignore database))
(db-timestring self))
+(defmethod database-output-sql ((self date) database)
+ (declare (ignore database))
+ (db-datestring self))
+
(defmethod database-output-sql ((self duration) database)
(declare (ignore database))
(format nil "'~a'" (duration-timestring self)))