diff options
author | Andrey Neporada <neporada@gmail.com> | 2022-07-05 14:04:44 +0300 |
---|---|---|
committer | Andrey Neporada <neporada@gmail.com> | 2022-07-05 14:04:44 +0300 |
commit | bc3062704271d10240ecd6177321745bdbcb5b9d (patch) | |
tree | f168b02cd0fb09807b782d36f7022b199e773dca | |
parent | 1c667dec81484d589e639467ef4eda15a2dc4413 (diff) | |
download | ydb-bc3062704271d10240ecd6177321745bdbcb5b9d.tar.gz |
[YQL-14969] Disable S3 legacy syntax
ref:538d74ce2ac5f860bf68db84b7e5edd9bfd4f187
-rw-r--r-- | ydb/library/yql/providers/s3/provider/yql_s3_io_discovery.cpp | 26 |
1 files changed, 10 insertions, 16 deletions
diff --git a/ydb/library/yql/providers/s3/provider/yql_s3_io_discovery.cpp b/ydb/library/yql/providers/s3/provider/yql_s3_io_discovery.cpp index fabdd7b0377..528fec319a8 100644 --- a/ydb/library/yql/providers/s3/provider/yql_s3_io_discovery.cpp +++ b/ydb/library/yql/providers/s3/provider/yql_s3_io_discovery.cpp @@ -53,7 +53,7 @@ public: auto reads = FindNodes(input, [&](const TExprNode::TPtr& node) { if (const auto maybeRead = TMaybeNode<TS3Read>(node)) { if (maybeRead.DataSource()) { - return maybeRead.Cast().Arg(2).Ref().IsCallable({"MrObject", "MrTableConcat"}); + return maybeRead.Cast().Arg(2).Ref().IsCallable("MrTableConcat"); } } return false; @@ -63,10 +63,9 @@ public: for (auto& r : reads) { const TS3Read read(std::move(r)); std::unordered_set<std::string_view> paths; - if (const auto& object = read.Arg(2).Ref(); object.IsCallable("MrObject")) - paths.emplace(object.Head().Content()); - else if (object.IsCallable("MrTableConcat")) - object.ForEachChild([&paths](const TExprNode& child){ paths.emplace(child.Head().Tail().Head().Content()); }); + const auto& object = read.Arg(2).Ref(); + YQL_ENSURE(object.IsCallable("MrTableConcat")); + object.ForEachChild([&paths](const TExprNode& child){ paths.emplace(child.Head().Tail().Head().Content()); }); const auto& connect = State_->Configuration->Clusters.at(read.DataSource().Cluster().StringValue()); const auto& token = State_->Configuration->Tokens.at(read.DataSource().Cluster().StringValue()); const auto credentialsProviderFactory = CreateCredentialsProviderFactoryForStructuredToken(State_->CredentialsFactory, token); @@ -114,6 +113,7 @@ public: for (auto& [node, requests] : requestsByNode) { const TS3Read read(node); const auto& object = read.Arg(2).Ref(); + YQL_ENSURE(object.IsCallable("MrTableConcat")); size_t readSize = 0; TExprNode::TListType pathNodes; for (auto& req : requests) { @@ -158,17 +158,11 @@ public: auto settings = read.Ref().Child(4)->ChildrenList(); auto userSchema = ExtractSchema(settings); TExprNode::TPtr s3Object; - if (object.IsCallable("MrObject")) { - auto children = object.ChildrenList(); - children.front() = ctx.NewList(object.Pos(), std::move(pathNodes)); - s3Object = ctx.NewCallable(object.Pos(), TS3Object::CallableName(), std::move(children)); - } else if (object.IsCallable("MrTableConcat")) { - s3Object = Build<TS3Object>(ctx, object.Pos()) - .Paths(ctx.NewList(object.Pos(), std::move(pathNodes))) - .Format(ExtractFormat(settings)) - .Settings(ctx.NewList(object.Pos(), std::move(settings))) - .Done().Ptr(); - } + s3Object = Build<TS3Object>(ctx, object.Pos()) + .Paths(ctx.NewList(object.Pos(), std::move(pathNodes))) + .Format(ExtractFormat(settings)) + .Settings(ctx.NewList(object.Pos(), std::move(settings))) + .Done().Ptr(); replaces.emplace(node, userSchema.back() ? Build<TS3ReadObject>(ctx, read.Pos()) |