query/source/orm/query/value_extractor.cpp

124 lines
2.7 KiB
C++

#include "matador/query/value_extractor.hpp"
namespace matador::query {
value_extractor::value_extractor(std::vector<utils::database_type> &values)
: values_(values)
{}
void value_extractor::on_primary_key(const char *, std::string &pk, size_t s)
{
utils::data_type_traits<std::string>::bind_value(*this, 0, pk, s);
}
void value_extractor::on_revision(const char *, uint64_t &rev)
{
utils::data_type_traits<uint64_t>::bind_value(*this, 0, rev);
}
void value_extractor::on_attribute(const char *, char *x, const utils::field_attributes &attr)
{
utils::data_type_traits<char*>::bind_value(*this, 0, x, attr.size());
}
void value_extractor::on_attribute(const char *, std::string &x, const utils::field_attributes &attr)
{
utils::data_type_traits<std::string>::bind_value(*this, 0, x, attr.size());
}
void value_extractor::write_value(size_t /*pos*/, const int8_t &x)
{
values_.emplace_back(x);
}
void value_extractor::write_value(size_t /*pos*/, const int16_t &x)
{
values_.emplace_back(x);
}
void value_extractor::write_value(size_t /*pos*/, const int32_t &x)
{
values_.emplace_back(x);
}
void value_extractor::write_value(size_t /*pos*/, const int64_t &x)
{
values_.emplace_back(x);
}
void value_extractor::write_value(size_t /*pos*/, const uint8_t &x)
{
values_.emplace_back(x);
}
void value_extractor::write_value(size_t /*pos*/, const uint16_t &x)
{
values_.emplace_back(x);
}
void value_extractor::write_value(size_t /*pos*/, const uint32_t &x)
{
values_.emplace_back(x);
}
void value_extractor::write_value(size_t /*pos*/, const uint64_t &x)
{
values_.emplace_back(x);
}
void value_extractor::write_value(size_t /*pos*/, const bool &x)
{
values_.emplace_back(x);
}
void value_extractor::write_value(size_t /*pos*/, const float &x)
{
values_.emplace_back(x);
}
void value_extractor::write_value(size_t /*pos*/, const double &x)
{
values_.emplace_back(x);
}
void value_extractor::write_value(size_t /*pos*/, const time &/*x*/)
{
// values_.emplace_back(x);
}
void value_extractor::write_value(size_t /*pos*/, const date &/*x*/)
{
// values_.emplace_back(x);
}
void value_extractor::write_value(size_t /*pos*/, const char *x)
{
values_.emplace_back(x);
}
void value_extractor::write_value(size_t /*pos*/, const char *x, size_t /*size*/)
{
values_.emplace_back(x);
}
void value_extractor::write_value(size_t /*pos*/, const std::string &x)
{
values_.emplace_back(x);
}
void value_extractor::write_value(size_t /*pos*/, const std::string &x, size_t /*size*/)
{
values_.emplace_back(x);
}
void value_extractor::write_value(size_t /*pos*/, const utils::blob &x)
{
values_.emplace_back(x);
}
void value_extractor::write_value(size_t /*pos*/, const utils::value &/*x*/, size_t /*size*/)
{
// values_.emplace_back(x);
}
}