column, placeholder and column_value generator progress

This commit is contained in:
Sascha Kühl
2025-11-12 15:53:03 +01:00
parent 9e76203bc9
commit 1c5b2b21b0
16 changed files with 93 additions and 236 deletions
+6 -11
View File
@@ -3,9 +3,9 @@
#include "matador/object/attribute_definition.hpp"
#include "matador/sql/connection.hpp"
#include "matador/sql/column_generator.hpp"
#include "matador/query/criteria.hpp"
#include "matador/query/generator.hpp"
#include "matador/query/query.hpp"
#include "matador/object/object_ptr.hpp"
@@ -47,19 +47,14 @@ protected:
};
};
// template<class Type>
// std::vector<matador::utils::placeholder> to_placeholder() {
// return placeholder_generator::generate<Type>();
// }
TEST_CASE_METHOD(StatementTestFixture, "Create prepared statement", "[statement]") {
using namespace matador::utils;
REQUIRE(repo.attach<airplane>("airplane"));
table ap{"airplane"};
SECTION("Insert with prepared statement and placeholder") {
auto stmt = query::insert()
.into("airplane", generator::placeholder<airplane>())
// .into("airplane", column_generator::generate<airplane>(repo, true))
.values<airplane>()
.into("airplane", generator::columns<airplane>(repo))
.values(generator::placeholders<airplane>())
.prepare(db);
REQUIRE(stmt.is_ok());
@@ -70,7 +65,7 @@ TEST_CASE_METHOD(StatementTestFixture, "Create prepared statement", "[statement]
stmt->reset();
}
auto result = query::select(column_generator::generate<airplane>(repo, true))
auto result = query::select(generator::columns<airplane>(repo))
.from(ap)
.fetch_all<airplane>(db);
@@ -86,14 +81,14 @@ TEST_CASE_METHOD(StatementTestFixture, "Create prepared statement", "[statement]
SECTION("Select with prepared statement") {
for (const auto &plane: planes) {
auto res = query::insert()
.into("airplane", column_generator::generate<airplane>(repo, true))
.into("airplane", generator::columns<airplane>(repo))
.values(*plane)
.execute(db);
REQUIRE(res.is_ok());
REQUIRE(*res == 1);
}
auto stmt = query::select(column_generator::generate<airplane>(repo, true))
auto stmt = query::select(generator::columns<airplane>(repo))
.from(ap)
.where("brand"_col == _)
.prepare(db);