The cl-naive-store Reference Manual

Next: , Previous: , Up: (dir)   [Contents][Index]

The cl-naive-store Reference Manual

This is the cl-naive-store Reference Manual, version 2021.5.18, generated automatically by Declt version 4.0 beta 2 "William Riker" on Wed Jun 15 03:53:50 2022 GMT+0.

Table of Contents


1 Introduction

**WARNING**

I have tested this version with live systems but am still rolling it
out to all my live systems so there might be some bug churn over the
next couple of weeks as this version is put through its paces.

* cl-naive-store

cl-naive-store is a database (document store to more precise) which is
persisted, in memory (lazy loading), indexed and written completely in
Common Lisp.

The naive bit comes from the fact that data is persisted
as plists in files to make them human and machine readable, also there
is no rocket science code.

The store was designed to be customisable, just about anything can be
customised, have a look at the implementation api to get an idea of
what is possible.

** License

MIT the doc is [[file:src/naive-store/LICENSE][here]].

** News

What was supposed to take weeks ended up taking months, but we are
finally there. The 2021.5.18 version adds sharding to cl-naive-store
and as a consequence of that the use of parallel processing internally
and thread safety over all (fingers crossed!).

There is more refinement that we would like to do in the future for
the parallel processing but what we have now is fast enough and simple
enough for a good start.

All the documentation from the wiki has been placed into a docs/
folder as org-mode files.

** Acknowledgements

The latest version was financially supported by [[https://mts.co.za][Managing
Transformation Solutions (Pty) Ltd]], thank you for your continued
support of open source software!

