galchemy/session/unit_of_work
Types
pub type FieldValue {
FieldValue(column: String, value: expression.SqlValue)
}
Constructors
-
FieldValue(column: String, value: expression.SqlValue)
pub type FlushPlan {
FlushPlan(
inserts: List(query.Query),
updates: List(query.Query),
deletes: List(query.Query),
)
}
Constructors
-
FlushPlan( inserts: List(query.Query), updates: List(query.Query), deletes: List(query.Query), )
pub type Identity {
Identity(fields: List(FieldValue))
}
Constructors
-
Identity(fields: List(FieldValue))
pub type PendingDelete {
PendingDelete(table: relation.TableRef, identity: Identity)
}
Constructors
-
PendingDelete(table: relation.TableRef, identity: Identity)
pub type PendingInsert {
PendingInsert(
table: relation.TableRef,
values: List(FieldValue),
)
}
Constructors
-
PendingInsert(table: relation.TableRef, values: List(FieldValue))
pub type PendingUpdate {
PendingUpdate(
table: relation.TableRef,
identity: Identity,
changes: List(FieldValue),
)
}
Constructors
-
PendingUpdate( table: relation.TableRef, identity: Identity, changes: List(FieldValue), )
pub type Session {
Session(
snapshot: model.SchemaSnapshot,
inserts: List(PendingInsert),
updates: List(PendingUpdate),
deletes: List(PendingDelete),
)
}
Constructors
-
Session( snapshot: model.SchemaSnapshot, inserts: List(PendingInsert), updates: List(PendingUpdate), deletes: List(PendingDelete), )
pub type SessionError {
UnknownTable(relation.TableRef)
UnknownColumn(table: relation.TableRef, column: String)
EmptyInsertValues(relation.TableRef)
EmptyChanges(relation.TableRef)
EmptyIdentity(relation.TableRef)
}
Constructors
-
UnknownTable(relation.TableRef) -
UnknownColumn(table: relation.TableRef, column: String) -
EmptyInsertValues(relation.TableRef) -
EmptyChanges(relation.TableRef) -
EmptyIdentity(relation.TableRef)
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