aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorvvvv <vvvv@ydb.tech>2023-12-08 18:18:56 +0300
committervvvv <vvvv@ydb.tech>2023-12-08 20:47:14 +0300
commitead82665590f70edd76b66c4c0ee5d72bcc06695 (patch)
tree82cbaafff7b0ac3d9ad01cb839aac2dacf38a4bf
parent16c96959fef38d2b8aa6c16b7e1505781395876a (diff)
downloadydb-ead82665590f70edd76b66c4c0ee5d72bcc06695.tar.gz
YQL-17271 postpone view AST cleanup during evaluation
-rw-r--r--ydb/library/yql/providers/yt/provider/yql_yt_datasink.cpp4
-rw-r--r--ydb/library/yql/providers/yt/provider/yql_yt_datasource.cpp5
2 files changed, 7 insertions, 2 deletions
diff --git a/ydb/library/yql/providers/yt/provider/yql_yt_datasink.cpp b/ydb/library/yql/providers/yt/provider/yql_yt_datasink.cpp
index e5be775a2c..b76aeaba4d 100644
--- a/ydb/library/yql/providers/yt/provider/yql_yt_datasink.cpp
+++ b/ydb/library/yql/providers/yt/provider/yql_yt_datasink.cpp
@@ -251,7 +251,9 @@ public:
}
void PostRewriteIO() final {
- State_->TablesData->CleanupCompiledSQL();
+ if (!State_->Types->EvaluationInProgress) {
+ State_->TablesData->CleanupCompiledSQL();
+ }
}
void Reset() final {
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 6c0713cee2..09bc7f513e 100644
--- a/ydb/library/yql/providers/yt/provider/yql_yt_datasource.cpp
+++ b/ydb/library/yql/providers/yt/provider/yql_yt_datasource.cpp
@@ -217,7 +217,9 @@ public:
}
void PostRewriteIO() final {
- State_->TablesData->CleanupCompiledSQL();
+ if (!State_->Types->EvaluationInProgress) {
+ State_->TablesData->CleanupCompiledSQL();
+ }
}
void Reset() final {
@@ -671,6 +673,7 @@ private:
if (tableDesc.View) {
auto root = tableDesc.View->CompiledSql;
+ YQL_ENSURE(root);
if (readNode.World().Ref().Type() != TExprNode::World) {
// Inject original Read! dependencies
auto status = OptimizeExpr(root, root, [&readNode](const TExprNode::TPtr& node, TExprContext& ctx) {