add missing sql execute statements in connection
This commit is contained in:
@@ -13,9 +13,15 @@ class connection
|
||||
{
|
||||
public:
|
||||
connection();
|
||||
query_create_intermediate create();
|
||||
query_drop_intermediate drop();
|
||||
query_select_intermediate select(std::initializer_list<std::string> column_names);
|
||||
query_insert_intermediate insert();
|
||||
query_update_intermediate update(const std::string &table);
|
||||
query_delete_intermediate remove();
|
||||
|
||||
result execute(const std::string &sql);
|
||||
result fetch(const std::string &sql);
|
||||
std::pair<size_t, std::string> execute(const std::string &sql);
|
||||
|
||||
private:
|
||||
dialect dialect_;
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
#ifndef QUERY_CONNECTION_INTERMEDIATES_HPP
|
||||
#define QUERY_CONNECTION_INTERMEDIATES_HPP
|
||||
|
||||
#include "matador/sql/column.hpp"
|
||||
#include "matador/sql/key_value_pair.hpp"
|
||||
#include "matador/sql/result.hpp"
|
||||
|
||||
#include <string>
|
||||
@@ -11,63 +13,188 @@ class basic_condition;
|
||||
class connection;
|
||||
class query_builder;
|
||||
|
||||
struct query_intermediate
|
||||
class query_intermediate
|
||||
{
|
||||
public:
|
||||
query_intermediate(connection &db, query_builder &query);
|
||||
|
||||
connection &db;
|
||||
query_builder &query;
|
||||
protected:
|
||||
connection& db();
|
||||
query_builder& query();
|
||||
|
||||
private:
|
||||
connection &db_;
|
||||
query_builder &query_;
|
||||
};
|
||||
|
||||
struct query_finish : query_intermediate
|
||||
class query_select_finish : public query_intermediate
|
||||
{
|
||||
protected:
|
||||
using query_intermediate::query_intermediate;
|
||||
|
||||
public:
|
||||
result fetch_all();
|
||||
result fetch_one();
|
||||
result fetch_value();
|
||||
};
|
||||
|
||||
struct query_order_direction_intermediate : query_finish
|
||||
class query_limit_intermediate : public query_select_finish
|
||||
{
|
||||
using query_finish::query_finish;
|
||||
public:
|
||||
using query_select_finish::query_select_finish;
|
||||
};
|
||||
|
||||
struct query_group_by_intermediate : query_finish
|
||||
{
|
||||
using query_finish::query_finish;
|
||||
|
||||
|
||||
};
|
||||
struct query_order_by_intermediate : query_intermediate
|
||||
class query_offset_intermediate : public query_intermediate
|
||||
{
|
||||
public:
|
||||
using query_intermediate::query_intermediate;
|
||||
|
||||
query_limit_intermediate limit(size_t limit);
|
||||
};
|
||||
|
||||
class query_order_direction_intermediate : public query_select_finish
|
||||
{
|
||||
public:
|
||||
using query_select_finish::query_select_finish;
|
||||
|
||||
query_offset_intermediate offset(size_t offset);
|
||||
query_limit_intermediate limit(size_t limit);
|
||||
};
|
||||
|
||||
class query_order_by_intermediate;
|
||||
|
||||
class query_group_by_intermediate : public query_select_finish
|
||||
{
|
||||
public:
|
||||
using query_select_finish::query_select_finish;
|
||||
|
||||
query_order_by_intermediate order_by(const std::string &name);
|
||||
};
|
||||
|
||||
class query_order_by_intermediate : public query_intermediate
|
||||
{
|
||||
public:
|
||||
using query_intermediate::query_intermediate;
|
||||
|
||||
query_order_direction_intermediate asc();
|
||||
query_order_direction_intermediate desc();
|
||||
|
||||
};
|
||||
|
||||
struct query_where_intermediate : query_finish
|
||||
class query_where_intermediate : public query_select_finish
|
||||
{
|
||||
using query_finish::query_finish;
|
||||
public:
|
||||
using query_select_finish::query_select_finish;
|
||||
|
||||
query_group_by_intermediate group_by(const std::string &name);
|
||||
query_order_by_intermediate order_by(const std::string &name);
|
||||
};
|
||||
|
||||
struct query_from_intermediate : query_finish
|
||||
class query_from_intermediate : public query_select_finish
|
||||
{
|
||||
using query_finish::query_finish;
|
||||
public:
|
||||
using query_select_finish::query_select_finish;
|
||||
|
||||
query_where_intermediate where(const basic_condition &cond);
|
||||
query_group_by_intermediate group_by(const std::string &name);
|
||||
query_order_by_intermediate order_by(const std::string &name);
|
||||
};
|
||||
|
||||
struct query_select_intermediate : query_intermediate
|
||||
class query_select_intermediate : public query_intermediate
|
||||
{
|
||||
public:
|
||||
using query_intermediate::query_intermediate;
|
||||
|
||||
query_from_intermediate from(const std::string &table, const std::string &as = "");
|
||||
|
||||
};
|
||||
|
||||
class query_execute_finish : public query_intermediate
|
||||
{
|
||||
public:
|
||||
using query_intermediate::query_intermediate;
|
||||
|
||||
std::pair<size_t, std::string> execute();
|
||||
};
|
||||
|
||||
class query_into_intermediate : public query_intermediate
|
||||
{
|
||||
public:
|
||||
using query_intermediate::query_intermediate;
|
||||
|
||||
query_execute_finish values(std::initializer_list<any_type> values);
|
||||
};
|
||||
|
||||
class query_create_drop_finish : public query_intermediate
|
||||
{
|
||||
public:
|
||||
using query_intermediate::query_intermediate;
|
||||
|
||||
void execute();
|
||||
};
|
||||
|
||||
class query_create_intermediate : query_intermediate
|
||||
{
|
||||
public:
|
||||
using query_intermediate::query_intermediate;
|
||||
|
||||
query_create_drop_finish table(const std::string &table, std::initializer_list<column> columns);
|
||||
};
|
||||
|
||||
class query_drop_intermediate : query_intermediate
|
||||
{
|
||||
public:
|
||||
using query_intermediate::query_intermediate;
|
||||
|
||||
query_create_drop_finish table(const std::string &table);
|
||||
};
|
||||
|
||||
class query_insert_intermediate : public query_intermediate
|
||||
{
|
||||
public:
|
||||
using query_intermediate::query_intermediate;
|
||||
|
||||
query_into_intermediate into(const std::string &table, std::initializer_list<std::string> column_names);
|
||||
};
|
||||
|
||||
class query_execute_where_intermediate : public query_execute_finish
|
||||
{
|
||||
public:
|
||||
using query_execute_finish::query_execute_finish;
|
||||
|
||||
query_execute_finish limit(int limit);
|
||||
};
|
||||
|
||||
class query_set_intermediate : public query_execute_finish
|
||||
{
|
||||
public:
|
||||
using query_execute_finish::query_execute_finish;
|
||||
|
||||
query_execute_where_intermediate where(const basic_condition &cond);
|
||||
};
|
||||
|
||||
class query_update_intermediate : public query_intermediate
|
||||
{
|
||||
public:
|
||||
using query_intermediate::query_intermediate;
|
||||
|
||||
query_set_intermediate set(std::initializer_list<key_value_pair> columns);
|
||||
};
|
||||
|
||||
class query_delete_from_intermediate : public query_execute_finish
|
||||
{
|
||||
public:
|
||||
using query_execute_finish::query_execute_finish;
|
||||
|
||||
query_execute_where_intermediate where(const basic_condition &cond);
|
||||
};
|
||||
|
||||
class query_delete_intermediate : public query_intermediate
|
||||
{
|
||||
public:
|
||||
using query_intermediate::query_intermediate;
|
||||
|
||||
query_delete_from_intermediate from(const std::string &table, const std::string &as = "");
|
||||
};
|
||||
|
||||
}
|
||||
#endif //QUERY_CONNECTION_INTERMEDIATES_HPP
|
||||
|
||||
@@ -21,8 +21,8 @@ public:
|
||||
key_value_pair(const std::string &name, any_type value);
|
||||
key_value_pair(const char *name, any_type value);
|
||||
|
||||
const std::string& name() const;
|
||||
const any_type& value() const;
|
||||
[[nodiscard]] const std::string& name() const;
|
||||
[[nodiscard]] const any_type& value() const;
|
||||
|
||||
private:
|
||||
std::string name_;
|
||||
|
||||
Reference in New Issue
Block a user