progress on query compiler
This commit is contained in:
@@ -47,7 +47,7 @@ TEST_CASE("Generate columns from object", "[column][generator]") {
|
||||
REQUIRE(columns.size() == expected_columns.size());
|
||||
|
||||
for (size_t i = 0; i != expected_columns.size(); ++i) {
|
||||
REQUIRE(expected_columns[i] == columns[i].name());
|
||||
REQUIRE(expected_columns[i] == columns[i].column_name());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
|
||||
#include "matador/query/criteria.hpp"
|
||||
#include "matador/query/criteria_evaluator.hpp"
|
||||
#include "matador/query/query.hpp"
|
||||
|
||||
#include "matador/sql/dialect_builder.hpp"
|
||||
#include "matador/sql/query_context.hpp"
|
||||
|
||||
#include "matador/utils/placeholder.hpp"
|
||||
|
||||
@@ -79,7 +79,9 @@ TEST_CASE_METHOD(CriteriaFixture, "Test in query criteria", "[criteria][in query
|
||||
query_context sub_ctx;
|
||||
sub_ctx.sql = R"(SELECT "name" FROM "test")";
|
||||
|
||||
auto clause = age_col != 7 && in(name_col, std::move(sub_ctx));
|
||||
auto q = query::select({name_col}).from("test");
|
||||
|
||||
auto clause = age_col != 7 && in(name_col, std::move(q));
|
||||
}
|
||||
TEST_CASE_METHOD(CriteriaFixture, "Test out criteria", "[criteria][out]") {
|
||||
const auto age_col = "age"_col;
|
||||
@@ -88,12 +90,12 @@ TEST_CASE_METHOD(CriteriaFixture, "Test out criteria", "[criteria][out]") {
|
||||
criteria_evaluator evaluator(dlc, ctx);
|
||||
auto str = evaluator.evaluate(*clause);
|
||||
|
||||
REQUIRE(str == "(\"age\" <> 7 AND \"age\" NOT IN (7, 5, 5, 8))");
|
||||
REQUIRE(str == R"(("age" <> 7 AND "age" NOT IN (7, 5, 5, 8)))");
|
||||
|
||||
clause = age_col != 7 && out(age_col, {_, _, _});
|
||||
str = evaluator.evaluate(*clause);
|
||||
|
||||
REQUIRE(str == "(\"age\" <> 7 AND \"age\" NOT IN (?, ?, ?))");
|
||||
REQUIRE(str == R"(("age" <> 7 AND "age" NOT IN (?, ?, ?)))");
|
||||
}
|
||||
|
||||
TEST_CASE_METHOD(CriteriaFixture, "Test between criteria", "[criteria][between]") {
|
||||
@@ -103,12 +105,12 @@ TEST_CASE_METHOD(CriteriaFixture, "Test between criteria", "[criteria][between]"
|
||||
criteria_evaluator evaluator(dlc, ctx);
|
||||
auto str = evaluator.evaluate(*clause);
|
||||
|
||||
REQUIRE(str == "(\"age\" <> 7 OR \"age\" BETWEEN 21 AND 30)");
|
||||
REQUIRE(str == R"(("age" <> 7 OR "age" BETWEEN 21 AND 30))");
|
||||
|
||||
clause = age_col != 7 || between(age_col, _, _);
|
||||
str = evaluator.evaluate(*clause);
|
||||
|
||||
REQUIRE(str == "(\"age\" <> 7 OR \"age\" BETWEEN ? AND ?)");
|
||||
REQUIRE(str == R"(("age" <> 7 OR "age" BETWEEN ? AND ?))");
|
||||
}
|
||||
|
||||
TEST_CASE_METHOD(CriteriaFixture, "Test like criteria", "[criteria][like]") {
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
using namespace matador::query;
|
||||
using namespace matador::test;
|
||||
|
||||
TEST_CASE("Test schema with belongs-to to has-many relation" "[schema][relation][belongs_to]") {
|
||||
TEST_CASE("Test schema with belongs-to to has-many relation" "[schema][relation][belongsto]") {
|
||||
schema repo;
|
||||
auto result = repo.attach<package>("packages")
|
||||
.and_then( [&repo] { return repo.attach<shipment>("shipments"); } );
|
||||
|
||||
Reference in New Issue
Block a user