34 lines
1.1 KiB
C++
34 lines
1.1 KiB
C++
#include "matador/query/intermediates/executable_query.hpp"
|
|
#include "matador/query/query_compiler.hpp"
|
|
|
|
#include "matador/sql/executor.hpp"
|
|
#include "matador/sql/statement.hpp"
|
|
|
|
namespace matador::query {
|
|
|
|
utils::result<size_t, utils::error> executable_query::execute(const sql::executor &exec) const {
|
|
query_compiler compiler;
|
|
context_->mode = query_mode::Direct;
|
|
return exec.execute(compiler.compile(*context_, exec.dialect(), std::nullopt));
|
|
}
|
|
|
|
utils::result<sql::statement, utils::error> executable_query::prepare(sql::prepared_executor &exec) const {
|
|
query_compiler compiler;
|
|
context_->mode = query_mode::Prepared;
|
|
return exec.prepare(compiler.compile(*context_, exec.dialect(), std::nullopt));
|
|
}
|
|
|
|
sql::query_context executable_query::compile( const sql::executor& exec ) const {
|
|
query_compiler compiler;
|
|
context_->mode = query_mode::Prepared;
|
|
return compiler.compile(*context_, exec.dialect(), std::nullopt);
|
|
}
|
|
|
|
std::string executable_query::str(const sql::executor &exec) const {
|
|
query_compiler compiler;
|
|
context_->mode = query_mode::Direct;
|
|
return exec.str(compiler.compile(*context_, exec.dialect(), std::nullopt));
|
|
}
|
|
|
|
}
|