athena_cli/commands/database/
list.rs1use super::utils::DatabaseDisplay;
2use crate::cli::DatabaseArgs;
3use crate::context::Context;
4use anyhow::Result;
5
6pub async fn list(ctx: &Context, args: &DatabaseArgs) -> Result<()> {
7 let client = ctx.create_athena_client();
8
9 let workgroup = args
11 .aws
12 .workgroup
13 .as_ref()
14 .cloned()
15 .unwrap_or_else(|| ctx.workgroup());
16
17 let result = client
18 .list_databases()
19 .catalog_name(ctx.catalog())
20 .send()
21 .await?;
22
23 let databases = result.database_list();
24
25 if databases.is_empty() {
26 println!("No databases found in catalog: {}", ctx.catalog());
27 return Ok(());
28 }
29
30 println!(
32 "Databases in catalog: {} (workgroup: {})",
33 ctx.catalog(),
34 workgroup
35 );
36
37 let table = DatabaseDisplay::create_databases_table(databases);
38 table.printstd();
39
40 Ok(())
41}