summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNikita Vasilev <[email protected]>2025-09-26 17:39:01 +0300
committerGitHub <[email protected]>2025-09-26 17:39:01 +0300
commit65343be63ff958599b9f8633ecd8178ea09fcd56 (patch)
tree654a6e9eb10f8b579e02ec8a9b611524f88030db
parent1a42b7ab6ef31cf1a23fe06dace088165e645a79 (diff)
Test for wrong keys for Column Table (#25854)
-rw-r--r--ydb/core/kqp/ut/service/kqp_qs_queries_ut.cpp45
1 files changed, 45 insertions, 0 deletions
diff --git a/ydb/core/kqp/ut/service/kqp_qs_queries_ut.cpp b/ydb/core/kqp/ut/service/kqp_qs_queries_ut.cpp
index 5a16c8057b9..309b05cb83f 100644
--- a/ydb/core/kqp/ut/service/kqp_qs_queries_ut.cpp
+++ b/ydb/core/kqp/ut/service/kqp_qs_queries_ut.cpp
@@ -3564,6 +3564,51 @@ Y_UNIT_TEST_SUITE(KqpQueryService) {
}
}
+ Y_UNIT_TEST_TWIN(CTAS_BadKey, IsOlap) {
+ auto setting = NKikimrKqp::TKqpSetting();
+ auto serverSettings = TKikimrSettings()
+ .SetKqpSettings({setting})
+ .SetWithSampleTables(false)
+ .SetEnableTempTables(true);
+ serverSettings.AppConfig.MutableTableServiceConfig()->SetEnableOlapSink(true);
+ serverSettings.AppConfig.MutableTableServiceConfig()->SetEnableCreateTableAs(true);
+
+ TKikimrRunner kikimr(serverSettings);
+ auto db = kikimr.GetQueryClient();
+
+ if (IsOlap) {
+ return;
+ }
+
+ {
+ auto result = db.ExecuteQuery(Sprintf(R"(
+ CREATE TABLE Table (
+ PRIMARY KEY (Key2, Key)
+ ) WITH (STORE=%s)
+ AS SELECT 1u AS Key, "1" AS Value1, "1" AS Value2;
+ )", IsOlap ? "COLUMN" : "ROW"), TTxControl::NoTx(), TExecuteQuerySettings()).ExtractValueSync();
+
+ UNIT_ASSERT_C(!result.IsSuccess(), result.GetIssues().ToString());
+ UNIT_ASSERT_C(
+ result.GetIssues().ToString().contains("Unknown column 'Key2' specified in key column list"),
+ result.GetIssues().ToString());
+ }
+
+ {
+ auto result = db.ExecuteQuery(Sprintf(R"(
+ CREATE TABLE Table (
+ PRIMARY KEY (Key, Key2)
+ ) WITH (STORE=%s)
+ AS SELECT 1u AS Key, "1" AS Value1, "1" AS Value2;
+ )", IsOlap ? "COLUMN" : "ROW"), TTxControl::NoTx(), TExecuteQuerySettings()).ExtractValueSync();
+
+ UNIT_ASSERT_C(!result.IsSuccess(), result.GetIssues().ToString());
+ UNIT_ASSERT_C(
+ result.GetIssues().ToString().contains("Unknown column 'Key2' specified in key column list"),
+ result.GetIssues().ToString());
+ }
+ }
+
Y_UNIT_TEST(CheckIsolationLevelFroPerStatementMode) {
auto setting = NKikimrKqp::TKqpSetting();
auto serverSettings = TKikimrSettings().SetKqpSettings({setting});