query/src/sql/column_generator.cpp

31 lines
798 B
C++

#include "matador/sql/column_generator.hpp"
#include "matador/sql/table_repository.hpp"
namespace matador::sql {
column_generator::column_generator(std::vector<column> &columns, const table_repository &repo)
: columns_(columns)
, repo_(repo)
{}
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);
}
std::pair<std::string, std::string> column_generator::determine_foreign_ref(const std::type_index &ti)
{
return repo_.reference(ti);
}
void fk_column_generator::on_primary_key(const char *, std::string &, size_t size)
{
type_ = data_type_traits<std::string>::builtin_type(size);
}
}