query/include/matador/query/intermediates/query_alter_table_intermedi...

42 lines
1.5 KiB
C++

#ifndef MATADOR_QUERY_ALTER_TABLE_INTERMEDIATE_HPP
#define MATADOR_QUERY_ALTER_TABLE_INTERMEDIATE_HPP
#include "executable_query.hpp"
#include "matador/query/intermediates/query_intermediate.hpp"
namespace matador::query {
class query_add_primary_key_constraint_intermediate final : public query_intermediate {
public:
};
class query_add_foreign_key_constraint_intermediate final : public query_intermediate {
public:
using query_intermediate::query_intermediate;
executable_query references(const table& tab, const std::vector<column>& columns = {});
private:
table table_;
std::vector<column> columns_;
};
class query_add_key_constraint_intermediate final : public query_intermediate {
public:
using query_intermediate::query_intermediate;
[[nodiscard]] query_add_primary_key_constraint_intermediate primary_key(const column& col) const;
[[nodiscard]] query_add_primary_key_constraint_intermediate primary_keys(const std::vector<column>& columns) const;
[[nodiscard]] query_add_foreign_key_constraint_intermediate foreign_key(const column& col) const;
[[nodiscard]] query_add_foreign_key_constraint_intermediate foreign_keys(const std::vector<column>& columns) const;
};
class query_alter_table_intermediate final : public query_intermediate {
public:
using query_intermediate::query_intermediate;
query_add_key_constraint_intermediate add_constraint(const std::string& name);
executable_query drop_constraint(const std::string& name);
};
}
#endif //MATADOR_QUERY_ALTER_TABLE_INTERMEDIATE_HPP