sequence progress
This commit is contained in:
parent
86c9e6b1cd
commit
53b10fd1f9
|
|
@ -36,6 +36,7 @@ set(TEST_SOURCES
|
|||
../../../test/models/model_metas.hpp
|
||||
../../../test/backends/SequenceFixture.hpp
|
||||
../../../test/backends/SequenceFixture.cpp
|
||||
../../../test/backends/SequenceTest.cpp
|
||||
)
|
||||
|
||||
set(LIBRARY_TEST_TARGET PostgresTests)
|
||||
|
|
|
|||
|
|
@ -164,7 +164,7 @@ utils::result<bool, utils::error> connection::exists(const std::string &table_na
|
|||
}
|
||||
|
||||
utils::result<bool, utils::error> connection::sequence_exists(const std::string& sequence_name) const {
|
||||
return connection_->sequence_exists(sequence_name);
|
||||
return connection_->sequence_exists(dialect().default_schema_name(), sequence_name);
|
||||
}
|
||||
|
||||
bool has_unknown_columns(const std::vector<object::attribute> &columns) {
|
||||
|
|
|
|||
|
|
@ -16,18 +16,24 @@ SequenceFixture::SequenceFixture()
|
|||
}
|
||||
|
||||
SequenceFixture::~SequenceFixture() {
|
||||
while (!sequences_to_drop.empty()) {
|
||||
drop_sequence_if_exists(sequences_to_drop.top());
|
||||
sequences_to_drop.pop();
|
||||
}
|
||||
REQUIRE(repo.drop(db));
|
||||
REQUIRE(db.close());
|
||||
while (!sequences_to_drop.empty()) {
|
||||
drop_sequence_if_exists(sequences_to_drop.top());
|
||||
sequences_to_drop.pop();
|
||||
}
|
||||
REQUIRE(repo.drop(db));
|
||||
REQUIRE(db.close());
|
||||
}
|
||||
|
||||
void SequenceFixture::check_sequence_exists(const std::string& sequence_name) const {
|
||||
auto result = db.sequence_exists(sequence_name);
|
||||
REQUIRE(result.is_ok());
|
||||
REQUIRE(*result);
|
||||
}
|
||||
|
||||
void SequenceFixture::check_sequence_not_exists(const std::string& sequence_name) const {
|
||||
auto result = db.sequence_exists(sequence_name);
|
||||
REQUIRE(result.is_ok());
|
||||
REQUIRE(!*result);
|
||||
}
|
||||
|
||||
void SequenceFixture::drop_sequence_if_exists(const std::string& sequence_name) const {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,29 @@
|
|||
#include "catch2/catch_test_macros.hpp"
|
||||
|
||||
#include "matador/query/query.hpp"
|
||||
|
||||
#include "SequenceFixture.hpp"
|
||||
|
||||
using namespace matador::query;
|
||||
using namespace matador::test;
|
||||
|
||||
TEST_CASE_METHOD(SequenceFixture, "", "[sequence]") {
|
||||
auto result = query::create()
|
||||
.sequence("person_seq")
|
||||
.execute(db);
|
||||
REQUIRE(result.is_ok());
|
||||
|
||||
sequences_to_drop.emplace("person_seq");
|
||||
|
||||
auto next_id = query::select()
|
||||
.nextval("person_seq")
|
||||
.fetch_value<uint32_t>(db);
|
||||
|
||||
REQUIRE(next_id.is_ok());
|
||||
REQUIRE(*next_id == 1);
|
||||
|
||||
result = query::drop()
|
||||
.sequence("person_seq")
|
||||
.execute(db);
|
||||
REQUIRE(result.is_ok());
|
||||
}
|
||||
Loading…
Reference in New Issue