from sqlalchemy import Table, Integer, Float, Column, String, MetaData, ForeignKey
from sqlalchemy.schema import Index, Sequence
from sqlalchemy.sql import func, and_, or_, null, select, bindparam
-from duplicate import insertOnDuplicate
+from sqlalchemy.ext.compiler import compiles
+try:
+ from sqlalchemy.sql.expression import _UpdateBase
+except:
+ from sqlalchemy.sql.expression import UpdateBase as _UpdateBase
+
from dbworker import DBWorker
ROOTNODE = 0
self.conn.execute(s).close()
def attribute_copy(self, source, dest):
- from sqlalchemy.ext.compiler import compiles
- from sqlalchemy.sql.expression import UpdateBase
-
- class InsertFromSelect(UpdateBase):
+ class InsertFromSelect(_UpdateBase):
def __init__(self, table, select):
self.table = table
self.select = select
# or implied, of GRNET S.A.
from sqlalchemy.sql import select, literal
-from sqlalchemy.sql.expression import join
+from sqlalchemy.sql.expression import join, union
from xfeatures import XFeatures
from groups import Groups
members = select([literal(member).label('value')])
any = select([literal('*').label('value')])
- inner_join = join(xfeatures_xfeaturevals,
- union(member_groups, members, any),
- self.xfeaturevals.c.value == extended_member_groups.c.value)
+ u = union(member_groups, members, any)
+ inner_join = join(xfeatures_xfeaturevals, u,
+ self.xfeaturevals.c.value == u.c.value).alias()
s = select([self.xfeatures.c.path], from_obj=[inner_join]).distinct()
if prefix:
s = s.where(self.xfeatures.c.path.like(prefix + '%'))