summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoraneporada <[email protected]>2025-06-23 14:02:41 +0300
committeraneporada <[email protected]>2025-06-23 15:10:26 +0300
commit0133b00bb26b7f9040d1ba71da735b68e4e2a2c0 (patch)
tree1c1c404ffa9289513553232d6034e0612a144f4b
parent17991439b76e6a735563f320d80eecd472428f66 (diff)
Deny some system write settings at IO discovery stage
commit_hash:3b7c27bdd06c1542229fc930ce628ee035c3a3ed
-rw-r--r--yt/yql/providers/yt/provider/yql_yt_io_discovery.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/yt/yql/providers/yt/provider/yql_yt_io_discovery.cpp b/yt/yql/providers/yt/provider/yql_yt_io_discovery.cpp
index fd31f57950c..11ce0969a94 100644
--- a/yt/yql/providers/yt/provider/yql_yt_io_discovery.cpp
+++ b/yt/yql/providers/yt/provider/yql_yt_io_discovery.cpp
@@ -136,6 +136,16 @@ public:
return node;
}
+ const auto systemSettings = { EYtSettingType::Initial, EYtSettingType::MutationId };
+ for (auto setting : systemSettings) {
+ if (auto sNode = NYql::GetSetting(*node->ChildPtr(4), setting)) {
+ ctx.AddError(TIssue(
+ ctx.GetPosition(sNode->Pos()),
+ TStringBuilder() << "Write setting " << ToString(setting).Quote() << " is internal and not allowed in user queries"));
+ return {};
+ }
+ }
+
auto mode = NYql::GetSetting(*node->ChildPtr(4), EYtSettingType::Mode);
const bool flush = mode && FromString<EYtWriteMode>(mode->Child(1)->Content()) == EYtWriteMode::Flush;