def _build_row(self): row_num = self._rownumber # Create the row if self.row_factory: row = self.row_factory(self) is_tuple = False else: row = [None] * self._nfields is_tuple = True # Fill it n = self._nfields for i in xrange(n): if libpq.PQgetisnull(self._pgres, row_num, i): row[i] = None else: fast_parser = self._fast_parsers[i] if fast_parser: row[i] = fast_parser(self._pgres, row_num, i) else: length = libpq.PQgetlength(self._pgres, row_num, i) val = ffi.buffer(libpq.PQgetvalue( self._pgres, row_num, i), length)[:] row[i] = typecasts.typecast( self._casts[i], val, length, self) self._rownumber += 1 if is_tuple: return tuple(row) return row
def _build_row(self): row_num = self._rownumber # Create the row if self.row_factory: row = self.row_factory(self) is_tuple = False else: row = [None] * self._nfields is_tuple = True # Fill it n = self._nfields for i in xrange(n): if libpq.PQgetisnull(self._pgres, row_num, i): row[i] = None else: fast_parser = self._fast_parsers[i] if fast_parser: row[i] = fast_parser(self._pgres, row_num, i) else: length = libpq.PQgetlength(self._pgres, row_num, i) val = ffi.buffer(libpq.PQgetvalue(self._pgres, row_num, i), length)[:] row[i] = typecasts.typecast(self._casts[i], val, length, self) self._rownumber += 1 if is_tuple: return tuple(row) return row
def _build_row(self, row_num): # Create the row if self.row_factory: row = self.row_factory(self) is_tuple = False else: row = [None] * self._nfields is_tuple = True # Fill it n = self._nfields for i in xrange(n): # PQgetvalue will return an empty string for null values, # so check with PQgetisnull if the value is really null length = libpq.PQgetlength(self._pgres, row_num, i) val = ffi.buffer(libpq.PQgetvalue(self._pgres, row_num, i), length)[:] if not val and libpq.PQgetisnull(self._pgres, row_num, i): val = None else: caster = self._casts[i] val = typecasts.typecast(caster, val, length, self) row[i] = val if is_tuple: return tuple(row) return row