package generic
Interfaces to get generic information about data and schema.
- Datom - Datom attributes in molecules
- Log - Datoms sorted by transaction/time
- EAVT - Datoms sorted by Entity-Attribute-Value-Transaction
- AVET - Datoms sorted by Attribute-Value-Entity-Transaction
- AEVT - Datoms sorted by Attribute-Entity-Value-Transaction
- VAET - "Reverse index" for reverse lookup of ref types
- Schema - Meta information about the current database schema.
- Source
- package.scala
Type Members
-
trait
GenericLog extends AnyRef
Container for Log object.
-
trait
Log extends GenericNs
Log interface.
Log interface.
Datomic's database log is a recording of all transaction data in historic order, organized for efficient access by transaction.
Instantiate Log object with tx range arguments betweenfrom
(inclusive) anduntil
(exclusive), and add Log attributes to be returned as tuples of data:// Data from transaction t1 until t4 (exclusive) Log(Some(t1), Some(t4)).t.e.a.v.op.get === List( (t1, e1, ":Person/name", "Ben", true), (t1, e1, ":Person/age", 41, true), (t2, e2, ":Person/name", "Liz", true), (t2, e2, ":Person/age", 37, true), (t3, e1, ":Person/age", 41, false), (t3, e1, ":Person/age", 42, true) ) // If `from` is None, the range starts from the beginning Log(None, Some(t3)).v.e.t.get === List( (t1, e1, ":Person/name", "Ben", true), (t1, e1, ":Person/age", 41, true), (t2, e2, ":Person/name", "Liz", true), (t2, e2, ":Person/age", 37, true) // t3 not included ) // If `until` is None, the range goes to the end Log(Some(t2), None).v.e.t.get === List( // t1 not included (t2, e2, ":Person/name", "Liz", true), (t2, e2, ":Person/age", 37, true), (t3, e1, ":Person/age", 41, false), (t3, e1, ":Person/age", 42, true) )
Log attributes available:
e
- Entity id (Long)a
- Full attribute name like ":Person/name" (String)v
- Value of Datoms (Any)t
- Transaction pointer (Long/Int)tx
- Transaction entity id (Long)txInstant
- Transaction wall clock time (java.util.Date)op
- Operation status: assertion (true) / retraction (false)
- Note
Contrary to the Datomic Log which is map of individual transactions the Molecule Log implementation is flattened to be one continuous list of transaction data. This is to have a transparent unified return type as all other molecules returning data. Data can always be grouped if needed.
-
trait
Log_0 extends Log with OutIndex_0
Log interface to add a first generic attribute to molecule.
-
trait
Log_1[A] extends Log with OutIndex_1[A]
Log interface to add a second generic attribute to molecule.
- trait Log_2[A, B] extends Log with OutIndex_2[A, B]
- trait Log_3[A, B, C] extends Log with OutIndex_3[A, B, C]
- trait Log_4[A, B, C, D] extends Log with OutIndex_4[A, B, C, D]
- trait Log_5[A, B, C, D, E] extends Log with OutIndex_5[A, B, C, D, E]
- trait Log_6[A, B, C, D, E, F] extends Log with OutIndex_6[A, B, C, D, E, F]
- trait Log_7[A, B, C, D, E, F, G] extends Log with OutIndex_7[A, B, C, D, E, F, G]
Documentation/API for the Molecule library - a meta DSL for the Datomic database.
Manual | scalamolecule.org | Github | Forum