@@ -1054,6 +1054,8 @@ Y_UNIT_TEST_SUITE(KqpQueryService) {
10541054 serverSettings.SetWithSampleTables (false ).SetEnableTempTables (true ));
10551055 auto clientConfig = NGRpcProxy::TGRpcClientConfig (kikimr.GetEndpoint ());
10561056 auto client = kikimr.GetQueryClient ();
1057+ auto settings = NYdb::NQuery::TExecuteQuerySettings ()
1058+ .StatsMode (NYdb::NQuery::EStatsMode::Basic);
10571059 {
10581060 auto session = client.GetSession ().GetValueSync ().GetSession ();
10591061 auto id = session.GetId ();
@@ -1062,13 +1064,63 @@ Y_UNIT_TEST_SUITE(KqpQueryService) {
10621064 const auto query = Q_ (R"(
10631065 --!syntax_v1
10641066 CREATE TEMP TABLE Temp (
1065- Key Uint64 NOT NULL,
1066- Value String ,
1067+ Key Int32 NOT NULL,
1068+ Value Int32 ,
10671069 PRIMARY KEY (Key)
10681070 );)" );
10691071
1070- auto result = session.ExecuteQuery (query, NYdb::NQuery::TTxControl::NoTx ()).ExtractValueSync ();
1072+ auto result =
1073+ session.ExecuteQuery (query, NYdb::NQuery::TTxControl::NoTx (), settings).ExtractValueSync ();
10711074 UNIT_ASSERT_C (result.IsSuccess (), result.GetIssues ().ToString ());
1075+ auto stats = NYdb::TProtoAccessor::GetProto (*result.GetStats ());
1076+ UNIT_ASSERT_VALUES_EQUAL (stats.compilation ().from_cache (), false );
1077+ }
1078+
1079+ {
1080+ const auto query = Q_ (R"(
1081+ --!syntax_v1
1082+ ALTER TABLE Temp DROP COLUMN Value;
1083+ )" );
1084+ auto result =
1085+ session.ExecuteQuery (query, NYdb::NQuery::TTxControl::NoTx (), settings).ExtractValueSync ();
1086+ UNIT_ASSERT_C (result.IsSuccess (), result.GetIssues ().ToString ());
1087+ auto stats = NYdb::TProtoAccessor::GetProto (*result.GetStats ());
1088+ UNIT_ASSERT_VALUES_EQUAL (stats.compilation ().from_cache (), false );
1089+ }
1090+
1091+ {
1092+ const auto query = Q_ (R"(
1093+ --!syntax_v1
1094+ DROP TABLE Temp;
1095+ )" );
1096+
1097+ auto result =
1098+ session.ExecuteQuery (query, NYdb::NQuery::TTxControl::NoTx (), settings).ExtractValueSync ();
1099+ UNIT_ASSERT_C (result.IsSuccess (), result.GetIssues ().ToString ());
1100+ auto stats = NYdb::TProtoAccessor::GetProto (*result.GetStats ());
1101+ UNIT_ASSERT_VALUES_EQUAL (stats.compilation ().from_cache (), false );
1102+ }
1103+
1104+ {
1105+ const auto query = Q_ (R"(
1106+ --!syntax_v1
1107+ CREATE TEMP TABLE Temp (
1108+ Key Int32 NOT NULL,
1109+ Value Int32,
1110+ PRIMARY KEY (Key)
1111+ );)" );
1112+
1113+ auto result =
1114+ session.ExecuteQuery (query, NYdb::NQuery::TTxControl::NoTx (), settings).ExtractValueSync ();
1115+ UNIT_ASSERT_C (result.IsSuccess (), result.GetIssues ().ToString ());
1116+ auto stats = NYdb::TProtoAccessor::GetProto (*result.GetStats ());
1117+ UNIT_ASSERT_VALUES_EQUAL (stats.compilation ().from_cache (), false );
1118+
1119+ auto resultInsert = session.ExecuteQuery (R"(
1120+ UPSERT INTO Temp (Key, Value) VALUES (1, 1);
1121+ )" , NYdb::NQuery::TTxControl::BeginTx ().CommitTx (), settings).ExtractValueSync ();
1122+ UNIT_ASSERT_VALUES_EQUAL_C (
1123+ resultInsert.GetStatus (), EStatus::SUCCESS, resultInsert.GetIssues ().ToString ());
10721124 }
10731125
10741126 {
@@ -1078,26 +1130,62 @@ Y_UNIT_TEST_SUITE(KqpQueryService) {
10781130 )" );
10791131
10801132 auto result = session.ExecuteQuery (
1081- query, NYdb::NQuery::TTxControl::BeginTx ().CommitTx ()).ExtractValueSync ();
1133+ query, NYdb::NQuery::TTxControl::BeginTx ().CommitTx (), settings ).ExtractValueSync ();
10821134 UNIT_ASSERT_C (result.IsSuccess (), result.GetIssues ().ToString ());
1135+ auto stats = NYdb::TProtoAccessor::GetProto (*result.GetStats ());
1136+ UNIT_ASSERT_VALUES_EQUAL (stats.compilation ().from_cache (), false );
1137+
1138+ UNIT_ASSERT_C (!result.GetResultSets ().empty (), " results are empty" );
1139+ CompareYson (R"( [[1;[1]]])" , FormatResultSetYson (result.GetResultSet (0 )));
10831140 }
10841141
10851142 {
1086- auto result = session.ExecuteSchemeQuery (R"(
1087- ALTER TABLE Temp RENAME TO TempAlter ;
1143+ auto result = session.ExecuteQuery (R"(
1144+ ALTER TABLE Temp DROP COLUMN Value ;
10881145 )" , NYdb::NQuery::TTxControl::NoTx (), settings).ExtractValueSync ();
10891146 UNIT_ASSERT_C (result.IsSuccess (), result.GetIssues ().ToString ());
1147+ auto stats = NYdb::TProtoAccessor::GetProto (*result.GetStats ());
1148+ UNIT_ASSERT_VALUES_EQUAL (stats.compilation ().from_cache (), false );
10901149 }
10911150
10921151 {
10931152 const auto query = Q_ (R"(
10941153 --!syntax_v1
1095- SELECT * FROM TempAlter ;
1154+ SELECT * FROM Temp ;
10961155 )" );
10971156
10981157 auto result = session.ExecuteQuery (
1099- query, NYdb::NQuery::TTxControl::BeginTx ().CommitTx ()).ExtractValueSync ();
1158+ query, NYdb::NQuery::TTxControl::BeginTx ().CommitTx (), settings ).ExtractValueSync ();
11001159 UNIT_ASSERT_C (result.IsSuccess (), result.GetIssues ().ToString ());
1160+ auto stats = NYdb::TProtoAccessor::GetProto (*result.GetStats ());
1161+ UNIT_ASSERT_VALUES_EQUAL (stats.compilation ().from_cache (), false );
1162+
1163+ UNIT_ASSERT_C (!result.GetResultSets ().empty (), " results are empty" );
1164+ CompareYson (R"( [[1]])" , FormatResultSetYson (result.GetResultSet (0 )));
1165+ }
1166+
1167+ {
1168+ const auto query = Q_ (R"(
1169+ --!syntax_v1
1170+ DROP TABLE Temp;
1171+ )" );
1172+
1173+ auto result =
1174+ session.ExecuteQuery (query, NYdb::NQuery::TTxControl::NoTx (), settings).ExtractValueSync ();
1175+ UNIT_ASSERT_C (result.IsSuccess (), result.GetIssues ().ToString ());
1176+ auto stats = NYdb::TProtoAccessor::GetProto (*result.GetStats ());
1177+ UNIT_ASSERT_VALUES_EQUAL (stats.compilation ().from_cache (), false );
1178+ }
1179+
1180+ {
1181+ const auto querySelect = Q_ (R"(
1182+ --!syntax_v1
1183+ SELECT * FROM Temp;
1184+ )" );
1185+
1186+ auto resultSelect = client.ExecuteQuery (
1187+ querySelect, NYdb::NQuery::TTxControl::BeginTx ().CommitTx ()).ExtractValueSync ();
1188+ UNIT_ASSERT (!resultSelect.IsSuccess ());
11011189 }
11021190
11031191 bool allDoneOk = true ;
0 commit comments