moved query parts from intermediates declaration to definition file.
This commit is contained in:
@@ -33,6 +33,7 @@ set(SQL_SOURCES
|
||||
sql/query_parts.cpp
|
||||
sql/query_compiler.cpp
|
||||
sql/noop_connection.cpp
|
||||
sql/query_part.cpp
|
||||
)
|
||||
|
||||
set(SQL_HEADER
|
||||
@@ -81,6 +82,7 @@ set(SQL_HEADER
|
||||
../include/matador/sql/query_data.hpp
|
||||
../include/matador/sql/table.hpp
|
||||
../include/matador/sql/noop_connection.hpp
|
||||
../include/matador/sql/query_part.hpp
|
||||
)
|
||||
|
||||
set(QUERY_SOURCES
|
||||
|
||||
@@ -19,6 +19,11 @@ query_drop_intermediate query::drop()
|
||||
}
|
||||
|
||||
query_select_intermediate query::select(std::initializer_list<column> columns)
|
||||
{
|
||||
return select(std::vector<column>{columns});
|
||||
}
|
||||
|
||||
query_select_intermediate query::select(const std::vector<column>& columns)
|
||||
{
|
||||
return {connection_, schema_, columns};
|
||||
}
|
||||
|
||||
@@ -204,7 +204,7 @@ struct column_context
|
||||
std::vector<fk_context> foreign_contexts;
|
||||
};
|
||||
|
||||
std::string build_create_column(const column_definition &col, const dialect &d, column_context &context);
|
||||
std::string build_create_column(const column_definition &col, const dialect &d, column_context &context);
|
||||
|
||||
void query_compiler::visit(query_create_table_part &create_table_part)
|
||||
{
|
||||
|
||||
@@ -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_};
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
#include "matador/sql/query_part.hpp"
|
||||
|
||||
namespace matador::sql {
|
||||
|
||||
query_part::query_part(sql::dialect::token_t token)
|
||||
: token_(token) {}
|
||||
|
||||
|
||||
}
|
||||
@@ -5,9 +5,6 @@
|
||||
|
||||
namespace matador::sql {
|
||||
|
||||
query_part::query_part(sql::dialect::token_t token)
|
||||
: token_(token) {}
|
||||
|
||||
query_select_part::query_select_part(std::vector<column> columns)
|
||||
: query_part(sql::dialect::token_t::SELECT)
|
||||
, columns_(std::move(columns)) {}
|
||||
@@ -50,6 +47,10 @@ void query_join_part::accept(query_part_visitor &visitor)
|
||||
visitor.visit(*this);
|
||||
}
|
||||
|
||||
query_on_part::query_on_part(std::unique_ptr<basic_condition> &&cond)
|
||||
: query_part(dialect::token_t::ON)
|
||||
, condition_(std::move(cond)) {}
|
||||
|
||||
const basic_condition &query_on_part::condition() const
|
||||
{
|
||||
return *condition_;
|
||||
@@ -60,6 +61,10 @@ void query_on_part::accept(query_part_visitor &visitor)
|
||||
visitor.visit(*this);
|
||||
}
|
||||
|
||||
query_where_part::query_where_part(std::unique_ptr<basic_condition> &&cond)
|
||||
: query_part(dialect::token_t::WHERE)
|
||||
, condition_(std::move(cond)) {}
|
||||
|
||||
void query_where_part::accept(query_part_visitor &visitor)
|
||||
{
|
||||
visitor.visit(*this);
|
||||
@@ -178,7 +183,7 @@ void query_into_part::accept(query_part_visitor &visitor)
|
||||
visitor.visit(*this);
|
||||
}
|
||||
|
||||
query_values_part::query_values_part(std::vector<any_type> values)
|
||||
query_values_part::query_values_part(std::vector<any_type> &&values)
|
||||
: query_part(sql::dialect::token_t::VALUES)
|
||||
, values_(std::move(values)) {}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user