Export all forward edges as `(tenant, composite_key, properties)` triples for snapshot transfer. Reverse index is rebuilt on restore from the forward records — not shipped separately.
(&self)
| 10 | /// triples for snapshot transfer. Reverse index is rebuilt on |
| 11 | /// restore from the forward records — not shipped separately. |
| 12 | pub fn export_edges(&self) -> crate::Result<Vec<(TenantId, String, Vec<u8>)>> { |
| 13 | let txn = self.db.begin_read().map_err(|e| redb_err("read txn", e))?; |
| 14 | let table = txn |
| 15 | .open_table(EDGES) |
| 16 | .map_err(|e| redb_err("open edges", e))?; |
| 17 | let mut pairs = Vec::new(); |
| 18 | for entry in table.iter().map_err(|e| redb_err("iter edges", e))? { |
| 19 | let (k, v) = entry.map_err(|e| redb_err("read edge", e))?; |
| 20 | let (tid, composite) = k.value(); |
| 21 | pairs.push(( |
| 22 | TenantId::new(tid), |
| 23 | composite.to_string(), |
| 24 | v.value().to_vec(), |
| 25 | )); |
| 26 | } |
| 27 | Ok(pairs) |
| 28 | } |
| 29 | |
| 30 | /// Import edges from a snapshot. Each record is inserted via |
| 31 | /// [`EdgeStore::put_edge_raw`], which maintains the reverse index |