Random utils, database helper functions.
Random utils, database helper functions.
(as-lisp-maps rs opts)
Result set builder which converts underscore characters to hyphens.
Result set builder which converts underscore characters to hyphens.
(as-lisp-simple-maps rs opts)
Result set builder which converts underscore characters to hyphens.
Result set builder which converts underscore characters to hyphens.
(as-lisp-simple-vectors rs opts)
Result set builder which returns vectors with underscores in names converted to hyphens and namespaces removed.
Result set builder which returns vectors with underscores in names converted to hyphens and namespaces removed.
(as-lisp-vectors rs opts)
Result set builder which returns vectors with underscores in names converted to hyphens.
Result set builder which returns vectors with underscores in names converted to hyphens.
(cache-create ttl)
(cache-create ttl queue-size)
(cache-create ttl queue-size initial-map)
Creates a cache object of the given TTL and/or queue size. Optionally it can get an initial map of entries. Returns cache object encapsulated in an atom.
Creates a cache object of the given TTL and/or queue size. Optionally it can get an initial map of entries. Returns cache object encapsulated in an atom.
(cache-evict! cache-atom entry)
(cache-evict! cache-atom entry & more)
Removes entry or entries from the cache. Returns the updated cache from the atom.
Removes entry or entries from the cache. Returns the updated cache from the atom.
(cache-lookup cache id)
(cache-lookup cache id & ids)
Looks for the entry of the given ID in a cache which should be a cache object encapsulated in an atom. For multiple IDs, calls cache-lookup-coll.
Looks for the entry of the given ID in a cache which should be a cache object encapsulated in an atom. For multiple IDs, calls cache-lookup-coll.
(cache-lookup-coll cache ids)
Looks for a collection of entries identified by the given ID in a cache which should be a cache object encapsulated in an atom.
Looks for a collection of entries identified by the given ID in a cache which should be a cache object encapsulated in an atom.
(cache-prepare ttl)
(cache-prepare ttl queue-size)
(cache-prepare ttl queue-size initial-map)
Prepares a cache object of the given TTL and/or queue size. Optionally it can get an initial map of entries. Returns a cache object.
Prepares a cache object of the given TTL and/or queue size. Optionally it can get an initial map of entries. Returns a cache object.
(cached-setting-del cache deleter db entity-id)
(cached-setting-del cache deleter db entity-id setting-id)
(cached-setting-del cache deleter db entity-id setting-id & pairs)
Deletes the cached result of calling the given setting deleter. Purges cache entry after operation succeeded.
Deletes the cached result of calling the given setting deleter. Purges cache entry after operation succeeded.
(cached-setting-get cache getter db entity-id setting-id)
Gets the cached result of calling the given setting getter. Updates cache when necessary.
Gets the cached result of calling the given setting getter. Updates cache when necessary.
(cached-setting-set cache setter db entity-id setting-id value)
(cached-setting-set cache setter db entity-id setting-id value & pairs)
Sets the cached result of calling the given setting setter. Purges cache entry after operation succeeded.
Sets the cached result of calling the given setting setter. Purges cache entry after operation succeeded.
(for-insert-multi-or table cols rows opts)
Given a table name, a vector of column names, and a vector of row values
(each row is a vector of its values), return a vector of the full INSERT
SQL
string and its parameters. Applies any :table-fn
/ :column-fn
supplied in the
options. If :suffix
is provided in opts
, that string is appended to the
INSERT IGNORE ...
statement. The IGNORE
part can be replaced by
supplying :alt-clause option key.
Given a table name, a vector of column names, and a vector of row values (each row is a vector of its values), return a vector of the full `INSERT` SQL string and its parameters. Applies any `:table-fn` / `:column-fn` supplied in the options. If `:suffix` is provided in `opts`, that string is appended to the `INSERT IGNORE ...` statement. The `IGNORE` part can be replaced by supplying :alt-clause option key.
(for-insert-or table key-map opts)
Given a table name and a hash map of column names and their values,
return a vector of the full INSERT OR IGNORE
SQL string and its parameters.
Applies any :table-fn
/ :column-fn
supplied in the options. If :suffix
is
provided in opts
, that string is appended to the INSERT ...
statement. If
:alt-clause
is provided in opts
, it will replace the default IGNORE string.
Given a table name and a hash map of column names and their values, return a vector of the full `INSERT OR IGNORE` SQL string and its parameters. Applies any `:table-fn` / `:column-fn` supplied in the options. If `:suffix` is provided in `opts`, that string is appended to the `INSERT ...` statement. If `:alt-clause` is provided in `opts`, it will replace the default IGNORE string.
(for-replace table key-map opts)
Given a table name and a hash map of column names and their values,
return a vector of the full REPLACE
SQL string and its parameters.
Applies any :table-fn
/ :column-fn
supplied in the options. If :suffix
is
provided in opts
, that string is appended to the INSERT ...
statement.
Given a table name and a hash map of column names and their values, return a vector of the full `REPLACE` SQL string and its parameters. Applies any `:table-fn` / `:column-fn` supplied in the options. If `:suffix` is provided in `opts`, that string is appended to the `INSERT ...` statement.
(for-replace-multi table cols rows opts)
Given a table name, a vector of column names, and a vector of row values
(each row is a vector of its values), return a vector of the full REPLACE
SQL
string and its parameters. Applies any :table-fn
/ :column-fn
supplied in the
options. If :suffix
is provided in opts
, that string is appended to the
REPLACE ...
statement.
Given a table name, a vector of column names, and a vector of row values (each row is a vector of its values), return a vector of the full `REPLACE` SQL string and its parameters. Applies any `:table-fn` / `:column-fn` supplied in the options. If `:suffix` is provided in `opts`, that string is appended to the `REPLACE ...` statement.
(get-cached cache db-getter db id)
(get-cached cache table db id)
(get-cached cache table db-getter db id)
(get-cached cache db-getter db id & more)
(get-cached cache table db id & more)
(get-cached cache table db-getter db id & more)
Returns a (possibly cached) sequence of maps requested using db-getter for the given IDs. A database connection and a table name can be passed to be used with the standard get-id getter function instead. When multiple IDs are given, calls get-cached-coll.
Returns a (possibly cached) sequence of maps requested using db-getter for the given IDs. A database connection and a table name can be passed to be used with the standard get-id getter function instead. When multiple IDs are given, calls get-cached-coll.
(get-cached-coll cache db-getter db ids)
(get-cached-coll cache table db ids)
(get-cached-coll cache table db-getter db ids)
Returns a (possibly cached) sequence of maps requested using db-getter for the given IDs. When called with a table name it will be passed as a second argument to the given getter function. When no getter is given the standard one (get-ids) is used. Use make-getter-coll to create getter (with or without predefined table name).
Returns a (possibly cached) sequence of maps requested using db-getter for the given IDs. When called with a table name it will be passed as a second argument to the given getter function. When no getter is given the standard one (get-ids) is used. Use make-getter-coll to create getter (with or without predefined table name).
(get-cached-coll-prop cache db-getter db property ids)
(get-cached-coll-prop cache table db property ids)
(get-cached-coll-prop cache table db-getter db property ids)
Uses get-cached-coll to retrieve a map with keys being IDs and values being requested properties. If there is no data for the given ID, corresponding entry is not added to the resulting map. If the property does not exist, nil is added.
Uses get-cached-coll to retrieve a map with keys being IDs and values being requested properties. If there is no data for the given ID, corresponding entry is not added to the resulting map. If the property does not exist, nil is added.
(get-cached-prop cache db-getter db property id)
(get-cached-prop cache table db property id)
(get-cached-prop cache table db-getter db property id)
(get-cached-prop cache db-getter db property id & more)
(get-cached-prop cache table db property id & more)
(get-cached-prop cache table db-getter db property id & more)
Same as get-cached but retrieves a single property from the result by using the get function. When multiple IDs are given it calls get-cached-coll-prop to handle it.
Same as get-cached but retrieves a single property from the result by using the get function. When multiple IDs are given it calls get-cached-coll-prop to handle it.
(get-cached-prop-or-default cache db-getter db property default id)
(get-cached-prop-or-default cache table db property default id)
(get-cached-prop-or-default cache table db-getter db property default id)
(get-cached-prop-or-default cache db-getter db property default id & more)
(get-cached-prop-or-default cache table db property default id & more)
(get-cached-prop-or-default cache table db-getter db property default id & more)
Same as get-cached-prop but when there is no entry for the given ID, it returns the given default value.
Same as get-cached-prop but when there is no entry for the given ID, it returns the given default value.
(get-failed? v)
Returns true if getting from a database failed in post-processing phase (e.g. de-serialization) and the data were broken.
Returns true if getting from a database failed in post-processing phase (e.g. de-serialization) and the data were broken.
(get-id db table id)
(get-id db table id & more)
Gets properties of the given ID from a database table. For multiple IDs, calls get-ids.
Gets properties of the given ID from a database table. For multiple IDs, calls get-ids.
(get-ids db table ids)
Gets a map of ID-to-properties from a database for the given IDs and a table. Assumes each result will be related to a single, unique ID.
Gets a map of ID-to-properties from a database for the given IDs and a table. Assumes each result will be related to a single, unique ID.
(init-cache {:keys [size ttl seed]})
Initializes single cache by parsing TTL and queue size.
Initializes single cache by parsing TTL and queue size.
(init-caches config)
Initializes in-memory caches by resetting atoms associated with cache parameters.
Initializes in-memory caches by resetting atoms associated with cache parameters.
(insert-multi-or! connectable table cols rows)
(insert-multi-or! connectable table cols rows opts)
Syntactic sugar over execute!
to make inserting columns/rows easier.
Same as insert-or! but supports multiple rows to be inserted at once.
Syntactic sugar over `execute!` to make inserting columns/rows easier. Same as insert-or! but supports multiple rows to be inserted at once.
(insert-or! connectable table key-map)
(insert-or! connectable table key-map opts)
Syntactic sugar over execute-one!
to make inserting hash maps easier.
Given a connectable object, a table name, and a data hash map, inserts the data as
a single row in the database and attempts to return a map of generated keys. By
default it uses INSERT OR IGNORE
but the IGNORE
can be changed to anything by
supplying :alt-clause option in opts map.
Syntactic sugar over `execute-one!` to make inserting hash maps easier. Given a connectable object, a table name, and a data hash map, inserts the data as a single row in the database and attempts to return a map of generated keys. By default it uses `INSERT OR IGNORE` but the `IGNORE` can be changed to anything by supplying :alt-clause option in opts map.
(insert-or-ignore! connectable table key-map)
(insert-or-ignore! connectable table key-map opts)
Syntactic sugar over execute-one!
to make inserting hash maps easier.
Given a connectable object, a table name, and a data hash map, inserts the data as
a single row in the database and attempts to return a map of generated keys.
Syntactic sugar over `execute-one!` to make inserting hash maps easier. Given a connectable object, a table name, and a data hash map, inserts the data as a single row in the database and attempts to return a map of generated keys.
(insert-or-ignore-multi! connectable table cols rows)
(insert-or-ignore-multi! connectable table cols rows opts)
Syntactic sugar over execute!
to make inserting columns/rows easier.
Same as insert-multi! but supports :alt-clause option key.
Syntactic sugar over `execute!` to make inserting columns/rows easier. Same as insert-multi! but supports :alt-clause option key.
(insert-or-replace! connectable table key-map)
(insert-or-replace! connectable table key-map opts)
Syntactic sugar over execute-one!
to make inserting hash maps easier.
Given a connectable object, a table name, and a data hash map, inserts the data as
a single row in the database and attempts to return a map of generated keys.
Syntactic sugar over `execute-one!` to make inserting hash maps easier. Given a connectable object, a table name, and a data hash map, inserts the data as a single row in the database and attempts to return a map of generated keys.
(insert-or-replace-multi! connectable table cols rows)
(insert-or-replace-multi! connectable table cols rows opts)
Syntactic sugar over execute!
to make inserting columns/rows easier.
Same as insert-multi! but supports :alt-clause option key.
Syntactic sugar over `execute!` to make inserting columns/rows easier. Same as insert-multi! but supports :alt-clause option key.
(make-getter id-col cols)
(make-getter table id-col cols)
(make-getter table id-col cols getter-coll-fn)
(make-getter-coll id-col)
(make-getter-coll id-col cols)
(make-getter-coll table id-col cols)
Creates a database getter suitable for use with get-cached-coll- functions. The returned function should accept an argument containing multiple identifiers.
Creates a database getter suitable for use with get-cached-coll- functions. The returned function should accept an argument containing multiple identifiers.
(make-setting-deleter table entity-column)
Creates a setting deleter on a basis of the given table and entity column.
Creates a setting deleter on a basis of the given table and entity column.
(make-setting-getter table entity-column)
Returns a function which gets a setting for the given entity and de-serializes it to a Clojure data structure. Table name and entity column name must be quoted if needed before passing to this function.
Returns a function which gets a setting for the given entity and de-serializes it to a Clojure data structure. Table name and entity column name must be quoted if needed before passing to this function.
(make-setting-setter table entity-column)
Returns a function which stores one or more settings for a given entity in a database. Max. object size is 32 KB. Table name and entity column name must be quoted if needed before passing to this function.
Returns a function which stores one or more settings for a given entity in a database. Max. object size is 32 KB. Table name and entity column name must be quoted if needed before passing to this function.
(memoize f)
(memoize f queue-size)
(memoize f queue-size ttl)
Creates memoized version of a database accessing or other function.
Creates memoized version of a database accessing or other function.
(memoizer config)
(memoizer f config)
Creates a function for creating memoized functions with predefined TTL and queue size taken from config. If the function is not given it will try to dereference symbol present in the config under the :memoizer key.
Creates a function for creating memoized functions with predefined TTL and queue size taken from config. If the function is not given it will try to dereference symbol present in the config under the :memoizer key.
(purge-caches config)
Removes everything from caches.
Removes everything from caches.
(replace! connectable table key-map)
(replace! connectable table key-map opts)
Syntactic sugar over execute-one!
to make inserting hash maps easier.
Given a connectable object, a table name, and a data hash map, inserts the data as
a single row in the database and attempts to return a map of generated keys. By
default it uses REPLACE
.
Syntactic sugar over `execute-one!` to make inserting hash maps easier. Given a connectable object, a table name, and a data hash map, inserts the data as a single row in the database and attempts to return a map of generated keys. By default it uses `REPLACE`.
(replace-multi! connectable table cols rows)
(replace-multi! connectable table cols rows opts)
Syntactic sugar over execute!
to make inserting columns/rows easier.
Same as replace! but supports multiple rows to be inserted at once.
Syntactic sugar over `execute!` to make inserting columns/rows easier. Same as replace! but supports multiple rows to be inserted at once.
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close