summaryrefslogtreecommitdiffstats
path: root/yql/essentials/sql
diff options
context:
space:
mode:
authorvvvv <[email protected]>2025-04-03 20:38:46 +0300
committervvvv <[email protected]>2025-04-03 20:50:12 +0300
commit589b3cc093fe2f37ac0681ffeaeb09d9835fef34 (patch)
treedc7c792244856822b4e6af1566cccdcfa97d01e7 /yql/essentials/sql
parent85007bec1130c8520ccdcf36672e26f7af2f31fa (diff)
YQL-19747 pragmas
commit_hash:7aaa06cd58cc9563a1656a7118c14a461e7f4e2d
Diffstat (limited to 'yql/essentials/sql')
-rw-r--r--yql/essentials/sql/v1/context.cpp12
-rw-r--r--yql/essentials/sql/v1/context.h2
-rw-r--r--yql/essentials/sql/v1/sql_query.cpp57
-rw-r--r--yql/essentials/sql/v1/sql_query.h2
4 files changed, 73 insertions, 0 deletions
diff --git a/yql/essentials/sql/v1/context.cpp b/yql/essentials/sql/v1/context.cpp
index 569ae375ebc..de2668608ea 100644
--- a/yql/essentials/sql/v1/context.cpp
+++ b/yql/essentials/sql/v1/context.cpp
@@ -658,4 +658,16 @@ void TTranslation::AltNotImplemented(const TString& ruleName, ui32 altCase, cons
Error() << ruleName << ": alternative is not implemented yet: " << AltDescription(node, altCase, descr);
}
+void EnumerateSqlFlags(std::function<void(std::string_view)> callback) {
+ for (const auto& x : CTX_PRAGMA_FIELDS) {
+ callback(x.first);
+ callback(TString("Disable") + x.first);
+ }
+
+ for (const auto& x : CTX_PRAGMA_MAYBE_FIELDS) {
+ callback(x.first);
+ callback(TString("Disable") + x.first);
+ }
+}
+
} // namespace NSQLTranslationV1
diff --git a/yql/essentials/sql/v1/context.h b/yql/essentials/sql/v1/context.h
index b911370b3e8..17e86c77c3d 100644
--- a/yql/essentials/sql/v1/context.h
+++ b/yql/essentials/sql/v1/context.h
@@ -471,4 +471,6 @@ namespace NSQLTranslationV1 {
protected:
TContext& Ctx;
};
+
+ void EnumerateSqlFlags(std::function<void(std::string_view)> callback);
} // namespace NSQLTranslationV1
diff --git a/yql/essentials/sql/v1/sql_query.cpp b/yql/essentials/sql/v1/sql_query.cpp
index 627f1e0ae33..d6b6f96bef9 100644
--- a/yql/essentials/sql/v1/sql_query.cpp
+++ b/yql/essentials/sql/v1/sql_query.cpp
@@ -2585,6 +2585,7 @@ void TSqlQuery::AlterTableDropChangefeed(const TRule_alter_table_drop_changefeed
params.DropChangefeeds.emplace_back(IdEx(node.GetRule_an_id3(), *this));
}
+/// @see EnumeratePragmas too
TNodePtr TSqlQuery::PragmaStatement(const TRule_pragma_stmt& stmt, bool& success) {
success = false;
const TString& prefix = OptIdPrefixAsStr(stmt.GetRule_opt_id_prefix_or_type2(), *this);
@@ -3945,4 +3946,60 @@ bool TSqlQuery::ParseTableStoreFeatures(std::map<TString, TDeferredAtom> & resul
return true;
}
+void EnumeratePragmas(std::function<void(std::string_view)> callback) {
+ callback("ClassicDivision");
+ callback("StrictJoinKeyTypes");
+ callback("DisableStrictJoinKeyTypes");
+ callback("CheckedOps");
+ callback("UnicodeLiterals");
+ callback("DisableUnicodeLiterals");
+ callback("WarnUntypedStringLiterals");
+ callback("DisableWarnUntypedStringLiterals");
+ callback("File");
+ callback("FileOption");
+ callback("Folder");
+ callback("Udf");
+ callback("Library");
+ callback("Package");
+ callback("PackageVersion");
+ callback("RefSelect");
+ callback("SampleSelect");
+ callback("AllowDotInAlias");
+ callback("OverrideLibrary");
+ callback("DirectRead");
+ callback("AutoCommit");
+ callback("UseTablePrefixForEach");
+ callback("PathPrefix");
+ callback("GroupByLimit");
+ callback("GroupByCubeLimit");
+ callback("SimpleColumns");
+ callback("DisableSimpleColumns");
+ callback("ResultRowsLimit");
+ callback("ResultSizeLimit");
+ callback("RuntimeLogLevel");
+ callback("Warning");
+ callback("Greetings");
+ callback("WarningMsg");
+ callback("ErrorMsg");
+ callback("AllowUnnamedColumns");
+ callback("WarnUnnamedColumns");
+ callback("DiscoveryMode");
+ callback("EnableSystemColumns");
+ callback("DqEngine");
+ callback("BlockEngine");
+ callback("JsonQueryReturnsJsonDocument");
+ callback("DisableJsonQueryReturnsJsonDocument");
+ callback("PositionalUnionAll");
+ callback("PqReadBy");
+ callback("DataWatermarks");
+ callback("FeatureR010");
+ callback("CostBasedOptimizer");
+ callback("Engine");
+ callback("yson.AutoConvert");
+ callback("yson.Strict");
+ callback("yson.DisableStrict");
+ callback("yson.CastToString");
+ callback("yson.DisableCastToString");
+}
+
} // namespace NSQLTranslationV1
diff --git a/yql/essentials/sql/v1/sql_query.h b/yql/essentials/sql/v1/sql_query.h
index ea5b917f8f2..52cd3c402b6 100644
--- a/yql/essentials/sql/v1/sql_query.h
+++ b/yql/essentials/sql/v1/sql_query.h
@@ -84,4 +84,6 @@ private:
const bool TopLevel;
};
+void EnumeratePragmas(std::function<void(std::string_view)> callback);
+
} // namespace NSQLTranslationV1