(declare (ignore char))
(let ((sqllist (read-delimited-list #\] stream t)))
(cond ((string= (write-to-string (car sqllist)) "||")
- (cons (sql-operator 'concat) (cdr sqllist)))
+ (cons (sql-operator 'concat-op) (cdr sqllist)))
((and (= (length sqllist) 1) (eql (car sqllist) '*))
(apply #'generate-sql-reference sqllist))
((sql-operator (car sqllist))
(sql-expression :string (car arglist))
(sql-expression :attribute (car arglist))))
((<= 2 (length arglist))
- (let ((sqltype (if (keywordp (caddr arglist))
- (caddr arglist) nil))
- (sqlparam (if (keywordp (caddr arglist))
- (caddr arglist))))
- (cond
+ (let ((sqltype (when (keywordp (caddr arglist)) (caddr arglist) nil)))
+ (cond
((stringp (cadr arglist))
(sql-expression :table (car arglist)
:alias (cadr arglist)
:type sqltype))
((keywordp (cadr arglist))
(sql-expression :attribute (car arglist)
- :type (cadr arglist)
- :params sqlparam))
+ :type (cadr arglist)))
(t
(sql-expression :attribute (cadr arglist)
:table (car arglist)
- :params sqlparam
:type sqltype)))))
(t
- (error 'clsql-sql-syntax-error :reason "bad expression syntax"))))
+ (error 'sql-user-error :message "bad expression syntax"))))
;; Exported functions for dealing with SQL syntax
concatenated with a single space delimiting each expression."
(format nil "~{~A~^ ~}" (mapcar #'sql-output args)))
-(defun sql-expression (&key string table alias attribute type params)
+(defun sql-expression (&key string table alias attribute type)
"Returns an SQL expression constructed from the supplied arguments
which may be combined as follows: ATTRIBUTE and TYPE; ATTRIBUTE;
ALIAS or TABLE and ATTRIBUTE and TYPE; ALIAS or TABLE and
(attribute
(make-instance 'sql-ident-attribute :name attribute
:qualifier (or table alias)
- :type type
- :params params))
+ :type type))
((and table (not attribute))
(make-instance 'sql-ident-table :name table
:table-alias alias))))