def __init__(self, sourceClass, clause, clauseTables=None, **ops): self.sourceClass = sourceClass if clause is None or isinstance(clause, str) and clause == 'all': clause = sqlbuilder.SQLTrueClause self.clause = clause tablesDict = sqlbuilder.tablesUsedDict(self.clause) tablesDict[str(sourceClass.sqlmeta.table)] = 1 if clauseTables: for table in clauseTables: tablesDict[str(table)] = 1 self.clauseTables = clauseTables self.tables = tablesDict.keys() self.ops = ops if ops.get('orderBy', sqlbuilder.NoDefault) is sqlbuilder.NoDefault: ops['orderBy'] = sourceClass.sqlmeta.defaultOrder orderBy = ops['orderBy'] if isinstance(orderBy, list) or isinstance(orderBy, tuple): orderBy = map(self._mungeOrderBy, orderBy) else: orderBy = self._mungeOrderBy(orderBy) ops['dbOrderBy'] = orderBy if ops.has_key('connection') and ops['connection'] is None: del ops['connection'] if ops.get('limit', None): assert not ops.get('start', None) and not ops.get('end', None), \ "'limit' cannot be used with 'start' or 'end'" ops["start"] = 0 ops["end"] = ops["limit"]
def __init__(self, sourceClass, clause, clauseTables=None, **ops): self.sourceClass = sourceClass if clause is None or isinstance(clause, str) and clause == 'all': clause = sqlbuilder.SQLTrueClause self.clause = clause tablesDict = sqlbuilder.tablesUsedDict(self.clause) tablesDict[sourceClass.sqlmeta.table] = 1 if clauseTables: for table in clauseTables: tablesDict[table] = 1 self.clauseTables = clauseTables self.tables = tablesDict.keys() self.ops = ops if self.ops.get('orderBy', sqlbuilder.NoDefault) is sqlbuilder.NoDefault: self.ops['orderBy'] = sourceClass.sqlmeta.defaultOrder orderBy = self.ops['orderBy'] if isinstance(orderBy, list) or isinstance(orderBy, tuple): orderBy = map(self._mungeOrderBy, orderBy) else: orderBy = self._mungeOrderBy(orderBy) self.ops['dbOrderBy'] = orderBy if ops.has_key('connection') and ops['connection'] is None: del ops['connection']