Skip to content

Commit

Permalink
fix missed check for usedIndexes. (#947)
Browse files Browse the repository at this point in the history
  • Loading branch information
dcherednik authored Jan 11, 2024
1 parent e678637 commit 27016d5
Showing 1 changed file with 6 additions and 4 deletions.
10 changes: 6 additions & 4 deletions ydb/core/kqp/opt/physical/effects/kqp_opt_phy_upsert_index.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -365,10 +365,12 @@ TMaybe<TCondenseInputResult> CheckUniqueConstraint(const TExprBase& inputRows, c
for (const auto& [_, indexDesc] : indexes) {
hasUniqIndex |= (indexDesc->Type == TIndexDescription::EType::GlobalSyncUnique);
for (const auto& indexKeyCol : indexDesc->KeyColumns) {
if (inputColumns.contains(indexKeyCol)
&& std::find(mainPk.begin(), mainPk.end(), indexKeyCol) == mainPk.end())
{
usedIndexes.insert(indexDesc->Name);
if (inputColumns.contains(indexKeyCol)) {
if (!usedIndexes.contains(indexDesc->Name) &&
std::find(mainPk.begin(), mainPk.end(), indexKeyCol) == mainPk.end())
{
usedIndexes.insert(indexDesc->Name);
}
} else {
// input always contains key columns
YQL_ENSURE(std::find(mainPk.begin(), mainPk.end(), indexKeyCol) == mainPk.end());
Expand Down

0 comments on commit 27016d5

Please sign in to comment.