42 lines
865 B
C++
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
|