docs: def next(self):
          """
          Return the next row of a query result set, respecting if cursor was
          closed.
          """
          if self.rows is None:
              raise ProgrammingError(
                  "No result available. " +
                  "execute() or executemany() must be called first."
              )
          elif not self._closed:
              return next(self.rows)
          else:
              raise ProgrammingError("Cursor closed")