primary key generator progress: added primary_key_generator_finder

This commit is contained in:
2026-02-17 22:43:53 +01:00
parent 38dc42ade8
commit 0876535b44
10 changed files with 241 additions and 12 deletions
@@ -0,0 +1,11 @@
#ifndef MATADOR_ABSTRACT_PK_GENERATOR_HPP
#define MATADOR_ABSTRACT_PK_GENERATOR_HPP
namespace matador::query {
class abstract_pk_generator {
public:
virtual ~abstract_pk_generator() = default;
virtual unsigned int generate() = 0;
};
}
#endif //MATADOR_ABSTRACT_PK_GENERATOR_HPP
+6 -1
View File
@@ -3,8 +3,9 @@
#include "matador/sql/executor.hpp"
namespace matador::query {
schema_node::schema_node(class table tab, const object::repository_node& node)
schema_node::schema_node(class table tab, utils::generator_type generator_type, const object::repository_node& node)
: table_(std::move(tab))
, generator_type_(generator_type)
, node_(std::move(node)) {
}
@@ -16,6 +17,10 @@ const table &schema_node::table() const {
return table_;
}
utils::generator_type schema_node::generator_type() const {
return generator_type_;
}
const object::repository_node& schema_node::node() const {
return node_;
}
+2 -2
View File
@@ -165,11 +165,11 @@ sql::query_context schema::build_drop_constraint_context(const object::repositor
.compile(conn);
}
schema::iterator schema::insert_table(const std::type_index &ti, const object::repository_node &node) {
schema::iterator schema::insert_table(const std::type_index &ti, const object::repository_node &node, const utils::generator_type generator_type) {
std::vector<table_column> columns;
for (const auto &attr: node.info().attributes()) {
columns.emplace_back(nullptr, attr.name(), attr.type(), attr.attributes());
}
return schema_nodes_.insert({ti, schema_node{table(node.name(), columns), node}}).first;
return schema_nodes_.insert({ti, schema_node{table(node.name(), columns), generator_type, node}}).first;
}
} // namespace matador::query