use anyhow::{anyhow, Context};
use mz_ore::str::StrExt;
use crate::action::{ControlFlow, State};
use crate::parser::BuiltinCommand;
pub async fn run_execute(
mut cmd: BuiltinCommand,
state: &mut State,
) -> Result<ControlFlow, anyhow::Error> {
let name = cmd.args.string("name")?;
cmd.args.done()?;
let client = state
.sql_server_clients
.get_mut(&name)
.ok_or_else(|| anyhow!("connection {} not found", name.quoted()))?;
for query in cmd.input {
println!(">> {}", query);
client
.execute(query, &[])
.await
.context("executing SQL Server query")?;
}
Ok(ControlFlow::Continue)
}