@@ -1043,6 +1043,81 @@ Y_UNIT_TEST_SUITE(KqpQueryService) {
1043
1043
}
1044
1044
}
1045
1045
1046
+ Y_UNIT_TEST (AlterTempTable) {
1047
+ NKikimrConfig::TAppConfig appConfig;
1048
+ appConfig.MutableTableServiceConfig ()->SetEnablePreparedDdl (true );
1049
+ auto setting = NKikimrKqp::TKqpSetting ();
1050
+ auto serverSettings = TKikimrSettings ()
1051
+ .SetAppConfig (appConfig)
1052
+ .SetKqpSettings ({setting});
1053
+ TKikimrRunner kikimr (
1054
+ serverSettings.SetWithSampleTables (false ).SetEnableTempTables (true ));
1055
+ auto clientConfig = NGRpcProxy::TGRpcClientConfig (kikimr.GetEndpoint ());
1056
+ auto client = kikimr.GetQueryClient ();
1057
+ {
1058
+ auto session = client.GetSession ().GetValueSync ().GetSession ();
1059
+ auto id = session.GetId ();
1060
+
1061
+ {
1062
+ const auto query = Q_ (R"(
1063
+ --!syntax_v1
1064
+ CREATE TEMP TABLE Temp (
1065
+ Key Uint64 NOT NULL,
1066
+ Value String,
1067
+ PRIMARY KEY (Key)
1068
+ );)" );
1069
+
1070
+ auto result = session.ExecuteQuery (query, NYdb::NQuery::TTxControl::NoTx ()).ExtractValueSync ();
1071
+ UNIT_ASSERT_C (result.IsSuccess (), result.GetIssues ().ToString ());
1072
+ }
1073
+
1074
+ {
1075
+ const auto query = Q_ (R"(
1076
+ --!syntax_v1
1077
+ SELECT * FROM Temp;
1078
+ )" );
1079
+
1080
+ auto result = session.ExecuteQuery (
1081
+ query, NYdb::NQuery::TTxControl::BeginTx ().CommitTx ()).ExtractValueSync ();
1082
+ UNIT_ASSERT_C (result.IsSuccess (), result.GetIssues ().ToString ());
1083
+ }
1084
+
1085
+ {
1086
+ auto result = session.ExecuteSchemeQuery (R"(
1087
+ ALTER TABLE Temp RENAME TO TempAlter;
1088
+ )" , NYdb::NQuery::TTxControl::NoTx (), settings).ExtractValueSync ();
1089
+ UNIT_ASSERT_C (result.IsSuccess (), result.GetIssues ().ToString ());
1090
+ }
1091
+
1092
+ {
1093
+ const auto query = Q_ (R"(
1094
+ --!syntax_v1
1095
+ SELECT * FROM TempAlter;
1096
+ )" );
1097
+
1098
+ auto result = session.ExecuteQuery (
1099
+ query, NYdb::NQuery::TTxControl::BeginTx ().CommitTx ()).ExtractValueSync ();
1100
+ UNIT_ASSERT_C (result.IsSuccess (), result.GetIssues ().ToString ());
1101
+ }
1102
+
1103
+ bool allDoneOk = true ;
1104
+ NTestHelpers::CheckDelete (clientConfig, id, Ydb::StatusIds::SUCCESS, allDoneOk);
1105
+
1106
+ UNIT_ASSERT (allDoneOk);
1107
+ }
1108
+
1109
+ {
1110
+ const auto querySelect = Q_ (R"(
1111
+ --!syntax_v1
1112
+ SELECT * FROM Temp;
1113
+ )" );
1114
+
1115
+ auto resultSelect = client.ExecuteQuery (
1116
+ querySelect, NYdb::NQuery::TTxControl::BeginTx ().CommitTx ()).ExtractValueSync ();
1117
+ UNIT_ASSERT (!resultSelect.IsSuccess ());
1118
+ }
1119
+ }
1120
+
1046
1121
Y_UNIT_TEST (TempTablesDrop) {
1047
1122
NKikimrConfig::TAppConfig appConfig;
1048
1123
appConfig.MutableTableServiceConfig ()->SetEnablePreparedDdl (true );
0 commit comments