                       (cl-ecase kind
                         (:identifier (emacsql-escape thing))
                         (:value (emacsql-escape-value thing))
+                        (:vector (emacsql-escape-vector thing))
                         (:auto (if (symbolp thing)
                                    (emacsql-escape thing)
                                  (emacsql-escape-value thing)))))))))

          ((numberp value) (prin1-to-string value))
          ((emacsql-escape (prin1-to-string value) t)))))

(defun emacsql-insert (conn table &rest rows)
  "Insert ROWS into TABLE.
Each row must be a sequence of values to store into TABLE.

  (emacsql-insert db :table '(\"Chris\" 0) [\"Jeff\" 1])"
  (emacsql-with-errors conn
    (emacsql--send
     conn
     (format "INSERT INTO %s VALUES (%s);" (emacsql-escape table)
             (mapconcat (lambda (row)
                          (mapconcat #'emacsql-escape-value row ", "))
                        rows "), (")))))

;; SQL Expansion:


  (if (emacsql-var thing)
      (prog1 "%s" (push (cons (emacsql-var thing) kind) emacsql--vars))
    (cl-ecase kind
      ((:identifier :value :vector) (emacsql-escape-format thing kind))
      (:auto (emacsql-escape-format
              thing (if (symbolp thing) :identifier :value))))))

