X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=sql%2Fexpressions.lisp;h=fd04d42ee8c09039e39f7ea35138e35f103ddce8;hb=4a30248613bca9864145306a00bb801cf5348017;hp=770bf379a69c1e74ecd9a51e0204d81107e2e6db;hpb=66ed75626689968e1faa7603a36954ef4364b2e2;p=clsql.git diff --git a/sql/expressions.lisp b/sql/expressions.lisp index 770bf37..fd04d42 100644 --- a/sql/expressions.lisp +++ b/sql/expressions.lisp @@ -1,8 +1,6 @@ ;;;; -*- Mode: LISP; Syntax: ANSI-Common-Lisp; Base: 10 -*- ;;;; ************************************************************************* ;;;; -;;;; $Id$ -;;;; ;;;; Classes defining SQL expressions and methods for formatting the ;;;; appropriate SQL commands. ;;;; @@ -249,12 +247,7 @@ ;; the next loop simply emits each sub-expression with the appropriate number of ;; parens and operators (flet ((trim (sub) - (string-trim '(#\space #\newline #\return #\tab - ;; sbcl, allegrocl, and clisp use #\no-break_space - ;; lispworks uses #\no-break-space - #-lispworks #\no-break_space - #+lispworks #\no-break-space - ) + (string-trim +whitespace-chars+ (with-output-to-string (*sql-stream*) (output-sql sub database))))) (let ((str-subs (loop for sub in sub-expressions @@ -987,6 +980,7 @@ uninclusive, and the args from that keyword to the end." (cons (symbol-name-default-case "UNSIGNED") "UNSIGNED") (cons (symbol-name-default-case "ZEROFILL") "ZEROFILL") (cons (symbol-name-default-case "AUTO-INCREMENT") "AUTO_INCREMENT") + (cons (symbol-name-default-case "DEFAULT") "DEFAULT") (cons (symbol-name-default-case "UNIQUE") "UNIQUE"))) (defmethod database-constraint-statement (constraint-list database) @@ -1006,6 +1000,9 @@ uninclusive, and the args from that keyword to the end." :message (format nil "unsupported column constraint '~A'" constraint)) (setq string (concatenate 'string string (cdr output)))) + (when (equal (symbol-name (car constraint)) "DEFAULT") + (setq constraint (cdr constraint)) + (setq string (concatenate 'string string " " (car constraint)))) (if (< 1 (length constraint)) (setq string (concatenate 'string string " "))))))))