reifydb_transaction/transaction/catalog/
primary_key.rs1use reifydb_core::interface::catalog::{
5 change::CatalogTrackPrimaryKeyChangeOperations, key::PrimaryKey, object::ObjectId,
6};
7use reifydb_value::Result;
8
9use crate::{
10 change::{
11 Change,
12 OperationType::{Create, Delete},
13 },
14 transaction::admin::AdminTransaction,
15};
16
17impl CatalogTrackPrimaryKeyChangeOperations for AdminTransaction {
18 fn track_primary_key_created(&mut self, object: ObjectId, primary_key: PrimaryKey) -> Result<()> {
19 let change = Change {
20 pre: None,
21 post: Some((object, primary_key)),
22 op: Create,
23 };
24 self.changes.add_primary_key_change(change);
25 Ok(())
26 }
27
28 fn track_primary_key_deleted(&mut self, object: ObjectId, primary_key: PrimaryKey) -> Result<()> {
29 let change = Change {
30 pre: Some((object, primary_key)),
31 post: None,
32 op: Delete,
33 };
34 self.changes.add_primary_key_change(change);
35 Ok(())
36 }
37}