Revision 9f5c8386

b/snf-pithos-backend/pithos/backends/lib/sqlalchemy/node.py
918 918
        attributes = rp.fetchall()
919 919
        rp.close()
920 920
        for dest, domain, node, k, v in attributes:
921
            select_src_node = select(
922
                [self.versions.c.node],
923
                self.versions.c.serial == dest)
921 924
            # insert or replace
922 925
            s = self.attributes.update().where(and_(
923 926
                self.attributes.c.serial == dest,
924 927
                self.attributes.c.domain == domain,
925 928
                self.attributes.c.key == k))
926
            s = s.values(value=v)
929
            s = s.values(node = select_src_node, value=v)
927 930
            rp = self.conn.execute(s)
928 931
            rp.close()
929 932
            if rp.rowcount == 0:
930 933
                s = self.attributes.insert()
931
                s = s.values(serial=dest, domain=domain, node=node,
934
                s = s.values(serial=dest, domain=domain, node=select_src_node,
932 935
                             is_latest=True, key=k, value=v)
933 936
            self.conn.execute(s).close()
934 937

  

Also available in: Unified diff