tolitius / inquery

vanilla SQL with params for Clojure/Script
17 stars 5 forks source link

inquery.core/with-params escapes empty strings even when :esc :don't is set #2

Closed danielmiladinov closed 1 year ago

danielmiladinov commented 2 years ago

Is this a bug?

(q/with-params "SELECT :don't-escape-me-bro foo FROM bar"
               {:don't-escape-me-bro ""}
               {:esc :don't})
=> "SELECT '' foo FROM bar"

I would have expected it to return

=> "SELECT  foo FROM bar"
tolitius commented 2 years ago

{:esc :don't} does not escape an empty string and just produces an empty string

if you are looking for an empty string "as is", use :as:

=> (q/with-params "SELECT :don't-escape-me-bro foo FROM bar"
                  {:don't-escape-me-bro {:as ""}})
;; "SELECT  foo FROM bar"
user=> (q/with-params "SELECT :don't-escape-me-bro foo FROM bar"
                  {:don't-escape-me-bro {:as "boo"}})
;; "SELECT boo foo FROM bar"

docs / tests