File tree 2 files changed +46
-0
lines changed
2 files changed +46
-0
lines changed Original file line number Diff line number Diff line change @@ -435,4 +435,25 @@ SELECT COUNT(*) FROM public.t;");
435
435
UNIT_ASSERT_C (res.Root , " Failed to parse statement, root is nullptr" );
436
436
UNIT_ASSERT_STRINGS_EQUAL (res.Root ->ToString (), expectedAst.Root ->ToString ());
437
437
}
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
+ }
438
459
}
Original file line number Diff line number Diff line change @@ -5918,3 +5918,28 @@ Y_UNIT_TEST_SUITE(TopicsDDL) {
5918
5918
)" , false );
5919
5919
}
5920
5920
}
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
+ }
You can’t perform that action at this time.
0 commit comments