summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/ext/sqlsoup.py
diff options
context:
space:
mode:
authorJonathan Ellis <jbellis@gmail.com>2006-07-21 19:07:25 +0000
committerJonathan Ellis <jbellis@gmail.com>2006-07-21 19:07:25 +0000
commitf65fdce01daec6c49359f04d90669919d836e3b5 (patch)
treed16243df113f714cf264c9b15403ffa72c89e2ae /lib/sqlalchemy/ext/sqlsoup.py
parent3d6e2af5b32e8d5ec82f7b3367bc0dea45d7006f (diff)
downloadsqlalchemy-f65fdce01daec6c49359f04d90669919d836e3b5.tar.gz
schema support for sqlsoup
Diffstat (limited to 'lib/sqlalchemy/ext/sqlsoup.py')
-rw-r--r--lib/sqlalchemy/ext/sqlsoup.py22
1 files changed, 13 insertions, 9 deletions
diff --git a/lib/sqlalchemy/ext/sqlsoup.py b/lib/sqlalchemy/ext/sqlsoup.py
index 4d3babeca..dc0493f78 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: