|
5 | 5 | [yesql.util :refer [create-root-var]] |
6 | 6 | [yesql.types :refer [map->Query]] |
7 | 7 | [yesql.statement-parser :refer [tokenize insert-table-name-regex]]) |
8 | | - (:import [yesql.types Query])) |
| 8 | + (:import [yesql.types Query]) |
| 9 | + (import java.lang.IllegalArgumentException)) |
9 | 10 |
|
10 | 11 | (def in-list-parameter? |
11 | 12 | "Check if a type triggers IN-list expansion." |
|
39 | 40 | (-> (keys initial-args) set (disj :?))) |
40 | 41 | actual-positional-count (count (:? initial-args)) |
41 | 42 | missing-keys (set/difference expected-keys actual-keys)] |
42 | | - (assert (empty? missing-keys) |
43 | | - (format "Query argument mismatch.\nExpected keys: %s\nActual keys: %s\nMissing keys: %s" |
| 43 | + (if-not (empty? missing-keys) |
| 44 | + (throw (IllegalArgumentException. (format "Query argument mismatch.\nExpected keys: %s\nActual keys: %s\nMissing keys: %s" |
44 | 45 | (str (seq expected-keys)) |
45 | 46 | (str (seq actual-keys)) |
46 | | - (str (seq missing-keys)))) |
47 | | - (assert (= expected-positional-count actual-positional-count) |
48 | | - (format (join "\n" |
| 47 | + (str (seq missing-keys)))))) |
| 48 | + (if-not (= expected-positional-count actual-positional-count) |
| 49 | + (throw (IllegalArgumentException. (format (join "\n" |
49 | 50 | ["Query argument mismatch." |
50 | 51 | "Expected %d positional parameters. Got %d." |
51 | 52 | "Supply positional parameters as {:? [...]}"]) |
52 | | - expected-positional-count actual-positional-count)))) |
| 53 | + expected-positional-count actual-positional-count)))))) |
53 | 54 |
|
54 | 55 | (defn rewrite-query-for-jdbc |
55 | 56 | [tokens initial-args] |
|
0 commit comments