omit for .cljs

Signed-off-by: Sean Corfield <sean@corfield.org>
This commit is contained in:
Sean Corfield 2024-01-06 22:39:25 -08:00
parent 1291b328d0
commit 35f4c674e9
No known key found for this signature in database
2 changed files with 23 additions and 21 deletions

View file

@ -3,7 +3,7 @@
* 2.5.next in progress
* Address [#520](https://github.com/seancorfield/honeysql/issues/520) by expanding how `:inline` works, to support a sequence of arguments.
* Fix [#518](https://github.com/seancorfield/honeysql/issues/518) by moving temporal clause before alias.
* Address [#495](https://github.com/seancorfield/honeysql/issues/495) by adding (experimental) `format&` and `formatv` macros -- purely for discussion: may be removed in a subsequent release!
* Address [#495](https://github.com/seancorfield/honeysql/issues/495) by adding (experimental) `format&` and `formatv` macros (`.clj` only!) -- purely for discussion: may be removed in a subsequent release!
* Implemented `CREATE INDEX` [#348](https://github.com/seancorfield/honeysql/issues/348) via PR [#517](https://github.com/seancorfield/honeysql/pull/517) [@dancek](https://github.com/dancek).
* 2.5.1103 -- 2023-12-03

View file

@ -29,7 +29,7 @@
it uppercase and replaces - with space). "
(:refer-clojure :exclude [format])
(:require [clojure.string :as str]
[clojure.template]
#?(:clj [clojure.template])
[honey.sql.protocols :as p]))
;; default formatting for known clauses
@ -2101,32 +2101,34 @@
[dsl & params]
(format dsl {:params (zipmap (map (comp keyword str inc) (range)) params)}))
(defmacro format&
"Experimental implementation of https://github.com/seancorfield/honeysql/issues/495
#?(:clj
(defmacro format&
"Experimental implementation of https://github.com/seancorfield/honeysql/issues/495
Implicitly treats any locally bound symbol as a variable to be substituted
in the symbolic SQL expression.
Implicitly treats any locally bound symbol as a variable to be substituted
in the symbolic SQL expression.
(let [x 42 y 13]
(format& '{select * from table where (= x y)}))
(let [x 42 y 13]
(format& '{select * from table where (= x y)}))
=> SELECT * FROM table WHERE (42 = 13)"
[dsl & opts]
(let [syms (vec (keys &env))]
`(honey.sql/format (clojure.template/apply-template '~syms ~dsl ~syms) ~@opts)))
=> SELECT * FROM table WHERE (42 = 13)"
[dsl & opts]
(let [syms (vec (keys &env))]
`(honey.sql/format (clojure.template/apply-template '~syms ~dsl ~syms) ~@opts))))
(defmacro formatv
"Experimental implementation of https://github.com/seancorfield/honeysql/issues/495
#?(:clj
(defmacro formatv
"Experimental implementation of https://github.com/seancorfield/honeysql/issues/495
Treats the specified vector of symbols as variables to be substituted
in the symbolic SQL expression.
Treats the specified vector of symbols as variables to be substituted
in the symbolic SQL expression.
(let [x 42 y 13]
(formatv [x] '{select * from table where (= x y)}))
(let [x 42 y 13]
(formatv [x] '{select * from table where (= x y)}))
=> SELECT * FROM table WHERE (42 = y)"
[syms sql & opts]
`(honey.sql/format (clojure.template/apply-template '~syms ~sql ~syms) ~@opts))
=> SELECT * FROM table WHERE (42 = y)"
[syms sql & opts]
`(honey.sql/format (clojure.template/apply-template '~syms ~sql ~syms) ~@opts)))
(defn set-dialect!
"Set the default dialect for formatting.