From f7ba50f265efea07b2e916727a94c8406657e44e Mon Sep 17 00:00:00 2001 From: Vadim Averin Date: Sun, 8 Sep 2024 16:42:38 +0000 Subject: [PATCH 1/2] Fix empty table name error --- ydb/library/yql/providers/yt/provider/yql_yt_key.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ydb/library/yql/providers/yt/provider/yql_yt_key.cpp b/ydb/library/yql/providers/yt/provider/yql_yt_key.cpp index 87a61e205dcb..93e3f1cedb9f 100644 --- a/ydb/library/yql/providers/yt/provider/yql_yt_key.cpp +++ b/ydb/library/yql/providers/yt/provider/yql_yt_key.cpp @@ -142,7 +142,7 @@ bool TYtKey::Parse(const TExprNode& key, TExprContext& ctx, bool isOutput) { const TExprNode* tableName = nameNode->Child(0); - if (tableName->Content().empty()) { + if (tableName->Content().empty() || tableName ->Content() == "//") { ctx.AddError(TIssue(ctx.GetPosition(tableName->Pos()), "Table name must not be empty")); return false; } From 956ac5ca022fbb06849b75038b7e46271a669540 Mon Sep 17 00:00:00 2001 From: Vadim Averin Date: Tue, 10 Sep 2024 08:06:14 +0000 Subject: [PATCH 2/2] Fixes from review --- .../yql/providers/yt/provider/yql_yt_io_discovery.cpp | 9 +++++++-- ydb/library/yql/providers/yt/provider/yql_yt_key.cpp | 4 ---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/ydb/library/yql/providers/yt/provider/yql_yt_io_discovery.cpp b/ydb/library/yql/providers/yt/provider/yql_yt_io_discovery.cpp index 928370c31a0f..8218f4cd51cd 100644 --- a/ydb/library/yql/providers/yt/provider/yql_yt_io_discovery.cpp +++ b/ydb/library/yql/providers/yt/provider/yql_yt_io_discovery.cpp @@ -152,8 +152,13 @@ class TYtIODiscoveryTransformer : public TGraphTransformerBase { .Name().Value(ToString(EYtSettingType::Anonymous)).Build() .Build() .Done(); - } else if (tableInfo.Name.StartsWith("//")) { - tableInfo.Name = tableInfo.Name.substr(2); + } else if (tableInfo.Name.StartsWith(NYT::TConfig::Get()->Prefix)) { + tableInfo.Name = tableInfo.Name.substr(NYT::TConfig::Get()->Prefix.size()); + } + + if (tableInfo.Name.empty()) { + ctx.AddError(TIssue(ctx.GetPosition(write.Pos()), "Table name must not be empty")); + return {}; } if (flush) { diff --git a/ydb/library/yql/providers/yt/provider/yql_yt_key.cpp b/ydb/library/yql/providers/yt/provider/yql_yt_key.cpp index 93e3f1cedb9f..a541b1af1d55 100644 --- a/ydb/library/yql/providers/yt/provider/yql_yt_key.cpp +++ b/ydb/library/yql/providers/yt/provider/yql_yt_key.cpp @@ -142,10 +142,6 @@ bool TYtKey::Parse(const TExprNode& key, TExprContext& ctx, bool isOutput) { const TExprNode* tableName = nameNode->Child(0); - if (tableName->Content().empty() || tableName ->Content() == "//") { - ctx.AddError(TIssue(ctx.GetPosition(tableName->Pos()), "Table name must not be empty")); - return false; - } Path = tableName->Content(); } else if (nameNode->IsCallable(MrTableRangeName) || nameNode->IsCallable(MrTableRangeStrictName)) {