                                 (fn [^ResultSet result-set ^long col-index]
                                   (when-not (<= 1 col-index n)
                                     (i/expected s col-index))
-                                  (iresult/read-column-value result-set col-index))))}
+                                  (iresult/read-column-value result-set col-index))))
+         sql-name           (gensym "sql-name-")}
     :as options}]
   (i/expected vector? "vector of SQL template tokens" sql-template)
   (i/expected vector? "vector of result column types" result-types)

  [sql-template result-types
   {:keys [make-param-setter
           make-row-maker
           make-column-reader]
    :or {make-param-setter  (fn [param-keys param-types]
                              (eval `(fn [^PreparedStatement prepared-stmt# params#]
                                       (p/lay-params prepared-stmt# ~param-keys ~param-types params#))))

                               (keyword? token) [token :nil]
                               (vector? token)  (let [[param-key param-type] token]
                                                  (i/expected keyword? "param key (keyword)" param-key)
                                                  (when-not (contains? t/all-typemap param-type)
                                                    (i/expected-param-type param-type))
                                                  token)
                               :otherwise       (i/expected "string, param key or key/type vector" token)))
                       sql-template)]
