TODOs¶
Testing¶
Doctests. A little more involved with Myst I think.
Docs¶
explain the forced guarantees of foreign_keys = ON and autocommit=True somewhere.
Also really make sure we want that!
SOONHow can we make sphinx decide where items actually get doc’d? Especially to silence the complaints when building the docs.
Why are links to anchors not working, despite doing it like myst says to?
Functionality¶
User functions
NEXT AFTERdefault functions: one for each python builtin (like str.startswith, etc.)
Should there be a way to run your converter on all rows at once, and collect the errors in parallel?
Transactions¶
Do Savepoint objects properly handle when they’re invalidated due to a rollback? Has to be checked on the inner functions too? Or is that mainly handled from exit…
Should TransactionControlException not subclass coolqlite error? it should basically never be exposed so idk. we could make a BaseException subclass.
It’s called this for now to clarify it should only be used as a context manager. if we ever have a version that allows manual control, it should perhaps be a separate class or whatnot.
Do we still allow using the connection as a context manager, and it just keeps an internal savepoint? I would say let that be closing() but we want to not confuse people used to the stdlib.
UOH: generators might non-obviously hold open a savepoint… How do we catch that? If one exits while another is held? Good god this is what rust is for…
Other¶
Sqlite
NOWdoesn’t use a Z. Maybe we really should have DDL support, To have you fall into the pit of success?We could support dynamically-sized
IN (list)easily enough.Since temporal types accept format strings… I hope people won’t expect that to work. Maybe we should document that somewhere. (Maybe that’s what we use
!sfor? Later if so.)