41 lines
1.1 KiB
C++
41 lines
1.1 KiB
C++
#include "matador/orm/session_query_builder.hpp"
|
|
|
|
#include <iostream>
|
|
|
|
namespace matador::orm {
|
|
|
|
void session_query_builder::on_primary_key(const char *id, std::string &, size_t)
|
|
{
|
|
push(id);
|
|
if (!is_root_entity()) {
|
|
const auto b = pk_.is_varchar();
|
|
std::cout << "is matching primary key: " << std::boolalpha << b << "\n";
|
|
}
|
|
}
|
|
|
|
void session_query_builder::on_revision(const char *id, unsigned long long &/*rev*/)
|
|
{
|
|
push(id);
|
|
}
|
|
|
|
void session_query_builder::push(const std::string &column_name)
|
|
{
|
|
char str[4];
|
|
snprintf(str, 4, "c%02d", ++column_index);
|
|
entity_query_data_.columns.emplace_back(table_info_stack_.top().get().name(), column_name, str);
|
|
}
|
|
|
|
[[nodiscard]] bool session_query_builder::is_root_entity() const {
|
|
return table_info_stack_.size() == 1;
|
|
}
|
|
|
|
void session_query_builder::append_join(const sql::column &left, const sql::column &right)
|
|
{
|
|
using namespace matador::query;
|
|
entity_query_data_.joins.push_back({
|
|
{ right.table_ },
|
|
make_condition(left == right)
|
|
});
|
|
}
|
|
|
|
} |