aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorvvvv <vvvv@ydb.tech>2023-10-24 17:36:16 +0300
committervvvv <vvvv@ydb.tech>2023-10-24 18:22:36 +0300
commitfbd998fd44d81627f110ae3760d6379905b785f7 (patch)
tree051ec1cac0a42158b136fc94b3f9f2e8dc1d0ee3
parentf9cbd389cd6379f7e439acaf9ea76c19433940ce (diff)
downloadydb-fbd998fd44d81627f110ae3760d6379905b785f7.tar.gz
YQL-16922 feature flag, another way to keep inner worlds deps
-rw-r--r--ydb/library/yql/providers/yt/common/yql_yt_settings.cpp1
-rw-r--r--ydb/library/yql/providers/yt/common/yql_yt_settings.h1
-rw-r--r--ydb/library/yql/providers/yt/provider/yql_yt_datasource.cpp17
-rw-r--r--ydb/library/yql/providers/yt/provider/yql_yt_load_table_meta.cpp6
-rw-r--r--ydb/library/yql/providers/yt/provider/yql_yt_provider.cpp10
-rw-r--r--ydb/library/yql/providers/yt/provider/yql_yt_provider.h6
-rw-r--r--ydb/library/yql/providers/yt/provider/yql_yt_table_desc.cpp21
-rw-r--r--ydb/library/yql/providers/yt/provider/yql_yt_table_desc.h8
-rw-r--r--ydb/library/yql/tests/sql/dq_file/part1/canondata/result.json22
-rw-r--r--ydb/library/yql/tests/sql/dq_file/part2/canondata/result.json5
-rw-r--r--ydb/library/yql/tests/sql/dq_file/part2/canondata/test.test_view-file_outer--Results_/extracted14
-rw-r--r--ydb/library/yql/tests/sql/sql2yql/canondata/result.json40
-rw-r--r--ydb/library/yql/tests/sql/suites/view/file_eval.sql1
-rw-r--r--ydb/library/yql/tests/sql/suites/view/file_inner.cfg (renamed from ydb/library/yql/tests/sql/suites/view/file_inner.cfg.fixme)0
-rw-r--r--ydb/library/yql/tests/sql/suites/view/file_inner.sql (renamed from ydb/library/yql/tests/sql/suites/view/file_inner.sql.fixme)1
-rw-r--r--ydb/library/yql/tests/sql/suites/view/file_outer.cfg (renamed from ydb/library/yql/tests/sql/suites/view/file_outer.cfg.fixme)0
-rw-r--r--ydb/library/yql/tests/sql/suites/view/file_outer.sql (renamed from ydb/library/yql/tests/sql/suites/view/file_outer.sql.fixme)1
-rw-r--r--ydb/library/yql/tests/sql/yt_native_file/part1/canondata/result.json21
-rw-r--r--ydb/library/yql/tests/sql/yt_native_file/part2/canondata/result.json7
-rw-r--r--ydb/library/yql/tests/sql/yt_native_file/part2/canondata/test.test_view-file_outer--Results_/extracted14
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