Closed
Description
Migrated issue, originally created by Daniel Halperin (@dhalperi)
The issue is that the self.server_version_info
struct is not being populated because SQL Azure changed their version string. The new string:
Microsoft SQL Azure (RTM) - 11.0.9216.62
Jul 18 2014 22:00:21
Copyright (c) Microsoft Corporation
The regex used by SQLAlchemy's mssql+pymssql dialect:
m = re.match(
r"Microsoft SQL Server.*? - (\d+).(\d+).(\d+).(\d+)", vers)
This does not match, which leads to a None
version info, which breaks the code:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "sqlq/explain.py", line 30, in explain
_do_explain(db, expl_db)
File "sqlq/explain.py", line 13, in _do_explain
with expl_db.connect() as connection:
File "/Users/dhalperi/Envs/sdss-query/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1779, in connect
return self._connection_cls(self, **kwargs)
File "/Users/dhalperi/Envs/sdss-query/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 60, in __init__
self.__connection = connection or engine.raw_connection()
File "/Users/dhalperi/Envs/sdss-query/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1848, in raw_connection
return self.pool.unique_connection()
File "/Users/dhalperi/Envs/sdss-query/lib/python2.7/site-packages/sqlalchemy/pool.py", line 280, in unique_connection
return _ConnectionFairy._checkout(self)
File "/Users/dhalperi/Envs/sdss-query/lib/python2.7/site-packages/sqlalchemy/pool.py", line 641, in _checkout
fairy = _ConnectionRecord.checkout(pool)
File "/Users/dhalperi/Envs/sdss-query/lib/python2.7/site-packages/sqlalchemy/pool.py", line 440, in checkout
rec = pool._do_get()
File "/Users/dhalperi/Envs/sdss-query/lib/python2.7/site-packages/sqlalchemy/pool.py", line 961, in _do_get
return self._create_connection()
File "/Users/dhalperi/Envs/sdss-query/lib/python2.7/site-packages/sqlalchemy/pool.py", line 285, in _create_connection
return _ConnectionRecord(self)
File "/Users/dhalperi/Envs/sdss-query/lib/python2.7/site-packages/sqlalchemy/pool.py", line 416, in __init__
exec_once(self.connection, self)
File "/Users/dhalperi/Envs/sdss-query/lib/python2.7/site-packages/sqlalchemy/event/attr.py", line 250, in exec_once
self(*args, **kw)
File "/Users/dhalperi/Envs/sdss-query/lib/python2.7/site-packages/sqlalchemy/event/attr.py", line 260, in __call__
fn(*args, **kw)
File "/Users/dhalperi/Envs/sdss-query/lib/python2.7/site-packages/sqlalchemy/util/langhelpers.py", line 1219, in go
return once_fn(*arg, **kw)
File "/Users/dhalperi/Envs/sdss-query/lib/python2.7/site-packages/sqlalchemy/engine/strategies.py", line 165, in first_connect
dialect.initialize(c)
File "/Users/dhalperi/Envs/sdss-query/lib/python2.7/site-packages/sqlalchemy/dialects/mssql/base.py", line 1374, in initialize
if self.server_version_info[0] not in list(range(8, 17)):
TypeError: 'NoneType' object has no attribute '__getitem__'
Metadata
Metadata
Assignees
Type
Projects
Relationships
Development
No branches or pull requests
Activity
sqlalchemy-bot commentedon Jul 31, 2014
Changes by Daniel Halperin (@dhalperi):
sqlalchemy-bot commentedon Aug 2, 2014
Michael Bayer (@zzzeek) wrote:
can you confirm this patch works? thanks
sqlalchemy-bot commentedon Aug 4, 2014
Daniel Halperin (@dhalperi) wrote:
Mike: confirmed, thanks!
sqlalchemy-bot commentedon Sep 16, 2014
Michael Bayer (@zzzeek) wrote:
work with Microsoft SQL Azure, which changes the word "SQL Server"
to "SQL Azure".
fixes mssql+pymssql recently broken with SQL Azure #3151
→ a985f84
sqlalchemy-bot commentedon Sep 16, 2014
Michael Bayer (@zzzeek) wrote:
work with Microsoft SQL Azure, which changes the word "SQL Server"
to "SQL Azure".
fixes mssql+pymssql recently broken with SQL Azure #3151
→ 0477501
sqlalchemy-bot commentedon Sep 16, 2014
Changes by Michael Bayer (@zzzeek):