#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/query/table_column.hpp" #include "matador/object/attribute.hpp" #include "matador/object/restriction.hpp" #include namespace matador::query { class table; class query_create_table_columns_intermediate : public executable_query { public: using executable_query::executable_query; executable_query constraints(std::initializer_list constraints); executable_query constraints(const std::list &restrictions); executable_query constraints(std::initializer_list constraints); executable_query constraints(const std::list &constraints); }; class query_create_table_intermediate : public query_intermediate { public: using query_intermediate::query_intermediate; query_create_table_columns_intermediate columns(std::initializer_list attributes); query_create_table_columns_intermediate columns(const std::vector &attributes); query_create_table_columns_intermediate columns(std::initializer_list columns); query_create_table_columns_intermediate columns(const std::list &columns); query_create_table_columns_intermediate columns(const std::vector &columns); }; class query_create_sequence_intermediate : public executable_query { public: using executable_query::executable_query; }; class query_create_intermediate : public query_intermediate { public: query_create_intermediate(); query_create_table_intermediate table(const table &tab); query_create_sequence_intermediate sequence(const std::string &sequence_name); executable_query schema(const std::string &schema_name); }; } #endif //QUERY_CREATE_INTERMEDIATE_HPP