@@ -3660,6 +3660,48 @@ Y_UNIT_TEST_SUITE(KqpQueryService) {
3660
3660
}
3661
3661
}
3662
3662
3663
+ Y_UNIT_TEST_TWIN (CTAS_BadKey, IsOlap) {
3664
+ auto setting = NKikimrKqp::TKqpSetting ();
3665
+ auto serverSettings = TKikimrSettings ()
3666
+ .SetKqpSettings ({setting})
3667
+ .SetWithSampleTables (false )
3668
+ .SetEnableTempTables (true );
3669
+ serverSettings.AppConfig .MutableTableServiceConfig ()->SetEnableOlapSink (true );
3670
+ serverSettings.AppConfig .MutableTableServiceConfig ()->SetEnableCreateTableAs (true );
3671
+ serverSettings.AppConfig .MutableTableServiceConfig ()->SetEnableDataShardCreateTableAs (true );
3672
+
3673
+ TKikimrRunner kikimr (serverSettings);
3674
+ auto db = kikimr.GetQueryClient ();
3675
+
3676
+ {
3677
+ auto result = db.ExecuteQuery (Sprintf (R"(
3678
+ CREATE TABLE Table (
3679
+ PRIMARY KEY (Key2, Key)
3680
+ ) WITH (STORE=%s)
3681
+ AS SELECT 1u AS Key, "1" AS Value1, "1" AS Value2;
3682
+ )" , IsOlap ? " COLUMN" : " ROW" ), TTxControl::NoTx (), TExecuteQuerySettings ()).ExtractValueSync ();
3683
+
3684
+ UNIT_ASSERT_C (!result.IsSuccess (), result.GetIssues ().ToString ());
3685
+ UNIT_ASSERT_C (
3686
+ result.GetIssues ().ToString ().contains (" Unknown column 'Key2' specified in key column list" ),
3687
+ result.GetIssues ().ToString ());
3688
+ }
3689
+
3690
+ {
3691
+ auto result = db.ExecuteQuery (Sprintf (R"(
3692
+ CREATE TABLE Table (
3693
+ PRIMARY KEY (Key, Key2)
3694
+ ) WITH (STORE=%s)
3695
+ AS SELECT 1u AS Key, "1" AS Value1, "1" AS Value2;
3696
+ )" , IsOlap ? " COLUMN" : " ROW" ), TTxControl::NoTx (), TExecuteQuerySettings ()).ExtractValueSync ();
3697
+
3698
+ UNIT_ASSERT_C (!result.IsSuccess (), result.GetIssues ().ToString ());
3699
+ UNIT_ASSERT_C (
3700
+ result.GetIssues ().ToString ().contains (" Unknown column 'Key2' specified in key column list" ),
3701
+ result.GetIssues ().ToString ());
3702
+ }
3703
+ }
3704
+
3663
3705
Y_UNIT_TEST (CheckIsolationLevelFroPerStatementMode) {
3664
3706
auto setting = NKikimrKqp::TKqpSetting ();
3665
3707
auto serverSettings = TKikimrSettings ().SetKqpSettings ({setting});
0 commit comments