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
(cherry picked from commit b6d3f60791)
This commit is contained in:
Mike Bayer
2017-06-07 12:30:22 -04:00
parent 3ded82817e
commit 7bbf960a3d
3 changed files with 20 additions and 2 deletions
+13
View File
@@ -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
+1 -1
View File
@@ -2291,7 +2291,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(
+6 -1
View File
@@ -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)