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

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))
Search Document