From: Russ Tyndall Date: Sun, 12 Jun 2011 15:58:39 +0000 (-0400) Subject: changed generate-sql-reference to read [foo bar] and [foo.bar] as the same attribute... X-Git-Tag: v6.0.0~4^2~21 X-Git-Url: http://git.kpe.io/?p=clsql.git;a=commitdiff_plain;h=534a26be238d2e54737488acfa96456905e57646 changed generate-sql-reference to read [foo bar] and [foo.bar] as the same attribute expression --- diff --git a/sql/syntax.lisp b/sql/syntax.lisp index 4ec07f5..68fa8aa 100644 --- a/sql/syntax.lisp +++ b/sql/syntax.lisp @@ -110,9 +110,17 @@ reader syntax is disabled." (defun generate-sql-reference (&rest arglist) (cond ((= (length arglist) 1) ; string, table or attribute - (if (stringp (car arglist)) - (sql-expression :string (car arglist)) - (sql-expression :attribute (car arglist)))) + (let ((arg (first arglist))) + (typecase arg + (string (sql-expression :string arg)) + (symbol ;; handle . separated names + (let* ((sn (symbol-name arg)) + (idx (position #\. sn))) + (cond + (idx (sql-expression :table (intern (subseq sn 0 idx)) + :attribute (intern (subseq sn (+ idx 1))) )) + (T (sql-expression :attribute arg)))) + )))) ((<= 2 (length arglist)) (let ((sqltype (when (keywordp (caddr arglist)) (caddr arglist) nil))) (cond