Revision ae0a4858 snf-pithos-backend/pithos/backends/lib/sqlalchemy/node.py

b/snf-pithos-backend/pithos/backends/lib/sqlalchemy/node.py
986 986
        pathq = pathq or []
987 987

  
988 988
        # TODO: Use another table to store before=inf results.
989
        a = self.attributes.alias('a')
990 989
        v = self.versions.alias('v')
991
        n = self.nodes.alias('n')
992 990
        s = select([self.attributes.c.key]).distinct()
993 991
        if before != inf:
994
            filtered = select([func.max(self.versions.c.serial)],
995
                              and_(self.versions.c.mtime < before,
996
                                   self.versions.c.node == v.c.node))
992
            filtered = select([func.max(v.c.serial)],
993
                              and_(v.c.mtime < before,
994
                                   v.c.node == self.versions.c.node))
997 995
        else:
998 996
            filtered = select([self.nodes.c.latest_version])
999 997
            filtered = filtered.where(self.nodes.c.node == \
......
1005 1003
        s = s.where(self.attributes.c.serial == self.versions.c.serial)
1006 1004
        s = s.where(self.attributes.c.domain == domain)
1007 1005
        s = s.where(self.nodes.c.node == self.versions.c.node)
1006
        s = s.order_by(self.attributes.c.key)
1008 1007
        conja = []
1009 1008
        conjb = []
1010 1009
        for path, match in pathq:
......
1082 1081
        v = self.versions.alias('v')
1083 1082
        n = self.nodes.alias('n')
1084 1083
        if before != inf:
1085
            filtered = select([func.max(self.versions.c.serial)],
1086
                              and_(self.versions.c.mtime < before,
1087
                                   self.versions.c.node == v.c.node))
1084
            filtered = select([func.max(v.c.serial)],
1085
                              and_(v.c.mtime < before,
1086
                                   v.c.node == self.versions.c.node))
1088 1087
            inner_join = \
1089 1088
                    self.nodes.join(self.versions,
1090 1089
                            onclause=self.versions.c.serial==filtered)

Also available in: Unified diff