42 lines
1.5 KiB
C++
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
|