query/include/matador/query/intermediates/query_create_intermediate.hpp

49 lines
1.6 KiB
C++

#ifndef QUERY_CREATE_INTERMEDIATE_HPP
#define QUERY_CREATE_INTERMEDIATE_HPP
#include "matador/query/intermediates/query_intermediate.hpp"
#include "matador/query/intermediates/executable_query.hpp"
#include "matador/query/table_constraint.hpp"
#include "matador/object/attribute.hpp"
#include "matador/object/restriction.hpp"
#include <list>
namespace matador::query {
class query_create_table_columns_intermediate : public executable_query {
public:
using executable_query::executable_query;
executable_query constraints(std::initializer_list<object::restriction> constraints);
executable_query constraints(const std::list<object::restriction> &restrictions);
executable_query constraints(std::initializer_list<table_constraint> constraints);
executable_query constraints(const std::list<table_constraint> &restrictions);
};
class query_create_table_intermediate : public query_intermediate {
public:
using query_intermediate::query_intermediate;
query_create_table_columns_intermediate columns(std::initializer_list<object::attribute> attributes);
query_create_table_columns_intermediate columns(const std::list<object::attribute> &attributes);
query_create_table_columns_intermediate columns(std::initializer_list<table_column> columns);
query_create_table_columns_intermediate columns(const std::list<table_column> &columns);
};
class query_create_intermediate : public query_intermediate {
public:
query_create_intermediate();
query_create_table_intermediate table(const table &tab);
executable_query schema(const std::string &schema_name);
};
}
#endif //QUERY_CREATE_INTERMEDIATE_HPP