diff options
author | vvvv <vvvv@ydb.tech> | 2023-12-08 18:18:56 +0300 |
---|---|---|
committer | vvvv <vvvv@ydb.tech> | 2023-12-08 20:47:14 +0300 |
commit | ead82665590f70edd76b66c4c0ee5d72bcc06695 (patch) | |
tree | 82cbaafff7b0ac3d9ad01cb839aac2dacf38a4bf | |
parent | 16c96959fef38d2b8aa6c16b7e1505781395876a (diff) | |
download | ydb-ead82665590f70edd76b66c4c0ee5d72bcc06695.tar.gz |
YQL-17271 postpone view AST cleanup during evaluation
-rw-r--r-- | ydb/library/yql/providers/yt/provider/yql_yt_datasink.cpp | 4 | ||||
-rw-r--r-- | ydb/library/yql/providers/yt/provider/yql_yt_datasource.cpp | 5 |
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) { |