2.0.0-rc2 (for testing; 2021-05-10)
ON
/USING
to be optional and not dropping parameters on the floor.%
function call syntax respect :quoted true
and/or :dialect
options, and also allowing for qualified column names. (PR from @lognush):quoted-snake true
option to force conversion from kebab-case to snake_case when :quoted true
or a :dialect
is specified to format
.test-runner
.2.0.0-rc1 (for testing; 2021-05-06)
insert-into
supports merging into another statement in all cases.:on-conflict
.:checking
mode. Currently only detects potential problems with IN
clauses.2.0.0-beta2 (for testing; 2021-04-13)
WHERE
/HAVING
merge logic. Important bug fix!FILTER
, WITHIN GROUP
, and ORDER BY
(as an expression), from nilenso/honeysql-postgres 0.4.112. These are Special Syntax and there are also helpers for filter
and within-group
-- so be careful about referring in all of honey.sql.helpers
since it will now shadow clojure.core/filter
(it already shadows for
, group-by
, into
, partition-by
, set
, and update
).join-by
(and correcting the helper docstring).2.0.0-beta1 (for testing; 2021-04-09)
where
/having
is broken in Beta 1!register-clause!
is idempotent.:set
clauses (just like we do with :insert
columns). Note that you can still use explicit dotted names if you want table qualification.;
(to avoid SQL injection risks).:raw
as a clause. There is no helper function equivalent (because it would be ambiguous whether you meant a function form -- [:raw ..]
-- or a clause form -- {:raw ..}
; and for the same reason, there is no nest
helper function since that also works as a clause and as a function/special syntax).2.0.0-alpha3 (for early testing; 2021-03-13)
com.github.seancorfield/honeysql
(although new versions will continue to be deployed to seancorfield/honeysql
for a while -- see the Clojars Verified Group Names policy).CREATE
/DROP
statements in general, including columns, TABLESPACE
, CASCADE
, WITH [NO] DATA
, etc.CREATE TABLE .. AS ..
.ON DUPLICATE KEY UPDATE
.CREATE
/DROP
/REFRESH
on MATERIALIZED VIEW
.SELECT .. INTO ..
and SELECT .. BULK COLLECT INTO ..
.SELECT TOP
and OFFSET
/FETCH
.LATERAL
(as special syntax, with a helper).where
behavior with recent 1.x changes (porting #283 to 2.x).:escape
as special syntax for regular expression patterns.:join-by
/join-by
so that you can have multiple JOIN
's in a specific order.2.0.0-alpha2 (for early testing)
honey.sql.helpers
.2.0.0-alpha1 (for early testing)
honey.sql
-- this is the primary API via the format
function as well as the various extension points.honey.sql.helpers
-- provides a helper function for every piece of the DSL that is supported out-of-the-box.com.github.seancorfield/honeysql
so it can be added to a project that already uses HoneySQL 1.x without any conflicts, making it easier to migrate piecemeal from 1.x to 2.x.1.0.461 -- 2021-02-22
merge-where
(and merge-having
) behavior. #282 via #283 (@camsaul)1.0.444 -- 2020-05-29
cross-join
/ merge-cross-join
/ :cross-join
. (@dcj)deps.edn
instead of Leiningen. Also add CI vi both CircleCI and GitHub Actions.next.jdbc
everywhere clojure.java.jdbc
was mentioned.0.9.10 -- 2020-03-06
except
. (@ted-coakley-otm)false
as well. (@ted-coakley-otm)deps.edn
, also multi-version clj testing and new readme
testing.0.9.9 -- 2020-03-02
0.9.8 -- 2019-09-07
honeysql.format/*namespace-as-table?*
and :namespace-as-table?
option to format
. (@seancorfield)0.9.7 -- 2019-09-07
honeysql.format/*allow-namespaced-names?*
to restore the previous behavior. A :allow-namespaced-names?
option has been adding to format
to set this more easily. (@seancorfield)set0
(:set0
) and set1
(:set1
) variants of sset
(:set
) to support different placements of SET
(before FROM
or after JOIN
respectively) that different databases require. See also #200. (@seancorfield)composite
/:composite
constructor for values. (@seancorfield)columns
/merge-columns
and throwing an exception if a single collection is supplied (instead of varargs). (@seancorfield)truncate
support. (@seancorfield)select
in the README that column names can be keywords or symbols but not strings. (@seancorfield)0.9.6 -- 2019-09-24
nil
conditions out of where
/merge-where
. Fix #246. (@seancorfield)0.9.5 -- 2019-09-07
format-predicate
now accepts parameterizer
as a named argument (default :jdbc
) to match format
. PR #234. (@glittershark)0.9.4 -- 2018-10-01
#sql/inline nil
should produce NULL
. Fix #221. (@seancorfield)#sql/inline :kw
should produce "kw"
. Fix #224 via PR #225. (@vincent-dm) Note: this introduces a new protocol, Inlinable
, which controls inline value rendering, and changes the behavior of #sql/inline :foo/bar
to produce just "bar"
(where it was probably invalid SQL before).[:col :alias]
are now checked to have exactly two elements. Fix #226. (@seancorfield)where
and merge-where
to be given no predicates. Fix #228 and PR #230. (@seancorfield, @arichiardi)as
alias is no longer split during quoting. Fix #221 and PR #231. (@gws)Not all of these releases were tagged on GitHub and none of them have release notes on GitHub. Releases prior to 0.5.0 were not documented (although some were tagged on GitHub).
0.9.3
#sql/raw
. Fix #219. (@seancorfield)raw
and inline
to the README. Fix #213. (@seancorfield)register-parameterizer
for custom parameterizers. PR #209. (@juvenn)set
priority to after join
. Fix #200. (@michaelblume)join ... using( ... )
. Fix #188, PR #201. (@vincent-dm)run-tests.sh
to make it easier to run the same tests manually that run on Travis-CI. (@seancorfield)deps.edn
to support clj
/tools.deps.alpha
. (@seancorfield)#sql/inline
data reader. (@seancorfield)0.9.2
nil
:and
arguments for where. Fix #203. (@michaelblume)select
formatting. Fix #198. (@visibletrap)INSERT INTO ... QUERY
. (@emidln):parameterizer
:none
for skipping next.jdbc
or clojure.java.jdbc
parameter generation. (@arichiardi)0.9.1
0.9.0 --
:with
and :with-recursive
clauses (@enaeher)0.8.2
0.8.1
0.8.0
0.7.0
0.6.3
0.6.2
0.6.1
0.6.0
0.5.3
0.5.2
0.5.1
0.5.0
Can you improve this documentation?Edit on GitHub
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close