Get a database descriptor by id. Returns `None` if not found.
(&self, id: DatabaseId)
| 115 | |
| 116 | /// Get a database descriptor by id. Returns `None` if not found. |
| 117 | pub fn get_database(&self, id: DatabaseId) -> crate::Result<Option<DatabaseDescriptor>> { |
| 118 | let txn = self |
| 119 | .db |
| 120 | .begin_read() |
| 121 | .map_err(|e| catalog_err("databases read txn", e))?; |
| 122 | let table = txn |
| 123 | .open_table(DATABASES) |
| 124 | .map_err(|e| catalog_err("open databases", e))?; |
| 125 | match table |
| 126 | .get(id.as_u64()) |
| 127 | .map_err(|e| catalog_err("get databases", e))? |
| 128 | { |
| 129 | Some(v) => { |
| 130 | let desc: DatabaseDescriptor = zerompk::from_msgpack(v.value()) |
| 131 | .map_err(|e| catalog_err("deser DatabaseDescriptor", e))?; |
| 132 | Ok(Some(desc)) |
| 133 | } |
| 134 | None => Ok(None), |
| 135 | } |
| 136 | } |
| 137 | |
| 138 | /// Resolve a database name to its `DatabaseId`. Returns `None` if |
| 139 | /// no database with that name exists. |