diff --git a/include/matador/query/intermediates/query_create_intermediate.hpp b/include/matador/query/intermediates/query_create_intermediate.hpp index aaf7592..d507b93 100644 --- a/include/matador/query/intermediates/query_create_intermediate.hpp +++ b/include/matador/query/intermediates/query_create_intermediate.hpp @@ -20,9 +20,9 @@ public: using executable_query::executable_query; executable_query constraints(std::initializer_list constraints); - executable_query constraints(const std::list &restrictions); + executable_query constraints(const std::vector &restrictions); executable_query constraints(std::initializer_list constraints); - executable_query constraints(const std::list &constraints); + executable_query constraints(const std::vector &constraints); }; class query_create_table_intermediate : public query_intermediate { diff --git a/include/matador/query/internal/query_parts.hpp b/include/matador/query/internal/query_parts.hpp index b57818d..a61c207 100644 --- a/include/matador/query/internal/query_parts.hpp +++ b/include/matador/query/internal/query_parts.hpp @@ -448,7 +448,6 @@ public: [[nodiscard]] const std::list& columns() const; -private: void accept(query_part_visitor &visitor) override; private: @@ -457,15 +456,14 @@ private: class query_create_table_constraints_part final : public query_part { public: - explicit query_create_table_constraints_part(const std::list &constraints); + explicit query_create_table_constraints_part(const std::vector &constraints); - [[nodiscard]] const std::list& constraints() const; + [[nodiscard]] const std::vector& constraints() const; -private: void accept(query_part_visitor &visitor) override; private: - std::list constraints_; + std::vector constraints_; }; class query_create_sequence_part final : public query_part { diff --git a/source/orm/query/intermediates/query_create_intermediate.cpp b/source/orm/query/intermediates/query_create_intermediate.cpp index c0a6f5a..8e894b0 100644 --- a/source/orm/query/intermediates/query_create_intermediate.cpp +++ b/source/orm/query/intermediates/query_create_intermediate.cpp @@ -30,20 +30,20 @@ executable_query query_create_intermediate::schema( const std::string& schema_na } executable_query query_create_table_columns_intermediate::constraints(const std::initializer_list constraints) { - return this->constraints(std::list(constraints)); + return this->constraints(std::vector(constraints)); } executable_query query_create_table_columns_intermediate::constraints(const std::initializer_list constraints) { - return this->constraints(std::list(constraints)); + return this->constraints(std::vector(constraints)); } -executable_query query_create_table_columns_intermediate::constraints(const std::list& constraints){ +executable_query query_create_table_columns_intermediate::constraints(const std::vector& constraints){ context_->parts.push_back(std::make_unique(constraints)); return {context_}; } -executable_query query_create_table_columns_intermediate::constraints(const std::list& restrictions) { - std::list constraints; +executable_query query_create_table_columns_intermediate::constraints(const std::vector& restrictions) { + std::vector constraints; for (const auto& restr : restrictions) { if (restr.is_primary_key_constraint()) { constraints.emplace_back(restr.column_name(), restr.owner()->name(), restr.attribute().attributes().options()); diff --git a/source/orm/query/internal/query_parts.cpp b/source/orm/query/internal/query_parts.cpp index 3567f82..6734a89 100644 --- a/source/orm/query/internal/query_parts.cpp +++ b/source/orm/query/internal/query_parts.cpp @@ -431,13 +431,12 @@ void query_create_table_columns_part::accept(query_part_visitor &visitor) { visitor.visit(*this); } -query_create_table_constraints_part::query_create_table_constraints_part( - const std::list &constraints) +query_create_table_constraints_part::query_create_table_constraints_part(const std::vector &constraints) : query_part(sql::dialect_token::Constraint) , constraints_(constraints) { } -const std::list &query_create_table_constraints_part::constraints() const { +const std::vector &query_create_table_constraints_part::constraints() const { return constraints_; }