added InsertQueryBuilderTest.cpp
This commit is contained in:
@@ -3,6 +3,8 @@
|
||||
|
||||
#include "matador/query/basic_schema.hpp"
|
||||
#include "matador/query/intermediates/executable_query.hpp"
|
||||
#include "matador/query/query.hpp"
|
||||
#include "matador/query/query_builder_exception.hpp"
|
||||
|
||||
namespace matador::query {
|
||||
class insert_query_builder {
|
||||
@@ -10,25 +12,22 @@ public:
|
||||
explicit insert_query_builder(const basic_schema &schema);
|
||||
|
||||
template<class EntityType>
|
||||
utils::result<executable_query, utils::error> build(const object::object_ptr<EntityType> &ptr) {
|
||||
utils::result<std::vector<executable_query>, query_build_error> build(const object::object_ptr<EntityType> &ptr) {
|
||||
const auto it = schema_.find(typeid(EntityType));
|
||||
if (it == schema_.end()) {
|
||||
return utils::failure(query_build_error::UnknownType);
|
||||
}
|
||||
|
||||
executable_query q = query::query::insert().into(it->second.table()).values(*ptr);
|
||||
return utils::ok(std::vector{q});
|
||||
}
|
||||
|
||||
template < class V >
|
||||
void on_primary_key(const char *id, V &, const utils::primary_key_attribute& /*attr*/ = utils::default_pk_attributes) {
|
||||
push(id);
|
||||
if (!is_root_entity()) {
|
||||
return;
|
||||
}
|
||||
entity_query_data_.pk_column_name = id;
|
||||
}
|
||||
|
||||
void on_revision(const char *id, uint64_t &/*rev*/);
|
||||
static void on_primary_key(const char *id, V &, const utils::primary_key_attribute& /*attr*/ = utils::default_pk_attributes) {}
|
||||
static void on_revision(const char *id, uint64_t &/*rev*/);
|
||||
|
||||
template<typename Type>
|
||||
void on_attribute(const char *id, Type &, const utils::field_attributes &/*attr*/ = utils::null_attributes)
|
||||
{
|
||||
push(id);
|
||||
}
|
||||
static void on_attribute(const char *id, Type &, const utils::field_attributes &/*attr*/ = utils::null_attributes) {}
|
||||
|
||||
template<class Pointer>
|
||||
void on_belongs_to(const char *id, Pointer &obj, const utils::foreign_attributes &attr) {
|
||||
|
||||
@@ -249,7 +249,7 @@ public:
|
||||
);
|
||||
}
|
||||
|
||||
const select_query_data &query_data() const;
|
||||
[[nodiscard]] const select_query_data &query_data() const;
|
||||
|
||||
private:
|
||||
template<class Pointer>
|
||||
|
||||
Reference in New Issue
Block a user