summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/sql_util.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2006-06-02 01:10:20 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2006-06-02 01:10:20 +0000
commit297d35ba498c2f656df41737490977f88ca70682 (patch)
tree0e39ddca7e6e0b531a3a50a462a67ce184d2f235 /lib/sqlalchemy/sql_util.py
parent2b9322f606124abe036c1e8b0446ca6ba25b313c (diff)
downloadsqlalchemy-297d35ba498c2f656df41737490977f88ca70682.tar.gz
- got rudimental "mapping to multiple tables" functionality cleaned up,
more correctly documented
Diffstat (limited to 'lib/sqlalchemy/sql_util.py')
-rw-r--r--lib/sqlalchemy/sql_util.py19
1 files changed, 16 insertions, 3 deletions
diff --git a/lib/sqlalchemy/sql_util.py b/lib/sqlalchemy/sql_util.py
index 0728bba47..1a720d1d5 100644
--- a/lib/sqlalchemy/sql_util.py
+++ b/lib/sqlalchemy/sql_util.py
@@ -9,7 +9,22 @@ class TableCollection(object):
self.tables = []
def add(self, table):
self.tables.append(table)
- def sort(self, reverse=False ):
+ if hasattr(self, '_sorted'):
+ del self._sorted
+ def sort(self, reverse=False):
+ try:
+ sorted = self._sorted
+ except AttributeError, e:
+ self._sorted = self._do_sort()
+ return self.sort(reverse=reverse)
+ if reverse:
+ x = sorted[:]
+ x.reverse()
+ return x
+ else:
+ return sorted
+
+ def _do_sort(self):
import sqlalchemy.orm.topological
tuples = []
class TVisitor(schema.SchemaVisitor):
@@ -29,8 +44,6 @@ class TableCollection(object):
to_sequence( child )
if head is not None:
to_sequence( head )
- if reverse:
- sequence.reverse()
return sequence