summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJon Schuff <jonathans@surveymonkey.com>2019-05-14 16:45:10 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2019-05-15 10:59:59 -0400
commit02c18e753b26aa038ce47d0b46b8f0281093d88b (patch)
tree779484ac149979c3d8debeeb621b246d4892f00d
parentd47034c314a97f8bbac04631ea86775678373f62 (diff)
downloadsqlalchemy-02c18e753b26aa038ce47d0b46b8f0281093d88b.tar.gz
Recognize message 20047 as disconnect event in MSDialect_pymssql
Added error code 20047 to "is_disconnect" for pymssql. Pull request courtesy Jon Schuff. Fixes: #4680 Closes: #4681 Pull-request: https://github.com/sqlalchemy/sqlalchemy/pull/4681 Pull-request-sha: bc81c935ec0e352734d9ad1b322caf6d08079c3d Change-Id: Ifc7ffc4c933b08a34fad537dc48e05d2cfa66d42
-rw-r--r--doc/build/changelog/unreleased_13/4680.rst7
-rw-r--r--lib/sqlalchemy/dialects/mssql/pymssql.py1
-rw-r--r--test/dialect/mssql/test_engine.py3
3 files changed, 11 insertions, 0 deletions
diff --git a/doc/build/changelog/unreleased_13/4680.rst b/doc/build/changelog/unreleased_13/4680.rst
new file mode 100644
index 000000000..f4ed1f8f6
--- /dev/null
+++ b/doc/build/changelog/unreleased_13/4680.rst
@@ -0,0 +1,7 @@
+.. change::
+ :tags: bug, mssql
+ :tickets: 4680
+
+ Added error code 20047 to "is_disconnect" for pymssql. Pull request
+ courtesy Jon Schuff.
+
diff --git a/lib/sqlalchemy/dialects/mssql/pymssql.py b/lib/sqlalchemy/dialects/mssql/pymssql.py
index b46c0a3f0..d8033f282 100644
--- a/lib/sqlalchemy/dialects/mssql/pymssql.py
+++ b/lib/sqlalchemy/dialects/mssql/pymssql.py
@@ -98,6 +98,7 @@ class MSDialect_pymssql(MSDialect):
"Connection is closed",
"message 20006", # Write to the server failed
"message 20017", # Unexpected EOF from the server
+ "message 20047", # DBPROCESS is dead or not enabled
):
if msg in str(e):
return True
diff --git a/test/dialect/mssql/test_engine.py b/test/dialect/mssql/test_engine.py
index 431b20c7a..257e41bf8 100644
--- a/test/dialect/mssql/test_engine.py
+++ b/test/dialect/mssql/test_engine.py
@@ -292,6 +292,9 @@ class ParseConnectTest(fixtures.TestBase):
"Error 10054",
"Not connected to any MS SQL server",
"Connection is closed",
+ "message 20006", # Write to the server failed
+ "message 20017", # Unexpected EOF from the server
+ "message 20047", # DBPROCESS is dead or not enabled
]:
eq_(dialect.is_disconnect(error, None, None), True)