summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2017-06-07 12:30:22 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2017-06-07 12:30:22 -0400
commitb6d3f60791834ead92564fc58afebc2c3eb4a2ff (patch)
treeca4edd3264d3d643e5f506ee5bfd35be9543518d
parentacf64c4178169b765f3f7ae492b1774955cf541f (diff)
downloadsqlalchemy-b6d3f60791834ead92564fc58afebc2c3eb4a2ff.tar.gz
Parse for Postgresql version w/ "beta"
Continuing with the fix that correctly handles Postgresql version string "10devel" released in 1.1.8, an additional regexp bump to handle version strings of the form "10beta1". While Postgresql now offers better ways to get this information, we are sticking w/ the regexp at least through 1.1.x for the least amount of risk to compatibility w/ older or alternate Postgresql databases. Change-Id: I12ddb06465f7dcf80563c27632441ef5963f60d4 Fixes: #4005
-rw-r--r--doc/build/changelog/changelog_11.rst13
-rw-r--r--lib/sqlalchemy/dialects/postgresql/base.py2
-rw-r--r--test/dialect/postgresql/test_dialect.py7
3 files changed, 20 insertions, 2 deletions
diff --git a/doc/build/changelog/changelog_11.rst b/doc/build/changelog/changelog_11.rst
index cde9b45cc..c0e3c18d6 100644
--- a/doc/build/changelog/changelog_11.rst
+++ b/doc/build/changelog/changelog_11.rst
@@ -21,6 +21,19 @@
.. changelog::
:version: 1.1.11
+ .. change:: 4005
+ :tags: bug, postgresql
+ :tickets: 4005
+ :versions: 1.2.0b1
+
+ Continuing with the fix that correctly handles Postgresql
+ version string "10devel" released in 1.1.8, an additional regexp
+ bump to handle version strings of the form "10beta1". While
+ Postgresql now offers better ways to get this information, we
+ are sticking w/ the regexp at least through 1.1.x for the least
+ amount of risk to compatibility w/ older or alternate Postgresql
+ databases.
+
.. change:: 3994
:tags: bug, mssql
:tickets: 3994
diff --git a/lib/sqlalchemy/dialects/postgresql/base.py b/lib/sqlalchemy/dialects/postgresql/base.py
index 2510bc975..e583bd5cf 100644
--- a/lib/sqlalchemy/dialects/postgresql/base.py
+++ b/lib/sqlalchemy/dialects/postgresql/base.py
@@ -2303,7 +2303,7 @@ class PGDialect(default.DefaultDialect):
v = connection.execute("select version()").scalar()
m = re.match(
r'.*(?:PostgreSQL|EnterpriseDB) '
- r'(\d+)\.?(\d+)?(?:\.(\d+))?(?:\.\d+)?(?:devel)?',
+ r'(\d+)\.?(\d+)?(?:\.(\d+))?(?:\.\d+)?(?:devel|beta)?',
v)
if not m:
raise AssertionError(
diff --git a/test/dialect/postgresql/test_dialect.py b/test/dialect/postgresql/test_dialect.py
index c79b186de..376ba081c 100644
--- a/test/dialect/postgresql/test_dialect.py
+++ b/test/dialect/postgresql/test_dialect.py
@@ -63,7 +63,12 @@ class MiscTest(fixtures.TestBase, AssertsExecutionResults, AssertsCompiledSQL):
'release build 1080137', (9, 2, 4)),
(
'PostgreSQL 10devel on x86_64-pc-linux-gnu'
- 'compiled by gcc (GCC) 6.3.1 20170306, 64-bit', (10,))]:
+ 'compiled by gcc (GCC) 6.3.1 20170306, 64-bit', (10,)),
+ (
+ 'PostgreSQL 10beta1 on x86_64-pc-linux-gnu, '
+ 'compiled by gcc (GCC) 4.8.5 20150623 '
+ '(Red Hat 4.8.5-11), 64-bit', (10,))
+ ]:
eq_(testing.db.dialect._get_server_version_info(mock_conn(string)),
version)