some improvements to dump schema

This commit is contained in:
Sascha Kühl 2026-01-07 09:32:57 +01:00
parent c6747074f5
commit 0bf945cd13
3 changed files with 9 additions and 10 deletions

View File

@ -114,8 +114,8 @@ public:
void dump(std::ostream &os) const; void dump(std::ostream &os) const;
private: private:
[[nodiscard]] sql::query_context build_add_constraint_context(const object::repository_node& node, const object::restriction& cons, const sql::connection &conn) const; [[nodiscard]] static sql::query_context build_add_constraint_context(const object::repository_node& node, const object::restriction& cons, const sql::connection &conn) ;
[[nodiscard]] sql::query_context build_drop_constraint_context(const object::repository_node& node, const object::restriction& cons, const sql::connection &conn) const; [[nodiscard]] static sql::query_context build_drop_constraint_context(const object::repository_node& node, const object::restriction& cons, const sql::connection &conn) ;
void insert_table(const std::type_index& ti, const object::repository_node &node); void insert_table(const std::type_index& ti, const object::repository_node &node);

View File

@ -101,6 +101,7 @@ utils::result<attribute*, utils::error> basic_repository::primary_key_attribute(
} }
void basic_repository::dump(std::ostream &os) const { void basic_repository::dump(std::ostream &os) const {
os << name_ << std::endl;
for (const auto &node : *this) { for (const auto &node : *this) {
dump(os, node); dump(os, node);
} }
@ -108,15 +109,16 @@ void basic_repository::dump(std::ostream &os) const {
} }
void basic_repository::dump( std::ostream& os, const repository_node& node ) { void basic_repository::dump( std::ostream& os, const repository_node& node ) {
os << "node [" << node.name() << "] (" << node.type_index().name() << ")\n"; os << "node [" << node.name() << "]\n";
for (auto it = node.info().endpoint_begin(); it != node.info().endpoint_end(); ++it) { for (auto it = node.info().endpoint_begin(); it != node.info().endpoint_end(); ++it) {
os << " " << node.name() << "::" << it->second->field_name() << " (" << it->second->type_name() << ")"; os << " " << node.name() << "::" << it->second->field_name() << " (" << it->second->type_name() << ")";
if (it->second->foreign_endpoint()) { if (it->second->foreign_endpoint()) {
os << " <---> " << it->second->node().name() << "::" << it->second->foreign_endpoint()->field_name() << " (" << it->second->foreign_endpoint()->type_name() << ")\n"; os << " <---> " << it->second->node().name() << "::" << it->second->foreign_endpoint()->field_name() << " (" << it->second->foreign_endpoint()->type_name() << ")\n";
} else { } else {
os << " -> " << it->second->node().name() << " (type: " << it->second->node().type_index().name() << ")\n"; os << " -> " << it->second->node().name() << " (type: " << it->second->node().name() << ")\n";
} }
} }
os << "\n";
} }
utils::result<repository_node*, utils::error> basic_repository::attach_node(repository_node *node, const std::string &parent) { utils::result<repository_node*, utils::error> basic_repository::attach_node(repository_node *node, const std::string &parent) {

View File

@ -219,15 +219,12 @@ schema::const_iterator schema::find(const std::string &name) const {
} }
void schema::dump(std::ostream &os) const { void schema::dump(std::ostream &os) const {
os << repo_.name() << std::endl; repo_.dump(os);
for (const auto &node: repo_) {
os << " " << node.name() << std::endl;
}
} }
sql::query_context schema::build_add_constraint_context(const object::repository_node &node, sql::query_context schema::build_add_constraint_context(const object::repository_node &node,
const object::restriction &cons, const object::restriction &cons,
const sql::connection &conn) const { const sql::connection &conn) {
if (cons.is_foreign_key_constraint()) { if (cons.is_foreign_key_constraint()) {
return query::query::alter() return query::query::alter()
.table(node.name()) .table(node.name())
@ -245,7 +242,7 @@ sql::query_context schema::build_add_constraint_context(const object::repository
sql::query_context schema::build_drop_constraint_context(const object::repository_node &node, sql::query_context schema::build_drop_constraint_context(const object::repository_node &node,
const object::restriction &cons, const object::restriction &cons,
const sql::connection &conn) const { const sql::connection &conn) {
return query::query::alter() return query::query::alter()
.table(node.name()) .table(node.name())
.drop_constraint(cons) .drop_constraint(cons)