Skip to content

Commit

Permalink
Add missing const qualifier in DatabaseEngine methods
Browse files Browse the repository at this point in the history
  • Loading branch information
hnjylwb committed Mar 12, 2024
1 parent 0469f87 commit 5a35824
Show file tree
Hide file tree
Showing 4 changed files with 32 additions and 28 deletions.
6 changes: 4 additions & 2 deletions src/database/connection.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,10 @@ namespace huadb {

Connection::Connection(DatabaseEngine &database) : database_(database) {}

void Connection::SendQuery(const std::string &sql, ResultWriter &writer) { database_.ExecuteSql(sql, writer, *this); }
void Connection::SendQuery(const std::string &sql, ResultWriter &writer) const {
database_.ExecuteSql(sql, writer, *this);
}

bool Connection::InTransaction() { return database_.InTransaction(*this); }
bool Connection::InTransaction() const { return database_.InTransaction(*this); }

} // namespace huadb
4 changes: 2 additions & 2 deletions src/database/connection.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ class DatabaseEngine;
class Connection {
public:
explicit Connection(DatabaseEngine &database);
void SendQuery(const std::string &sql, ResultWriter &writer);
bool InTransaction();
void SendQuery(const std::string &sql, ResultWriter &writer) const;
bool InTransaction() const;

private:
DatabaseEngine &database_;
Expand Down
26 changes: 14 additions & 12 deletions src/database/database_engine.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -70,9 +70,11 @@ DatabaseEngine::~DatabaseEngine() {

const std::string &DatabaseEngine::GetCurrentDatabase() const { return current_db_; }

bool DatabaseEngine::InTransaction(Connection &connection) const { return xids_.find(&connection) != xids_.end(); }
bool DatabaseEngine::InTransaction(const Connection &connection) const {
return xids_.find(&connection) != xids_.end();
}

void DatabaseEngine::ExecuteSql(const std::string &sql, ResultWriter &writer, Connection &connection) {
void DatabaseEngine::ExecuteSql(const std::string &sql, ResultWriter &writer, const Connection &connection) {
if (!sql.empty() && sql[0] == '\\') {
if (sql[1] == 'l') {
ShowDatabases(writer);
Expand Down Expand Up @@ -285,7 +287,7 @@ void DatabaseEngine::Crash() {
crashed_ = true;
}

void DatabaseEngine::Help(ResultWriter &writer) {
void DatabaseEngine::Help(ResultWriter &writer) const {
std::string help = R"(
\? or \h show help message
\c [database_name] change database
Expand All @@ -302,7 +304,7 @@ void DatabaseEngine::CreateDatabase(const std::string &db_name, bool exists_ok,
WriteOneCell("CREATE DATABASE", writer);
}

void DatabaseEngine::ShowDatabases(ResultWriter &writer) {
void DatabaseEngine::ShowDatabases(ResultWriter &writer) const {
writer.BeginTable();
writer.BeginHeader();
writer.WriteHeaderCell("database_name");
Expand Down Expand Up @@ -349,7 +351,7 @@ void DatabaseEngine::CreateTable(const std::string &table_name, const ColumnList
WriteOneCell("CREATE TABLE", writer);
}

void DatabaseEngine::DescribeTable(const std::string &table_name, ResultWriter &writer) {
void DatabaseEngine::DescribeTable(const std::string &table_name, ResultWriter &writer) const {
auto column_list = catalog_->GetTableColumnList(table_name);
writer.BeginTable();
writer.BeginHeader();
Expand All @@ -370,7 +372,7 @@ void DatabaseEngine::DescribeTable(const std::string &table_name, ResultWriter &
writer.WriteRowCount(column_count);
}

void DatabaseEngine::ShowTables(ResultWriter &writer) {
void DatabaseEngine::ShowTables(ResultWriter &writer) const {
writer.BeginTable();
writer.BeginHeader();
writer.WriteHeaderCell("table_name");
Expand Down Expand Up @@ -402,7 +404,7 @@ void DatabaseEngine::DropIndex(const std::string &index_name, ResultWriter &writ
WriteOneCell("DROP INDEX", writer);
}

void DatabaseEngine::Begin(Connection &connection) {
void DatabaseEngine::Begin(const Connection &connection) {
if (xids_.find(&connection) != xids_.end()) {
throw DbException("There is already a transaction in progress");
} else {
Expand All @@ -412,7 +414,7 @@ void DatabaseEngine::Begin(Connection &connection) {
}
}

void DatabaseEngine::Commit(Connection &connection) {
void DatabaseEngine::Commit(const Connection &connection) {
if (xids_.find(&connection) == xids_.end()) {
throw DbException("There is no transaction in process");
} else {
Expand All @@ -422,7 +424,7 @@ void DatabaseEngine::Commit(Connection &connection) {
}
}

void DatabaseEngine::Rollback(Connection &connection) {
void DatabaseEngine::Rollback(const Connection &connection) {
if (xids_.find(&connection) == xids_.end()) {
throw DbException("There is no transaction in process");
} else {
Expand Down Expand Up @@ -496,7 +498,7 @@ void DatabaseEngine::VariableSet(const Connection &connection, const VariableSet
}

void DatabaseEngine::VariableShow(const Connection &connection, const VariableShowStatement &stmt,
ResultWriter &writer) {
ResultWriter &writer) const {
std::string result;
if (stmt.variable_ == "tables") {
ShowTables(writer);
Expand All @@ -510,10 +512,10 @@ void DatabaseEngine::VariableShow(const Connection &connection, const VariableSh
result = std::to_string(log_manager_->GetRedoCount());
} else {
if (client_variables_.find(&connection) == client_variables_.end() ||
client_variables_[&connection].find(stmt.variable_) == client_variables_[&connection].end()) {
client_variables_.at(&connection).find(stmt.variable_) == client_variables_.at(&connection).end()) {
throw DbException("Variable not found");
}
result = client_variables_[&connection][stmt.variable_];
result = client_variables_.at(&connection).at(stmt.variable_);
}
writer.BeginTable();
writer.BeginHeader();
Expand Down
24 changes: 12 additions & 12 deletions src/database/database_engine.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,32 +33,32 @@ class DatabaseEngine {
~DatabaseEngine();

const std::string &GetCurrentDatabase() const;
bool InTransaction(Connection &connection) const;
void ExecuteSql(const std::string &sql, ResultWriter &writer, Connection &connection);
bool InTransaction(const Connection &connection) const;
void ExecuteSql(const std::string &sql, ResultWriter &writer, const Connection &connection);

void Crash();

private:
void Help(ResultWriter &writer);
void Help(ResultWriter &writer) const;

void CreateDatabase(const std::string &db_name, bool exists_ok, ResultWriter &writer);
void ShowDatabases(ResultWriter &writer);
void ShowDatabases(ResultWriter &writer) const;
void ChangeDatabase(const std::string &db_name, ResultWriter &writer);
void DropDatabase(const std::string &db_name, bool missing_ok, ResultWriter &writer);
void CloseDatabase();

void CreateTable(const std::string &table_name, const ColumnList &column_list, ResultWriter &writer);
void DescribeTable(const std::string &table_name, ResultWriter &writer);
void ShowTables(ResultWriter &writer);
void DescribeTable(const std::string &table_name, ResultWriter &writer) const;
void ShowTables(ResultWriter &writer) const;
void DropTable(const std::string &table_name, ResultWriter &writer);

void CreateIndex(const std::string &index_name, const std::string &table_name,
const std::vector<std::string> &column_names, ResultWriter &writer);
void DropIndex(const std::string &index_name, ResultWriter &writer);

void Begin(Connection &connection);
void Commit(Connection &connection);
void Rollback(Connection &connection);
void Begin(const Connection &connection);
void Commit(const Connection &connection);
void Rollback(const Connection &connection);

void Checkpoint();
void Recover();
Expand All @@ -67,7 +67,7 @@ class DatabaseEngine {
void Lock(xid_t xid, const LockStatement &stmt, ResultWriter &writer);

void VariableSet(const Connection &connection, const VariableSetStatement &stmt, ResultWriter &writer);
void VariableShow(const Connection &connection, const VariableShowStatement &stmt, ResultWriter &writer);
void VariableShow(const Connection &connection, const VariableShowStatement &stmt, ResultWriter &writer) const;

void Analyze(const AnalyzeStatement &stmt, ResultWriter &writer);
void Vacuum(const VacuumStatement &stmt, ResultWriter &writer);
Expand All @@ -90,9 +90,9 @@ class DatabaseEngine {
std::unique_ptr<LockManager> lock_manager_;

std::unordered_map<const Connection *, std::unordered_map<std::string, std::string>> client_variables_;
std::unordered_map<Connection *, xid_t> xids_;
std::unordered_map<const Connection *, xid_t> xids_;
std::unordered_map<const Connection *, IsolationLevel> isolation_levels_;
std::unordered_set<Connection *> auto_transaction_set_;
std::unordered_set<const Connection *> auto_transaction_set_;

ForceJoin force_join_ = ForceJoin::NONE;
JoinOrderAlgorithm join_order_algorithm_ = DEFAULT_JOIN_ORDER_ALGORITHM;
Expand Down

0 comments on commit 5a35824

Please sign in to comment.