Closed Veritaris closed 4 months ago
Hi! Thank you for the issue.
This idea is great, but It has some cons.
We have an asynchronous connection()
method because we need to make an asynchronous call to the database pool.
When we get a connection that can be used in a context manager, it must have some magical method and access to the ConnectionPool.
If we want to have 2 ways of connection
declaration, we need to be available to start it explicitly, like Transaction
has a begin
method.
Example:
# First without context manager
...
conn = connection_pool.connection()
await conn.start()
# Second with a context manager
...
async with connection_pool.connection() as conn:
It seems a bit complicated to me with some start
method for connection.
If you have another opinion please share it.
I've started implementing this, but I'm faced with performance issues. https://github.com/qaspen-python/psqlpy/pull/36
So, it will take time to understand how to do it in another way.
It's implemented in release https://github.com/qaspen-python/psqlpy/releases/tag/0.7.0 with the acquire
method.
ATM to use connection we need to write the following code:
But it would be more pythonic to use context manager here like: