+ """Finds all files with selected parent"""
+
+ items_dict = {}
+ execute = self.conn.execute
+ fields = dict(execute("SELECT id, name FROM fields WHERE name IN (%s)" \
+ % ','.join('%r' % (field,) for field in fields)).fetchall())
+ """
+ query = "SELECT id, field_id, value FROM data \
+ left join relation on relation.data_id=data.id \
+ where relation.struct_id=? and field_id in (%s)"
+ """
+ query = "SELECT id, field_id, value FROM data \
+ WHERE id IN (SELECT data_id FROM relation WHERE struct_id=?) \
+ AND field_id IN (%s)"
+ data = execute(query % ','.join('%r' % f for f in fields.keys()), \
+ (parent,)).fetchall()
+ for data_id, field_id, value in data:
+ if not items_dict.has_key(data_id):
+ items_dict[data_id] = {}
+ items_dict[data_id][fields[int(field_id)]] = value
+ return items_dict
+
+ def get_files_by_pattern(self, fields, key='cn', pattern='', \
+ search_from_start=False):