X-Git-Url: http://git.kpe.io/?p=clsql.git;a=blobdiff_plain;f=sql%2Fsyntax.lisp;h=6d771da016dad928c3db849a92f7f637e60f4c84;hp=9fca44542083ca0f1721fc46c13bb85577d18d16;hb=155c60b5195d618ef93541699694d57a21be3246;hpb=b43e20a168dae4ae9d176ebc0fbf18ea6e4517dc diff --git a/sql/syntax.lisp b/sql/syntax.lisp index 9fca445..6d771da 100644 --- a/sql/syntax.lisp +++ b/sql/syntax.lisp @@ -14,7 +14,7 @@ ;;;; (http://opensource.franz.com/preamble.html), also known as the LLGPL. ;;;; ************************************************************************* -(in-package #:clsql) +(in-package #:clsql-sys) (defvar *original-reader-enter* nil) @@ -84,9 +84,13 @@ syntax is disabled." (defun sql-reader-open (stream char) (declare (ignore char)) (let ((sqllist (read-delimited-list #\] stream t))) - (if (sql-operator (car sqllist)) - (cons (sql-operator (car sqllist)) (cdr sqllist)) - (apply #'generate-sql-reference sqllist)))) + (cond ((string= (write-to-string (car sqllist)) "||") + (cons (sql-operator 'concat) (cdr sqllist))) + ((and (= (length sqllist) 1) (eql (car sqllist) '*)) + (apply #'generate-sql-reference sqllist)) + ((sql-operator (car sqllist)) + (cons (sql-operator (car sqllist)) (cdr sqllist))) + (t (apply #'generate-sql-reference sqllist))))) ;; Internal function that disables the close syntax when leaving sql context. (defun disable-sql-close-syntax ()