added join_column_index and inverse_join_column_index to object and table classes

This commit is contained in:
2026-06-01 06:57:38 +02:00
parent bd06034ebf
commit cea7b97f2b
16 changed files with 164 additions and 75 deletions
+17 -5
View File
@@ -10,8 +10,8 @@ const attribute& object::create_attribute(std::string name, const std::shared_pt
return obj->attributes_.emplace_back(std::move(attr));
}
attribute* object::primary_key_attribute() const {
return pk_attribute_;
const attribute* object::primary_key_attribute() const {
return pk_column_index_ != -1 ? &attributes_.at(pk_column_index_) : nullptr;
}
const utils::identifier& object::primary_key() const {
@@ -19,7 +19,19 @@ const utils::identifier& object::primary_key() const {
}
bool object::has_primary_key() const {
return pk_attribute_ != nullptr;
return pk_column_index_ != -1;
}
bool object::is_relation_object() const {
return join_column_index_ != -1 && inverse_join_column_index_ != -1;
}
const attribute * object::join_attribute() const {
return join_column_index_ != -1 ? &attributes_.at(join_column_index_) : nullptr;
}
const attribute * object::inverse_join_attribute() const {
return inverse_join_column_index_ != -1 ? &attributes_.at(inverse_join_column_index_) : nullptr;
}
const std::string& object::name() const {
@@ -38,7 +50,7 @@ size_t object::attribute_count() const {
return attributes_.size();
}
const std::list<attribute>& object::attributes() const {
const std::vector<attribute>& object::attributes() const {
return attributes_;
}
@@ -50,7 +62,7 @@ size_t object::constraint_count() const {
return constraints_.size();
}
const std::list<restriction>& object::constraints() const {
const std::vector<restriction>& object::constraints() const {
return constraints_;
}