query/include/matador/sql/table.hpp

42 lines
865 B
C++

#ifndef QUERY_TABLE_HPP
#define QUERY_TABLE_HPP
#include "matador/sql/column.hpp"
#include <typeindex>
#include <string>
#include <vector>
namespace matador::sql {
struct table
{
table(const char *name, std::string as = "") // NOLINT(*-explicit-constructor)
: name(name), alias(std::move(as)) {}
table(std::string name, std::string as = "") // NOLINT(*-explicit-constructor)
: name(std::move(name))
, alias(std::move(as)) {}
table(std::string name, std::string as, const std::vector<column> &columns)
: name(std::move(name))
, alias(std::move(as))
, columns(columns) {}
table& as(const std::string &a) {
alias = a;
return *this;
}
[[nodiscard]] table as(const std::string &a) const {
return { name, a, columns };
}
std::string name;
std::string alias;
std::vector<column> columns;
};
}
#endif //QUERY_TABLE_HPP