docs: def fetchall(self):
          """
          Fetch all, as per MySQLdb. Pretty useless for large queries, as
          it is buffered. See fetchall_unbuffered(), if you want an unbuffered
          generator version of this method.
          """
          rows = []
          while True:
              row = yield self.fetchone()
              if row is None:
                  break
              rows.append(row)
          raise gen.Return(rows)