Liking cljdoc? Tell your friends :D

xitdb.db


*return-history?*clj


append-context!clj

(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)`.
raw docstring

compactclj

(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.
raw docstring

db-historyclj

(db-history db)

deref-atclj

(deref-at xdb index)

Returns the version of the data at the specified index.

Returns the version of the data at the specified index.
raw docstring

freeze!clj

(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.
raw docstring

history-indexcljdeprecated


materializeclj


open-databaseclj

(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`.
raw docstring

read-historyclj

(read-history db)

Returns the read only transaction history array.

Returns the read only transaction history array.
raw docstring

v->slot!clj

(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!`.
raw docstring

xdb-cursorclj

(xdb-cursor xdb keypath)

xit-dbclj

(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.
raw docstring

xitdb-reset!clj

(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.
raw docstring

xitdb-swap!clj

(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.
raw docstring

xitdb-swap-with-lock!clj

(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`.
raw docstring

cljdoc builds & hosts documentation for Clojure/Script libraries

Keyboard shortcuts
Ctrl+kJump to recent docs
←Move to previous article
→Move to next article
Ctrl+/Jump to the search field
× close