aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrobot-srch-releaser <robot-srch-releaser@yandex-team.ru>2022-05-24 21:12:04 +0300
committerrobot-srch-releaser <robot-srch-releaser@yandex-team.ru>2022-05-24 21:12:04 +0300
commit30efb7cf3661c8170af80ec2c9ba01b99fcd4a73 (patch)
treea3d88c91fc5b9054e8550be119d392383728bcd3
parent997a36b0da76d8e18cdd8680670aa9adbd50733f (diff)
downloadydb-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.cpp26
-rw-r--r--ydb/library/yql/core/yql_expr_type_annotation.cpp18
-rw-r--r--ydb/library/yql/public/issue/yql_issue_manager.cpp30
-rw-r--r--ydb/library/yql/public/issue/yql_issue_manager.h7
-rw-r--r--ydb/services/ydb/ydb_table_ut.cpp1
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);