def execute(self): # type: () -> PrestoResult """Initiate a Presto query by sending the SQL statement This is the first HTTP request sent to the coordinator. It sets the query_id and returns a Result object used to track the rows returned by the query. To fetch all rows, call fetch() until is_finished is true. """ if self._cancelled: raise exceptions.PrestoUserError("Query has been cancelled", self.query_id) if self.credentials is not None and not self.credentials.valid: self._request.http_session.headers.update( self._request.get_oauth_token()) response = self._request.post(self._sql) status = self._request.process(response) self.query_id = status.id self._stats.update({u"queryId": self.query_id}) self._stats.update(status.stats) self._warnings = getattr(status, "warnings", []) if status.next_uri is None: self._finished = True self._result = PrestoResult(self, status.rows) return self._result
def _process_error(self, error, query_id): error_type = error['errorType'] if error_type == 'EXTERNAL': raise exceptions.PrestoExternalError(error, query_id) elif error_type == 'USER_ERROR': return exceptions.PrestoUserError(error, query_id) return exceptions.PrestoQueryError(error, query_id)
def _process_error(self, error, query_id): error_type = error["errorType"] if error_type == "EXTERNAL": raise exceptions.PrestoExternalError(error, query_id) elif error_type == "USER_ERROR": return exceptions.PrestoUserError(error, query_id) return exceptions.PrestoQueryError(error, query_id)
def execute(self): # type: () -> PrestoResult """Initiate a Presto query by sending the SQL statement This is the first HTTP request sent to the coordinator. It sets the query_id and returns a Result object used to track the rows returned by the query. To fetch all rows, call fetch() until is_finished is true. """ if self._cancelled: raise exceptions.PrestoUserError( "Query has been cancelled", self.query_id, ) response = self._request.post(self._sql) status = self._request.process(response) self.query_id = status.id self._stats.update({u'queryId': self.query_id}) self._stats.update(status.stats) if status.next_uri is None: self._finished = True self._result = PrestoResult(self, status.rows) return self._result