(append-context! history slot fn)Appends a new history context and calls fn with a write cursor.
Returns the history count after the append; the new entry is at (dec count).
Appends a new history context and calls `fn` with a write cursor. Returns the history count after the append; the new entry is at `(dec count)`.
(compact xdb target)Compacts the latest value of xdb into a new database at target.
target can be :memory or the name of a file that does not exist.
Returns an open XITDBDatabase containing at most one history entry. The source
database is unchanged.
Holds the source's write lock for the whole copy, so swap! and reset! on
xdb block until compaction finishes. Must not be called from inside a
swap! or reset! on xdb; doing so throws IllegalStateException.
Refreshes the source writer's header before copying, so a handle opened before another handle initialized the file compacts the current value instead of publishing an empty database.
Compacts the latest value of `xdb` into a new database at `target`. `target` can be `:memory` or the name of a file that does not exist. Returns an open XITDBDatabase containing at most one history entry. The source database is unchanged. Holds the source's write lock for the whole copy, so `swap!` and `reset!` on `xdb` block until compaction finishes. Must not be called from inside a `swap!` or `reset!` on `xdb`; doing so throws IllegalStateException. Refreshes the source writer's header before copying, so a handle opened before another handle initialized the file compacts the current value instead of publishing an empty database.
(db-history db)(deref-at xdb index)Returns the version of the data at the specified index.
Returns the version of the data at the specified index.
(freeze! x)Prevents all data written in the current transaction from being mutated by any remaining changes. Throws if called outside of a transaction. Returns a read-only version of the given writeable data structure.
Prevents all data written in the current transaction from being mutated by any remaining changes. Throws if called outside of a transaction. Returns a read-only version of the given writeable data structure.
(open-database filename open-mode)Opens database filename.
If filename is :memory, returns a memory based db.
open-mode can be r or rw.
Opens database `filename`. If `filename` is `:memory`, returns a memory based db. open-mode can be `r` or `rw`.
(read-history db)Returns the read only transaction history array.
Returns the read only transaction history array.
(v->slot! cursor v)Converts a value to a slot which can be written to a cursor.
XITDB* types are written by reference (structural sharing) when they belong
to the same database as cursor; values from another database are refused.
All other types are converted by conversion/v->slot!.
Converts a value to a slot which can be written to a cursor. XITDB* types are written by reference (structural sharing) when they belong to the same database as `cursor`; values from another database are refused. All other types are converted by `conversion/v->slot!`.
(xdb-cursor xdb keypath)(xit-db filename)Returns a new XITDBDatabase which can be used to query and transact data.
filename can be :memory or the name of a file on the filesystem.
If the file does not exist, it will be created.
The returned database handle can be used from multiple threads, and so can the
values read from it. Reads can run in parallel, transactions (eg. swap!) will
only allow one writer at a time.
Returns a new XITDBDatabase which can be used to query and transact data. `filename` can be `:memory` or the name of a file on the filesystem. If the file does not exist, it will be created. The returned database handle can be used from multiple threads, and so can the values read from it. Reads can run in parallel, transactions (eg. `swap!`) will only allow one writer at a time.
(xitdb-reset! history new-value)Sets the value of the database to new-value.
Returns the new history count.
Sets the value of the database to `new-value`. Returns the new history count.
(xitdb-swap! db base-keypath f & args)Starts a new transaction and calls f with the value at base-keypath.
If base-keypath is nil, will use the root cursor.
f will receive a XITDBWrite* type with the value at base-keypath and args.
Actions on the XITDBWrite* type (like assoc) will mutate it.
Return value of f is written at base-keypath (or root) cursor.
Returns the new history count.
Starts a new transaction and calls `f` with the value at `base-keypath`. If `base-keypath` is nil, will use the root cursor. `f` will receive a XITDBWrite* type with the value at `base-keypath` and `args`. Actions on the XITDBWrite* type (like `assoc`) will mutate it. Return value of `f` is written at `base-keypath` (or root) cursor. Returns the new history count.
(xitdb-swap-with-lock! xitdb base-keypath f & args)Performs the 'swap!' operation while locking db.lock.
Returns the new value of the database.
If the binding *return-history?* is true, returns
[history-count value-before value-after], where the written version is
(deref-at xitdb (dec history-count)).
If keypath is not empty, the result of f will be written to the db at keypath rather
than db root.
Similarly, if keypath is not empty, the returned value will be the value at keypath.
Performs the 'swap!' operation while locking `db.lock`. Returns the new value of the database. If the binding `*return-history?*` is true, returns `[history-count value-before value-after]`, where the written version is `(deref-at xitdb (dec history-count))`. If `keypath` is not empty, the result of `f` will be written to the db at `keypath` rather than db root. Similarly, if `keypath` is not empty, the returned value will be the value at `keypath`.
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 |