pk generator progress and sequence test progress

This commit is contained in:
2026-03-18 15:54:08 +01:00
parent 7996608f62
commit 6423bd505b
25 changed files with 152 additions and 30 deletions
+12 -3
View File
@@ -10,8 +10,7 @@
namespace matador::test {
SequenceFixture::SequenceFixture()
: db(connection::dns)
, repo(db.dialect().default_schema_name()) {
: db(connection::dns) {
REQUIRE(db.open());
}
@@ -20,7 +19,6 @@ SequenceFixture::~SequenceFixture() {
drop_sequence_if_exists(sequences_to_drop.top());
sequences_to_drop.pop();
}
REQUIRE(repo.drop(db));
REQUIRE(db.close());
}
@@ -37,5 +35,16 @@ void SequenceFixture::check_sequence_not_exists(const std::string& sequence_name
}
void SequenceFixture::drop_sequence_if_exists(const std::string& sequence_name) const {
const auto result = db.sequence_exists(sequence_name).and_then([&sequence_name, this](const bool exists) {
if (exists) {
auto res = query::query::drop()
.sequence(sequence_name)
.execute(db);
REQUIRE(res);
this->check_sequence_not_exists(sequence_name);
}
return utils::ok(true);
});
REQUIRE(result);
}
}
-2
View File
@@ -1,7 +1,6 @@
#ifndef MATADOR_SEQUENCE_FIXTURE_HPP
#define MATADOR_SEQUENCE_FIXTURE_HPP
#include "matador/query/schema.hpp"
#include "matador/sql/connection.hpp"
@@ -20,7 +19,6 @@ public:
protected:
sql::connection db;
std::stack <std::string> sequences_to_drop;
query::schema repo;
private:
void drop_sequence_if_exists(const std::string &sequence_name) const;
+8 -1
View File
@@ -7,7 +7,7 @@
using namespace matador::query;
using namespace matador::test;
TEST_CASE_METHOD(SequenceFixture, "", "[sequence]") {
TEST_CASE_METHOD(SequenceFixture, "test create and drop sequence", "[sequence][create][drop]") {
auto result = query::create()
.sequence("person_seq")
.execute(db);
@@ -22,6 +22,13 @@ TEST_CASE_METHOD(SequenceFixture, "", "[sequence]") {
REQUIRE(next_id.is_ok());
REQUIRE(*next_id == 1);
auto curr_id = query::select()
.currval("person_seq")
.fetch_value<uint32_t>(db);
REQUIRE(curr_id.is_ok());
REQUIRE(*curr_id == 1);
result = query::drop()
.sequence("person_seq")
.execute(db);