Beispiel #1
0
    def get_results(self, start_date, end_date):
        query = select([
            label('user_id', self.sql_table.c.user_id),
            label('count', func.count(self.sql_table.c.doc_id))
        ]).where(
            and_(
                operators.ge(self.sql_table.c.time_end, start_date),
                operators.lt(self.sql_table.c.time_end, end_date),
                operators.in_op(self.sql_table.c.user_id,
                                self.users_needing_data))).group_by(
                                    self.sql_table.c.user_id)

        return self._run_query(query)
Beispiel #2
0
    def get_results(self, start_date, end_date):
        query = select([
            label('user_id', self.sql_table.c.user_id),
            label('count', func.count(self.sql_table.c.doc_id))
        ]).where(and_(
            operators.ge(self.sql_table.c.time_end, start_date),
            operators.lt(self.sql_table.c.time_end, end_date),
            operators.in_op(self.sql_table.c.user_id, self.users_needing_data)
        )).group_by(
            self.sql_table.c.user_id
        )

        return self._run_query(query)
Beispiel #3
0
    def test_any_all_operators(self):
        """
        Tests the functionality of the ANY and ALL operators.
        """
        ops_exp = {
            operators.any_op: {'quick', 'brown', 'fox', 'jumps', 'over', 'the',
                               'lazy', 'dog', 'foobar'},
            operators.all_op: {'foobar'}
        }

        for op, exp in ops_exp.items():
            res = self.engine.execute(
                sql.select([self.table.c.c0]). \
                where(operators.ge(
                    self.table.c.c2,
                    op(sql.select([self.table.c.c3]).as_scalar()))))

            assert(set([row[0] for row in res]) == exp)
Beispiel #4
0
    def get_results(self, xmlns, indicator_type, start_date, end_date):
        if indicator_type == TYPE_DURATION:
            aggregation = func.avg(self.sql_table.c.duration)
        else:
            aggregation = func.count(self.sql_table.c.doc_id)

        query = select([
            label('user_id', self.sql_table.c.user_id),
            label('count', aggregation)
        ]).where(
            and_(
                operators.ge(self.sql_table.c.time_end, start_date),
                operators.lt(self.sql_table.c.time_end, end_date),
                operators.in_op(self.sql_table.c.user_id,
                                self.users_needing_data),
                self.sql_table.c.xmlns == xmlns,
            )).group_by(self.sql_table.c.user_id)

        return self._run_query(query)
Beispiel #5
0
    def get_results(self, xmlns, indicator_type, start_date, end_date):
        if indicator_type == TYPE_DURATION:
            aggregation = func.avg(self.sql_table.c.duration)
        else:
            aggregation = func.count(self.sql_table.c.doc_id)

        query = select([
            label('user_id', self.sql_table.c.user_id),
            label('count', aggregation)
        ]).where(and_(
            operators.ge(self.sql_table.c.time_end, start_date),
            operators.lt(self.sql_table.c.time_end, end_date),
            operators.in_op(self.sql_table.c.user_id, self.users_needing_data),
            self.sql_table.c.xmlns == xmlns,
        )).group_by(
            self.sql_table.c.user_id
        )

        return self._run_query(query)