chickadee » postgresql » copy-query*-map

copy-query-map PROC CONNECTION #!rest PARAMSprocedure
(copy-query*-map PROC CONNECTION [PARAMS] [format: FORMAT] [raw: RAW?])procedure

Maps COPY TO STDOUT output rows from QUERY to lists by calling PROC on each data row returned by the server. If the QUERY asked for binary data, the data supplied to PROC will be in blob form. Otherwise, the data will be provided as strings.

The starred and nonstarred version are analogous to query and query*.

(use postgresql)

(let ((conn (connect '((dbname . test)))))
   (copy-map (lambda (x) (apply + (map string->number (string-split x))))
             conn "COPY (SELECT 1, 100 UNION SELECT 2, 200) TO STDOUT"))
 => (101 202)