diff options
author | vvvv <vvvv@ydb.tech> | 2023-10-24 17:36:16 +0300 |
---|---|---|
committer | vvvv <vvvv@ydb.tech> | 2023-10-24 18:22:36 +0300 |
commit | fbd998fd44d81627f110ae3760d6379905b785f7 (patch) | |
tree | 051ec1cac0a42158b136fc94b3f9f2e8dc1d0ee3 | |
parent | f9cbd389cd6379f7e439acaf9ea76c19433940ce (diff) | |
download | ydb-fbd998fd44d81627f110ae3760d6379905b785f7.tar.gz |
YQL-16922 feature flag, another way to keep inner worlds deps
20 files changed, 169 insertions, 27 deletions
diff --git a/ydb/library/yql/providers/yt/common/yql_yt_settings.cpp b/ydb/library/yql/providers/yt/common/yql_yt_settings.cpp index 411388bdb7..e57b67b611 100644 --- a/ydb/library/yql/providers/yt/common/yql_yt_settings.cpp +++ b/ydb/library/yql/providers/yt/common/yql_yt_settings.cpp @@ -451,6 +451,7 @@ TYtConfiguration::TYtConfiguration() } return res; }); + REGISTER_SETTING(*this, ViewIsolation); } EReleaseTempDataMode GetReleaseTempDataMode(const TYtSettings& settings) { diff --git a/ydb/library/yql/providers/yt/common/yql_yt_settings.h b/ydb/library/yql/providers/yt/common/yql_yt_settings.h index f688c78533..82845e0e80 100644 --- a/ydb/library/yql/providers/yt/common/yql_yt_settings.h +++ b/ydb/library/yql/providers/yt/common/yql_yt_settings.h @@ -260,6 +260,7 @@ struct TYtSettings { NCommon::TConfSetting<double, false> MaxCpuUsageToFuseMultiOuts; NCommon::TConfSetting<double, false> MaxReplicationFactorToFuseMultiOuts; NCommon::TConfSetting<ui64, false> ApplyStoredConstraints; + NCommon::TConfSetting<bool, false> ViewIsolation; }; EReleaseTempDataMode GetReleaseTempDataMode(const TYtSettings& settings); diff --git a/ydb/library/yql/providers/yt/provider/yql_yt_datasource.cpp b/ydb/library/yql/providers/yt/provider/yql_yt_datasource.cpp index 9a6c347c1c..f11e0f1eff 100644 --- a/ydb/library/yql/providers/yt/provider/yql_yt_datasource.cpp +++ b/ydb/library/yql/providers/yt/provider/yql_yt_datasource.cpp @@ -730,7 +730,9 @@ private: YQL_ENSURE(root, "View is not initialized: " << view); TOptimizeExprSettings settings(nullptr); settings.VisitChanges = true; - auto status = OptimizeExpr(root, root, [newReadNode, rightOverRead, &readNode](const TExprNode::TPtr& node, TExprContext& ctx) { + TExprNode::TListType innerWorlds; + const bool enableViewIsolation = State_->Configuration->ViewIsolation.Get().GetOrElse(false); + auto status = OptimizeExpr(root, root, [newReadNode, rightOverRead, &readNode, enableViewIsolation, &innerWorlds](const TExprNode::TPtr& node, TExprContext& ctx) { if (auto world = TMaybeNode<TCoLeft>(node).Input().Maybe<TCoRead>().World()) { return world.Cast().Ptr(); } @@ -752,6 +754,12 @@ private: YQL_ENSURE(false, "Unknown table name (should be self or self_raw): " << tableName); } + if (enableViewIsolation) { + if (read.World().Raw()->Type() != TExprNode::World) { + innerWorlds.push_back(read.World().Ptr()); + } + } + return selfRead; } @@ -766,6 +774,13 @@ private: if (status.Level == IGraphTransformer::TStatus::Error) { return {}; } + + if (!innerWorlds.empty()) { + innerWorlds.push_back(origReadNode.World().Ptr()); + auto combined = ctx.NewCallable(origReadNode.World().Pos(), "Sync!", std::move(innerWorlds)); + root = ctx.ReplaceNode(std::move(root), *origReadNode.World().Raw(), combined); + } + newReadNode = root; ctx.Step .Repeat(TExprStep::ExpandApplyForLambdas) diff --git a/ydb/library/yql/providers/yt/provider/yql_yt_load_table_meta.cpp b/ydb/library/yql/providers/yt/provider/yql_yt_load_table_meta.cpp index 496efc48a3..80062f05c2 100644 --- a/ydb/library/yql/providers/yt/provider/yql_yt_load_table_meta.cpp +++ b/ydb/library/yql/providers/yt/provider/yql_yt_load_table_meta.cpp @@ -102,7 +102,8 @@ public: // Intents/views can be updated since evaluation phase if (!tableDesc.FillViews( clusterAndTable.first, clusterAndTable.second, ctx, - State_->Types->Modules.get(), State_->Types->UrlListerManager.Get(), *State_->Types->RandomProvider + State_->Types->Modules.get(), State_->Types->UrlListerManager.Get(), *State_->Types->RandomProvider, + State_->Configuration->ViewIsolation.Get().GetOrElse(false) )) { return TStatus::Error; } @@ -229,7 +230,8 @@ public: if (0 == LoadCtx->Epoch) { if (!tableDesc.Fill( cluster, tableName, ctx, - State_->Types->Modules.get(), State_->Types->UrlListerManager.Get(), *State_->Types->RandomProvider + State_->Types->Modules.get(), State_->Types->UrlListerManager.Get(), *State_->Types->RandomProvider, + State_->Configuration->ViewIsolation.Get().GetOrElse(false) )) { return TStatus::Error; } diff --git a/ydb/library/yql/providers/yt/provider/yql_yt_provider.cpp b/ydb/library/yql/providers/yt/provider/yql_yt_provider.cpp index 650030922b..59a9ed8863 100644 --- a/ydb/library/yql/providers/yt/provider/yql_yt_provider.cpp +++ b/ydb/library/yql/providers/yt/provider/yql_yt_provider.cpp @@ -14,7 +14,8 @@ namespace NYql { bool TYtTableDescription::Fill( const TString& cluster, const TString& table, TExprContext& ctx, - IModuleResolver* moduleResolver, IUrlListerManager* urlListerManager, IRandomProvider& randomProvider) { + IModuleResolver* moduleResolver, IUrlListerManager* urlListerManager, IRandomProvider& randomProvider, + bool allowViewIsolation) { const TStructExprType* type = RowSpec ? RowSpec->GetType() : nullptr; if (!type) { TVector<const TItemExprType*> items; @@ -28,7 +29,7 @@ bool TYtTableDescription::Fill( if (!TYtTableDescriptionBase::Fill(TString{YtProviderName}, cluster, table, type, Meta->SqlView, Meta->SqlViewSyntaxVersion, Meta->Attrs, ctx, - moduleResolver, urlListerManager, randomProvider)) { + moduleResolver, urlListerManager, randomProvider, allowViewIsolation)) { return false; } if (QB2RowSpec) { @@ -243,10 +244,11 @@ void TYtTableDescription::SetConstraintsReady() { bool TYtTableDescription::FillViews( const TString& cluster, const TString& table, TExprContext& ctx, - IModuleResolver* moduleResolver, IUrlListerManager* urlListerManager, IRandomProvider& randomProvider) { + IModuleResolver* moduleResolver, IUrlListerManager* urlListerManager, IRandomProvider& randomProvider, + bool allowViewIsolation) { return TYtTableDescriptionBase::FillViews( TString{YtProviderName}, cluster, table, Meta->Attrs, ctx, - moduleResolver, urlListerManager, randomProvider); + moduleResolver, urlListerManager, randomProvider, allowViewIsolation); } const TYtTableDescription& TYtTablesData::GetTable(const TString& cluster, const TString& table, TMaybe<ui32> epoch) const { diff --git a/ydb/library/yql/providers/yt/provider/yql_yt_provider.h b/ydb/library/yql/providers/yt/provider/yql_yt_provider.h index 94e55d44c7..3da522530e 100644 --- a/ydb/library/yql/providers/yt/provider/yql_yt_provider.h +++ b/ydb/library/yql/providers/yt/provider/yql_yt_provider.h @@ -46,14 +46,16 @@ struct TYtTableDescription: public TYtTableDescriptionBase { bool Fill( const TString& cluster, const TString& table, TExprContext& ctx, - IModuleResolver* moduleResolver, IUrlListerManager* urlListerManager, IRandomProvider& randomProvider); + IModuleResolver* moduleResolver, IUrlListerManager* urlListerManager, IRandomProvider& randomProvider, + bool allowViewIsolation); void ToYson(NYson::TYsonWriter& writer, const TString& cluster, const TString& table, const TString& view) const; bool Validate(TPosition pos, TStringBuf cluster, TStringBuf tableName, bool withQB, const THashMap<std::pair<TString, TString>, TString>& anonymousLabels, TExprContext& ctx) const; void SetConstraintsReady(); bool FillViews( const TString& cluster, const TString& table, TExprContext& ctx, - IModuleResolver* moduleResolver, IUrlListerManager* urlListerManager, IRandomProvider& randomProvider); + IModuleResolver* moduleResolver, IUrlListerManager* urlListerManager, IRandomProvider& randomProvider, + bool allowViewIsolation); }; // Anonymous tables are kept by labels diff --git a/ydb/library/yql/providers/yt/provider/yql_yt_table_desc.cpp b/ydb/library/yql/providers/yt/provider/yql_yt_table_desc.cpp index d7c1dd4385..c5c7cff252 100644 --- a/ydb/library/yql/providers/yt/provider/yql_yt_table_desc.cpp +++ b/ydb/library/yql/providers/yt/provider/yql_yt_table_desc.cpp @@ -150,7 +150,7 @@ TExprNode::TPtr BuildIgnoreTypeV3Remapper(const TStructExprType* rowType, TExprC } TExprNode::TPtr CompileViewSql(const TString& provider, const TString& cluster, const TString& sql, ui16 syntaxVersion, - TExprContext& ctx, IModuleResolver* moduleResolver, IUrlListerManager* urlListerManager, IRandomProvider& randomProvider) + TExprContext& ctx, IModuleResolver* moduleResolver, IUrlListerManager* urlListerManager, IRandomProvider& randomProvider, bool enableViewIsolation) { NSQLTranslation::TTranslationSettings settings; settings.Mode = NSQLTranslation::ESqlMode::LIMITED_VIEW; @@ -159,7 +159,10 @@ TExprNode::TPtr CompileViewSql(const TString& provider, const TString& cluster, settings.SyntaxVersion = syntaxVersion; settings.V0Behavior = NSQLTranslation::EV0Behavior::Disable; settings.FileAliasPrefix = "view_" + randomProvider.GenUuid4().AsGuidString() + "/"; - settings.FileAliasPrefix.clear(); // disable FileAliasPrefix while preserving number of randomProvider calls + if (!enableViewIsolation) { + settings.FileAliasPrefix.clear(); // disable FileAliasPrefix while preserving number of randomProvider calls + } + NYql::TAstParseResult sqlRes = NSQLTranslation::SqlToYql(sql, settings); ctx.IssueManager.RaiseIssues(sqlRes.Issues); if (!sqlRes.IsOk()) { @@ -241,10 +244,10 @@ TExprNode::TPtr CompileViewSql(const TString& provider, const TString& cluster, bool TYtViewDescription::Fill(const TString& provider, const TString& cluster, const TString& sql, ui16 syntaxVersion, TExprContext& ctx, - IModuleResolver* moduleResolver, IUrlListerManager* urlListerManager, IRandomProvider& randomProvider) + IModuleResolver* moduleResolver, IUrlListerManager* urlListerManager, IRandomProvider& randomProvider, bool enableViewIsolation) { Sql = sql; - CompiledSql = CompileViewSql(provider, cluster, sql, syntaxVersion, ctx, moduleResolver, urlListerManager, randomProvider); + CompiledSql = CompileViewSql(provider, cluster, sql, syntaxVersion, ctx, moduleResolver, urlListerManager, randomProvider, enableViewIsolation); return bool(CompiledSql); } @@ -255,7 +258,7 @@ void TYtViewDescription::CleanupCompiledSQL() bool TYtTableDescriptionBase::Fill(const TString& provider, const TString& cluster, const TString& table, const TStructExprType* type, const TString& viewSql, ui16 syntaxVersion, const THashMap<TString, TString>& metaAttrs, - TExprContext& ctx, IModuleResolver* moduleResolver, IUrlListerManager* urlListerManager, IRandomProvider& randomProvider) + TExprContext& ctx, IModuleResolver* moduleResolver, IUrlListerManager* urlListerManager, IRandomProvider& randomProvider, bool enableViewIsolation) { // (1) row type RawRowType = type; @@ -334,13 +337,13 @@ bool TYtTableDescriptionBase::Fill(const TString& provider, const TString& clust } // (3) views - if (!FillViews(provider, cluster, table, metaAttrs, ctx, moduleResolver, urlListerManager, randomProvider)) { + if (!FillViews(provider, cluster, table, metaAttrs, ctx, moduleResolver, urlListerManager, randomProvider, enableViewIsolation)) { return false; } if (viewSql) { if (!View) { - if (!View.ConstructInPlace().Fill(provider, cluster, viewSql, syntaxVersion, ctx, moduleResolver, urlListerManager, randomProvider)) { + if (!View.ConstructInPlace().Fill(provider, cluster, viewSql, syntaxVersion, ctx, moduleResolver, urlListerManager, randomProvider, enableViewIsolation)) { ctx.AddError(TIssue(TPosition(), TStringBuilder() << "Can't load sql view, table: " << cluster << '.' << table)); return false; @@ -353,7 +356,7 @@ bool TYtTableDescriptionBase::Fill(const TString& provider, const TString& clust bool TYtTableDescriptionBase::FillViews(const TString& provider, const TString& cluster, const TString& table, const THashMap<TString, TString>& metaAttrs, TExprContext& ctx, IModuleResolver* moduleResolver, IUrlListerManager* urlListerManager, - IRandomProvider& randomProvider) + IRandomProvider& randomProvider, bool allowViewIsolation) { for (auto& view: Views) { TYtViewDescription& viewDesc = view.second; @@ -381,7 +384,7 @@ bool TYtTableDescriptionBase::FillViews(const TString& provider, const TString& } } - if (!viewDesc.Fill(provider, cluster, viewSql, syntaxVersion, ctx, moduleResolver, urlListerManager, randomProvider)) { + if (!viewDesc.Fill(provider, cluster, viewSql, syntaxVersion, ctx, moduleResolver, urlListerManager, randomProvider, allowViewIsolation)) { ctx.AddError(TIssue(TPosition(), TStringBuilder() << "Can't load sql view " << viewSql.Quote() << ", table: " << cluster << '.' << table diff --git a/ydb/library/yql/providers/yt/provider/yql_yt_table_desc.h b/ydb/library/yql/providers/yt/provider/yql_yt_table_desc.h index 3c47e70fbd..5acc1067ab 100644 --- a/ydb/library/yql/providers/yt/provider/yql_yt_table_desc.h +++ b/ydb/library/yql/providers/yt/provider/yql_yt_table_desc.h @@ -49,7 +49,7 @@ struct TYtViewDescription { const TTypeAnnotationNode* RowType = nullptr; // Filled only if scheme requested bool Fill(const TString& provider, const TString& cluster, const TString& sql, ui16 syntaxVersion, TExprContext& ctx, - IModuleResolver* moduleResolver, IUrlListerManager* urlListerManager, IRandomProvider& randomProvider); + IModuleResolver* moduleResolver, IUrlListerManager* urlListerManager, IRandomProvider& randomProvider, bool enableViewIsolation); void CleanupCompiledSQL(); }; @@ -70,10 +70,12 @@ struct TYtTableDescriptionBase { bool Fill(const TString& provider, const TString& cluster, const TString& table, const TStructExprType* type, const TString& viewSql, ui16 syntaxVersion, const THashMap<TString, TString>& metaAttrs, TExprContext& ctx, - IModuleResolver* moduleResolver, IUrlListerManager* urlListerManager, IRandomProvider& randomProvider); + IModuleResolver* moduleResolver, IUrlListerManager* urlListerManager, IRandomProvider& randomProvider, + bool enableViewIsolation); void CleanupCompiledSQL(); bool FillViews(const TString& provider, const TString& cluster, const TString& table, const THashMap<TString, TString>& metaAttrs, - TExprContext& ctx, IModuleResolver* moduleResolver, IUrlListerManager* urlListerManager, IRandomProvider& randomProvider); + TExprContext& ctx, IModuleResolver* moduleResolver, IUrlListerManager* urlListerManager, IRandomProvider& randomProvider, + bool enableViewIsolation); }; } diff --git a/ydb/library/yql/tests/sql/dq_file/part1/canondata/result.json b/ydb/library/yql/tests/sql/dq_file/part1/canondata/result.json index 3989b75b9d..163b59c039 100644 --- a/ydb/library/yql/tests/sql/dq_file/part1/canondata/result.json +++ b/ydb/library/yql/tests/sql/dq_file/part1/canondata/result.json @@ -5271,6 +5271,28 @@ } ], "test.test[udf-udf_empty--Results]": [], + "test.test[view-file_inner--Analyze]": [ + { + "checksum": "54309e5edab077a2d8be42ffb37c28ef", + "size": 3714, + "uri": "https://storage.yandex-team.ru/get-devtools/1936842/2efa1889a5b9a34d1d175cc9294c735a49bae32b/resource.tar.gz#test.test_view-file_inner--Analyze_/plan.txt" + } + ], + "test.test[view-file_inner--Debug]": [ + { + "checksum": "62667771fc9f6b4e85c2b2c0234bb544", + "size": 2292, + "uri": "https://storage.yandex-team.ru/get-devtools/1936842/2efa1889a5b9a34d1d175cc9294c735a49bae32b/resource.tar.gz#test.test_view-file_inner--Debug_/opt.yql_patched" + } + ], + "test.test[view-file_inner--Plan]": [ + { + "checksum": "54309e5edab077a2d8be42ffb37c28ef", + "size": 3714, + "uri": "https://storage.yandex-team.ru/get-devtools/1936842/2efa1889a5b9a34d1d175cc9294c735a49bae32b/resource.tar.gz#test.test_view-file_inner--Plan_/plan.txt" + } + ], + "test.test[view-file_inner--Results]": [], "test.test[view-view_with_library--Analyze]": [ { "checksum": "6eee21387ac9a19187d0bfda16852d86", diff --git a/ydb/library/yql/tests/sql/dq_file/part2/canondata/result.json b/ydb/library/yql/tests/sql/dq_file/part2/canondata/result.json index c688131499..6c0eaa0592 100644 --- a/ydb/library/yql/tests/sql/dq_file/part2/canondata/result.json +++ b/ydb/library/yql/tests/sql/dq_file/part2/canondata/result.json @@ -5789,6 +5789,11 @@ } ], "test.test[union_all-union_all_with_discard_into_result_ansi-default.txt-Results]": [], + "test.test[view-file_outer--Results]": [ + { + "uri": "file://test.test_view-file_outer--Results_/extracted" + } + ], "test.test[weak_field-yql-7888_mapfieldsubset--Analyze]": [ { "checksum": "794347e345742152325e2c4ad845019f", diff --git a/ydb/library/yql/tests/sql/dq_file/part2/canondata/test.test_view-file_outer--Results_/extracted b/ydb/library/yql/tests/sql/dq_file/part2/canondata/test.test_view-file_outer--Results_/extracted new file mode 100644 index 0000000000..2c57e4b856 --- /dev/null +++ b/ydb/library/yql/tests/sql/dq_file/part2/canondata/test.test_view-file_outer--Results_/extracted @@ -0,0 +1,14 @@ +<tmp_path>/program.sql:<main>: Error: Type annotation + + <tmp_path>/program.sql:<main>:5:1: Error: At function: RemovePrefixMembers, At function: Unordered, At function: PersistableRepr, At function: OrderedSqlProject, At function: Merge + SELECT k, s, v FROM Input VIEW file_outer; + ^ + <tmp_path>/program.sql:<main>:1:1: Error: At function: PersistableRepr, At function: OrderedSqlProject, At function: SqlProjectItem + /* postgres can not */ + ^ + <tmp_path>/program.sql:<main>:1:8: Error: At function: FileContent + /* postgres can not */ + ^ + <tmp_path>/program.sql:<main>:1:29: Error: File not found: view_bb686f68-4245bd5f-2318fa8e-22eb9250/foo.txt + /* postgres can not */ + ^
\ No newline at end of file diff --git a/ydb/library/yql/tests/sql/sql2yql/canondata/result.json b/ydb/library/yql/tests/sql/sql2yql/canondata/result.json index 480f9a815b..7c3e7a47a0 100644 --- a/ydb/library/yql/tests/sql/sql2yql/canondata/result.json +++ b/ydb/library/yql/tests/sql/sql2yql/canondata/result.json @@ -15751,9 +15751,23 @@ ], "test_sql2yql.test[view-file_eval]": [ { - "checksum": "ac772591f007980437e9a88f1d532ce3", - "size": 1404, - "uri": "https://storage.yandex-team.ru/get-devtools/1880306/50efd53ad53129cbd4f94db66527b230b24320d3/resource.tar.gz#test_sql2yql.test_view-file_eval_/sql.yql" + "checksum": "33af7168e84c7113b536d42b1d423440", + "size": 1495, + "uri": "https://storage.yandex-team.ru/get-devtools/1936273/12b0fce12ec386ac74f561a826f56b64f91391eb/resource.tar.gz#test_sql2yql.test_view-file_eval_/sql.yql" + } + ], + "test_sql2yql.test[view-file_inner]": [ + { + "checksum": "a1ee4064a4fce813154581fee0b2f42f", + "size": 1496, + "uri": "https://storage.yandex-team.ru/get-devtools/1936273/12b0fce12ec386ac74f561a826f56b64f91391eb/resource.tar.gz#test_sql2yql.test_view-file_inner_/sql.yql" + } + ], + "test_sql2yql.test[view-file_outer]": [ + { + "checksum": "cb7f58e243fc2b161e9c2ad2783c4e03", + "size": 1496, + "uri": "https://storage.yandex-team.ru/get-devtools/1936273/12b0fce12ec386ac74f561a826f56b64f91391eb/resource.tar.gz#test_sql2yql.test_view-file_outer_/sql.yql" } ], "test_sql2yql.test[view-init_view_after_eval]": [ @@ -30339,9 +30353,23 @@ ], "test_sql_format.test[view-file_eval]": [ { - "checksum": "9438613af791a6e76b9123d29b00b57f", - "size": 115, - "uri": "https://storage.yandex-team.ru/get-devtools/1880306/50efd53ad53129cbd4f94db66527b230b24320d3/resource.tar.gz#test_sql_format.test_view-file_eval_/formatted.sql" + "checksum": "3cc94bad4e4433084fc32aec5ef49bf7", + "size": 149, + "uri": "https://storage.yandex-team.ru/get-devtools/1936273/12b0fce12ec386ac74f561a826f56b64f91391eb/resource.tar.gz#test_sql_format.test_view-file_eval_/formatted.sql" + } + ], + "test_sql_format.test[view-file_inner]": [ + { + "checksum": "6652bbce33208ac5e8b13ac28ac424a7", + "size": 150, + "uri": "https://storage.yandex-team.ru/get-devtools/1936273/12b0fce12ec386ac74f561a826f56b64f91391eb/resource.tar.gz#test_sql_format.test_view-file_inner_/formatted.sql" + } + ], + "test_sql_format.test[view-file_outer]": [ + { + "checksum": "f4927ace78d10a4e90b80f463a5129a5", + "size": 150, + "uri": "https://storage.yandex-team.ru/get-devtools/1936273/12b0fce12ec386ac74f561a826f56b64f91391eb/resource.tar.gz#test_sql_format.test_view-file_outer_/formatted.sql" } ], "test_sql_format.test[view-init_view_after_eval]": [ diff --git a/ydb/library/yql/tests/sql/suites/view/file_eval.sql b/ydb/library/yql/tests/sql/suites/view/file_eval.sql index f47ff39e90..890ebdece4 100644 --- a/ydb/library/yql/tests/sql/suites/view/file_eval.sql +++ b/ydb/library/yql/tests/sql/suites/view/file_eval.sql @@ -1,4 +1,5 @@ /* postgres can not */ /* syntax version 1 */ +pragma yt.ViewIsolation = 'true'; USE plato; SELECT k, s, v FROM Input VIEW file_eval; diff --git a/ydb/library/yql/tests/sql/suites/view/file_inner.cfg.fixme b/ydb/library/yql/tests/sql/suites/view/file_inner.cfg index 6ec6d9a459..6ec6d9a459 100644 --- a/ydb/library/yql/tests/sql/suites/view/file_inner.cfg.fixme +++ b/ydb/library/yql/tests/sql/suites/view/file_inner.cfg diff --git a/ydb/library/yql/tests/sql/suites/view/file_inner.sql.fixme b/ydb/library/yql/tests/sql/suites/view/file_inner.sql index 38097b1347..fb8dd1ce41 100644 --- a/ydb/library/yql/tests/sql/suites/view/file_inner.sql.fixme +++ b/ydb/library/yql/tests/sql/suites/view/file_inner.sql @@ -1,4 +1,5 @@ /* postgres can not */ /* syntax version 1 */ +pragma yt.ViewIsolation = 'true'; USE plato; SELECT k, s, v FROM Input VIEW file_inner; diff --git a/ydb/library/yql/tests/sql/suites/view/file_outer.cfg.fixme b/ydb/library/yql/tests/sql/suites/view/file_outer.cfg index 331e1aedcc..331e1aedcc 100644 --- a/ydb/library/yql/tests/sql/suites/view/file_outer.cfg.fixme +++ b/ydb/library/yql/tests/sql/suites/view/file_outer.cfg diff --git a/ydb/library/yql/tests/sql/suites/view/file_outer.sql.fixme b/ydb/library/yql/tests/sql/suites/view/file_outer.sql index cda91875a2..bc1b0a4070 100644 --- a/ydb/library/yql/tests/sql/suites/view/file_outer.sql.fixme +++ b/ydb/library/yql/tests/sql/suites/view/file_outer.sql @@ -1,4 +1,5 @@ /* postgres can not */ /* syntax version 1 */ +pragma yt.ViewIsolation = 'true'; USE plato; SELECT k, s, v FROM Input VIEW file_outer; diff --git a/ydb/library/yql/tests/sql/yt_native_file/part1/canondata/result.json b/ydb/library/yql/tests/sql/yt_native_file/part1/canondata/result.json index 7bda668ae2..ffffcb764a 100644 --- a/ydb/library/yql/tests/sql/yt_native_file/part1/canondata/result.json +++ b/ydb/library/yql/tests/sql/yt_native_file/part1/canondata/result.json @@ -4713,6 +4713,27 @@ "uri": "https://storage.yandex-team.ru/get-devtools/212715/3aed59245b3c4899010020105aa587f37bff7612/resource.tar.gz#test.test_udf-udf_empty--Results_/results.txt" } ], + "test.test[view-file_inner--Debug]": [ + { + "checksum": "c991fdc8f9818c06284a908fa3daf268", + "size": 2398, + "uri": "https://storage.yandex-team.ru/get-devtools/1925821/1ab1a59544948939193c0d18faa9c5b327005256/resource.tar.gz#test.test_view-file_inner--Debug_/opt.yql" + } + ], + "test.test[view-file_inner--Plan]": [ + { + "checksum": "da3596039ad6402b9d59364ea26d071f", + "size": 3533, + "uri": "https://storage.yandex-team.ru/get-devtools/1925821/1ab1a59544948939193c0d18faa9c5b327005256/resource.tar.gz#test.test_view-file_inner--Plan_/plan.txt" + } + ], + "test.test[view-file_inner--Results]": [ + { + "checksum": "8f4a93c4a071e93486eea37acd0f44ad", + "size": 1647, + "uri": "https://storage.yandex-team.ru/get-devtools/1924537/77a8b41e7d1198f8afd3012753c8b385b946f440/resource.tar.gz#test.test_view-file_inner--Results_/results.txt" + } + ], "test.test[view-view_with_library--Debug]": [ { "checksum": "cb39a661210fa5f09d2e739724a1c54c", diff --git a/ydb/library/yql/tests/sql/yt_native_file/part2/canondata/result.json b/ydb/library/yql/tests/sql/yt_native_file/part2/canondata/result.json index 5d528c8421..1e144de1e2 100644 --- a/ydb/library/yql/tests/sql/yt_native_file/part2/canondata/result.json +++ b/ydb/library/yql/tests/sql/yt_native_file/part2/canondata/result.json @@ -5287,6 +5287,13 @@ "uri": "https://storage.yandex-team.ru/get-devtools/1903280/4c9fdb6b72177a7fa0b805313acd1533fba85577/resource.tar.gz#test.test_union_all-union_all_with_discard_into_result_ansi-default.txt-Results_/results.txt" } ], + "test.test[view-file_outer--Debug]": [], + "test.test[view-file_outer--Plan]": [], + "test.test[view-file_outer--Results]": [ + { + "uri": "file://test.test_view-file_outer--Results_/extracted" + } + ], "test.test[weak_field-yql-7888_mapfieldsubset--Debug]": [ { "checksum": "f9fd1a3080a43c21f74630204b263469", diff --git a/ydb/library/yql/tests/sql/yt_native_file/part2/canondata/test.test_view-file_outer--Results_/extracted b/ydb/library/yql/tests/sql/yt_native_file/part2/canondata/test.test_view-file_outer--Results_/extracted new file mode 100644 index 0000000000..2c57e4b856 --- /dev/null +++ b/ydb/library/yql/tests/sql/yt_native_file/part2/canondata/test.test_view-file_outer--Results_/extracted @@ -0,0 +1,14 @@ +<tmp_path>/program.sql:<main>: Error: Type annotation + + <tmp_path>/program.sql:<main>:5:1: Error: At function: RemovePrefixMembers, At function: Unordered, At function: PersistableRepr, At function: OrderedSqlProject, At function: Merge + SELECT k, s, v FROM Input VIEW file_outer; + ^ + <tmp_path>/program.sql:<main>:1:1: Error: At function: PersistableRepr, At function: OrderedSqlProject, At function: SqlProjectItem + /* postgres can not */ + ^ + <tmp_path>/program.sql:<main>:1:8: Error: At function: FileContent + /* postgres can not */ + ^ + <tmp_path>/program.sql:<main>:1:29: Error: File not found: view_bb686f68-4245bd5f-2318fa8e-22eb9250/foo.txt + /* postgres can not */ + ^
\ No newline at end of file |