added column generator and tests
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
#include "matador/sql/column_generator.hpp"
|
||||
|
||||
namespace matador::sql {
|
||||
|
||||
column_generator::column_generator(std::vector<column> &columns)
|
||||
: columns_(columns) {}
|
||||
|
||||
void column_generator::on_primary_key(const char *id, std::string &pk, size_t size)
|
||||
{
|
||||
on_attribute(id, pk, { size, utils::constraints::PRIMARY_KEY });
|
||||
}
|
||||
|
||||
void column_generator::on_revision(const char *id, unsigned long long int &x)
|
||||
{
|
||||
on_attribute(id, x);
|
||||
}
|
||||
|
||||
void column_generator::on_belongs_to(const char *id, utils::identifiable &x, utils::cascade_type)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void column_generator::on_has_one(const char *id, utils::identifiable &x, utils::cascade_type)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
+15
-10
@@ -143,7 +143,12 @@ query_builder& query_builder::remove() {
|
||||
return *this;
|
||||
}
|
||||
|
||||
query_builder& query_builder::table(const std::string &table, std::initializer_list<column> columns) {
|
||||
query_builder& query_builder::table(const std::string &table, std::initializer_list<column> columns)
|
||||
{
|
||||
return this->table(table, std::vector<column>{columns});
|
||||
}
|
||||
|
||||
query_builder &query_builder::table(const std::string &table, const std::vector<column> &columns) {
|
||||
transition_to(state_t::QUERY_TABLE_CREATE);
|
||||
|
||||
query_parts_.emplace_back(" " + dialect_.token_at(dialect::token_t::TABLE) + " " + dialect_.prepare_identifier(table) + " ");
|
||||
@@ -151,16 +156,16 @@ query_builder& query_builder::table(const std::string &table, std::initializer_l
|
||||
std::string result = "(";
|
||||
|
||||
if (columns.size() < 2) {
|
||||
for (const auto &col : columns) {
|
||||
result.append(build_create_column(col, dialect_));
|
||||
}
|
||||
for (const auto &col : columns) {
|
||||
result.append(build_create_column(col, dialect_));
|
||||
}
|
||||
} else {
|
||||
auto it = columns.begin();
|
||||
result.append(build_create_column(*it++, dialect_));
|
||||
for (; it != columns.end(); ++it) {
|
||||
result.append(", ");
|
||||
result.append(build_create_column(*it, dialect_));
|
||||
}
|
||||
auto it = columns.begin();
|
||||
result.append(build_create_column(*it++, dialect_));
|
||||
for (; it != columns.end(); ++it) {
|
||||
result.append(", ");
|
||||
result.append(build_create_column(*it, dialect_));
|
||||
}
|
||||
}
|
||||
|
||||
result += ")";
|
||||
|
||||
Reference in New Issue
Block a user