Exemplo n.º 1
0
 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"]
Exemplo n.º 2
0
 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']