galchemy/session/unit_of_work

Types

pub type FieldValue {
  FieldValue(column: String, value: expression.SqlValue)
}

Constructors

pub type FlushPlan {
  FlushPlan(
    inserts: List(query.Query),
    updates: List(query.Query),
    deletes: List(query.Query),
  )
}

Constructors

pub type Identity {
  Identity(fields: List(FieldValue))
}

Constructors

pub type PendingDelete {
  PendingDelete(table: relation.TableRef, identity: Identity)
}

Constructors

pub type PendingInsert {
  PendingInsert(
    table: relation.TableRef,
    values: List(FieldValue),
  )
}

Constructors

pub type PendingUpdate {
  PendingUpdate(
    table: relation.TableRef,
    identity: Identity,
    changes: List(FieldValue),
  )
}

Constructors

pub type Session {
  Session(
    snapshot: model.SchemaSnapshot,
    inserts: List(PendingInsert),
    updates: List(PendingUpdate),
    deletes: List(PendingDelete),
  )
}

Constructors

pub type SessionError {
  UnknownTable(relation.TableRef)
  UnknownColumn(table: relation.TableRef, column: String)
  EmptyInsertValues(relation.TableRef)
  EmptyChanges(relation.TableRef)
  EmptyIdentity(relation.TableRef)
}

Constructors

Values

pub fn discard_entity_changes(
  session: Session,
  table: relation.TableRef,
  identity: Identity,
  values: List(FieldValue),
) -> Session
pub fn field(
  column: String,
  value: expression.SqlValue,
) -> FieldValue
pub fn flush_plan(
  session: Session,
) -> Result(FlushPlan, SessionError)
pub fn identity(fields: List(FieldValue)) -> Identity
pub fn new(snapshot: model.SchemaSnapshot) -> Session
pub fn queries(plan: FlushPlan) -> List(query.Query)
pub fn register_deleted(
  session: Session,
  table: relation.TableRef,
  identity: Identity,
) -> Session
pub fn register_dirty(
  session: Session,
  table: relation.TableRef,
  identity: Identity,
  changes: List(FieldValue),
) -> Session
pub fn register_new(
  session: Session,
  table: relation.TableRef,
  values: List(FieldValue),
) -> Session
Search Document