From c3a6c178b8eb4d18a5203a61bb1aabb583579392 Mon Sep 17 00:00:00 2001 From: Mikhail Surin Date: Thu, 29 Feb 2024 18:56:16 +0300 Subject: [PATCH] Fix predicate pushdown prompt (#2348) --- .../opt/logical/kqp_opt_log_ranges_predext.cpp | 2 +- ydb/core/kqp/ut/opt/kqp_ne_ut.cpp | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/ydb/core/kqp/opt/logical/kqp_opt_log_ranges_predext.cpp b/ydb/core/kqp/opt/logical/kqp_opt_log_ranges_predext.cpp index 5a8ff001bcd5..0c185b50dafa 100644 --- a/ydb/core/kqp/opt/logical/kqp_opt_log_ranges_predext.cpp +++ b/ydb/core/kqp/opt/logical/kqp_opt_log_ranges_predext.cpp @@ -366,7 +366,7 @@ TExprBase KqpPushExtractedPredicateToReadTable(TExprBase node, TExprContext& ctx if (buildResult.ExpectedMaxRanges.Defined()) { prompt.SetExpectedMaxRanges(buildResult.ExpectedMaxRanges.GetRef()); } - prompt.SetPointPrefixLen(buildResult.UsedPrefixLen); + prompt.SetPointPrefixLen(buildResult.PointPrefixLen); YQL_CLOG(DEBUG, ProviderKqp) << "Ranges extracted: " << KqpExprToPrettyString(*ranges, ctx); YQL_CLOG(DEBUG, ProviderKqp) << "Residual lambda: " << KqpExprToPrettyString(*residualLambda, ctx); diff --git a/ydb/core/kqp/ut/opt/kqp_ne_ut.cpp b/ydb/core/kqp/ut/opt/kqp_ne_ut.cpp index d79e0f3440a1..3a5088015a1c 100644 --- a/ydb/core/kqp/ut/opt/kqp_ne_ut.cpp +++ b/ydb/core/kqp/ut/opt/kqp_ne_ut.cpp @@ -2641,6 +2641,22 @@ Y_UNIT_TEST_SUITE(KqpNewEngine) { ])", FormatResultSetYson(result.GetResultSet(0))); } + Y_UNIT_TEST(DeleteON) { + auto kikimr = DefaultKikimrRunner(); + auto db = kikimr.GetTableClient(); + auto session = db.CreateSession().GetValueSync().GetSession(); + + NYdb::NTable::TExecDataQuerySettings execSettings; + execSettings.CollectQueryStats(ECollectQueryStatsMode::Basic); + + auto result = session.ExecuteDataQuery(R"( + --!syntax_v1 + + DELETE FROM `/Root/Join2` where (Key1 = 1 and Key2 = "") OR Key1 = 3; + )", TTxControl::BeginTx().CommitTx(), execSettings).ExtractValueSync(); + UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString()); + } + Y_UNIT_TEST(JoinWithPrecompute) { auto kikimr = DefaultKikimrRunner(); auto db = kikimr.GetTableClient();