From f65fdce01daec6c49359f04d90669919d836e3b5 Mon Sep 17 00:00:00 2001 From: Jonathan Ellis Date: Fri, 21 Jul 2006 19:07:25 +0000 Subject: [PATCH] schema support for sqlsoup --- lib/sqlalchemy/ext/sqlsoup.py | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/lib/sqlalchemy/ext/sqlsoup.py b/lib/sqlalchemy/ext/sqlsoup.py index 4d3babeca2..dc0493f78b 100644 --- a/lib/sqlalchemy/ext/sqlsoup.py +++ b/lib/sqlalchemy/ext/sqlsoup.py @@ -18,6 +18,9 @@ Creating a SqlSoup gateway is just like creating an SqlAlchemy engine: or, you can re-use an existing metadata: >>> db = SqlSoup(BoundMetaData(e)) +You can specify a schema within the database for your SqlSoup: +# >>> db.schema = myschemaname + Loading objects is as easy as this: >>> users = db.users.select() >>> users.sort() @@ -173,11 +176,11 @@ class TableClassType(type): def _is_outer_join(selectable): - if not isinstance(selectable, sql.Join): - return False - if selectable.isouter: - return True - return _is_outer_join(selectable.left) or _is_outer_join(selectable.right) + if not isinstance(selectable, sql.Join): + return False + if selectable.isouter: + return True + return _is_outer_join(selectable.left) or _is_outer_join(selectable.right) def class_for_table(table): if isinstance(table, sql.Join): @@ -208,9 +211,9 @@ def class_for_table(table): setattr(klass, m, eval(m)) klass._table = table klass._mapper = mapper(klass, - table, - extension=objectstore.mapper_extension, - allow_null_pks=_is_outer_join(table)) + table, + extension=objectstore.mapper_extension, + allow_null_pks=_is_outer_join(table)) return klass class SqlSoup: @@ -230,6 +233,7 @@ class SqlSoup: metadata = BoundMetaData(*args, **kwargs) self._metadata = metadata self._cache = {} + self.schema = None def delete(self, *args, **kwargs): objectstore.delete(*args, **kwargs) def flush(self): @@ -256,7 +260,7 @@ class SqlSoup: try: t = self._cache[attr] except KeyError: - table = Table(attr, self._metadata, autoload=True) + table = Table(attr, self._metadata, autoload=True, schema=self.schema) if table.columns: t = class_for_table(table) else: -- 2.47.2