Trait kanidmd_lib::be::BackendTransaction
source · pub trait BackendTransaction {
type IdlLayerType: IdlArcSqliteTransaction;
type RuvType: ReplicationUpdateVectorTransaction;
Show 15 methods
fn get_idlayer(&mut self) -> &mut Self::IdlLayerType;
fn get_ruv(&mut self) -> &mut Self::RuvType;
fn get_idxmeta_ref(&self) -> &IdxMeta;
fn filter2idl(
&mut self,
filt: &FilterResolved,
thres: usize
) -> Result<(IdList, FilterPlan), OperationError> { ... }
fn search(
&mut self,
erl: &Limits,
filt: &Filter<FilterValidResolved>
) -> Result<Vec<Arc<EntrySealedCommitted>>, OperationError> { ... }
fn exists(
&mut self,
erl: &Limits,
filt: &Filter<FilterValidResolved>
) -> Result<bool, OperationError> { ... }
fn verify(&mut self) -> Vec<Result<(), ConsistencyError>> ⓘ { ... }
fn verify_entry_index(
&mut self,
e: &Entry<EntrySealed, EntryCommitted>
) -> Result<(), ConsistencyError> { ... }
fn verify_indexes(&mut self) -> Vec<Result<(), ConsistencyError>> ⓘ { ... }
fn verify_ruv(&mut self, results: &mut Vec<Result<(), ConsistencyError>>) { ... }
fn backup(&mut self, dst_path: &str) -> Result<(), OperationError> { ... }
fn name2uuid(&mut self, name: &str) -> Result<Option<Uuid>, OperationError> { ... }
fn externalid2uuid(
&mut self,
name: &str
) -> Result<Option<Uuid>, OperationError> { ... }
fn uuid2spn(&mut self, uuid: Uuid) -> Result<Option<Value>, OperationError> { ... }
fn uuid2rdn(&mut self, uuid: Uuid) -> Result<Option<String>, OperationError> { ... }
}
Required Associated Types§
type IdlLayerType: IdlArcSqliteTransaction
type RuvType: ReplicationUpdateVectorTransaction
Required Methods§
fn get_idlayer(&mut self) -> &mut Self::IdlLayerType
fn get_ruv(&mut self) -> &mut Self::RuvType
fn get_idxmeta_ref(&self) -> &IdxMeta
Provided Methods§
sourcefn filter2idl(
&mut self,
filt: &FilterResolved,
thres: usize
) -> Result<(IdList, FilterPlan), OperationError>
fn filter2idl(
&mut self,
filt: &FilterResolved,
thres: usize
) -> Result<(IdList, FilterPlan), OperationError>
Recursively apply a filter, transforming into IdList’s on the way. This builds a query execution log, so that it can be examined how an operation proceeded.
fn search(
&mut self,
erl: &Limits,
filt: &Filter<FilterValidResolved>
) -> Result<Vec<Arc<EntrySealedCommitted>>, OperationError>
sourcefn exists(
&mut self,
erl: &Limits,
filt: &Filter<FilterValidResolved>
) -> Result<bool, OperationError>
fn exists(
&mut self,
erl: &Limits,
filt: &Filter<FilterValidResolved>
) -> Result<bool, OperationError>
Given a filter, assert some condition exists. Basically, this is a specialised case of search, where we don’t need to load any candidates if they match. This is heavily used in uuid refint and attr uniqueness.