Details
-
Type:
Defect
-
Status:
Resolved
-
Priority:
Major
-
Resolution: Completed
-
Affects Version/s: None
-
Fix Version/s: None
-
Component/s: None
-
Labels:
-
Patch:Code and Test
Description
HSQLDB returns an empty ResultSet when using (.getGeneratedKeys stmt)
and no keys are generated. So this Exception is thrown for each record
without generated keys.
While this Exception is caught in do-prepared-return-keys, this can lead to a huge overhead caused by the JVM exception handling. I did a performance test.
Before Patch:
clojure.java.test-jdbc> (time (sql/with-connection hsqldb-db (count (apply sql/insert-records :dummy (map #(hash-map :name (str %) :id %) (range 10000)))))) "Elapsed time: 3429.346743 msecs" 10000
After Patch:
clojure.java.test-jdbc> (time (sql/with-connection hsqldb-db (count (apply sql/insert-records :dummy (map #(hash-map :name (str %) :id %) (range 10000)))))) "Elapsed time: 1397.444753 msecs"
Thanx for the patch!