new doc section "Custom Comparators".
- mssql
+ - ``get_default_schema_name`` is now reflected from the
+ database based on the user's default schema. This only works
+ with MSSQL 2005 and later. [ticket:1258]
+
- Added collation support through the use of a new collation
argument. This is supported on the following types: char,
nchar, varchar, nvarchar, text, ntext. [ticket:1248]
newobj.dialect = self
return newobj
+ @base.connection_memoize(('dialect', 'default_schema_name'))
def get_default_schema_name(self, connection):
+ query = "SELECT user_name() as user_name;"
+ user_name = connection.scalar(sql.text(query))
+ if user_name is not None:
+ # now, get the default schema
+ query = """
+ SELECT default_schema_name FROM
+ sys.database_principals
+ WHERE name = :user_name
+ AND type = 'S'
+ """
+ try:
+ default_schema_name = connection.scalar(sql.text(query),
+ user_name=user_name)
+ if default_schema_name is not None:
+ return default_schema_name
+ except:
+ pass
return self.schema_name
def table_names(self, connection, schema):