aarondb/index
Types
pub type AIndex =
dict.Dict(String, List(fact.Datom))
pub type AVIndex =
dict.Dict(String, dict.Dict(fact.Value, fact.EntityId))
A hybrid index that keeps a hot cache in memory and offloads to disk
pub type HybridIndex {
HybridIndex(
hot: dict.Dict(fact.EntityId, List(fact.Datom)),
cold: List(BitArray),
capacity: Int,
)
}
Constructors
-
HybridIndex( hot: dict.Dict(fact.EntityId, List(fact.Datom)), cold: List(BitArray), capacity: Int, )
pub type Index =
dict.Dict(fact.EntityId, List(fact.Datom))
Values
pub fn delete_aevt(
index: dict.Dict(String, List(fact.Datom)),
datom: fact.Datom,
) -> dict.Dict(String, List(fact.Datom))
pub fn delete_avet(
index: dict.Dict(String, dict.Dict(fact.Value, fact.EntityId)),
datom: fact.Datom,
) -> dict.Dict(String, dict.Dict(fact.Value, fact.EntityId))
pub fn delete_eavt(
index: dict.Dict(fact.EntityId, List(fact.Datom)),
datom: fact.Datom,
) -> dict.Dict(fact.EntityId, List(fact.Datom))
pub fn evict_from_memory(
eavt: dict.Dict(fact.EntityId, List(fact.Datom)),
datoms: List(fact.Datom),
) -> dict.Dict(fact.EntityId, List(fact.Datom))
pub fn filter_by_attribute(
index: dict.Dict(String, List(fact.Datom)),
attr: String,
) -> List(fact.Datom)
pub fn filter_by_entity(
index: dict.Dict(fact.EntityId, List(fact.Datom)),
entity: fact.EntityId,
) -> List(fact.Datom)
pub fn get_all_datoms(
index: dict.Dict(fact.EntityId, List(fact.Datom)),
) -> List(fact.Datom)
pub fn get_all_datoms_aevt(
index: dict.Dict(String, List(fact.Datom)),
) -> List(fact.Datom)
pub fn get_all_datoms_avet(
index: dict.Dict(String, dict.Dict(fact.Value, fact.EntityId)),
) -> List(fact.Datom)
pub fn get_all_datoms_for_attr(
index: dict.Dict(fact.EntityId, List(fact.Datom)),
attr: String,
) -> List(fact.Datom)
pub fn get_cold_datoms(
eavt: dict.Dict(fact.EntityId, List(fact.Datom)),
cut_off_tx: Int,
) -> List(fact.Datom)
pub fn get_datoms_by_entity(
index: dict.Dict(fact.EntityId, List(fact.Datom)),
entity: fact.EntityId,
) -> List(fact.Datom)
pub fn get_datoms_by_entity_attr(
index: dict.Dict(fact.EntityId, List(fact.Datom)),
entity: fact.EntityId,
attr: String,
) -> List(fact.Datom)
pub fn get_datoms_by_entity_attr_val(
index: dict.Dict(fact.EntityId, List(fact.Datom)),
entity: fact.EntityId,
attr: String,
val: fact.Value,
) -> List(fact.Datom)
pub fn get_datoms_by_val(
index: dict.Dict(String, List(fact.Datom)),
attr: String,
val: fact.Value,
) -> List(fact.Datom)
pub fn get_entity_by_av(
index: dict.Dict(String, dict.Dict(fact.Value, fact.EntityId)),
attr: String,
val: fact.Value,
) -> Result(fact.EntityId, Nil)
pub fn insert_aevt(
index: dict.Dict(String, List(fact.Datom)),
datom: fact.Datom,
retention: fact.Retention,
) -> dict.Dict(String, List(fact.Datom))
pub fn insert_avet(
index: dict.Dict(String, dict.Dict(fact.Value, fact.EntityId)),
datom: fact.Datom,
) -> dict.Dict(String, dict.Dict(fact.Value, fact.EntityId))
pub fn insert_eavt(
index: dict.Dict(fact.EntityId, List(fact.Datom)),
datom: fact.Datom,
retention: fact.Retention,
) -> dict.Dict(fact.EntityId, List(fact.Datom))
pub fn insert_hybrid(
index: HybridIndex,
datom: fact.Datom,
retention: fact.Retention,
) -> HybridIndex
pub fn new_aindex() -> dict.Dict(String, List(fact.Datom))
pub fn new_avindex() -> dict.Dict(
String,
dict.Dict(fact.Value, fact.EntityId),
)
pub fn new_hybrid_index(capacity: Int) -> HybridIndex
pub fn new_index() -> dict.Dict(fact.EntityId, List(fact.Datom))