Get a single procedure by tenant_id + name.
(
&self,
tenant_id: u64,
name: &str,
)
| 28 | |
| 29 | /// Get a single procedure by tenant_id + name. |
| 30 | pub fn get_procedure( |
| 31 | &self, |
| 32 | tenant_id: u64, |
| 33 | name: &str, |
| 34 | ) -> crate::Result<Option<StoredProcedure>> { |
| 35 | let key = procedure_key(tenant_id, name); |
| 36 | let read_txn = self |
| 37 | .db |
| 38 | .begin_read() |
| 39 | .map_err(|e| catalog_err("read txn", e))?; |
| 40 | let table = read_txn |
| 41 | .open_table(PROCEDURES) |
| 42 | .map_err(|e| catalog_err("open procedures", e))?; |
| 43 | match table.get(key.as_str()) { |
| 44 | Ok(Some(value)) => { |
| 45 | let p: StoredProcedure = zerompk::from_msgpack(value.value()) |
| 46 | .map_err(|e| catalog_err("deser procedure", e))?; |
| 47 | Ok(Some(p)) |
| 48 | } |
| 49 | Ok(None) => Ok(None), |
| 50 | Err(e) => Err(catalog_err("get procedure", e)), |
| 51 | } |
| 52 | } |
| 53 | |
| 54 | /// Delete a procedure. Returns true if it existed. |
| 55 | pub fn delete_procedure(&self, tenant_id: u64, name: &str) -> crate::Result<bool> { |