r9395: 18 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
[clsql.git] / sql / syntax.lisp
index 5a713d0f20d6a4c6e75b41dbfafae8212e1abe5f..6d771da016dad928c3db849a92f7f637e60f4c84 100644 (file)
@@ -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 ()