Revision 2c2513fc snf-pithos-backend/pithos/backends/lib/sqlalchemy/node.py
b/snf-pithos-backend/pithos/backends/lib/sqlalchemy/node.py | ||
---|---|---|
765 | 765 |
return None |
766 | 766 |
|
767 | 767 |
def version_lookup_bulk(self, nodes, before=inf, cluster=0, |
768 |
all_props=True): |
|
768 |
all_props=True, order_by_path=False):
|
|
769 | 769 |
"""Lookup the current versions of the given nodes. |
770 | 770 |
Return a list with their properties: |
771 | 771 |
(serial, node, hash, size, type, source, mtime, muser, uuid, |
... | ... | |
774 | 774 |
if not nodes: |
775 | 775 |
return () |
776 | 776 |
v = self.versions.alias('v') |
777 |
n = self.nodes.alias('n') |
|
777 | 778 |
if not all_props: |
778 | 779 |
s = select([v.c.serial]) |
779 | 780 |
else: |
... | ... | |
791 | 792 |
self.nodes.c.node.in_(nodes)) |
792 | 793 |
s = s.where(and_(v.c.serial.in_(c), |
793 | 794 |
v.c.cluster == cluster)) |
794 |
s = s.order_by(v.c.node) |
|
795 |
if order_by_path: |
|
796 |
s = s.where(v.c.node == n.c.node) |
|
797 |
s = s.order_by(n.c.path) |
|
798 |
else: |
|
799 |
s = s.order_by(v.c.node) |
|
795 | 800 |
r = self.conn.execute(s) |
796 | 801 |
rproxy = r.fetchall() |
797 | 802 |
r.close() |
Also available in: Unified diff