added session tests
This commit is contained in:
@@ -11,13 +11,13 @@ basic_query_intermediate::basic_query_intermediate(connection &db, const sql::sc
|
||||
query_result<record> query_select_finish::fetch_all()
|
||||
{
|
||||
query_compiler compiler(connection_.dialect());
|
||||
return connection_.fetch(compiler.compile(&data_));
|
||||
return connection_.fetch(compiler.compile(data_.get()));
|
||||
}
|
||||
|
||||
std::optional<record> query_select_finish::fetch_one()
|
||||
{
|
||||
query_compiler compiler(connection_.dialect());
|
||||
auto result = connection_.fetch(compiler.compile(&data_));
|
||||
auto result = connection_.fetch(compiler.compile(data_.get()));
|
||||
auto first = result.begin();
|
||||
if (first == result.end()) {
|
||||
return std::nullopt;
|
||||
@@ -29,142 +29,142 @@ std::optional<record> query_select_finish::fetch_one()
|
||||
query_context query_select_finish::build() const
|
||||
{
|
||||
query_compiler compiler(connection_.dialect());
|
||||
return compiler.compile(&data_);
|
||||
return compiler.compile(data_.get());
|
||||
}
|
||||
|
||||
std::unique_ptr<query_result_impl> query_select_finish::fetch()
|
||||
{
|
||||
query_compiler compiler(connection_.dialect());
|
||||
return connection_.fetch(compiler.compile(&data_).sql);
|
||||
return connection_.fetch(compiler.compile(data_.get()).sql);
|
||||
}
|
||||
|
||||
statement query_select_finish::prepare()
|
||||
{
|
||||
query_compiler compiler(connection_.dialect());
|
||||
return connection_.prepare(compiler.compile(&data_));
|
||||
return connection_.prepare(compiler.compile(data_.get()));
|
||||
}
|
||||
|
||||
query_intermediate::query_intermediate(connection &db, const sql::schema &schema, query_data &data)
|
||||
query_intermediate::query_intermediate(connection &db, const sql::schema &schema, const std::shared_ptr<query_data> &data)
|
||||
: basic_query_intermediate(db, schema), data_(data) {}
|
||||
|
||||
query_offset_intermediate query_limit_intermediate::offset(size_t offset)
|
||||
{
|
||||
data_.parts.push_back(std::make_unique<query_offset_part>(offset));
|
||||
data_->parts.push_back(std::make_unique<query_offset_part>(offset));
|
||||
return {connection_, schema_, data_};
|
||||
}
|
||||
|
||||
query_limit_intermediate query_offset_intermediate::limit(size_t limit)
|
||||
{
|
||||
data_.parts.push_back(std::make_unique<query_limit_part>(limit));
|
||||
data_->parts.push_back(std::make_unique<query_limit_part>(limit));
|
||||
return {connection_, schema_, data_};
|
||||
}
|
||||
|
||||
query_limit_intermediate query_order_direction_intermediate::limit(size_t limit)
|
||||
{
|
||||
data_.parts.push_back(std::make_unique<query_limit_part>(limit));
|
||||
data_->parts.push_back(std::make_unique<query_limit_part>(limit));
|
||||
return {connection_, schema_, data_};
|
||||
}
|
||||
|
||||
query_order_by_intermediate query_group_by_intermediate::order_by(const column &col)
|
||||
{
|
||||
data_.parts.push_back(std::make_unique<query_order_by_part>(col));
|
||||
data_->parts.push_back(std::make_unique<query_order_by_part>(col));
|
||||
return {connection_, schema_, data_};
|
||||
}
|
||||
|
||||
query_order_direction_intermediate query_order_by_intermediate::asc()
|
||||
{
|
||||
data_.parts.push_back(std::make_unique<query_order_by_asc_part>());
|
||||
data_->parts.push_back(std::make_unique<query_order_by_asc_part>());
|
||||
return {connection_, schema_, data_};
|
||||
}
|
||||
|
||||
query_order_direction_intermediate query_order_by_intermediate::desc()
|
||||
{
|
||||
data_.parts.push_back(std::make_unique<query_order_by_desc_part>());
|
||||
data_->parts.push_back(std::make_unique<query_order_by_desc_part>());
|
||||
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)));
|
||||
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));
|
||||
data_->parts.push_back(std::make_unique<query_group_by_part>(col));
|
||||
return {connection_, schema_, data_};
|
||||
}
|
||||
|
||||
query_order_by_intermediate query_from_intermediate::order_by(const column &col)
|
||||
{
|
||||
data_.parts.push_back(std::make_unique<query_order_by_part>(col));
|
||||
data_->parts.push_back(std::make_unique<query_order_by_part>(col));
|
||||
return {connection_, schema_, data_};
|
||||
}
|
||||
|
||||
query_group_by_intermediate query_where_intermediate::group_by(const column &col)
|
||||
{
|
||||
data_.parts.push_back(std::make_unique<query_group_by_part>(col));
|
||||
data_->parts.push_back(std::make_unique<query_group_by_part>(col));
|
||||
return {connection_, schema_, data_};
|
||||
}
|
||||
|
||||
query_order_by_intermediate query_where_intermediate::order_by(const column &col)
|
||||
{
|
||||
data_.parts.push_back(std::make_unique<query_order_by_part>(col));
|
||||
data_->parts.push_back(std::make_unique<query_order_by_part>(col));
|
||||
return {connection_, schema_, data_};
|
||||
}
|
||||
|
||||
query_join_intermediate query_on_intermediate::join_left(const table &t)
|
||||
{
|
||||
data_.parts.push_back(std::make_unique<query_join_part>(t));
|
||||
data_->parts.push_back(std::make_unique<query_join_part>(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)));
|
||||
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));
|
||||
data_->parts.push_back(std::make_unique<query_group_by_part>(col));
|
||||
return {connection_, schema_, data_};
|
||||
}
|
||||
|
||||
query_order_by_intermediate query_on_intermediate::order_by(const column &col)
|
||||
{
|
||||
data_.parts.push_back(std::make_unique<query_order_by_part>(col));
|
||||
data_->parts.push_back(std::make_unique<query_order_by_part>(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)));
|
||||
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));
|
||||
data_->parts.push_back(std::make_unique<query_join_part>(t));
|
||||
return {connection_, schema_, data_};
|
||||
}
|
||||
|
||||
query_select_intermediate::query_select_intermediate(connection &db, const sql::schema &schema, const std::vector<column>& columns)
|
||||
: query_start_intermediate(db, schema)
|
||||
{
|
||||
data_.parts.push_back(std::make_unique<query_select_part>(columns));
|
||||
data_->parts.push_back(std::make_unique<query_select_part>(columns));
|
||||
}
|
||||
|
||||
query_from_intermediate query_select_intermediate::from(const table& t)
|
||||
{
|
||||
data_.parts.push_back(std::make_unique<query_from_part>(t));
|
||||
data_->parts.push_back(std::make_unique<query_from_part>(t));
|
||||
return {connection_, schema_, data_};
|
||||
}
|
||||
|
||||
query_insert_intermediate::query_insert_intermediate(connection &db, const sql::schema &schema)
|
||||
: query_start_intermediate(db, schema)
|
||||
{
|
||||
data_.parts.push_back(std::make_unique<query_insert_part>());
|
||||
data_->parts.push_back(std::make_unique<query_insert_part>());
|
||||
}
|
||||
|
||||
query_into_intermediate query_insert_intermediate::into(const sql::table &table, std::initializer_list<column> column_names)
|
||||
@@ -174,32 +174,32 @@ query_into_intermediate query_insert_intermediate::into(const sql::table &table,
|
||||
|
||||
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));
|
||||
data_->parts.push_back(std::make_unique<query_into_part>(table, column_names));
|
||||
return {connection_, schema_, data_};
|
||||
}
|
||||
|
||||
query_into_intermediate query_insert_intermediate::into(const table &table)
|
||||
{
|
||||
data_.parts.push_back(std::make_unique<query_into_part>(table, table.columns));
|
||||
data_->parts.push_back(std::make_unique<query_into_part>(table, table.columns));
|
||||
return {connection_, schema_, data_};
|
||||
}
|
||||
|
||||
size_t query_execute_finish::execute()
|
||||
{
|
||||
query_compiler compiler(connection_.dialect());
|
||||
return connection_.execute(compiler.compile(&data_).sql);
|
||||
return connection_.execute(compiler.compile(data_.get()).sql);
|
||||
}
|
||||
|
||||
statement query_execute_finish::prepare()
|
||||
{
|
||||
query_compiler compiler(connection_.dialect());
|
||||
return connection_.prepare(compiler.compile(&data_));
|
||||
return connection_.prepare(compiler.compile(data_.get()));
|
||||
}
|
||||
|
||||
query_context query_execute_finish::build() const
|
||||
{
|
||||
query_compiler compiler(connection_.dialect());
|
||||
return compiler.compile(&data_);
|
||||
return compiler.compile(data_.get());
|
||||
}
|
||||
|
||||
query_execute_finish query_into_intermediate::values(std::initializer_list<any_type> values)
|
||||
@@ -209,13 +209,13 @@ query_execute_finish query_into_intermediate::values(std::initializer_list<any_t
|
||||
|
||||
query_execute_finish query_into_intermediate::values(std::vector<any_type> &&values)
|
||||
{
|
||||
data_.parts.push_back(std::make_unique<query_values_part>(std::move(values)));
|
||||
data_->parts.push_back(std::make_unique<query_values_part>(std::move(values)));
|
||||
return {connection_, schema_, data_};
|
||||
}
|
||||
|
||||
query_create_intermediate::query_create_intermediate(connection &db, const sql::schema &schema)
|
||||
: query_start_intermediate(db, schema) {
|
||||
data_.parts.push_back(std::make_unique<query_create_part>());
|
||||
data_->parts.push_back(std::make_unique<query_create_part>());
|
||||
}
|
||||
|
||||
query_execute_finish query_create_intermediate::table(const sql::table &table, std::initializer_list<column_definition> columns)
|
||||
@@ -225,38 +225,38 @@ query_execute_finish query_create_intermediate::table(const sql::table &table, s
|
||||
|
||||
query_execute_finish query_create_intermediate::table(const sql::table &table, const std::vector<column_definition> &columns)
|
||||
{
|
||||
data_.parts.push_back(std::make_unique<query_create_table_part>(table, columns));
|
||||
data_->parts.push_back(std::make_unique<query_create_table_part>(table, columns));
|
||||
return {connection_, schema_, data_};
|
||||
}
|
||||
|
||||
query_drop_intermediate::query_drop_intermediate(connection &db, const sql::schema &schema)
|
||||
: query_start_intermediate(db, schema)
|
||||
{
|
||||
data_.parts.push_back(std::make_unique<query_drop_part>());
|
||||
data_->parts.push_back(std::make_unique<query_drop_part>());
|
||||
}
|
||||
|
||||
query_execute_finish query_drop_intermediate::table(const sql::table &table)
|
||||
{
|
||||
data_.parts.push_back(std::make_unique<query_drop_table_part>(table));
|
||||
data_->parts.push_back(std::make_unique<query_drop_table_part>(table));
|
||||
return {connection_, schema_, data_};
|
||||
}
|
||||
|
||||
query_order_by_intermediate query_execute_where_intermediate::order_by(const column &col)
|
||||
{
|
||||
data_.parts.push_back(std::make_unique<query_order_by_part>(col));
|
||||
data_->parts.push_back(std::make_unique<query_order_by_part>(col));
|
||||
return {connection_, schema_, data_};
|
||||
}
|
||||
|
||||
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)));
|
||||
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 sql::schema &schema, const sql::table& table)
|
||||
: query_start_intermediate(db, schema)
|
||||
{
|
||||
data_.parts.push_back(std::make_unique<query_update_part>(table));
|
||||
data_->parts.push_back(std::make_unique<query_update_part>(table));
|
||||
}
|
||||
|
||||
query_set_intermediate query_update_intermediate::set(std::initializer_list<key_value_pair> columns)
|
||||
@@ -266,26 +266,26 @@ query_set_intermediate query_update_intermediate::set(std::initializer_list<key_
|
||||
|
||||
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)));
|
||||
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)));
|
||||
data_->parts.push_back(std::make_unique<query_where_part>(std::move(cond)));
|
||||
return {connection_, schema_, data_};
|
||||
}
|
||||
|
||||
query_delete_intermediate::query_delete_intermediate(connection &db, const sql::schema &schema)
|
||||
: query_start_intermediate(db, schema)
|
||||
{
|
||||
data_.parts.push_back(std::make_unique<query_delete_part>());
|
||||
data_->parts.push_back(std::make_unique<query_delete_part>());
|
||||
}
|
||||
|
||||
query_delete_from_intermediate query_delete_intermediate::from(const sql::table &table)
|
||||
{
|
||||
data_.parts.push_back(std::make_unique<query_delete_from_part>(table));
|
||||
data_->parts.push_back(std::make_unique<query_delete_from_part>(table));
|
||||
return {connection_, schema_, data_};
|
||||
}
|
||||
|
||||
|
||||
@@ -89,11 +89,6 @@ bool session::table_exists(const std::string &table_name) const
|
||||
return c->exists(dialect_.default_schema_name(), table_name);
|
||||
}
|
||||
|
||||
const schema& session::tables() const
|
||||
{
|
||||
return *schema_;
|
||||
}
|
||||
|
||||
const class dialect &session::dialect() const
|
||||
{
|
||||
return dialect_;
|
||||
|
||||
Reference in New Issue
Block a user