Treat null ResultSetMetaData as having no columns

This commit is contained in:
Sean Corfield 2020-08-20 11:59:07 -07:00
parent e9c75a7afd
commit 9acc198591
2 changed files with 7 additions and 4 deletions

View file

@ -2,6 +2,9 @@
Only accretive/fixative changes will be made from now on. Only accretive/fixative changes will be made from now on.
Changes made on **develop** since the 1.1.582 release:
* If `ResultSet.getMetaData()` returns `null`, we assume the column count is zero, i.e., an empty result set.
## Stable Builds ## Stable Builds
* 2020-08-05 -- 1.1.582 * 2020-08-05 -- 1.1.582

View file

@ -40,13 +40,13 @@
(if-let [q (not-empty (.getTableName rsmeta i))] (if-let [q (not-empty (.getTableName rsmeta i))]
(keyword q (.getColumnLabel rsmeta i)) (keyword q (.getColumnLabel rsmeta i))
(keyword (.getColumnLabel rsmeta i)))) (keyword (.getColumnLabel rsmeta i))))
(range 1 (inc (.getColumnCount rsmeta))))) (range 1 (inc (try (.getColumnCount rsmeta) (catch Throwable _ 0))))))
(defn get-unqualified-column-names (defn get-unqualified-column-names
"Given `ResultSetMetaData`, return a vector of unqualified column names." "Given `ResultSetMetaData`, return a vector of unqualified column names."
[^ResultSetMetaData rsmeta _] [^ResultSetMetaData rsmeta _]
(mapv (fn [^Integer i] (keyword (.getColumnLabel rsmeta i))) (mapv (fn [^Integer i] (keyword (.getColumnLabel rsmeta i)))
(range 1 (inc (.getColumnCount rsmeta))))) (range 1 (inc (try (.getColumnCount rsmeta) (catch Throwable _ 0))))))
(defn get-modified-column-names (defn get-modified-column-names
"Given `ResultSetMetaData`, return a vector of modified column names, each "Given `ResultSetMetaData`, return a vector of modified column names, each
@ -62,7 +62,7 @@
(if-let [q (some-> (.getTableName rsmeta i) (qf) (not-empty))] (if-let [q (some-> (.getTableName rsmeta i) (qf) (not-empty))]
(keyword q (-> (.getColumnLabel rsmeta i) (lf))) (keyword q (-> (.getColumnLabel rsmeta i) (lf)))
(keyword (-> (.getColumnLabel rsmeta i) (lf))))) (keyword (-> (.getColumnLabel rsmeta i) (lf)))))
(range 1 (inc (.getColumnCount rsmeta)))))) (range 1 (inc (try (.getColumnCount rsmeta) (catch Throwable _ 0)))))))
(defn get-unqualified-modified-column-names (defn get-unqualified-modified-column-names
"Given `ResultSetMetaData`, return a vector of unqualified modified column "Given `ResultSetMetaData`, return a vector of unqualified modified column
@ -73,7 +73,7 @@
(let [lf (:label-fn opts)] (let [lf (:label-fn opts)]
(assert lf ":label-fn is required") (assert lf ":label-fn is required")
(mapv (fn [^Integer i] (keyword (lf (.getColumnLabel rsmeta i)))) (mapv (fn [^Integer i] (keyword (lf (.getColumnLabel rsmeta i))))
(range 1 (inc (.getColumnCount rsmeta)))))) (range 1 (inc (try (.getColumnCount rsmeta) (catch Throwable _ 0)))))))
(defn- lower-case (defn- lower-case
"Converts a string to lower case in the US locale to avoid problems in "Converts a string to lower case in the US locale to avoid problems in