>
>
> 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
-~----------~----~----~----~------~----~------~--~---

Reply via email to