moved query parts from intermediates declaration to definition file.

This commit is contained in:
2024-02-27 20:16:59 +01:00
parent 2d9a4f3866
commit b9709d14c2
18 changed files with 153 additions and 70 deletions
+44 -3
View File
@@ -77,6 +77,12 @@ query_order_direction_intermediate query_order_by_intermediate::desc()
return {connection_, schema_, data_};
}
query_where_intermediate query_from_intermediate::where_clause(std::unique_ptr<basic_condition> &&cond)
{
data_.parts.push_back(std::make_unique<query_where_part>(std::move(cond)));
return {connection_, schema_, data_};
}
query_group_by_intermediate query_from_intermediate::group_by(const column &col)
{
data_.parts.push_back(std::make_unique<query_group_by_part>(col));
@@ -107,6 +113,12 @@ query_join_intermediate query_on_intermediate::join_left(const table &t)
return {connection_, schema_, data_};
}
query_where_intermediate query_on_intermediate::where_clause(std::unique_ptr<basic_condition> &&cond)
{
data_.parts.push_back(std::make_unique<query_where_part>(std::move(cond)));
return {connection_, schema_, data_};
}
query_group_by_intermediate query_on_intermediate::group_by(const column &col)
{
data_.parts.push_back(std::make_unique<query_group_by_part>(col));
@@ -119,6 +131,12 @@ query_order_by_intermediate query_on_intermediate::order_by(const column &col)
return {connection_, schema_, data_};
}
query_on_intermediate query_join_intermediate::on_clause(std::unique_ptr<basic_condition> &&cond)
{
data_.parts.push_back(std::make_unique<query_on_part>(std::move(cond)));
return {connection_, schema_, data_};
}
query_join_intermediate query_from_intermediate::join_left(const table &t)
{
data_.parts.push_back(std::make_unique<query_join_part>(t));
@@ -144,6 +162,11 @@ query_insert_intermediate::query_insert_intermediate(connection &db, const std::
}
query_into_intermediate query_insert_intermediate::into(const sql::table &table, std::initializer_list<column> column_names)
{
return into(table, std::move(std::vector<column>{column_names}));
}
query_into_intermediate query_insert_intermediate::into(const table &table, std::vector<column> &&column_names)
{
data_.parts.push_back(std::make_unique<query_into_part>(table, column_names));
return {connection_, schema_, data_};
@@ -172,9 +195,9 @@ query_execute_finish query_into_intermediate::values(std::initializer_list<any_t
return this->values(std::vector<any_type>(values));
}
query_execute_finish query_into_intermediate::values(const std::vector<any_type> &values)
query_execute_finish query_into_intermediate::values(std::vector<any_type> &&values)
{
data_.parts.push_back(std::make_unique<query_values_part>(values));
data_.parts.push_back(std::make_unique<query_values_part>(std::move(values)));
return {connection_, schema_, data_};
}
@@ -212,6 +235,12 @@ query_execute_finish query_execute_where_intermediate::limit(int limit)
// return {connection_, builder_.limit(limit)};
}
query_execute_where_intermediate query_set_intermediate::where_clause(std::unique_ptr<basic_condition> &&cond)
{
data_.parts.push_back(std::make_unique<query_where_part>(std::move(cond)));
return {connection_, schema_, data_};
}
query_update_intermediate::query_update_intermediate(connection &db, const std::shared_ptr<sql::schema> &schema, const sql::table& table)
: query_start_intermediate(db, schema)
{
@@ -220,7 +249,19 @@ query_update_intermediate::query_update_intermediate(connection &db, const std::
query_set_intermediate query_update_intermediate::set(std::initializer_list<key_value_pair> columns)
{
data_.parts.push_back(std::make_unique<query_set_part>(columns));
return set(std::vector<key_value_pair>{columns});
}
query_set_intermediate query_update_intermediate::set(std::vector<key_value_pair> &&columns)
{
data_.parts.push_back(std::make_unique<query_set_part>(std::move(columns)));
return {connection_, schema_, data_};
}
query_execute_where_intermediate query_delete_from_intermediate::where_clause(std::unique_ptr<basic_condition> &&cond)
{
data_.parts.push_back(std::make_unique<query_where_part>(std::move(cond)));
return {connection_, schema_, data_};
}