1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-14 08:44:58 +00:00

SQLServer+SQL+LibSQL: Allow sql client to specify the database name

The database the sql client connected to was 'hardcoded' to the login
name of the calling user.
- Extended the IPC API to be more expressive when connecting, by
returning the name of the database the client connected to in the
'connected' callback.
- Gave the sql client a command line argument (-d/--database) allowing
an alternative database name to be specified

A subsequent commit will have a dot command allowing the user to
connect to different databases from the same sql session.
This commit is contained in:
Jan de Visser 2021-08-26 18:45:37 -04:00 committed by Andreas Kling
parent c5c7a9d198
commit e923cb3739
5 changed files with 18 additions and 10 deletions

View file

@ -7,6 +7,7 @@
#include <AK/Format.h>
#include <AK/String.h>
#include <AK/StringBuilder.h>
#include <LibCore/ArgsParser.h>
#include <LibCore/StandardPaths.h>
#include <LibLine/Editor.h>
#include <LibSQL/AST/Lexer.h>
@ -97,8 +98,15 @@ void handle_command(StringView command)
}
int main()
int main(int argc, char** argv)
{
String database_name(getlogin());
Core::ArgsParser args_parser;
args_parser.set_general_help("This is a client for the SerenitySQL database server.");
args_parser.add_option(database_name, "Database to connect to", "database", 'd', "database");
args_parser.parse(argc, argv);
s_editor = Line::Editor::construct();
s_editor->load_history(s_history_path);
@ -172,8 +180,8 @@ int main()
sql_client->async_disconnect(the_connection_id);
};
sql_client->on_connected = [&](int connection_id) {
outln("** Connected to {} **", getlogin());
sql_client->on_connected = [&](int connection_id, String const& connected_to_database) {
outln("** Connected to {} **", connected_to_database);
the_connection_id = connection_id;
read_sql();
};
@ -212,7 +220,7 @@ int main()
loop.quit(0);
};
sql_client->connect(getlogin());
sql_client->connect(database_name);
auto rc = loop.exec();
s_editor->save_history(s_history_path);