| 273 | self.to_update[id] = (tp, props) |
| 274 | |
| 275 | def commit_dml(self) -> None: |
| 276 | # updates must happen after insert because it may update inserted data |
| 277 | for id, insert_obj in self.to_insert.dbdata.items(): |
| 278 | self.storage.insert(id, insert_obj.tp, insert_obj.data) |
| 279 | for id, (tpname, obj) in self.to_update.items(): |
| 280 | self.storage.update(id, tpname, obj) |
| 281 | # delete happens last, you may also delete an inserted object |
| 282 | for tpname, id in self.to_delete: |
| 283 | self.storage.delete(id, tpname) |
| 284 | self.to_delete = [] |
| 285 | self.to_update = {} |
| 286 | self.to_insert = e.DB({}) |
| 287 | self.storage.commit() |
| 288 | |
| 289 | def get_schema(self) -> e.DBSchema: |
| 290 | return self.storage.get_schema() |