I must also give a big shout out to Pascal J. Bourguignon for code
reviews, threading code, test code and a whole lot more. His guidance
was invaluable, even if I did not always listen to him. */Pascal does
not endorse this software in any way, shape or form, he assisted me
when and where I asked for specific help./*

** Features

*** Persisted

Data can be written to file per document update or as a batch update.

*** In memory

Data is loaded into memory for querying and lookups, that makes them
fast.

*** Lazy Loading

Data is only loaded when needed and not before. If you use the store
correctly it means that you will only have the data that users
requested up to that point in memory.

*** Indexed

Documents and key values can be indexed, and a user can specify their
own additional indexes as well. Queries and lookups can both be done using
indexes which speeds up the retrieval of data considerably.

*** Sharding

Sharding is the breaking down of files into smaller files, in the case
of naive-store that means that instead of one file per collection there
could be many.

Sharding is done based on the actual data in collections. The user
specifies which elements of a document it wants to use for sharding on
a collection. If none is specified no sharding is done.

*** Layered Design

cl-naive-store can do a lot but you as the user decides how much of
the store's functionality you want to use for your own project.

Functionality was broken down into these packages:

- cl-naive-store.naive-core
- cl-naive-store.document-types
- cl-naive-store.document-type-defs
- cl-naive-store.naive-documents
- cl-naive-store.naive-indexed
- cl-naive-store.naive-merkle
- cl-naive-store.test

The following .asd files can be used to load different functionality:

- cl-naive-store.naive-core.asd loads the most basic functionality for
  cl-naive-store. Use this if you don't any of the other extensions.

- cl-naive-store.naive-merkle.asd loads naive-documents and the
  /experimental/ merkle functionality.

- cl-naive-store.naive-indexed.asd loads naive-core and index
  functionality.

- cl-naive-store.document-types.asd loads naive-core and document-type
  functionality.

- cl-naive-store.document-defs.asd loads naive-core, document-types
  and type definition functionality.

- cl-naive-store.documents.asd loads naive-core, naive-indexed,
  documents-types, document-type-defs and document functionality.

- cl-naive-store.asd loads the whole shebang.

- cl-naive-store.test.asd loads tests

** Documentation

Documentation can be found in the docs folder in the repository.

** Examples

Examples are in the examples folder in the git repository. If those are
to simplistic for you have a look at the code in the tests.

** Dependencies

- cl-fad
- iron-clad
- cl-murmurhash
- split-sequence
- uuid
- local-time
- cl-getx
- bordeaux-threads
- lparallel
- cl-cpus

** Supported CL Implementations

All Tests pass on SBCL an CCL

** Development Roadmap

Have a look at the issues in gitlab, future development is tagged accordingly.

** Tests

Go to the tests folder

#+BEGIN_EXAMPLE
cd cl-naive-store/tests/
#+END_EXAMPLE

Run make with any of the following

- test
- test-load-systems
- test-run-tests
- run-tests-ccl
- run-tests-sbcl

For example:

#+BEGIN_EXAMPLE
make test-run-tests
#+END_EXAMPLE

You should see the following at the end.

#+BEGIN_EXAMPLE
SUCCESS COUNT:       46
FAILURE COUNT:        0
TOTAL TESTS:         46
Completed Test CL-NAIVE-STORE-TESTS:TEST-ALL
#+END_EXAMPLE



2 Systems

The main system appears first, followed by any subsystem dependency.


2.1 cl-naive-store

This is a persisted, in memory (lazy loading) document store for Common Lisp.

Author

Phil Marneweck

License

MIT

Version

2021.5.18

Dependencies
Source

cl-naive-store.asd.


2.2 cl-naive-store.naive-core

This is a naive, persisted, in memory (lazy loading) data store for Common Lisp.

Author

Phil Marneweck

License

MIT

Version

2021.5.18

Dependencies
  • cl-fad (system).
  • split-sequence (system).
  • uuid (system).
  • local-time (system).
  • cl-getx (system).
  • cl-murmurhash (system).
  • ironclad (system).
  • lparallel (system).
  • cl-cpus (system).
  • bordeaux-threads (system).
Source

cl-naive-store.naive-core.asd.

Child Components

2.3 cl-naive-store.document-types

This is a naive, persisted, in memory (lazy loading) data store for Common Lisp.

Author

Phil Marneweck

License

MIT

Version

2021.5.18

Dependency

cl-naive-store.naive-core (system).

Source

cl-naive-store.document-types.asd.

Child Components

2.4 cl-naive-store.document-type-defs

This is a naive, persisted, in memory (lazy loading) data store for Common Lisp.

Author

Phil Marneweck

License

MIT

Version

2021.5.18

Dependencies
Source

cl-naive-store.document-type-defs.asd.

Child Components

2.6 cl-naive-store.naive-indexed

This is a naive, persisted, in memory (lazy loading) data store for Common Lisp.

Author

Phil Marneweck

License

MIT

Version

2021.5.18

Dependency

cl-naive-store.naive-core (system).

Source

cl-naive-store.naive-indexed.asd.

Child Components

2.7 cl-naive-store.naive-merkle

This is a naive, persisted, in memory (lazy loading) data store for Common Lisp.

Author

Phil Marneweck

License

MIT

Version

2021.5.18

Dependency

cl-naive-store.naive-documents (system).

Source

cl-naive-store.naive-merkle.asd.

Child Components

3 Files

Files are sorted by type and then listed depth-first from the systems components trees.


Previous: , Up: Files   [Contents][Index]

3.1 Lisp


3.1.1 cl-naive-store/cl-naive-store.asd

Source

cl-naive-store.asd.

Parent Component

cl-naive-store (system).

ASDF Systems

cl-naive-store.


3.1.2 cl-naive-store.naive-core/cl-naive-store.naive-core.asd

Source

cl-naive-store.naive-core.asd.

Parent Component

cl-naive-store.naive-core (system).

ASDF Systems

cl-naive-store.naive-core.


3.1.3 cl-naive-store.document-types/cl-naive-store.document-types.asd

Source

cl-naive-store.document-types.asd.

Parent Component

cl-naive-store.document-types (system).

ASDF Systems

cl-naive-store.document-types.


3.1.6 cl-naive-store.naive-indexed/cl-naive-store.naive-indexed.asd

Source

cl-naive-store.naive-indexed.asd.

Parent Component

cl-naive-store.naive-indexed (system).

ASDF Systems

cl-naive-store.naive-indexed.


3.1.7 cl-naive-store.naive-merkle/cl-naive-store.naive-merkle.asd

Source

cl-naive-store.naive-merkle.asd.

Parent Component

cl-naive-store.naive-merkle (system).

ASDF Systems

cl-naive-store.naive-merkle.


3.1.9 cl-naive-store.naive-core/src/naive-store/naive-impl/package.lisp

Dependency

src/naive-store/packages.lisp (file).

Source

cl-naive-store.naive-core.asd.

Parent Component

cl-naive-store.naive-core (system).

Packages

naive-impl.


3.1.10 cl-naive-store.naive-core/src/naive-store/naive-impl/common.lisp

Dependency

src/naive-store/naive-impl/package.lisp (file).

Source

cl-naive-store.naive-core.asd.

Parent Component

cl-naive-store.naive-core (system).

Public Interface
Internals

3.1.11 cl-naive-store.naive-core/src/naive-store/naive-impl/files.lisp

Dependency

src/naive-store/naive-impl/common.lisp (file).

Source

cl-naive-store.naive-core.asd.

Parent Component

cl-naive-store.naive-core (system).

Public Interface
Internals

3.1.12 cl-naive-store.naive-core/src/naive-store/naive-impl/logs.lisp

Dependency

src/naive-store/naive-impl/files.lisp (file).

Source

cl-naive-store.naive-core.asd.

Parent Component

cl-naive-store.naive-core (system).

Public Interface
Internals

3.1.13 cl-naive-store.naive-core/src/naive-store/naive-core.lisp

Dependency

src/naive-store/naive-impl/logs.lisp (file).

Source

cl-naive-store.naive-core.asd.

Parent Component

cl-naive-store.naive-core (system).

Public Interface
Internals

3.1.14 cl-naive-store.naive-core/src/naive-store/documents.lisp

Dependency

src/naive-store/naive-core.lisp (file).

Source

cl-naive-store.naive-core.asd.

Parent Component

cl-naive-store.naive-core (system).

Public Interface

3.1.15 cl-naive-store.naive-core/src/naive-store/blob.lisp

Dependency

src/naive-store/documents.lisp (file).

Source

cl-naive-store.naive-core.asd.

Parent Component

cl-naive-store.naive-core (system).

Public Interface
Internals

3.1.16 cl-naive-store.naive-core/src/naive-store/naive-impl/naive-core.lisp

Dependency

src/naive-store/naive-impl/common.lisp (file).

Source

cl-naive-store.naive-core.asd.

Parent Component

cl-naive-store.naive-core (system).

Internals

3.1.17 cl-naive-store.naive-core/src/naive-store/naive-impl/parse-document.lisp

Dependency

src/naive-store/naive-impl/files.lisp (file).

Source

cl-naive-store.naive-core.asd.

Parent Component

cl-naive-store.naive-core (system).

Public Interface

3.1.18 cl-naive-store.naive-core/src/naive-store/naive-impl/persist-document.lisp

Dependency

src/naive-store/naive-impl/files.lisp (file).

Source

cl-naive-store.naive-core.asd.

Parent Component

cl-naive-store.naive-core (system).

Public Interface

3.1.19 cl-naive-store.naive-core/src/naive-store/load.lisp

Dependency

src/naive-store/naive-impl/parse-document.lisp (file).

Source

cl-naive-store.naive-core.asd.

Parent Component

cl-naive-store.naive-core (system).

Public Interface
Internals

3.1.20 cl-naive-store.naive-core/src/naive-store/query.lisp

Dependency

src/naive-store/naive-core.lisp (file).

Source

cl-naive-store.naive-core.asd.

Parent Component

cl-naive-store.naive-core (system).

Public Interface
Internals

*query-lock* (special variable).


3.1.21 cl-naive-store.naive-core/src/naive-store/maintenance.lisp

Dependency

src/naive-store/naive-impl/persist-document.lisp (file).

Source

cl-naive-store.naive-core.asd.

Parent Component

cl-naive-store.naive-core (system).

Public Interface

sanitize-data-file (generic function).

Internals

sanitize-universe (generic function).


3.1.23 cl-naive-store.document-types/src/document-types/document-types.lisp

Dependency

src/document-types/packages.lisp (file).

Source

cl-naive-store.document-types.asd.

Parent Component

cl-naive-store.document-types (system).

Public Interface
Internals

3.1.25 cl-naive-store.document-type-defs/src/document-type-defs/document-type-defs.lisp

Dependency

src/document-type-defs/packages.lisp (file).

Source

cl-naive-store.document-type-defs.asd.

Parent Component

cl-naive-store.document-type-defs (system).

Public Interface
Internals

3.1.27 cl-naive-store.naive-documents/src/naive-documents/documents-impl/package.lisp

Dependency

src/naive-documents/packages.lisp (file).

Source

cl-naive-store.naive-documents.asd.

Parent Component

cl-naive-store.naive-documents (system).

Packages

documents-impl.


3.1.28 cl-naive-store.naive-documents/src/naive-documents/naive-documents.lisp

Dependency

src/naive-documents/documents-impl/package.lisp (file).

Source

cl-naive-store.naive-documents.asd.

Parent Component

cl-naive-store.naive-documents (system).

Public Interface
Internals

3.1.29 cl-naive-store.naive-documents/src/naive-documents/documents-impl/parse-document.lisp

Dependency

src/naive-documents/naive-documents.lisp (file).

Source

cl-naive-store.naive-documents.asd.

Parent Component

cl-naive-store.naive-documents (system).

Public Interface
Internals

document-values-p (function).


3.1.30 cl-naive-store.naive-documents/src/naive-documents/documents-impl/persist-document.lisp

Dependency

src/naive-documents/naive-documents.lisp (file).

Source

cl-naive-store.naive-documents.asd.

Parent Component

cl-naive-store.naive-documents (system).

Public Interface

3.1.31 cl-naive-store.naive-documents/src/naive-documents/document-types.lisp

Dependency

src/naive-documents/naive-documents.lisp (file).

Source

cl-naive-store.naive-documents.asd.

Parent Component

cl-naive-store.naive-documents (system).

Public Interface

3.1.32 cl-naive-store.naive-documents/src/naive-documents/documents.lisp

Dependency

src/naive-documents/packages.lisp (file).

Source

cl-naive-store.naive-documents.asd.

Parent Component

cl-naive-store.naive-documents (system).

Public Interface
Internals

3.1.33 cl-naive-store.naive-documents/src/naive-documents/indexed.lisp

Dependency

src/naive-documents/documents.lisp (file).

Source

cl-naive-store.naive-documents.asd.

Parent Component

cl-naive-store.naive-documents (system).

Public Interface

index-values (method).


3.1.34 cl-naive-store.naive-documents/src/naive-documents/query.lisp

Dependency

src/naive-documents/indexed.lisp (file).

Source

cl-naive-store.naive-documents.asd.

Parent Component

cl-naive-store.naive-documents (system).

Public Interface
Internals

3.1.35 cl-naive-store.naive-documents/src/naive-documents/export.lisp

Dependency

src/naive-documents/indexed.lisp (file).

Source

cl-naive-store.naive-documents.asd.

Parent Component

cl-naive-store.naive-documents (system).

Public Interface

documents-to-plist (function).

Internals

3.1.36 cl-naive-store.naive-documents/src/naive-documents/export-csv.lisp

Dependency

src/naive-documents/export.lisp (file).

Source

cl-naive-store.naive-documents.asd.

Parent Component

cl-naive-store.naive-documents (system).

Public Interface

document-list-to-csv (function).

Internals

3.1.37 cl-naive-store.naive-documents/src/naive-documents/export-json.lisp

Dependency

src/naive-documents/export.lisp (file).

Source

cl-naive-store.naive-documents.asd.

Parent Component

cl-naive-store.naive-documents (system).

Public Interface

document-list-to-json (function).

Internals

3.1.39 cl-naive-store.naive-indexed/src/naive-indexed/naive-indexed.lisp

Dependency

src/naive-indexed/packages.lisp (file).

Source

cl-naive-store.naive-indexed.asd.

Parent Component

cl-naive-store.naive-indexed (system).

Public Interface
Internals

3.1.40 cl-naive-store.naive-indexed/src/naive-indexed/indexed-impl.lisp

Dependency

src/naive-indexed/naive-indexed.lisp (file).

Source

cl-naive-store.naive-indexed.asd.

Parent Component

cl-naive-store.naive-indexed (system).

Public Interface
Internals

3.1.41 cl-naive-store.naive-indexed/src/naive-indexed/parse-document.lisp

Dependency

src/naive-indexed/naive-indexed.lisp (file).

Source

cl-naive-store.naive-indexed.asd.

Parent Component

cl-naive-store.naive-indexed (system).

Public Interface

3.1.42 cl-naive-store.naive-indexed/src/naive-indexed/query.lisp

Dependency

src/naive-indexed/naive-indexed.lisp (file).

Source

cl-naive-store.naive-indexed.asd.

Parent Component

cl-naive-store.naive-indexed (system).

Public Interface
Internals

3.1.43 cl-naive-store.naive-merkle/src/naive-merkle/package.lisp

Source

cl-naive-store.naive-merkle.asd.

Parent Component

cl-naive-store.naive-merkle (system).

Packages

cl-naive-merkle.


3.1.44 cl-naive-store.naive-merkle/src/naive-merkle/merkle.lisp

Dependency

src/naive-merkle/package.lisp (file).

Source

cl-naive-store.naive-merkle.asd.

Parent Component

cl-naive-store.naive-merkle (system).

Internals

4 Packages

Packages are listed by definition order.


Next: , Previous: , Up: Packages   [Contents][Index]

4.1 cl-naive-store.naive-documents

Source

src/naive-documents/packages.lisp.

Use List
Used By List

documents-impl.

Public Interface
Internals

4.3 cl-naive-store.naive-indexed

Source

src/naive-indexed/packages.lisp.

Use List
Used By List
Public Interface
Internals

4.4 cl-naive-store.document-type-defs

Source

src/document-type-defs/packages.lisp.

Use List
Used By List

cl-naive-store.naive-documents.

Public Interface
Internals

4.5 cl-naive-merkle

Source

src/naive-merkle/package.lisp.

Use List

common-lisp.

Internals

Next: , Previous: , Up: Packages   [Contents][Index]

4.6 cl-naive-store.naive-core

Source

src/naive-store/packages.lisp.

Use List
  • cl-getx.
  • common-lisp.
Used By List
Public Interface
Internals

4.7 naive-impl

Source

src/naive-store/naive-impl/package.lisp.

Use List
Public Interface
Internals

4.8 indexed-impl

Source

src/naive-indexed/packages.lisp.

Use List
Public Interface
Internals

Previous: , Up: Packages   [Contents][Index]

4.9 cl-naive-store.document-types

Source

src/document-types/packages.lisp.

Use List
Used By List

cl-naive-store.naive-documents.

Public Interface
Internals

5 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


Next: , Previous: , Up: Definitions   [Contents][Index]

5.1 Public Interface


Next: , Previous: , Up: Public Interface   [Contents][Index]

5.1.1 Special variables

Special Variable: %loading-shard%

Used during the loading of an individual shard. That way no heavy recursive locking has to be done.

Package

naive-impl.

Source

src/naive-store/naive-impl/common.lisp.

Special Variable: *break-on-error-log*

Causes a break when logging errors of type :error and :warning.

Package

naive-impl.

Source

src/naive-store/naive-impl/logs.lisp.

Special Variable: *debug-log-p*

Switches debug logging or off for debug-log

Package

naive-impl.

Source

src/naive-store/naive-impl/logs.lisp.

Special Variable: *disable-parallel-p*

Depending on the data and how naive-store is used switching of parallel processing could produce better performance. This does not disable parallel loading of shards but it does disable all other parallel processing.

Switching off parallel processing is achieved by ignoring the parallel-p argument of do-sequence when *disable-parallel-p* is t.

So if you are customising cl-naive-store use do-sequence for simple parallel processing or make sure that your customization obeys *disable-parallel-p* where possible.

Package

cl-naive-store.naive-core.

Source

src/naive-store/naive-impl/common.lisp.

Special Variable: *do-partial-indexing*

When this is set to t (which is the default), indexing is done for the individual elements of the indexes as well.

Package

cl-naive-store.naive-indexed.

Source

src/naive-indexed/naive-indexed.lisp.

Special Variable: *lock*
Package

naive-impl.

Source

src/naive-store/naive-impl/common.lisp.


5.1.2 Macros

Macro: do-sequence ((element-var sequence &key index-var parallel-p) &body body)

Iterates over the sequence applying body. In the body you can use the element-var and/or the index-var if supplied.

If you set parallel-p then the body is executed asyncronously. Asyncronous excecution places restraints on how special variables can be used within the body.

From lparallel documentation:

To establish permanent dynamic bindings inside workers (thread-local variables), use the :bindings argument to make-kernel, which is an alist of (var-name . value-form) pairs. Each value-form is evaluated inside each worker when it is created. (So if you have two workers, each value-form will be evaluated twice.)

Notes:

Uses loop or lparallel:pdotimes depending on parallel-p value.

To get the best out of do-sequence use the parallel option if the sequence is large (> 1000) or the body is excecution heavy.

Package

cl-naive-store.naive-core.

Source

src/naive-store/naive-impl/common.lisp.

Macro: with-file-lock ((path &key interval) &body body)

Get an exclusive lock on a file. If lock cannot be obtained, keep trying after waiting a while.

Source: Giovanni Gigante https://sourceforge.net/p/cl-cookbook/patches/8/|#

Package

naive-impl.

Source

src/naive-store/naive-impl/files.lisp.

Macro: with-open-file-lock ((stream file &key direction if-exists if-does-not-exist) &body body)

Opens a file with a file lock and writes to the file.

Package

naive-impl.

Source

src/naive-store/naive-impl/files.lisp.


5.1.3 Ordinary functions

Reader: blob-file-ext (instance)
Writer: (setf blob-file-ext) (instance)
Package

cl-naive-store.naive-core.

Source

src/naive-store/blob.lisp.

Target Slot

file-ext.

Reader: blob-file-type (instance)
Writer: (setf blob-file-type) (instance)
Package

cl-naive-store.naive-core.

Source

src/naive-store/blob.lisp.

Target Slot

file-type.

Reader: blob-location (instance)
Writer: (setf blob-location) (instance)
Package

cl-naive-store.naive-core.

Source

src/naive-store/blob.lisp.

Target Slot

location.

Function: blob-p (object)
Package

cl-naive-store.naive-core.

Source

src/naive-store/blob.lisp.

Reader: blob-raw (instance)
Writer: (setf blob-raw) (instance)
Package

cl-naive-store.naive-core.

Source

src/naive-store/blob.lisp.

Target Slot

raw.

Function: blob-ref-p (document)
Package

cl-naive-store.naive-core.

Source

src/naive-store/blob.lisp.

Function: blob-string-value (blob)

Returns the value of a blob as a string.

Package

cl-naive-store.naive-core.

Source

src/naive-store/blob.lisp.

Function: concrete-type-get-set (element)
Package

cl-naive-store.document-type-defs.

Source

src/document-type-defs/document-type-defs.lisp.

Function: debug-log (format-control-string &rest arguments-and-keys)
Package

naive-impl.

Source

src/naive-store/naive-impl/logs.lisp.

Reader: document-changes (instance)
Writer: (setf document-changes) (instance)
Package

cl-naive-store.naive-documents.

Source

src/naive-documents/naive-documents.lisp.

Target Slot

changes.

Reader: document-collection (instance)
Writer: (setf document-collection) (instance)
Package

cl-naive-store.naive-documents.

Source

src/naive-documents/naive-documents.lisp.

Target Slot

collection.

Reader: document-deleted-p (instance)
Writer: (setf document-deleted-p) (instance)
Package

cl-naive-store.naive-documents.

Source

src/naive-documents/naive-documents.lisp.

Target Slot

deleted-p.

Reader: document-document-type (instance)
Writer: (setf document-document-type) (instance)
Package

cl-naive-store.naive-documents.

Source

src/naive-documents/naive-documents.lisp.

Target Slot

document-type.

Reader: document-elements (instance)
Writer: (setf document-elements) (instance)
Package

cl-naive-store.naive-documents.

Source

src/naive-documents/naive-documents.lisp.

Target Slot

elements.

Reader: document-hash (instance)
Writer: (setf document-hash) (instance)
Package

cl-naive-store.naive-documents.

Source

src/naive-documents/naive-documents.lisp.

Target Slot

hash.

Function: document-list-to-csv (document-list)
Package

cl-naive-store.naive-documents.

Source

src/naive-documents/export-csv.lisp.

Function: document-list-to-json (document-list)
Package

cl-naive-store.naive-documents.

Source

src/naive-documents/export-json.lisp.

Function: document-of-type-p (document document-type)

Returns t if the document is of the data type.

Package

cl-naive-store.naive-documents.

Source

src/naive-documents/naive-documents.lisp.

Function: document-p (object)
Package

cl-naive-store.naive-documents.

Source

src/naive-documents/naive-documents.lisp.

Function: document-shard-mac (collection document)

Calculating a mac is expensive so caching shard value macs in a hashtable but that hashtable needs to be thread safe so using safe functions to get and set.

Package

cl-naive-store.naive-core.

Source

src/naive-store/naive-core.lisp.

Reader: document-store (instance)
Writer: (setf document-store) (instance)
Package

cl-naive-store.naive-documents.

Source

src/naive-documents/naive-documents.lisp.

Target Slot

store.

Reader: document-versions (instance)
Writer: (setf document-versions) (instance)
Package

cl-naive-store.naive-documents.

Source

src/naive-documents/naive-documents.lisp.

Target Slot

versions.

Function: documents-to-plist (tree)
Package

cl-naive-store.naive-documents.

Source

src/naive-documents/export.lisp.

Function: empty-p (value)

Checks if value is null/nil or an empty string..

Package

cl-naive-store.naive-core.

Source

src/naive-store/naive-impl/common.lisp.

Function: file-to-string (file)

Reads a file and returns the contents as a string.

NOTES: You could achieve the same with with-output-to-string, but now you dont have to worry about supplying a string that can be written to.

Package

naive-impl.

Source

src/naive-store/naive-impl/files.lisp.

Function: find-collection-definitions (store)
Package

cl-naive-store.naive-core.

Source

src/naive-store/load.lisp.

Function: find-equalp-document (document document-list)
Package

cl-naive-store.naive-documents.

Source

src/naive-documents/query.lisp.

Function: frmt (control-string &rest args)

Short hand for (format nil ..).

Package

cl-naive-store.naive-core.

Source

src/naive-store/naive-impl/common.lisp.

Function: get-store-from-def (universe store-name)

Tries to find a store definition file on disk and if it does it loads the store into the universe, but it does not load the collections!.

Package

cl-naive-store.naive-core.

Source

src/naive-store/naive-core.lisp.

Function: load-document-reference-collection (universe document-ref)

When documents are persisted to file any document values that are referencing an document in a different collection is first sanitized (just enough info to retrieve the document later from where it is stored).

When documents are read from a file the references need to be converted to documents but for that to happen the collection containing the referenced documents need to be loaded first.

Package

naive-impl.

Source

src/naive-store/naive-impl/parse-document.lisp.

Function: make-blob (&key file-type file-ext location raw parent-accessor)
Package

cl-naive-store.naive-core.

Source

src/naive-store/blob.lisp.

Function: make-document (&key store collection document-type hash elements changes versions deleted-p persisted-p)
Package

cl-naive-store.naive-documents.

Source

src/naive-documents/naive-documents.lisp.

Function: map-append (fn &rest lists)

Non distructive version of mapcan. Source: On Lisp

Package

naive-impl.

Source

src/naive-store/naive-impl/common.lisp.

Function: maphash-collect (fn hash-table &key append-p)

Collects the results of a maphash. Pushes to a list by default, use append-p to append instead. NIL results are not collected.

Package

naive-impl.

Source

src/naive-store/naive-impl/common.lisp.

Function: match-shard (filename shards)

Check filename against a list of shards to find the matching shard.

Package

cl-naive-store.naive-core.

Source

src/naive-store/naive-core.lisp.

Function: persist-collection (collection)

Persists the documents in a collection in the order that they where added.

Package

cl-naive-store.naive-core.

Source

src/naive-store/naive-core.lisp.

Function: plist-to-pairs (values)

Returns a list of key value pairs of a plist.

Package

naive-impl.

Source

src/naive-store/naive-impl/common.lisp.

Function: plist-to-values (values)

Returns the values of a plist.

Package

naive-impl.

Source

src/naive-store/naive-impl/common.lisp.

Function: read-blob (blob-ref-values)

Reads the raw blob contents from file.

Package

cl-naive-store.naive-core.

Source

src/naive-store/blob.lisp.

Function: sexp-from-file (pathname)

Read sexp from file.

Package

naive-impl.

Source

src/naive-store/naive-impl/files.lisp.

Function: (setf sexp-from-file) (pathname)
Package

naive-impl.

Source

src/naive-store/naive-impl/files.lisp.

Function: trim-whitespace (string)

Removes white spaces from a string.

Package

naive-impl.

Source

src/naive-store/naive-impl/common.lisp.

Function: write-blob (file value)

Wrties the raw blob contents to file.

Package

cl-naive-store.naive-core.

Source

src/naive-store/blob.lisp.

Function: write-log (location type message)

Writes errors to location.

Different Types are written to different files,
:error => error.err
:warning => warning.wrn
:debug => debug.dbl
:log => log.lg

Note:

Not writing stuf to .log files because that is what persist uses!!!.

Package

naive-impl.

Source

src/naive-store/naive-impl/logs.lisp.

Function: write-to-file (file object &key if-exists)

Writes to file using with-open-file-lock.

Package

naive-impl.

Source

src/naive-store/naive-impl/files.lisp.


5.1.4 Generic functions

Generic Function: add-collection (store collection)

Adds a collection to a store.

Package

cl-naive-store.naive-core.

Source

src/naive-store/naive-core.lisp.

Methods
Method: add-collection :after ((store store) (collection document-type-collection-mixin))

Uses document type to figure out what the keys of the collection are.

Source

src/document-types/document-types.lisp.

Method: add-collection ((store store) (collection collection))
Generic Function: add-document (collection document &key shard replace-existing-p update-index-p handle-duplicates-p &allow-other-keys)

Adds a document to the collection, it DOES NOT PERSIST the change, if you want adding with persistance use persist-document or persist the collection as a whole after you have done your adding.

Supply the shard the document should belong to if you can, especially if you have a lot of documents to add to a specific shard. If not supplied the (shard-elements collection) will be used to calculate which shard to use for the document.

add-document returns multiple values:

The first returned value is the actual document supplied.
The second returned value indicates what action was taken ie. was it added newly or was an exiting document replaced.
The third returned value is the replaced document.

NOTES:

In general you should not be calling add-document directly, you should use persist-document. Calling add-document directly is allowed so you can create temporary collections that can be thrown away.

cl-naive-store does not have a update-document function, add-document does both and its behaviour can be complex depending on the key parameters supplied. Also the behaviour can differ for different types of collections. Check the appropriate collection documentation for more details.

Package

cl-naive-store.naive-core.

Source

src/naive-store/documents.lisp.

Methods
Method: add-document ((collection indexed-collection-mixin) document &key shard replace-existing-p update-index-p &allow-other-keys)

Duplicates are not allowed for indexed collections!

If the document has no hash and a document with the same keys exists in the collection the supplied document’s hash will be set to that of the existing document. The existing document will then be replaced with the supplied document. This is done to maintain hash consistancy of the store.

If you set replace-existing-p to nil then an existing document wont be replaced by the supplied document. Basically nothing will be done.

Indexes will be updated by default, if you want to stop index updates set update-index-p to nil. Just remember that if the document is really "new" to the collection the indexes will be updated in any case.

Source

src/naive-indexed/naive-indexed.lisp.

Method: add-document ((collection collection) document &key shard handle-duplicates-p replace-existing-p &allow-other-keys)

None of the following will have an effect if handle-duplicates = nil.

If a document with the same keys exists in the collection the supplied the existing document will be replaced with the supplied document.

If you set replace-existing-p to nil then an existing document wont be replaced by the supplied document. Basically nothing will be done.

Generic Function: add-document-type (store document-type)

Adds a document-type to a store.

Package

cl-naive-store.naive-core.

Source

src/document-types/document-types.lisp.

Methods
Method: add-document-type ((store document-type-store-mixin) (document-type document-type))
Generic Function: add-index (collection shard document &key key-values &allow-other-keys)

Adds a document to two indexes. The first uses a UUID that will stay with the document for its life time. The UUID is used when persisting the document and is never changed once created. This allows us to change key values without loosing the identify of the original document.

The second is a key value hash index to be used when looking for duplicate documents during persist. If you are not using document-types the order of the keys in the plist matter. To make sure that you dont muck with the order of values/keys in your plists initialize all the possible value pairs with nil so that way the order is set.

A shard must be supplied.

Package

cl-naive-store.naive-indexed.

Source

src/naive-indexed/naive-indexed.lisp.

Methods
Method: add-index ((collection indexed-collection-mixin) shard document &key key-values &allow-other-keys)
Generic Function: add-store (universe store)

Adds a store document to a universe.

Package

cl-naive-store.naive-core.

Source

src/naive-store/naive-core.lisp.

Methods
Method: add-store ((universe universe) (store store))
Generic Reader: attributes (object)
Generic Writer: (setf attributes) (object)
Package

cl-naive-store.document-types.

Methods
Reader Method: attributes ((element element))
Writer Method: (setf attributes) ((element element))

A property list of additional element attributes that are not data type specific.

Source

src/document-types/document-types.lisp.

Target Slot

attributes.

Generic Function: clear-collection (collection)

Clears documents indexes etc from collection.

Package

cl-naive-store.naive-core.

Source

src/naive-store/naive-core.lisp.

Methods
Method: clear-collection (collection)
Generic Function: clear-documents (shard)
Package

cl-naive-store.naive-core.

Methods
Method: clear-documents ((shard indexed-shard))
Source

src/naive-indexed/naive-indexed.lisp.

Generic Reader: collection-class (object)
Generic Writer: (setf collection-class) (object)
Package

cl-naive-store.naive-core.

Methods
Reader Method: collection-class ((store store))
Writer Method: (setf collection-class) ((store store))

The class that should be used to make collections.

Source

src/naive-store/naive-core.lisp.

Target Slot

collection-class.

Generic Reader: collections (object)
Generic Writer: (setf collections) (object)
Package

cl-naive-store.naive-core.

Methods
Reader Method: collections ((store store))
Writer Method: (setf collections) ((store store))

List of collections represented by this store.

Source

src/naive-store/naive-core.lisp.

Target Slot

collections.

Generic Function: compose-document (collection shard document-form &key &allow-other-keys)

The loading of documents happens in a two step process. First documents are read with (*read-eval* nil). Then the sexp representing a raw document is processed to compose the required in memory representation.

Package

naive-impl.

Source

src/naive-store/naive-impl/parse-document.lisp.

Methods
Method: compose-document ((collection document-collection) shard document-form &key &allow-other-keys)
Source

src/naive-documents/documents-impl/parse-document.lisp.

Method: compose-document (collection shard document-form &key &allow-other-keys)
Generic Function: compose-parse (collection shard sexp doc)

Processes document form for compose-document.

Package

naive-impl.

Source

src/naive-store/naive-impl/parse-document.lisp.

Methods
Method: compose-parse (collection shard sexp doc)
Generic Function: compose-special (collection shard sexp type)

Does special processing to compose a specific type of document or element.

Package

naive-impl.

Source

src/naive-store/naive-impl/parse-document.lisp.

Methods
Method: compose-special ((collection document-collection) shard sexp (type (eql :blob)))
Source

src/naive-documents/documents-impl/parse-document.lisp.

Method: compose-special ((collection document-collection) shard sexp (type (eql :child-document)))
Source

src/naive-documents/documents-impl/parse-document.lisp.

Method: compose-special ((collection document-collection) shard sexp (type (eql :document)))
Source

src/naive-documents/documents-impl/parse-document.lisp.

Method: compose-special ((collection indexed-collection-mixin) shard sexp (type (eql :document)))
Source

src/naive-indexed/parse-document.lisp.

Method: compose-special (collection shard sexp (type (eql :reference)))
Method: compose-special (collection shard sexp (type (eql :hash-table)))
Method: compose-special (collection shard sexp (type (eql :blob)))
Method: compose-special (collection shard sexp (type (eql :document)))
Generic Function: data-loaded-p (container &key *allow-other-keys shard-macs &allow-other-keys)

Checks if the data is loaded for the container, be it universe , store or collection.

NOTES:

This physically checks each collection’s underlying concrete data structure for data. This is done because a collection can be empty and still loaded, thus setting a status when loaded became confusing and could be missed by an over loading method.

If you change the underlying container for (shards collection) or the container for (docutments shard) you have to implement data-loaded-p. Your implementation is expected to physically check for document count > 0 and not some status set. Be smart about it you are not expected to return a count so dont waist time counting just check if there is at least one document in the container.

Package

cl-naive-store.naive-core.

Source

src/naive-store/naive-core.lisp.

Methods
Method: data-loaded-p ((universe universe) &key &allow-other-keys)
Method: data-loaded-p ((store store) &key &allow-other-keys)
Method: data-loaded-p ((collection collection) &key shard-macs &allow-other-keys)
Generic Function: delete-document (collection document &key shard &allow-other-keys)

Removes a document from the collection, marks the document as deleted and persists the deleted document to disk.

Package

cl-naive-store.naive-core.

Source

src/naive-store/documents.lisp.

Methods
Method: delete-document ((collection collection) document &key shard &allow-other-keys)
Generic Function: deleted-p (document)

Indicates if a data document has been marked as deleted.

naive-store writes data to file sequentially and when deleting data documents it does not remove a data document from the underlying file it just marks it as deleted.

Package

cl-naive-store.naive-core.

Source

src/naive-store/documents.lisp.

Methods
Method: deleted-p ((document document))
Source

src/naive-documents/documents.lisp.

Method: deleted-p (document)
Generic Function: (setf deleted-p) (document &key &allow-other-keys)
Package

cl-naive-store.naive-core.

Source

src/naive-store/documents.lisp.

Methods
Method: (setf deleted-p) ((document document) &key &allow-other-keys)
Source

src/naive-documents/documents.lisp.

Method: (setf deleted-p) (document &key &allow-other-keys)
Generic Reader: document-type (object)
Generic Writer: (setf document-type) (object)
Package

cl-naive-store.document-types.

Methods
Reader Method: document-type ((document-type-collection-mixin document-type-collection-mixin))
Writer Method: (setf document-type) ((document-type-collection-mixin document-type-collection-mixin))

The document-type that this collection contains documents of.

Source

src/document-types/document-types.lisp.

Target Slot

document-type.

Generic Reader: document-type-class (object)
Generic Writer: (setf document-type-class) (object)
Package

cl-naive-store.document-types.

Methods
Reader Method: document-type-class ((document-type-store-mixin document-type-store-mixin))
Writer Method: (setf document-type-class) ((document-type-store-mixin document-type-store-mixin))

The class that should be used to make document-type documents. IMPL NOTES: To deal with customization of document-type.

Source

src/document-types/document-types.lisp.

Target Slot

document-type-class.

Generic Reader: document-types (object)
Generic Writer: (setf document-types) (object)
Package

cl-naive-store.document-types.

Methods
Reader Method: document-types ((document-type-store-mixin document-type-store-mixin))
Writer Method: (setf document-types) ((document-type-store-mixin document-type-store-mixin))

List of document-types represented by this store’s collections.

Source

src/document-types/document-types.lisp.

Target Slot

document-types.

Generic Function: document-values (document)

Returns a plist of document values.

NOTES:

Exists to ease the compatibility of various implementation functions. Basically it blurs the line between plists and more complex documents like cl-naive-store.naive-documents document struct.

This helps keep the amount of specializations needed down considerably.

Package

cl-naive-store.naive-core.

Source

src/naive-store/documents.lisp.

Methods
Method: document-values ((document document))
Source

src/naive-documents/naive-documents.lisp.

Method: document-values (document)
Generic Function: documents (object)
Package

cl-naive-store.naive-core.

Methods
Method: documents ((collection collection))
Source

src/naive-store/naive-core.lisp.

Reader Method: documents ((shard shard))

Documents belonging to shard.

Source

src/naive-store/naive-core.lisp.

Target Slot

documents.

Generic Writer: (setf documents) (object)
Package

cl-naive-store.naive-core.

Methods
Writer Method: (setf documents) ((shard shard))

Documents belonging to shard.

Source

src/naive-store/naive-core.lisp.

Target Slot

documents.

Generic Reader: element-class (object)
Generic Writer: (setf element-class) (object)
Package

cl-naive-store.document-types.

Methods
Reader Method: element-class ((document-type document-type))
Writer Method: (setf element-class) ((document-type document-type))

The class that should be used to make element documents.
NOTES:

element-class is declaratively specified here because so that elements can be dynamicly created when definition type definitions are read from file. See naive-store-documents for usage examples.

Source

src/document-types/document-types.lisp.

Target Slot

element-class.

Generic Reader: elements (object)
Generic Writer: (setf elements) (object)
Package

cl-naive-store.document-types.

Methods
Reader Method: elements ((document-type document-type))
Writer Method: (setf elements) ((document-type document-type))

Field definitions that represents a data unit.

Source

src/document-types/document-types.lisp.

Target Slot

elements.

Generic Function: ensure-location (object)

Tries to find or build path to cl-naive-store files.

Package

cl-naive-store.naive-core.

Source

src/naive-store/naive-core.lisp.

Methods
Method: ensure-location ((object collection))
Method: ensure-location ((object store))
Method: ensure-location ((object universe))
Generic Function: existing-document (collection document &key shard key-values &allow-other-keys)

Finds any documents with the same key values. This could return the exact same document or a similar document.

If a shard is passed in then the search is limited to that shard.

IMPL NOTES:

This is an essential part of loading and persisting documents, take care when implementing.

Package

cl-naive-store.naive-core.

Source

src/naive-store/documents.lisp.

Methods
Method: existing-document ((collection indexed-collection-mixin) document &key shard key-values &allow-other-keys)
Source

src/naive-indexed/naive-indexed.lisp.

Method: existing-document (collection document &key shard &allow-other-keys)
Generic Function: find-document-by-hash (collection hash &key shards &allow-other-keys)

Finds the document that matches the hash.

Package

naive-impl.

Source

src/naive-store/naive-impl/parse-document.lisp.

Methods
Method: find-document-by-hash ((collection indexed-collection-mixin) hash &key shards &allow-other-keys)
Source

src/naive-indexed/parse-document.lisp.

Method: find-document-by-hash (collection hash &key shards &allow-other-keys)
Generic Function: get-collection (store collection-name)

Returns a collection document if found in the store.

Package

cl-naive-store.naive-core.

Source

src/naive-store/naive-core.lisp.

Methods
Method: get-collection ((store store) collection-name)
Generic Function: get-collection-from-def (store collection-name)

Tries to find the collection definition file on disk and loads it into the store, but it does not load the collection’s data.

Package

cl-naive-store.naive-core.

Source

src/naive-store/naive-core.lisp.

Methods
Method: get-collection-from-def ((store document-type-store-mixin) collection-name)
Source

src/document-types/document-types.lisp.

Method: get-collection-from-def ((store store) collection-name)
Generic Function: get-document-type (store type-name)

Returns a document-type document if found in the store.

Package

cl-naive-store.naive-core.

Source

src/document-types/document-types.lisp.

Methods
Method: get-document-type ((store document-type-store-mixin) type-name)
Generic Function: get-document-type-from-def (store document-type-name)

Tries to find the document definition on disk.

Package

cl-naive-store.document-types.

Source

src/document-types/document-types.lisp.

Methods
Method: get-document-type-from-def ((store store) document-type-name)
Generic Function: get-shard (collection shard-mac &key &allow-other-keys)

Get the shard object by its mac. Shard lookups are done so much that there is no choice but to cache them in a hashtable, but that hashtable needs to be thread safe so using safe functions to get and set.

Package

cl-naive-store.naive-core.

Source

src/naive-store/naive-core.lisp.

Methods
Method: get-shard ((collection indexed-collection-mixin) shard-mac &key &allow-other-keys)
Source

src/naive-indexed/naive-indexed.lisp.

Method: get-shard (collection shard-mac &key &allow-other-keys)
Method: get-shard :around (collection shard-mac &key &allow-other-keys)
Generic Function: get-store (universe store-name)

Returns a store if found in the universe.

Package

cl-naive-store.naive-core.

Source

src/naive-store/naive-core.lisp.

Methods
Method: get-store ((universe universe) store-name)
Generic Function: gethash-safe (key hash &key lock recursive-p)

Puts lock around hash get access for those cl implementations that dont have a thread safe hashtable.

Package

cl-naive-store.naive-core.

Source

src/naive-store/naive-impl/common.lisp.

Methods
Method: gethash-safe (key hash &key lock recursive-p)
Generic Function: (setf gethash-safe) (key hash &key lock recursive-p)

Puts lock around hash set access.

Package

cl-naive-store.naive-core.

Source

src/naive-store/naive-impl/common.lisp.

Methods
Method: (setf gethash-safe) (key hash &key lock recursive-p)
Generic Function: getxe (document element type &key &allow-other-keys)
Package

cl-naive-store.document-type-defs.

Source

src/document-type-defs/document-type-defs.lisp.

Methods
Method: getxe ((type (eql :text-blob)) document element &key &allow-other-keys)
Source

src/naive-documents/document-types.lisp.

Method: getxe ((type (eql :html)) document element &key &allow-other-keys)
Source

src/naive-documents/document-types.lisp.

Method: getxe ((type (eql :css)) document element &key &allow-other-keys)
Source

src/naive-documents/document-types.lisp.

Method: getxe ((type (eql :java-script)) document element &key &allow-other-keys)
Source

src/naive-documents/document-types.lisp.

Method: getxe ((type (eql :lisp-code)) document element &key &allow-other-keys)
Source

src/naive-documents/document-types.lisp.

Method: getxe (document element type &key &allow-other-keys)
Generic Function: (setf getxe) (document element type &key parent-hash &allow-other-keys)
Package

cl-naive-store.document-type-defs.

Methods
Method: (setf getxe) ((type (eql :text-blob)) document element &key parent-hash &allow-other-keys)
Source

src/naive-documents/document-types.lisp.

Method: (setf getxe) ((type (eql :java-script)) document element &key parent-hash &allow-other-keys)
Source

src/naive-documents/document-types.lisp.

Method: (setf getxe) ((type (eql :html)) document element &key parent-hash &allow-other-keys)
Source

src/naive-documents/document-types.lisp.

Method: (setf getxe) ((type (eql :css)) document element &key parent-hash &allow-other-keys)
Source

src/naive-documents/document-types.lisp.

Method: (setf getxe) ((type (eql :lisp-code)) element document &key parent-hash &allow-other-keys)
Source

src/naive-documents/document-types.lisp.

Method: (setf getxe) ((type (eql :collection-contained-document)) element (document document) &key &allow-other-keys)
Source

src/naive-documents/document-types.lisp.

Method: (setf getxe) ((type (eql :contained-document)) element (document document) &key &allow-other-keys)
Source

src/naive-documents/document-types.lisp.

Method: (setf getxe) ((type (eql :document)) element (document document) &key &allow-other-keys)
Source

src/naive-documents/document-types.lisp.

Method: (setf getxe) (document element (type (eql :collection-contained-document)) &key &allow-other-keys)
Source

src/document-type-defs/document-type-defs.lisp.

Method: (setf getxe) (document element (type (eql :contained-document)) &key &allow-other-keys)
Source

src/document-type-defs/document-type-defs.lisp.

Method: (setf getxe) (document element (type (eql :collection-documents)) &key &allow-other-keys)
Source

src/document-type-defs/document-type-defs.lisp.

Method: (setf getxe) (document element (type (eql :key-value-list)) &key &allow-other-keys)
Source

src/document-type-defs/document-type-defs.lisp.

Method: (setf getxe) (document element (type (eql :value-list)) &key &allow-other-keys)
Source

src/document-type-defs/document-type-defs.lisp.

Method: (setf getxe) (document element (type (eql :value-string-list)) &key &allow-other-keys)
Source

src/document-type-defs/document-type-defs.lisp.

Method: (setf getxe) (document element (type (eql :document)) &key &allow-other-keys)
Source

src/document-type-defs/document-type-defs.lisp.

Method: (setf getxe) (document element (type (eql :collection)) &key &allow-other-keys)
Source

src/document-type-defs/document-type-defs.lisp.

Method: (setf getxe) (document element (type (eql :lambda)) &key &allow-other-keys)
Source

src/document-type-defs/document-type-defs.lisp.

Method: (setf getxe) (document element (type (eql :boolean)) &key &allow-other-keys)
Source

src/document-type-defs/document-type-defs.lisp.

Method: (setf getxe) (document element (type (eql :time)) &key &allow-other-keys)
Source

src/document-type-defs/document-type-defs.lisp.

Method: (setf getxe) (document element (type (eql :date)) &key &allow-other-keys)
Source

src/document-type-defs/document-type-defs.lisp.

Method: (setf getxe) (document element (type (eql :date-time)) &key &allow-other-keys)
Source

src/document-type-defs/document-type-defs.lisp.

Method: (setf getxe) (document element (type (eql :integer)) &key &allow-other-keys)
Source

src/document-type-defs/document-type-defs.lisp.

Method: (setf getxe) (document element (type (eql :number)) &key &allow-other-keys)
Source

src/document-type-defs/document-type-defs.lisp.

Method: (setf getxe) (document element (type (eql :keyword)) &key &allow-other-keys)
Source

src/document-type-defs/document-type-defs.lisp.

Method: (setf getxe) (document element (type (eql :symbol)) &key &allow-other-keys)
Source

src/document-type-defs/document-type-defs.lisp.

Method: (setf getxe) (document element type &key &allow-other-keys)
Source

src/document-type-defs/document-type-defs.lisp.

Method: (setf getxe) :around (document element type &key &allow-other-keys)
Source

src/document-type-defs/document-type-defs.lisp.

Generic Function: getxn (document element-name)

Gets changed value made to the document. IE new value.

Package

cl-naive-store.naive-documents.

Source

src/naive-documents/naive-documents.lisp.

Methods
Method: getxn ((document document) element-name)
Generic Function: getxo (document element-name)

Gets value ignoring any changes made to the document. IE old value.

Package

cl-naive-store.naive-documents.

Source

src/naive-documents/naive-documents.lisp.

Methods
Method: getxo ((document document) element-name)
Generic Function: hash (document)

Returns the hash identifier for a data document. Data documents need a hash identifier to work with naive-store-indexed. naive-store-indexed will edit the document to add a hash identifier when adding documents to a collection. naive-store-indexed uses a UUID in its default implementation.

Package

cl-naive-store.naive-indexed.

Source

src/naive-indexed/naive-indexed.lisp.

Methods
Method: hash ((document document))
Source

src/naive-documents/naive-documents.lisp.

Method: hash (document)
Generic Function: (setf hash) (document)
Package

cl-naive-store.naive-indexed.

Source

src/naive-indexed/naive-indexed.lisp.

Methods
Method: (setf hash) ((document document))
Source

src/naive-documents/naive-documents.lisp.

Method: (setf hash) (document)
Generic Function: index-lookup-hash (collection hash &key shards &allow-other-keys)

Looks up document in UUID hash index. If sharsd is not supplied all loaded shards will be searched.

Will use shards to limit the lookup to specific shards.

Package

cl-naive-store.naive-indexed.

Source

src/naive-indexed/naive-indexed.lisp.

Methods
Method: index-lookup-hash ((collection indexed-collection-mixin) hash &key shards &allow-other-keys)
Generic Function: index-lookup-values (collection values &key shards &allow-other-keys)

Looks up document in key value hash index. If you are not using document-types then the order of values matter.

Will use shards to limit the lookup to specific shards.

Package

cl-naive-store.naive-indexed.

Source

src/naive-indexed/naive-indexed.lisp.

Methods
Method: index-lookup-values ((collection indexed-collection-mixin) values &key shards &allow-other-keys)
Method: index-lookup-values ((collection collection) values &key shards &allow-other-keys)
Generic Function: index-values (collection values &key &allow-other-keys)

Returns a set of index values from the values of a data document.

Package

indexed-impl.

Source

src/naive-indexed/indexed-impl.lisp.

Methods
Method: index-values ((collection document-collection) (values document) &key &allow-other-keys)
Source

src/naive-documents/indexed.lisp.

Method: index-values (collection values &key &allow-other-keys)
Generic Reader: indexes (object)
Generic Writer: (setf indexes) (object)
Package

cl-naive-store.naive-indexed.

Methods
Reader Method: indexes ((indexed-collection-mixin indexed-collection-mixin))
Writer Method: (setf indexes) ((indexed-collection-mixin indexed-collection-mixin))

List of index combinations. Also indexes members partially if *partial-indexing* is t, for example ’((:emp-no :surname gender)) is indexed as (:emp-no :surname :gender), (:emp-no :surname), :emp-no, :surname and :gender

Source

src/naive-indexed/naive-indexed.lisp.

Target Slot

indexes.

Generic Reader: key-p (object)
Generic Writer: (setf key-p) (object)
Package

cl-naive-store.document-types.

Methods
Reader Method: key-p ((element element))
Writer Method: (setf key-p) ((element element))

Indicates that the element is part of the primary key.

Can be used for indexing and document comparison. For example when a new document is persisted naive-store-documents checks for documents with the same index value and then updates the existing document.

Source

src/document-types/document-types.lisp.

Target Slot

key-p.

Generic Reader: key-value-index (object)
Generic Writer: (setf key-value-index) (object)
Package

cl-naive-store.naive-indexed.

Methods
Reader Method: key-value-index ((indexed-shard indexed-shard))
Writer Method: (setf key-value-index) ((indexed-shard indexed-shard))

Hash table keyed on document key values for quick retrieval of an document. Used when doing key value equality comparisons.

Source

src/naive-indexed/naive-indexed.lisp.

Target Slot

key-value-index.

Generic Function: key-values (collection values &key &allow-other-keys)

Returns a set of key values from the values of a data document. Checks the collection keys or uses hash.

Package

cl-naive-store.naive-core.

Source

src/naive-store/documents.lisp.

Methods
Method: key-values ((collection document-collection) document &key &allow-other-keys)
Source

src/naive-documents/naive-documents.lisp.

Method: key-values ((collection document-type-collection-mixin) document &key &allow-other-keys)
Source

src/document-types/document-types.lisp.

Method: key-values ((collection collection) values &key &allow-other-keys)
Generic Reader: keys (object)
Generic Writer: (setf keys) (object)
Package

cl-naive-store.naive-core.

Methods
Reader Method: keys ((collection collection))
Writer Method: (setf keys) ((collection collection))

Keys need to be set to handle duplicates, the default is :key if :key is not found in the document then duplicates will occur.

NOTES:

For collections that use cl-naive-document-type there is a fallback the document-type is checked for keys as well and the collection’s keys will be set to the keys set in the document-type elements.

Source

src/naive-store/naive-core.lisp.

Target Slot

keys.

Generic Reader: label (object)
Generic Writer: (setf label) (object)
Package

cl-naive-store.document-types.

Methods
Reader Method: label ((document-type document-type))
Writer Method: (setf label) ((document-type document-type))

Human readable/formated short description.

Source

src/document-types/document-types.lisp.

Target Slot

label.

Generic Function: load-data (collection &key force-reload-p shard-macs parallel-p &allow-other-keys)

Loads the data documents of a collection from file or files if sharding is used. If the data is already loaded it wont reload it, if you want the data to be reloaded use force-reload-p.

shard-macs is a list of shard macs to indicate which shards should be used. If no shards are specified all shards will be loaded.

NOTES:

load-data could have been used to load universe or store as well but those have a wealth of other key word parameters to control exactly what to do that makes the load-data signature a nightmare to understand. So separate methods load-stores (for universe) and load-collections (for a store) exists for that.

Package

cl-naive-store.naive-core.

Source

src/naive-store/naive-core.lisp.

Methods
Method: load-data ((collection collection) &key shard-macs parallel-p &allow-other-keys)
Source

src/naive-store/load.lisp.

Generic Function: load-store (store &key with-data-p &allow-other-keys)

Loads the document-types and collections, with or without the actual data documents.

Package

cl-naive-store.naive-core.

Source

src/naive-store/load.lisp.

Methods
Method: load-store ((store document-type-store-mixin) &key with-data-p &allow-other-keys)
Source

src/document-types/document-types.lisp.

Method: load-store ((store store) &key with-data-p &allow-other-keys)
Generic Function: load-stores (universe &key with-collections-p with-data-p &allow-other-keys)

Finds and loads collections a store, with or without data documents.

Package

cl-naive-store.naive-core.

Source

src/naive-store/load.lisp.

Methods
Method: load-stores (universe &key with-collections-p with-data-p &allow-other-keys)

Loads a whole universe, with or without collections and data documents.

Generic Reader: location (object)
Generic Writer: (setf location) (object)
Package

cl-naive-store.naive-core.

Methods
Reader Method: location ((universe universe))
Writer Method: (setf location) ((universe universe))

Directory path to stores.

Source

src/naive-store/naive-core.lisp.

Target Slot

location.

Reader Method: location ((store store))
Writer Method: (setf location) ((store store))

The directory path to the document-type files and collection files for this store.

Source

src/naive-store/naive-core.lisp.

Target Slot

location.

Reader Method: location ((collection collection))
Writer Method: (setf location) ((collection collection))

The directory path to where files for this collection are stored.

Source

src/naive-store/naive-core.lisp.

Target Slot

location.

Reader Method: location ((shard shard))
Writer Method: (setf location) ((shard shard))

The file path to this shard is stored.

Source

src/naive-store/naive-core.lisp.

Target Slot

location.

Generic Reader: lock (object)
Generic Writer: (setf lock) (object)
Package

cl-naive-store.naive-core.

Methods
Reader Method: lock ((shard shard))
Writer Method: (setf lock) ((shard shard))

Used internally to do shard specific locking.

Source

src/naive-store/naive-core.lisp.

Target Slot

lock.

Generic Reader: mac (object)
Generic Writer: (setf mac) (object)
Package

cl-naive-store.naive-core.

Methods
Reader Method: mac ((shard shard))
Writer Method: (setf mac) ((shard shard))

Mac to identify shard.

Source

src/naive-store/naive-core.lisp.

Target Slot

mac.

Generic Function: make-mac (value &key key)

Produces a mac from the value. Mac’s should differ for different values.

NOTES:

This is used to create shard filenames.

Package

naive-impl.

Source

src/naive-store/naive-impl/common.lisp.

Methods
Method: make-mac (value &key key)
Generic Function: make-shard (collection shard-mac)
Package

cl-naive-store.naive-core.

Source

src/naive-store/naive-core.lisp.

Methods
Method: make-shard ((collection indexed-collection-mixin) shard-mac)
Source

src/naive-indexed/naive-indexed.lisp.

Method: make-shard (collection shard-mac)

Creates an instance of a shard using the supplied mac.

Generic Function: naive-reduce (collection &key query function initial-value index-values shards &allow-other-keys)

Uses query to select data documents from a collection and applies the function to those documents returning the result.

NOTES:

Does lazy loading.

Package

cl-naive-store.naive-core.

Source

src/naive-store/query.lisp.

Methods
Method: naive-reduce ((collection indexed-collection-mixin) &key index-values query function initial-value shards)

Extends naive-reduce to be able to take advantage of indexing. Reduce is done on values retrieved by the supplier index.

Source

src/naive-indexed/query.lisp.

Method: naive-reduce ((sequence sequence) &key query function initial-value &allow-other-keys)
Method: naive-reduce ((hash-table hash-table) &key query function initial-value &allow-other-keys)
Method: naive-reduce ((collection collection) &key query function initial-value shards &allow-other-keys)
Method: naive-reduce :before ((collection collection) &key shards &allow-other-keys)

Lazy loading data.

Generic Reader: name (object)
Generic Writer: (setf name) (object)
Package

cl-naive-store.naive-core.

Methods
Reader Method: name ((document-type document-type))
Writer Method: (setf name) ((document-type document-type))

String representing a document-type name.

Source

src/document-types/document-types.lisp.

Target Slot

name.

Reader Method: name ((element element))
Writer Method: (setf name) ((element element))

Name of the element. This should be a KEYWORD if you want data portability and some internals might expect a keyword.

Source

src/document-types/document-types.lisp.

Target Slot

name.

Reader Method: name ((store store))
Writer Method: (setf name) ((store store))

Store name.

Source

src/naive-store/naive-core.lisp.

Target Slot

name.

Reader Method: name ((collection collection))
Writer Method: (setf name) ((collection collection))

The collection name.

Source

src/naive-store/naive-core.lisp.

Target Slot

name.

Generic Function: persist (object &key &allow-other-keys)

Writes various store structural objects to

Package

cl-naive-store.naive-core.

Source

src/naive-store/naive-core.lisp.

Methods
Method: persist ((document-type document-type) &key &allow-other-keys)

Persists a document-type definition. Path to file is of this general format /universe/store-name/document-type-name.type.

Source

src/document-types/document-types.lisp.

Method: persist ((collection collection) &key &allow-other-keys)

Persists a collection definition and the documents in a collection. Path to file for data is this general format /universe/store-name/collection-name/collection-name.log.

Method: persist ((store store) &key &allow-other-keys)

Persists a store definition and not what it contains! Path to file is of this general format /universe/store-name/store-name.store.

Generic Function: persist-collection-def (colleciton)

Persists a collection definition. Path to file is of this general format /universe/store-name/collection-name.col.

Package

cl-naive-store.naive-core.

Source

src/naive-store/naive-core.lisp.

Methods
Method: persist-collection-def ((collection document-type-collection-mixin))
Source

src/document-types/document-types.lisp.

Method: persist-collection-def ((collection collection))
Generic Function: persist-delete-document (collection shard document file &key &allow-other-keys)

Marks document as deleted.

Package

naive-impl.

Source

src/naive-store/naive-impl/persist-document.lisp.

Methods
Method: persist-delete-document (collection shard document file &key &allow-other-keys)
Generic Function: persist-document (collection document-form &key shard allow-key-change-p delete-p file-name file-stream handle-duplicates-p &allow-other-keys)

Traverses the document and composes a list representation that is written to file. If the document is new it is added to the collection.

The shard the document should belong to can be passed in as well.

Package

cl-naive-store.naive-core.

Source

src/naive-store/documents.lisp.

Methods
Method: persist-document ((collection document-collection) document &key shard allow-key-change-p delete-p file-name file-stream &allow-other-keys)

persist-document for document-collection is leniant in what it takes as a document, it can be of type document or a plist.

Source

src/naive-documents/documents.lisp.

Method: persist-document ((collection collection) document &key shard handle-duplicates-p delete-p file-stream &allow-other-keys)
Method: persist-document :before (collection document &key shard &allow-other-keys)
Generic Function: persist-form (collection shard element element-type &key root parent &allow-other-keys)

Convert a document element to its list representation.

IMPL NOTES:

specialize element type like this (element-type (eql :blob)). DONT specialize on object type directly because that will break type-of-doc-element. If you specialize element you need to supply your own implementation of type-of-doc-element as well.

Package

naive-impl.

Source

src/naive-store/naive-impl/persist-document.lisp.

Methods
Method: persist-form ((collection document-collection) shard document (element-type (eql :document)) &key root parent &allow-other-keys)
Source

src/naive-documents/documents-impl/persist-document.lisp.

Method: persist-form ((collection document-collection) shard document (element-type (eql :child-document)) &key root parent &allow-other-keys)
Source

src/naive-documents/documents-impl/persist-document.lisp.

Method: persist-form ((collection document-collection) shard document (element-type (eql :reference)) &key root parent &allow-other-keys)
Source

src/naive-documents/documents-impl/persist-document.lisp.

Method: persist-form ((collection document-collection) shard blob (element-type (eql :blob)) &key root parent &allow-other-keys)
Source

src/naive-documents/documents-impl/persist-document.lisp.

Method: persist-form (collection shard hash-table (element-type (eql :hash-table)) &key &allow-other-keys)
Method: persist-form (collection shard reference (element-type (eql :reference)) &key &allow-other-keys)
Method: persist-form (collection shard blob (element-type (eql :blob)) &key &allow-other-keys)
Method: persist-form (collection shard document (element-type (eql :document)) &key &allow-other-keys)
Generic Function: persist-parse (collection shard sexp doc &key root parent &allow-other-keys)

Transcribes document to list form for peristance.

Package

naive-impl.

Source

src/naive-store/naive-impl/persist-document.lisp.

Methods
Method: persist-parse ((collection document-collection) shard element doc &key root parent &allow-other-keys)
Source

src/naive-documents/documents-impl/persist-document.lisp.

Method: persist-parse (collection shard sexp doc &key &allow-other-keys)
Generic Function: push-value-index (collection index-values document &key shard &allow-other-keys)

Uses lists within the key-value-index hash-table to store/group documents that match a key value combination.

On updates of documents could end up with duplicate documents returned by the index lookup. The speed more than makes up for the occasional duplicate for now!

TODO: Implement index-lookup-value that strips out duplicates??

Package

indexed-impl.

Source

src/naive-indexed/indexed-impl.lisp.

Methods
Method: push-value-index (collection index-values document &key shard &allow-other-keys)
Generic Function: query-data (collection &key query index-values shards collection-name &allow-other-keys)

Returns the data that satisfies the query.

NOTES:

Does lazy loading.

Package

cl-naive-store.naive-core.

Source

src/naive-store/query.lisp.

Methods
Method: query-data ((collection indexed-collection-mixin) &key index-values query shards &allow-other-keys)

Extends query-data to be able to take advantage of indexing. Query is done on values retrieved by the supplied index.

Source

src/naive-indexed/query.lisp.

Method: query-data ((hash-table hash-table) &key query &allow-other-keys)
Method: query-data ((sequence sequence) &key query &allow-other-keys)
Method: query-data ((store store) &key collection-name query shards &allow-other-keys)
Method: query-data ((collection collection) &key query shards &allow-other-keys)
Method: query-data :before ((collection collection) &key shards &allow-other-keys)

Lazy loading data.

Generic Function: query-document (collection &key query collection-name shards &allow-other-keys)

Returns the first last document found, and any others that satisfies the query

NOTES:

Does lazy loading.

Package

cl-naive-store.naive-core.

Source

src/naive-store/query.lisp.

Methods
Method: query-document ((hash-table hash-table) &key query &allow-other-keys)
Method: query-document ((list list) &key query &allow-other-keys)
Method: query-document ((store store) &key collection-name query &allow-other-keys)
Method: query-document ((collection collection) &key query shards &allow-other-keys)
Method: query-document :before ((collection collection) &key shards &allow-other-keys)

Lazy loading data.

Generic Function: remhash-safe (key hash &key lock recursive-p)

Puts lock around hash remove access for those cl implementations that dont have a thread safe hashtable.

Package

cl-naive-store.naive-core.

Source

src/naive-store/naive-impl/common.lisp.

Methods
Method: remhash-safe (key hash &key lock recursive-p)
Generic Function: remove-collection (store collection)

Removes a collection to a store.

Package

cl-naive-store.naive-core.

Source

src/naive-store/naive-core.lisp.

Methods
Method: remove-collection ((store store) (collection collection))
Generic Function: remove-document (collection document &key shard &allow-other-keys)

Removes an document from the collection and its indexes. See add-document.

Package

cl-naive-store.naive-core.

Source

src/naive-store/documents.lisp.

Methods
Method: remove-document ((collection indexed-collection-mixin) document &key shard &allow-other-keys)
Source

src/naive-indexed/naive-indexed.lisp.

Method: remove-document ((collection collection) document &key shard &allow-other-keys)
Method: remove-document :around ((collection collection) document &rest other-keys &key shard &allow-other-keys)
Generic Function: remove-index (collection shard document &key &allow-other-keys)

Removes a data document from the UUID and key value indexes. A shard must be supplied.

Package

cl-naive-store.naive-indexed.

Source

src/naive-indexed/naive-indexed.lisp.

Methods
Method: remove-index ((collection indexed-collection-mixin) shard document &key &allow-other-keys)
Generic Function: remove-value-index (collection shard index-values document &key &allow-other-keys)

Removes a value index.

Package

indexed-impl.

Source

src/naive-indexed/indexed-impl.lisp.

Methods
Method: remove-value-index (collection shard index-values document &key &allow-other-keys)
Generic Function: sanitize-data-file (collection &key &allow-other-keys)

This removes all the deleted data documents from a collection. When a collection is loaded only the active documents are loaded. Does this by simply writing those active documents out to a new file and then replacing the old file.

Package

cl-naive-store.naive-core.

Source

src/naive-store/maintenance.lisp.

Methods
Method: sanitize-data-file ((collection collection) &key &allow-other-keys)
Generic Reader: shards (object)
Generic Writer: (setf shards) (object)
Package

cl-naive-store.naive-core.

Methods
Reader Method: shards ((collection collection))
Writer Method: (setf shards) ((collection collection))

A vector of shards.

NOTES:

Originally naive-store used lists but with the re-introduction of sharding, we chose to also introduce the use of lparrallel to speed up many functions and lparrallel has a preference for arrays.

Source

src/naive-store/naive-core.lisp.

Target Slot

shards.

Generic Function: short-mac (shard)

Return a short string containing a prefix of the MAC

Package

cl-naive-store.naive-core.

Source

src/naive-store/naive-core.lisp.

Methods
Method: short-mac ((shard shard))
Generic Reader: status (shard)
Generic Writer: (setf status) (shard)
Package

cl-naive-store.naive-core.

Source

src/naive-store/naive-core.lisp.

Methods
Reader Method: status ((shard shard))
Writer Method: (setf status) ((shard shard))
Target Slot

status.

Generic Reader: store (object)
Generic Writer: (setf store) (object)
Package

cl-naive-store.naive-core.

Methods
Reader Method: store ((document-type document-type))
Writer Method: (setf store) ((document-type document-type))

The store that this document-type belongs to.

Source

src/document-types/document-types.lisp.

Target Slot

store.

Reader Method: store ((collection collection))
Writer Method: (setf store) ((collection collection))

The store that this collection belongs to.

Source

src/naive-store/naive-core.lisp.

Target Slot

store.

Generic Reader: store-class (object)
Generic Writer: (setf store-class) (object)
Package

cl-naive-store.naive-core.

Methods
Reader Method: store-class ((universe universe))
Writer Method: (setf store-class) ((universe universe))

The class that should be used to make stores.

NOTES:

store-class is delcaritively specied here because stores are dynamicly created when definition files are loaded. (see store notes for more about this.).

Source

src/naive-store/naive-core.lisp.

Target Slot

store-class.

Generic Reader: stores (object)
Generic Writer: (setf stores) (object)
Package

cl-naive-store.naive-core.

Methods
Reader Method: stores ((universe universe))
Writer Method: (setf stores) ((universe universe))

List of stores contained by this universe.

Source

src/naive-store/naive-core.lisp.

Target Slot

stores.

Generic Function: type-of-doc-element (collection sexp)

Reports if the sexp represents a special form.

Package

naive-impl.

Source

src/naive-store/naive-impl/persist-document.lisp.

Methods
Method: type-of-doc-element ((collection document-collection) element)
Source

src/naive-documents/documents-impl/persist-document.lisp.

Method: type-of-doc-element (collection element)
Generic Function: type-of-sexp (collection sexp)

Reports if the sexp represents a special form, like a blob or reference.

Package

naive-impl.

Source

src/naive-store/naive-impl/parse-document.lisp.

Methods
Method: type-of-sexp ((collection document-collection) document-form)
Source

src/naive-documents/documents-impl/parse-document.lisp.

Method: type-of-sexp (collection sexp)
Generic Reader: universe (object)
Generic Writer: (setf universe) (object)
Package

cl-naive-store.naive-core.

Methods
Reader Method: universe ((store store))
Writer Method: (setf universe) ((store store))

The universe this store belongs to.

Source

src/naive-store/naive-core.lisp.

Target Slot

universe.

Generic Function: validate-xe (document element type value &key &allow-other-keys)
Package

cl-naive-store.document-type-defs.

Source

src/document-type-defs/document-type-defs.lisp.

Methods
Method: validate-xe (value document element (type (eql :value-list)) &key &allow-other-keys)
Method: validate-xe (document element (type (eql :document)) value &key &allow-other-keys)
Method: validate-xe (document element (type (eql :collection)) value &key &allow-other-keys)
Method: validate-xe (document element (type (eql :collection-contained-document)) value &key &allow-other-keys)
Method: validate-xe (document element type value &key &allow-other-keys)

5.1.5 Standalone methods

Method: (setf digx) ((place document) &rest indicators)
Package

cl-getx.

Source

src/naive-documents/query.lisp.

Method: digx ((place document) &rest indicators)
Package

cl-getx.

Source

src/naive-documents/query.lisp.

Method: (setf getx) ((document document) (element element) &key &allow-other-keys)
Package

cl-getx.

Source

src/naive-documents/query.lisp.

Method: getx ((document document) (element element) &key &allow-other-keys)
Package

cl-getx.

Source

src/naive-documents/query.lisp.

Method: (setf getx) ((document document) accessor &key change-control-p &allow-other-keys)
Package

cl-getx.

Source

src/naive-documents/query.lisp.

Method: getx ((document document) accessor &key &allow-other-keys)

getx for documents knows about some of the internals of an document structue so you can get the collection.

Special accessors:

:hash = document-hash

The convention is to append %% to these accessors, for two reasons. First to show that they are special, accessing meta data not actual values of document. Second to avoid any name classes with actual data members.

:collection%% = document-collection
:store%% = document-store or (store collection)
:universe%% = (universe store)
:type%% = type
:elements%% = document-elements
:changes%% = document-changes
:versions%% = document-versions
:deleted-p%% = document-deleted-p

store and universe using getx.

Package

cl-getx.

Source

src/naive-documents/query.lisp.

Method: (setf getx) ((blob blob) accessor &key &allow-other-keys)
Package

cl-getx.

Source

src/naive-store/blob.lisp.

Method: getx ((blob blob) accessor &key &allow-other-keys)

getx for blobs

Package

cl-getx.

Source

src/naive-store/blob.lisp.

Method: (setf getx) ((document-type document-type) accessor &key &allow-other-keys)
Package

cl-getx.

Source

src/document-types/document-types.lisp.

Method: getx ((document-type document-type) accessor &key &allow-other-keys)
Package

cl-getx.

Source

src/document-types/document-types.lisp.

Method: (setf getx) (document (element element) &key &allow-other-keys)
Package

cl-getx.

Source

src/document-type-defs/document-type-defs.lisp.

Method: getx (document (element element) &key &allow-other-keys)
Package

cl-getx.

Source

src/document-type-defs/document-type-defs.lisp.

Method: (setf getx) ((element element) accessor &key &allow-other-keys)
Package

cl-getx.

Source

src/document-types/document-types.lisp.

Method: getx ((element element) accessor &key &allow-other-keys)
Package

cl-getx.

Source

src/document-types/document-types.lisp.

Method: murmurhash ((document document) &key)
Package

cl-murmurhash.

Source

src/naive-documents/naive-documents.lisp.

Method: place-exists-p ((document document) element-name)
Package

cl-getx.

Source

src/naive-documents/naive-documents.lisp.

Method: print-object ((shard shard) stream)
Source

src/naive-store/naive-core.lisp.

Method: print-object ((store store) stream)
Source

src/naive-store/naive-core.lisp.

Method: print-object ((collection collection) stream)
Source

src/naive-store/naive-core.lisp.


5.1.6 Structures

Structure: blob

Represents a unit of data that is large enough to warent its own file or would cause reading problems for the default naive-store file layout which is essentially plists.

Package

cl-naive-store.naive-core.

Source

src/naive-store/blob.lisp.

Direct superclasses

structure-object.

Direct methods
Direct slots
Slot: file-type
Readers

blob-file-type.

Writers

(setf blob-file-type).

Slot: file-ext
Readers

blob-file-ext.

Writers

(setf blob-file-ext).

Slot: location
Readers

blob-location.

Writers

(setf blob-location).

Slot: raw
Readers

blob-raw.

Writers

(setf blob-raw).

Slot: parent-accessor
Readers

blob-parent-accessor.

Writers

(setf blob-parent-accessor).

Structure: document

A basic struct that represents a document object. A struct is used because there is meta data that we want to add to the actual document values and there is additional functionality like being able to know what has changed in the values during updates.

store = The store that the document comes from.
collection = The collection that the document comes from.
document-type = The document type specification that describes this document.
hash = The hash/UUID that uniquely identifies this document
elements = The actual key value pairs of the doucument.
changes = Is used to store setf values when using getx the preffered accessor for values. This helps with comparing of values when persisting.
versions = older key value pairs that represent older versions of the document
deleted-p = indicates that the document was deleted.
persisted-p = indicates that the document has been peristed.

Package

cl-naive-store.naive-documents.

Source

src/naive-documents/naive-documents.lisp.

Direct superclasses

structure-object.

Direct methods
Direct slots
Slot: store
Package

cl-naive-store.naive-core.

Readers

document-store.

Writers

(setf document-store).

Slot: collection
Package

cl-naive-store.naive-core.

Readers

document-collection.

Writers

(setf document-collection).

Slot: document-type
Package

cl-naive-store.document-types.

Readers

document-document-type.

Writers

(setf document-document-type).

Slot: hash
Package

cl-naive-store.naive-indexed.

Readers

document-hash.

Writers

(setf document-hash).

Slot: elements
Package

cl-naive-store.document-types.

Readers

document-elements.

Writers

(setf document-elements).

Slot: changes
Readers

document-changes.

Writers

(setf document-changes).

Slot: versions
Readers

document-versions.

Writers

(setf document-versions).

Slot: deleted-p
Package

cl-naive-store.naive-core.

Readers

document-deleted-p.

Writers

(setf document-deleted-p).

Slot: persisted-p
Readers

document-persisted-p.

Writers

(setf document-persisted-p).


Previous: , Up: Public Interface   [Contents][Index]

5.1.7 Classes

Class: collection

A collection of documents of a specific document-type.

Package

cl-naive-store.naive-core.

Source

src/naive-store/naive-core.lisp.

Direct subclasses

document-collection.

Direct methods
Direct slots
Slot: store

The store that this collection belongs to.

Initargs

:store

Readers

store.

Writers

(setf store).

Slot: name

The collection name.

Initargs

:name

Readers

name.

Writers

(setf name).

Slot: location

The directory path to where files for this collection are stored.

Initargs

:location

Readers

location.

Writers

(setf location).

Slot: shards

A vector of shards.

NOTES:

Originally naive-store used lists but with the re-introduction of sharding, we chose to also introduce the use of lparrallel to speed up many functions and lparrallel has a preference for arrays.

Type

vector

Initform

(make-array 1 :fill-pointer 0 :adjustable t :initial-element nil)

Initargs

:shards

Readers

shards.

Writers

(setf shards).

Slot: keys

Keys need to be set to handle duplicates, the default is :key if :key is not found in the document then duplicates will occur.

NOTES:

For collections that use cl-naive-document-type there is a fallback the document-type is checked for keys as well and the collection’s keys will be set to the keys set in the document-type elements.

Initform

(list :key)

Initargs

:keys

Readers

keys.

Writers

(setf keys).

Slot: shard-elements

shard-elements is a list of document element keywords to use for sharding.

Initargs

:shard-elements

Readers

shard-elements.

Writers

(setf shard-elements).

Class: document-collection

Document collection class used to specialize on for cl-naive-store.naive-documents.

Package

cl-naive-store.naive-documents.

Source

src/naive-documents/naive-documents.lisp.

Direct superclasses
Direct methods
Class: document-store

cl-naive-store.naive-documents specialization of store.

Package

cl-naive-store.naive-documents.

Source

src/naive-documents/naive-documents.lisp.

Direct superclasses
Direct Default Initargs
InitargValue
:collection-class(quote document-collection)
Class: document-type

A class that can be use to represent a complex document.

NOTES:

The default implementation of cl-naive-store is unaware of document-types when reading and writing documents to and from file. This was by design, to place as little burden on reading and writing documents. Depending on the use of naive-store a user could customize the reading and writing methods of naive-store to use document-types for validation and file layout specifics.

GUI’s like cl-wfx use these to help with generic rendering of user input screens.

See cl-naive-type-defs:*example-type-defs* for examples of type definitions to get a feel for the intended use.

Package

cl-naive-store.document-types.

Source

src/document-types/document-types.lisp.

Direct methods
Direct slots
Slot: store

The store that this document-type belongs to.

Package

cl-naive-store.naive-core.

Initargs

:store

Readers

store.

Writers

(setf store).

Slot: name

String representing a document-type name.

Package

cl-naive-store.naive-core.

Initargs

:name

Readers

name.

Writers

(setf name).

Slot: element-class

The class that should be used to make element documents.
NOTES:

element-class is declaratively specified here because so that elements can be dynamicly created when definition type definitions are read from file. See naive-store-documents for usage examples.

Allocation

:class

Initform

(quote cl-naive-store.document-types:element)

Initargs

:element-class

Readers

element-class.

Writers

(setf element-class).

Slot: label

Human readable/formated short description.

Initargs

:label

Readers

label.

Writers

(setf label).

Slot: elements

Field definitions that represents a data unit.

Initargs

:elements

Readers

elements.

Writers

(setf elements).

Class: document-type-collection-mixin

Collection extention to make collection of a specific document-type.

Package

cl-naive-store.document-types.

Source

src/document-types/document-types.lisp.

Direct subclasses

document-collection.

Direct methods
Direct slots
Slot: document-type

The document-type that this collection contains documents of.

Initargs

:document-type

Readers

document-type.

Writers

(setf document-type).

Class: document-type-store-mixin
Package

cl-naive-store.document-types.

Source

src/document-types/document-types.lisp.

Direct subclasses

document-store.

Direct methods
Direct slots
Slot: document-type-class

The class that should be used to make document-type documents. IMPL NOTES: To deal with customization of document-type.

Allocation

:class

Initform

(quote cl-naive-store.document-types:document-type)

Initargs

:document-type-class

Readers

document-type-class.

Writers

(setf document-type-class).

Slot: document-types

List of document-types represented by this store’s collections.

Initargs

:document-types

Readers

document-types.

Writers

(setf document-types).

Class: element

A definition of an element of a document.

NOTES:

Elements can reference simple types, a complex document or documents based on other document-types.

naive-store can be used as a hierarchical database or a flat databases or a mix.

Package

cl-naive-store.document-types.

Source

src/document-types/document-types.lisp.

Direct methods
Direct slots
Slot: name

Name of the element. This should be a KEYWORD if you want data portability and some internals might expect a keyword.

Package

cl-naive-store.naive-core.

Initargs

:name

Readers

name.

Writers

(setf name).

Slot: concrete-type

A user defined "thing" that defines the type specifics of an element.

Initargs

:concrete-type

Readers

concrete-type.

Writers

(setf concrete-type).

Slot: key-p

Indicates that the element is part of the primary key.

Can be used for indexing and document comparison. For example when a new document is persisted naive-store-documents checks for documents with the same index value and then updates the existing document.

Initargs

:key-p

Readers

key-p.

Writers

(setf key-p).

Slot: attributes

A property list of additional element attributes that are not data type specific.

Initargs

:attributes

Readers

attributes.

Writers

(setf attributes).

Class: indexed-collection-mixin

Collection extension to add very basic indexes.

Package

cl-naive-store.naive-indexed.

Source

src/naive-indexed/naive-indexed.lisp.

Direct subclasses

document-collection.

Direct methods
Direct slots
Slot: indexes

List of index combinations. Also indexes members partially if *partial-indexing* is t, for example ’((:emp-no :surname gender)) is indexed as (:emp-no :surname :gender), (:emp-no :surname), :emp-no, :surname and :gender

Initargs

:indexes

Readers

indexes.

Writers

(setf indexes).

Class: shard

Sharding is when you break the physical file that backs the collection into smaller files based on data elements of a document. An instance of a shard class is used to load the documents belonging to the shard into memory.

Package

cl-naive-store.naive-core.

Source

src/naive-store/naive-core.lisp.

Direct subclasses

indexed-shard.

Direct methods
Direct slots
Slot: mac

Mac to identify shard.

Initargs

:mac

Readers

mac.

Writers

(setf mac).

Slot: location

The file path to this shard is stored.

Initargs

:location

Readers

location.

Writers

(setf location).

Slot: documents

Documents belonging to shard.

Initform

(make-array 1 :fill-pointer 0 :adjustable t :initial-element nil)

Initargs

:documents

Readers

documents.

Writers

(setf documents).

Slot: status

Used internally during the loading of the documents in a shard to help with locking.

Initargs

:status

Readers

status.

Writers

(setf status).

Slot: lock

Used internally to do shard specific locking.

Initform

(list :docs (bordeaux-threads:make-lock) :hash-index (bordeaux-threads:make-lock) :values-index (bordeaux-threads:make-lock))

Initargs

:lock

Readers

lock.

Writers

(setf lock).

Class: store

Document types and their associated collections are organized into groups called stores.

NOTES:

collection-class and document-type-class is delcaritively specied here because they are dynamicly created when definition files are loaded. The alternative would be defmethod hell where the customizer of naive-store would have to implement a whole lot of methods that do exactly what the provided methods do just to be able to be type specific in other methods where it is actually needed. Alternatively meta classes could be used for element-class but that opens another can of worms.

Package

cl-naive-store.naive-core.

Source

src/naive-store/naive-core.lisp.

Direct subclasses

document-store.

Direct methods
Direct slots
Slot: universe

The universe this store belongs to.

Initargs

:universe

Readers

universe.

Writers

(setf universe).

Slot: name

Store name.

Initargs

:name

Readers

name.

Writers

(setf name).

Slot: collection-class

The class that should be used to make collections.

Allocation

:class

Initform

(quote cl-naive-store.naive-core:collection)

Initargs

:collection-class

Readers

collection-class.

Writers

(setf collection-class).

Slot: collections

List of collections represented by this store.

Initargs

:collections

Readers

collections.

Writers

(setf collections).

Slot: location

The directory path to the document-type files and collection files for this store.

Initargs

:location

Readers

location.

Writers

(setf location).

Class: universe

Stores are held by a universe to make up a database.

Package

cl-naive-store.naive-core.

Source

src/naive-store/naive-core.lisp.

Direct methods
Direct slots
Slot: stores

List of stores contained by this universe.

Initargs

:stores

Readers

stores.

Writers

(setf stores).

Slot: store-class

The class that should be used to make stores.

NOTES:

store-class is delcaritively specied here because stores are dynamicly created when definition files are loaded. (see store notes for more about this.).

Allocation

:class

Initform

(quote cl-naive-store.naive-core:store)

Initargs

:store-class

Readers

store-class.

Writers

(setf store-class).

Slot: location

Directory path to stores.

Initform

(cl-fad:merge-pathnames-as-directory (user-homedir-pathname) (make-pathname :directory (list :relative "data-universe")))

Initargs

:location

Readers

location.

Writers

(setf location).

Slot: shards-cache%

This was introduced to speedup finding a shard. It is only for internal use!

Initform

(make-hash-table :test (quote equalp) :synchronized nil)

Initargs

:shards-cache%

Readers

shards-cache%.

Writers

(setf shards-cache%).

Slot: shards-macs-cache%

This was introduced to speedup finding a shard. Calulating macs is expensive. It is only for internal use!

Initform

(make-hash-table :test (quote equalp) :synchronized nil)

Initargs

:shards-macs-cache%

Readers

shards-macs-cache%.

Writers

(setf shards-macs-cache%).


5.2 Internals


Next: , Previous: , Up: Internals   [Contents][Index]

5.2.1 Special variables

Special Variable: *break-on-debug-log*

Causes a break when logging errors of type :error and :warning.

Package

naive-impl.

Source

src/naive-store/naive-impl/logs.lisp.

Special Variable: *files*
Package

cl-naive-store.naive-core.

Source

src/naive-store/load.lisp.

Special Variable: *index-query-lock*
Package

cl-naive-store.naive-indexed.

Source

src/naive-indexed/query.lisp.

Special Variable: *mac-key*
Package

naive-impl.

Source

src/naive-store/naive-impl/common.lisp.

Special Variable: *now*
Package

naive-impl.

Source

src/naive-store/naive-impl/logs.lisp.

Special Variable: *query-lock*
Package

cl-naive-store.naive-core.

Source

src/naive-store/query.lisp.

Special Variable: *shards-cache-lock*
Package

cl-naive-store.naive-core.

Source

src/naive-store/naive-core.lisp.

Special Variable: *shards-macs-cache-lock*
Package

cl-naive-store.naive-core.

Source

src/naive-store/naive-core.lisp.

Special Variable: *short-months*
Package

naive-impl.

Source

src/naive-store/naive-impl/logs.lisp.

Special Variable: *std-lock*

Used to lod STD to log debug messages safely between threads.

Package

naive-impl.

Source

src/naive-store/naive-impl/logs.lisp.

Special Variable: *time-zone*
Package

naive-impl.

Source

src/naive-store/naive-impl/logs.lisp.


5.2.2 Ordinary functions

Reader: blob-parent-accessor (instance)
Writer: (setf blob-parent-accessor) (instance)
Package

cl-naive-store.naive-core.

Source

src/naive-store/blob.lisp.

Target Slot

parent-accessor.

Function: blob-ref-values (blob-ref)
Package

cl-naive-store.naive-core.

Source

src/naive-store/blob.lisp.

Function: branch (node)
Package

cl-naive-merkle.

Source

src/naive-merkle/merkle.lisp.

Function: calc (node)

Sums hashes for node branch including root.

Package

cl-naive-merkle.

Source

src/naive-merkle/merkle.lisp.

Function: calc-branch (node)

Sums hashes excluding root.

Package

cl-naive-merkle.

Source

src/naive-merkle/merkle.lisp.

Function: calc-document (document)
Package

cl-naive-merkle.

Source

src/naive-merkle/merkle.lisp.

Function: call-do-sequence (thunk with-index-p sequence &key parallel-p)
Package

naive-impl.

Source

src/naive-store/naive-impl/common.lisp.

Function: check-keys-and-synq (old new allow-key-change-p)
Package

cl-naive-store.naive-documents.

Source

src/naive-documents/documents.lisp.

Function: copy-blob (instance)
Package

cl-naive-store.naive-core.

Source

src/naive-store/blob.lisp.

Function: copy-document (instance)
Package

cl-naive-store.naive-documents.

Source

src/naive-documents/naive-documents.lisp.

Function: document-list-p (document)

Returns t if the document is a list of type document.

Package

cl-naive-store.naive-documents.

Source

src/naive-documents/naive-documents.lisp.

Function: document-pair-to-plist (pair)
Package

cl-naive-store.naive-documents.

Source

src/naive-documents/export.lisp.

Reader: document-persisted-p (instance)
Writer: (setf document-persisted-p) (instance)
Package

cl-naive-store.naive-documents.

Source

src/naive-documents/naive-documents.lisp.

Target Slot

persisted-p.

Function: document-values-p (list)

Checks if plist contains :elements keyword which would indicate the plist represents an document.

Package

documents-impl.

Source

src/naive-documents/documents-impl/parse-document.lisp.

Function: element-type-val (element key)
Package

cl-naive-store.document-type-defs.

Source

src/document-type-defs/document-type-defs.lisp.

Function: find-collection-files (collection)
Package

cl-naive-store.naive-core.

Source

src/naive-store/load.lisp.

Function: find-document-by-value (document-list element-values)
Package

cl-naive-store.naive-documents.

Source

src/naive-documents/query.lisp.

Function: find-store-definitions (universe)
Package

cl-naive-store.naive-core.

Source

src/naive-store/load.lisp.

Function: format-date-time (year month day hour min sec &optional timezone)
Package

naive-impl.

Source

src/naive-store/naive-impl/logs.lisp.

Function: format-universal-date-time (universal-date)
Package

naive-impl.

Source

src/naive-store/naive-impl/logs.lisp.

Function: get-collection* (store name)

Used internally to find or create a new collection.

Package

naive-impl.

Source

src/naive-store/naive-impl/naive-core.lisp.

Function: get-shard-cache-safe% (collection shard-mac)
Package

cl-naive-store.naive-core.

Source

src/naive-store/naive-core.lisp.

Function: get-shard-mac-cache-safe% (collection value)
Package

cl-naive-store.naive-core.

Source

src/naive-store/naive-core.lisp.

Function: get-store* (universe name)

Used internally to find or create a new store.

Package

naive-impl.

Source

src/naive-store/naive-impl/naive-core.lisp.

Function: get-temp ()
Package

naive-impl.

Source

src/naive-store/naive-impl/logs.lisp.

Function: getxe* (document element)
Package

cl-naive-store.document-type-defs.

Source

src/document-type-defs/document-type-defs.lisp.

Function: hash-values (hash-table)
Package

indexed-impl.

Source

src/naive-indexed/indexed-impl.lisp.

Function: indexed-values (collection index-values shards)
Package

cl-naive-store.naive-indexed.

Source

src/naive-indexed/query.lisp.

Function: iso-timestamp-now ()
Package

naive-impl.

Source

src/naive-store/naive-impl/logs.lisp.

Function: key-values%% (keys values)
Package

cl-naive-store.naive-documents.

Source

src/naive-documents/naive-documents.lisp.

Function: lambda-p (document)
Package

cl-naive-store.naive-documents.

Source

src/naive-documents/export-json.lisp.

Function: leaf-p (node)
Package

cl-naive-merkle.

Source

src/naive-merkle/merkle.lisp.

Function: load-shards (collection shards)
Package

cl-naive-store.naive-core.

Source

src/naive-store/load.lisp.

Function: load-store-document-types (store)

Finds and loads the files representing data types for a store.

Package

cl-naive-store.document-types.

Source

src/document-types/document-types.lisp.

Function: make-document-hash (document)
Package

cl-naive-merkle.

Source

src/naive-merkle/merkle.lisp.

Function: make-hash (value)
Package

cl-naive-merkle.

Source

src/naive-merkle/merkle.lisp.

Function: make-node (hash &key parent children hash-sum)

Returns a new instance of node object representing the hash node.

Package

cl-naive-merkle.

Source

src/naive-merkle/merkle.lisp.

Function: map-tree (tree function)
Package

cl-naive-merkle.

Source

src/naive-merkle/merkle.lisp.

Function: naive-dig (place indicators)
Package

cl-naive-store.naive-documents.

Source

src/naive-documents/query.lisp.

Function: node-p (node)
Package

cl-naive-merkle.

Source

src/naive-merkle/merkle.lisp.

Function: parse-document (document)
Package

cl-naive-store.naive-documents.

Source

src/naive-documents/export.lisp.

Function: persist-merge-document (existing-document document allow-key-change-p)
Package

cl-naive-store.naive-documents.

Source

src/naive-documents/documents.lisp.

Function: populate-partial-value-index (collection index-values document &key shard)
Package

indexed-impl.

Source

src/naive-indexed/indexed-impl.lisp.

Function: populate-value-index (collection indexes-values document &key shard)
Package

indexed-impl.

Source

src/naive-indexed/indexed-impl.lisp.

Function: recalc (node)
Package

cl-naive-merkle.

Source

src/naive-merkle/merkle.lisp.

Function: reference-documents-equal-p (original prepped)
Package

cl-naive-store.naive-documents.

Source

src/naive-documents/documents.lisp.

Function: remove-index-values (collection shard indexes-values document)
Package

indexed-impl.

Source

src/naive-indexed/indexed-impl.lisp.

Function: remove-partial-value-index (collection shard index-values document)
Package

indexed-impl.

Source

src/naive-indexed/indexed-impl.lisp.

Function: set-getxe* (value document element)
Package

cl-naive-store.document-type-defs.

Source

src/document-type-defs/document-type-defs.lisp.

Function: set-naive-dig (place indicators value)
Package

cl-naive-store.naive-documents.

Source

src/naive-documents/query.lisp.

Function: set-shard-cache-safe% (collection shard-mac shard)
Package

cl-naive-store.naive-core.

Source

src/naive-store/naive-core.lisp.

Function: set-shard-mac-cache-safe% (collection value mac)
Package

cl-naive-store.naive-core.

Source

src/naive-store/naive-core.lisp.

Function: setxe-read* (value document element type-test read-error)
Package

cl-naive-store.document-type-defs.

Source

src/document-type-defs/document-type-defs.lisp.

Function: short-month-name (n)
Package

naive-impl.

Source

src/naive-store/naive-impl/logs.lisp.

Function: tree-from-reference-tree (ref-tree)
Package

cl-naive-merkle.

Source

src/naive-merkle/merkle.lisp.

Function: tree-to-reference-tree (tree)
Package

cl-naive-merkle.

Source

src/naive-merkle/merkle.lisp.

Function: treemap-csv (tree stream first-p)
Package

cl-naive-store.naive-documents.

Source

src/naive-documents/export-csv.lisp.

Function: treemap-json (tree stream first-p)
Package

cl-naive-store.naive-documents.

Source

src/naive-documents/export-json.lisp.

Function: try-better-value-match (collection list key-values)
Package

cl-naive-store.naive-indexed.

Source

src/naive-indexed/naive-indexed.lisp.

Function: values-from-key-elements% (elements document)
Package

cl-naive-store.document-types.

Source

src/document-types/document-types.lisp.

Function: write-list-items-to-file (file list &key if-exists)

Does not wrap items in ().

Package

naive-impl.

Source

src/naive-store/naive-impl/files.lisp.

Function: write-pair-csv (pair stream first-p)
Package

cl-naive-store.naive-documents.

Source

src/naive-documents/export-csv.lisp.

Function: write-pair-json (pair stream first-p)
Package

cl-naive-store.naive-documents.

Source

src/naive-documents/export-json.lisp.

Function: write-to-stream (stream object)

Writes to stream with fresh-lines.

Package

naive-impl.

Source

src/naive-store/naive-impl/files.lisp.


Next: , Previous: , Up: Internals   [Contents][Index]

5.2.3 Generic functions

Generic Reader: children (object)
Package

cl-naive-merkle.

Methods
Reader Method: children ((merkle-node merkle-node))

automatically generated reader method

Source

src/naive-merkle/merkle.lisp.

Target Slot

children.

Generic Writer: (setf children) (object)
Package

cl-naive-merkle.

Methods
Writer Method: (setf children) ((merkle-node merkle-node))

automatically generated writer method

Source

src/naive-merkle/merkle.lisp.

Target Slot

children.

Generic Reader: concrete-type (object)
Generic Writer: (setf concrete-type) (object)
Package

cl-naive-store.document-types.

Methods
Reader Method: concrete-type ((element element))
Writer Method: (setf concrete-type) ((element element))

A user defined "thing" that defines the type specifics of an element.

Source

src/document-types/document-types.lisp.

Target Slot

concrete-type.

Generic Function: exists-p (document element-name)
Package

cl-naive-store.naive-documents.

Methods
Method: exists-p ((document document) element-name)
Source

src/naive-documents/naive-documents.lisp.

Generic Reader: hash-index (object)
Generic Writer: (setf hash-index) (object)
Package

cl-naive-store.naive-indexed.

Methods
Reader Method: hash-index ((indexed-shard indexed-shard))
Writer Method: (setf hash-index) ((indexed-shard indexed-shard))

Hash table keyed on document uuid for quick retrieval of an document.

Source

src/naive-indexed/naive-indexed.lisp.

Target Slot

hash-index.

Generic Function: load-collections (store &key with-data-p &allow-other-keys)

Finds and loads collections of a store, with or without documents.

Package

cl-naive-store.naive-core.

Source

src/naive-store/load.lisp.

Methods
Method: load-collections ((store store) &key with-data-p &allow-other-keys)

Finds and loads collection for a store, with or without documents.

Generic Function: load-shard (collection shard filename &key &allow-other-keys)

Loads documents from file.

Package

cl-naive-store.naive-core.

Source

src/naive-store/load.lisp.

Methods
Method: load-shard ((collection collection) shard filename &key &allow-other-keys)
Method: load-shard :around ((collection collection) shard filename &key &allow-other-keys)
Generic Function: load-store-collections (store &key with-data-p &allow-other-keys)
Package

cl-naive-store.document-types.

Methods
Method: load-store-collections ((store document-type-store-mixin) &key with-data-p &allow-other-keys)

Finds and loads collection definitions for a store, with or without data documents.

Source

src/document-types/document-types.lisp.

Generic Reader: merkle-hash (object)
Generic Writer: (setf merkle-hash) (object)
Package

cl-naive-merkle.

Methods
Reader Method: merkle-hash ((merkle-node merkle-node))
Writer Method: (setf merkle-hash) ((merkle-node merkle-node))

Then original hash of the document.

Source

src/naive-merkle/merkle.lisp.

Target Slot

merkle-hash.

Generic Reader: merkle-sum (object)
Generic Writer: (setf merkle-sum) (object)
Package

cl-naive-merkle.

Methods
Reader Method: merkle-sum ((merkle-node merkle-node))
Writer Method: (setf merkle-sum) ((merkle-node merkle-node))

Then computed hash of the document

Source

src/naive-merkle/merkle.lisp.

Target Slot

merkle-sum.

Generic Reader: parent (object)
Package

cl-naive-merkle.

Methods
Reader Method: parent ((merkle-node merkle-node))

automatically generated reader method

Source

src/naive-merkle/merkle.lisp.

Target Slot

parent.

Generic Writer: (setf parent) (object)
Package

cl-naive-merkle.

Methods
Writer Method: (setf parent) ((merkle-node merkle-node))

automatically generated writer method

Source

src/naive-merkle/merkle.lisp.

Target Slot

parent.

Generic Function: reference-form (blob)
Package

cl-naive-store.naive-core.

Methods
Method: reference-form ((blob blob))

Creates a persistable form of the blob reference info.

Source

src/naive-store/blob.lisp.

Generic Function: sanitize-universe (universe &key &allow-other-keys)

Sanitize all collections of a universe. See sanitize-data-file for details.

Package

cl-naive-store.naive-core.

Source

src/naive-store/maintenance.lisp.

Methods
Method: sanitize-universe (universe &key &allow-other-keys)
Generic Reader: shard-elements (object)
Generic Writer: (setf shard-elements) (object)
Package

cl-naive-store.naive-core.

Methods
Reader Method: shard-elements ((collection collection))
Writer Method: (setf shard-elements) ((collection collection))

shard-elements is a list of document element keywords to use for sharding.

Source

src/naive-store/naive-core.lisp.

Target Slot

shard-elements.

Generic Reader: shards-cache% (object)
Generic Writer: (setf shards-cache%) (object)
Package

cl-naive-store.naive-core.

Methods
Reader Method: shards-cache% ((universe universe))
Writer Method: (setf shards-cache%) ((universe universe))

This was introduced to speedup finding a shard. It is only for internal use!

Source

src/naive-store/naive-core.lisp.

Target Slot

shards-cache%.

Generic Reader: shards-macs-cache% (object)
Generic Writer: (setf shards-macs-cache%) (object)
Package

cl-naive-store.naive-core.

Methods
Reader Method: shards-macs-cache% ((universe universe))
Writer Method: (setf shards-macs-cache%) ((universe universe))

This was introduced to speedup finding a shard. Calulating macs is expensive. It is only for internal use!

Source

src/naive-store/naive-core.lisp.

Target Slot

shards-macs-cache%.


Previous: , Up: Internals   [Contents][Index]

5.2.4 Classes

Class: indexed-shard

Extends shards with indexes.

Package

cl-naive-store.naive-indexed.

Source

src/naive-indexed/naive-indexed.lisp.

Direct superclasses

shard.

Direct methods
Direct slots
Slot: hash-index

Hash table keyed on document uuid for quick retrieval of an document.

Initargs

:hash-index

Readers

hash-index.

Writers

(setf hash-index).

Slot: key-value-index

Hash table keyed on document key values for quick retrieval of an document. Used when doing key value equality comparisons.

Initargs

:key-value-index

Readers

key-value-index.

Writers

(setf key-value-index).

Class: merkle-node
Package

cl-naive-merkle.

Source

src/naive-merkle/merkle.lisp.

Direct methods
Direct slots
Slot: parent
Initargs

:parent

Readers

parent.

Writers

(setf parent).

Slot: merkle-hash

Then original hash of the document.

Initargs

:merkle-hash

Readers

merkle-hash.

Writers

(setf merkle-hash).

Slot: merkle-sum

Then computed hash of the document

Initargs

:merkle-sum

Readers

merkle-sum.

Writers

(setf merkle-sum).

Slot: children
Initargs

:children

Readers

children.

Writers

(setf children).


Appendix A Indexes


Next: , Previous: , Up: Indexes   [Contents][Index]

A.1 Concepts


Next: , Previous: , Up: Indexes   [Contents][Index]

A.2 Functions

Jump to:   (  
A   B   C   D   E   F   G   H   I   K   L   M   N   P   Q   R   S   T   U   V   W  
Index Entry  Section

(
(setf attributes): Public generic functions
(setf attributes): Public generic functions
(setf blob-file-ext): Public ordinary functions
(setf blob-file-type): Public ordinary functions
(setf blob-location): Public ordinary functions
(setf blob-parent-accessor): Private ordinary functions
(setf blob-raw): Public ordinary functions
(setf children): Private generic functions
(setf children): Private generic functions
(setf collection-class): Public generic functions
(setf collection-class): Public generic functions
(setf collections): Public generic functions
(setf collections): Public generic functions
(setf concrete-type): Private generic functions
(setf concrete-type): Private generic functions
(setf deleted-p): Public generic functions
(setf deleted-p): Public generic functions
(setf deleted-p): Public generic functions
(setf digx): Public standalone methods
(setf document-changes): Public ordinary functions
(setf document-collection): Public ordinary functions
(setf document-deleted-p): Public ordinary functions
(setf document-document-type): Public ordinary functions
(setf document-elements): Public ordinary functions
(setf document-hash): Public ordinary functions
(setf document-persisted-p): Private ordinary functions
(setf document-store): Public ordinary functions
(setf document-type): Public generic functions
(setf document-type): Public generic functions
(setf document-type-class): Public generic functions
(setf document-type-class): Public generic functions
(setf document-types): Public generic functions
(setf document-types): Public generic functions
(setf document-versions): Public ordinary functions
(setf documents): Public generic functions
(setf documents): Public generic functions
(setf element-class): Public generic functions
(setf element-class): Public generic functions
(setf elements): Public generic functions
(setf elements): Public generic functions
(setf gethash-safe): Public generic functions
(setf gethash-safe): Public generic functions
(setf getx): Public standalone methods
(setf getx): Public standalone methods
(setf getx): Public standalone methods
(setf getx): Public standalone methods
(setf getx): Public standalone methods
(setf getx): Public standalone methods
(setf getxe): Public generic functions
(setf getxe): Public generic functions
(setf getxe): Public generic functions
(setf getxe): Public generic functions
(setf getxe): Public generic functions
(setf getxe): Public generic functions
(setf getxe): Public generic functions
(setf getxe): Public generic functions
(setf getxe): Public generic functions
(setf getxe): Public generic functions
(setf getxe): Public generic functions
(setf getxe): Public generic functions
(setf getxe): Public generic functions
(setf getxe): Public generic functions
(setf getxe): Public generic functions
(setf getxe): Public generic functions
(setf getxe): Public generic functions
(setf getxe): Public generic functions
(setf getxe): Public generic functions
(setf getxe): Public generic functions
(setf getxe): Public generic functions
(setf getxe): Public generic functions
(setf getxe): Public generic functions
(setf getxe): Public generic functions
(setf getxe): Public generic functions
(setf getxe): Public generic functions
(setf getxe): Public generic functions
(setf getxe): Public generic functions
(setf hash): Public generic functions
(setf hash): Public generic functions
(setf hash): Public generic functions
(setf hash-index): Private generic functions
(setf hash-index): Private generic functions
(setf indexes): Public generic functions
(setf indexes): Public generic functions
(setf key-p): Public generic functions
(setf key-p): Public generic functions
(setf key-value-index): Public generic functions
(setf key-value-index): Public generic functions
(setf keys): Public generic functions
(setf keys): Public generic functions
(setf label): Public generic functions
(setf label): Public generic functions
(setf location): Public generic functions
(setf location): Public generic functions
(setf location): Public generic functions
(setf location): Public generic functions
(setf location): Public generic functions
(setf lock): Public generic functions
(setf lock): Public generic functions
(setf mac): Public generic functions
(setf mac): Public generic functions
(setf merkle-hash): Private generic functions
(setf merkle-hash): Private generic functions
(setf merkle-sum): Private generic functions
(setf merkle-sum): Private generic functions
(setf name): Public generic functions
(setf name): Public generic functions
(setf name): Public generic functions
(setf name): Public generic functions
(setf name): Public generic functions
(setf parent): Private generic functions
(setf parent): Private generic functions
(setf sexp-from-file): Public ordinary functions
(setf shard-elements): Private generic functions
(setf shard-elements): Private generic functions
(setf shards): Public generic functions
(setf shards): Public generic functions
(setf shards-cache%): Private generic functions
(setf shards-cache%): Private generic functions
(setf shards-macs-cache%): Private generic functions
(setf shards-macs-cache%): Private generic functions
(setf status): Public generic functions
(setf status): Public generic functions
(setf store): Public generic functions
(setf store): Public generic functions
(setf store): Public generic functions
(setf store-class): Public generic functions
(setf store-class): Public generic functions
(setf stores): Public generic functions
(setf stores): Public generic functions
(setf universe): Public generic functions
(setf universe): Public generic functions

A
add-collection: Public generic functions
add-collection: Public generic functions
add-collection: Public generic functions
add-document: Public generic functions
add-document: Public generic functions
add-document: Public generic functions
add-document-type: Public generic functions
add-document-type: Public generic functions
add-index: Public generic functions
add-index: Public generic functions
add-store: Public generic functions
add-store: Public generic functions
attributes: Public generic functions
attributes: Public generic functions

B
blob-file-ext: Public ordinary functions
blob-file-type: Public ordinary functions
blob-location: Public ordinary functions
blob-p: Public ordinary functions
blob-parent-accessor: Private ordinary functions
blob-raw: Public ordinary functions
blob-ref-p: Public ordinary functions
blob-ref-values: Private ordinary functions
blob-string-value: Public ordinary functions
branch: Private ordinary functions

C
calc: Private ordinary functions
calc-branch: Private ordinary functions
calc-document: Private ordinary functions
call-do-sequence: Private ordinary functions
check-keys-and-synq: Private ordinary functions
children: Private generic functions
children: Private generic functions
clear-collection: Public generic functions
clear-collection: Public generic functions
clear-documents: Public generic functions
clear-documents: Public generic functions
collection-class: Public generic functions
collection-class: Public generic functions
collections: Public generic functions
collections: Public generic functions
compose-document: Public generic functions
compose-document: Public generic functions
compose-document: Public generic functions
compose-parse: Public generic functions
compose-parse: Public generic functions
compose-special: Public generic functions
compose-special: Public generic functions
compose-special: Public generic functions
compose-special: Public generic functions
compose-special: Public generic functions
compose-special: Public generic functions
compose-special: Public generic functions
compose-special: Public generic functions
compose-special: Public generic functions
concrete-type: Private generic functions
concrete-type: Private generic functions
concrete-type-get-set: Public ordinary functions
copy-blob: Private ordinary functions
copy-document: Private ordinary functions

D
data-loaded-p: Public generic functions
data-loaded-p: Public generic functions
data-loaded-p: Public generic functions
data-loaded-p: Public generic functions
debug-log: Public ordinary functions
delete-document: Public generic functions
delete-document: Public generic functions
deleted-p: Public generic functions
deleted-p: Public generic functions
deleted-p: Public generic functions
digx: Public standalone methods
do-sequence: Public macros
document-changes: Public ordinary functions
document-collection: Public ordinary functions
document-deleted-p: Public ordinary functions
document-document-type: Public ordinary functions
document-elements: Public ordinary functions
document-hash: Public ordinary functions
document-list-p: Private ordinary functions
document-list-to-csv: Public ordinary functions
document-list-to-json: Public ordinary functions
document-of-type-p: Public ordinary functions
document-p: Public ordinary functions
document-pair-to-plist: Private ordinary functions
document-persisted-p: Private ordinary functions
document-shard-mac: Public ordinary functions
document-store: Public ordinary functions
document-type: Public generic functions
document-type: Public generic functions
document-type-class: Public generic functions
document-type-class: Public generic functions
document-types: Public generic functions
document-types: Public generic functions
document-values: Public generic functions
document-values: Public generic functions
document-values: Public generic functions
document-values-p: Private ordinary functions
document-versions: Public ordinary functions
documents: Public generic functions
documents: Public generic functions
documents: Public generic functions
documents-to-plist: Public ordinary functions

E
element-class: Public generic functions
element-class: Public generic functions
element-type-val: Private ordinary functions
elements: Public generic functions
elements: Public generic functions
empty-p: Public ordinary functions
ensure-location: Public generic functions
ensure-location: Public generic functions
ensure-location: Public generic functions
ensure-location: Public generic functions
existing-document: Public generic functions
existing-document: Public generic functions
existing-document: Public generic functions
exists-p: Private generic functions
exists-p: Private generic functions

F
file-to-string: Public ordinary functions
find-collection-definitions: Public ordinary functions
find-collection-files: Private ordinary functions
find-document-by-hash: Public generic functions
find-document-by-hash: Public generic functions
find-document-by-hash: Public generic functions
find-document-by-value: Private ordinary functions
find-equalp-document: Public ordinary functions
find-store-definitions: Private ordinary functions
format-date-time: Private ordinary functions
format-universal-date-time: Private ordinary functions
frmt: Public ordinary functions
Function, (setf blob-file-ext): Public ordinary functions
Function, (setf blob-file-type): Public ordinary functions
Function, (setf blob-location): Public ordinary functions
Function, (setf blob-parent-accessor): Private ordinary functions
Function, (setf blob-raw): Public ordinary functions
Function, (setf document-changes): Public ordinary functions
Function, (setf document-collection): Public ordinary functions
Function, (setf document-deleted-p): Public ordinary functions
Function, (setf document-document-type): Public ordinary functions
Function, (setf document-elements): Public ordinary functions
Function, (setf document-hash): Public ordinary functions
Function, (setf document-persisted-p): Private ordinary functions
Function, (setf document-store): Public ordinary functions
Function, (setf document-versions): Public ordinary functions
Function, (setf sexp-from-file): Public ordinary functions
Function, blob-file-ext: Public ordinary functions
Function, blob-file-type: Public ordinary functions
Function, blob-location: Public ordinary functions
Function, blob-p: Public ordinary functions
Function, blob-parent-accessor: Private ordinary functions
Function, blob-raw: Public ordinary functions
Function, blob-ref-p: Public ordinary functions
Function, blob-ref-values: Private ordinary functions
Function, blob-string-value: Public ordinary functions
Function, branch: Private ordinary functions
Function, calc: Private ordinary functions
Function, calc-branch: Private ordinary functions
Function, calc-document: Private ordinary functions
Function, call-do-sequence: Private ordinary functions
Function, check-keys-and-synq: Private ordinary functions
Function, concrete-type-get-set: Public ordinary functions
Function, copy-blob: Private ordinary functions
Function, copy-document: Private ordinary functions
Function, debug-log: Public ordinary functions
Function, document-changes: Public ordinary functions
Function, document-collection: Public ordinary functions
Function, document-deleted-p: Public ordinary functions
Function, document-document-type: Public ordinary functions
Function, document-elements: Public ordinary functions
Function, document-hash: Public ordinary functions
Function, document-list-p: Private ordinary functions
Function, document-list-to-csv: Public ordinary functions
Function, document-list-to-json: Public ordinary functions
Function, document-of-type-p: Public ordinary functions
Function, document-p: Public ordinary functions
Function, document-pair-to-plist: Private ordinary functions
Function, document-persisted-p: Private ordinary functions
Function, document-shard-mac: Public ordinary functions
Function, document-store: Public ordinary functions
Function, document-values-p: Private ordinary functions
Function, document-versions: Public ordinary functions
Function, documents-to-plist: Public ordinary functions
Function, element-type-val: Private ordinary functions
Function, empty-p: Public ordinary functions
Function, file-to-string: Public ordinary functions
Function, find-collection-definitions: Public ordinary functions
Function, find-collection-files: Private ordinary functions
Function, find-document-by-value: Private ordinary functions
Function, find-equalp-document: Public ordinary functions
Function, find-store-definitions: Private ordinary functions
Function, format-date-time: Private ordinary functions
Function, format-universal-date-time: Private ordinary functions
Function, frmt: Public ordinary functions
Function, get-collection*: Private ordinary functions
Function, get-shard-cache-safe%: Private ordinary functions
Function, get-shard-mac-cache-safe%: Private ordinary functions
Function, get-store*: Private ordinary functions
Function, get-store-from-def: Public ordinary functions
Function, get-temp: Private ordinary functions
Function, getxe*: Private ordinary functions
Function, hash-values: Private ordinary functions
Function, indexed-values: Private ordinary functions
Function, iso-timestamp-now: Private ordinary functions
Function, key-values%%: Private ordinary functions
Function, lambda-p: Private ordinary functions
Function, leaf-p: Private ordinary functions
Function, load-document-reference-collection: Public ordinary functions
Function, load-shards: Private ordinary functions
Function, load-store-document-types: Private ordinary functions
Function, make-blob: Public ordinary functions
Function, make-document: Public ordinary functions
Function, make-document-hash: Private ordinary functions
Function, make-hash: Private ordinary functions
Function, make-node: Private ordinary functions
Function, map-append: Public ordinary functions
Function, map-tree: Private ordinary functions
Function, maphash-collect: Public ordinary functions
Function, match-shard: Public ordinary functions
Function, naive-dig: Private ordinary functions
Function, node-p: Private ordinary functions
Function, parse-document: Private ordinary functions
Function, persist-collection: Public ordinary functions
Function, persist-merge-document: Private ordinary functions
Function, plist-to-pairs: Public ordinary functions
Function, plist-to-values: Public ordinary functions
Function, populate-partial-value-index: Private ordinary functions
Function, populate-value-index: Private ordinary functions
Function, read-blob: Public ordinary functions
Function, recalc: Private ordinary functions
Function, reference-documents-equal-p: Private ordinary functions
Function, remove-index-values: Private ordinary functions
Function, remove-partial-value-index: Private ordinary functions
Function, set-getxe*: Private ordinary functions
Function, set-naive-dig: Private ordinary functions
Function, set-shard-cache-safe%: Private ordinary functions
Function, set-shard-mac-cache-safe%: Private ordinary functions
Function, setxe-read*: Private ordinary functions
Function, sexp-from-file: Public ordinary functions
Function, short-month-name: Private ordinary functions
Function, tree-from-reference-tree: Private ordinary functions
Function, tree-to-reference-tree: Private ordinary functions
Function, treemap-csv: Private ordinary functions
Function, treemap-json: Private ordinary functions
Function, trim-whitespace: Public ordinary functions
Function, try-better-value-match: Private ordinary functions
Function, values-from-key-elements%: Private ordinary functions
Function, write-blob: Public ordinary functions
Function, write-list-items-to-file: Private ordinary functions
Function, write-log: Public ordinary functions
Function, write-pair-csv: Private ordinary functions
Function, write-pair-json: Private ordinary functions
Function, write-to-file: Public ordinary functions
Function, write-to-stream: Private ordinary functions

G
Generic Function, (setf attributes): Public generic functions
Generic Function, (setf children): Private generic functions
Generic Function, (setf collection-class): Public generic functions
Generic Function, (setf collections): Public generic functions
Generic Function, (setf concrete-type): Private generic functions
Generic Function, (setf deleted-p): Public generic functions
Generic Function, (setf document-type): Public generic functions
Generic Function, (setf document-type-class): Public generic functions
Generic Function, (setf document-types): Public generic functions
Generic Function, (setf documents): Public generic functions
Generic Function, (setf element-class): Public generic functions
Generic Function, (setf elements): Public generic functions
Generic Function, (setf gethash-safe): Public generic functions
Generic Function, (setf getxe): Public generic functions
Generic Function, (setf hash): Public generic functions
Generic Function, (setf hash-index): Private generic functions
Generic Function, (setf indexes): Public generic functions
Generic Function, (setf key-p): Public generic functions
Generic Function, (setf key-value-index): Public generic functions
Generic Function, (setf keys): Public generic functions
Generic Function, (setf label): Public generic functions
Generic Function, (setf location): Public generic functions
Generic Function, (setf lock): Public generic functions
Generic Function, (setf mac): Public generic functions
Generic Function, (setf merkle-hash): Private generic functions
Generic Function, (setf merkle-sum): Private generic functions
Generic Function, (setf name): Public generic functions
Generic Function, (setf parent): Private generic functions
Generic Function, (setf shard-elements): Private generic functions
Generic Function, (setf shards): Public generic functions
Generic Function, (setf shards-cache%): Private generic functions
Generic Function, (setf shards-macs-cache%): Private generic functions
Generic Function, (setf status): Public generic functions
Generic Function, (setf store): Public generic functions
Generic Function, (setf store-class): Public generic functions
Generic Function, (setf stores): Public generic functions
Generic Function, (setf universe): Public generic functions
Generic Function, add-collection: Public generic functions
Generic Function, add-document: Public generic functions
Generic Function, add-document-type: Public generic functions
Generic Function, add-index: Public generic functions
Generic Function, add-store: Public generic functions
Generic Function, attributes: Public generic functions
Generic Function, children: Private generic functions
Generic Function, clear-collection: Public generic functions
Generic Function, clear-documents: Public generic functions
Generic Function, collection-class: Public generic functions
Generic Function, collections: Public generic functions
Generic Function, compose-document: Public generic functions
Generic Function, compose-parse: Public generic functions
Generic Function, compose-special: Public generic functions
Generic Function, concrete-type: Private generic functions
Generic Function, data-loaded-p: Public generic functions
Generic Function, delete-document: Public generic functions
Generic Function, deleted-p: Public generic functions
Generic Function, document-type: Public generic functions
Generic Function, document-type-class: Public generic functions
Generic Function, document-types: Public generic functions
Generic Function, document-values: Public generic functions
Generic Function, documents: Public generic functions
Generic Function, element-class: Public generic functions
Generic Function, elements: Public generic functions
Generic Function, ensure-location: Public generic functions
Generic Function, existing-document: Public generic functions
Generic Function, exists-p: Private generic functions
Generic Function, find-document-by-hash: Public generic functions
Generic Function, get-collection: Public generic functions
Generic Function, get-collection-from-def: Public generic functions
Generic Function, get-document-type: Public generic functions
Generic Function, get-document-type-from-def: Public generic functions
Generic Function, get-shard: Public generic functions
Generic Function, get-store: Public generic functions
Generic Function, gethash-safe: Public generic functions
Generic Function, getxe: Public generic functions
Generic Function, getxn: Public generic functions
Generic Function, getxo: Public generic functions
Generic Function, hash: Public generic functions
Generic Function, hash-index: Private generic functions
Generic Function, index-lookup-hash: Public generic functions
Generic Function, index-lookup-values: Public generic functions
Generic Function, index-values: Public generic functions
Generic Function, indexes: Public generic functions
Generic Function, key-p: Public generic functions
Generic Function, key-value-index: Public generic functions
Generic Function, key-values: Public generic functions
Generic Function, keys: Public generic functions
Generic Function, label: Public generic functions
Generic Function, load-collections: Private generic functions
Generic Function, load-data: Public generic functions
Generic Function, load-shard: Private generic functions
Generic Function, load-store: Public generic functions
Generic Function, load-store-collections: Private generic functions
Generic Function, load-stores: Public generic functions
Generic Function, location: Public generic functions
Generic Function, lock: Public generic functions
Generic Function, mac: Public generic functions
Generic Function, make-mac: Public generic functions
Generic Function, make-shard: Public generic functions
Generic Function, merkle-hash: Private generic functions
Generic Function, merkle-sum: Private generic functions
Generic Function, naive-reduce: Public generic functions
Generic Function, name: Public generic functions
Generic Function, parent: Private generic functions
Generic Function, persist: Public generic functions
Generic Function, persist-collection-def: Public generic functions
Generic Function, persist-delete-document: Public generic functions
Generic Function, persist-document: Public generic functions
Generic Function, persist-form: Public generic functions
Generic Function, persist-parse: Public generic functions
Generic Function, push-value-index: Public generic functions
Generic Function, query-data: Public generic functions
Generic Function, query-document: Public generic functions
Generic Function, reference-form: Private generic functions
Generic Function, remhash-safe: Public generic functions
Generic Function, remove-collection: Public generic functions
Generic Function, remove-document: Public generic functions
Generic Function, remove-index: Public generic functions
Generic Function, remove-value-index: Public generic functions
Generic Function, sanitize-data-file: Public generic functions
Generic Function, sanitize-universe: Private generic functions
Generic Function, shard-elements: Private generic functions
Generic Function, shards: Public generic functions
Generic Function, shards-cache%: Private generic functions
Generic Function, shards-macs-cache%: Private generic functions
Generic Function, short-mac: Public generic functions
Generic Function, status: Public generic functions
Generic Function, store: Public generic functions
Generic Function, store-class: Public generic functions
Generic Function, stores: Public generic functions
Generic Function, type-of-doc-element: Public generic functions
Generic Function, type-of-sexp: Public generic functions
Generic Function, universe: Public generic functions
Generic Function, validate-xe: Public generic functions
get-collection: Public generic functions
get-collection: Public generic functions
get-collection*: Private ordinary functions
get-collection-from-def: Public generic functions
get-collection-from-def: Public generic functions
get-collection-from-def: Public generic functions
get-document-type: Public generic functions
get-document-type: Public generic functions
get-document-type-from-def: Public generic functions
get-document-type-from-def: Public generic functions
get-shard: Public generic functions
get-shard: Public generic functions
get-shard: Public generic functions
get-shard: Public generic functions
get-shard-cache-safe%: Private ordinary functions
get-shard-mac-cache-safe%: Private ordinary functions
get-store: Public generic functions
get-store: Public generic functions
get-store*: Private ordinary functions
get-store-from-def: Public ordinary functions
get-temp: Private ordinary functions
gethash-safe: Public generic functions
gethash-safe: Public generic functions
getx: Public standalone methods
getx: Public standalone methods
getx: Public standalone methods
getx: Public standalone methods
getx: Public standalone methods
getx: Public standalone methods
getxe: Public generic functions
getxe: Public generic functions
getxe: Public generic functions
getxe: Public generic functions
getxe: Public generic functions
getxe: Public generic functions
getxe: Public generic functions
getxe*: Private ordinary functions
getxn: Public generic functions
getxn: Public generic functions
getxo: Public generic functions
getxo: Public generic functions

H
hash: Public generic functions
hash: Public generic functions
hash: Public generic functions
hash-index: Private generic functions
hash-index: Private generic functions
hash-values: Private ordinary functions

I
index-lookup-hash: Public generic functions
index-lookup-hash: Public generic functions
index-lookup-values: Public generic functions
index-lookup-values: Public generic functions
index-lookup-values: Public generic functions
index-values: Public generic functions
index-values: Public generic functions
index-values: Public generic functions
indexed-values: Private ordinary functions
indexes: Public generic functions
indexes: Public generic functions
iso-timestamp-now: Private ordinary functions

K
key-p: Public generic functions
key-p: Public generic functions
key-value-index: Public generic functions
key-value-index: Public generic functions
key-values: Public generic functions
key-values: Public generic functions
key-values: Public generic functions
key-values: Public generic functions
key-values%%: Private ordinary functions
keys: Public generic functions
keys: Public generic functions

L
label: Public generic functions
label: Public generic functions
lambda-p: Private ordinary functions
leaf-p: Private ordinary functions
load-collections: Private generic functions
load-collections: Private generic functions
load-data: Public generic functions
load-data: Public generic functions
load-document-reference-collection: Public ordinary functions
load-shard: Private generic functions
load-shard: Private generic functions
load-shard: Private generic functions
load-shards: Private ordinary functions
load-store: Public generic functions
load-store: Public generic functions
load-store: Public generic functions
load-store-collections: Private generic functions
load-store-collections: Private generic functions
load-store-document-types: Private ordinary functions
load-stores: Public generic functions
load-stores: Public generic functions
location: Public generic functions
location: Public generic functions
location: Public generic functions
location: Public generic functions
location: Public generic functions
lock: Public generic functions
lock: Public generic functions

M
mac: Public generic functions
mac: Public generic functions
Macro, do-sequence: Public macros
Macro, with-file-lock: Public macros
Macro, with-open-file-lock: Public macros
make-blob: Public ordinary functions
make-document: Public ordinary functions
make-document-hash: Private ordinary functions
make-hash: Private ordinary functions
make-mac: Public generic functions
make-mac: Public generic functions
make-node: Private ordinary functions
make-shard: Public generic functions
make-shard: Public generic functions
make-shard: Public generic functions
map-append: Public ordinary functions
map-tree: Private ordinary functions
maphash-collect: Public ordinary functions
match-shard: Public ordinary functions
merkle-hash: Private generic functions
merkle-hash: Private generic functions
merkle-sum: Private generic functions
merkle-sum: Private generic functions
Method, (setf attributes): Public generic functions
Method, (setf children): Private generic functions
Method, (setf collection-class): Public generic functions
Method, (setf collections): Public generic functions
Method, (setf concrete-type): Private generic functions
Method, (setf deleted-p): Public generic functions
Method, (setf deleted-p): Public generic functions
Method, (setf digx): Public standalone methods
Method, (setf document-type): Public generic functions
Method, (setf document-type-class): Public generic functions
Method, (setf document-types): Public generic functions
Method, (setf documents): Public generic functions
Method, (setf element-class): Public generic functions
Method, (setf elements): Public generic functions
Method, (setf gethash-safe): Public generic functions
Method, (setf getx): Public standalone methods
Method, (setf getx): Public standalone methods
Method, (setf getx): Public standalone methods
Method, (setf getx): Public standalone methods
Method, (setf getx): Public standalone methods
Method, (setf getx): Public standalone methods
Method, (setf getxe): Public generic functions
Method, (setf getxe): Public generic functions
Method, (setf getxe): Public generic functions
Method, (setf getxe): Public generic functions
Method, (setf getxe): Public generic functions
Method, (setf getxe): Public generic functions
Method, (setf getxe): Public generic functions
Method, (setf getxe): Public generic functions
Method, (setf getxe): Public generic functions
Method, (setf getxe): Public generic functions
Method, (setf getxe): Public generic functions
Method, (setf getxe): Public generic functions
Method, (setf getxe): Public generic functions
Method, (setf getxe): Public generic functions
Method, (setf getxe): Public generic functions
Method, (setf getxe): Public generic functions
Method, (setf getxe): Public generic functions
Method, (setf getxe): Public generic functions
Method, (setf getxe): Public generic functions
Method, (setf getxe): Public generic functions
Method, (setf getxe): Public generic functions
Method, (setf getxe): Public generic functions
Method, (setf getxe): Public generic functions
Method, (setf getxe): Public generic functions
Method, (setf getxe): Public generic functions
Method, (setf getxe): Public generic functions
Method, (setf getxe): Public generic functions
Method, (setf hash): Public generic functions
Method, (setf hash): Public generic functions
Method, (setf hash-index): Private generic functions
Method, (setf indexes): Public generic functions
Method, (setf key-p): Public generic functions
Method, (setf key-value-index): Public generic functions
Method, (setf keys): Public generic functions
Method, (setf label): Public generic functions
Method, (setf location): Public generic functions
Method, (setf location): Public generic functions
Method, (setf location): Public generic functions
Method, (setf location): Public generic functions
Method, (setf lock): Public generic functions
Method, (setf mac): Public generic functions
Method, (setf merkle-hash): Private generic functions
Method, (setf merkle-sum): Private generic functions
Method, (setf name): Public generic functions
Method, (setf name): Public generic functions
Method, (setf name): Public generic functions
Method, (setf name): Public generic functions
Method, (setf parent): Private generic functions
Method, (setf shard-elements): Private generic functions
Method, (setf shards): Public generic functions
Method, (setf shards-cache%): Private generic functions
Method, (setf shards-macs-cache%): Private generic functions
Method, (setf status): Public generic functions
Method, (setf store): Public generic functions
Method, (setf store): Public generic functions
Method, (setf store-class): Public generic functions
Method, (setf stores): Public generic functions
Method, (setf universe): Public generic functions
Method, add-collection: Public generic functions
Method, add-collection: Public generic functions
Method, add-document: Public generic functions
Method, add-document: Public generic functions
Method, add-document-type: Public generic functions
Method, add-index: Public generic functions
Method, add-store: Public generic functions
Method, attributes: Public generic functions
Method, children: Private generic functions
Method, clear-collection: Public generic functions
Method, clear-documents: Public generic functions
Method, collection-class: Public generic functions
Method, collections: Public generic functions
Method, compose-document: Public generic functions
Method, compose-document: Public generic functions
Method, compose-parse: Public generic functions
Method, compose-special: Public generic functions
Method, compose-special: Public generic functions
Method, compose-special: Public generic functions
Method, compose-special: Public generic functions
Method, compose-special: Public generic functions
Method, compose-special: Public generic functions
Method, compose-special: Public generic functions
Method, compose-special: Public generic functions
Method, concrete-type: Private generic functions
Method, data-loaded-p: Public generic functions
Method, data-loaded-p: Public generic functions
Method, data-loaded-p: Public generic functions
Method, delete-document: Public generic functions
Method, deleted-p: Public generic functions
Method, deleted-p: Public generic functions
Method, digx: Public standalone methods
Method, document-type: Public generic functions
Method, document-type-class: Public generic functions
Method, document-types: Public generic functions
Method, document-values: Public generic functions
Method, document-values: Public generic functions
Method, documents: Public generic functions
Method, documents: Public generic functions
Method, element-class: Public generic functions
Method, elements: Public generic functions
Method, ensure-location: Public generic functions
Method, ensure-location: Public generic functions
Method, ensure-location: Public generic functions
Method, existing-document: Public generic functions
Method, existing-document: Public generic functions
Method, exists-p: Private generic functions
Method, find-document-by-hash: Public generic functions
Method, find-document-by-hash: Public generic functions
Method, get-collection: Public generic functions
Method, get-collection-from-def: Public generic functions
Method, get-collection-from-def: Public generic functions
Method, get-document-type: Public generic functions
Method, get-document-type-from-def: Public generic functions
Method, get-shard: Public generic functions
Method, get-shard: Public generic functions
Method, get-shard: Public generic functions
Method, get-store: Public generic functions
Method, gethash-safe: Public generic functions
Method, getx: Public standalone methods
Method, getx: Public standalone methods
Method, getx: Public standalone methods
Method, getx: Public standalone methods
Method, getx: Public standalone methods
Method, getx: Public standalone methods
Method, getxe: Public generic functions
Method, getxe: Public generic functions
Method, getxe: Public generic functions
Method, getxe: Public generic functions
Method, getxe: Public generic functions
Method, getxe: Public generic functions
Method, getxn: Public generic functions
Method, getxo: Public generic functions
Method, hash: Public generic functions
Method, hash: Public generic functions
Method, hash-index: Private generic functions
Method, index-lookup-hash: Public generic functions
Method, index-lookup-values: Public generic functions
Method, index-lookup-values: Public generic functions
Method, index-values: Public generic functions
Method, index-values: Public generic functions
Method, indexes: Public generic functions
Method, key-p: Public generic functions
Method, key-value-index: Public generic functions
Method, key-values: Public generic functions
Method, key-values: Public generic functions
Method, key-values: Public generic functions
Method, keys: Public generic functions
Method, label: Public generic functions
Method, load-collections: Private generic functions
Method, load-data: Public generic functions
Method, load-shard: Private generic functions
Method, load-shard: Private generic functions
Method, load-store: Public generic functions
Method, load-store: Public generic functions
Method, load-store-collections: Private generic functions
Method, load-stores: Public generic functions
Method, location: Public generic functions
Method, location: Public generic functions
Method, location: Public generic functions
Method, location: Public generic functions
Method, lock: Public generic functions
Method, mac: Public generic functions
Method, make-mac: Public generic functions
Method, make-shard: Public generic functions
Method, make-shard: Public generic functions
Method, merkle-hash: Private generic functions
Method, merkle-sum: Private generic functions
Method, murmurhash: Public standalone methods
Method, naive-reduce: Public generic functions
Method, naive-reduce: Public generic functions
Method, naive-reduce: Public generic functions
Method, naive-reduce: Public generic functions
Method, naive-reduce: Public generic functions
Method, name: Public generic functions
Method, name: Public generic functions
Method, name: Public generic functions
Method, name: Public generic functions
Method, parent: Private generic functions
Method, persist: Public generic functions
Method, persist: Public generic functions
Method, persist: Public generic functions
Method, persist-collection-def: Public generic functions
Method, persist-collection-def: Public generic functions
Method, persist-delete-document: Public generic functions
Method, persist-document: Public generic functions
Method, persist-document: Public generic functions
Method, persist-document: Public generic functions
Method, persist-form: Public generic functions
Method, persist-form: Public generic functions
Method, persist-form: Public generic functions
Method, persist-form: Public generic functions
Method, persist-form: Public generic functions
Method, persist-form: Public generic functions
Method, persist-form: Public generic functions
Method, persist-form: Public generic functions
Method, persist-parse: Public generic functions
Method, persist-parse: Public generic functions
Method, place-exists-p: Public standalone methods
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, push-value-index: Public generic functions
Method, query-data: Public generic functions
Method, query-data: Public generic functions
Method, query-data: Public generic functions
Method, query-data: Public generic functions
Method, query-data: Public generic functions
Method, query-data: Public generic functions
Method, query-document: Public generic functions
Method, query-document: Public generic functions
Method, query-document: Public generic functions
Method, query-document: Public generic functions
Method, query-document: Public generic functions
Method, reference-form: Private generic functions
Method, remhash-safe: Public generic functions
Method, remove-collection: Public generic functions
Method, remove-document: Public generic functions
Method, remove-document: Public generic functions
Method, remove-document: Public generic functions
Method, remove-index: Public generic functions
Method, remove-value-index: Public generic functions
Method, sanitize-data-file: Public generic functions
Method, sanitize-universe: Private generic functions
Method, shard-elements: Private generic functions
Method, shards: Public generic functions
Method, shards-cache%: Private generic functions
Method, shards-macs-cache%: Private generic functions
Method, short-mac: Public generic functions
Method, status: Public generic functions
Method, store: Public generic functions
Method, store: Public generic functions
Method, store-class: Public generic functions
Method, stores: Public generic functions
Method, type-of-doc-element: Public generic functions
Method, type-of-doc-element: Public generic functions
Method, type-of-sexp: Public generic functions
Method, type-of-sexp: Public generic functions
Method, universe: Public generic functions
Method, validate-xe: Public generic functions
Method, validate-xe: Public generic functions
Method, validate-xe: Public generic functions
Method, validate-xe: Public generic functions
Method, validate-xe: Public generic functions
murmurhash: Public standalone methods

N
naive-dig: Private ordinary functions
naive-reduce: Public generic functions
naive-reduce: Public generic functions
naive-reduce: Public generic functions
naive-reduce: Public generic functions
naive-reduce: Public generic functions
naive-reduce: Public generic functions
name: Public generic functions
name: Public generic functions
name: Public generic functions
name: Public generic functions
name: Public generic functions
node-p: Private ordinary functions

P
parent: Private generic functions
parent: Private generic functions
parse-document: Private ordinary functions
persist: Public generic functions
persist: Public generic functions
persist: Public generic functions
persist: Public generic functions
persist-collection: Public ordinary functions
persist-collection-def: Public generic functions
persist-collection-def: Public generic functions
persist-collection-def: Public generic functions
persist-delete-document: Public generic functions
persist-delete-document: Public generic functions
persist-document: Public generic functions
persist-document: Public generic functions
persist-document: Public generic functions
persist-document: Public generic functions
persist-form: Public generic functions
persist-form: Public generic functions
persist-form: Public generic functions
persist-form: Public generic functions
persist-form: Public generic functions
persist-form: Public generic functions
persist-form: Public generic functions
persist-form: Public generic functions
persist-form: Public generic functions
persist-merge-document: Private ordinary functions
persist-parse: Public generic functions
persist-parse: Public generic functions
persist-parse: Public generic functions
place-exists-p: Public standalone methods
plist-to-pairs: Public ordinary functions
plist-to-values: Public ordinary functions
populate-partial-value-index: Private ordinary functions
populate-value-index: Private ordinary functions
print-object: Public standalone methods
print-object: Public standalone methods
print-object: Public standalone methods
push-value-index: Public generic functions
push-value-index: Public generic functions

Q
query-data: Public generic functions
query-data: Public generic functions
query-data: Public generic functions
query-data: Public generic functions
query-data: Public generic functions
query-data: Public generic functions
query-data: Public generic functions
query-document: Public generic functions
query-document: Public generic functions
query-document: Public generic functions
query-document: Public generic functions
query-document: Public generic functions
query-document: Public generic functions

R
read-blob: Public ordinary functions
recalc: Private ordinary functions
reference-documents-equal-p: Private ordinary functions
reference-form: Private generic functions
reference-form: Private generic functions
remhash-safe: Public generic functions
remhash-safe: Public generic functions
remove-collection: Public generic functions
remove-collection: Public generic functions
remove-document: Public generic functions
remove-document: Public generic functions
remove-document: Public generic functions
remove-document: Public generic functions
remove-index: Public generic functions
remove-index: Public generic functions
remove-index-values: Private ordinary functions
remove-partial-value-index: Private ordinary functions
remove-value-index: Public generic functions
remove-value-index: Public generic functions

S
sanitize-data-file: Public generic functions
sanitize-data-file: Public generic functions
sanitize-universe: Private generic functions
sanitize-universe: Private generic functions
set-getxe*: Private ordinary functions
set-naive-dig: Private ordinary functions
set-shard-cache-safe%: Private ordinary functions
set-shard-mac-cache-safe%: Private ordinary functions
setxe-read*: Private ordinary functions
sexp-from-file: Public ordinary functions
shard-elements: Private generic functions
shard-elements: Private generic functions
shards: Public generic functions
shards: Public generic functions
shards-cache%: Private generic functions
shards-cache%: Private generic functions
shards-macs-cache%: Private generic functions
shards-macs-cache%: Private generic functions
short-mac: Public generic functions
short-mac: Public generic functions
short-month-name: Private ordinary functions
status: Public generic functions
status: Public generic functions
store: Public generic functions
store: Public generic functions
store: Public generic functions
store-class: Public generic functions
store-class: Public generic functions
stores: Public generic functions
stores: Public generic functions

T
tree-from-reference-tree: Private ordinary functions
tree-to-reference-tree: Private ordinary functions
treemap-csv: Private ordinary functions
treemap-json: Private ordinary functions
trim-whitespace: Public ordinary functions
try-better-value-match: Private ordinary functions
type-of-doc-element: Public generic functions
type-of-doc-element: Public generic functions
type-of-doc-element: Public generic functions
type-of-sexp: Public generic functions
type-of-sexp: Public generic functions
type-of-sexp: Public generic functions

U
universe: Public generic functions
universe: Public generic functions

V
validate-xe: Public generic functions
validate-xe: Public generic functions
validate-xe: Public generic functions
validate-xe: Public generic functions
validate-xe: Public generic functions
validate-xe: Public generic functions
values-from-key-elements%: Private ordinary functions

W
with-file-lock: Public macros
with-open-file-lock: Public macros
write-blob: Public ordinary functions
write-list-items-to-file: Private ordinary functions
write-log: Public ordinary functions
write-pair-csv: Private ordinary functions
write-pair-json: Private ordinary functions
write-to-file: Public ordinary functions
write-to-stream: Private ordinary functions

Jump to:   (  
A   B   C   D   E   F   G   H   I   K   L   M   N   P   Q   R   S   T   U   V   W  

Next: , Previous: , Up: Indexes   [Contents][Index]

A.3 Variables

Jump to:   %   *  
A   C   D   E   F   H   I   K   L   M   N   P   R   S   U   V  
Index Entry  Section

%
%loading-shard%: Public special variables

*
*break-on-debug-log*: Private special variables
*break-on-error-log*: Public special variables
*debug-log-p*: Public special variables
*disable-parallel-p*: Public special variables
*do-partial-indexing*: Public special variables
*files*: Private special variables
*index-query-lock*: Private special variables
*lock*: Public special variables
*mac-key*: Private special variables
*now*: Private special variables
*query-lock*: Private special variables
*shards-cache-lock*: Private special variables
*shards-macs-cache-lock*: Private special variables
*short-months*: Private special variables
*std-lock*: Private special variables
*time-zone*: Private special variables

A
attributes: Public classes

C
changes: Public structures
children: Private classes
collection: Public structures
collection-class: Public classes
collections: Public classes
concrete-type: Public classes

D
deleted-p: Public structures
document-type: Public structures
document-type: Public classes
document-type-class: Public classes
document-types: Public classes
documents: Public classes

E
element-class: Public classes
elements: Public structures
elements: Public classes

F
file-ext: Public structures
file-type: Public structures

H
hash: Public structures
hash-index: Private classes

I
indexes: Public classes

K
key-p: Public classes
key-value-index: Private classes
keys: Public classes

L
label: Public classes
location: Public structures
location: Public classes
location: Public classes
location: Public classes
location: Public classes
lock: Public classes

M
mac: Public classes
merkle-hash: Private classes
merkle-sum: Private classes

N
name: Public classes
name: Public classes
name: Public classes
name: Public classes

P
parent: Private classes
parent-accessor: Public structures
persisted-p: Public structures

R
raw: Public structures

S
shard-elements: Public classes
shards: Public classes
shards-cache%: Public classes
shards-macs-cache%: Public classes
Slot, attributes: Public classes
Slot, changes: Public structures
Slot, children: Private classes
Slot, collection: Public structures
Slot, collection-class: Public classes
Slot, collections: Public classes
Slot, concrete-type: Public classes
Slot, deleted-p: Public structures
Slot, document-type: Public structures
Slot, document-type: Public classes
Slot, document-type-class: Public classes
Slot, document-types: Public classes
Slot, documents: Public classes
Slot, element-class: Public classes
Slot, elements: Public structures
Slot, elements: Public classes
Slot, file-ext: Public structures
Slot, file-type: Public structures
Slot, hash: Public structures
Slot, hash-index: Private classes
Slot, indexes: Public classes
Slot, key-p: Public classes
Slot, key-value-index: Private classes
Slot, keys: Public classes
Slot, label: Public classes
Slot, location: Public structures
Slot, location: Public classes
Slot, location: Public classes
Slot, location: Public classes
Slot, location: Public classes
Slot, lock: Public classes
Slot, mac: Public classes
Slot, merkle-hash: Private classes
Slot, merkle-sum: Private classes
Slot, name: Public classes
Slot, name: Public classes
Slot, name: Public classes
Slot, name: Public classes
Slot, parent: Private classes
Slot, parent-accessor: Public structures
Slot, persisted-p: Public structures
Slot, raw: Public structures
Slot, shard-elements: Public classes
Slot, shards: Public classes
Slot, shards-cache%: Public classes
Slot, shards-macs-cache%: Public classes
Slot, status: Public classes
Slot, store: Public structures
Slot, store: Public classes
Slot, store: Public classes
Slot, store-class: Public classes
Slot, stores: Public classes
Slot, universe: Public classes
Slot, versions: Public structures
Special Variable, %loading-shard%: Public special variables
Special Variable, *break-on-debug-log*: Private special variables
Special Variable, *break-on-error-log*: Public special variables
Special Variable, *debug-log-p*: Public special variables
Special Variable, *disable-parallel-p*: Public special variables
Special Variable, *do-partial-indexing*: Public special variables
Special Variable, *files*: Private special variables
Special Variable, *index-query-lock*: Private special variables
Special Variable, *lock*: Public special variables
Special Variable, *mac-key*: Private special variables
Special Variable, *now*: Private special variables
Special Variable, *query-lock*: Private special variables
Special Variable, *shards-cache-lock*: Private special variables
Special Variable, *shards-macs-cache-lock*: Private special variables
Special Variable, *short-months*: Private special variables
Special Variable, *std-lock*: Private special variables
Special Variable, *time-zone*: Private special variables
status: Public classes
store: Public structures
store: Public classes
store: Public classes
store-class: Public classes
stores: Public classes

U
universe: Public classes

V
versions: Public structures

Jump to:   %   *  
A   C   D   E   F   H   I   K   L   M   N   P   R   S   U   V  

Previous: , Up: Indexes   [Contents][Index]

A.4 Data types

Jump to:   B   C   D   E   F   I   M   N   P   S   U  
Index Entry  Section

B
blob: Public structures

C
cl-naive-merkle: The cl-naive-merkle package
cl-naive-store: The cl-naive-store system
cl-naive-store.asd: The cl-naive-store/cl-naive-store․asd file
cl-naive-store.document-type-defs: The cl-naive-store․document-type-defs system
cl-naive-store.document-type-defs: The cl-naive-store․document-type-defs package
cl-naive-store.document-type-defs.asd: The cl-naive-store․document-type-defs/cl-naive-store․document-type-defs․asd file
cl-naive-store.document-types: The cl-naive-store․document-types system
cl-naive-store.document-types: The cl-naive-store․document-types package
cl-naive-store.document-types.asd: The cl-naive-store․document-types/cl-naive-store․document-types․asd file
cl-naive-store.naive-core: The cl-naive-store․naive-core system
cl-naive-store.naive-core: The cl-naive-store․naive-core package
cl-naive-store.naive-core.asd: The cl-naive-store․naive-core/cl-naive-store․naive-core․asd file
cl-naive-store.naive-documents: The cl-naive-store․naive-documents system
cl-naive-store.naive-documents: The cl-naive-store․naive-documents package
cl-naive-store.naive-documents.asd: The cl-naive-store․naive-documents/cl-naive-store․naive-documents․asd file
cl-naive-store.naive-indexed: The cl-naive-store․naive-indexed system
cl-naive-store.naive-indexed: The cl-naive-store․naive-indexed package
cl-naive-store.naive-indexed.asd: The cl-naive-store․naive-indexed/cl-naive-store․naive-indexed․asd file
cl-naive-store.naive-merkle: The cl-naive-store․naive-merkle system
cl-naive-store.naive-merkle.asd: The cl-naive-store․naive-merkle/cl-naive-store․naive-merkle․asd file
Class, collection: Public classes
Class, document-collection: Public classes
Class, document-store: Public classes
Class, document-type: Public classes
Class, document-type-collection-mixin: Public classes
Class, document-type-store-mixin: Public classes
Class, element: Public classes
Class, indexed-collection-mixin: Public classes
Class, indexed-shard: Private classes
Class, merkle-node: Private classes
Class, shard: Public classes
Class, store: Public classes
Class, universe: Public classes
collection: Public classes

D
document: Public structures
document-collection: Public classes
document-store: Public classes
document-type: Public classes
document-type-collection-mixin: Public classes
document-type-store-mixin: Public classes
documents-impl: The documents-impl package

E
element: Public classes

F
File, cl-naive-store.asd: The cl-naive-store/cl-naive-store․asd file
File, cl-naive-store.document-type-defs.asd: The cl-naive-store․document-type-defs/cl-naive-store․document-type-defs․asd file
File, cl-naive-store.document-types.asd: The cl-naive-store․document-types/cl-naive-store․document-types․asd file
File, cl-naive-store.naive-core.asd: The cl-naive-store․naive-core/cl-naive-store․naive-core․asd file
File, cl-naive-store.naive-documents.asd: The cl-naive-store․naive-documents/cl-naive-store․naive-documents․asd file
File, cl-naive-store.naive-indexed.asd: The cl-naive-store․naive-indexed/cl-naive-store․naive-indexed․asd file
File, cl-naive-store.naive-merkle.asd: The cl-naive-store․naive-merkle/cl-naive-store․naive-merkle․asd file
File, src/document-type-defs/document-type-defs.lisp: The cl-naive-store․document-type-defs/src/document-type-defs/document-type-defs․lisp file
File, src/document-type-defs/packages.lisp: The cl-naive-store․document-type-defs/src/document-type-defs/packages․lisp file
File, src/document-types/document-types.lisp: The cl-naive-store․document-types/src/document-types/document-types․lisp file
File, src/document-types/packages.lisp: The cl-naive-store․document-types/src/document-types/packages․lisp file
File, src/naive-documents/document-types.lisp: The cl-naive-store․naive-documents/src/naive-documents/document-types․lisp file
File, src/naive-documents/documents-impl/package.lisp: The cl-naive-store․naive-documents/src/naive-documents/documents-impl/package․lisp file
File, src/naive-documents/documents-impl/parse-document.lisp: The cl-naive-store․naive-documents/src/naive-documents/documents-impl/parse-document․lisp file
File, src/naive-documents/documents-impl/persist-document.lisp: The cl-naive-store․naive-documents/src/naive-documents/documents-impl/persist-document․lisp file
File, src/naive-documents/documents.lisp: The cl-naive-store․naive-documents/src/naive-documents/documents․lisp file
File, src/naive-documents/export-csv.lisp: The cl-naive-store․naive-documents/src/naive-documents/export-csv․lisp file
File, src/naive-documents/export-json.lisp: The cl-naive-store․naive-documents/src/naive-documents/export-json․lisp file
File, src/naive-documents/export.lisp: The cl-naive-store․naive-documents/src/naive-documents/export․lisp file
File, src/naive-documents/indexed.lisp: The cl-naive-store․naive-documents/src/naive-documents/indexed․lisp file
File, src/naive-documents/naive-documents.lisp: The cl-naive-store․naive-documents/src/naive-documents/naive-documents․lisp file
File, src/naive-documents/packages.lisp: The cl-naive-store․naive-documents/src/naive-documents/packages․lisp file
File, src/naive-documents/query.lisp: The cl-naive-store․naive-documents/src/naive-documents/query․lisp file
File, src/naive-indexed/indexed-impl.lisp: The cl-naive-store․naive-indexed/src/naive-indexed/indexed-impl․lisp file
File, src/naive-indexed/naive-indexed.lisp: The cl-naive-store․naive-indexed/src/naive-indexed/naive-indexed․lisp file
File, src/naive-indexed/packages.lisp: The cl-naive-store․naive-indexed/src/naive-indexed/packages․lisp file
File, src/naive-indexed/parse-document.lisp: The cl-naive-store․naive-indexed/src/naive-indexed/parse-document․lisp file
File, src/naive-indexed/query.lisp: The cl-naive-store․naive-indexed/src/naive-indexed/query․lisp file
File, src/naive-merkle/merkle.lisp: The cl-naive-store․naive-merkle/src/naive-merkle/merkle․lisp file
File, src/naive-merkle/package.lisp: The cl-naive-store․naive-merkle/src/naive-merkle/package․lisp file
File, src/naive-store/blob.lisp: The cl-naive-store․naive-core/src/naive-store/blob․lisp file
File, src/naive-store/documents.lisp: The cl-naive-store․naive-core/src/naive-store/documents․lisp file
File, src/naive-store/load.lisp: The cl-naive-store․naive-core/src/naive-store/load․lisp file
File, src/naive-store/maintenance.lisp: The cl-naive-store․naive-core/src/naive-store/maintenance․lisp file
File, src/naive-store/naive-core.lisp: The cl-naive-store․naive-core/src/naive-store/naive-core․lisp file
File, src/naive-store/naive-impl/common.lisp: The cl-naive-store․naive-core/src/naive-store/naive-impl/common․lisp file
File, src/naive-store/naive-impl/files.lisp: The cl-naive-store․naive-core/src/naive-store/naive-impl/files․lisp file
File, src/naive-store/naive-impl/logs.lisp: The cl-naive-store․naive-core/src/naive-store/naive-impl/logs․lisp file
File, src/naive-store/naive-impl/naive-core.lisp: The cl-naive-store․naive-core/src/naive-store/naive-impl/naive-core․lisp file
File, src/naive-store/naive-impl/package.lisp: The cl-naive-store․naive-core/src/naive-store/naive-impl/package․lisp file
File, src/naive-store/naive-impl/parse-document.lisp: The cl-naive-store․naive-core/src/naive-store/naive-impl/parse-document․lisp file
File, src/naive-store/naive-impl/persist-document.lisp: The cl-naive-store․naive-core/src/naive-store/naive-impl/persist-document․lisp file
File, src/naive-store/packages.lisp: The cl-naive-store․naive-core/src/naive-store/packages․lisp file
File, src/naive-store/query.lisp: The cl-naive-store․naive-core/src/naive-store/query․lisp file

I
indexed-collection-mixin: Public classes
indexed-impl: The indexed-impl package
indexed-shard: Private classes

M
merkle-node: Private classes

N
naive-impl: The naive-impl package

P
Package, cl-naive-merkle: The cl-naive-merkle package
Package, cl-naive-store.document-type-defs: The cl-naive-store․document-type-defs package
Package, cl-naive-store.document-types: The cl-naive-store․document-types package
Package, cl-naive-store.naive-core: The cl-naive-store․naive-core package
Package, cl-naive-store.naive-documents: The cl-naive-store․naive-documents package
Package, cl-naive-store.naive-indexed: The cl-naive-store․naive-indexed package
Package, documents-impl: The documents-impl package
Package, indexed-impl: The indexed-impl package
Package, naive-impl: The naive-impl package

S
shard: Public classes
src/document-type-defs/document-type-defs.lisp: The cl-naive-store․document-type-defs/src/document-type-defs/document-type-defs․lisp file
src/document-type-defs/packages.lisp: The cl-naive-store․document-type-defs/src/document-type-defs/packages․lisp file
src/document-types/document-types.lisp: The cl-naive-store․document-types/src/document-types/document-types․lisp file
src/document-types/packages.lisp: The cl-naive-store․document-types/src/document-types/packages․lisp file
src/naive-documents/document-types.lisp: The cl-naive-store․naive-documents/src/naive-documents/document-types․lisp file
src/naive-documents/documents-impl/package.lisp: The cl-naive-store․naive-documents/src/naive-documents/documents-impl/package․lisp file
src/naive-documents/documents-impl/parse-document.lisp: The cl-naive-store․naive-documents/src/naive-documents/documents-impl/parse-document․lisp file
src/naive-documents/documents-impl/persist-document.lisp: The cl-naive-store․naive-documents/src/naive-documents/documents-impl/persist-document․lisp file
src/naive-documents/documents.lisp: The cl-naive-store․naive-documents/src/naive-documents/documents․lisp file
src/naive-documents/export-csv.lisp: The cl-naive-store․naive-documents/src/naive-documents/export-csv․lisp file
src/naive-documents/export-json.lisp: The cl-naive-store․naive-documents/src/naive-documents/export-json․lisp file
src/naive-documents/export.lisp: The cl-naive-store․naive-documents/src/naive-documents/export․lisp file
src/naive-documents/indexed.lisp: The cl-naive-store․naive-documents/src/naive-documents/indexed․lisp file
src/naive-documents/naive-documents.lisp: The cl-naive-store․naive-documents/src/naive-documents/naive-documents․lisp file
src/naive-documents/packages.lisp: The cl-naive-store․naive-documents/src/naive-documents/packages․lisp file
src/naive-documents/query.lisp: The cl-naive-store․naive-documents/src/naive-documents/query․lisp file
src/naive-indexed/indexed-impl.lisp: The cl-naive-store․naive-indexed/src/naive-indexed/indexed-impl․lisp file
src/naive-indexed/naive-indexed.lisp: The cl-naive-store․naive-indexed/src/naive-indexed/naive-indexed․lisp file
src/naive-indexed/packages.lisp: The cl-naive-store․naive-indexed/src/naive-indexed/packages․lisp file
src/naive-indexed/parse-document.lisp: The cl-naive-store․naive-indexed/src/naive-indexed/parse-document․lisp file
src/naive-indexed/query.lisp: The cl-naive-store․naive-indexed/src/naive-indexed/query․lisp file
src/naive-merkle/merkle.lisp: The cl-naive-store․naive-merkle/src/naive-merkle/merkle․lisp file
src/naive-merkle/package.lisp: The cl-naive-store․naive-merkle/src/naive-merkle/package․lisp file
src/naive-store/blob.lisp: The cl-naive-store․naive-core/src/naive-store/blob․lisp file
src/naive-store/documents.lisp: The cl-naive-store․naive-core/src/naive-store/documents․lisp file
src/naive-store/load.lisp: The cl-naive-store․naive-core/src/naive-store/load․lisp file
src/naive-store/maintenance.lisp: The cl-naive-store․naive-core/src/naive-store/maintenance․lisp file
src/naive-store/naive-core.lisp: The cl-naive-store․naive-core/src/naive-store/naive-core․lisp file
src/naive-store/naive-impl/common.lisp: The cl-naive-store․naive-core/src/naive-store/naive-impl/common․lisp file
src/naive-store/naive-impl/files.lisp: The cl-naive-store․naive-core/src/naive-store/naive-impl/files․lisp file
src/naive-store/naive-impl/logs.lisp: The cl-naive-store․naive-core/src/naive-store/naive-impl/logs․lisp file
src/naive-store/naive-impl/naive-core.lisp: The cl-naive-store․naive-core/src/naive-store/naive-impl/naive-core․lisp file
src/naive-store/naive-impl/package.lisp: The cl-naive-store․naive-core/src/naive-store/naive-impl/package․lisp file
src/naive-store/naive-impl/parse-document.lisp: The cl-naive-store․naive-core/src/naive-store/naive-impl/parse-document․lisp file
src/naive-store/naive-impl/persist-document.lisp: The cl-naive-store․naive-core/src/naive-store/naive-impl/persist-document․lisp file
src/naive-store/packages.lisp: The cl-naive-store․naive-core/src/naive-store/packages․lisp file
src/naive-store/query.lisp: The cl-naive-store․naive-core/src/naive-store/query․lisp file
store: Public classes
Structure, blob: Public structures
Structure, document: Public structures
System, cl-naive-store: The cl-naive-store system
System, cl-naive-store.document-type-defs: The cl-naive-store․document-type-defs system
System, cl-naive-store.document-types: The cl-naive-store․document-types system
System, cl-naive-store.naive-core: The cl-naive-store․naive-core system
System, cl-naive-store.naive-documents: The cl-naive-store․naive-documents system
System, cl-naive-store.naive-indexed: The cl-naive-store․naive-indexed system
System, cl-naive-store.naive-merkle: The cl-naive-store․naive-merkle system

U
universe: Public classes

Jump to:   B   C   D   E   F   I   M   N   P   S   U