fixed backend test compilation

This commit is contained in:
Sascha Kühl
2025-02-12 16:01:52 +01:00
parent 42acaf24ce
commit 5d41a592bb
36 changed files with 727 additions and 575 deletions
@@ -25,11 +25,10 @@ protected:
public:
template < class Type >
utils::result<sql::query_result<Type>, utils::error> fetch_all(sql::executor &exec)
{
utils::result<sql::query_result<Type>, utils::error> fetch_all(sql::executor &exec) {
auto result = fetch(exec);
if (!result.is_ok()) {
return utils::error(result.err());
return utils::failure(result.err());
}
return utils::ok(sql::query_result<Type>(result.release()));
@@ -41,7 +40,7 @@ public:
{
auto result = fetch(exec);
if (!result.is_ok()) {
return utils::error(result.err());
return utils::failure(result.err());
}
auto objects = sql::query_result<Type>(result.release());
@@ -5,6 +5,8 @@
#include "matador/query/intermediates/executable_query.hpp"
#include "matador/object/attribute_definition_generator.hpp"
namespace matador::query {
class query_create_intermediate : public query_intermediate
@@ -14,11 +16,10 @@ public:
executable_query table(const sql::table &table, std::initializer_list<object::attribute_definition> columns);
executable_query table(const sql::table &table, const std::vector<object::attribute_definition> &columns);
// template<class Type>
// executable_query table(const sql::table &table, const sql::schema &schema)
// {
// return this->table(table, column_definition_generator::generate<Type>(schema));
// }
template<class Type>
executable_query table(const sql::table &table, const object::schema &schema) {
return this->table(table, object::attribute_definition_generator::generate<Type>(schema));
}
};
}
@@ -2,20 +2,21 @@
#define QUERY_INSERT_INTERMEDIATE_HPP
#include "matador/query/intermediates/query_intermediate.hpp"
#include "matador/query/intermediates/query_into_intermediate.hpp"
#include "matador/sql/column_generator.hpp"
namespace matador::query {
class query_into_intermediate;
class query_insert_intermediate : public query_intermediate
{
public:
query_insert_intermediate();
// template<class Type>
// query_into_intermediate into(const sql::table &table, const sql::schema &schema) {
// return into(table, column_generator::generate<Type>(schema));
// }
template<class Type>
query_into_intermediate into(const sql::table &table, const object::schema &schema) {
return into(table, sql::column_generator::generate<Type>(schema));
}
query_into_intermediate into(const sql::table &table, std::initializer_list<sql::column> columns);
query_into_intermediate into(const sql::table &table, std::vector<sql::column> &&columns);
query_into_intermediate into(const sql::table &table, const std::vector<std::string> &column_names);
@@ -9,15 +9,6 @@
namespace matador::query {
// template < class Type >
// std::vector<utils::any_type> as_placeholder(const Type &obj)
// {
// placeholder_generator generator;
// access::process(generator, obj);
// return generator.placeholder_values;
// \}
class query_into_intermediate : public query_intermediate
{
public:
@@ -25,16 +16,15 @@ public:
executable_query values(std::initializer_list<std::variant<utils::placeholder, utils::database_type>> values);
executable_query values(std::vector<std::variant<utils::placeholder, utils::database_type>> &&values);
// template<class Type>
// executable_query values()
// {
// Type obj;
// return values(std::move(as_placeholder(obj)));
// }
executable_query values(std::vector<utils::database_type> &&values);
template<class Type>
executable_query values(const Type &obj)
{
return values(std::move(value_extractor::extract(obj)));
executable_query values() {
Type obj;
return values(obj);
}
template<class Type>
executable_query values(const Type &obj) {
return values(value_extractor::extract(obj));
}
};
@@ -11,31 +11,19 @@
namespace matador::query {
// template < class Type >
// std::vector<internal::key_value_pair> as_key_value_placeholder(const Type &obj)
// {
// placeholder_key_value_generator generator;
// access::process(generator, obj);
//
// return generator.placeholder_values;
// }
class query_update_intermediate : public query_intermediate
{
class query_update_intermediate : public query_intermediate {
public:
explicit query_update_intermediate(const sql::table& table);
query_set_intermediate set(std::initializer_list<internal::key_value_pair> columns);
query_set_intermediate set(std::vector<internal::key_value_pair> &&columns);
// template<class Type>
// query_set_intermediate set()
// {
// Type obj;
// return set(std::move(as_key_value_placeholder(obj)));
// }
template<class Type>
query_set_intermediate set(const Type &obj)
{
query_set_intermediate set() {
Type obj;
return set(obj);
}
template<class Type>
query_set_intermediate set(const Type &obj) {
return set(key_value_generator::generate(obj));
}
};
+6 -4
View File
@@ -3,6 +3,8 @@
#include "matador/query/query_intermediates.hpp"
#include "matador/sql/column_generator.hpp"
namespace matador::sql {
class connection;
}
@@ -22,10 +24,10 @@ public:
[[nodiscard]] static query_select_intermediate select(const std::vector<sql::column>& columns);
[[nodiscard]] static query_select_intermediate select(const std::vector<std::string> &column_names);
[[nodiscard]] static query_select_intermediate select(std::vector<sql::column> columns, std::initializer_list<sql::column> additional_columns);
// template<class Type>
// [[nodiscard]] static query_select_intermediate select(const sql::schema &schema) {
// return select(sql::column_generator::generate<Type>(schema));
// }
template<class Type>
[[nodiscard]] static query_select_intermediate select(const object::schema &schema) {
return select(sql::column_generator::generate<Type>(schema));
}
[[nodiscard]] static query_insert_intermediate insert();
[[nodiscard]] static query_update_intermediate update(const sql::table &table);
[[nodiscard]] static query_delete_intermediate remove();
+1 -2
View File
@@ -17,8 +17,7 @@ private:
public:
template < class Type >
static std::vector<utils::database_type> extract(const Type &type)
{
static std::vector<utils::database_type> extract(const Type &type) {
std::vector<utils::database_type> values;
value_extractor gen(values);
access::process(gen, type);