summaryrefslogtreecommitdiffstats
path: root/yql/essentials/sql/settings
diff options
context:
space:
mode:
Diffstat (limited to 'yql/essentials/sql/settings')
-rw-r--r--yql/essentials/sql/settings/translation_settings.cpp18
-rw-r--r--yql/essentials/sql/settings/translation_settings.h3
2 files changed, 20 insertions, 1 deletions
diff --git a/yql/essentials/sql/settings/translation_settings.cpp b/yql/essentials/sql/settings/translation_settings.cpp
index 81cf2785150..02fd18501b2 100644
--- a/yql/essentials/sql/settings/translation_settings.cpp
+++ b/yql/essentials/sql/settings/translation_settings.cpp
@@ -6,6 +6,7 @@
#include <library/cpp/deprecated/split/split_iterator.h>
+#include <util/string/cast.h>
#include <util/string/split.h>
#include <util/string/join.h>
#include <util/system/env.h>
@@ -33,7 +34,7 @@ public:
};
[[noreturn]] TString ThrowBad(TStringBuf flag, const TVector<TString>& args) {
- YQL_ENSURE(false, "Bad " << flag << "args [" << JoinSeq(", ", args) << "]");
+ YQL_ENSURE(false, "Bad " << flag << " args [" << JoinSeq(", ", args) << "]");
}
} // namespace
@@ -188,6 +189,21 @@ void ParseTranslationSettings(const TExtendedSqlFlags& flags, TTranslationSettin
}
},
},
+ {
+ "MaxParseTreeDepth",
+ [](const TVector<TString>& args, TTranslationSettings& s) {
+ if (args.size() != 1) {
+ ThrowBad("MaxParseTreeDepth", args);
+ }
+
+ size_t value = 0;
+ if (!TryFromString(args[0], value)) {
+ ThrowBad("MaxParseTreeDepth", args);
+ }
+
+ s.MaxParseTreeDepth = value;
+ },
+ },
};
for (const auto& [flag, args] : flags) {
diff --git a/yql/essentials/sql/settings/translation_settings.h b/yql/essentials/sql/settings/translation_settings.h
index 9252d84caf6..a5598aa6eb8 100644
--- a/yql/essentials/sql/settings/translation_settings.h
+++ b/yql/essentials/sql/settings/translation_settings.h
@@ -21,7 +21,9 @@ class IAutoParamBuilderFactory;
} // namespace NYql
namespace NSQLTranslation {
+
constexpr const size_t SQL_MAX_PARSER_ERRORS = 100;
+constexpr const size_t SQL_MAX_PARSE_TREE_DEPTH = 4096;
enum class ESqlMode {
QUERY = 0,
@@ -121,6 +123,7 @@ struct TTranslationSettings {
bool PGDisable;
bool WarnOnV0;
bool TestAntlr4; // TODO(YQL-19017): remove.
+ TMaybe<size_t> MaxParseTreeDepth;
ISqlFeaturePolicy::TPtr V0WarnAsError;
ISqlFeaturePolicy::TPtr DqDefaultAuto;
ISqlFeaturePolicy::TPtr BlockDefaultAuto;