Releases: seancorfield/honeysql
Releases · seancorfield/honeysql
2.6.1230
- Fix #553 by adding
:not-between
as special syntax via PR #554 @plooney81 - Fix #552 by changing the assert-on-load behavior into an explicit test in the test suite.
- Fix #551 by supporting multiple
WINDOW
clauses. - Fix #549 by using
:bb
conditionals to support Babashka (and still support Clojure 1.9.0), and add testing against Babashka so it is fully-supported as a target via PR #550 @borkdude - Address #532 by adding support for XTDB SQL extensions
ERASE
,EXCLUDE
,OBJECT
,RECORD
,RECORDS
, andRENAME
, along with inline hash maps (as records) and:get-in
for object navigation, and starting to write tests for XTDB compatibility.
2.6.1203
2.6.1196
- Address #547 by adding examples of conditional SQL building with the helpers to the README and the
honey.sql.helpers
ns docstring. - Performance optimizations via PRs #545 and #546 @alexander-yakushev.
- Address #544 by adding support for MySQL's
VALUES ROW(..)
syntax. - Fix #543 by supporting both symbols and keywords in named parameters.
- Address #541 by specifying the expected result of a formatter function passed to
register-clause!
and adding the example from the README to Extending HoneySQL. - Getting Started updated based on feedback from Los Angeles Clojure meetup walkthrough #539.
- Fix #538 by removing
mod
from list of infix operators. - Fixed a few symbol/keyword resolution bugs in the formatter. Thanks to @irigarae.
- Update Clojure version to 1.12.0; update dev/test/ci deps.
2.6.1161
- Address #537 by ignoring non-scalar values in metadata, and expanding support to numbers, and checking strings for suspicious characters.
- Address #536 by noting what will not work with PostgreSQL (but works with other databases).
- Address #533 by adding
honey.sql/*escape-?*
which can be bound tofalse
to prevent?
being escaped to??
when used as an operator or function. - Address #526 by using
format-var
in DDL, instead offormat-entity
. - Update JDK test matrix (adopt -> temurin, 19 -> 21).
- Update Clojure versions (to 1.11.4 & 1.12.0-rc2).
2.6.1147
- Address #531 and #527 by adding tests and more documentation for
:composite
; fix bug inset-dialect!
where clause order is not restored. - Address #530 by adding support for
:using-gin
to:create-index
. - Address #529 by fixing
:join
special syntax to support aliases and to handle expressions the same wayselect
/from
etc handle them (extra[...]
nesting). - Add example of mixed
DO UPDATE SET
withEXCLUDED
and regular SQL expressions. - Improve exception message when un-
lift
-ed JSON expressions are used in the DSL. - Update Clojure versions (to 1.11.3 and 1.12.0-alpha12); update other dev/test dependencies.
2.6.1126
- Address #524 by adding example of
{:nest ..}
in:union
clause reference docs. - Address #523 by expanding examples in README Functions to show aliases.
- Address #522 by supporting metadata on table specifications in
:from
and:join
clauses to provide index hints (SQL Server). - Address #521 by adding initial experimental support for an XTDB dialect.
- Address #520 by expanding how
:inline
works, to support a sequence of arguments. - Fix #518 by moving temporal clause before alias.
- Address #495 by adding
formatv
macro (.clj
only!) -- and removing the experimentalformatf
function (added for discussion in 2.4.1045). - Implemented
CREATE INDEX
#348 via PR #517 @dancek. - Mention
:not-in
explicitly in the documentation. - Code cleanup per
clj-kondo
.
2.5.1103
- Address #515 by:
- Quoting entities that start with a digit but are otherwise alphanumeric. Note that entities that are all digits (optionally including underscores) will still not be quoted as in previous releases,
- Adding a new
:quoted-always
option allows users to specify a regex that matches entities that should always be quoted (stropped) regardless of the value of:quoted
(such as reserved words that you have used as column or table names).
- Address #513 by:
- Ignoring
:file
,:line
,:column
,:end-line
, and:end-column
metadata keys (previously only:line
and:column
were ignored), - Adding an
:ignored-metadata
option to allow additional keys to be ignored.
- Ignoring
2.5.1091
- Address #512 by adding support for subqueries in the
:array
special syntax (for BigQuery and PostgreSQL). This also adds support for metadata on the:select
value to produceAS STRUCT
orDISTINCT
. - Address #511 by adding support for BigQuery
CREATE OR REPLACE
. - Address #510 by adding initial support for an NRQL dialect.
- Fix #509 by checking for
ident?
before checking keyword/symbol.
2.4.1078
- Address #507 by clarifying formatting of
:cast
in Special Syntax. - Fix #505 by rewriting the helper merge function to handle both keywords and symbols properly.
- Address #503 by adding
:at-time-zone
special syntax. - Address #504 for BigQuery support, by adding special syntax for ignore/respect nulls, as well as new
:distinct
and:expr
clauses to allow expressions to be qualified with SQL clauses. The latter will probably be useful for other dialects too. - Update
tools.build
to 0.9.6 (and get rid oftemplate/pom.xml
in favor of new:pom-data
option tob/write-pom
).
2.4.1066
- Add
:select
with function call and alias example to README (PR #502 @markbastian). - Address #501 by making
INSERT INTO
(andREPLACE INTO
) use the:columns
or:values
clauses to produce column names (which are then omitted from those other clauses). - Address #497 by adding
:alias
special syntax. - Address #496 by adding
:overriding-value
option to:insert
clause. - Address #407 by adding support for temporal queries (see
FROM
in SQL Clause Reference). - Address #389 by adding examples of
[:only :table]
producingONLY(table)
. - Add
:create-or-replace-view
to support PostgreSQL's lack ofIF NOT EXISTS
forCREATE VIEW
. - Attempt to clarify the formatting behavior of the
:values
clause when used to produce column names. - Update
tools.build
to 0.9.5 (and remove:java-opts
setting frombuild/run-task
)