'Fetch up to size rows from the cursor. Result set may be smaller
than size. If size is not defined, cursor.arraysize is used.'

def fetchmany(self, size=None):

    self._check_executed()
    r = self._fetch_row((size or self.arraysize))
    self.rownumber = (self.rownumber + len(r))
    if (not r):
        self._warning_check()
    return r
