diff --git a/project.clj b/project.clj index 1dc4a42..dec6256 100644 --- a/project.clj +++ b/project.clj @@ -1,4 +1,4 @@ -(defproject yesql "0.6.0" +(defproject org.batch/yesql "0.6.2" :description "A Clojure library for using SQL" :url "https://github.com/krisajenkins/yesql" :license {:name "Eclipse Public License" @@ -10,9 +10,15 @@ :scm {:name "git" :url "https://github.com/krisajenkins/yesql"} :profiles {:dev {:dependencies [[expectations "2.1.3" :exclusions [org.clojure/clojure]] - [org.apache.derby/derby "10.11.1.1"]] - :plugins [[lein-autoexpect "1.4.0"] - [lein-expectations "0.0.8"]]} + [org.apache.derby/derby "10.11.1.1"] + [environ "1.1.0"] + ] + :plugins [[lein-autoexpect "1.4.0" :exclusions [org.clojure/tools.namespace]] + [lein-expectations "0.0.8"] + [lein-environ "1.1.0"] + ] + :repl-options { :init-ns yesql.core} + } :1.5 {:dependencies [[org.clojure/clojure "1.5.1"]]} :1.6 {:dependencies [[org.clojure/clojure "1.6.0"]]} :1.7 {:dependencies [[org.clojure/clojure "1.7.0"]]} diff --git a/src/yesql/generate.clj b/src/yesql/generate.clj index 341b30b..11136c1 100644 --- a/src/yesql/generate.clj +++ b/src/yesql/generate.clj @@ -5,7 +5,8 @@ [yesql.util :refer [create-root-var]] [yesql.types :refer [map->Query]] [yesql.statement-parser :refer [tokenize insert-table-name-regex]]) - (:import [yesql.types Query])) + (:import [yesql.types Query]) + (import java.lang.IllegalArgumentException)) (def in-list-parameter? "Check if a type triggers IN-list expansion." @@ -39,17 +40,17 @@ (-> (keys initial-args) set (disj :?))) actual-positional-count (count (:? initial-args)) missing-keys (set/difference expected-keys actual-keys)] - (assert (empty? missing-keys) - (format "Query argument mismatch.\nExpected keys: %s\nActual keys: %s\nMissing keys: %s" + (if-not (empty? missing-keys) + (throw (IllegalArgumentException. (format "Query argument mismatch.\nExpected keys: %s\nActual keys: %s\nMissing keys: %s" (str (seq expected-keys)) (str (seq actual-keys)) - (str (seq missing-keys)))) - (assert (= expected-positional-count actual-positional-count) - (format (join "\n" + (str (seq missing-keys)))))) + (if-not (= expected-positional-count actual-positional-count) + (throw (IllegalArgumentException. (format (join "\n" ["Query argument mismatch." "Expected %d positional parameters. Got %d." "Supply positional parameters as {:? [...]}"]) - expected-positional-count actual-positional-count)))) + expected-positional-count actual-positional-count)))))) (defn rewrite-query-for-jdbc [tokens initial-args]