    If there are still retries to perform, returns false."
   [remaining :- s/Int
    current :- s/Int
-   exception]
+   ^SQLException exception]
   (cond
    (zero? remaining)
    (do

(ns puppetlabs.puppetdb.jdbc
  "Database utilities"
  (:import (com.zaxxer.hikari HikariDataSource HikariConfig)
           (java.util.concurrent TimeUnit))
  (:require [clojure.java.jdbc :as sql]
            [clojure.string :as string]

  ([convert x]
   (cond
     (kitchensink/array? x) (convert x)
     (isa? (class x) java.sql.Array) (convert (.getArray ^java.sql.Array x))
     :else x)))

(defn call-with-query-rows
