Skip to content

Commit 53ea136

Browse files
committed
fix(databases): set/query --database accept names; table full_name uses default_catalog
1 parent 0f5d76a commit 53ea136

2 files changed

Lines changed: 10 additions & 12 deletions

File tree

src/databases.rs

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -625,16 +625,12 @@ pub fn create(
625625
pub fn set(workspace_id: &str, id: &str) {
626626
use crossterm::style::Stylize;
627627
let api = ApiClient::new(Some(workspace_id));
628-
let encoded = urlencoding::encode(id);
629-
if api.get_none_if_not_found::<Database>(&format!("/databases/{encoded}")).is_none() {
630-
eprintln!("{}", format!("error: no database with id '{id}'").red());
631-
std::process::exit(1);
632-
}
633-
if let Err(e) = crate::config::save_current_database("default", workspace_id, id) {
628+
let db = resolve_database(&api, id);
629+
if let Err(e) = crate::config::save_current_database("default", workspace_id, &db.id) {
634630
eprintln!("{}", format!("error saving current database: {e}").red());
635631
std::process::exit(1);
636632
}
637-
println!("{}", format!("Current database set to {id}").green());
633+
println!("{}", format!("Current database set to {}", db.id).green());
638634
}
639635

640636
fn resolve_current_database(provided: Option<&str>, workspace_id: &str) -> String {
@@ -681,8 +677,7 @@ pub fn tables_list(workspace_id: &str, database: Option<&str>, schema: Option<&s
681677
let db = resolve_database(&api, &database);
682678
let tables = collect_tables(&api, &db.default_connection_id, schema);
683679

684-
let catalog = db.name.as_deref().unwrap_or("default");
685-
let rows = table_rows(catalog, tables);
680+
let rows = table_rows(&db.default_catalog, tables);
686681

687682
match format {
688683
"json" => println!("{}", serde_json::to_string_pretty(&rows).unwrap()),
@@ -771,8 +766,7 @@ pub fn tables_load(
771766
}
772767
};
773768

774-
let catalog = db.name.as_deref().unwrap_or("default");
775-
let full_name = format!("{catalog}.{}.{}", result.schema_name, result.table_name);
769+
let full_name = format!("{}.{}.{}", db.default_catalog, result.schema_name, result.table_name);
776770
println!("{}", "Table loaded".green());
777771
println!("full_name: {}", full_name.clone().green());
778772
println!("rows: {}", result.row_count);

src/main.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -214,11 +214,15 @@ fn main() {
214214
Some(QueryCommands::Status { id }) => query::poll(&id, &workspace_id, &output),
215215
None => match sql {
216216
Some(sql) => {
217+
let resolved_db = database.as_deref().map(|d| {
218+
let api = api::ApiClient::new(Some(&workspace_id));
219+
databases::resolve_database(&api, d).id
220+
});
217221
query::execute(
218222
&sql,
219223
&workspace_id,
220224
connection.as_deref(),
221-
database.as_deref(),
225+
resolved_db.as_deref(),
222226
&output,
223227
)
224228
}

0 commit comments

Comments
 (0)