pub struct PendingProjection { /* private fields */ }Expand description
Encoded index rows and counter deltas computed before apply. Index rows are
safe to retry idempotently; counter deltas are not — re-applying a
delta that already landed double-counts. apply_or_incomplete’s returned
remainder always excludes whatever already applied, for both halves.
Implementations§
Source§impl PendingProjection
impl PendingProjection
Sourcepub fn apply(&self, db: &Db) -> DbResult<()>
pub fn apply(&self, db: &Db) -> DbResult<()>
Apply every row and delta via put_bytes/delete_bytes/apply_delta
only (no re-project, no re-diff) — the documented recovery entry point
for a DbError::ProjectionIncomplete plan (see docs/schema-metadata.md
and docs/breaking-changes/26-08-07-armdb-multi-secondary-index.md §6).
Delegates to Self::apply_or_incomplete on a clone: rows are
idempotent to retry, but a counter delta is not — re-running this
same apply on the whole plan after a partial failure would
double-count whatever already landed. Cloning means a caller who gets
DbError::ProjectionIncomplete(rest) back can retry rest.apply(&db)
(or rest again) and it will only touch what’s actually still
outstanding — the remainder contract holds all the way out to this
public entry point, not just internally.
Trait Implementations§
Source§impl Clone for PendingProjection
impl Clone for PendingProjection
Source§fn clone(&self) -> PendingProjection
fn clone(&self) -> PendingProjection
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more