Skip to content

Commit 18f2f22

Browse files
committed
add tests
1 parent 8b7eb04 commit 18f2f22

File tree

2 files changed

+46
-0
lines changed

2 files changed

+46
-0
lines changed

ydb/library/yql/sql/pg/pg_sql_ut.cpp

+21
Original file line numberDiff line numberDiff line change
@@ -435,4 +435,25 @@ SELECT COUNT(*) FROM public.t;");
435435
UNIT_ASSERT_C(res.Root, "Failed to parse statement, root is nullptr");
436436
UNIT_ASSERT_STRINGS_EQUAL(res.Root->ToString(), expectedAst.Root->ToString());
437437
}
438+
439+
Y_UNIT_TEST(BlockEngine) {
440+
auto res = PgSqlToYql("set blockEngine='auto'; select 1;");
441+
UNIT_ASSERT(res.Root);
442+
UNIT_ASSERT_STRING_CONTAINS(res.Root->ToString(), "(let world (Configure! world (DataSource 'config) 'BlockEngine 'auto))");
443+
444+
res = PgSqlToYql("set Blockengine='force'; select 1;");
445+
UNIT_ASSERT(res.Root);
446+
UNIT_ASSERT_STRING_CONTAINS(res.Root->ToString(), "(let world (Configure! world (DataSource 'config) 'BlockEngine 'force))");
447+
448+
res = PgSqlToYql("set BlockEngine='disable'; select 1;");
449+
UNIT_ASSERT(res.Root);
450+
UNIT_ASSERT(!res.Root->ToString().Contains("BlockEngine"));
451+
452+
res = PgSqlToYql("set BlockEngine='foo'; select 1;");
453+
UNIT_ASSERT(!res.Root);
454+
UNIT_ASSERT_EQUAL(res.Issues.Size(), 1);
455+
456+
auto issue = *(res.Issues.begin());
457+
UNIT_ASSERT(issue.GetMessage().Contains("VariableSetStmt, not supported BlockEngine option value: foo"));
458+
}
438459
}

ydb/library/yql/sql/v1/sql_ut.cpp

+25
Original file line numberDiff line numberDiff line change
@@ -5918,3 +5918,28 @@ Y_UNIT_TEST_SUITE(TopicsDDL) {
59185918
)", false);
59195919
}
59205920
}
5921+
5922+
Y_UNIT_TEST_SUITE(BlockEnginePragma) {
5923+
Y_UNIT_TEST(Basic) {
5924+
const TVector<TString> values = {"auto", "force", "disable"};
5925+
for (const auto& value : values) {
5926+
const auto query = TStringBuilder() << "pragma Blockengine='" << value << "'; select 1;";
5927+
NYql::TAstParseResult res = SqlToYql(query);
5928+
UNIT_ASSERT(res.Root);
5929+
5930+
TVerifyLineFunc verifyLine = [&](const TString& word, const TString& line) {
5931+
Y_UNUSED(word);
5932+
UNIT_ASSERT_STRING_CONTAINS(line, TStringBuilder() << R"(Configure! world (DataSource '"config") '"BlockEngine" '")" << value << "\"");
5933+
};
5934+
5935+
TWordCountHive elementStat({"BlockEngine"});
5936+
VerifyProgram(res, elementStat, verifyLine);
5937+
UNIT_ASSERT(elementStat["BlockEngine"] == ((value == "disable") ? 0 : 1));
5938+
}
5939+
}
5940+
5941+
Y_UNIT_TEST(UnknownSetting) {
5942+
ExpectFailWithError("use plato; pragma BlockEngine='foo';",
5943+
"<main>:1:31: Error: Expected `disable|auto|force' argument for: BlockEngine\n");
5944+
}
5945+
}

0 commit comments

Comments
 (0)