query/source/orm/query/query_utils.cpp

35 lines
1.1 KiB
C++

#include "matador/query/query_utils.hpp"
#include "matador/query/table.hpp"
#include "matador/query/internal/string_builder_utils.hpp"
namespace matador::query {
std::string prepare_identifier(const sql::dialect& d, const table_column& col) {
std::string result;
if (!col.is_function()) {
prepare_identifier_string_append(result, col.name(), d);
} else {
if (col.column_name() == d.asterisk()) {
result = d.sql_function_at(col.function()) + "(" + col.column_name() + ")";
} else {
result = d.sql_function_at(col.function()) + "(" + col.column_name() + ") " + d.as() + " " + col.alias();
}
}
return result;
}
std::string prepare_criteria(const sql::dialect& d, const table_column& col) {
std::string result;
if (!col.is_function()) {
prepare_identifier_string_append(result, col.name(), d);
} else {
if (col.column_name() == d.asterisk()) {
result = d.sql_function_at(col.function()) + "(" + col.column_name() + ")";
} else {
result = d.sql_function_at(col.function()) + "(" + col.column_name() + ") " + d.as() + " " + col.alias();
}
}
return result;
}
}