moved parameter_binder from member to parameter to bind, execute and fetch methods

This commit is contained in:
2025-07-30 21:00:40 +02:00
parent ebd8bccfb3
commit 6e2baad3ef
18 changed files with 169 additions and 168 deletions
+8 -14
View File
@@ -6,35 +6,29 @@ statement_impl::statement_impl(query_context query)
: query_(std::move(query))
{}
void statement_impl::bind(const size_t pos, const char *value, const size_t size)
{
utils::data_type_traits<const char*>::bind_value(binder(), adjust_index(pos), value, size);
void statement_impl::bind(const size_t pos, const char *value, const size_t size, interface::parameter_binder& bindings) const {
utils::data_type_traits<const char*>::bind_value(bindings, adjust_index(pos), value, size);
}
void statement_impl::bind(const size_t pos, std::string &val, const size_t size)
{
utils::data_type_traits<std::string>::bind_value(binder(), adjust_index(pos), val, size);
void statement_impl::bind(const size_t pos, std::string &val, const size_t size, interface::parameter_binder& bindings) const {
utils::data_type_traits<std::string>::bind_value(bindings, adjust_index(pos), val, size);
}
const std::vector<std::string> &statement_impl::bind_vars() const
{
const std::vector<std::string> &statement_impl::bind_vars() const {
return query_.bind_vars;
}
bool statement_impl::is_valid_host_var(const std::string &host_var, const size_t pos) const
{
bool statement_impl::is_valid_host_var(const std::string &host_var, const size_t pos) const {
const auto host_var_at_pos = bind_vars().at(pos);
return host_var_at_pos == host_var;
}
size_t statement_impl::start_index() const
{
size_t statement_impl::start_index() const {
return 0;
}
size_t statement_impl::adjust_index( size_t index ) const
{
size_t statement_impl::adjust_index(const size_t index) const {
return index;
}
+8 -4
View File
@@ -4,14 +4,18 @@ namespace matador::sql {
statement_proxy::statement_proxy(std::unique_ptr<statement_impl>&& stmt)
: statement_(std::move(stmt)){}
void statement_proxy::bind(const size_t pos, const char* value, const size_t size) const {
statement_->bind(pos, value, size);
void statement_proxy::bind(const size_t pos, const char* value, const size_t size, interface::parameter_binder& bindings) const {
statement_->bind(pos, value, size, bindings);
}
void statement_proxy::bind(const size_t pos, std::string& val, const size_t size) const {
statement_->bind(pos, val, size);
void statement_proxy::bind(const size_t pos, std::string& val, const size_t size, interface::parameter_binder& bindings) const {
statement_->bind(pos, val, size, bindings);
}
void statement_proxy::reset() const {
statement_->reset();
}
std::unique_ptr<utils::attribute_writer> statement_proxy::create_binder() const {
return statement_->create_binder();
}
}