Revision 29148653 snf-pithos-backend/pithos/backends/lib/sqlalchemy/xfeatures.py
b/snf-pithos-backend/pithos/backends/lib/sqlalchemy/xfeatures.py | ||
---|---|---|
35 | 35 |
from sqlalchemy import Table, Column, String, Integer, MetaData, ForeignKey |
36 | 36 |
from sqlalchemy.sql import select, and_ |
37 | 37 |
from sqlalchemy.schema import Index |
38 |
from sqlalchemy.sql.expression import desc |
|
39 | 38 |
from sqlalchemy.exc import NoSuchTableError |
40 | 39 |
|
41 | 40 |
from dbworker import DBWorker |
... | ... | |
58 | 57 |
columns.append(Column('key', Integer, primary_key=True, |
59 | 58 |
autoincrement=False)) |
60 | 59 |
columns.append(Column('value', String(256), primary_key=True)) |
61 |
xfeaturevals = Table( |
|
62 |
'xfeaturevals', metadata, *columns, mysql_engine='InnoDB') |
|
60 |
Table('xfeaturevals', metadata, *columns, mysql_engine='InnoDB') |
|
63 | 61 |
|
64 | 62 |
metadata.create_all(engine) |
65 | 63 |
return metadata.sorted_tables |
... | ... | |
85 | 83 |
# |
86 | 84 |
# s = select([self.xfeatures.c.path, self.xfeatures.c.feature_id]) |
87 | 85 |
# s = s.where(self.xfeatures.c.path <= path) |
88 |
# #s = s.where(self.xfeatures.c.path.like(self.escape_like(path) + '%', escape='\\')) # XXX: Implement reverse and escape like... |
|
86 |
# s = s.where(self.xfeatures.c.path.like( |
|
87 |
# self.escape_like(path) + '%', escape='\\')) # XXX: Escape like... |
|
89 | 88 |
# s = s.order_by(desc(self.xfeatures.c.path)) |
90 | 89 |
# r = self.conn.execute(s) |
91 | 90 |
# l = r.fetchall() |
... | ... | |
128 | 127 |
|
129 | 128 |
def xfeature_destroy_bulk(self, paths): |
130 | 129 |
"""Destroy features and all their key, value pairs.""" |
131 |
|
|
130 |
|
|
132 | 131 |
if not paths: |
133 | 132 |
return |
134 | 133 |
s = self.xfeatures.delete().where(self.xfeatures.c.path.in_(paths)) |
Also available in: Unified diff