From d93b2e438a2fc343cf3b43abf502a99d2c369c8e Mon Sep 17 00:00:00 2001 From: Nikita Vasilev Date: Mon, 15 Jul 2024 15:26:47 +0300 Subject: [PATCH] Fix multi sink type annotation (#6105) --- ydb/core/kqp/ut/olap/kqp_olap_ut.cpp | 35 +++++++++++++++++++++ ydb/library/yql/dq/type_ann/dq_type_ann.cpp | 3 -- 2 files changed, 35 insertions(+), 3 deletions(-) diff --git a/ydb/core/kqp/ut/olap/kqp_olap_ut.cpp b/ydb/core/kqp/ut/olap/kqp_olap_ut.cpp index d116609b4726..e73d6e1e8c27 100644 --- a/ydb/core/kqp/ut/olap/kqp_olap_ut.cpp +++ b/ydb/core/kqp/ut/olap/kqp_olap_ut.cpp @@ -2624,6 +2624,41 @@ Y_UNIT_TEST_SUITE(KqpOlap) { } + Y_UNIT_TEST(MultiInsertWithSinks) { + NKikimrConfig::TAppConfig appConfig; + appConfig.MutableTableServiceConfig()->SetEnableOlapSink(true); + auto settings = TKikimrSettings() + .SetAppConfig(appConfig) + .SetWithSampleTables(false); + TKikimrRunner kikimr(settings); + + TLocalHelper(kikimr).CreateTestOlapTable(); + + auto db = kikimr.GetQueryClient(); + + auto result = db.ExecuteQuery(R"( + INSERT INTO `/Root/olapStore/olapTable` (timestamp, uid, resource_id) VALUES (Timestamp('1970-01-01T00:00:00Z'), 'a', '0'); + INSERT INTO `/Root/olapStore/olapTable` (timestamp, uid, resource_id) VALUES (Timestamp('1970-01-01T00:00:01Z'), 'b', 't'); + INSERT INTO `/Root/olapStore/olapTable` (timestamp, uid, resource_id) VALUES (Timestamp('1970-01-01T00:00:02Z'), 'c', 'test'); + )", NYdb::NQuery::TTxControl::BeginTx().CommitTx()).ExtractValueSync(); + + UNIT_ASSERT_C(result.IsSuccess(), result.GetIssues().ToString()); + + { + auto it = db.StreamExecuteQuery(R"( + --!syntax_v1 + + SELECT + * + FROM `/Root/olapStore/olapTable` ORDER BY uid + )", NYdb::NQuery::TTxControl::BeginTx().CommitTx()).GetValueSync(); + + UNIT_ASSERT_C(it.IsSuccess(), it.GetIssues().ToString()); + TString result = StreamResultToYson(it); + CompareYson(result, R"([[#;#;["0"];0u;"a"];[#;#;["t"];1000000u;"b"];[#;#;["test"];2000000u;"c"]])"); + } + } + } } diff --git a/ydb/library/yql/dq/type_ann/dq_type_ann.cpp b/ydb/library/yql/dq/type_ann/dq_type_ann.cpp index 2ba6d62acf06..91ecf3dd571e 100644 --- a/ydb/library/yql/dq/type_ann/dq_type_ann.cpp +++ b/ydb/library/yql/dq/type_ann/dq_type_ann.cpp @@ -270,9 +270,6 @@ TStatus AnnotateStage(const TExprNode::TPtr& stage, TExprContext& ctx) { } if (!sinks.empty()) { - for (auto sink : sinks) { - sink->SetTypeAnn(resultType); - } stageResultTypes.assign(programResultTypesTuple.begin(), programResultTypesTuple.end()); } else { for (auto transform : transforms) {