35 lines
1.1 KiB
C++
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;
|
|
}
|
|
} |