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 is a website building & hosting documentation for Clojure/Script libraries
× close