added sqlite connection class (progress)

This commit is contained in:
2023-11-07 23:07:49 +01:00
parent f4f5c00eec
commit 715f4dff8f
21 changed files with 645 additions and 73 deletions
+138
View File
@@ -0,0 +1,138 @@
#include "matador/sql/query_intermediates.hpp"
#include "matador/sql/session.hpp"
#include "matador/sql/query_builder.hpp"
namespace matador::sql {
session &query_intermediate::db()
{
return db_;
}
query_builder &query_intermediate::query()
{
return query_;
}
query_result<record> query_select_finish::fetch_all()
{
return db().fetch(query().compile());
}
record query_select_finish::fetch_one()
{
return db().fetch(query().compile()).begin();
}
query_intermediate::query_intermediate(session &db, query_builder &query)
: db_(db), query_(query) {}
query_offset_intermediate query_order_direction_intermediate::offset(size_t offset)
{
return {db(), query()};
}
query_limit_intermediate query_offset_intermediate::limit(size_t limit)
{
return {db(), query()};
}
query_limit_intermediate query_order_direction_intermediate::limit(size_t limit)
{
return {db(), query()};
}
query_order_by_intermediate query_group_by_intermediate::order_by(const std::string &name)
{
return {db(), query().order_by(name)};
}
query_order_direction_intermediate query_order_by_intermediate::asc()
{
return {db(), query().asc()};
}
query_order_direction_intermediate query_order_by_intermediate::desc()
{
return {db(), query().desc()};
}
query_group_by_intermediate query_from_intermediate::group_by(const std::string &name)
{
return {db(), query().group_by(name)};
}
query_order_by_intermediate query_from_intermediate::order_by(const std::string &name)
{
return {db(), query().order_by(name)};
}
query_group_by_intermediate query_where_intermediate::group_by(const std::string &name)
{
return {db(), query().group_by(name)};
}
query_order_by_intermediate query_where_intermediate::order_by(const std::string &name)
{
return {db(), query().order_by(name)};
}
query_where_intermediate query_from_intermediate::where(const basic_condition &cond)
{
return query_where_intermediate{db(), query().where(cond)};
}
query_from_intermediate query_select_intermediate::from(const std::string &table, const std::string &as)
{
return {db(), query().from(table, as)};
}
query_into_intermediate query_insert_intermediate::into(const std::string &table, std::initializer_list<std::string> column_names)
{
return {db(), query().into(table, column_names)};
}
std::pair<size_t, std::string> query_execute_finish::execute()
{
return db().execute(query().compile());
}
query_execute_finish query_into_intermediate::values(std::initializer_list<any_type> values)
{
return {db(), query().values(values)};
}
query_execute_finish query_create_intermediate::table(const std::string &table, std::initializer_list<column> columns)
{
return {db(), query().table(table, columns)};
}
query_execute_finish query_drop_intermediate::table(const std::string &table)
{
return {db(), query().table(table)};
}
query_execute_finish query_execute_where_intermediate::limit(int limit)
{
return {db(), query().limit(limit)};
}
query_execute_where_intermediate query_set_intermediate::where(const basic_condition &cond)
{
return {db(), query().where(cond)};
}
query_set_intermediate query_update_intermediate::set(std::initializer_list<key_value_pair> columns)
{
return {db(), query().set(columns)};
}
query_execute_where_intermediate query_delete_from_intermediate::where(const basic_condition &cond)
{
return {db(), query().where(cond)};
}
query_delete_from_intermediate query_delete_intermediate::from(const std::string &table, const std::string &as)
{
return {db(), query().from(table, as)};
}
}