Merge remote-tracking branch 'origin/feature/matador-ng' into feature/matador-ng

This commit is contained in:
2026-06-15 08:43:20 +02:00
13 changed files with 44 additions and 34 deletions
+1 -1
View File
@@ -28,7 +28,7 @@ public:
[[nodiscard]] std::string name() const;
[[nodiscard]] std::shared_ptr<class object> object() const;
[[nodiscard]] const std::vector<attribute>& attributes() const;
[[nodiscard]] const std::vector<restriction>& constraints() const;
[[nodiscard]] const std::list<restriction>& constraints() const;
[[nodiscard]] bool has_primary_key() const;
[[nodiscard]] const utils::identifier& primary_key() const;
+2 -2
View File
@@ -35,7 +35,7 @@ public:
[[nodiscard]] bool has_constraints() const;
[[nodiscard]] size_t constraint_count() const;
[[nodiscard]] const std::vector<restriction>& constraints() const;
[[nodiscard]] const std::list<restriction>& constraints() const;
friend std::ostream& operator<<(std::ostream& os, const object& obj);
@@ -50,7 +50,7 @@ private:
utils::identifier pk_identifier_;
std::vector<attribute> attributes_;
std::vector<restriction> constraints_;
std::list<restriction> constraints_;
};
}
#endif //MATADOR_OBJECT_HPP
+1 -1
View File
@@ -170,7 +170,7 @@ void object_generator::create_fk_constraint(const std::string& name) const {
return;
}
const auto obj = fk_object<Type>();
restriction pk_constraint(*pk_attr);
restriction pk_constraint(pk_attr->index());
pk_constraint.options_ |= utils::constraints::ForeignKey;
pk_constraint.owner_ = object_;
pk_constraint.reference_ = obj;
+4 -4
View File
@@ -17,17 +17,17 @@ class object;
class restriction {
public:
explicit restriction(const class attribute& attr);
explicit restriction(size_t attr_index);
[[nodiscard]] const class attribute& attribute() const;
[[nodiscard]] size_t attribute_index() const;
[[nodiscard]] std::string column_name() const;
[[nodiscard]] utils::constraints options() const;
[[nodiscard]] std::shared_ptr<object> owner() const;
[[nodiscard]] bool is_primary_key_constraint() const;
[[nodiscard]] bool is_foreign_key_constraint() const;
[[nodiscard]] bool is_unique_constraint() const;
[[nodiscard]] std::string ref_table_name() const;
[[nodiscard]] std::string ref_column_name() const;
friend std::ostream& operator<<(std::ostream& os, const restriction& c);
[[nodiscard]] std::string type_string() const;
@@ -37,7 +37,7 @@ private:
friend class object_generator;
friend class object;
const class attribute& attr_;
const size_t index_;
std::weak_ptr<object> owner_;
std::weak_ptr<object> reference_;
utils::constraints options_{utils::constraints::None};
@@ -20,9 +20,9 @@ public:
using executable_query::executable_query;
executable_query constraints(std::initializer_list<object::restriction> constraints);
executable_query constraints(const std::vector<object::restriction> &restrictions);
executable_query constraints(const std::list<object::restriction> &restrictions);
executable_query constraints(std::initializer_list<table_constraint> constraints);
executable_query constraints(const std::vector<table_constraint> &constraints);
executable_query constraints(const std::list<table_constraint> &constraints);
};
class query_create_table_intermediate : public query_intermediate {
@@ -448,6 +448,7 @@ public:
[[nodiscard]] const std::list<table_column>& columns() const;
private:
void accept(query_part_visitor &visitor) override;
private:
@@ -456,14 +457,15 @@ private:
class query_create_table_constraints_part final : public query_part {
public:
explicit query_create_table_constraints_part(const std::vector<table_constraint> &constraints);
explicit query_create_table_constraints_part(const std::list<table_constraint> &constraints);
[[nodiscard]] const std::vector<table_constraint>& constraints() const;
[[nodiscard]] const std::list<table_constraint>& constraints() const;
private:
void accept(query_part_visitor &visitor) override;
private:
std::vector<table_constraint> constraints_;
std::list<table_constraint> constraints_;
};
class query_create_sequence_part final : public query_part {