On Mon, Dec 22, 2008 at 8:46 PM, Empty <mtr...@gmail.com> wrote: > >> 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. > > Correction, there's not a ticket out there for this. I just gave it considerable thought when I saw that it was hard coded. If you wouldn't mind adding a ticket too that would be doubly-wonderful.
Thanks 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 -~----------~----~----~----~------~----~------~--~---