]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
Recognize message 20047 as disconnect event in MSDialect_pymssql
authorJon Schuff <jonathans@surveymonkey.com>
Tue, 14 May 2019 20:45:10 +0000 (16:45 -0400)
committerMike Bayer <mike_mp@zzzcomputing.com>
Wed, 15 May 2019 15:00:52 +0000 (11:00 -0400)
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
(cherry picked from commit 02c18e753b26aa038ce47d0b46b8f0281093d88b)

doc/build/changelog/unreleased_13/4680.rst [new file with mode: 0644]
lib/sqlalchemy/dialects/mssql/pymssql.py
test/dialect/mssql/test_engine.py

diff --git a/doc/build/changelog/unreleased_13/4680.rst b/doc/build/changelog/unreleased_13/4680.rst
new file mode 100644 (file)
index 0000000..f4ed1f8
--- /dev/null
@@ -0,0 +1,7 @@
+.. change::
+    :tags: bug, mssql
+    :tickets: 4680
+
+    Added error code 20047 to "is_disconnect" for pymssql.  Pull request
+    courtesy Jon Schuff.
+
index b46c0a3f01fd7300f26784f9de40f7fb2c9caae7..d8033f2829a5c8b0310e7dc9dddfa4a535ea85bd 100644 (file)
@@ -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
index 431b20c7a13cc7a885e9bae248b0c2a1e8d87495..257e41bf8372b0e95e5ef03f060b98e854c6f2f6 100644 (file)
@@ -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)