summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/dialects/postgresql/asyncpg.py
diff options
context:
space:
mode:
authormike bayer <mike_mp@zzzcomputing.com>2020-09-08 15:17:37 +0000
committerGerrit Code Review <gerrit@bbpush.zzzcomputing.com>2020-09-08 15:17:37 +0000
commit0d56a62f721ee6c91d8a8b6a407b959c9215b3b6 (patch)
treeb87a0be641b46d466daf55d6bc7d550cee9a153a /lib/sqlalchemy/dialects/postgresql/asyncpg.py
parent6dc8d1dc6955db8107b683f2c2f3e4b62aad574b (diff)
parente3716012c535c0aeac2a8cc5a32609ed2d4197c1 (diff)
downloadsqlalchemy-0d56a62f721ee6c91d8a8b6a407b959c9215b3b6.tar.gz
Merge "Create connection characteristics API; implement postgresql flags"
Diffstat (limited to 'lib/sqlalchemy/dialects/postgresql/asyncpg.py')
-rw-r--r--lib/sqlalchemy/dialects/postgresql/asyncpg.py20
1 files changed, 19 insertions, 1 deletions
diff --git a/lib/sqlalchemy/dialects/postgresql/asyncpg.py b/lib/sqlalchemy/dialects/postgresql/asyncpg.py
index 515ef6e28..eb87249b4 100644
--- a/lib/sqlalchemy/dialects/postgresql/asyncpg.py
+++ b/lib/sqlalchemy/dialects/postgresql/asyncpg.py
@@ -465,6 +465,8 @@ class AsyncAdapt_asyncpg_connection:
"dbapi",
"_connection",
"isolation_level",
+ "readonly",
+ "deferrable",
"_transaction",
"_started",
)
@@ -475,6 +477,8 @@ class AsyncAdapt_asyncpg_connection:
self.dbapi = dbapi
self._connection = connection
self.isolation_level = "read_committed"
+ self.readonly = False
+ self.deferrable = False
self._transaction = None
self._started = False
self.await_(self._setup_type_codecs())
@@ -530,7 +534,9 @@ class AsyncAdapt_asyncpg_connection:
try:
self._transaction = self._connection.transaction(
- isolation=self.isolation_level
+ isolation=self.isolation_level,
+ readonly=self.readonly,
+ deferrable=self.deferrable,
)
await self._transaction.start()
except Exception as error:
@@ -763,6 +769,18 @@ class PGDialect_asyncpg(PGDialect):
connection.set_isolation_level(level)
+ def set_readonly(self, connection, value):
+ connection.readonly = value
+
+ def get_readonly(self, connection):
+ return connection.readonly
+
+ def set_deferrable(self, connection, value):
+ connection.deferrable = value
+
+ def get_deferrable(self, connection):
+ return connection.deferrable
+
def create_connect_args(self, url):
opts = url.translate_connect_args(username="user")
if "port" in opts: