From 297d35ba498c2f656df41737490977f88ca70682 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Fri, 2 Jun 2006 01:10:20 +0000 Subject: - got rudimental "mapping to multiple tables" functionality cleaned up, more correctly documented --- lib/sqlalchemy/sql_util.py | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) (limited to 'lib/sqlalchemy/sql_util.py') 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 -- cgit v1.2.1