parent
8914c06833
commit
87bd2f8b89
|
|
@ -20,9 +20,9 @@ public:
|
||||||
using executable_query::executable_query;
|
using executable_query::executable_query;
|
||||||
|
|
||||||
executable_query constraints(std::initializer_list<object::restriction> constraints);
|
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(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 {
|
class query_create_table_intermediate : public query_intermediate {
|
||||||
|
|
|
||||||
|
|
@ -448,6 +448,7 @@ public:
|
||||||
|
|
||||||
[[nodiscard]] const std::list<table_column>& columns() const;
|
[[nodiscard]] const std::list<table_column>& columns() const;
|
||||||
|
|
||||||
|
private:
|
||||||
void accept(query_part_visitor &visitor) override;
|
void accept(query_part_visitor &visitor) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
@ -456,14 +457,15 @@ private:
|
||||||
|
|
||||||
class query_create_table_constraints_part final : public query_part {
|
class query_create_table_constraints_part final : public query_part {
|
||||||
public:
|
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;
|
void accept(query_part_visitor &visitor) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::vector<table_constraint> constraints_;
|
std::list<table_constraint> constraints_;
|
||||||
};
|
};
|
||||||
|
|
||||||
class query_create_sequence_part final : public query_part {
|
class query_create_sequence_part final : public query_part {
|
||||||
|
|
|
||||||
|
|
@ -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<object::restriction> constraints) {
|
executable_query query_create_table_columns_intermediate::constraints(const std::initializer_list<object::restriction> constraints) {
|
||||||
return this->constraints(std::vector(constraints));
|
return this->constraints(std::list(constraints));
|
||||||
}
|
}
|
||||||
|
|
||||||
executable_query query_create_table_columns_intermediate::constraints(const std::initializer_list<table_constraint> constraints) {
|
executable_query query_create_table_columns_intermediate::constraints(const std::initializer_list<table_constraint> constraints) {
|
||||||
return this->constraints(std::vector(constraints));
|
return this->constraints(std::list(constraints));
|
||||||
}
|
}
|
||||||
|
|
||||||
executable_query query_create_table_columns_intermediate::constraints(const std::vector<table_constraint>& constraints){
|
executable_query query_create_table_columns_intermediate::constraints(const std::list<table_constraint>& constraints){
|
||||||
context_->parts.push_back(std::make_unique<internal::query_create_table_constraints_part>(constraints));
|
context_->parts.push_back(std::make_unique<internal::query_create_table_constraints_part>(constraints));
|
||||||
return {context_};
|
return {context_};
|
||||||
}
|
}
|
||||||
|
|
||||||
executable_query query_create_table_columns_intermediate::constraints(const std::vector<object::restriction>& restrictions) {
|
executable_query query_create_table_columns_intermediate::constraints(const std::list<object::restriction>& restrictions) {
|
||||||
std::vector<table_constraint> constraints;
|
std::list<table_constraint> constraints;
|
||||||
for (const auto& restr : restrictions) {
|
for (const auto& restr : restrictions) {
|
||||||
if (restr.is_primary_key_constraint()) {
|
if (restr.is_primary_key_constraint()) {
|
||||||
constraints.emplace_back(restr.column_name(), restr.owner()->name(), restr.attribute().attributes().options());
|
constraints.emplace_back(restr.column_name(), restr.owner()->name(), restr.attribute().attributes().options());
|
||||||
|
|
|
||||||
|
|
@ -431,12 +431,13 @@ void query_create_table_columns_part::accept(query_part_visitor &visitor) {
|
||||||
visitor.visit(*this);
|
visitor.visit(*this);
|
||||||
}
|
}
|
||||||
|
|
||||||
query_create_table_constraints_part::query_create_table_constraints_part(const std::vector<class table_constraint> &constraints)
|
query_create_table_constraints_part::query_create_table_constraints_part(
|
||||||
|
const std::list<class table_constraint> &constraints)
|
||||||
: query_part(sql::dialect_token::Constraint)
|
: query_part(sql::dialect_token::Constraint)
|
||||||
, constraints_(constraints) {
|
, constraints_(constraints) {
|
||||||
}
|
}
|
||||||
|
|
||||||
const std::vector<class table_constraint> &query_create_table_constraints_part::constraints() const {
|
const std::list<class table_constraint> &query_create_table_constraints_part::constraints() const {
|
||||||
return constraints_;
|
return constraints_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue