> > > On Dec 22, 2008, at 6:36 PM, Randall Smith wrote: > > > > > Michael Bayer wrote: > >> just FTR, the current expected behavior of default schemas is that if > >> your tables are known to exist in the default schema configured on > >> the > >> database connection, you leave the "schema" attribute on Table blank. > >> otherwise, you set it. > > > > The mssql dialect does not ask the server what the default schema is. > > It just sets it to 'dbo', so for user scott with default schema TEST > > this would yield the wrong value: > > > > import sqlalchemy as sa > > e = sa.create_engine('mssql://scott:ti...@blackie/test') > > print e.dialect.get_default_schema_name(e) # returns dbo > > > > This would return the value from there server: > > > > def get_default_schema_name(self, connection): > > # get the username > > query = "SELECT user_name() as user_name;" > > rp = connection.execute(sql.text(query)) > > row = rp.fetchone() > > rp.close() > > if row is not None: > > user_name = row.user_name > > # now, get the default schema > > query = """ > > SELECT default_schema_name FROM > > sys.database_principals > > WHERE name = :user_name > > AND type = 'S' > > """ > > rp = connection.execute(sql.text(query), > > user_name=user_name) > > row = rp.fetchone() > > rp.close() > > if row is not None: > > return row.default_schema_name > > return self.schema_name > > > > postgres doesn't even set a schema_name on the Dialect. It goes > > like this: > > > > def get_default_schema_name(self, connection): > > return connection.scalar("select current_schema()", None) > > get_default_schema_name = base.connection_memoize( > > ('dialect', 'default_schema_name'))(get_default_schema_name) > > > > Shouldn't mssql do something similar to Postgres here? > > it certainly should. > > Yeah there's a ticket out there for this, we just haven't got to it. If you want to put this together with some tests and add it as a patch that would be wonderful.
Michael --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to sqlalchemy@googlegroups.com To unsubscribe from this group, send email to sqlalchemy+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en -~----------~----~----~----~------~----~------~--~---