"and cluster != ? "
"and node in (select node "
"from nodes "
- "where path like ?)")
- execute(q, (before, except_cluster, path + '%'))
+ "where path like ? escape '\\')")
+ execute(q, (before, except_cluster, self.escape_like(path) + '%'))
r = fetchone()
if r is None:
return None
def version_remove(self, serial):
"""Remove the serial specified."""
- props = self.node_get_properties(serial)
+ props = self.version_get_properties(serial)
if not props:
return
node = props[NODE]
+ hash = props[HASH]
size = props[SIZE]
cluster = props[CLUSTER]
q = "delete from versions where serial = ?"
self.execute(q, (serial,))
- return True
+ return hash
def attribute_get(self, serial, keys=()):
"""Return a list of (key, value) pairs of the version specified by serial.
return None, None
subq = " and ("
- subq += ' or '.join(('n.path like ?' for x in pathq))
+ subq += ' or '.join(("n.path like ? escape '\\'" for x in pathq))
subq += ")"
- args = tuple([x + '%' for x in pathq])
+ args = tuple([self.escape_like(x) + '%' for x in pathq])
return subq, args