def escape_args(self, parameters): if isinstance(parameters, dict): return {k: self.escape_item(v) for k, v in parameters.items()} elif isinstance(parameters, (list, tuple)): return tuple(self.escape_item(x) for x in parameters) else: raise exc.ProgrammingError("Unsupported param format: {}".format(parameters))
def escape_item(self, item): if isinstance(item, (int, long, float)): return self.escape_number(item) elif isinstance(item, basestring): return self.escape_string(item) else: raise exc.ProgrammingError("Unsupported object {}".format(item))
def escape_item(self, item): if item is None: return 'NULL' elif isinstance(item, (int, float)): return self.escape_number(item) elif isinstance(item, str): return self.escape_string(item) elif isinstance(item, collections.Iterable): return self.escape_sequence(item) else: raise exc.ProgrammingError("Unsupported object {}".format(item))
def escape_item(self, item): if item is None: return 'NULL' elif isinstance(item, (int, float)): return self.escape_number(item) elif isinstance(item, basestring): return self.escape_string(item) elif isinstance(item, collections.Iterable): return self.escape_sequence(item) elif isinstance(item, datetime.datetime): return self.escape_datetime(item, self._DATETIME_FORMAT) elif isinstance(item, datetime.date): return self.escape_datetime(item, self._DATE_FORMAT) else: raise exc.ProgrammingError("Unsupported object {}".format(item))
def fetchone(self): """Fetch the next row of a query result set, returning a single sequence, or ``None`` when no more data is available. An :py:class:`~pyhive.exc.Error` (or subclass) exception is raised if the previous call to :py:meth:`execute` did not produce any result set or no call was issued yet. """ if self._state == self._STATE_NONE: raise exc.ProgrammingError("No query yet") # Sleep until we're done or we have some data to return self._fetch_while(lambda: not self._data and self._state != self._STATE_FINISHED) if not self._data: return None else: self._rownumber += 1 return self._data.popleft()