The whirlog Reference Manual

Table of Contents

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

The whirlog Reference Manual

This is the whirlog Reference Manual, version 2, generated automatically by Declt version 3.0 "Montgomery Scott" on Wed Oct 13 13:05:16 2021 GMT+0.


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

1 Introduction

Lisp Mascot Whirlog

Introduction

Whirlog is a minimal versioned log structured relational DB implemented in Common Lisp.

  (let-tables ((tbl (key :key? t) val))
    (with-db ("/tmp/db/" (tbl))
	(let ((rec (new-record 'key "foo" 'val "bar")))
	  (do-context ()
	    (store-record tbl rec)
            (assert (string= (column-value (find-record tbl #("foo")) 'val) "bar")))
	  
	  (do-context ()
            (let ((rec (set-column-values rec 'val "baz")))
              (store-record tbl rec))

            (assert (string= (column-value (find-record tbl #("foo")) 'val) "baz"))))
	  
	  (do-context ()
	    (delete-record tbl #("foo"))
	    (assert (null (find-record tbl #("foo")))))))

You may find a more real worldish example here.

Databases

Databases are implemented as directories containing one file per table. with-db may be used to indicate a root path and open/close specified tables.

Contexts

Contexts are independent atomic transactions. Changes are committed on success and rolled back on error by default, but the behavior may be customized by manually calling commit-changes and/or rollback-changes as needed.

Tables

Tables are implemented as persistent, ordered trees of lazy loaded records. Each table has a set of columns and a key.

Columns

Columns may be typed or untyped (default), untyped columns compare their values using sort:compare.

  (let-tables ((foos (id :key? t)
                     (parent :type record :table t :nil? t)
		     ...))
    ...)
nil?

Columns don't allow nil values in stored records by default, the behavior may be overridden by passing :nil? t on definition. Attempting to store a nil value in a column defined without ':nil? t' results in nil-not-allowed being signalled.

lset-column

lset columns encode sets as lists and decode back to sets again, sets are compared by value.

record-column

Record columns encode records as keys (vectors) which are compared by value.

Records

Records are implemented as immutable lists of pairs (or alists); and written as is to disk. This means that any readable/writeable value will do as field value, and that log files are human readable as well as trivial to process.

#("foo")((WHIRLOG::VAL . "bar"))
#("foo")((WHIRLOG::VAL . "baz"))
#("foo"):D
Keys

Record keys are implemented as vectors and compared by value.

Versioning

Each logged version of a record (as identified by its key) is available on demand.

Threads

Threaded table access has to be protected either by enclosing in do-sync or passing :sync? t (which is the default) where appropriate. Calls that require exclusive table access will eventually fail with an error unless they're able to acquire a table specific spinlock implemented using SBCL atomics.


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

2 Systems

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


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

2.1 whirlog

Maintainer

codr7

Author

codr7

License

MIT

Description

a minimal versioned log structured relational DB

Version

2

Source

whirlog.asd (file)

Components

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

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


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.1 whirlog.asd

Location

whirlog.asd

Systems

whirlog (system)


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.2 whirlog/util.lisp

Parent

whirlog (system)

Location

util.lisp

Packages

util

Exported Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.3 whirlog/sort.lisp

Dependency

util.lisp (file)

Parent

whirlog (system)

Location

sort.lisp

Packages

sort

Exported Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.4 whirlog/rb.lisp

Dependency

sort.lisp (file)

Parent

whirlog (system)

Location

rb.lisp

Packages

rb

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.5 whirlog/whirlog.lisp

Dependency

rb.lisp (file)

Parent

whirlog (system)

Location

whirlog.lisp

Packages

whirlog

Exported Definitions
Internal Definitions

Previous: , Up: Lisp files   [Contents][Index]

3.1.6 whirlog/lset.lisp

Dependency

whirlog.lisp (file)

Parent

whirlog (system)

Location

lset.lisp

Packages

lset

Exported Definitions
Internal Definitions

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

4 Packages

Packages are listed by definition order.


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

4.1 util

Source

util.lisp (file)

Use List

common-lisp

Exported Definitions

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

4.2 sort

Source

sort.lisp (file)

Use List

common-lisp

Exported Definitions

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

4.3 rb

Source

rb.lisp (file)

Use List

common-lisp

Exported Definitions
Internal Definitions

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

4.4 whirlog

Source

whirlog.lisp (file)

Use List

common-lisp

Exported Definitions
Internal Definitions

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

4.5 lset

Source

lset.lisp (file)

Use List

common-lisp

Exported Definitions
Internal Definitions

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

5 Definitions

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


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

5.1 Exported definitions


Next: , Previous: , Up: Exported definitions   [Contents][Index]

5.1.1 Macros

Macro: do-context () &body BODY
Package

whirlog

Source

whirlog.lisp (file)

Macro: do-records (REC TBL &key START) &body BODY
Package

whirlog

Source

whirlog.lisp (file)

Macro: do-sync (TBL &optional SLOTS) &body BODY
Package

whirlog

Source

whirlog.lisp (file)

Macro: do-tree (KEY VAL ROOT) &body BODY
Package

rb

Source

rb.lisp (file)

Macro: dohash (K V TBL) &body BODY
Package

util

Source

util.lisp (file)

Macro: let-kw (REM &rest KEYS) &body BODY
Package

util

Source

util.lisp (file)

Macro: let-tables (&rest TABLES) &body BODY
Package

whirlog

Source

whirlog.lisp (file)

Macro: let-when VAR FORM &body BODY
Package

util

Source

util.lisp (file)

Macro: nor &rest ARGS
Package

util

Source

util.lisp (file)

Macro: while CND &body BODY
Package

util

Source

util.lisp (file)

Macro: with-db (PATH (&rest TBLS) &key LAZY?) &body BODY
Package

whirlog

Source

whirlog.lisp (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

5.1.2 Functions

Function: add SET VAL
Package

lset

Source

lset.lisp (file)

Function: benchmarks ()
Package

rb

Source

rb.lisp (file)

Function: clear ROOT
Package

rb

Source

rb.lisp (file)

Function: clear SET
Package

lset

Source

lset.lisp (file)

Function: close-table TBL

Closes and unbinds TBL’s file

Package

whirlog

Source

whirlog.lisp (file)

Function: column-count TBL

Returns number of columns in TBL

Package

whirlog

Source

whirlog.lisp (file)

Function: column-value REC COL

Returns value for COL in REC

Package

whirlog

Source

whirlog.lisp (file)

Writer

(setf column-value) (function)

Function: (setf column-value) VAL REC COL

Sets value for COL in REC to VAL

Package

whirlog

Source

whirlog.lisp (file)

Reader

column-value (function)

Function: commit &key RETRIES

Commits changes in current context

Package

whirlog

Source

whirlog.lisp (file)

Function: committed-record TBL KEY &key VERSION SYNC?
Function: (setf committed-record) REC TBL KEY &key VERSION SYNC?
Package

whirlog

Source

whirlog.lisp (file)

Function: compare-key TBL X Y
Package

whirlog

Source

whirlog.lisp (file)

Function: compare-record TBL XS YS
Package

whirlog

Source

whirlog.lisp (file)

Function: decode-record TBL KEY IN
Package

whirlog

Source

whirlog.lisp (file)

Function: delete-record TBL KEY &key SYNC?

Deletes REC from TBL

Package

whirlog

Source

whirlog.lisp (file)

Function: encode-key TBL IN
Package

whirlog

Source

whirlog.lisp (file)

Function: encode-record TBL IN
Package

whirlog

Source

whirlog.lisp (file)

Function: find-node ROOT KEY
Package

rb

Source

rb.lisp (file)

Function: find-record TBL KEY &key VERSION SYNC?
Package

whirlog

Source

whirlog.lisp (file)

Function: get-kw KW LST
Package

util

Source

util.lisp (file)

Function: get-node ROOT KEY
Function: (setf get-node) VAL ROOT KEY
Package

rb

Source

rb.lisp (file)

Function: init-record TBL REC
Package

whirlog

Source

whirlog.lisp (file)

Function: kw &rest ARGS
Package

util

Source

util.lisp (file)

Function: new &rest ARGS
Package

lset

Source

lset.lisp (file)

Function: new-column NAME &rest OPTS

Returns new columns for NAME and OPTS

Package

whirlog

Source

whirlog.lisp (file)

Function: new-context ()

Returns a fresh context

Package

whirlog

Source

whirlog.lisp (file)

Function: new-root &key COMPARE KEY
Package

rb

Source

rb.lisp (file)

Function: new-table NAME &rest COLS

Returns new table with NAME and COLS

Package

whirlog

Source

whirlog.lisp (file)

Function: node-count ROOT
Package

rb

Source

rb.lisp (file)

Function: open-table TBL &key LAZY?

Opens and assigns TBL’s file

Package

whirlog

Source

whirlog.lisp (file)

Function: read-records TBL IN &key LAZY? SYNC?

Reads records from IN into TBL

Package

whirlog

Source

whirlog.lisp (file)

Function: record-count TBL

Returns number of records in TBL

Package

whirlog

Source

whirlog.lisp (file)

Function: remove-node ROOT KEY
Package

rb

Source

rb.lisp (file)

Function: rollback-changes ()

Rolls back changes in current context

Package

whirlog

Source

whirlog.lisp (file)

Function: root-node INSTANCE
Function: (setf root-node) VALUE INSTANCE
Package

rb

Source

rb.lisp (file)

Function: set-node VAL ROOT &key KEY
Package

rb

Source

rb.lisp (file)

Function: sethash KEY TBL VAL
Package

util

Source

util.lisp (file)

Function: size SET
Package

lset

Source

lset.lisp (file)

Function: store-record TBL REC

Stores REC in TBL

Package

whirlog

Source

whirlog.lisp (file)

Function: sym &rest ARGS
Package

util

Source

util.lisp (file)

Function: table-records TBL KEY &key SYNC?

Returns stack of records for KEY in TBL

Package

whirlog

Source

whirlog.lisp (file)

Writer

(setf table-records) (function)

Function: (setf table-records) VAL TBL KEY &key SYNC?

Sets stack of records for KEY in TBL to VAL

Package

whirlog

Source

whirlog.lisp (file)

Reader

table-records (function)

Function: tests ()
Package

rb

Source

rb.lisp (file)

Function: tests ()
Package

whirlog

Source

whirlog.lisp (file)

Function: tests ()
Package

lset

Source

lset.lisp (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

5.1.3 Generic functions

Generic Function: column CONDITION
Package

whirlog

Methods
Method: column (CONDITION nil-not-allowed)
Source

whirlog.lisp (file)

Generic Function: columns OBJECT
Package

whirlog

Methods
Method: columns (TABLE table)

automatically generated reader method

Source

whirlog.lisp (file)

Generic Function: compare X Y
Package

sort

Methods
Method: compare (X vector) Y
Source

sort.lisp (file)

Method: compare (X symbol) Y
Source

sort.lisp (file)

Method: compare (X string) Y
Source

sort.lisp (file)

Method: compare (X number) Y
Source

sort.lisp (file)

Method: compare (X list) Y
Source

sort.lisp (file)

Generic Function: compare-column COL X Y
Package

whirlog

Methods
Method: compare-column (COL lset-column) XS YS
Source

lset.lisp (file)

Method: compare-column (COL column) X Y
Source

whirlog.lisp (file)

Method: compare-column (COL record-column) X Y
Source

whirlog.lisp (file)

Generic Function: create-column TBL COL
Package

whirlog

Methods
Method: create-column TBL (COL lset-column)
Source

lset.lisp (file)

Method: create-column TBL (COL record-column)
Source

whirlog.lisp (file)

Method: create-column TBL (COL column)
Source

whirlog.lisp (file)

Generic Function: decode-column COL VAL
Package

whirlog

Methods
Method: decode-column (COL lset-column) VALS
Source

lset.lisp (file)

Method: decode-column (COL column) VAL
Source

whirlog.lisp (file)

Generic Function: encode-column COL VAL
Package

whirlog

Methods
Method: encode-column (COL lset-column) (SET lset)
Source

lset.lisp (file)

Method: encode-column (COL record-column) (VAL list)
Source

whirlog.lisp (file)

Method: encode-column (COL column) VAL
Source

whirlog.lisp (file)

Generic Function: file OBJECT
Package

whirlog

Methods
Method: file (TABLE table)

automatically generated reader method

Source

whirlog.lisp (file)

Generic Function: init-column COL REC
Package

whirlog

Methods
Method: init-column (COL lset-column) REC
Source

lset.lisp (file)

Method: init-column (COL column) REC
Source

whirlog.lisp (file)

Generic Function: key OBJECT
Package

whirlog

Methods
Method: key (TABLE table)

automatically generated reader method

Source

whirlog.lisp (file)

Generic Function: key? OBJECT
Package

whirlog

Methods
Method: key? (COLUMN column)

automatically generated reader method

Source

whirlog.lisp (file)

Generic Function: name OBJECT
Package

whirlog

Methods
Method: name (TABLE table)

automatically generated reader method

Source

whirlog.lisp (file)

Method: name (COLUMN column)

automatically generated reader method

Source

whirlog.lisp (file)

Generic Function: records OBJECT
Package

whirlog

Methods
Method: records (TABLE table)

automatically generated reader method

Source

whirlog.lisp (file)

Generic Function: table CONDITION
Package

whirlog

Methods
Method: table (RECORD-COLUMN record-column)

automatically generated reader method

Source

whirlog.lisp (file)

Method: table (CONDITION nil-not-allowed)
Source

whirlog.lisp (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

5.1.4 Conditions

Condition: db-error ()
Package

whirlog

Source

whirlog.lisp (file)

Direct superclasses

error (condition)

Direct subclasses

nil-not-allowed (condition)

Condition: nil-not-allowed ()
Package

whirlog

Source

whirlog.lisp (file)

Direct superclasses

db-error (condition)

Direct methods
Direct slots
Slot: table
Initargs

:table

Readers

table (generic function)

Slot: column
Initargs

:column

Readers

column (generic function)

Slot: record
Initargs

:record

Readers

record (generic function)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

5.1.5 Structures

Structure: lset ()
Package

lset

Source

lset.lisp (file)

Direct superclasses

structure-object (structure)

Direct methods

encode-column (method)

Direct slots
Slot: compare
Type

function

Initform

(function sort:compare)

Readers

lset-compare (function)

Writers

(setf lset-compare) (function)

Slot: items
Type

list

Readers

lset-items (function)

Writers

(setf lset-items) (function)

Slot: size
Type

integer

Initform

0

Readers

lset-size (function)

Writers

(setf lset-size) (function)

Structure: root ()
Package

rb

Source

rb.lisp (file)

Direct superclasses

structure-object (structure)

Direct slots
Slot: compare
Type

function

Readers

root-compare (function)

Writers

(setf root-compare) (function)

Slot: key
Type

function

Readers

root-key (function)

Writers

(setf root-key) (function)

Slot: node
Type

(or rb::node null)

Readers

root-node (function)

Writers

(setf root-node) (function)

Slot: size
Type

fixnum

Initform

0

Readers

root-size (function)

Writers

(setf root-size) (function)


Previous: , Up: Exported definitions   [Contents][Index]

5.1.6 Classes

Class: column ()
Package

whirlog

Source

whirlog.lisp (file)

Direct superclasses

standard-object (class)

Direct subclasses
Direct methods
Direct slots
Slot: name
Initargs

:name

Readers

name (generic function)

Slot: nil?
Initargs

:nil?

Readers

nil? (generic function)

Slot: key?
Initargs

:key?

Readers

key? (generic function)

Class: lset-column ()
Package

lset

Source

lset.lisp (file)

Direct superclasses

column (class)

Direct methods
Direct slots
Slot: item-column
Initargs

:item-column

Readers

item-column (generic function)

Class: record-column ()
Package

whirlog

Source

whirlog.lisp (file)

Direct superclasses

column (class)

Direct methods
Direct slots
Slot: table
Initargs

:table

Initform

(error "missing table")

Readers

table (generic function)

Class: table ()
Package

whirlog

Source

whirlog.lisp (file)

Direct superclasses

standard-object (class)

Direct methods
Direct slots
Slot: name
Initargs

:name

Readers

name (generic function)

Slot: busy?
Readers

busy? (generic function)

Slot: key
Initargs

:key

Readers

key (generic function)

Slot: columns
Initargs

:columns

Readers

columns (generic function)

Slot: file
Initargs

:file

Readers

file (generic function)

Slot: records
Readers

records (generic function)


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

5.2 Internal definitions


Next: , Previous: , Up: Internal definitions   [Contents][Index]

5.2.1 Special variables

Special Variable: *context*
Package

whirlog

Source

whirlog.lisp (file)

Special Variable: *delete*
Package

whirlog

Source

whirlog.lisp (file)

Special Variable: *eof*
Package

whirlog

Source

whirlog.lisp (file)

Special Variable: *path*
Package

whirlog

Source

whirlog.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

5.2.2 Macros

Macro: if-changed (TBL KEY VAR) X Y
Package

whirlog

Source

whirlog.lisp (file)

Macro: movef-red-left NODE
Package

rb

Source

rb.lisp (file)

Macro: rotlf NODE
Package

rb

Source

rb.lisp (file)

Macro: rotrf NODE
Package

rb

Source

rb.lisp (file)

Macro: with-test-db (&rest TABLES) &body BODY
Package

whirlog

Source

whirlog.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

5.2.3 Functions

Function: ccompare ROOT X Y
Package

rb

Source

rb.lisp (file)

Function: ckey ROOT VALUE
Package

rb

Source

rb.lisp (file)

Function: clone-record TBL REC
Package

whirlog

Source

whirlog.lisp (file)

Function: committed-tests ()
Package

whirlog

Source

whirlog.lisp (file)

Function: copy-lset INSTANCE
Package

lset

Source

lset.lisp (file)

Function: copy-node INSTANCE
Package

rb

Source

rb.lisp (file)

Function: copy-root INSTANCE
Package

rb

Source

rb.lisp (file)

Function: delete-if-exists PATH
Package

whirlog

Source

whirlog.lisp (file)

Function: delete? REC

Returns T if REC is a delete

Package

whirlog

Source

whirlog.lisp (file)

Function: eof? X

Returns T if X is EOF

Package

whirlog

Source

whirlog.lisp (file)

Function: find-record-encoded TBL KEY &key VERSION SYNC?

Returns record for KEY in TBL if found, otherwise NIL

Package

whirlog

Source

whirlog.lisp (file)

Function: find-table-record TBL KEY &key SYNC?

Returns record for KEY in TBL, or NIL if not found

Package

whirlog

Source

whirlog.lisp (file)

Function: fix NODE
Package

rb

Source

rb.lisp (file)

Function: flip NODE
Package

rb

Source

rb.lisp (file)

Function: get-change TBL KEY

Gets change for KEY in TBL

Package

whirlog

Source

whirlog.lisp (file)

Writer

(setf get-change) (function)

Function: (setf get-change) REC TBL KEY

Sets change to REC for KEY in TBL

Package

whirlog

Source

whirlog.lisp (file)

Reader

get-change (function)

Function: lset-compare INSTANCE
Function: (setf lset-compare) VALUE INSTANCE
Package

lset

Source

lset.lisp (file)

Function: lset-items INSTANCE
Function: (setf lset-items) VALUE INSTANCE
Package

lset

Source

lset.lisp (file)

Function: lset-p OBJECT
Package

lset

Source

lset.lisp (file)

Function: lset-size INSTANCE
Function: (setf lset-size) VALUE INSTANCE
Package

lset

Source

lset.lisp (file)

Function: make-lset &key (COMPARE COMPARE) (ITEMS ITEMS) (SIZE SIZE)
Package

lset

Source

lset.lisp (file)

Function: make-node &key (KEY KEY) (VALUE VALUE) (LEFT LEFT) (RIGHT RIGHT) (RED? RED?)
Package

rb

Source

rb.lisp (file)

Function: make-root &key (COMPARE COMPARE) (KEY KEY) (NODE NODE) (SIZE SIZE)
Package

rb

Source

rb.lisp (file)

Function: move-red-left NODE
Package

rb

Source

rb.lisp (file)

Function: new-column-set COL &rest VALS
Package

lset

Source

lset.lisp (file)

Function: new-node KEY VAL
Package

rb

Source

rb.lisp (file)

Function: new-record &rest FLDS

Returns new record with FLDS

Package

whirlog

Source

whirlog.lisp (file)

Function: node-key INSTANCE
Function: (setf node-key) VALUE INSTANCE
Package

rb

Source

rb.lisp (file)

Function: node-left INSTANCE
Function: (setf node-left) VALUE INSTANCE
Package

rb

Source

rb.lisp (file)

Function: node-p OBJECT
Package

rb

Source

rb.lisp (file)

Function: node-red? INSTANCE
Function: (setf node-red?) VALUE INSTANCE
Package

rb

Source

rb.lisp (file)

Function: node-right INSTANCE
Function: (setf node-right) VALUE INSTANCE
Package

rb

Source

rb.lisp (file)

Function: node-value INSTANCE
Function: (setf node-value) VALUE INSTANCE
Package

rb

Source

rb.lisp (file)

Function: read-value IN

Reads value from IN

Package

whirlog

Source

whirlog.lisp (file)

Function: record-key TBL REC

Returns key for REC in TBL

Package

whirlog

Source

whirlog.lisp (file)

Function: record-tests ()
Package

whirlog

Source

whirlog.lisp (file)

Function: red? NODE
Package

rb

Source

rb.lisp (file)

Function: reload-tests ()
Package

whirlog

Source

whirlog.lisp (file)

Function: remove-min NODE
Package

rb

Source

rb.lisp (file)

Function: root-compare INSTANCE
Function: (setf root-compare) VALUE INSTANCE
Package

rb

Source

rb.lisp (file)

Function: root-key INSTANCE
Function: (setf root-key) VALUE INSTANCE
Package

rb

Source

rb.lisp (file)

Function: root-p OBJECT
Package

rb

Source

rb.lisp (file)

Function: root-size INSTANCE
Function: (setf root-size) VALUE INSTANCE
Package

rb

Source

rb.lisp (file)

Function: rotl NODE
Package

rb

Source

rb.lisp (file)

Function: rotr NODE
Package

rb

Source

rb.lisp (file)

Function: set-column-values REC &rest FLDS

Returns REC with updated FLDS

Package

whirlog

Source

whirlog.lisp (file)

Function: table-tests ()
Package

whirlog

Source

whirlog.lisp (file)

Function: test-setup ()
Package

whirlog

Source

whirlog.lisp (file)

Function: trim-path IN
Package

whirlog

Source

whirlog.lisp (file)

Function: write-value OUT X

Writes X to OUT

Package

whirlog

Source

whirlog.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

5.2.4 Generic functions

Generic Function: busy? OBJECT
Package

whirlog

Methods
Method: busy? (TABLE table)

automatically generated reader method

Source

whirlog.lisp (file)

Generic Function: item-column OBJECT
Package

lset

Methods
Method: item-column (LSET-COLUMN lset-column)

automatically generated reader method

Source

lset.lisp (file)

Generic Function: nil? OBJECT
Package

whirlog

Methods
Method: nil? (COLUMN column)

automatically generated reader method

Source

whirlog.lisp (file)

Generic Function: record CONDITION
Package

whirlog

Methods
Method: record (CONDITION nil-not-allowed)
Source

whirlog.lisp (file)


Previous: , Up: Internal definitions   [Contents][Index]

5.2.5 Structures

Structure: node ()
Package

rb

Source

rb.lisp (file)

Direct superclasses

structure-object (structure)

Direct slots
Slot: key
Readers

node-key (function)

Writers

(setf node-key) (function)

Slot: value
Readers

node-value (function)

Writers

(setf node-value) (function)

Slot: left
Type

(or rb::node null)

Readers

node-left (function)

Writers

(setf node-left) (function)

Slot: right
Type

(or rb::node null)

Readers

node-right (function)

Writers

(setf node-right) (function)

Slot: red?
Type

boolean

Initform

t

Readers

node-red? (function)

Writers

(setf node-red?) (function)


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

Appendix A Indexes


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

A.1 Concepts

Jump to:   F   L   W  
Index Entry  Section

F
File, Lisp, whirlog.asd: The whirlog․asd file
File, Lisp, whirlog/lset.lisp: The whirlog/lset․lisp file
File, Lisp, whirlog/rb.lisp: The whirlog/rb․lisp file
File, Lisp, whirlog/sort.lisp: The whirlog/sort․lisp file
File, Lisp, whirlog/util.lisp: The whirlog/util․lisp file
File, Lisp, whirlog/whirlog.lisp: The whirlog/whirlog․lisp file

L
Lisp File, whirlog.asd: The whirlog․asd file
Lisp File, whirlog/lset.lisp: The whirlog/lset․lisp file
Lisp File, whirlog/rb.lisp: The whirlog/rb․lisp file
Lisp File, whirlog/sort.lisp: The whirlog/sort․lisp file
Lisp File, whirlog/util.lisp: The whirlog/util․lisp file
Lisp File, whirlog/whirlog.lisp: The whirlog/whirlog․lisp file

W
whirlog.asd: The whirlog․asd file
whirlog/lset.lisp: The whirlog/lset․lisp file
whirlog/rb.lisp: The whirlog/rb․lisp file
whirlog/sort.lisp: The whirlog/sort․lisp file
whirlog/util.lisp: The whirlog/util․lisp file
whirlog/whirlog.lisp: The whirlog/whirlog․lisp file

Jump to:   F   L   W  

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

A.2 Functions

Jump to:   (  
A   B   C   D   E   F   G   I   K   L   M   N   O   R   S   T   W  
Index Entry  Section

(
(setf column-value): Exported functions
(setf committed-record): Exported functions
(setf get-change): Internal functions
(setf get-node): Exported functions
(setf lset-compare): Internal functions
(setf lset-items): Internal functions
(setf lset-size): Internal functions
(setf node-key): Internal functions
(setf node-left): Internal functions
(setf node-red?): Internal functions
(setf node-right): Internal functions
(setf node-value): Internal functions
(setf root-compare): Internal functions
(setf root-key): Internal functions
(setf root-node): Exported functions
(setf root-size): Internal functions
(setf table-records): Exported functions

A
add: Exported functions

B
benchmarks: Exported functions
busy?: Internal generic functions
busy?: Internal generic functions

C
ccompare: Internal functions
ckey: Internal functions
clear: Exported functions
clear: Exported functions
clone-record: Internal functions
close-table: Exported functions
column: Exported generic functions
column: Exported generic functions
column-count: Exported functions
column-value: Exported functions
columns: Exported generic functions
columns: Exported generic functions
commit: Exported functions
committed-record: Exported functions
committed-tests: Internal functions
compare: Exported generic functions
compare: Exported generic functions
compare: Exported generic functions
compare: Exported generic functions
compare: Exported generic functions
compare: Exported generic functions
compare-column: Exported generic functions
compare-column: Exported generic functions
compare-column: Exported generic functions
compare-column: Exported generic functions
compare-key: Exported functions
compare-record: Exported functions
copy-lset: Internal functions
copy-node: Internal functions
copy-root: Internal functions
create-column: Exported generic functions
create-column: Exported generic functions
create-column: Exported generic functions
create-column: Exported generic functions

D
decode-column: Exported generic functions
decode-column: Exported generic functions
decode-column: Exported generic functions
decode-record: Exported functions
delete-if-exists: Internal functions
delete-record: Exported functions
delete?: Internal functions
do-context: Exported macros
do-records: Exported macros
do-sync: Exported macros
do-tree: Exported macros
dohash: Exported macros

E
encode-column: Exported generic functions
encode-column: Exported generic functions
encode-column: Exported generic functions
encode-column: Exported generic functions
encode-key: Exported functions
encode-record: Exported functions
eof?: Internal functions

F
file: Exported generic functions
file: Exported generic functions
find-node: Exported functions
find-record: Exported functions
find-record-encoded: Internal functions
find-table-record: Internal functions
fix: Internal functions
flip: Internal functions
Function, (setf column-value): Exported functions
Function, (setf committed-record): Exported functions
Function, (setf get-change): Internal functions
Function, (setf get-node): Exported functions
Function, (setf lset-compare): Internal functions
Function, (setf lset-items): Internal functions
Function, (setf lset-size): Internal functions
Function, (setf node-key): Internal functions
Function, (setf node-left): Internal functions
Function, (setf node-red?): Internal functions
Function, (setf node-right): Internal functions
Function, (setf node-value): Internal functions
Function, (setf root-compare): Internal functions
Function, (setf root-key): Internal functions
Function, (setf root-node): Exported functions
Function, (setf root-size): Internal functions
Function, (setf table-records): Exported functions
Function, add: Exported functions
Function, benchmarks: Exported functions
Function, ccompare: Internal functions
Function, ckey: Internal functions
Function, clear: Exported functions
Function, clear: Exported functions
Function, clone-record: Internal functions
Function, close-table: Exported functions
Function, column-count: Exported functions
Function, column-value: Exported functions
Function, commit: Exported functions
Function, committed-record: Exported functions
Function, committed-tests: Internal functions
Function, compare-key: Exported functions
Function, compare-record: Exported functions
Function, copy-lset: Internal functions
Function, copy-node: Internal functions
Function, copy-root: Internal functions
Function, decode-record: Exported functions
Function, delete-if-exists: Internal functions
Function, delete-record: Exported functions
Function, delete?: Internal functions
Function, encode-key: Exported functions
Function, encode-record: Exported functions
Function, eof?: Internal functions
Function, find-node: Exported functions
Function, find-record: Exported functions
Function, find-record-encoded: Internal functions
Function, find-table-record: Internal functions
Function, fix: Internal functions
Function, flip: Internal functions
Function, get-change: Internal functions
Function, get-kw: Exported functions
Function, get-node: Exported functions
Function, init-record: Exported functions
Function, kw: Exported functions
Function, lset-compare: Internal functions
Function, lset-items: Internal functions
Function, lset-p: Internal functions
Function, lset-size: Internal functions
Function, make-lset: Internal functions
Function, make-node: Internal functions
Function, make-root: Internal functions
Function, move-red-left: Internal functions
Function, new: Exported functions
Function, new-column: Exported functions
Function, new-column-set: Internal functions
Function, new-context: Exported functions
Function, new-node: Internal functions
Function, new-record: Internal functions
Function, new-root: Exported functions
Function, new-table: Exported functions
Function, node-count: Exported functions
Function, node-key: Internal functions
Function, node-left: Internal functions
Function, node-p: Internal functions
Function, node-red?: Internal functions
Function, node-right: Internal functions
Function, node-value: Internal functions
Function, open-table: Exported functions
Function, read-records: Exported functions
Function, read-value: Internal functions
Function, record-count: Exported functions
Function, record-key: Internal functions
Function, record-tests: Internal functions
Function, red?: Internal functions
Function, reload-tests: Internal functions
Function, remove-min: Internal functions
Function, remove-node: Exported functions
Function, rollback-changes: Exported functions
Function, root-compare: Internal functions
Function, root-key: Internal functions
Function, root-node: Exported functions
Function, root-p: Internal functions
Function, root-size: Internal functions
Function, rotl: Internal functions
Function, rotr: Internal functions
Function, set-column-values: Internal functions
Function, set-node: Exported functions
Function, sethash: Exported functions
Function, size: Exported functions
Function, store-record: Exported functions
Function, sym: Exported functions
Function, table-records: Exported functions
Function, table-tests: Internal functions
Function, test-setup: Internal functions
Function, tests: Exported functions
Function, tests: Exported functions
Function, tests: Exported functions
Function, trim-path: Internal functions
Function, write-value: Internal functions

G
Generic Function, busy?: Internal generic functions
Generic Function, column: Exported generic functions
Generic Function, columns: Exported generic functions
Generic Function, compare: Exported generic functions
Generic Function, compare-column: Exported generic functions
Generic Function, create-column: Exported generic functions
Generic Function, decode-column: Exported generic functions
Generic Function, encode-column: Exported generic functions
Generic Function, file: Exported generic functions
Generic Function, init-column: Exported generic functions
Generic Function, item-column: Internal generic functions
Generic Function, key: Exported generic functions
Generic Function, key?: Exported generic functions
Generic Function, name: Exported generic functions
Generic Function, nil?: Internal generic functions
Generic Function, record: Internal generic functions
Generic Function, records: Exported generic functions
Generic Function, table: Exported generic functions
get-change: Internal functions
get-kw: Exported functions
get-node: Exported functions

I
if-changed: Internal macros
init-column: Exported generic functions
init-column: Exported generic functions
init-column: Exported generic functions
init-record: Exported functions
item-column: Internal generic functions
item-column: Internal generic functions

K
key: Exported generic functions
key: Exported generic functions
key?: Exported generic functions
key?: Exported generic functions
kw: Exported functions

L
let-kw: Exported macros
let-tables: Exported macros
let-when: Exported macros
lset-compare: Internal functions
lset-items: Internal functions
lset-p: Internal functions
lset-size: Internal functions

M
Macro, do-context: Exported macros
Macro, do-records: Exported macros
Macro, do-sync: Exported macros
Macro, do-tree: Exported macros
Macro, dohash: Exported macros
Macro, if-changed: Internal macros
Macro, let-kw: Exported macros
Macro, let-tables: Exported macros
Macro, let-when: Exported macros
Macro, movef-red-left: Internal macros
Macro, nor: Exported macros
Macro, rotlf: Internal macros
Macro, rotrf: Internal macros
Macro, while: Exported macros
Macro, with-db: Exported macros
Macro, with-test-db: Internal macros
make-lset: Internal functions
make-node: Internal functions
make-root: Internal functions
Method, busy?: Internal generic functions
Method, column: Exported generic functions
Method, columns: Exported generic functions
Method, compare: Exported generic functions
Method, compare: Exported generic functions
Method, compare: Exported generic functions
Method, compare: Exported generic functions
Method, compare: Exported generic functions
Method, compare-column: Exported generic functions
Method, compare-column: Exported generic functions
Method, compare-column: Exported generic functions
Method, create-column: Exported generic functions
Method, create-column: Exported generic functions
Method, create-column: Exported generic functions
Method, decode-column: Exported generic functions
Method, decode-column: Exported generic functions
Method, encode-column: Exported generic functions
Method, encode-column: Exported generic functions
Method, encode-column: Exported generic functions
Method, file: Exported generic functions
Method, init-column: Exported generic functions
Method, init-column: Exported generic functions
Method, item-column: Internal generic functions
Method, key: Exported generic functions
Method, key?: Exported generic functions
Method, name: Exported generic functions
Method, name: Exported generic functions
Method, nil?: Internal generic functions
Method, record: Internal generic functions
Method, records: Exported generic functions
Method, table: Exported generic functions
Method, table: Exported generic functions
move-red-left: Internal functions
movef-red-left: Internal macros

N
name: Exported generic functions
name: Exported generic functions
name: Exported generic functions
new: Exported functions
new-column: Exported functions
new-column-set: Internal functions
new-context: Exported functions
new-node: Internal functions
new-record: Internal functions
new-root: Exported functions
new-table: Exported functions
nil?: Internal generic functions
nil?: Internal generic functions
node-count: Exported functions
node-key: Internal functions
node-left: Internal functions
node-p: Internal functions
node-red?: Internal functions
node-right: Internal functions
node-value: Internal functions
nor: Exported macros

O
open-table: Exported functions

R
read-records: Exported functions
read-value: Internal functions
record: Internal generic functions
record: Internal generic functions
record-count: Exported functions
record-key: Internal functions
record-tests: Internal functions
records: Exported generic functions
records: Exported generic functions
red?: Internal functions
reload-tests: Internal functions
remove-min: Internal functions
remove-node: Exported functions
rollback-changes: Exported functions
root-compare: Internal functions
root-key: Internal functions
root-node: Exported functions
root-p: Internal functions
root-size: Internal functions
rotl: Internal functions
rotlf: Internal macros
rotr: Internal functions
rotrf: Internal macros

S
set-column-values: Internal functions
set-node: Exported functions
sethash: Exported functions
size: Exported functions
store-record: Exported functions
sym: Exported functions

T
table: Exported generic functions
table: Exported generic functions
table: Exported generic functions
table-records: Exported functions
table-tests: Internal functions
test-setup: Internal functions
tests: Exported functions
tests: Exported functions
tests: Exported functions
trim-path: Internal functions

W
while: Exported macros
with-db: Exported macros
with-test-db: Internal macros
write-value: Internal functions

Jump to:   (  
A   B   C   D   E   F   G   I   K   L   M   N   O   R   S   T   W  

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

A.3 Variables

Jump to:   *  
B   C   F   I   K   L   N   R   S   T   V  
Index Entry  Section

*
*context*: Internal special variables
*delete*: Internal special variables
*eof*: Internal special variables
*path*: Internal special variables

B
busy?: Exported classes

C
column: Exported conditions
columns: Exported classes
compare: Exported structures
compare: Exported structures

F
file: Exported classes

I
item-column: Exported classes
items: Exported structures

K
key: Exported structures
key: Exported classes
key: Internal structures
key?: Exported classes

L
left: Internal structures

N
name: Exported classes
name: Exported classes
nil?: Exported classes
node: Exported structures

R
record: Exported conditions
records: Exported classes
red?: Internal structures
right: Internal structures

S
size: Exported structures
size: Exported structures
Slot, busy?: Exported classes
Slot, column: Exported conditions
Slot, columns: Exported classes
Slot, compare: Exported structures
Slot, compare: Exported structures
Slot, file: Exported classes
Slot, item-column: Exported classes
Slot, items: Exported structures
Slot, key: Exported structures
Slot, key: Exported classes
Slot, key: Internal structures
Slot, key?: Exported classes
Slot, left: Internal structures
Slot, name: Exported classes
Slot, name: Exported classes
Slot, nil?: Exported classes
Slot, node: Exported structures
Slot, record: Exported conditions
Slot, records: Exported classes
Slot, red?: Internal structures
Slot, right: Internal structures
Slot, size: Exported structures
Slot, size: Exported structures
Slot, table: Exported conditions
Slot, table: Exported classes
Slot, value: Internal structures
Special Variable, *context*: Internal special variables
Special Variable, *delete*: Internal special variables
Special Variable, *eof*: Internal special variables
Special Variable, *path*: Internal special variables

T
table: Exported conditions
table: Exported classes

V
value: Internal structures

Jump to:   *  
B   C   F   I   K   L   N   R   S   T   V  

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

A.4 Data types

Jump to:   C   D   L   N   P   R   S   T   U   W  
Index Entry  Section

C
Class, column: Exported classes
Class, lset-column: Exported classes
Class, record-column: Exported classes
Class, table: Exported classes
column: Exported classes
Condition, db-error: Exported conditions
Condition, nil-not-allowed: Exported conditions

D
db-error: Exported conditions

L
lset: The lset package
lset: Exported structures
lset-column: Exported classes

N
nil-not-allowed: Exported conditions
node: Internal structures

P
Package, lset: The lset package
Package, rb: The rb package
Package, sort: The sort package
Package, util: The util package
Package, whirlog: The whirlog package

R
rb: The rb package
record-column: Exported classes
root: Exported structures

S
sort: The sort package
Structure, lset: Exported structures
Structure, node: Internal structures
Structure, root: Exported structures
System, whirlog: The whirlog system

T
table: Exported classes

U
util: The util package

W
whirlog: The whirlog system
whirlog: The whirlog package

Jump to:   C   D   L   N   P   R   S   T   U   W