X-Git-Url: http://git.kpe.io/?p=clsql.git;a=blobdiff_plain;f=sql%2Fsyntax.lisp;h=a898dfb47baf7aeef3a4038ed49309244c5ef05a;hp=eb19060c4b6ad655eab3c542d1a1482aa03a7925;hb=e1b4e76f227e5896f1548789ca81112866feebb4;hpb=49c7cad4a3934e52eec94271a47dd3d8f38423d3 diff --git a/sql/syntax.lisp b/sql/syntax.lisp index eb19060..a898dfb 100644 --- a/sql/syntax.lisp +++ b/sql/syntax.lisp @@ -88,13 +88,18 @@ reader syntax is disabled." (defun sql-reader-open (stream char) (declare (ignore char)) (let ((sqllist (read-delimited-list #\] stream t))) - (cond ((string= (write-to-string (car sqllist)) "||") - (cons (sql-operator 'concat-op) (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))))) + (handler-case + (cond ((string= (write-to-string (car sqllist)) "||") + (cons (sql-operator 'concat-op) (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))) + (sql-user-error (c) + (error 'sql-user-error + :message (format nil "Error ~A occured while attempting to parse '~A' at file position ~A" + (sql-user-error-message c) sqllist (file-position stream))))))) (defun disable-sql-close-syntax () "Internal function that disables the close syntax when leaving