Primary API for HoneySQL 2.x.
This includes the format function -- the primary entry point -- as well
as several public formatters that are intended to help users extend the
supported syntax.
In addition, functions to extend HoneySQL are also provided here:
clause-order -- returns the current clause priority ordering;
intended as aid when registering new clauses.format-dsl -- intended to format SQL statements; returns a vector
containing a SQL string followed by parameter values.format-entity -- intended to format SQL entities; returns a string
representing the SQL entity.format-expr -- intended to format SQL expressions; returns a vector
containing a SQL string followed by parameter values.format-expr-list -- intended to format a list of SQL expressions;
returns a pair comprising: a sequence of SQL expressions (to be
join with a delimiter) and a sequence of parameter values.register-clause! -- register a new statement/clause formatter.register-fn! -- register a new function call (or special syntax)
formatter.register-op! -- register a new operator formatter.set-dialect! -- set the default dialect to be used for formatting,
and optionally set a global :quoted option.sql-kw -- turns a Clojure keyword (or symbol) into SQL code (makes
it uppercase and replaces - with space).Primary API for HoneySQL 2.x.
This includes the `format` function -- the primary entry point -- as well
as several public formatters that are intended to help users extend the
supported syntax.
In addition, functions to extend HoneySQL are also provided here:
* `clause-order` -- returns the current clause priority ordering;
intended as aid when registering new clauses.
* `format-dsl` -- intended to format SQL statements; returns a vector
containing a SQL string followed by parameter values.
* `format-entity` -- intended to format SQL entities; returns a string
representing the SQL entity.
* `format-expr` -- intended to format SQL expressions; returns a vector
containing a SQL string followed by parameter values.
* `format-expr-list` -- intended to format a list of SQL expressions;
returns a pair comprising: a sequence of SQL expressions (to be
join with a delimiter) and a sequence of parameter values.
* `register-clause!` -- register a new statement/clause formatter.
* `register-fn!` -- register a new function call (or special syntax)
formatter.
* `register-op!` -- register a new operator formatter.
* `set-dialect!` -- set the default dialect to be used for formatting,
and optionally set a global `:quoted` option.
* `sql-kw` -- turns a Clojure keyword (or symbol) into SQL code (makes
it uppercase and replaces - with space). Helper functions for the built-in clauses in honey.sql.
All helper functions are inherently variadic. Typical usage is threaded, like this:
(-> (select :a :b :c)
(from :table)
(where [:= :id 42])
(sql/format))
Therefore all helpers can take an existing DSL expression as their first argument or, if the first argument is not a hash map, an empty DSL is assumed -- an empty hash map. The above is therefore equivalent to:
(-> {}
(select :a :b :c)
(from :table)
(where [:= :id 42])
(sql/format))
Some of the helper functions here have :arglists metadata
in an attempt to provide better hints for auto-complete in
editors but those :arglists always omit the DSL argument
to avoid duplicating the various argument lists. When you
see an auto-complete suggestion like:
bulk-collect-into [varname] [varname n]
bear in mind that a DSL hash map can always be threaded in so the following (pseudo) arities are also available:
bulk-collect-into [dsl varname] [dsl varname n]
The actual arguments are:
bulk-collect-info [& args]
(as they are for all helper functions).
Helper functions for the built-in clauses in honey.sql.
All helper functions are inherently variadic. Typical
usage is threaded, like this:
```
(-> (select :a :b :c)
(from :table)
(where [:= :id 42])
(sql/format))
```
Therefore all helpers can take an existing DSL expression
as their first argument or, if the first argument is not
a hash map, an empty DSL is assumed -- an empty hash map.
The above is therefore equivalent to:
```
(-> {}
(select :a :b :c)
(from :table)
(where [:= :id 42])
(sql/format))
```
Some of the helper functions here have `:arglists` metadata
in an attempt to provide better hints for auto-complete in
editors but those `:arglists` _always omit the DSL argument_
to avoid duplicating the various argument lists. When you
see an auto-complete suggestion like:
bulk-collect-into [varname] [varname n]
bear in mind that a DSL hash map can always be threaded in
so the following (pseudo) arities are also available:
bulk-collect-into [dsl varname] [dsl varname n]
The actual arguments are:
bulk-collect-info [& args]
(as they are for all helper functions).cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |