diff options
author | robot-srch-releaser <robot-srch-releaser@yandex-team.ru> | 2022-05-24 21:12:04 +0300 |
---|---|---|
committer | robot-srch-releaser <robot-srch-releaser@yandex-team.ru> | 2022-05-24 21:12:04 +0300 |
commit | 30efb7cf3661c8170af80ec2c9ba01b99fcd4a73 (patch) | |
tree | a3d88c91fc5b9054e8550be119d392383728bcd3 | |
parent | 997a36b0da76d8e18cdd8680670aa9adbd50733f (diff) | |
download | ydb-30efb7cf3661c8170af80ec2c9ba01b99fcd4a73.tar.gz |
Rollback: r9496078
[diff-resolver:ssmike] Sandbox task: https://sandbox.yandex-team.ru/task/1319648660/view
Task author: ssmike@
Description: rollback r9496078
Note: mandatory check (NEED_CHECK) was skipped
ref:0d8ac4027bc0c268dbd97c8f38fdd7f98a8c1d04
-rw-r--r-- | ydb/core/kqp/ut/kqp_yql_ut.cpp | 26 | ||||
-rw-r--r-- | ydb/library/yql/core/yql_expr_type_annotation.cpp | 18 | ||||
-rw-r--r-- | ydb/library/yql/public/issue/yql_issue_manager.cpp | 30 | ||||
-rw-r--r-- | ydb/library/yql/public/issue/yql_issue_manager.h | 7 | ||||
-rw-r--r-- | ydb/services/ydb/ydb_table_ut.cpp | 1 |
5 files changed, 21 insertions, 61 deletions
diff --git a/ydb/core/kqp/ut/kqp_yql_ut.cpp b/ydb/core/kqp/ut/kqp_yql_ut.cpp index 616fc91aa7..67b87ea306 100644 --- a/ydb/core/kqp/ut/kqp_yql_ut.cpp +++ b/ydb/core/kqp/ut/kqp_yql_ut.cpp @@ -309,32 +309,6 @@ Y_UNIT_TEST_SUITE(KqpYql) { [[2u];["Two"]] ])", FormatResultSetYson(result.GetResultSet(0))); } - - Y_UNIT_TEST_NEW_ENGINE(ColumnTypeMismatch) { - TKikimrRunner kikimr; - auto db = kikimr.GetTableClient(); - auto session = db.CreateSession().GetValueSync().GetSession(); - - auto params = TParamsBuilder() - .AddParam("$key").Uint64(1).Build() - .AddParam("$value").Uint64(2).Build() - .Build(); - - TExecDataQuerySettings settings; - auto req = session.ExecuteDataQuery(Q_(R"( - DECLARE $key AS Uint64; - DECLARE $value AS Uint64; - - REPLACE INTO `KeyValue` - (Key, Value) - VALUES - ($key, $value); - )"), TTxControl::BeginTx().CommitTx(), params).ExtractValueSync(); - - req.GetIssues().PrintTo(Cerr); - UNIT_ASSERT_VALUES_EQUAL(req.GetStatus(), EStatus::GENERIC_ERROR); - UNIT_ASSERT_STRING_CONTAINS(req.GetIssues().ToString(), "Failed to convert 'Value': Uint64 to Optional<String>"); - } } } // namespace NKqp diff --git a/ydb/library/yql/core/yql_expr_type_annotation.cpp b/ydb/library/yql/core/yql_expr_type_annotation.cpp index efd5160faa..b8a00d753b 100644 --- a/ydb/library/yql/core/yql_expr_type_annotation.cpp +++ b/ydb/library/yql/core/yql_expr_type_annotation.cpp @@ -385,8 +385,6 @@ IGraphTransformer::TStatus TryConvertToImpl(TExprContext& ctx, TExprNode::TPtr& TExprNode::TPtr field; if (!pos) { if (newField->GetItemType()->GetKind() != ETypeAnnotationKind::Optional) { - ctx.AddError(TIssue(node->Pos(ctx), TStringBuilder() << - "Can't find '" << newField->GetName() << "': " << *newField->GetItemType() << " in " << sourceType)); return IGraphTransformer::TStatus::Error; } @@ -408,8 +406,6 @@ IGraphTransformer::TStatus TryConvertToImpl(TExprContext& ctx, TExprNode::TPtr& YQL_ENSURE(field); auto status = TryConvertToImpl(ctx, field, *oldType->GetItemType(), *newField->GetItemType(), flags); if (status.Level == IGraphTransformer::TStatus::Error) { - ctx.AddError(TIssue(node->Pos(ctx), TStringBuilder() << - "Failed to convert '" << newField->GetName() << "': " << *oldType->GetItemType() << " to " << *newField->GetItemType())); return status; } } @@ -451,8 +447,6 @@ IGraphTransformer::TStatus TryConvertToImpl(TExprContext& ctx, TExprNode::TPtr& .Seal() .Build(); } else { - ctx.AddError(TIssue(node->Pos(ctx), TStringBuilder() << - "Can't find '" << newField->GetName() << "': " << *newField->GetItemType() << " in " << sourceType)); return IGraphTransformer::TStatus::Error; } } else { @@ -467,8 +461,6 @@ IGraphTransformer::TStatus TryConvertToImpl(TExprContext& ctx, TExprNode::TPtr& auto status = TryConvertToImpl(ctx, field, *oldType->GetItemType(), *newField->GetItemType(), flags); if (status.Level == IGraphTransformer::TStatus::Error) { - ctx.AddError(TIssue(node->Pos(ctx), TStringBuilder() << - "Failed to convert '" << newField->GetName() << "': " << *oldType->GetItemType() << " to " << *newField->GetItemType())); return status; } } @@ -3407,14 +3399,12 @@ IGraphTransformer::TStatus TryConvertTo(TExprNode::TPtr& node, const TTypeAnnota return IGraphTransformer::TStatus::Error; } - TIssueScopeGuard guard(ctx.IssueManager, [&] { - return MakeIntrusive<TIssue>(ctx.GetPosition(node->Pos()), - TStringBuilder() << "Failed to convert type: " << sourceType << " to " << expectedType); - }); auto status = TryConvertToImpl(ctx, node, sourceType, expectedType, flags); - if (status.Level == IGraphTransformer::TStatus::Error) { - guard.MakeIssueForEmptyScope(); + if (status.Level == IGraphTransformer::TStatus::Error) { + ctx.AddError(TIssue(ctx.GetPosition(node->Pos()), TStringBuilder() << "Failed to convert type: " << + sourceType << " to " << expectedType)); } + return status; } diff --git a/ydb/library/yql/public/issue/yql_issue_manager.cpp b/ydb/library/yql/public/issue/yql_issue_manager.cpp index b5912fabd7..7375d2d30f 100644 --- a/ydb/library/yql/public/issue/yql_issue_manager.cpp +++ b/ydb/library/yql/public/issue/yql_issue_manager.cpp @@ -50,18 +50,6 @@ void TIssueManager::LeaveScope() { } } RawIssues_.pop(); - MakeIssueForEmptyScope(); - - if (subIssue->GetCode() == Max<ui32>()) { - for (const auto& nestedIssue : subIssue->GetSubIssues()) { - RawIssues_.top().first->Get()->AddSubIssue(nestedIssue); - } - } else { - RawIssues_.top().first->Get()->AddSubIssue(subIssue); - } -} - -void TIssueManager::MakeIssueForEmptyScope() { if (RawIssues_.top().first.Empty()) { RawIssues_.top().first = RawIssues_.top().second(); if (!*RawIssues_.top().first) { @@ -71,6 +59,14 @@ void TIssueManager::MakeIssueForEmptyScope() { (*RawIssues_.top().first)->Severity = ESeverity::TSeverityIds_ESeverityId_S_INFO; } } + + if (subIssue->GetCode() == Max<ui32>()) { + for (const auto& nestedIssue : subIssue->GetSubIssues()) { + RawIssues_.top().first->Get()->AddSubIssue(nestedIssue); + } + } else { + RawIssues_.top().first->Get()->AddSubIssue(subIssue); + } } void TIssueManager::LeaveAllScopes() { @@ -107,7 +103,15 @@ void TIssueManager::RaiseIssue(const TIssue& issue) { CompletedIssues_.AddIssue(issue); return; } - MakeIssueForEmptyScope(); + if (RawIssues_.top().first.Empty()) { + RawIssues_.top().first = RawIssues_.top().second(); + if (!*RawIssues_.top().first) { + RawIssues_.top().first = new TIssue(); + (*RawIssues_.top().first)->SetCode(Max<ui32>(), ESeverity::TSeverityIds_ESeverityId_S_INFO); + } else { + (*RawIssues_.top().first)->Severity = ESeverity::TSeverityIds_ESeverityId_S_INFO; + } + } RawIssues_.top().first->Get()->AddSubIssue(p); } diff --git a/ydb/library/yql/public/issue/yql_issue_manager.h b/ydb/library/yql/public/issue/yql_issue_manager.h index e0d831a58a..9ad5ac7bb4 100644 --- a/ydb/library/yql/public/issue/yql_issue_manager.h +++ b/ydb/library/yql/public/issue/yql_issue_manager.h @@ -36,8 +36,6 @@ public: IssueLimit_ = limit; } - void MakeIssueForEmptyScope(); - private: TIssuePtr CheckUniqAndLimit(const TIssue& issue); @@ -68,11 +66,6 @@ public: { Manager_.AddScope(fn); } - - void MakeIssueForEmptyScope() { - Manager_.MakeIssueForEmptyScope(); - } - ~TIssueScopeGuard() { Manager_.LeaveScope(); diff --git a/ydb/services/ydb/ydb_table_ut.cpp b/ydb/services/ydb/ydb_table_ut.cpp index de43ed56e2..c5854ec7be 100644 --- a/ydb/services/ydb/ydb_table_ut.cpp +++ b/ydb/services/ydb/ydb_table_ut.cpp @@ -197,7 +197,6 @@ Y_UNIT_TEST_SUITE(YdbYqlClient) { auto ref = R"___(<main>: Error: Type annotation, code: 1030 <main>:2:25: Error: At function: KiWriteTable! <main>:2:43: Error: Failed to convert type: Struct<'Key':String,'Value':String> to Struct<'Key':Uint32?,'Value':String?> - <main>:2:43: Error: Failed to convert 'Key': String to Optional<Uint32> <main>:2:43: Error: Failed to convert input columns types to scheme types, code: 2031 )___"; UNIT_ASSERT_EQUAL(result.GetIssues().Size(), 1); |