124 lines
2.7 KiB
C++
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);
|
|
}
|
|
|
|
} |