ITADN

execute functions to return responses, so return values can get validated by the workload

#56Openfruch 创建于 2023-11-02
F
fruchcommented
While try to play around with latte, I was looking on how can I add data validation to a workflow, and I've found the `execute` functions are always return empty/nil/unit ```rust /// Executes an ad-hoc CQL statement with no parameters. Does not prepare. pub async fn execute(&self, cql: &str) -> Result<(), CassError> { let start_time = self.stats.try_lock().unwrap().start_request(); let rs = self.session.query(cql, ()).await; let duration = Instant::now() - start_time; self.stats .try_lock() .unwrap() .complete_request(duration, &rs); rs.map_err(|e| CassError::query_execution_error(cql, &[], e))?; Ok(()) } /// Executes a statement prepared and registered earlier by a call to `prepare`. pub async fn execute_prepared(&self, key: &str, params: Value) -> Result<(), CassError> { let statement = self .statements .get(key) .ok_or_else(|| CassError(CassErrorKind::PreparedStatementNotFound(key.to_string())))?; let params = bind::to_scylla_query_params(&params)?; let start_time = self.stats.try_lock().unwrap().start_request(); let rs = self.session.execute(statement, params.clone()).await; let duration = Instant::now() - start_time; self.stats .try_lock() .unwrap() .complete_request(duration, &rs); rs.map_err(|e| CassError::query_execution_error(statement.get_statement(), &params, e))?; Ok(()) } ``` so in cases the query works but comes out empty, latte consider is as correct, while I would like to be able to consider it as error, and maybe even stop the workflow cause of that
0 条评论