lazy loading progress
This commit is contained in:
parent
1370eafac4
commit
18d21eb1c6
|
|
@ -280,14 +280,14 @@ void session_query_builder::on_foreign_object(const char *id, Pointer &, const u
|
||||||
sql::column{next->second, pk->name()}
|
sql::column{next->second, pk->name()}
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
// using namespace matador::utils;
|
|
||||||
// using namespace matador::query;
|
|
||||||
push(id);
|
push(id);
|
||||||
|
using namespace matador::utils;
|
||||||
|
using namespace matador::query;
|
||||||
// create select query
|
// create select query
|
||||||
// const auto result = matador::query::query::select<typename Pointer::value_type>(schema_)
|
const auto result = matador::query::query::select<typename Pointer::value_type>(schema_)
|
||||||
// .from(*foreign_table)
|
.from(*foreign_table)
|
||||||
// .where(sql::column(foreign_table, id, "") == _)
|
.where(sql::column(foreign_table, id, "") == _)
|
||||||
// .prepare();
|
.com;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -71,6 +71,7 @@ public:
|
||||||
[[nodiscard]] utils::result<sql::statement, utils::error> prepare(sql::executor &exec) const;
|
[[nodiscard]] utils::result<sql::statement, utils::error> prepare(sql::executor &exec) const;
|
||||||
|
|
||||||
[[nodiscard]] std::string str(const sql::executor &exec) const;
|
[[nodiscard]] std::string str(const sql::executor &exec) const;
|
||||||
|
[[nodiscard]] sql::query_context compile(const sql::executor &exec, query_mode mode) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
[[nodiscard]] utils::result<std::unique_ptr<sql::query_result_impl>, utils::error> fetch(const sql::executor &exec) const;
|
[[nodiscard]] utils::result<std::unique_ptr<sql::query_result_impl>, utils::error> fetch(const sql::executor &exec) const;
|
||||||
|
|
|
||||||
|
|
@ -32,21 +32,21 @@ utils::result<std::optional<sql::record>, utils::error> fetchable_query::fetch_o
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string fetchable_query::str(const sql::executor &exec) const {
|
std::string fetchable_query::str(const sql::executor &exec) const {
|
||||||
|
return exec.str(compile(exec, query_mode::Direct));
|
||||||
|
}
|
||||||
|
|
||||||
|
sql::query_context fetchable_query::compile(const sql::executor &exec, const query_mode mode) const {
|
||||||
query_compiler compiler;
|
query_compiler compiler;
|
||||||
context_->mode = query_mode::Direct;
|
context_->mode = mode;
|
||||||
return exec.str(compiler.compile(*context_, exec.dialect(), std::nullopt));
|
return compiler.compile(*context_, exec.dialect(), std::nullopt);
|
||||||
}
|
}
|
||||||
|
|
||||||
utils::result<std::unique_ptr<sql::query_result_impl>, utils::error> fetchable_query::fetch(const sql::executor &exec) const {
|
utils::result<std::unique_ptr<sql::query_result_impl>, utils::error> fetchable_query::fetch(const sql::executor &exec) const {
|
||||||
query_compiler compiler;
|
return exec.fetch(compile(exec, query_mode::Direct));
|
||||||
context_->mode = query_mode::Direct;
|
|
||||||
return exec.fetch(compiler.compile(*context_, exec.dialect(), std::nullopt));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
utils::result<sql::statement, utils::error> fetchable_query::prepare(sql::executor &exec) const {
|
utils::result<sql::statement, utils::error> fetchable_query::prepare(sql::executor &exec) const {
|
||||||
query_compiler compiler;
|
return exec.prepare(compile(exec, query_mode::Prepared));
|
||||||
context_->mode = query_mode::Prepared;
|
|
||||||
return exec.prepare(compiler.compile(*context_, exec.dialect(), std::nullopt));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue