def work_items(self):
        """An iterable of all of WorkItems in the db.

        This includes both WorkItems with and without results.
        """
        cur = self._conn.cursor()
        rows = cur.execute("SELECT * FROM work_items")
        for row in rows:
            yield _row_to_work_item(row)