## explicit naming of memtables This requires us to support overwriting, if someone decides to name two different memtables the same. The implementation of this is pretty dicey. ### solution: memtables are always unique, and if you want to name them you have to use `create_table`. --- ## `weakref.finalize` cleanup of underlying data This depends on safe execution of the Python GC at any time, and it's possible to [deadlock the interpreter with psycopg using a finalizer](https://github.com/psycopg/psycopg/issues/1120) that executes a `DROP TABLE` query. ### solution: `atexit` is probably the best we can do For backends that use temporary tables we can remove finalizers altogether.