lazy loading progress

This commit is contained in:
Sascha Kühl 2025-08-19 07:30:23 +02:00
parent 1370eafac4
commit 18d21eb1c6
3 changed files with 15 additions and 14 deletions

View File

@ -280,14 +280,14 @@ void session_query_builder::on_foreign_object(const char *id, Pointer &, const u
sql::column{next->second, pk->name()}
);
} else {
// using namespace matador::utils;
// using namespace matador::query;
push(id);
using namespace matador::utils;
using namespace matador::query;
// create select query
// const auto result = matador::query::query::select<typename Pointer::value_type>(schema_)
// .from(*foreign_table)
// .where(sql::column(foreign_table, id, "") == _)
// .prepare();
const auto result = matador::query::query::select<typename Pointer::value_type>(schema_)
.from(*foreign_table)
.where(sql::column(foreign_table, id, "") == _)
.com;
}
}

View File

@ -71,6 +71,7 @@ public:
[[nodiscard]] utils::result<sql::statement, utils::error> prepare(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:
[[nodiscard]] utils::result<std::unique_ptr<sql::query_result_impl>, utils::error> fetch(const sql::executor &exec) const;

View File

@ -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 {
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;
context_->mode = query_mode::Direct;
return exec.str(compiler.compile(*context_, exec.dialect(), std::nullopt));
context_->mode = mode;
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 {
query_compiler compiler;
context_->mode = query_mode::Direct;
return exec.fetch(compiler.compile(*context_, exec.dialect(), std::nullopt));
return exec.fetch(compile(exec, query_mode::Direct));
}
utils::result<sql::statement, utils::error> fetchable_query::prepare(sql::executor &exec) const {
query_compiler compiler;
context_->mode = query_mode::Prepared;
return exec.prepare(compiler.compile(*context_, exec.dialect(), std::nullopt));
return exec.prepare(compile(exec, query_mode::Prepared));
}
}