diff options
| -rw-r--r-- | doc/build/changelog/changelog_10.rst | 12 | ||||
| -rw-r--r-- | lib/sqlalchemy/dialects/mssql/base.py | 16 |
2 files changed, 18 insertions, 10 deletions
diff --git a/doc/build/changelog/changelog_10.rst b/doc/build/changelog/changelog_10.rst index 0ea3633b7..8fd6b1dca 100644 --- a/doc/build/changelog/changelog_10.rst +++ b/doc/build/changelog/changelog_10.rst @@ -20,6 +20,18 @@ .. change:: :tags: bug, mssql + :tickets: 3810 + :versions: 1.1.0 + + Changed the query used to get "default schema name", from one that + queries the database principals table to using the + "schema_name()" function, as issues have been reported that the + former system was unavailable on the Azure Data Warehouse edition. + It is hoped that this will finally work across all SQL Server + versions and authentication styles. + + .. change:: + :tags: bug, mssql :tickets: 3814 :versions: 1.1.0 diff --git a/lib/sqlalchemy/dialects/mssql/base.py b/lib/sqlalchemy/dialects/mssql/base.py index 9db025df7..19558a2d6 100644 --- a/lib/sqlalchemy/dialects/mssql/base.py +++ b/lib/sqlalchemy/dialects/mssql/base.py @@ -1730,17 +1730,13 @@ class MSDialect(default.DefaultDialect): def _get_default_schema_name(self, connection): if self.server_version_info < MS_2005_VERSION: return self.schema_name - - query = sql.text(""" - SELECT default_schema_name FROM - sys.database_principals - WHERE principal_id=database_principal_id() - """) - default_schema_name = connection.scalar(query) - if default_schema_name is not None: - return util.text_type(default_schema_name) else: - return self.schema_name + query = sql.text("SELECT schema_name()") + default_schema_name = connection.scalar(query) + if default_schema_name is not None: + return util.text_type(default_schema_name) + else: + return self.schema_name @_db_plus_owner def has_table(self, connection, tablename, dbname, owner, schema): |
