Add NOT operator, improve NULL support

This commit is contained in:
Sean Corfield 2020-09-28 12:12:10 -07:00
parent 804305d3c5
commit ad49c4e386

View file

@ -480,7 +480,11 @@
:interval :interval
(fn [[n units]] (fn [[n units]]
(let [[sql & params] (format-expr n)] (let [[sql & params] (format-expr n)]
(into [(str "INTERVAL " sql " " (sql-kw units))] params)))}) (into [(str "INTERVAL " sql " " (sql-kw units))] params)))
:not
(fn [[x]]
(let [[sql & params] (format-expr x)]
(into [(str "NOT " sql)] params)))})
(defn format-expr [x & [{:keys [nested?] :as opts}]] (defn format-expr [x & [{:keys [nested?] :as opts}]]
(cond (or (keyword? x) (symbol? x)) (cond (or (keyword? x) (symbol? x))
@ -551,6 +555,9 @@
(or (true? x) (false? x)) ; because (boolean? x) requires Clojure 1.9+ (or (true? x) (false? x)) ; because (boolean? x) requires Clojure 1.9+
[(upper-case (str x))] [(upper-case (str x))]
(nil? x)
["NULL"]
:else :else
["?" x])) ["?" x]))