mz_testdrive/action/mysql/
execute.rs1use anyhow::{Context, anyhow};
11use mysql_async::prelude::Query;
12
13use crate::action::{ControlFlow, State};
14use crate::parser::BuiltinCommand;
15
16pub async fn run_execute(
17 mut cmd: BuiltinCommand,
18 state: &mut State,
19) -> Result<ControlFlow, anyhow::Error> {
20 let name = cmd.args.string("name")?;
21 cmd.args.done()?;
22
23 let conn = state
24 .mysql_clients
25 .get_mut(&name)
26 .ok_or_else(|| anyhow!("MySQL connection '{}' not found", &name))?;
27
28 for query in cmd.input {
29 println!(">> {}", query);
30 query
31 .run(&mut *conn)
32 .await
33 .context("executing MySQL query")?;
34 }
35
36 Ok(ControlFlow::Continue)
37}