implemented prepared statement for postgres and sqlite

This commit is contained in:
2023-12-09 11:08:03 +01:00
parent 8ba70cc79e
commit da423ea8bb
59 changed files with 1769 additions and 314 deletions
+13 -13
View File
@@ -3,21 +3,21 @@
namespace matador::sql {
condition<column, placeholder, std::enable_if<true>::type>::condition(const column &fld, basic_condition::operand_t op, const placeholder &val)
: basic_column_condition(fld, op)
, value(val)
{ }
std::string condition<column, placeholder, std::enable_if<true>::type>::evaluate(dialect &d) const {
d.add_host_var(field_.name());
return d.prepare_identifier(field_.name()) + " " + operand + " " + d.next_placeholder();
}
condition<column, query>::condition(column col, basic_condition::operand_t op, query &q)
: basic_column_condition(std::move(col), op)
, query_(q)
: basic_column_condition(fld, op), value(val)
{}
std::string condition<column, query>::evaluate(dialect &d) const {
std::string condition<column, placeholder, std::enable_if<true>::type>::evaluate(dialect &d, query_context &query) const
{
query.bind_vars.emplace_back(field_.name());
return d.prepare_identifier(field_.name()) + " " + operand + " " + d.next_placeholder(query.bind_vars);
}
condition<column, query_context>::condition(column col, basic_condition::operand_t op, query_context &q)
: basic_column_condition(std::move(col), op), query_(q)
{}
std::string condition<column, query_context>::evaluate(dialect &d, query_context &query) const
{
std::string result(d.prepare_identifier(field_.name()) + " " + operand + " (");
result += (")");
return result;