The function sql
generates SQL from a set of expressions given by args . Each argument to sql
is translated into SQL and then the args are concatenated with a single space between each pair. The rules for translation into SQL, based on the type of each individual argument x
, are as follows:
string => (format nil "'~A'" x)
nil => "NULL"
symbol => (symbol-name x)
number => (princ-to-string x)
list => (format nil "(~{~A~^,~})" (mapcar #'sql x))
vector => (format nil "~{~A~^,~}" (map 'list #'sql x))
sql-expression => x