diff options
| author | Nikita Vasilev <[email protected]> | 2025-09-26 17:39:01 +0300 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-09-26 17:39:01 +0300 |
| commit | 65343be63ff958599b9f8633ecd8178ea09fcd56 (patch) | |
| tree | 654a6e9eb10f8b579e02ec8a9b611524f88030db | |
| parent | 1a42b7ab6ef31cf1a23fe06dace088165e645a79 (diff) | |
Test for wrong keys for Column Table (#25854)
| -rw-r--r-- | ydb/core/kqp/ut/service/kqp_qs_queries_ut.cpp | 45 |
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}); |
