>
>
> 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 [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---