session progress

This commit is contained in:
2026-04-26 15:50:11 +02:00
parent 656d045ccf
commit 75d5cba6c3
25 changed files with 191 additions and 175 deletions
+11 -11
View File
@@ -34,7 +34,7 @@ utils::result<void, utils::error> postgres_connection::open() {
const std::string msg = PQerrorMessage(conn_);
PQfinish(conn_);
conn_ = nullptr;
return utils::failure(make_error(sql::error_code::OPEN_ERROR, nullptr, conn_, "Failed to connect"));
return utils::failure(make_error(sql::error_code::OpenError, nullptr, conn_, "Failed to connect"));
}
return utils::ok<void>();
@@ -70,7 +70,7 @@ utils::result<utils::version, utils::error> postgres_connection::server_version(
const auto server_version = PQserverVersion(conn_);
if (server_version == 0) {
return utils::failure(make_error(sql::error_code::FAILURE, nullptr, conn_, "Failed to get server version"));
return utils::failure(make_error(sql::error_code::Failure, nullptr, conn_, "Failed to get server version"));
}
return utils::ok(utils::version{
@@ -86,7 +86,7 @@ utils::result<std::unique_ptr<sql::query_result_impl>, utils::error> postgres_co
PGresult *res = PQexec(conn_, context.sql.c_str());
if (is_result_error(res)) {
const auto err = make_error(sql::error_code::FETCH_FAILED, res, conn_, "Failed to fetch", context.sql);
const auto err = make_error(sql::error_code::FetchFailed, res, conn_, "Failed to fetch", context.sql);
PQclear(res);
return utils::failure(err);
}
@@ -95,7 +95,7 @@ utils::result<std::unique_ptr<sql::query_result_impl>, utils::error> postgres_co
const int num_col = PQnfields(res);
if (prototype.size() != static_cast<size_t>(num_col)) {
const auto err = make_error(sql::error_code::FETCH_FAILED, res, conn_, "Number of received columns doesn't match expected columns.", context.sql);
const auto err = make_error(sql::error_code::FetchFailed, res, conn_, "Number of received columns doesn't match expected columns.", context.sql);
PQclear(res);
return utils::failure(err);
}
@@ -133,7 +133,7 @@ utils::result<sql::execute_result, utils::error> postgres_connection::execute(co
PGresult *res = PQexec(conn_, stmt.c_str());
if (const auto status = PQresultStatus(res); status != PGRES_COMMAND_OK && status != PGRES_TUPLES_OK) {
return utils::failure(make_error(sql::error_code::FAILURE, res, conn_, "Failed to execute", stmt));
return utils::failure(make_error(sql::error_code::Failure, res, conn_, "Failed to execute", stmt));
}
const size_t affected_rows = utils::to<size_t>(PQcmdTuples(res));
@@ -149,7 +149,7 @@ utils::result<std::unique_ptr<sql::statement_impl>, utils::error> postgres_conne
PGresult *result = PQprepare(conn_, statement_name.c_str(), context.sql.c_str(), static_cast<int>(context.bind_vars.size()), nullptr);
if (is_result_error(result)) {
return utils::failure(make_error(sql::error_code::PREPARE_FAILED, result, conn_, "Failed to prepare", context.sql));
return utils::failure(make_error(sql::error_code::PrepareFailed, result, conn_, "Failed to prepare", context.sql));
}
std::unique_ptr<sql::statement_impl> s(std::make_unique<postgres_statement>(conn_, result, statement_name, context));
@@ -161,7 +161,7 @@ utils::result<sql::execute_result, utils::error> postgres_connection::execute(co
PGresult *res = PQexec(conn_, context.sql.c_str());
if (const auto status = PQresultStatus(res); status != PGRES_COMMAND_OK && status != PGRES_TUPLES_OK) {
return utils::failure(make_error(sql::error_code::FAILURE, res, conn_, "Failed to execute", context.sql));
return utils::failure(make_error(sql::error_code::Failure, res, conn_, "Failed to execute", context.sql));
}
const size_t affected_rows = utils::to<size_t>(PQcmdTuples(res));
@@ -256,7 +256,7 @@ utils::result<std::vector<object::attribute>, utils::error> postgres_connection:
PGresult *res = PQexec(conn_, stmt.c_str());
if (is_result_error(res)) {
return utils::failure(make_error(sql::error_code::DESCRIBE_FAILED, res, conn_, "Failed to describe", stmt));
return utils::failure(make_error(sql::error_code::DescribeFailed, res, conn_, "Failed to describe", stmt));
}
postgres_result_reader reader(res);
@@ -297,13 +297,13 @@ utils::result<bool, utils::error> postgres_connection::exists(const std::string
PGresult *res = PQexec(conn_, stmt.c_str());
if (is_result_error(res)) {
return utils::failure(make_error(sql::error_code::TABLE_EXISTS_FAILED, res, conn_, "Failed check if table exists", stmt));
return utils::failure(make_error(sql::error_code::TableExistsFailed, res, conn_, "Failed check if table exists", stmt));
}
const auto result = utils::to<size_t>(PQcmdTuples(res));
if (!result) {
PQclear(res);
return utils::failure(make_error(sql::error_code::FAILURE, res, conn_, "Failed to convert result value", stmt));
return utils::failure(make_error(sql::error_code::Failure, res, conn_, "Failed to convert result value", stmt));
}
PQclear(res);
@@ -315,7 +315,7 @@ utils::result<bool, utils::error> postgres_connection::sequence_exists(const std
PGresult* res = PQexec(conn_, sql.c_str());
if (PQresultStatus(res) != PGRES_TUPLES_OK) {
return utils::failure(make_error(sql::error_code::SEQUENCE_EXISTS_FAILED, res, conn_, "Failed check if sequence exists", sql));
return utils::failure(make_error(sql::error_code::SequenceExistsFailed, res, conn_, "Failed check if sequence exists", sql));
}
const bool exists = PQgetisnull(res, 0, 0) ? false : true;