| 2359 | } |
| 2360 | |
| 2361 | SuccessState ShellState::ShowDatabases() { |
| 2362 | OpenDB(); |
| 2363 | |
| 2364 | auto &con = *conn; |
| 2365 | auto query_result = con.Query("SELECT name, file FROM pragma_database_list"); |
| 2366 | if (query_result->HasError()) { |
| 2367 | PrintDatabaseError(query_result->GetError()); |
| 2368 | return SuccessState::FAILURE; |
| 2369 | } |
| 2370 | ShellTableInfo result; |
| 2371 | result.table_name = "databases"; |
| 2372 | for (auto &row : *query_result) { |
| 2373 | ShellColumnInfo column; |
| 2374 | // database name |
| 2375 | column.column_name = row.GetValue<string>(0); |
| 2376 | // database file |
| 2377 | column.column_type = row.IsNull(1) ? "(memory)" : row.GetValue<string>(1); |
| 2378 | result.columns.push_back(std::move(column)); |
| 2379 | } |
| 2380 | vector<ShellTableInfo> result_list; |
| 2381 | result_list.push_back(std::move(result)); |
| 2382 | RenderTableMetadata(result_list); |
| 2383 | return SuccessState::SUCCESS; |
| 2384 | } |
| 2385 | |
| 2386 | MetadataResult ShellState::ToggleTimer(ShellState &state, const vector<string> &args) { |
| 2387 | enableTimer = state.StringToBool(args[1]); |