                           (recur 0)
                           (combine (emacsql-expand subsql :sub)))))))))))))
 
+(defun emacsql--idents (idents)
+  "Read in a vector of IDENTS identifiers, or just an single identifier."
+  (emacsql-with-vars ""
+    (cl-etypecase idents
+      (symbol (var idents :identifier))
+      (vector (mapconcat (lambda (e) (combine (emacsql--expr e)))
+                         idents ", ")))))
+
 (defun emacsql-init-font-lock ()
   "Add font-lock highlighting for `emacsql-defexpander'."
   (font-lock-add-keywords

(emacsql-defexpander :set (set)
  (emacsql-with-vars "SET "
    (cl-etypecase set
      (vector (mapconcat (lambda (s) (combine (emacsql--expr s))) set ", "))
      (list (combine (emacsql--expr set))))))

(emacsql-defexpander :union ()

      (symbol (var table :identifier))
      (list (cl-destructuring-bind (name columns) table
              (format "%s (%s)" (var name :identifier)
                      (combine (emacsql--idents columns))))))))

(emacsql-defexpander :where (expr)
  (emacsql-with-vars "WHERE "
