summaryrefslogtreecommitdiffstats
path: root/yql/essentials/sql
diff options
context:
space:
mode:
authorvvvv <[email protected]>2025-06-18 15:12:37 +0300
committervvvv <[email protected]>2025-06-18 15:49:04 +0300
commit379a419911ee1bbb93f56085133712fa5d8c3112 (patch)
treec68bfc7f62d5a601925ee586521da83ab69ea791 /yql/essentials/sql
parentf96379cdde0b2b470d341cb8df3c4866478a3b1c (diff)
YQL-20086 sql
commit_hash:b06f3d2f5fa81e2073966eb172758758bd94fdf2
Diffstat (limited to 'yql/essentials/sql')
-rw-r--r--yql/essentials/sql/cluster_mapping.cpp8
-rw-r--r--yql/essentials/sql/cluster_mapping.h4
-rw-r--r--yql/essentials/sql/pg/optimizer.cpp64
-rw-r--r--yql/essentials/sql/pg/optimizer.h12
-rw-r--r--yql/essentials/sql/pg/optimizer_impl_ut.cpp4
-rw-r--r--yql/essentials/sql/pg/pg_sql.cpp678
-rw-r--r--yql/essentials/sql/v0/aggregation.cpp512
-rw-r--r--yql/essentials/sql/v0/builtin.cpp590
-rw-r--r--yql/essentials/sql/v0/context.cpp52
-rw-r--r--yql/essentials/sql/v0/context.h34
-rw-r--r--yql/essentials/sql/v0/insert.cpp194
-rw-r--r--yql/essentials/sql/v0/join.cpp156
-rw-r--r--yql/essentials/sql/v0/list_builtin.cpp156
-rw-r--r--yql/essentials/sql/v0/list_builtin.h64
-rw-r--r--yql/essentials/sql/v0/node.cpp882
-rw-r--r--yql/essentials/sql/v0/node.h128
-rw-r--r--yql/essentials/sql/v0/query.cpp568
-rw-r--r--yql/essentials/sql/v0/select.cpp1164
-rw-r--r--yql/essentials/sql/v0/sql.cpp1356
-rw-r--r--yql/essentials/sql/v1/aggregation.cpp638
-rw-r--r--yql/essentials/sql/v1/builtin.cpp938
-rw-r--r--yql/essentials/sql/v1/complete/sql_complete.cpp14
-rw-r--r--yql/essentials/sql/v1/complete/sql_complete.h6
-rw-r--r--yql/essentials/sql/v1/context.cpp94
-rw-r--r--yql/essentials/sql/v1/context.h128
-rw-r--r--yql/essentials/sql/v1/format/sql_format.cpp528
-rw-r--r--yql/essentials/sql/v1/insert.cpp208
-rw-r--r--yql/essentials/sql/v1/join.cpp184
-rw-r--r--yql/essentials/sql/v1/lexer/lexer.cpp8
-rw-r--r--yql/essentials/sql/v1/list_builtin.cpp72
-rw-r--r--yql/essentials/sql/v1/list_builtin.h32
-rw-r--r--yql/essentials/sql/v1/match_recognize.cpp210
-rw-r--r--yql/essentials/sql/v1/match_recognize.h44
-rw-r--r--yql/essentials/sql/v1/node.cpp1066
-rw-r--r--yql/essentials/sql/v1/node.h146
-rw-r--r--yql/essentials/sql/v1/object_processing.cpp34
-rw-r--r--yql/essentials/sql/v1/object_processing.h28
-rw-r--r--yql/essentials/sql/v1/query.cpp1670
-rw-r--r--yql/essentials/sql/v1/select.cpp1526
-rw-r--r--yql/essentials/sql/v1/source.cpp238
-rw-r--r--yql/essentials/sql/v1/source.h62
-rw-r--r--yql/essentials/sql/v1/sql_call_expr.cpp262
-rw-r--r--yql/essentials/sql/v1/sql_call_expr.h66
-rw-r--r--yql/essentials/sql/v1/sql_expression.cpp504
-rw-r--r--yql/essentials/sql/v1/sql_expression.h14
-rw-r--r--yql/essentials/sql/v1/sql_group_by.cpp184
-rw-r--r--yql/essentials/sql/v1/sql_group_by.h14
-rw-r--r--yql/essentials/sql/v1/sql_into_tables.cpp66
-rw-r--r--yql/essentials/sql/v1/sql_into_tables.h4
-rw-r--r--yql/essentials/sql/v1/sql_match_recognize.cpp56
-rw-r--r--yql/essentials/sql/v1/sql_match_recognize.h4
-rw-r--r--yql/essentials/sql/v1/sql_query.cpp1284
-rw-r--r--yql/essentials/sql/v1/sql_query.h6
-rw-r--r--yql/essentials/sql/v1/sql_select.cpp300
-rw-r--r--yql/essentials/sql/v1/sql_translation.cpp698
-rw-r--r--yql/essentials/sql/v1/sql_translation.h4
-rw-r--r--yql/essentials/sql/v1/sql_values.cpp24
57 files changed, 8995 insertions, 8995 deletions
diff --git a/yql/essentials/sql/cluster_mapping.cpp b/yql/essentials/sql/cluster_mapping.cpp
index 7a6ab64ecd0..fb2a5100b5b 100644
--- a/yql/essentials/sql/cluster_mapping.cpp
+++ b/yql/essentials/sql/cluster_mapping.cpp
@@ -7,24 +7,24 @@ namespace NSQLTranslation {
TClusterMapping::TClusterMapping(const THashMap<TString, TString>& mapping) {
for (const auto& p : mapping) {
if (p.second == KikimrProviderName) {
- CaseSensitiveClusters.emplace(p);
+ CaseSensitiveClusters_.emplace(p);
continue;
}
TString clusterLowerCase = to_lower(p.first);
- CaseInsensitiveClusters.emplace(clusterLowerCase, p.second);
+ CaseInsensitiveClusters_.emplace(clusterLowerCase, p.second);
}
}
TMaybe<TString> TClusterMapping::GetClusterProvider(const TString& cluster, TString& normalizedClusterName) const {
- auto providerPtr1 = CaseSensitiveClusters.FindPtr(cluster);
+ auto providerPtr1 = CaseSensitiveClusters_.FindPtr(cluster);
if (providerPtr1) {
normalizedClusterName = cluster;
return *providerPtr1;
}
TString clusterLowerCase = to_lower(cluster);
- auto providerPtr2 = CaseInsensitiveClusters.FindPtr(clusterLowerCase);
+ auto providerPtr2 = CaseInsensitiveClusters_.FindPtr(clusterLowerCase);
if (providerPtr2) {
normalizedClusterName = clusterLowerCase;
return *providerPtr2;
diff --git a/yql/essentials/sql/cluster_mapping.h b/yql/essentials/sql/cluster_mapping.h
index c2de2163713..bf943253642 100644
--- a/yql/essentials/sql/cluster_mapping.h
+++ b/yql/essentials/sql/cluster_mapping.h
@@ -10,7 +10,7 @@ public:
TMaybe<TString> GetClusterProvider(const TString& cluster, TString& normalizedClusterName) const;
private:
- THashMap<TString, TString> CaseSensitiveClusters;
- THashMap<TString, TString> CaseInsensitiveClusters;
+ THashMap<TString, TString> CaseSensitiveClusters_;
+ THashMap<TString, TString> CaseInsensitiveClusters_;
};
}
diff --git a/yql/essentials/sql/pg/optimizer.cpp b/yql/essentials/sql/pg/optimizer.cpp
index 2cec690807b..6ce6fd0fa30 100644
--- a/yql/essentials/sql/pg/optimizer.cpp
+++ b/yql/essentials/sql/pg/optimizer.cpp
@@ -13,8 +13,8 @@
#define __restrict
#endif
-#define TypeName PG_TypeName
-#define SortBy PG_SortBy
+#define TypeName PG_TypeName // NOLINT(readability-identifier-naming)
+#define SortBy PG_SortBy // NOLINT(readability-identifier-naming)
#undef SIZEOF_SIZE_T
extern "C" {
@@ -120,8 +120,8 @@ List* MakeRelOptInfoList(const IOptimizer::TInput& input) {
TPgOptimizer::TPgOptimizer(
const TInput& input,
const std::function<void(const TString&)>& log)
- : Input(input)
- , Log(log)
+ : Input_(input)
+ , Log_(log)
{
get_relation_stats_hook = RelationStatsHook;
}
@@ -143,7 +143,7 @@ TPgOptimizer::TOutput TPgOptimizer::JoinSearch()
}
Var* TPgOptimizer::MakeVar(TVarId varId) {
- auto*& var = Vars[varId];
+ auto*& var = Vars_[varId];
return var
? var
: (var = ::NYql::MakeVar(std::get<0>(varId), std::get<1>(varId)));
@@ -152,7 +152,7 @@ Var* TPgOptimizer::MakeVar(TVarId varId) {
EquivalenceClass* TPgOptimizer::MakeEqClass(int i) {
EquivalenceClass* eq = makeNode(EquivalenceClass);
- for (auto [relno, varno] : Input.EqClasses[i].Vars) {
+ for (auto [relno, varno] : Input_.EqClasses[i].Vars) {
EquivalenceMember* m = makeNode(EquivalenceMember);
m->em_expr = (Expr*)MakeVar(TVarId{relno, varno});
m->em_relids = bms_add_member(nullptr, relno);
@@ -166,7 +166,7 @@ EquivalenceClass* TPgOptimizer::MakeEqClass(int i) {
List* TPgOptimizer::MakeEqClasses() {
List* l = nullptr;
- for (int i = 0; i < (int)Input.EqClasses.size(); i++) {
+ for (int i = 0; i < (int)Input_.EqClasses.size(); i++) {
l = lappend(l, MakeEqClass(i));
}
return l;
@@ -174,17 +174,17 @@ List* TPgOptimizer::MakeEqClasses() {
void TPgOptimizer::LogNode(const TString& prefix, void* node)
{
- if (Log) {
+ if (Log_) {
auto* str = nodeToString(node);
auto* fmt = pretty_format_node_dump(str);
pfree(str);
- Log(TStringBuilder() << prefix << ": " << fmt);
+ Log_(TStringBuilder() << prefix << ": " << fmt);
pfree(fmt);
}
}
IOptimizer::TOutput TPgOptimizer::MakeOutput(Path* path) {
- TOutput output = {{}, &Input};
+ TOutput output = {{}, &Input_};
output.Rows = path->rows;
output.TotalCost = path->total_cost;
MakeOutputJoin(output, path);
@@ -200,7 +200,7 @@ int TPgOptimizer::MakeOutputJoin(TOutput& output, Path* path) {
int relid = -1;
while ((relid = bms_next_member(path->parent->relids, relid)) >= 0)
- {
+ {
node.Rels.emplace_back(relid);
}
@@ -301,32 +301,32 @@ void TPgOptimizer::MakeLeftOrRightRestrictions(std::vector<RestrictInfo*>& dst,
}
oe->args = lappend(oe->args, MakeVar(TVarId{relId, varId}));
- RestrictInfos[relId].emplace_back(ri);
+ RestrictInfos_[relId].emplace_back(ri);
}
dst.emplace_back(ri);
}
}
RelOptInfo* TPgOptimizer::JoinSearchInternal() {
- RestrictInfos.clear();
- RestrictInfos.resize(Input.Rels.size()+1);
- LeftRestriction.clear();
- LeftRestriction.reserve(Input.Left.size());
- MakeLeftOrRightRestrictions(LeftRestriction, Input.Left);
- MakeLeftOrRightRestrictions(RightRestriction, Input.Right);
-
- List* rels = MakeRelOptInfoList(Input);
+ RestrictInfos_.clear();
+ RestrictInfos_.resize(Input_.Rels.size()+1);
+ LeftRestriction_.clear();
+ LeftRestriction_.reserve(Input_.Left.size());
+ MakeLeftOrRightRestrictions(LeftRestriction_, Input_.Left);
+ MakeLeftOrRightRestrictions(RightRestriction_, Input_.Right);
+
+ List* rels = MakeRelOptInfoList(Input_);
ListCell* l;
int relId = 1;
foreach (l, rels) {
RelOptInfo* rel = (RelOptInfo*)lfirst(l);
- for (auto* ri : RestrictInfos[relId++]) {
+ for (auto* ri : RestrictInfos_[relId++]) {
rel->joininfo = lappend(rel->joininfo, ri);
}
}
- if (Log) {
+ if (Log_) {
int i = 1;
foreach (l, rels) {
LogNode(TStringBuilder() << "Input: " << i++, lfirst(l));
@@ -351,7 +351,7 @@ RelOptInfo* TPgOptimizer::JoinSearchInternal() {
root.all_baserels = bms_add_range(nullptr, 1, rels->length);
root.eq_classes = MakeEqClasses();
- for (auto* ri : LeftRestriction) {
+ for (auto* ri : LeftRestriction_) {
root.left_join_clauses = lappend(root.left_join_clauses, ri);
root.hasJoinRTEs = 1;
root.outer_join_rels = bms_add_members(root.outer_join_rels, ri->right_relids);
@@ -368,7 +368,7 @@ RelOptInfo* TPgOptimizer::JoinSearchInternal() {
root.join_info_list = lappend(root.join_info_list, ji);
}
- for (auto* ri : RightRestriction) {
+ for (auto* ri : RightRestriction_) {
root.right_join_clauses = lappend(root.right_join_clauses, ri);
root.hasJoinRTEs = 1;
root.outer_join_rels = bms_add_members(root.outer_join_rels, ri->left_relids);
@@ -392,8 +392,8 @@ RelOptInfo* TPgOptimizer::JoinSearchInternal() {
root.simple_rel_array[i+1] = r;
}
- for (int eqId = 0; eqId < (int)Input.EqClasses.size(); eqId++) {
- for (auto& [relno, _] : Input.EqClasses[eqId].Vars) {
+ for (int eqId = 0; eqId < (int)Input_.EqClasses.size(); eqId++) {
+ for (auto& [relno, _] : Input_.EqClasses[eqId].Vars) {
root.simple_rel_array[relno]->eclass_indexes = bms_add_member(
root.simple_rel_array[relno]->eclass_indexes,
eqId);
@@ -689,21 +689,21 @@ class TPgOptimizerNew: public IOptimizerNew
public:
TPgOptimizerNew(IProviderContext& pctx, TExprContext& ctx, const std::function<void(const TString&)>& log)
: IOptimizerNew(pctx)
- , Ctx(ctx)
- , Log(log)
+ , Ctx_(ctx)
+ , Log_(log)
{ }
std::shared_ptr<TJoinOptimizerNode> JoinSearch(
- const std::shared_ptr<TJoinOptimizerNode>& joinTree,
+ const std::shared_ptr<TJoinOptimizerNode>& joinTree,
const TOptimizerHints& hints = {}) override
{
Y_UNUSED(hints);
- return TPgOptimizerImpl(joinTree, Ctx, Log).Do();
+ return TPgOptimizerImpl(joinTree, Ctx_, Log_).Do();
}
private:
- TExprContext& Ctx;
- std::function<void(const TString&)> Log;
+ TExprContext& Ctx_;
+ std::function<void(const TString&)> Log_;
};
IOptimizer* MakePgOptimizerInternal(const IOptimizer::TInput& input, const std::function<void(const TString&)>& log)
diff --git a/yql/essentials/sql/pg/optimizer.h b/yql/essentials/sql/pg/optimizer.h
index 2b56b86b7e7..b7a874bcda3 100644
--- a/yql/essentials/sql/pg/optimizer.h
+++ b/yql/essentials/sql/pg/optimizer.h
@@ -19,12 +19,12 @@ public:
TOutput JoinSearch() override;
private:
- TInput Input;
- std::function<void(const TString&)> Log;
- std::map<TVarId, Var*> Vars;
- std::vector<std::vector<RestrictInfo*>> RestrictInfos;
- std::vector<RestrictInfo*> LeftRestriction;
- std::vector<RestrictInfo*> RightRestriction;
+ TInput Input_;
+ std::function<void(const TString&)> Log_;
+ std::map<TVarId, Var*> Vars_;
+ std::vector<std::vector<RestrictInfo*>> RestrictInfos_;
+ std::vector<RestrictInfo*> LeftRestriction_;
+ std::vector<RestrictInfo*> RightRestriction_;
void MakeLeftOrRightRestrictions(std::vector<RestrictInfo*>& dst, const std::vector<TEq>& src);
void LogNode(const TString& prefix, void* node);
diff --git a/yql/essentials/sql/pg/optimizer_impl_ut.cpp b/yql/essentials/sql/pg/optimizer_impl_ut.cpp
index 6a58139de9b..43828ad912a 100644
--- a/yql/essentials/sql/pg/optimizer_impl_ut.cpp
+++ b/yql/essentials/sql/pg/optimizer_impl_ut.cpp
@@ -15,8 +15,8 @@ extern "C" {
#define __restrict
#endif
-#define TypeName PG_TypeName
-#define SortBy PG_SortBy
+#define TypeName PG_TypeName // NOLINT(readability-identifier-naming)
+#define SortBy PG_SortBy // NOLINT(readability-identifier-naming)
#undef SIZEOF_SIZE_T
extern "C" {
diff --git a/yql/essentials/sql/pg/pg_sql.cpp b/yql/essentials/sql/pg/pg_sql.cpp
index 1843ea4f9e9..534c6b95104 100644
--- a/yql/essentials/sql/pg/pg_sql.cpp
+++ b/yql/essentials/sql/pg/pg_sql.cpp
@@ -4,8 +4,8 @@
#define __restrict
#endif
-#define TypeName PG_TypeName
-#define SortBy PG_SortBy
+#define TypeName PG_TypeName // NOLINT(readability-identifier-naming)
+#define SortBy PG_SortBy // NOLINT(readability-identifier-naming)
#undef SIZEOF_SIZE_T
extern "C" {
#include "postgres.h"
@@ -193,7 +193,7 @@ const IndexElem* IndexElement(const Node* node) {
#define AT_LOCATION_EX(node, field) \
TLocationGuard guard(this, node->field);
-std::tuple<TStringBuf, TStringBuf> getSchemaAndObjectName(const List* nameList) {
+std::tuple<TStringBuf, TStringBuf> GetSchemaAndObjectName(const List* nameList) {
switch (ListLength(nameList)) {
case 2: {
const auto clusterName = StrVal(ListNodeNth(nameList, 0));
@@ -211,8 +211,8 @@ std::tuple<TStringBuf, TStringBuf> getSchemaAndObjectName(const List* nameList)
}
struct TPgConst {
- TMaybe<TString> value;
- enum class Type {
+ TMaybe<TString> Value;
+ enum class EType {
boolean,
int4,
int8,
@@ -223,65 +223,65 @@ struct TPgConst {
nil,
};
- static TString ToString(const TPgConst::Type& type) {
+ static TString ToString(const TPgConst::EType& type) {
switch (type) {
- case TPgConst::Type::boolean:
+ case TPgConst::EType::boolean:
return "bool";
- case TPgConst::Type::int4:
+ case TPgConst::EType::int4:
return "int4";
- case TPgConst::Type::int8:
+ case TPgConst::EType::int8:
return "int8";
- case TPgConst::Type::numeric:
+ case TPgConst::EType::numeric:
return "numeric";
- case TPgConst::Type::text:
+ case TPgConst::EType::text:
return "text";
- case TPgConst::Type::unknown:
+ case TPgConst::EType::unknown:
return "unknown";
- case TPgConst::Type::bit:
+ case TPgConst::EType::bit:
return "bit";
- case TPgConst::Type::nil:
+ case TPgConst::EType::nil:
return "unknown";
}
}
- Type type;
+ EType Type;
};
TMaybe<TPgConst> GetValueNType(const A_Const* value) {
TPgConst pgConst;
if (value->isnull) {
- pgConst.type = TPgConst::Type::nil;
+ pgConst.Type = TPgConst::EType::nil;
return pgConst;
}
const auto& val = value->val;
switch (NodeTag(val)) {
case T_Boolean: {
- pgConst.value = BoolVal(val) ? "t" : "f";
- pgConst.type = TPgConst::Type::boolean;
+ pgConst.Value = BoolVal(val) ? "t" : "f";
+ pgConst.Type = TPgConst::EType::boolean;
return pgConst;
}
case T_Integer: {
- pgConst.value = ToString(IntVal(val));
- pgConst.type = TPgConst::Type::int4;
+ pgConst.Value = ToString(IntVal(val));
+ pgConst.Type = TPgConst::EType::int4;
return pgConst;
}
case T_Float: {
auto s = StrFloatVal(val);
i64 v;
const bool isInt8 = TryFromString<i64>(s, v);
- pgConst.value = ToString(s);
- pgConst.type = isInt8 ? TPgConst::Type::int8 : TPgConst::Type::numeric;
+ pgConst.Value = ToString(s);
+ pgConst.Type = isInt8 ? TPgConst::EType::int8 : TPgConst::EType::numeric;
return pgConst;
}
case T_String: {
- pgConst.value = ToString(StrVal(val));
- pgConst.type = TPgConst::Type::unknown; // to support implicit casts
+ pgConst.Value = ToString(StrVal(val));
+ pgConst.Type = TPgConst::EType::unknown; // to support implicit casts
return pgConst;
}
case T_BitString: {
- pgConst.value = ToString(StrVal(val));
- pgConst.type = TPgConst::Type::bit;
+ pgConst.Value = ToString(StrVal(val));
+ pgConst.Type = TPgConst::EType::bit;
return pgConst;
}
default: {
@@ -296,17 +296,17 @@ class TConverter : public IPGParseEvents {
private:
class TLocationGuard {
private:
- TConverter* Owner;
+ TConverter* Owner_;
public:
TLocationGuard(TConverter* owner, int location)
- : Owner(owner)
+ : Owner_(owner)
{
- Owner->PushPosition(location);
+ Owner_->PushPosition(location);
}
~TLocationGuard() {
- Owner->PopPosition();
+ Owner_->PopPosition();
}
};
@@ -358,88 +358,88 @@ public:
TConverter(TVector<TAstParseResult>& astParseResults, const NSQLTranslation::TTranslationSettings& settings,
const TString& query, TVector<TStmtParseInfo>* stmtParseInfo, bool perStatementResult,
TMaybe<ui32> sqlProcArgsCount)
- : AstParseResults(astParseResults)
- , Settings(settings)
- , DqEngineEnabled(Settings.DqDefaultAuto->Allow())
- , BlockEngineEnabled(Settings.BlockDefaultAuto->Allow())
- , StmtParseInfo(stmtParseInfo)
- , PerStatementResult(perStatementResult)
- , SqlProcArgsCount(sqlProcArgsCount)
+ : AstParseResults_(astParseResults)
+ , Settings_(settings)
+ , DqEngineEnabled_(Settings_.DqDefaultAuto->Allow())
+ , BlockEngineEnabled_(Settings_.BlockDefaultAuto->Allow())
+ , StmtParseInfo_(stmtParseInfo)
+ , PerStatementResult_(perStatementResult)
+ , SqlProcArgsCount_(sqlProcArgsCount)
{
Y_ENSURE(settings.Mode == NSQLTranslation::ESqlMode::QUERY || settings.Mode == NSQLTranslation::ESqlMode::LIMITED_VIEW);
Y_ENSURE(settings.Mode != NSQLTranslation::ESqlMode::LIMITED_VIEW || !perStatementResult);
- State.ApplicationName = Settings.ApplicationName;
- AstParseResults.push_back({});
- if (StmtParseInfo) {
- StmtParseInfo->push_back({});
+ State_.ApplicationName = Settings_.ApplicationName;
+ AstParseResults_.push_back({});
+ if (StmtParseInfo_) {
+ StmtParseInfo_->push_back({});
}
ScanRows(query);
- for (auto& flag : Settings.Flags) {
+ for (auto& flag : Settings_.Flags) {
if (flag == "DqEngineEnable") {
- DqEngineEnabled = true;
+ DqEngineEnabled_ = true;
} else if (flag == "DqEngineForce") {
- DqEngineForce = true;
+ DqEngineForce_ = true;
} else if (flag == "BlockEngineEnable") {
- BlockEngineEnabled = true;
+ BlockEngineEnabled_ = true;
} else if (flag == "BlockEngineForce") {
- BlockEngineForce = true;
+ BlockEngineForce_ = true;
} if (flag == "UnorderedResult") {
- UnorderedResult = true;
+ UnorderedResult_ = true;
}
}
- if (Settings.PathPrefix) {
- TablePathPrefix = Settings.PathPrefix + "/";
+ if (Settings_.PathPrefix) {
+ TablePathPrefix_ = Settings_.PathPrefix + "/";
}
- for (const auto& [cluster, provider] : Settings.ClusterMapping) {
+ for (const auto& [cluster, provider] : Settings_.ClusterMapping) {
if (provider != PgProviderName) {
- Provider = provider;
+ Provider_ = provider;
break;
}
}
- if (!Provider) {
- Provider = PgProviderName;
+ if (!Provider_) {
+ Provider_ = PgProviderName;
}
- Y_ENSURE(!Provider.empty());
+ Y_ENSURE(!Provider_.empty());
- for (size_t i = 0; i < Settings.PgParameterTypeOids.size(); ++i) {
+ for (size_t i = 0; i < Settings_.PgParameterTypeOids.size(); ++i) {
const auto paramName = PREPARED_PARAM_PREFIX + ToString(i + 1);
- const auto typeOid = Settings.PgParameterTypeOids[i];
+ const auto typeOid = Settings_.PgParameterTypeOids[i];
const auto& typeName =
typeOid != UNKNOWNOID ? NPg::LookupType(typeOid).Name : DEFAULT_PARAM_TYPE;
- State.ParamNameToPgTypeName[paramName] = typeName;
+ State_.ParamNameToPgTypeName[paramName] = typeName;
}
}
void OnResult(const List* raw) {
- if (!PerStatementResult) {
- AstParseResults[StatementId].Pool = std::make_unique<TMemoryPool>(4096);
- AstParseResults[StatementId].Root = ParseResult(raw);
- AstParseResults[StatementId].PgAutoParamValues = State.AutoParamValues;
+ if (!PerStatementResult_) {
+ AstParseResults_[StatementId_].Pool = std::make_unique<TMemoryPool>(4096);
+ AstParseResults_[StatementId_].Root = ParseResult(raw);
+ AstParseResults_[StatementId_].PgAutoParamValues = State_.AutoParamValues;
return;
}
- AstParseResults.resize(ListLength(raw));
- if (StmtParseInfo) {
- StmtParseInfo->resize(AstParseResults.size());
+ AstParseResults_.resize(ListLength(raw));
+ if (StmtParseInfo_) {
+ StmtParseInfo_->resize(AstParseResults_.size());
}
- for (; StatementId < AstParseResults.size(); ++StatementId) {
- AstParseResults[StatementId].Pool = std::make_unique<TMemoryPool>(4096);
- AstParseResults[StatementId].Root = ParseResult(raw, StatementId);
- AstParseResults[StatementId].PgAutoParamValues = State.AutoParamValues;
- State = {};
+ for (; StatementId_ < AstParseResults_.size(); ++StatementId_) {
+ AstParseResults_[StatementId_].Pool = std::make_unique<TMemoryPool>(4096);
+ AstParseResults_[StatementId_].Root = ParseResult(raw, StatementId_);
+ AstParseResults_[StatementId_].PgAutoParamValues = State_.AutoParamValues;
+ State_ = {};
}
}
void OnError(const TIssue& issue) {
- AstParseResults[StatementId].Issues.AddIssue(issue);
+ AstParseResults_[StatementId_].Issues.AddIssue(issue);
}
void PrepareStatements() {
auto configSource = L(A("DataSource"), QA(TString(NYql::ConfigProviderName)));
- State.Statements.push_back(L(A("let"), A("world"), L(A(TString(NYql::ConfigureName)), A("world"), configSource,
+ State_.Statements.push_back(L(A("let"), A("world"), L(A(TString(NYql::ConfigureName)), A("world"), configSource,
QA("OrderedColumns"))));
}
@@ -447,12 +447,12 @@ public:
PrepareStatements();
auto configSource = L(A("DataSource"), QA(TString(NYql::ConfigProviderName)));
- ui32 blockEnginePgmPos = State.Statements.size();
- State.Statements.push_back(configSource);
- ui32 costBasedOptimizerPos = State.Statements.size();
- State.Statements.push_back(configSource);
- ui32 dqEnginePgmPos = State.Statements.size();
- State.Statements.push_back(configSource);
+ ui32 blockEnginePgmPos = State_.Statements.size();
+ State_.Statements.push_back(configSource);
+ ui32 costBasedOptimizerPos = State_.Statements.size();
+ State_.Statements.push_back(configSource);
+ ui32 dqEnginePgmPos = State_.Statements.size();
+ State_.Statements.push_back(configSource);
if (statementId) {
if (!ParseRawStmt(LIST_CAST_NTH(RawStmt, raw, *statementId))) {
@@ -466,62 +466,62 @@ public:
}
}
- if (!State.Views.empty()) {
+ if (!State_.Views.empty()) {
AddError("Not all views have been dropped");
return nullptr;
}
- if (Settings.EndOfQueryCommit && Settings.Mode != NSQLTranslation::ESqlMode::LIMITED_VIEW) {
- State.Statements.push_back(L(A("let"), A("world"), L(A("CommitAll!"),
+ if (Settings_.EndOfQueryCommit && Settings_.Mode != NSQLTranslation::ESqlMode::LIMITED_VIEW) {
+ State_.Statements.push_back(L(A("let"), A("world"), L(A("CommitAll!"),
A("world"))));
}
AddVariableDeclarations();
- if (Settings.Mode != NSQLTranslation::ESqlMode::LIMITED_VIEW) {
- State.Statements.push_back(L(A("return"), A("world")));
+ if (Settings_.Mode != NSQLTranslation::ESqlMode::LIMITED_VIEW) {
+ State_.Statements.push_back(L(A("return"), A("world")));
}
- if (DqEngineEnabled) {
- State.Statements[dqEnginePgmPos] = L(A("let"), A("world"), L(A(TString(NYql::ConfigureName)), A("world"), configSource,
- QA("DqEngine"), QA(DqEngineForce ? "force" : "auto")));
+ if (DqEngineEnabled_) {
+ State_.Statements[dqEnginePgmPos] = L(A("let"), A("world"), L(A(TString(NYql::ConfigureName)), A("world"), configSource,
+ QA("DqEngine"), QA(DqEngineForce_ ? "force" : "auto")));
} else {
- State.Statements.erase(State.Statements.begin() + dqEnginePgmPos);
+ State_.Statements.erase(State_.Statements.begin() + dqEnginePgmPos);
}
- if (State.CostBasedOptimizer) {
- State.Statements[costBasedOptimizerPos] = L(A("let"), A("world"), L(A(TString(NYql::ConfigureName)), A("world"), configSource,
- QA("CostBasedOptimizer"), QA(State.CostBasedOptimizer)));
+ if (State_.CostBasedOptimizer) {
+ State_.Statements[costBasedOptimizerPos] = L(A("let"), A("world"), L(A(TString(NYql::ConfigureName)), A("world"), configSource,
+ QA("CostBasedOptimizer"), QA(State_.CostBasedOptimizer)));
} else {
- State.Statements.erase(State.Statements.begin() + costBasedOptimizerPos);
+ State_.Statements.erase(State_.Statements.begin() + costBasedOptimizerPos);
}
- if (BlockEngineEnabled) {
- State.Statements[blockEnginePgmPos] = L(A("let"), A("world"), L(A(TString(NYql::ConfigureName)), A("world"), configSource,
- QA("BlockEngine"), QA(BlockEngineForce ? "force" : "auto")));
+ if (BlockEngineEnabled_) {
+ State_.Statements[blockEnginePgmPos] = L(A("let"), A("world"), L(A(TString(NYql::ConfigureName)), A("world"), configSource,
+ QA("BlockEngine"), QA(BlockEngineForce_ ? "force" : "auto")));
} else {
- State.Statements.erase(State.Statements.begin() + blockEnginePgmPos);
+ State_.Statements.erase(State_.Statements.begin() + blockEnginePgmPos);
}
return FinishStatements();
}
TAstNode* FinishStatements() {
- return VL(State.Statements.data(), State.Statements.size());
+ return VL(State_.Statements.data(), State_.Statements.size());
}
[[nodiscard]]
bool ParseRawStmt(const RawStmt* value) {
AT_LOCATION_EX(value, stmt_location);
auto node = value->stmt;
- if (Settings.Mode == NSQLTranslation::ESqlMode::LIMITED_VIEW) {
+ if (Settings_.Mode == NSQLTranslation::ESqlMode::LIMITED_VIEW) {
if (NodeTag(node) != T_SelectStmt && NodeTag(node) != T_VariableSetStmt) {
AddError("Unsupported statement in LIMITED_VIEW mode");
return false;
}
}
- if (StmtParseInfo) {
- (*StmtParseInfo)[StatementId].CommandTagName = GetCommandName(node);
+ if (StmtParseInfo_) {
+ (*StmtParseInfo_)[StatementId_].CommandTagName = GetCommandName(node);
}
switch (NodeTag(node)) {
case T_SelectStmt:
@@ -594,7 +594,7 @@ public:
Y_ABORT_UNLESS(rawValuesLists);
size_t rows = ListLength(rawValuesLists);
- if (rows == 0 || !Settings.AutoParametrizeEnabled || !Settings.AutoParametrizeValuesStmt) {
+ if (rows == 0 || !Settings_.AutoParametrizeEnabled || !Settings_.AutoParametrizeValuesStmt) {
return false;
}
@@ -620,31 +620,31 @@ public:
return true;
}
- TMaybe<TVector<TPgConst::Type>> InferColumnTypesForValuesStmt(const TVector<TPgConst>& values, size_t cols) {
+ TMaybe<TVector<TPgConst::EType>> InferColumnTypesForValuesStmt(const TVector<TPgConst>& values, size_t cols) {
Y_ABORT_UNLESS((values.size() % cols == 0), "wrong amount of columns for auto param values vector");
- TVector<TMaybe<TPgConst::Type>> maybeColumnTypes(cols);
+ TVector<TMaybe<TPgConst::EType>> maybeColumnTypes(cols);
for (size_t i = 0; i < values.size(); ++i) {
const auto& value = values[i];
size_t col = i % cols;
auto& columnType = maybeColumnTypes[col];
- if (!columnType || columnType.GetRef() == TPgConst::Type::unknown || columnType.GetRef() == TPgConst::Type::nil) {
- columnType = value.type;
+ if (!columnType || columnType.GetRef() == TPgConst::EType::unknown || columnType.GetRef() == TPgConst::EType::nil) {
+ columnType = value.Type;
continue;
}
// should we allow compatible types here?
- if (columnType.GetRef() != value.type && columnType.GetRef() != TPgConst::Type::unknown && columnType.GetRef() != TPgConst::Type::nil) {
+ if (columnType.GetRef() != value.Type && columnType.GetRef() != TPgConst::EType::unknown && columnType.GetRef() != TPgConst::EType::nil) {
YQL_CLOG(INFO, Default)
<< "Failed to auto parametrize: different types: "
- << TPgConst::ToString(columnType.GetRef()) << " and " << TPgConst::ToString(value.type)
+ << TPgConst::ToString(columnType.GetRef()) << " and " << TPgConst::ToString(value.Type)
<< " in col " << col;
return {};
}
}
- TVector<TPgConst::Type> columnTypes;
+ TVector<TPgConst::EType> columnTypes;
for (auto& maybeColumnType: maybeColumnTypes) {
if (maybeColumnType.Empty()) {
YQL_CLOG(INFO, Default) << "Failed to auto parametrize: can't infer PgType for column";
@@ -656,28 +656,28 @@ public:
}
TString AddSimpleAutoParam(TPgConst&& valueNType) {
- if (!State.AutoParamValues) {
- Y_ENSURE(Settings.AutoParamBuilderFactory);
- State.AutoParamValues = Settings.AutoParamBuilderFactory->MakeBuilder();
+ if (!State_.AutoParamValues) {
+ Y_ENSURE(Settings_.AutoParamBuilderFactory);
+ State_.AutoParamValues = Settings_.AutoParamBuilderFactory->MakeBuilder();
}
- auto nextName = TString(AUTO_PARAM_PREFIX) + ToString(State.AutoParamValues->Size());
- auto& type = State.AutoParamValues->Add(nextName);
- type.Pg(TPgConst::ToString(valueNType.type));
+ auto nextName = TString(AUTO_PARAM_PREFIX) + ToString(State_.AutoParamValues->Size());
+ auto& type = State_.AutoParamValues->Add(nextName);
+ type.Pg(TPgConst::ToString(valueNType.Type));
auto& data = type.FinishType();
- data.Pg(valueNType.value);
+ data.Pg(valueNType.Value);
data.FinishData();
return nextName;
}
- TString AddValuesAutoParam(TVector<TPgConst>&& values, TVector<TPgConst::Type>&& columnTypes) {
- if (!State.AutoParamValues) {
- Y_ENSURE(Settings.AutoParamBuilderFactory);
- State.AutoParamValues = Settings.AutoParamBuilderFactory->MakeBuilder();
+ TString AddValuesAutoParam(TVector<TPgConst>&& values, TVector<TPgConst::EType>&& columnTypes) {
+ if (!State_.AutoParamValues) {
+ Y_ENSURE(Settings_.AutoParamBuilderFactory);
+ State_.AutoParamValues = Settings_.AutoParamBuilderFactory->MakeBuilder();
}
- auto nextName = TString(AUTO_PARAM_PREFIX) + ToString(State.AutoParamValues->Size());
- auto& type = State.AutoParamValues->Add(nextName);
+ auto nextName = TString(AUTO_PARAM_PREFIX) + ToString(State_.AutoParamValues->Size());
+ auto& type = State_.AutoParamValues->Add(nextName);
type.BeginList();
type.BeginTuple();
for (const auto& t : columnTypes) {
@@ -696,7 +696,7 @@ public:
data.BeginTuple();
for (size_t delta = 0; delta < cols; ++delta) {
data.BeforeItem();
- data.Pg(values[idx + delta].value);
+ data.Pg(values[idx + delta].Value);
data.AfterItem();
}
@@ -709,7 +709,7 @@ public:
return nextName;
}
- TAstNode* MakeValuesStmtAutoParam(TVector<TPgConst>&& values, TVector<TPgConst::Type>&& columnTypes) {
+ TAstNode* MakeValuesStmtAutoParam(TVector<TPgConst>&& values, TVector<TPgConst::EType>&& columnTypes) {
TVector<TAstNode*> autoParamTupleType;
autoParamTupleType.reserve(columnTypes.size());
autoParamTupleType.push_back(A("TupleType"));
@@ -720,9 +720,9 @@ public:
const auto paramType = L(A("ListType"), VL(autoParamTupleType));
const auto paramName = AddValuesAutoParam(std::move(values), std::move(columnTypes));
- State.Statements.push_back(L(A("declare"), A(paramName), paramType));
+ State_.Statements.push_back(L(A("declare"), A(paramName), paramType));
- YQL_CLOG(INFO, Default) << "Successfully autoparametrized VALUES at" << State.Positions.back();
+ YQL_CLOG(INFO, Default) << "Successfully autoparametrized VALUES at" << State_.Positions.back();
return A(paramName);
}
@@ -860,23 +860,23 @@ public:
const SelectStmt* value,
const TSelectStmtSettings& selectSettings
) {
- if (Settings.Mode == NSQLTranslation::ESqlMode::LIMITED_VIEW) {
- if (HasSelectInLimitedView) {
+ if (Settings_.Mode == NSQLTranslation::ESqlMode::LIMITED_VIEW) {
+ if (HasSelectInLimitedView_) {
AddError("Expected exactly one SELECT in LIMITED_VIEW mode");
return nullptr;
}
- HasSelectInLimitedView = true;
+ HasSelectInLimitedView_ = true;
}
bool isValuesClauseOfInsertStmt = selectSettings.FillTargetColumns;
- State.CTE.emplace_back();
- auto prevRecursiveView = State.CurrentRecursiveView;
- State.CurrentRecursiveView = selectSettings.Recursive;
+ State_.CTE.emplace_back();
+ auto prevRecursiveView = State_.CurrentRecursiveView;
+ State_.CurrentRecursiveView = selectSettings.Recursive;
Y_DEFER {
- State.CTE.pop_back();
- State.CurrentRecursiveView = prevRecursiveView;
+ State_.CTE.pop_back();
+ State_.CurrentRecursiveView = prevRecursiveView;
};
if (value->withClause) {
@@ -1401,26 +1401,26 @@ public:
return output;
}
- if (Settings.Mode == NSQLTranslation::ESqlMode::LIMITED_VIEW) {
- State.Statements.push_back(L(A("return"), L(A("Right!"), L(A("Cons!"), A("world"), output))));
- return State.Statements.back();
+ if (Settings_.Mode == NSQLTranslation::ESqlMode::LIMITED_VIEW) {
+ State_.Statements.push_back(L(A("return"), L(A("Right!"), L(A("Cons!"), A("world"), output))));
+ return State_.Statements.back();
}
auto resOptions = BuildResultOptions(!sort);
- State.Statements.push_back(L(A("let"), A("output"), output));
- State.Statements.push_back(L(A("let"), A("result_sink"), L(A("DataSink"), QA(TString(NYql::ResultProviderName)))));
- State.Statements.push_back(L(A("let"), A("world"), L(A("Write!"),
+ State_.Statements.push_back(L(A("let"), A("output"), output));
+ State_.Statements.push_back(L(A("let"), A("result_sink"), L(A("DataSink"), QA(TString(NYql::ResultProviderName)))));
+ State_.Statements.push_back(L(A("let"), A("world"), L(A("Write!"),
A("world"), A("result_sink"), L(A("Key")), A("output"), resOptions)));
- State.Statements.push_back(L(A("let"), A("world"), L(A("Commit!"),
+ State_.Statements.push_back(L(A("let"), A("world"), L(A("Commit!"),
A("world"), A("result_sink"))));
- return State.Statements.back();
+ return State_.Statements.back();
}
TAstNode* BuildResultOptions(bool unordered) {
TVector<TAstNode*> options;
options.push_back(QL(QA("type")));
options.push_back(QL(QA("autoref")));
- if (unordered && UnorderedResult) {
+ if (unordered && UnorderedResult_) {
options.push_back(QL(QA("unordered")));
}
@@ -1475,7 +1475,7 @@ public:
return false;
}
- auto& currentCTEs = State.CTE.back();
+ auto& currentCTEs = State_.CTE.back();
if (currentCTEs.find(view.Name) != currentCTEs.end()) {
AddError(TStringBuilder() << "CTE already exists: '" << view.Name << "'");
return false;
@@ -1637,7 +1637,7 @@ public:
const auto writeOptions = BuildWriteOptions(value, std::move(returningList));
- State.Statements.push_back(L(
+ State_.Statements.push_back(L(
A("let"),
A("world"),
L(
@@ -1650,7 +1650,7 @@ public:
)
));
- return State.Statements.back();
+ return State_.Statements.back();
}
[[nodiscard]]
@@ -1710,13 +1710,13 @@ public:
L(A("Void")),
QVL(options.data(), options.size())))
));
- State.Statements.push_back(L(
+ State_.Statements.push_back(L(
A("let"),
A("world"),
writeUpdate
));
- return State.Statements.back();
+ return State_.Statements.back();
}
[[nodiscard]]
@@ -1774,14 +1774,14 @@ public:
return nullptr;
}
- auto it = State.Views.find(view.Name);
- if (it != State.Views.end() && !value->replace) {
+ auto it = State_.Views.find(view.Name);
+ if (it != State_.Views.end() && !value->replace) {
AddError(TStringBuilder() << "View already exists: '" << view.Name << "'");
return nullptr;
}
- State.Views[view.Name] = view;
- return State.Statements.back();
+ State_.Views[view.Name] = view;
+ return State_.Statements.back();
}
#pragma region CreateTable
@@ -1800,8 +1800,8 @@ private:
std::vector<TString> ColumnOrder;
std::vector<TAstNode*> PrimaryKey;
std::vector<std::vector<TAstNode*>> UniqConstr;
- bool isTemporary;
- bool ifNotExists;
+ bool IsTemporary;
+ bool IfNotExists;
};
bool CheckConstraintSupported(const Constraint* pk) {
@@ -2027,7 +2027,7 @@ private:
TAstNode* BuildCreateTableOptions(TCreateTableCtx& ctx) {
std::vector<TAstNode*> options;
- TString mode = (ctx.ifNotExists) ? "create_if_not_exists" : "create";
+ TString mode = (ctx.IfNotExists) ? "create_if_not_exists" : "create";
options.push_back(QL(QA("mode"), QA(mode)));
options.push_back(QL(QA("columns"), BuildColumnsOptions(ctx)));
if (!ctx.PrimaryKey.empty()) {
@@ -2041,7 +2041,7 @@ private:
QL(QA("dataColumns"), QL()),
QL(QA("indexColumns"), columns))));
}
- if (ctx.isTemporary) {
+ if (ctx.IsTemporary) {
options.push_back(QL(QA("temporary")));
}
return QVL(options.data(), options.size());
@@ -2050,8 +2050,8 @@ private:
TAstNode* BuildWriteOptions(const InsertStmt* value, TVector<TAstNode*> returningList = {}) {
std::vector<TAstNode*> options;
- const auto insertMode = (ProviderToInsertModeMap.contains(Provider))
- ? ProviderToInsertModeMap.at(Provider)
+ const auto insertMode = (ProviderToInsertModeMap.contains(Provider_))
+ ? ProviderToInsertModeMap.at(Provider_)
: "append";
options.push_back(QL(QA("mode"), QA(insertMode)));
@@ -2114,13 +2114,13 @@ public:
TCreateTableCtx ctx {};
if (value->if_not_exists) {
- ctx.ifNotExists = true;
+ ctx.IfNotExists = true;
}
const auto relPersistence = static_cast<NPg::ERelPersistence>(value->relation->relpersistence);
switch (relPersistence) {
case NPg::ERelPersistence::Temp:
- ctx.isTemporary = true;
+ ctx.IsTemporary = true;
break;
case NPg::ERelPersistence::Unlogged:
AddError("UNLOGGED tables not supported");
@@ -2158,12 +2158,12 @@ public:
}
}
- State.Statements.push_back(
+ State_.Statements.push_back(
L(A("let"), A("world"),
L(A("Write!"), A("world"), sink, key, L(A("Void")),
BuildCreateTableOptions(ctx))));
- return State.Statements.back();
+ return State_.Statements.back();
}
#pragma endregion CreateTable
@@ -2215,18 +2215,18 @@ public:
}
const auto name = StrVal(nameNode);
- auto it = State.Views.find(name);
- if (!value->missing_ok && it == State.Views.end()) {
+ auto it = State_.Views.find(name);
+ if (!value->missing_ok && it == State_.Views.end()) {
AddError(TStringBuilder() << "View not found: '" << name << "'");
return nullptr;
}
- if (it != State.Views.end()) {
- State.Views.erase(it);
+ if (it != State_.Views.end()) {
+ State_.Views.erase(it);
}
}
- return State.Statements.back();
+ return State_.Statements.back();
}
TAstNode* ParseDropTableStmt(const DropStmt* value, const TVector<const List*>& names) {
@@ -2236,7 +2236,7 @@ public:
}
for (const auto& nameList : names) {
- const auto [clusterName, tableName] = getSchemaAndObjectName(nameList);
+ const auto [clusterName, tableName] = GetSchemaAndObjectName(nameList);
const auto [sink, key] = ParseQualifiedRelationName(
/* catalogName */ "",
clusterName,
@@ -2249,7 +2249,7 @@ public:
}
TString mode = (value->missing_ok) ? "drop_if_exists" : "drop";
- State.Statements.push_back(L(
+ State_.Statements.push_back(L(
A("let"),
A("world"),
L(
@@ -2265,7 +2265,7 @@ public:
));
}
- return State.Statements.back();
+ return State_.Statements.back();
}
TAstNode* ParseDropIndexStmt(const DropStmt* value, const TVector<const List*>& names) {
@@ -2280,7 +2280,7 @@ public:
}
for (const auto& nameList : names) {
- const auto [clusterName, indexName] = getSchemaAndObjectName(nameList);
+ const auto [clusterName, indexName] = GetSchemaAndObjectName(nameList);
const auto [sink, key] = ParseQualifiedPgObjectName(
/* catalogName */ "",
clusterName,
@@ -2289,7 +2289,7 @@ public:
);
TString missingOk = (value->missing_ok) ? "true" : "false";
- State.Statements.push_back(L(
+ State_.Statements.push_back(L(
A("let"),
A("world"),
L(
@@ -2306,7 +2306,7 @@ public:
));
}
- return State.Statements.back();
+ return State_.Statements.back();
}
TAstNode* ParseDropSequenceStmt(const DropStmt* value, const TVector<const List*>& names) {
@@ -2321,7 +2321,7 @@ public:
}
for (const auto& nameList : names) {
- const auto [clusterName, indexName] = getSchemaAndObjectName(nameList);
+ const auto [clusterName, indexName] = GetSchemaAndObjectName(nameList);
const auto [sink, key] = ParseQualifiedPgObjectName(
/* catalogName */ "",
clusterName,
@@ -2330,7 +2330,7 @@ public:
);
TString mode = (value->missing_ok) ? "drop_if_exists" : "drop";
- State.Statements.push_back(L(
+ State_.Statements.push_back(L(
A("let"),
A("world"),
L(
@@ -2346,7 +2346,7 @@ public:
));
}
- return State.Statements.back();
+ return State_.Statements.back();
}
[[nodiscard]]
@@ -2381,13 +2381,13 @@ public:
AddError(TStringBuilder() << "VariableSetStmt, search path supports only 'information_schema', 'public', 'pg_catalog', '' but got: '" << rawStr << "'");
return nullptr;
}
- if (Settings.GUCSettings) {
- Settings.GUCSettings->Set(name, rawStr, value->is_local);
- if (StmtParseInfo) {
- (*StmtParseInfo)[StatementId].KeepInCache = false;
+ if (Settings_.GUCSettings) {
+ Settings_.GUCSettings->Set(name, rawStr, value->is_local);
+ if (StmtParseInfo_) {
+ (*StmtParseInfo_)[StatementId_].KeepInCache = false;
}
}
- return State.Statements.back();
+ return State_.Statements.back();
}
if (isSetConfig) {
@@ -2407,10 +2407,10 @@ public:
if (NodeTag(arg) == T_A_Const && (NodeTag(CAST_NODE(A_Const, arg)->val) == T_String)) {
TString rawStr = StrVal(CAST_NODE(A_Const, arg)->val);
if (name == "unorderedresult") {
- UnorderedResult = (rawStr == "true");
+ UnorderedResult_ = (rawStr == "true");
} else {
auto configSource = L(A("DataSource"), QA(TString(NYql::ConfigProviderName)));
- State.Statements.push_back(L(A("let"), A("world"), L(A(TString(NYql::ConfigureName)), A("world"), configSource,
+ State_.Statements.push_back(L(A("let"), A("world"), L(A(TString(NYql::ConfigureName)), A("world"), configSource,
QA(TString(rawStr == "true" ? "" : "Disable") + TString((name == "useblocks") ? "UseBlocks" : "PgEmitAggApply")))));
}
} else {
@@ -2428,8 +2428,8 @@ public:
auto rawStr = StrVal(CAST_NODE(A_Const, arg)->val);
auto str = to_lower(TString(rawStr));
const bool isDqEngine = name == "dqengine";
- auto& enable = isDqEngine ? DqEngineEnabled : BlockEngineEnabled;
- auto& force = isDqEngine ? DqEngineForce : BlockEngineForce;
+ auto& enable = isDqEngine ? DqEngineEnabled_ : BlockEngineEnabled_;
+ auto& force = isDqEngine ? DqEngineForce_ : BlockEngineForce_;
if (str == "auto") {
enable = true;
force = false;
@@ -2474,7 +2474,7 @@ public:
auto rawStr = StrVal(CAST_NODE(A_Const, arg)->val);
- State.Statements.push_back(L(A("let"), A("world"), L(A(TString(NYql::ConfigureName)), A("world"), providerSource,
+ State_.Statements.push_back(L(A("let"), A("world"), L(A(TString(NYql::ConfigureName)), A("world"), providerSource,
QA("Attr"), QAX(name.substr(dotPos + 1)), QAX(rawStr))));
} else {
AddError(TStringBuilder() << "VariableSetStmt, expected string literal for " << value->name << " option");
@@ -2489,7 +2489,7 @@ public:
auto arg = ListNodeNth(value->args, 0);
if (NodeTag(arg) == T_A_Const && (NodeTag(CAST_NODE(A_Const, arg)->val) == T_String)) {
auto rawStr = StrVal(CAST_NODE(A_Const, arg)->val);
- TablePathPrefix = rawStr;
+ TablePathPrefix_ = rawStr;
} else {
AddError(TStringBuilder() << "VariableSetStmt, expected string literal for " << value->name << " option");
return nullptr;
@@ -2509,7 +2509,7 @@ public:
return nullptr;
}
- State.CostBasedOptimizer = str;
+ State_.CostBasedOptimizer = str;
} else {
AddError(TStringBuilder() << "VariableSetStmt, expected string literal for " << value->name << " option");
return nullptr;
@@ -2523,7 +2523,7 @@ public:
auto arg = ListNodeNth(value->args, 0);
if (NodeTag(arg) == T_A_Const && (NodeTag(CAST_NODE(A_Const, arg)->val) == T_String)) {
auto rawStr = StrVal(CAST_NODE(A_Const, arg)->val);
- State.ApplicationName = rawStr;
+ State_.ApplicationName = rawStr;
} else {
AddError(TStringBuilder() << "VariableSetStmt, expected string literal for " << value->name << " option");
return nullptr;
@@ -2533,7 +2533,7 @@ public:
return nullptr;
}
- return State.Statements.back();
+ return State_.Statements.back();
}
[[nodiscard]]
@@ -2612,7 +2612,7 @@ public:
if (!returningList.empty()) {
options.push_back(QL(QA("returning"), QVL(returningList.data(), returningList.size())));
}
- State.Statements.push_back(L(
+ State_.Statements.push_back(L(
A("let"),
A("world"),
L(
@@ -2624,7 +2624,7 @@ public:
QVL(options.data(), options.size())
)
));
- return State.Statements.back();
+ return State_.Statements.back();
}
TMaybe<TString> GetConfigVariable(const TString& varName) {
@@ -2638,7 +2638,7 @@ public:
return "on";
}
if (varName == "search_path"){
- auto searchPath = Settings.GUCSettings->Get("search_path");
+ auto searchPath = Settings_.GUCSettings->Get("search_path");
return searchPath ? *searchPath : "public";
}
if (varName == "default_transaction_read_only"){
@@ -2693,15 +2693,15 @@ public:
const auto selectOptions = QL(setItems, setOps);
const auto output = L(A("PgSelect"), selectOptions);
- State.Statements.push_back(L(A("let"), A("output"), output));
- State.Statements.push_back(L(A("let"), A("result_sink"), L(A("DataSink"), QA(TString(NYql::ResultProviderName)))));
+ State_.Statements.push_back(L(A("let"), A("output"), output));
+ State_.Statements.push_back(L(A("let"), A("result_sink"), L(A("DataSink"), QA(TString(NYql::ResultProviderName)))));
const auto resOptions = BuildResultOptions(true);
- State.Statements.push_back(L(A("let"), A("world"), L(A("Write!"),
+ State_.Statements.push_back(L(A("let"), A("world"), L(A("Write!"),
A("world"), A("result_sink"), L(A("Key")), A("output"), resOptions)));
- State.Statements.push_back(L(A("let"), A("world"), L(A("Commit!"),
+ State_.Statements.push_back(L(A("let"), A("world"), L(A("Commit!"),
A("world"), A("result_sink"))));
- return State.Statements.back();
+ return State_.Statements.back();
}
[[nodiscard]]
@@ -2714,17 +2714,17 @@ public:
case TRANS_STMT_ROLLBACK_TO:
return true;
case TRANS_STMT_COMMIT:
- State.Statements.push_back(L(A("let"), A("world"), L(A("CommitAll!"),
+ State_.Statements.push_back(L(A("let"), A("world"), L(A("CommitAll!"),
A("world"))));
- if (Settings.GUCSettings) {
- Settings.GUCSettings->Commit();
+ if (Settings_.GUCSettings) {
+ Settings_.GUCSettings->Commit();
}
return true;
case TRANS_STMT_ROLLBACK:
- State.Statements.push_back(L(A("let"), A("world"), L(A("CommitAll!"),
+ State_.Statements.push_back(L(A("let"), A("world"), L(A("CommitAll!"),
A("world"), QL(QL(QA("mode"), QA("rollback"))))));
- if (Settings.GUCSettings) {
- Settings.GUCSettings->RollBack();
+ if (Settings_.GUCSettings) {
+ Settings_.GUCSettings->RollBack();
}
return true;
default:
@@ -2791,7 +2791,7 @@ public:
desc.emplace_back(QL(QA("dataColumns"), QVL(coverColumns->data(), coverColumns->size())));
desc.emplace_back(QL(QA("flags"), QVL(flags.data(), flags.size())));
- State.Statements.push_back(L(
+ State_.Statements.push_back(L(
A("let"),
A("world"),
L(
@@ -2807,7 +2807,7 @@ public:
)
));
- return State.Statements.back();
+ return State_.Statements.back();
}
[[nodiscard]]
@@ -2890,12 +2890,12 @@ public:
options.push_back(QL(QA("owner_id"), QA(ToString(value->ownerId))));
}
- State.Statements.push_back(
+ State_.Statements.push_back(
L(A("let"), A("world"),
L(A("Write!"), A("world"), sink, key, L(A("Void")),
QVL(options.data(), options.size()))));
- return State.Statements.back();
+ return State_.Statements.back();
}
[[nodiscard]]
@@ -2964,12 +2964,12 @@ public:
options.push_back(QL(QA("for_identity")));
}
- State.Statements.push_back(
+ State_.Statements.push_back(
L(A("let"), A("world"),
L(A("Write!"), A("world"), sink, key, L(A("Void")),
QVL(options.data(), options.size()))));
- return State.Statements.back();
+ return State_.Statements.back();
}
[[nodiscard]]
@@ -3060,12 +3060,12 @@ public:
)
);
- State.Statements.push_back(
+ State_.Statements.push_back(
L(A("let"), A("world"),
L(A("Write!"), A("world"), sink, key, L(A("Void")),
QVL(options.data(), options.size()))));
- return State.Statements.back();
+ return State_.Statements.back();
}
TMaybe<TFromDesc> ParseFromClause(const Node* node) {
@@ -3091,11 +3091,11 @@ public:
auto colNamesTuple = QVL(colNamesNodes.data(), colNamesNodes.size());
if (p.InjectRead) {
- auto label = "read" + ToString(State.ReadIndex);
- State.Statements.push_back(L(A("let"), A(label), p.Source));
- State.Statements.push_back(L(A("let"), A("world"), L(A("Left!"), A(label))));
+ auto label = "read" + ToString(State_.ReadIndex);
+ State_.Statements.push_back(L(A("let"), A(label), p.Source));
+ State_.Statements.push_back(L(A("let"), A("world"), L(A("Left!"), A(label))));
fromList.push_back(QL(L(A("Right!"), A(label)), aliasNode, colNamesTuple));
- ++State.ReadIndex;
+ ++State_.ReadIndex;
} else {
auto source = p.Source;
if (!source) {
@@ -3127,12 +3127,12 @@ public:
}
if (schemaname == "public") {
- return Settings.DefaultCluster;;
+ return Settings_.DefaultCluster;;
}
- if (schemaname == "" && Settings.GUCSettings) {
- auto search_path = Settings.GUCSettings->Get("search_path");
+ if (schemaname == "" && Settings_.GUCSettings) {
+ auto search_path = Settings_.GUCSettings->Get("search_path");
if (!search_path || *search_path == "public" || search_path->empty()) {
- return Settings.DefaultCluster;
+ return Settings_.DefaultCluster;
}
return TString(*search_path);
}
@@ -3142,10 +3142,10 @@ public:
TAstNode* BuildClusterSinkOrSourceExpression(
bool isSink, const TStringBuf schemaname) {
TString usedCluster(schemaname);
- auto p = Settings.ClusterMapping.FindPtr(usedCluster);
+ auto p = Settings_.ClusterMapping.FindPtr(usedCluster);
if (!p) {
usedCluster = to_lower(usedCluster);
- p = Settings.ClusterMapping.FindPtr(usedCluster);
+ p = Settings_.ClusterMapping.FindPtr(usedCluster);
}
if (!p) {
@@ -3161,7 +3161,7 @@ public:
) {
auto lowerCluster = to_lower(TString(cluster));
bool noPrefix = (lowerCluster == "pg_catalog" || lowerCluster == "information_schema");
- TString tableName = noPrefix ? to_lower(TString(relname)) : TablePathPrefix + relname;
+ TString tableName = noPrefix ? to_lower(TString(relname)) : TablePathPrefix_ + relname;
return L(A("Key"), QL(QA(isScheme ? "tablescheme" : "table"),
L(A("String"), QAX(std::move(tableName)))));
}
@@ -3188,7 +3188,7 @@ public:
TAstNode* BuildPgObjectExpression(const TStringBuf objectName, const TStringBuf objectType) {
bool noPrefix = (objectType == "pgIndex");
- TString name = noPrefix ? TString(objectName) : TablePathPrefix + TString(objectName);
+ TString name = noPrefix ? TString(objectName) : TablePathPrefix_ + TString(objectName);
return L(A("Key"), QL(QA("pgObject"),
L(A("String"), QAX(std::move(name))),
L(A("String"), QA(objectType))
@@ -3231,20 +3231,20 @@ public:
const TView* view = nullptr;
if (StrLength(value->schemaname) == 0) {
- for (auto rit = State.CTE.rbegin(); rit != State.CTE.rend(); ++rit) {
+ for (auto rit = State_.CTE.rbegin(); rit != State_.CTE.rend(); ++rit) {
auto cteIt = rit->find(value->relname);
if (cteIt != rit->end()) {
view = &cteIt->second;
break;
}
}
- if (!view && State.CurrentRecursiveView && State.CurrentRecursiveView->Name == value->relname) {
- view = State.CurrentRecursiveView;
+ if (!view && State_.CurrentRecursiveView && State_.CurrentRecursiveView->Name == value->relname) {
+ view = State_.CurrentRecursiveView;
}
if (!view) {
- auto viewIt = State.Views.find(value->relname);
- if (viewIt != State.Views.end()) {
+ auto viewIt = State_.Views.find(value->relname);
+ if (viewIt != State_.Views.end()) {
view = &viewIt->second;
}
}
@@ -3267,7 +3267,7 @@ public:
TString schemaname = value->schemaname;
if (!StrCompare(value->schemaname, "bindings")) {
bool isBinding = false;
- switch (Settings.BindingsMode) {
+ switch (Settings_.BindingsMode) {
case NSQLTranslation::EBindingsMode::DISABLED:
AddError("Please remove 'bindings.' from your query, the support for this syntax has ended");
return {};
@@ -3278,7 +3278,7 @@ public:
AddWarning(TIssuesIds::YQL_DEPRECATED_BINDINGS, "Please remove 'bindings.' from your query, the support for this syntax will be dropped soon");
[[fallthrough]];
case NSQLTranslation::EBindingsMode::DROP:
- schemaname = Settings.DefaultCluster;
+ schemaname = Settings_.DefaultCluster;
break;
}
@@ -3299,7 +3299,7 @@ public:
if (source == nullptr || key == nullptr) {
return {};
}
- const auto readExpr = this->SqlProcArgsCount ?
+ const auto readExpr = this->SqlProcArgsCount_ ?
L(A("Cons!"),
A("world"),
L(
@@ -3333,7 +3333,7 @@ public:
const TString binding = value->relname;
NSQLTranslation::TBindingInfo bindingInfo;
- if (const auto& error = ExtractBindingInfo(Settings, binding, bindingInfo)) {
+ if (const auto& error = ExtractBindingInfo(Settings_, binding, bindingInfo)) {
AddError(error);
return nullptr;
}
@@ -3566,14 +3566,14 @@ public:
}
TAstNode* ParseParamRefExpr(const ParamRef* value) {
- if (SqlProcArgsCount && (value->number < 1 || (ui32)value->number > *SqlProcArgsCount)) {
+ if (SqlProcArgsCount_ && (value->number < 1 || (ui32)value->number > *SqlProcArgsCount_)) {
AddError(TStringBuilder() << "Unexpected parameter number: " << value->number);
return nullptr;
}
const auto varName = PREPARED_PARAM_PREFIX + ToString(value->number);
- if (!State.ParamNameToPgTypeName.contains(varName)) {
- State.ParamNameToPgTypeName[varName] = DEFAULT_PARAM_TYPE;
+ if (!State_.ParamNameToPgTypeName.contains(varName)) {
+ State_.ParamNameToPgTypeName[varName] = DEFAULT_PARAM_TYPE;
}
return A(varName);
}
@@ -3587,8 +3587,8 @@ public:
return nullptr;
}
- State.Statements.push_back(L(A("return"), expr));
- return State.Statements.back();
+ State_.Statements.push_back(L(A("return"), expr));
+ return State_.Statements.back();
}
TAstNode* ParseSQLValueFunction(const SQLValueFunction* value) {
@@ -3621,13 +3621,13 @@ public:
case SVFOP_CURRENT_USER:
case SVFOP_CURRENT_ROLE:
case SVFOP_USER: {
- auto user = Settings.GUCSettings->Get("ydb_user");
+ auto user = Settings_.GUCSettings->Get("ydb_user");
return L(A("PgConst"), user ? QAX(TString(*user)) : QA("postgres"), L(A("PgType"), QA("name")));
}
case SVFOP_CURRENT_CATALOG: {
std::optional<TString> database;
- if (Settings.GUCSettings) {
- database = Settings.GUCSettings->Get("ydb_database");
+ if (Settings_.GUCSettings) {
+ database = Settings_.GUCSettings->Get("ydb_database");
}
return L(A("PgConst"), QA(database ? *database : "postgres"), L(A("PgType"), QA("name")));
@@ -3642,8 +3642,8 @@ public:
TAstNode* GetCurrentSchema() {
std::optional<TString> searchPath;
- if (Settings.GUCSettings) {
- searchPath = Settings.GUCSettings->Get("search_path");
+ if (Settings_.GUCSettings) {
+ searchPath = Settings_.GUCSettings->Get("search_path");
}
return L(A("PgConst"), QA(searchPath ? *searchPath : "public"), L(A("PgType"), QA("name")));
@@ -3763,9 +3763,9 @@ public:
TAstNode* AutoParametrizeConst(TPgConst&& valueNType, TAstNode* pgType) {
const auto& paramName = AddSimpleAutoParam(std::move(valueNType));
- State.Statements.push_back(L(A("declare"), A(paramName), pgType));
+ State_.Statements.push_back(L(A("declare"), A(paramName), pgType));
- YQL_CLOG(INFO, Default) << "Autoparametrized " << paramName << " at " << State.Positions.back();
+ YQL_CLOG(INFO, Default) << "Autoparametrized " << paramName << " at " << State_.Positions.back();
return A(paramName);
}
@@ -3779,10 +3779,10 @@ public:
}
TAstNode* pgTypeNode = !value->isnull
- ? L(A("PgType"), QA(TPgConst::ToString(valueNType->type)))
+ ? L(A("PgType"), QA(TPgConst::ToString(valueNType->Type)))
: L(A("PgType"), QA("unknown"));
- if (Settings.AutoParametrizeEnabled && settings.AutoParametrizeEnabled) {
+ if (Settings_.AutoParametrizeEnabled && settings.AutoParametrizeEnabled) {
return AutoParametrizeConst(std::move(valueNType.GetRef()), pgTypeNode);
}
@@ -3793,12 +3793,12 @@ public:
switch (NodeTag(val)) {
case T_Integer:
case T_Float: {
- return L(A("PgConst"), QA(valueNType->value.GetRef()), pgTypeNode);
+ return L(A("PgConst"), QA(valueNType->Value.GetRef()), pgTypeNode);
}
case T_Boolean:
case T_String:
case T_BitString: {
- return L(A("PgConst"), QAX(valueNType->value.GetRef()), pgTypeNode);
+ return L(A("PgConst"), QAX(valueNType->Value.GetRef()), pgTypeNode);
}
default: {
NodeNotImplemented((const Node*)value);
@@ -4729,7 +4729,7 @@ public:
switch (value->sortby_dir) {
case SORTBY_DEFAULT:
case SORTBY_ASC:
- if (Settings.PgSortNulls) {
+ if (Settings_.PgSortNulls) {
nullsFirst = false;
}
break;
@@ -4889,7 +4889,7 @@ public:
auto sublink = CAST_NODE(SubLink, value->rexpr);
auto subselect = CAST_NODE(SelectStmt, sublink->subselect);
if (subselect->withClause && subselect->withClause->recursive) {
- if (State.ApplicationName && State.ApplicationName->StartsWith("pgAdmin")) {
+ if (State_.ApplicationName && State_.ApplicationName->StartsWith("pgAdmin")) {
AddWarning(TIssuesIds::PG_COMPAT, "AEXPR_OP_ANY forced to false");
return L(A("PgConst"), QA("false"), L(A("PgType"), QA("bool")));
}
@@ -5105,9 +5105,9 @@ public:
}
void AddVariableDeclarations() {
- for (const auto& [varName, typeName] : State.ParamNameToPgTypeName) {
+ for (const auto& [varName, typeName] : State_.ParamNameToPgTypeName) {
const auto pgType = L(A("PgType"), QA(typeName));
- State.Statements.push_back(L(A("declare"), A(varName), pgType));
+ State_.Statements.push_back(L(A("declare"), A(varName), pgType));
}
}
@@ -5132,11 +5132,11 @@ public:
}
TAstNode* VL(TAstNode** nodes, ui32 size, TPosition pos = {}) {
- return TAstNode::NewList(pos.Row ? pos : State.Positions.back(), nodes, size, *AstParseResults[StatementId].Pool);
+ return TAstNode::NewList(pos.Row ? pos : State_.Positions.back(), nodes, size, *AstParseResults_[StatementId_].Pool);
}
TAstNode* VL(TArrayRef<TAstNode*> nodes, TPosition pos = {}) {
- return TAstNode::NewList(pos.Row ? pos : State.Positions.back(), nodes.data(), nodes.size(), *AstParseResults[StatementId].Pool);
+ return TAstNode::NewList(pos.Row ? pos : State_.Positions.back(), nodes.data(), nodes.size(), *AstParseResults_[StatementId_].Pool);
}
TAstNode* QVL(TAstNode** nodes, ui32 size, TPosition pos = {}) {
@@ -5152,11 +5152,11 @@ public:
}
TAstNode* A(const TStringBuf str, TPosition pos = {}, ui32 flags = 0) {
- return TAstNode::NewAtom(pos.Row ? pos : State.Positions.back(), str, *AstParseResults[StatementId].Pool, flags);
+ return TAstNode::NewAtom(pos.Row ? pos : State_.Positions.back(), str, *AstParseResults_[StatementId_].Pool, flags);
}
TAstNode* AX(const TString& str, TPosition pos = {}) {
- return A(str, pos.Row ? pos : State.Positions.back(), TNodeFlags::ArbitraryContent);
+ return A(str, pos.Row ? pos : State_.Positions.back(), TNodeFlags::ArbitraryContent);
}
TAstNode* Q(TAstNode* node, TPosition pos = {}) {
@@ -5175,7 +5175,7 @@ public:
TAstNode* L(TNodes... nodes) {
TLState state;
LImpl(state, nodes...);
- return TAstNode::NewList(state.Position.Row ? state.Position : State.Positions.back(), state.Nodes.data(), state.Nodes.size(), *AstParseResults[StatementId].Pool);
+ return TAstNode::NewList(state.Position.Row ? state.Position : State_.Positions.back(), state.Nodes.data(), state.Nodes.size(), *AstParseResults_[StatementId_].Pool);
}
template <typename... TNodes>
@@ -5199,11 +5199,11 @@ public:
private:
void AddError(const TString& value) {
- AstParseResults[StatementId].Issues.AddIssue(TIssue(State.Positions.back(), value));
+ AstParseResults_[StatementId_].Issues.AddIssue(TIssue(State_.Positions.back(), value));
}
void AddWarning(int code, const TString& value) {
- AstParseResults[StatementId].Issues.AddIssue(TIssue(State.Positions.back(), value).SetCode(code, ESeverity::TSeverityIds_ESeverityId_S_WARNING));
+ AstParseResults_[StatementId_].Issues.AddIssue(TIssue(State_.Positions.back(), value).SetCode(code, ESeverity::TSeverityIds_ESeverityId_S_WARNING));
}
struct TLState {
@@ -5234,19 +5234,19 @@ private:
void PushPosition(int location) {
if (location == -1) {
- State.Positions.push_back(State.Positions.back());
+ State_.Positions.push_back(State_.Positions.back());
return;
}
- State.Positions.push_back(Location2Position(location));
+ State_.Positions.push_back(Location2Position(location));
};
void PopPosition() {
- State.Positions.pop_back();
+ State_.Positions.pop_back();
}
NYql::TPosition Location2Position(int location) const {
- if (!QuerySize) {
+ if (!QuerySize_) {
return NYql::TPosition(0, 0);
}
@@ -5254,36 +5254,36 @@ private:
return NYql::TPosition(0, 0);
}
- auto it = LowerBound(RowStarts.begin(), RowStarts.end(), Min((ui32)location, QuerySize));
- Y_ENSURE(it != RowStarts.end());
+ auto it = LowerBound(RowStarts_.begin(), RowStarts_.end(), Min((ui32)location, QuerySize_));
+ Y_ENSURE(it != RowStarts_.end());
if (*it == (ui32)location) {
- auto row = 1 + it - RowStarts.begin();
+ auto row = 1 + it - RowStarts_.begin();
auto column = 1;
return NYql::TPosition(column, row);
} else {
- Y_ENSURE(it != RowStarts.begin());
- auto row = it - RowStarts.begin();
+ Y_ENSURE(it != RowStarts_.begin());
+ auto row = it - RowStarts_.begin();
auto column = 1 + location - *(it - 1);
return NYql::TPosition(column, row);
}
}
void ScanRows(const TString& query) {
- QuerySize = query.size();
- RowStarts.push_back(0);
+ QuerySize_ = query.size();
+ RowStarts_.push_back(0);
TPosition position(0, 1);
TTextWalker walker(position, true);
auto prevRow = position.Row;
for (ui32 i = 0; i < query.size(); ++i) {
walker.Advance(query[i]);
while (position.Row != prevRow) {
- RowStarts.push_back(i);
+ RowStarts_.push_back(i);
++prevRow;
}
}
- RowStarts.push_back(QuerySize);
+ RowStarts_.push_back(QuerySize_);
}
TAstNode* MakeProjectionRef(const TStringBuf& scope, const A_Const* aConst) {
@@ -5298,25 +5298,25 @@ private:
}
private:
- TVector<TAstParseResult>& AstParseResults;
- NSQLTranslation::TTranslationSettings Settings;
- bool DqEngineEnabled = false;
- bool DqEngineForce = false;
- bool BlockEngineEnabled = false;
- bool BlockEngineForce = false;
- bool UnorderedResult = false;
- TString TablePathPrefix;
- TVector<ui32> RowStarts;
- ui32 QuerySize;
- TString Provider;
+ TVector<TAstParseResult>& AstParseResults_;
+ NSQLTranslation::TTranslationSettings Settings_;
+ bool DqEngineEnabled_ = false;
+ bool DqEngineForce_ = false;
+ bool BlockEngineEnabled_ = false;
+ bool BlockEngineForce_ = false;
+ bool UnorderedResult_ = false;
+ TString TablePathPrefix_;
+ TVector<ui32> RowStarts_;
+ ui32 QuerySize_;
+ TString Provider_;
static const THashMap<TStringBuf, TString> ProviderToInsertModeMap;
- TState State;
- ui32 StatementId = 0;
- TVector<TStmtParseInfo>* StmtParseInfo;
- bool PerStatementResult;
- TMaybe<ui32> SqlProcArgsCount;
- bool HasSelectInLimitedView = false;
+ TState State_;
+ ui32 StatementId_ = 0;
+ TVector<TStmtParseInfo>* StmtParseInfo_;
+ bool PerStatementResult_;
+ TMaybe<ui32> SqlProcArgsCount_;
+ bool HasSelectInLimitedView_ = false;
};
const THashMap<TStringBuf, TString> TConverter::ProviderToInsertModeMap = {
@@ -5469,7 +5469,7 @@ bool ParseCreateFunctionStmtImpl(const CreateFunctionStmt* value, ui32 extension
return false;
}
- value = pgConst->value;
+ value = pgConst->Value;
} else {
Y_ENSURE(desc.DefaultArgs.empty());
}
@@ -5536,8 +5536,8 @@ bool ParseCreateFunctionStmtImpl(const CreateFunctionStmt* value, ui32 extension
class TExtensionHandler : public IPGParseEvents {
public:
TExtensionHandler(ui32 extensionIndex, NYql::NPg::IExtensionSqlBuilder& builder)
- : ExtensionIndex(extensionIndex)
- , Builder(builder)
+ : ExtensionIndex_(extensionIndex)
+ , Builder_(builder)
{}
void OnResult(const List* raw) final {
@@ -5595,7 +5595,7 @@ public:
auto nameNode = ListNodeNth(value->defnames, 0);
auto name = to_lower(TString(StrVal(nameNode)));
- Builder.PrepareType(ExtensionIndex, name);
+ Builder_.PrepareType(ExtensionIndex_, name);
NPg::TTypeDesc desc = NPg::LookupType(name);
@@ -5737,7 +5737,7 @@ public:
desc.PassByValue = true;
}
- Builder.UpdateType(desc);
+ Builder_.UpdateType(desc);
return true;
}
@@ -5819,25 +5819,25 @@ public:
args.push_back(rightType);
}
- Builder.PrepareOper(ExtensionIndex, name, args);
+ Builder_.PrepareOper(ExtensionIndex_, name, args);
auto desc = NPg::LookupOper(name, args);
if (!commutator.empty()) {
TVector<ui32> commArgs;
commArgs.push_back(rightType);
commArgs.push_back(leftType);
- Builder.PrepareOper(ExtensionIndex, commutator, commArgs);
+ Builder_.PrepareOper(ExtensionIndex_, commutator, commArgs);
desc.ComId = NPg::LookupOper(commutator, commArgs).OperId;
}
if (!negator.empty()) {
- Builder.PrepareOper(ExtensionIndex, negator, args);
+ Builder_.PrepareOper(ExtensionIndex_, negator, args);
desc.NegateId = NPg::LookupOper(negator, args).OperId;
}
const auto& procDesc = NPg::LookupProc(procedureName, args);
desc.ProcId = procDesc.ProcId;
desc.ResultType = procDesc.ResultType;
- Builder.UpdateOper(desc);
+ Builder_.UpdateOper(desc);
return true;
}
@@ -5942,7 +5942,7 @@ public:
NPg::TAggregateDesc desc;
desc.Name = name;
- desc.ExtensionIndex = ExtensionIndex;
+ desc.ExtensionIndex = ExtensionIndex_;
if (ListLength(value->args) != 2) {
return false;
}
@@ -5972,7 +5972,7 @@ public:
return false;
}
- Builder.PrepareType(ExtensionIndex, argTypeStr);
+ Builder_.PrepareType(ExtensionIndex_, argTypeStr);
auto argTypeId = NPg::LookupType(argTypeStr).TypeId;
desc.ArgTypes.push_back(argTypeId);
}
@@ -6003,18 +6003,18 @@ public:
desc.DeserializeFuncId = procDesc.ProcId;
}
- Builder.CreateAggregate(desc);
+ Builder_.CreateAggregate(desc);
return true;
}
[[nodiscard]]
bool ParseCreateFunctionStmt(const CreateFunctionStmt* value) {
NYql::NPg::TProcDesc desc;
- if (!ParseCreateFunctionStmtImpl(value, ExtensionIndex, &Builder, desc)) {
+ if (!ParseCreateFunctionStmtImpl(value, ExtensionIndex_, &Builder_, desc)) {
return false;
}
- Builder.CreateProc(desc);
+ Builder_.CreateProc(desc);
return true;
}
@@ -6024,7 +6024,7 @@ public:
table.Schema = "pg_catalog";
table.Name = value->relation->relname;
table.Kind = NPg::ERelKind::Relation;
- table.ExtensionIndex = ExtensionIndex;
+ table.ExtensionIndex = ExtensionIndex_;
TVector<NPg::TColumnInfo> columns;
for (int i = 0; i < ListLength(value->tableElts); ++i) {
auto node = ListNodeNth(value->tableElts, i);
@@ -6037,12 +6037,12 @@ public:
column.Schema = table.Schema;
column.TableName = table.Name;
column.Name = columnDef->colname;
- column.ExtensionIndex = ExtensionIndex;
+ column.ExtensionIndex = ExtensionIndex_;
Y_ENSURE(ParseTypeName(columnDef->typeName, column.UdtType));
columns.push_back(column);
}
- Builder.CreateTable(table, columns);
+ Builder_.CreateTable(table, columns);
return true;
}
@@ -6077,11 +6077,11 @@ public:
if (!pgConst) {
return false;
}
- data.push_back(pgConst->value);
+ data.push_back(pgConst->Value);
}
}
- Builder.InsertValues(NPg::TTableInfoKey{"pg_catalog", tableName}, colNames, data);
+ Builder_.InsertValues(NPg::TTableInfoKey{"pg_catalog", tableName}, colNames, data);
return true;
}
@@ -6098,7 +6098,7 @@ public:
}
NPg::TCastDesc desc;
- desc.ExtensionIndex = ExtensionIndex;
+ desc.ExtensionIndex = ExtensionIndex_;
desc.SourceId = NPg::LookupType(sourceType).TypeId;
desc.TargetId = NPg::LookupType(targetType).TypeId;
if (value->func) {
@@ -6143,7 +6143,7 @@ public:
return false;
}
- Builder.CreateCast(desc);
+ Builder_.CreateCast(desc);
return true;
}
@@ -6184,7 +6184,7 @@ public:
auto typeId = NPg::LookupType(dataType).TypeId;
NPg::TOpClassDesc desc;
- desc.ExtensionIndex = ExtensionIndex;
+ desc.ExtensionIndex = ExtensionIndex_;
desc.Method = method;
desc.TypeId = typeId;
desc.Name = opClassName;
@@ -6209,7 +6209,7 @@ public:
TString funcName = StrVal(ListNodeNth(node->name->objname, 0));
if (node->itemtype == OPCLASS_ITEM_OPERATOR) {
NPg::TAmOpDesc amOpDesc;
- amOpDesc.ExtensionIndex = ExtensionIndex;
+ amOpDesc.ExtensionIndex = ExtensionIndex_;
amOpDesc.Family = familyName;
amOpDesc.Strategy = node->number;
amOpDesc.LeftType = typeId;
@@ -6218,7 +6218,7 @@ public:
ops.push_back(amOpDesc);
} else {
NPg::TAmProcDesc amProcDesc;
- amProcDesc.ExtensionIndex = ExtensionIndex;
+ amProcDesc.ExtensionIndex = ExtensionIndex_;
amProcDesc.Family = familyName;
amProcDesc.ProcNum = node->number;
amProcDesc.LeftType = typeId;
@@ -6243,13 +6243,13 @@ public:
}
}
- Builder.CreateOpClass(desc, ops, procs);
+ Builder_.CreateOpClass(desc, ops, procs);
return true;
}
private:
- const ui32 ExtensionIndex;
- NYql::NPg::IExtensionSqlBuilder& Builder;
+ const ui32 ExtensionIndex_;
+ NYql::NPg::IExtensionSqlBuilder& Builder_;
};
class TExtensionSqlParser : public NYql::NPg::IExtensionSqlParser {
@@ -6267,7 +6267,7 @@ public:
class TSystemFunctionsHandler : public IPGParseEvents {
public:
TSystemFunctionsHandler(TVector<NPg::TProcDesc>& procs)
- : Procs(procs)
+ : Procs_(procs)
{}
void OnResult(const List* raw) final {
@@ -6300,12 +6300,12 @@ public:
return false;
}
- Procs.push_back(desc);
+ Procs_.push_back(desc);
return true;
}
private:
- TVector<NPg::TProcDesc>& Procs;
+ TVector<NPg::TProcDesc>& Procs_;
};
class TSystemFunctionsParser : public NYql::NPg::ISystemFunctionsParser {
@@ -6319,19 +6319,19 @@ public:
class TSqlLanguageParser : public NYql::NPg::ISqlLanguageParser, public IPGParseEvents {
public:
TSqlLanguageParser() {
- Settings.ClusterMapping["pg_catalog"] = TString(PgProviderName);
- Settings.Mode = NSQLTranslation::ESqlMode::LIMITED_VIEW;
+ Settings_.ClusterMapping["pg_catalog"] = TString(PgProviderName);
+ Settings_.Mode = NSQLTranslation::ESqlMode::LIMITED_VIEW;
}
void Parse(const TString& sql, NPg::TProcDesc& proc) final {
- Y_ENSURE(!FreezeGuard.Defined());
- CurrentProc = &proc;
+ Y_ENSURE(!FreezeGuard_.Defined());
+ CurrentProc_ = &proc;
NYql::PGParse(sql, *this);
- CurrentProc = nullptr;
+ CurrentProc_ = nullptr;
}
void ParseNode(const Node* stmt, NPg::TProcDesc& proc) final {
- Y_ENSURE(!FreezeGuard.Defined());
+ Y_ENSURE(!FreezeGuard_.Defined());
proc.ExprNode = nullptr;
if (proc.VariadicType) {
// Can't be expressed as usual lambda
@@ -6341,7 +6341,7 @@ public:
TVector<NYql::TAstParseResult> results(1);
results[0].Pool = std::make_unique<TMemoryPool>(4096);
TVector<TStmtParseInfo> stmtParseInfos(1);
- TConverter converter(results, Settings, "", &stmtParseInfos, false, proc.ArgTypes.size());
+ TConverter converter(results, Settings_, "", &stmtParseInfos, false, proc.ArgTypes.size());
converter.PrepareStatements();
TAstNode* root = nullptr;
switch (NodeTag(stmt)) {
@@ -6373,42 +6373,42 @@ public:
root = converter.MakeLambda(args, root);
auto program = converter.L(converter.L(converter.A("return"), root));
TExprNode::TPtr graph;
- Ctx.IssueManager.Reset();
- if (!CompileExpr(*program, graph, Ctx, nullptr, nullptr, false, Max<ui32>(), 1)) {
- Cerr << "Can't compile SQL for function: " << proc.Name << ", " << Ctx.IssueManager.GetIssues().ToString();
+ Ctx_.IssueManager.Reset();
+ if (!CompileExpr(*program, graph, Ctx_, nullptr, nullptr, false, Max<ui32>(), 1)) {
+ Cerr << "Can't compile SQL for function: " << proc.Name << ", " << Ctx_.IssueManager.GetIssues().ToString();
return;
}
- SavedNodes.push_back(graph);
+ SavedNodes_.push_back(graph);
proc.ExprNode = graph.Get();
}
void Freeze() final {
- Y_ENSURE(!FreezeGuard.Defined());
- FreezeGuard.ConstructInPlace(Ctx);
+ Y_ENSURE(!FreezeGuard_.Defined());
+ FreezeGuard_.ConstructInPlace(Ctx_);
}
TExprContext& GetContext() final {
- Y_ENSURE(FreezeGuard.Defined());
- return Ctx;
+ Y_ENSURE(FreezeGuard_.Defined());
+ return Ctx_;
}
void OnResult(const List* raw) final {
if (ListLength(raw) == 1) {
- ParseNode(LIST_CAST_NTH(RawStmt, raw, 0)->stmt, *CurrentProc);
+ ParseNode(LIST_CAST_NTH(RawStmt, raw, 0)->stmt, *CurrentProc_);
}
}
void OnError(const TIssue& issue) final {
- throw yexception() << "Can't parse SQL for function: " << CurrentProc->Name << ", " << issue.ToString();
+ throw yexception() << "Can't parse SQL for function: " << CurrentProc_->Name << ", " << issue.ToString();
}
private:
- NSQLTranslation::TTranslationSettings Settings;
- TExprContext Ctx;
- TVector<TExprNode::TPtr> SavedNodes;
- TMaybe<TExprContext::TFreezeGuard> FreezeGuard;
- NPg::TProcDesc* CurrentProc = nullptr;
+ NSQLTranslation::TTranslationSettings Settings_;
+ TExprContext Ctx_;
+ TVector<TExprNode::TPtr> SavedNodes_;
+ TMaybe<TExprContext::TFreezeGuard> FreezeGuard_;
+ NPg::TProcDesc* CurrentProc_ = nullptr;
};
std::unique_ptr<NPg::IExtensionSqlParser> CreateExtensionSqlParser() {
diff --git a/yql/essentials/sql/v0/aggregation.cpp b/yql/essentials/sql/v0/aggregation.cpp
index 558648cd641..f62c51946d0 100644
--- a/yql/essentials/sql/v0/aggregation.cpp
+++ b/yql/essentials/sql/v0/aggregation.cpp
@@ -16,35 +16,35 @@ namespace NSQLTranslationV0 {
class TAggregationFactory : public IAggregation {
public:
TAggregationFactory(TPosition pos, const TString& name, const TString& func, EAggregateMode aggMode, bool multi = false)
- : IAggregation(pos, name, func, aggMode), Factory(!func.empty() ?
- BuildBind(Pos, aggMode == EAggregateMode::OverWindow ? "window_module" : "aggregate_module", func) : nullptr),
- DynamicFactory(!Factory), Multi(multi)
+ : IAggregation(pos, name, func, aggMode), Factory_(!func.empty() ?
+ BuildBind(Pos_, aggMode == EAggregateMode::OverWindow ? "window_module" : "aggregate_module", func) : nullptr),
+ DynamicFactory_(!Factory_), Multi_(multi)
{
- if (!Factory) {
- FakeSource = BuildFakeSource(pos);
+ if (!Factory_) {
+ FakeSource_ = BuildFakeSource(pos);
}
}
protected:
bool InitAggr(TContext& ctx, bool isFactory, ISource* src, TAstListNode& node, const TVector<TNodePtr>& exprs) override {
- ui32 expectedArgs = !Factory ? 2 : (isFactory ? 0 : 1);
- if (!Factory) {
+ ui32 expectedArgs = !Factory_ ? 2 : (isFactory ? 0 : 1);
+ if (!Factory_) {
YQL_ENSURE(!isFactory);
}
if (expectedArgs != exprs.size()) {
- ctx.Error(Pos) << "Aggregation function " << (isFactory ? "factory " : "") << Name
+ ctx.Error(Pos_) << "Aggregation function " << (isFactory ? "factory " : "") << Name_
<< " requires exactly " << expectedArgs << " argument(s), given: " << exprs.size();
return false;
}
- if (!Factory) {
- Factory = exprs[1];
+ if (!Factory_) {
+ Factory_ = exprs[1];
}
if (!isFactory) {
- Expr = exprs.front();
- Name = src->MakeLocalName(Name);
+ Expr_ = exprs.front();
+ Name_ = src->MakeLocalName(Name_);
}
if (!Init(ctx, src)) {
@@ -52,85 +52,85 @@ protected:
}
if (!isFactory) {
- node.Add("Member", "row", Q(Name));
+ node.Add("Member", "row", Q(Name_));
}
return true;
}
TNodePtr AggregationTraitsFactory() const override {
- return Factory;
+ return Factory_;
}
TNodePtr GetApply(const TNodePtr& type) const override {
- if (!Multi) {
- return Y("Apply", Factory, (DynamicFactory ? Y("ListItemType", type) : type),
- BuildLambda(Pos, Y("row"), Y("EnsurePersistable", Expr)));
+ if (!Multi_) {
+ return Y("Apply", Factory_, (DynamicFactory_ ? Y("ListItemType", type) : type),
+ BuildLambda(Pos_, Y("row"), Y("EnsurePersistable", Expr_)));
}
return Y("MultiAggregate",
Y("ListItemType", type),
- BuildLambda(Pos, Y("row"), Y("EnsurePersistable", Expr)),
- Factory);
+ BuildLambda(Pos_, Y("row"), Y("EnsurePersistable", Expr_)),
+ Factory_);
}
bool DoInit(TContext& ctx, ISource* src) override {
- if (!Expr) {
+ if (!Expr_) {
return true;
}
ctx.PushBlockShortcuts();
- if (!Expr->Init(ctx, src)) {
+ if (!Expr_->Init(ctx, src)) {
return false;
}
- if (Expr->IsAggregated() && !Expr->IsAggregationKey() && !IsOverWindow()) {
- ctx.Error(Pos) << "Aggregation of aggregated values is forbidden for non window functions";
+ if (Expr_->IsAggregated() && !Expr_->IsAggregationKey() && !IsOverWindow()) {
+ ctx.Error(Pos_) << "Aggregation of aggregated values is forbidden for non window functions";
return false;
}
- if (AggMode == EAggregateMode::Distinct) {
- const auto column = Expr->GetColumnName();
+ if (AggMode_ == EAggregateMode::Distinct) {
+ const auto column = Expr_->GetColumnName();
if (!column) {
- ctx.Error(Expr->GetPos()) << "DISTINCT qualifier may only be used with column references";
+ ctx.Error(Expr_->GetPos()) << "DISTINCT qualifier may only be used with column references";
return false;
}
- DistinctKey = *column;
+ DistinctKey_ = *column;
YQL_ENSURE(src);
if (src->GetJoin()) {
- const auto sourcePtr = Expr->GetSourceName();
+ const auto sourcePtr = Expr_->GetSourceName();
if (!sourcePtr || !*sourcePtr) {
- if (!src->IsGroupByColumn(DistinctKey)) {
- ctx.Error(Expr->GetPos()) << ErrorDistinctWithoutCorrelation(DistinctKey);
+ if (!src->IsGroupByColumn(DistinctKey_)) {
+ ctx.Error(Expr_->GetPos()) << ErrorDistinctWithoutCorrelation(DistinctKey_);
return false;
}
} else {
- DistinctKey = DotJoin(*sourcePtr, DistinctKey);
+ DistinctKey_ = DotJoin(*sourcePtr, DistinctKey_);
}
}
- if (src->IsGroupByColumn(DistinctKey)) {
- ctx.Error(Expr->GetPos()) << ErrorDistinctByGroupKey(DistinctKey);
+ if (src->IsGroupByColumn(DistinctKey_)) {
+ ctx.Error(Expr_->GetPos()) << ErrorDistinctByGroupKey(DistinctKey_);
return false;
}
- Expr = AstNode("row");
+ Expr_ = AstNode("row");
ctx.PopBlockShortcuts();
} else {
- Expr = ctx.GroundBlockShortcutsForExpr(Expr);
+ Expr_ = ctx.GroundBlockShortcutsForExpr(Expr_);
}
- if (FakeSource) {
+ if (FakeSource_) {
ctx.PushBlockShortcuts();
- if (!Factory->Init(ctx, FakeSource.Get())) {
+ if (!Factory_->Init(ctx, FakeSource_.Get())) {
return false;
}
- Factory = ctx.GroundBlockShortcutsForExpr(Factory);
- if (AggMode == EAggregateMode::OverWindow) {
- Factory = BuildLambda(Pos, Y("type", "extractor"), Y("block", Q(Y(
- Y("let", "x", Y("Apply", Factory, "type", "extractor")),
+ Factory_ = ctx.GroundBlockShortcutsForExpr(Factory_);
+ if (AggMode_ == EAggregateMode::OverWindow) {
+ Factory_ = BuildLambda(Pos_, Y("type", "extractor"), Y("block", Q(Y(
+ Y("let", "x", Y("Apply", Factory_, "type", "extractor")),
Y("return", Y("WindowTraits",
Y("NthArg", Q("0"), "x"),
Y("NthArg", Q("1"), "x"),
Y("NthArg", Q("2"), "x"),
- BuildLambda(Pos, Y("value", "state"), Y("Void")),
+ BuildLambda(Pos_, Y("value", "state"), Y("Void")),
Y("NthArg", Q("6"), "x"),
Y("NthArg", Q("7"), "x")
))
@@ -141,11 +141,11 @@ protected:
return true;
}
- TNodePtr Factory;
- TSourcePtr FakeSource;
- TNodePtr Expr;
- bool DynamicFactory;
- bool Multi;
+ TNodePtr Factory_;
+ TSourcePtr FakeSource_;
+ TNodePtr Expr_;
+ bool DynamicFactory_;
+ bool Multi_;
};
class TAggregationFactoryImpl final : public TAggregationFactory {
@@ -156,7 +156,7 @@ public:
private:
TNodePtr DoClone() const final {
- return new TAggregationFactoryImpl(Pos, Name, Func, AggMode, Multi);
+ return new TAggregationFactoryImpl(Pos_, Name_, Func_, AggMode_, Multi_);
}
};
@@ -169,7 +169,7 @@ public:
bool InitAggr(TContext& ctx, bool isFactory, ISource* src, TAstListNode& node, const TVector<TNodePtr>& exprs) override {
Y_UNUSED(isFactory);
if (!IsOverWindow()) {
- ctx.Error(Pos) << "Expected aggregation function: " << GetName() << " only as window function. You may have forgotten OVER instruction.";
+ ctx.Error(Pos_) << "Expected aggregation function: " << GetName() << " only as window function. You may have forgotten OVER instruction.";
return false;
}
TVector<TNodePtr> exprsAuto;
@@ -182,7 +182,7 @@ public:
}
const auto& orderSpec = winSpecPtr->OrderBy;
if (!orderSpec) {
- ctx.Warning(Pos, TIssuesIds::YQL_AGGREGATE_BY_WIN_FUNC_WITHOUT_ORDER_BY) <<
+ ctx.Warning(Pos_, TIssuesIds::YQL_AGGREGATE_BY_WIN_FUNC_WITHOUT_ORDER_BY) <<
"Expected ORDER BY specification for window: '" << *winNamePtr <<
"' used in aggregation function: '" << GetName() <<
" You may have forgotten to ORDER BY in WINDOW specification or choose the wrong WINDOW.";
@@ -198,7 +198,7 @@ public:
}
private:
TNodePtr DoClone() const final {
- return new TAggregationFactoryWinAutoargImpl(Pos, Name, Func, AggMode);
+ return new TAggregationFactoryWinAutoargImpl(Pos_, Name_, Func_, AggMode_);
}
};
@@ -220,19 +220,19 @@ private:
bool InitAggr(TContext& ctx, bool isFactory, ISource* src, TAstListNode& node, const TVector<TNodePtr>& exprs) final {
ui32 adjustArgsCount = isFactory ? 0 : 2;
if (exprs.size() < adjustArgsCount || exprs.size() > 1 + adjustArgsCount) {
- ctx.Error(Pos) << "Aggregation function " << (isFactory ? "factory " : "") << Name << " requires "
+ ctx.Error(Pos_) << "Aggregation function " << (isFactory ? "factory " : "") << Name_ << " requires "
<< adjustArgsCount << " or " << (1 + adjustArgsCount) << " arguments, given: " << exprs.size();
return false;
}
if (!isFactory) {
- Payload = exprs.front();
- Key = exprs[1];
+ Payload_ = exprs.front();
+ Key_ = exprs[1];
}
- Limit = (1 + adjustArgsCount == exprs.size() ? exprs.back() : Y("Void"));
+ Limit_ = (1 + adjustArgsCount == exprs.size() ? exprs.back() : Y("Void"));
if (!isFactory) {
- Name = src->MakeLocalName(Name);
+ Name_ = src->MakeLocalName(Name_);
}
if (!Init(ctx, src)) {
@@ -240,24 +240,24 @@ private:
}
if (!isFactory) {
- node.Add("Member", "row", Q(Name));
+ node.Add("Member", "row", Q(Name_));
}
return true;
}
TNodePtr DoClone() const final {
- return new TKeyPayloadAggregationFactory(Pos, Name, Func, AggMode);
+ return new TKeyPayloadAggregationFactory(Pos_, Name_, Func_, AggMode_);
}
TNodePtr GetApply(const TNodePtr& type) const final {
- auto apply = Y("Apply", Factory, type, BuildLambda(Pos, Y("row"), Key), BuildLambda(Pos, Y("row"), Payload));
+ auto apply = Y("Apply", Factory_, type, BuildLambda(Pos_, Y("row"), Key_), BuildLambda(Pos_, Y("row"), Payload_));
AddFactoryArguments(apply);
return apply;
}
void AddFactoryArguments(TNodePtr& apply) const final {
- apply = L(apply, Limit);
+ apply = L(apply, Limit_);
}
std::vector<ui32> GetFactoryColumnIndices() const final {
@@ -265,32 +265,32 @@ private:
}
bool DoInit(TContext& ctx, ISource* src) final {
- if (!Key) {
+ if (!Key_) {
return true;
}
ctx.PushBlockShortcuts();
- if (!Key->Init(ctx, src)) {
+ if (!Key_->Init(ctx, src)) {
return false;
}
- Key = ctx.GroundBlockShortcutsForExpr(Key);
+ Key_ = ctx.GroundBlockShortcutsForExpr(Key_);
ctx.PushBlockShortcuts();
- if (!Payload->Init(ctx, src)) {
+ if (!Payload_->Init(ctx, src)) {
return false;
}
- Payload = ctx.GroundBlockShortcutsForExpr(Payload);
- if (!Limit->Init(ctx, src)) {
+ Payload_ = ctx.GroundBlockShortcutsForExpr(Payload_);
+ if (!Limit_->Init(ctx, src)) {
return false;
}
- if (Key->IsAggregated()) {
- ctx.Error(Pos) << "Aggregation of aggregated values is forbidden";
+ if (Key_->IsAggregated()) {
+ ctx.Error(Pos_) << "Aggregation of aggregated values is forbidden";
return false;
}
return true;
}
- TNodePtr Key, Payload, Limit;
+ TNodePtr Key_, Payload_, Limit_;
};
TAggregationPtr BuildKeyPayloadFactoryAggregation(TPosition pos, const TString& name, const TString& factory, EAggregateMode aggMode) {
@@ -307,16 +307,16 @@ private:
bool InitAggr(TContext& ctx, bool isFactory, ISource* src, TAstListNode& node, const TVector<TNodePtr>& exprs) final {
ui32 adjustArgsCount = isFactory ? 0 : 2;
if (exprs.size() != adjustArgsCount) {
- ctx.Error(Pos) << "Aggregation function " << (isFactory ? "factory " : "") << Name << " requires " <<
+ ctx.Error(Pos_) << "Aggregation function " << (isFactory ? "factory " : "") << Name_ << " requires " <<
adjustArgsCount << " arguments, given: " << exprs.size();
return false;
}
if (!isFactory) {
- Payload = exprs.front();
- Predicate = exprs.back();
+ Payload_ = exprs.front();
+ Predicate_ = exprs.back();
- Name = src->MakeLocalName(Name);
+ Name_ = src->MakeLocalName(Name_);
}
if (!Init(ctx, src)) {
@@ -324,18 +324,18 @@ private:
}
if (!isFactory) {
- node.Add("Member", "row", Q(Name));
+ node.Add("Member", "row", Q(Name_));
}
return true;
}
TNodePtr DoClone() const final {
- return new TPayloadPredicateAggregationFactory(Pos, Name, Func, AggMode);
+ return new TPayloadPredicateAggregationFactory(Pos_, Name_, Func_, AggMode_);
}
TNodePtr GetApply(const TNodePtr& type) const final {
- return Y("Apply", Factory, type, BuildLambda(Pos, Y("row"), Payload), BuildLambda(Pos, Y("row"), Predicate));
+ return Y("Apply", Factory_, type, BuildLambda(Pos_, Y("row"), Payload_), BuildLambda(Pos_, Y("row"), Predicate_));
}
std::vector<ui32> GetFactoryColumnIndices() const final {
@@ -343,30 +343,30 @@ private:
}
bool DoInit(TContext& ctx, ISource* src) final {
- if (!Predicate) {
+ if (!Predicate_) {
return true;
}
ctx.PushBlockShortcuts();
- if (!Predicate->Init(ctx, src)) {
+ if (!Predicate_->Init(ctx, src)) {
return false;
}
- Predicate = ctx.GroundBlockShortcutsForExpr(Predicate);
+ Predicate_ = ctx.GroundBlockShortcutsForExpr(Predicate_);
ctx.PushBlockShortcuts();
- if (!Payload->Init(ctx, src)) {
+ if (!Payload_->Init(ctx, src)) {
return false;
}
- Payload = ctx.GroundBlockShortcutsForExpr(Payload);
+ Payload_ = ctx.GroundBlockShortcutsForExpr(Payload_);
- if (Payload->IsAggregated()) {
- ctx.Error(Pos) << "Aggregation of aggregated values is forbidden";
+ if (Payload_->IsAggregated()) {
+ ctx.Error(Pos_) << "Aggregation of aggregated values is forbidden";
return false;
}
return true;
}
- TNodePtr Payload, Predicate;
+ TNodePtr Payload_, Predicate_;
};
TAggregationPtr BuildPayloadPredicateFactoryAggregation(TPosition pos, const TString& name, const TString& factory, EAggregateMode aggMode) {
@@ -383,16 +383,16 @@ private:
bool InitAggr(TContext& ctx, bool isFactory, ISource* src, TAstListNode& node, const TVector<TNodePtr>& exprs) final {
ui32 adjustArgsCount = isFactory ? 0 : 2;
if (exprs.size() != adjustArgsCount) {
- ctx.Error(Pos) << "Aggregation function " << (isFactory ? "factory " : "") << Name << " requires " <<
+ ctx.Error(Pos_) << "Aggregation function " << (isFactory ? "factory " : "") << Name_ << " requires " <<
adjustArgsCount << " arguments, given: " << exprs.size();
return false;
}
if (!isFactory) {
- One = exprs.front();
- Two = exprs.back();
+ One_ = exprs.front();
+ Two_ = exprs.back();
- Name = src->MakeLocalName(Name);
+ Name_ = src->MakeLocalName(Name_);
}
if (!Init(ctx, src)) {
@@ -400,45 +400,45 @@ private:
}
if (!isFactory) {
- node.Add("Member", "row", Q(Name));
+ node.Add("Member", "row", Q(Name_));
}
return true;
}
TNodePtr DoClone() const final {
- return new TTwoArgsAggregationFactory(Pos, Name, Func, AggMode);
+ return new TTwoArgsAggregationFactory(Pos_, Name_, Func_, AggMode_);
}
TNodePtr GetApply(const TNodePtr& type) const final {
- auto tuple = Q(Y(One, Two));
- return Y("Apply", Factory, type, BuildLambda(Pos, Y("row"), tuple));
+ auto tuple = Q(Y(One_, Two_));
+ return Y("Apply", Factory_, type, BuildLambda(Pos_, Y("row"), tuple));
}
bool DoInit(TContext& ctx, ISource* src) final {
- if (!One) {
+ if (!One_) {
return true;
}
ctx.PushBlockShortcuts();
- if (!One->Init(ctx, src)) {
+ if (!One_->Init(ctx, src)) {
return false;
}
- One = ctx.GroundBlockShortcutsForExpr(One);
+ One_ = ctx.GroundBlockShortcutsForExpr(One_);
ctx.PushBlockShortcuts();
- if (!Two->Init(ctx, src)) {
+ if (!Two_->Init(ctx, src)) {
return false;
}
- Two = ctx.GroundBlockShortcutsForExpr(Two);
+ Two_ = ctx.GroundBlockShortcutsForExpr(Two_);
- if ((One->IsAggregated() || Two->IsAggregated()) && !IsOverWindow()) {
- ctx.Error(Pos) << "Aggregation of aggregated values is forbidden";
+ if ((One_->IsAggregated() || Two_->IsAggregated()) && !IsOverWindow()) {
+ ctx.Error(Pos_) << "Aggregation of aggregated values is forbidden";
return false;
}
return true;
}
- TNodePtr One, Two;
+ TNodePtr One_, Two_;
};
TAggregationPtr BuildTwoArgsFactoryAggregation(TPosition pos, const TString& name, const TString& factory, EAggregateMode aggMode) {
@@ -449,21 +449,21 @@ class THistogramAggregationFactory final : public TAggregationFactory {
public:
THistogramAggregationFactory(TPosition pos, const TString& name, const TString& factory, EAggregateMode aggMode)
: TAggregationFactory(pos, name, factory, aggMode)
- , FakeSource(BuildFakeSource(pos))
- , Weight(Y("Double", Q("1.0")))
- , Intervals(Y("Uint32", Q("100")))
+ , FakeSource_(BuildFakeSource(pos))
+ , Weight_(Y("Double", Q("1.0")))
+ , Intervals_(Y("Uint32", Q("100")))
{}
private:
bool InitAggr(TContext& ctx, bool isFactory, ISource* src, TAstListNode& node, const TVector<TNodePtr>& exprs) final {
if (isFactory) {
if (exprs.size() > 1) {
- ctx.Error(Pos) << "Aggregation function factory " << Name << " requires 0 or 1 argument(s), given: " << exprs.size();
+ ctx.Error(Pos_) << "Aggregation function factory " << Name_ << " requires 0 or 1 argument(s), given: " << exprs.size();
return false;
}
} else {
if (exprs.empty() || exprs.size() > 3) {
- ctx.Error(Pos) << "Aggregation function " << Name << " requires one, two or three arguments, given: " << exprs.size();
+ ctx.Error(Pos_) << "Aggregation function " << Name_ << " requires one, two or three arguments, given: " << exprs.size();
return false;
}
}
@@ -474,29 +474,29 @@ private:
switch (exprs.size()) {
case 2U:
if (!integer) {
- Weight = exprs.back();
+ Weight_ = exprs.back();
}
break;
case 3U:
if (!integer) {
- ctx.Error(Pos) << "Aggregation function " << Name << " for case with 3 argument should have second interger argument";
+ ctx.Error(Pos_) << "Aggregation function " << Name_ << " for case with 3 argument should have second interger argument";
return false;
}
- Weight = exprs[1];
+ Weight_ = exprs[1];
break;
}
if (exprs.size() >= 2 && integer) {
- Intervals = Y("Cast", exprs.back(), Q("Uint32"));
+ Intervals_ = Y("Cast", exprs.back(), Q("Uint32"));
}
} else {
if (exprs.size() >= 1) {
const auto integer = exprs.back()->IsIntegerLiteral();
if (!integer) {
- ctx.Error(Pos) << "Aggregation function factory " << Name << " should have second interger argument";
+ ctx.Error(Pos_) << "Aggregation function factory " << Name_ << " should have second interger argument";
return false;
}
- Intervals = Y("Cast", exprs.back(), Q("Uint32"));
+ Intervals_ = Y("Cast", exprs.back(), Q("Uint32"));
}
}
@@ -504,17 +504,17 @@ private:
}
TNodePtr DoClone() const final {
- return new THistogramAggregationFactory(Pos, Name, Func, AggMode);
+ return new THistogramAggregationFactory(Pos_, Name_, Func_, AggMode_);
}
TNodePtr GetApply(const TNodePtr& type) const final {
- auto apply = Y("Apply", Factory, type, BuildLambda(Pos, Y("row"), Expr), BuildLambda(Pos, Y("row"), Weight));
+ auto apply = Y("Apply", Factory_, type, BuildLambda(Pos_, Y("row"), Expr_), BuildLambda(Pos_, Y("row"), Weight_));
AddFactoryArguments(apply);
return apply;
}
void AddFactoryArguments(TNodePtr& apply) const final {
- apply = L(apply, Intervals);
+ apply = L(apply, Intervals_);
}
std::vector<ui32> GetFactoryColumnIndices() const final {
@@ -523,21 +523,21 @@ private:
bool DoInit(TContext& ctx, ISource* src) final {
ctx.PushBlockShortcuts();
- if (!Weight->Init(ctx, src)) {
+ if (!Weight_->Init(ctx, src)) {
return false;
}
- Weight = ctx.GroundBlockShortcutsForExpr(Weight);
+ Weight_ = ctx.GroundBlockShortcutsForExpr(Weight_);
ctx.PushBlockShortcuts();
- if (!Intervals->Init(ctx, FakeSource.Get())) {
+ if (!Intervals_->Init(ctx, FakeSource_.Get())) {
return false;
}
- Intervals = ctx.GroundBlockShortcutsForExpr(Intervals);
+ Intervals_ = ctx.GroundBlockShortcutsForExpr(Intervals_);
return TAggregationFactory::DoInit(ctx, src);
}
- TSourcePtr FakeSource;
- TNodePtr Weight, Intervals;
+ TSourcePtr FakeSource_;
+ TNodePtr Weight_, Intervals_;
};
TAggregationPtr BuildHistogramFactoryAggregation(TPosition pos, const TString& name, const TString& factory, EAggregateMode aggMode) {
@@ -548,67 +548,67 @@ class TLinearHistogramAggregationFactory final : public TAggregationFactory {
public:
TLinearHistogramAggregationFactory(TPosition pos, const TString& name, const TString& factory, EAggregateMode aggMode)
: TAggregationFactory(pos, name, factory, aggMode)
- , FakeSource(BuildFakeSource(pos))
- , BinSize(Y("Double", Q("10.0")))
- , Minimum(Y("Double", Q(ToString(-1.0 * Max<double>()))))
- , Maximum(Y("Double", Q(ToString(Max<double>()))))
+ , FakeSource_(BuildFakeSource(pos))
+ , BinSize_(Y("Double", Q("10.0")))
+ , Minimum_(Y("Double", Q(ToString(-1.0 * Max<double>()))))
+ , Maximum_(Y("Double", Q(ToString(Max<double>()))))
{}
private:
bool InitAggr(TContext& ctx, bool isFactory, ISource* src, TAstListNode& node, const TVector<TNodePtr>& exprs) final {
Y_UNUSED(isFactory);
if (exprs.empty() || exprs.size() > 4) {
- ctx.Error(Pos) << "Aggregation function " << Name << " requires one to four arguments, given: " << exprs.size();
+ ctx.Error(Pos_) << "Aggregation function " << Name_ << " requires one to four arguments, given: " << exprs.size();
return false;
}
if (exprs.size() > 1) {
- BinSize = exprs[1];
+ BinSize_ = exprs[1];
}
if (exprs.size() > 2) {
- Minimum = exprs[2];
+ Minimum_ = exprs[2];
}
if (exprs.size() > 3) {
- Maximum = exprs[3];
+ Maximum_ = exprs[3];
}
return TAggregationFactory::InitAggr(ctx, isFactory, src, node, { exprs.front() });
}
TNodePtr DoClone() const final {
- return new TLinearHistogramAggregationFactory(Pos, Name, Func, AggMode);
+ return new TLinearHistogramAggregationFactory(Pos_, Name_, Func_, AggMode_);
}
TNodePtr GetApply(const TNodePtr& type) const final {
- return Y("Apply", Factory, type,
- BuildLambda(Pos, Y("row"), Expr),
- BinSize, Minimum, Maximum);
+ return Y("Apply", Factory_, type,
+ BuildLambda(Pos_, Y("row"), Expr_),
+ BinSize_, Minimum_, Maximum_);
}
bool DoInit(TContext& ctx, ISource* src) final {
ctx.PushBlockShortcuts();
- if (!BinSize->Init(ctx, FakeSource.Get())) {
+ if (!BinSize_->Init(ctx, FakeSource_.Get())) {
return false;
}
- BinSize = ctx.GroundBlockShortcutsForExpr(BinSize);
+ BinSize_ = ctx.GroundBlockShortcutsForExpr(BinSize_);
ctx.PushBlockShortcuts();
- if (!Minimum->Init(ctx, FakeSource.Get())) {
+ if (!Minimum_->Init(ctx, FakeSource_.Get())) {
return false;
}
- Minimum = ctx.GroundBlockShortcutsForExpr(Minimum);
+ Minimum_ = ctx.GroundBlockShortcutsForExpr(Minimum_);
ctx.PushBlockShortcuts();
- if (!Maximum->Init(ctx, FakeSource.Get())) {
+ if (!Maximum_->Init(ctx, FakeSource_.Get())) {
return false;
}
- Maximum = ctx.GroundBlockShortcutsForExpr(Maximum);
+ Maximum_ = ctx.GroundBlockShortcutsForExpr(Maximum_);
return TAggregationFactory::DoInit(ctx, src);
}
- TSourcePtr FakeSource;
- TNodePtr BinSize, Minimum, Maximum;
+ TSourcePtr FakeSource_;
+ TNodePtr BinSize_, Minimum_, Maximum_;
};
TAggregationPtr BuildLinearHistogramFactoryAggregation(TPosition pos, const TString& name, const TString& factory, EAggregateMode aggMode) {
@@ -619,35 +619,35 @@ class TPercentileFactory final : public TAggregationFactory {
public:
TPercentileFactory(TPosition pos, const TString& name, const TString& factory, EAggregateMode aggMode)
: TAggregationFactory(pos, name, factory, aggMode)
- , FakeSource(BuildFakeSource(pos))
+ , FakeSource_(BuildFakeSource(pos))
{}
private:
const TString* GetGenericKey() const final {
- return Column;
+ return Column_;
}
void Join(IAggregation* aggr) final {
const auto percentile = dynamic_cast<TPercentileFactory*>(aggr);
Y_ABORT_UNLESS(percentile);
- Y_ABORT_UNLESS(*Column == *percentile->Column);
- Y_ABORT_UNLESS(AggMode == percentile->AggMode);
- Percentiles.insert(percentile->Percentiles.cbegin(), percentile->Percentiles.cend());
- percentile->Percentiles.clear();
+ Y_ABORT_UNLESS(*Column_ == *percentile->Column_);
+ Y_ABORT_UNLESS(AggMode_ == percentile->AggMode_);
+ Percentiles_.insert(percentile->Percentiles_.cbegin(), percentile->Percentiles_.cend());
+ percentile->Percentiles_.clear();
}
bool InitAggr(TContext& ctx, bool isFactory, ISource* src, TAstListNode& node, const TVector<TNodePtr>& exprs) final {
ui32 adjustArgsCount = isFactory ? 0 : 1;
if (exprs.size() < 0 + adjustArgsCount || exprs.size() > 1 + adjustArgsCount) {
- ctx.Error(Pos) << "Aggregation function " << (isFactory ? "factory " : "") << Name << " requires "
+ ctx.Error(Pos_) << "Aggregation function " << (isFactory ? "factory " : "") << Name_ << " requires "
<< (0 + adjustArgsCount) << " or " << (1 + adjustArgsCount) << " arguments, given: " << exprs.size();
return false;
}
if (!isFactory) {
- Column = exprs.front()->GetColumnName();
- if (!Column) {
- ctx.Error(Pos) << Name << " may only be used with column reference as first argument.";
+ Column_ = exprs.front()->GetColumnName();
+ if (!Column_) {
+ ctx.Error(Pos_) << Name_ << " may only be used with column reference as first argument.";
return false;
}
}
@@ -659,7 +659,7 @@ private:
if (1 + adjustArgsCount == exprs.size()) {
x = exprs.back();
ctx.PushBlockShortcuts();
- if (!x->Init(ctx, FakeSource.Get())) {
+ if (!x->Init(ctx, FakeSource_.Get())) {
return false;
}
x = ctx.GroundBlockShortcutsForExpr(x);
@@ -668,56 +668,56 @@ private:
}
if (isFactory) {
- FactoryPercentile = x;
+ FactoryPercentile_ = x;
} else {
- Percentiles.emplace(Name, x);
+ Percentiles_.emplace(Name_, x);
}
return true;
}
TNodePtr DoClone() const final {
- return new TPercentileFactory(Pos, Name, Func, AggMode);
+ return new TPercentileFactory(Pos_, Name_, Func_, AggMode_);
}
TNodePtr GetApply(const TNodePtr& type) const final {
- TNodePtr percentiles(Percentiles.cbegin()->second);
+ TNodePtr percentiles(Percentiles_.cbegin()->second);
- if (Percentiles.size() > 1U) {
+ if (Percentiles_.size() > 1U) {
percentiles = Y();
- for (const auto& percentile : Percentiles) {
+ for (const auto& percentile : Percentiles_) {
percentiles = L(percentiles, percentile.second);
}
percentiles = Q(percentiles);
}
- return Y("Apply", Factory, type, BuildLambda(Pos, Y("row"), Expr), percentiles);
+ return Y("Apply", Factory_, type, BuildLambda(Pos_, Y("row"), Expr_), percentiles);
}
void AddFactoryArguments(TNodePtr& apply) const final {
- apply = L(apply, FactoryPercentile);
+ apply = L(apply, FactoryPercentile_);
}
TNodePtr AggregationTraits(const TNodePtr& type) const final {
- if (Percentiles.empty())
+ if (Percentiles_.empty())
return TNodePtr();
- TNodePtr names(Q(Percentiles.cbegin()->first));
+ TNodePtr names(Q(Percentiles_.cbegin()->first));
- if (Percentiles.size() > 1U) {
+ if (Percentiles_.size() > 1U) {
names = Y();
- for (const auto& percentile : Percentiles)
+ for (const auto& percentile : Percentiles_)
names = L(names, Q(percentile.first));
names = Q(names);
}
- const bool distinct = AggMode == EAggregateMode::Distinct;
- const auto listType = distinct ? Y("ListType", Y("StructMemberType", Y("ListItemType", type), BuildQuotedAtom(Pos, DistinctKey))) : type;
- return distinct ? Q(Y(names, GetApply(listType), BuildQuotedAtom(Pos, DistinctKey))) : Q(Y(names, GetApply(listType)));
+ const bool distinct = AggMode_ == EAggregateMode::Distinct;
+ const auto listType = distinct ? Y("ListType", Y("StructMemberType", Y("ListItemType", type), BuildQuotedAtom(Pos_, DistinctKey_))) : type;
+ return distinct ? Q(Y(names, GetApply(listType), BuildQuotedAtom(Pos_, DistinctKey_))) : Q(Y(names, GetApply(listType)));
}
bool DoInit(TContext& ctx, ISource* src) final {
- for (const auto& p : Percentiles) {
+ for (const auto& p : Percentiles_) {
if (!p.second->Init(ctx, src)) {
return false;
}
@@ -726,10 +726,10 @@ private:
return TAggregationFactory::DoInit(ctx, src);
}
- TSourcePtr FakeSource;
- std::multimap<TString, TNodePtr> Percentiles;
- TNodePtr FactoryPercentile;
- const TString* Column = nullptr;
+ TSourcePtr FakeSource_;
+ std::multimap<TString, TNodePtr> Percentiles_;
+ TNodePtr FactoryPercentile_;
+ const TString* Column_ = nullptr;
};
TAggregationPtr BuildPercentileFactoryAggregation(TPosition pos, const TString& name, const TString& factory, EAggregateMode aggMode) {
@@ -753,7 +753,7 @@ private:
const ui32 MinBuffer = 100;
if (exprs.size() < adjustArgsCount || exprs.size() > 2 + adjustArgsCount) {
- ctx.Error(Pos) << "Aggregation function " << (isFactory? "factory " : "") << Name <<
+ ctx.Error(Pos_) << "Aggregation function " << (isFactory? "factory " : "") << Name_ <<
" requires " << adjustArgsCount << " to " << (2 + adjustArgsCount) << " arguments, given: " << exprs.size();
return false;
}
@@ -791,57 +791,57 @@ private:
auto x = TPair{ Y("Uint32", Q(ToString(n))), Y("Uint32", Q(ToString(buffer))) };
if (isFactory) {
- TopFreqFactoryParams = x;
+ TopFreqFactoryParams_ = x;
} else {
- TopFreqs.emplace(Name, x);
+ TopFreqs_.emplace(Name_, x);
}
return true;
}
TNodePtr DoClone() const final {
- return new TTopFreqFactory(Pos, Name, Func, AggMode);
+ return new TTopFreqFactory(Pos_, Name_, Func_, AggMode_);
}
TNodePtr GetApply(const TNodePtr& type) const final {
- TPair topFreqs(TopFreqs.cbegin()->second);
+ TPair topFreqs(TopFreqs_.cbegin()->second);
- if (TopFreqs.size() > 1U) {
+ if (TopFreqs_.size() > 1U) {
topFreqs = { Y(), Y() };
- for (const auto& topFreq : TopFreqs) {
+ for (const auto& topFreq : TopFreqs_) {
topFreqs = { L(topFreqs.first, topFreq.second.first), L(topFreqs.second, topFreq.second.second) };
}
topFreqs = { Q(topFreqs.first), Q(topFreqs.second) };
}
- auto apply = Y("Apply", Factory, type, BuildLambda(Pos, Y("row"), Expr), topFreqs.first, topFreqs.second);
+ auto apply = Y("Apply", Factory_, type, BuildLambda(Pos_, Y("row"), Expr_), topFreqs.first, topFreqs.second);
return apply;
}
void AddFactoryArguments(TNodePtr& apply) const final {
- apply = L(apply, TopFreqFactoryParams.first, TopFreqFactoryParams.second);
+ apply = L(apply, TopFreqFactoryParams_.first, TopFreqFactoryParams_.second);
}
TNodePtr AggregationTraits(const TNodePtr& type) const final {
- if (TopFreqs.empty())
+ if (TopFreqs_.empty())
return TNodePtr();
- TNodePtr names(Q(TopFreqs.cbegin()->first));
+ TNodePtr names(Q(TopFreqs_.cbegin()->first));
- if (TopFreqs.size() > 1U) {
+ if (TopFreqs_.size() > 1U) {
names = Y();
- for (const auto& topFreq : TopFreqs)
+ for (const auto& topFreq : TopFreqs_)
names = L(names, Q(topFreq.first));
names = Q(names);
}
- const bool distinct = AggMode == EAggregateMode::Distinct;
- const auto listType = distinct ? Y("ListType", Y("StructMemberType", Y("ListItemType", type), BuildQuotedAtom(Pos, DistinctKey))) : type;
- return distinct ? Q(Y(names, GetApply(listType), BuildQuotedAtom(Pos, DistinctKey))) : Q(Y(names, GetApply(listType)));
+ const bool distinct = AggMode_ == EAggregateMode::Distinct;
+ const auto listType = distinct ? Y("ListType", Y("StructMemberType", Y("ListItemType", type), BuildQuotedAtom(Pos_, DistinctKey_))) : type;
+ return distinct ? Q(Y(names, GetApply(listType), BuildQuotedAtom(Pos_, DistinctKey_))) : Q(Y(names, GetApply(listType)));
}
bool DoInit(TContext& ctx, ISource* src) final {
- for (const auto& topFreq : TopFreqs) {
+ for (const auto& topFreq : TopFreqs_) {
if (!topFreq.second.first->Init(ctx, src)) {
return false;
}
@@ -854,8 +854,8 @@ private:
return TAggregationFactory::DoInit(ctx, src);
}
- std::multimap<TString, TPair> TopFreqs;
- TPair TopFreqFactoryParams;
+ std::multimap<TString, TPair> TopFreqs_;
+ TPair TopFreqFactoryParams_;
};
TAggregationPtr BuildTopFreqFactoryAggregation(TPosition pos, const TString& name, const TString& factory, EAggregateMode aggMode) {
@@ -867,29 +867,29 @@ class TTopAggregationFactory final : public TAggregationFactory {
public:
TTopAggregationFactory(TPosition pos, const TString& name, const TString& factory, EAggregateMode aggMode)
: TAggregationFactory(pos, name, factory, aggMode)
- , FakeSource(BuildFakeSource(pos))
+ , FakeSource_(BuildFakeSource(pos))
{}
private:
bool InitAggr(TContext& ctx, bool isFactory, ISource* src, TAstListNode& node, const TVector<TNodePtr>& exprs) final {
ui32 adjustArgsCount = isFactory ? 1 : (HasKey ? 3 : 2);
if (exprs.size() != adjustArgsCount) {
- ctx.Error(Pos) << "Aggregation function " << (isFactory ? "factory " : "") << Name << " requires "
+ ctx.Error(Pos_) << "Aggregation function " << (isFactory ? "factory " : "") << Name_ << " requires "
<< adjustArgsCount << " arguments, given: " << exprs.size();
return false;
}
if (!isFactory) {
- Payload = exprs[0];
+ Payload_ = exprs[0];
if (HasKey) {
- Key = exprs[1];
+ Key_ = exprs[1];
}
}
- Count = exprs.back();
+ Count_ = exprs.back();
if (!isFactory) {
- Name = src->MakeLocalName(Name);
+ Name_ = src->MakeLocalName(Name_);
}
if (!Init(ctx, src)) {
@@ -897,29 +897,29 @@ private:
}
if (!isFactory) {
- node.Add("Member", "row", Q(Name));
+ node.Add("Member", "row", Q(Name_));
}
return true;
}
TNodePtr DoClone() const final {
- return new TTopAggregationFactory(Pos, Name, Func, AggMode);
+ return new TTopAggregationFactory(Pos_, Name_, Func_, AggMode_);
}
TNodePtr GetApply(const TNodePtr& type) const final {
TNodePtr apply;
if (HasKey) {
- apply = Y("Apply", Factory, type, BuildLambda(Pos, Y("row"), Key), BuildLambda(Pos, Y("row"), Payload));
+ apply = Y("Apply", Factory_, type, BuildLambda(Pos_, Y("row"), Key_), BuildLambda(Pos_, Y("row"), Payload_));
} else {
- apply = Y("Apply", Factory, type, BuildLambda(Pos, Y("row"), Payload));
+ apply = Y("Apply", Factory_, type, BuildLambda(Pos_, Y("row"), Payload_));
}
AddFactoryArguments(apply);
return apply;
}
void AddFactoryArguments(TNodePtr& apply) const final {
- apply = L(apply, Count);
+ apply = L(apply, Count_);
}
std::vector<ui32> GetFactoryColumnIndices() const final {
@@ -932,38 +932,38 @@ private:
bool DoInit(TContext& ctx, ISource* src) final {
ctx.PushBlockShortcuts();
- if (!Count->Init(ctx, FakeSource.Get())) {
+ if (!Count_->Init(ctx, FakeSource_.Get())) {
return false;
}
- Count = ctx.GroundBlockShortcutsForExpr(Count);
+ Count_ = ctx.GroundBlockShortcutsForExpr(Count_);
- if (!Payload) {
+ if (!Payload_) {
return true;
}
if (HasKey) {
ctx.PushBlockShortcuts();
- if (!Key->Init(ctx, src)) {
+ if (!Key_->Init(ctx, src)) {
return false;
}
- Key = ctx.GroundBlockShortcutsForExpr(Key);
+ Key_ = ctx.GroundBlockShortcutsForExpr(Key_);
}
ctx.PushBlockShortcuts();
- if (!Payload->Init(ctx, src)) {
+ if (!Payload_->Init(ctx, src)) {
return false;
}
- Payload = ctx.GroundBlockShortcutsForExpr(Payload);
+ Payload_ = ctx.GroundBlockShortcutsForExpr(Payload_);
- if ((HasKey && Key->IsAggregated()) || (!HasKey && Payload->IsAggregated())) {
- ctx.Error(Pos) << "Aggregation of aggregated values is forbidden";
+ if ((HasKey && Key_->IsAggregated()) || (!HasKey && Payload_->IsAggregated())) {
+ ctx.Error(Pos_) << "Aggregation of aggregated values is forbidden";
return false;
}
return true;
}
- TSourcePtr FakeSource;
- TNodePtr Key, Payload, Count;
+ TSourcePtr FakeSource_;
+ TNodePtr Key_, Payload_, Count_;
};
template <bool HasKey>
@@ -984,27 +984,27 @@ private:
bool InitAggr(TContext& ctx, bool isFactory, ISource* src, TAstListNode& node, const TVector<TNodePtr>& exprs) final {
ui32 adjustArgsCount = isFactory ? 0 : 1;
if (exprs.size() < adjustArgsCount || exprs.size() > 1 + adjustArgsCount) {
- ctx.Error(Pos) << Name << " aggregation function " << (isFactory ? "factory " : "") << " requires " <<
+ ctx.Error(Pos_) << Name_ << " aggregation function " << (isFactory ? "factory " : "") << " requires " <<
adjustArgsCount << " or " << (1 + adjustArgsCount) << " argument(s), given: " << exprs.size();
return false;
}
- Precision = 14;
+ Precision_ = 14;
if (1 + adjustArgsCount <= exprs.size()) {
auto posSecondArg = exprs[adjustArgsCount]->GetPos();
- if (!Parseui32(exprs[adjustArgsCount], Precision)) {
- ctx.Error(posSecondArg) << Name << ": invalid argument, numeric literal is expected";
+ if (!Parseui32(exprs[adjustArgsCount], Precision_)) {
+ ctx.Error(posSecondArg) << Name_ << ": invalid argument, numeric literal is expected";
return false;
}
}
- if (Precision > 18 || Precision < 4) {
- ctx.Error(Pos) << Name << ": precision is expected to be between 4 and 18 (inclusive), got " << Precision;
+ if (Precision_ > 18 || Precision_ < 4) {
+ ctx.Error(Pos_) << Name_ << ": precision is expected to be between 4 and 18 (inclusive), got " << Precision_;
return false;
}
if (!isFactory) {
- Expr = exprs[0];
- Name = src->MakeLocalName(Name);
+ Expr_ = exprs[0];
+ Name_ = src->MakeLocalName(Name_);
}
if (!Init(ctx, src)) {
@@ -1012,28 +1012,28 @@ private:
}
if (!isFactory) {
- node.Add("Member", "row", Q(Name));
+ node.Add("Member", "row", Q(Name_));
}
return true;
}
TNodePtr DoClone() const final {
- return new TCountDistinctEstimateAggregationFactory(Pos, Name, Func, AggMode);
+ return new TCountDistinctEstimateAggregationFactory(Pos_, Name_, Func_, AggMode_);
}
TNodePtr GetApply(const TNodePtr& type) const final {
- auto apply = Y("Apply", Factory, type, BuildLambda(Pos, Y("row"), Expr));
+ auto apply = Y("Apply", Factory_, type, BuildLambda(Pos_, Y("row"), Expr_));
AddFactoryArguments(apply);
return apply;
}
void AddFactoryArguments(TNodePtr& apply) const final {
- apply = L(apply, Y("Uint32", Q(ToString(Precision))));
+ apply = L(apply, Y("Uint32", Q(ToString(Precision_))));
}
private:
- ui32 Precision = 0;
+ ui32 Precision_ = 0;
};
TAggregationPtr BuildCountDistinctEstimateFactoryAggregation(TPosition pos, const TString& name, const TString& factory, EAggregateMode aggMode) {
@@ -1052,23 +1052,23 @@ private:
ui32 minArgs = (0 + adjustArgsCount);
ui32 maxArgs = (1 + adjustArgsCount);
if (exprs.size() < minArgs || exprs.size() > maxArgs) {
- ctx.Error(Pos) << "List aggregation " << (isFactory ? "factory " : "") << "function require " << minArgs
+ ctx.Error(Pos_) << "List aggregation " << (isFactory ? "factory " : "") << "function require " << minArgs
<< " or " << maxArgs << " arguments, given: " << exprs.size();
return false;
}
- Limit = 0;
+ Limit_ = 0;
if (adjustArgsCount + 1U <= exprs.size()) {
auto posSecondArg = exprs[adjustArgsCount]->GetPos();
- if (!Parseui32(exprs[adjustArgsCount], Limit)) {
+ if (!Parseui32(exprs[adjustArgsCount], Limit_)) {
ctx.Error(posSecondArg) << "List: invalid last argument, numeric literal is expected";
return false;
}
}
if (!isFactory) {
- Expr = exprs[0];
- Name = src->MakeLocalName(Name);
+ Expr_ = exprs[0];
+ Name_ = src->MakeLocalName(Name_);
}
if (!Init(ctx, src)) {
@@ -1076,28 +1076,28 @@ private:
}
if (!isFactory) {
- node.Add("Member", "row", Q(Name));
+ node.Add("Member", "row", Q(Name_));
}
return true;
}
TNodePtr DoClone() const final {
- return new TListAggregationFactory(Pos, Name, Func, AggMode);
+ return new TListAggregationFactory(Pos_, Name_, Func_, AggMode_);
}
TNodePtr GetApply(const TNodePtr& type) const final {
- auto apply = Y("Apply", Factory, type, BuildLambda(Pos, Y("row"), Expr));
+ auto apply = Y("Apply", Factory_, type, BuildLambda(Pos_, Y("row"), Expr_));
AddFactoryArguments(apply);
return apply;
}
void AddFactoryArguments(TNodePtr& apply) const final {
- apply = L(apply, Y("Uint64", Q(ToString(Limit))));
+ apply = L(apply, Y("Uint64", Q(ToString(Limit_))));
}
private:
- ui32 Limit = 0;
+ ui32 Limit_ = 0;
};
TAggregationPtr BuildListFactoryAggregation(TPosition pos, const TString& name, const TString& factory, EAggregateMode aggMode) {
@@ -1114,54 +1114,54 @@ private:
bool InitAggr(TContext& ctx, bool isFactory, ISource* src, TAstListNode& node, const TVector<TNodePtr>& exprs) final {
ui32 adjustArgsCount = isFactory ? 0 : 1;
if (exprs.size() < (3 + adjustArgsCount) || exprs.size() > (7 + adjustArgsCount)) {
- ctx.Error(Pos) << "User defined aggregation function " << (isFactory ? "factory " : "") << " requires " <<
+ ctx.Error(Pos_) << "User defined aggregation function " << (isFactory ? "factory " : "") << " requires " <<
(3 + adjustArgsCount) << " to " << (7 + adjustArgsCount) << " arguments, given: " << exprs.size();
return false;
}
- Lambdas[0] = BuildLambda(Pos, Y("value", "parent"), Y("NamedApply", exprs[adjustArgsCount], Q(Y("value")), Y("AsStruct"), Y("DependsOn", "parent")));
- Lambdas[1] = BuildLambda(Pos, Y("value", "state", "parent"), Y("NamedApply", exprs[adjustArgsCount + 1], Q(Y("state", "value")), Y("AsStruct"), Y("DependsOn", "parent")));
- Lambdas[2] = BuildLambda(Pos, Y("one", "two"), Y("Apply", exprs[adjustArgsCount + 2], "one", "two"));
+ Lambdas_[0] = BuildLambda(Pos_, Y("value", "parent"), Y("NamedApply", exprs[adjustArgsCount], Q(Y("value")), Y("AsStruct"), Y("DependsOn", "parent")));
+ Lambdas_[1] = BuildLambda(Pos_, Y("value", "state", "parent"), Y("NamedApply", exprs[adjustArgsCount + 1], Q(Y("state", "value")), Y("AsStruct"), Y("DependsOn", "parent")));
+ Lambdas_[2] = BuildLambda(Pos_, Y("one", "two"), Y("Apply", exprs[adjustArgsCount + 2], "one", "two"));
- for (size_t i = 3U; i < Lambdas.size(); ++i) {
+ for (size_t i = 3U; i < Lambdas_.size(); ++i) {
const auto j = adjustArgsCount + i;
- Lambdas[i] = BuildLambda(Pos, Y("state"), j >= exprs.size() ? AstNode("state") : Y("Apply", exprs[j], "state"));
+ Lambdas_[i] = BuildLambda(Pos_, Y("state"), j >= exprs.size() ? AstNode("state") : Y("Apply", exprs[j], "state"));
}
- DefVal = (exprs.size() == (7 + adjustArgsCount)) ? exprs[adjustArgsCount + 6] : Y("Null");
+ DefVal_ = (exprs.size() == (7 + adjustArgsCount)) ? exprs[adjustArgsCount + 6] : Y("Null");
return TAggregationFactory::InitAggr(ctx, isFactory, src, node, isFactory ? TVector<TNodePtr>() : TVector<TNodePtr>(1, exprs.front()));
}
TNodePtr DoClone() const final {
- return new TUserDefinedAggregationFactory(Pos, Name, Func, AggMode);
+ return new TUserDefinedAggregationFactory(Pos_, Name_, Func_, AggMode_);
}
TNodePtr GetApply(const TNodePtr& type) const final {
- auto apply = Y("Apply", Factory, type, BuildLambda(Pos, Y("row"), Expr));
+ auto apply = Y("Apply", Factory_, type, BuildLambda(Pos_, Y("row"), Expr_));
AddFactoryArguments(apply);
return apply;
}
void AddFactoryArguments(TNodePtr& apply) const final {
- apply = L(apply, Lambdas[0], Lambdas[1], Lambdas[2], Lambdas[3], Lambdas[4], Lambdas[5], DefVal);
+ apply = L(apply, Lambdas_[0], Lambdas_[1], Lambdas_[2], Lambdas_[3], Lambdas_[4], Lambdas_[5], DefVal_);
}
bool DoInit(TContext& ctx, ISource* src) final {
- for (const auto& lambda : Lambdas) {
+ for (const auto& lambda : Lambdas_) {
if (!lambda->Init(ctx, src)) {
return false;
}
}
- if (!DefVal->Init(ctx, src)) {
+ if (!DefVal_->Init(ctx, src)) {
return false;
}
return TAggregationFactory::DoInit(ctx, src);
}
- std::array<TNodePtr, 6> Lambdas;
- TNodePtr DefVal;
+ std::array<TNodePtr, 6> Lambdas_;
+ TNodePtr DefVal_;
};
TAggregationPtr BuildUserDefinedFactoryAggregation(TPosition pos, const TString& name, const TString& factory, EAggregateMode aggMode) {
@@ -1176,23 +1176,23 @@ public:
private:
TNodePtr DoClone() const final {
- return new TCountAggregation(Pos, Name, Func, AggMode);
+ return new TCountAggregation(Pos_, Name_, Func_, AggMode_);
}
bool DoInit(TContext& ctx, ISource* src) final {
- if (!Expr) {
+ if (!Expr_) {
return true;
}
- if (Expr->IsAsterisk()) {
- Expr = Y("Void");
+ if (Expr_->IsAsterisk()) {
+ Expr_ = Y("Void");
}
ctx.PushBlockShortcuts();
- if (!Expr->Init(ctx, src)) {
+ if (!Expr_->Init(ctx, src)) {
return false;
}
- Expr->SetCountHint(Expr->IsConstant());
- Expr = ctx.GroundBlockShortcutsForExpr(Expr);
+ Expr_->SetCountHint(Expr_->IsConstant());
+ Expr_ = ctx.GroundBlockShortcutsForExpr(Expr_);
return TAggregationFactory::DoInit(ctx, src);
}
};
diff --git a/yql/essentials/sql/v0/builtin.cpp b/yql/essentials/sql/v0/builtin.cpp
index 4c872fba7a9..67cbd55884c 100644
--- a/yql/essentials/sql/v0/builtin.cpp
+++ b/yql/essentials/sql/v0/builtin.cpp
@@ -25,20 +25,20 @@ class TGroupingNode final: public TAstListNode {
public:
TGroupingNode(TPosition pos, const TVector<TNodePtr>& args)
: TAstListNode(pos)
- , Args(args)
+ , Args_(args)
{}
bool DoInit(TContext& ctx, ISource* src) final {
if (!src) {
- ctx.Error(Pos) << "Grouping function should have source";
+ ctx.Error(Pos_) << "Grouping function should have source";
return false;
}
TVector<TString> columns;
- columns.reserve(Args.size());
- for (const auto& node: Args) {
+ columns.reserve(Args_.size());
+ for (const auto& node: Args_) {
auto namePtr = node->GetColumnName();
if (!namePtr || !*namePtr) {
- ctx.Error(Pos) << "Grouping function should use columns as arguments";
+ ctx.Error(Pos_) << "Grouping function should use columns as arguments";
return false;
}
const auto column = *namePtr;
@@ -53,35 +53,35 @@ public:
if (!src->CalculateGroupingHint(ctx, columns, hint)) {
return false;
}
- Nodes.push_back(BuildAtom(Pos, "Uint64"));
- Nodes.push_back(BuildQuotedAtom(Pos, IntToString<10>(hint)));
+ Nodes_.push_back(BuildAtom(Pos_, "Uint64"));
+ Nodes_.push_back(BuildQuotedAtom(Pos_, IntToString<10>(hint)));
return TAstListNode::DoInit(ctx, src);
}
TNodePtr DoClone() const final {
- return new TGroupingNode(Pos, Args);
+ return new TGroupingNode(Pos_, Args_);
}
private:
- const TVector<TNodePtr> Args;
+ const TVector<TNodePtr> Args_;
};
class TBasicAggrFunc final: public TAstListNode {
public:
TBasicAggrFunc(TPosition pos, const TString& name, TAggregationPtr aggr, const TVector<TNodePtr>& args)
: TAstListNode(pos)
- , Name(name)
- , Aggr(aggr)
- , Args(args)
+ , Name_(name)
+ , Aggr_(aggr)
+ , Args_(args)
{}
TCiString GetName() const {
- return Name;
+ return Name_;
}
bool DoInit(TContext& ctx, ISource* src) final {
if (!src) {
- ctx.Error(Pos) << "Unable to use aggregation function '" << Name << "' without data source";
+ ctx.Error(Pos_) << "Unable to use aggregation function '" << Name_ << "' without data source";
return false;
}
if (!DoInitAggregation(ctx, src)) {
@@ -92,44 +92,44 @@ public:
}
TNodePtr DoClone() const final {
- TAggregationPtr aggrClone = static_cast<IAggregation*>(Aggr->Clone().Release());
- return new TBasicAggrFunc(Pos, Name, aggrClone, CloneContainer(Args));
+ TAggregationPtr aggrClone = static_cast<IAggregation*>(Aggr_->Clone().Release());
+ return new TBasicAggrFunc(Pos_, Name_, aggrClone, CloneContainer(Args_));
}
TAggregationPtr GetAggregation() const override {
- return Aggr;
+ return Aggr_;
}
private:
bool DoInitAggregation(TContext& ctx, ISource* src) {
- if (!Aggr->InitAggr(ctx, false, src, *this, Args)) {
+ if (!Aggr_->InitAggr(ctx, false, src, *this, Args_)) {
return false;
}
- return src->AddAggregation(ctx, Aggr);
+ return src->AddAggregation(ctx, Aggr_);
}
void DoUpdateState() const final {
- State.Set(ENodeState::Const, Args.front()->IsConstant());
- State.Set(ENodeState::Aggregated);
+ State_.Set(ENodeState::Const, Args_.front()->IsConstant());
+ State_.Set(ENodeState::Aggregated);
}
protected:
- const TString Name;
- TAggregationPtr Aggr;
- TVector<TNodePtr> Args;
+ const TString Name_;
+ TAggregationPtr Aggr_;
+ TVector<TNodePtr> Args_;
};
class TBasicAggrFactory final : public TAstListNode {
public:
TBasicAggrFactory(TPosition pos, const TString& name, TAggregationPtr aggr, const TVector<TNodePtr>& args)
: TAstListNode(pos)
- , Name(name)
- , Aggr(aggr)
- , Args(args)
+ , Name_(name)
+ , Aggr_(aggr)
+ , Args_(args)
{}
TCiString GetName() const {
- return Name;
+ return Name_;
}
bool DoInit(TContext& ctx, ISource* src) final {
@@ -137,48 +137,48 @@ public:
return false;
}
- auto factory = Aggr->AggregationTraitsFactory();
+ auto factory = Aggr_->AggregationTraitsFactory();
auto apply = Y("Apply", factory, Y("ListType", "type"));
- auto columnIndices = Aggr->GetFactoryColumnIndices();
+ auto columnIndices = Aggr_->GetFactoryColumnIndices();
if (columnIndices.size() == 1) {
apply = L(apply, "extractor");
} else {
// make several extractors from main that returns a tuple
for (ui32 arg = 0; arg < columnIndices.size(); ++arg) {
- auto partial = BuildLambda(Pos, Y("row"), Y("Nth", Y("Apply", "extractor", "row"), Q(ToString(columnIndices[arg]))));
+ auto partial = BuildLambda(Pos_, Y("row"), Y("Nth", Y("Apply", "extractor", "row"), Q(ToString(columnIndices[arg]))));
apply = L(apply, partial);
}
}
- Aggr->AddFactoryArguments(apply);
- Lambda = BuildLambda(Pos, Y("type", "extractor"), apply);
+ Aggr_->AddFactoryArguments(apply);
+ Lambda_ = BuildLambda(Pos_, Y("type", "extractor"), apply);
return TAstListNode::DoInit(ctx, src);
}
TAstNode* Translate(TContext& ctx) const override {
- return Lambda->Translate(ctx);
+ return Lambda_->Translate(ctx);
}
TNodePtr DoClone() const final {
- TAggregationPtr aggrClone = static_cast<IAggregation*>(Aggr->Clone().Release());
- return new TBasicAggrFactory(Pos, Name, aggrClone, CloneContainer(Args));
+ TAggregationPtr aggrClone = static_cast<IAggregation*>(Aggr_->Clone().Release());
+ return new TBasicAggrFactory(Pos_, Name_, aggrClone, CloneContainer(Args_));
}
TAggregationPtr GetAggregation() const override {
- return Aggr;
+ return Aggr_;
}
private:
bool DoInitAggregation(TContext& ctx) {
- return Aggr->InitAggr(ctx, true, nullptr, *this, Args);
+ return Aggr_->InitAggr(ctx, true, nullptr, *this, Args_);
}
protected:
- const TString Name;
- TAggregationPtr Aggr;
- TVector<TNodePtr> Args;
- TNodePtr Lambda;
+ const TString Name_;
+ TAggregationPtr Aggr_;
+ TVector<TNodePtr> Args_;
+ TNodePtr Lambda_;
};
typedef THolder<TBasicAggrFunc> TAggrFuncPtr;
@@ -187,28 +187,28 @@ class TLiteralStringAtom: public INode {
public:
TLiteralStringAtom(TPosition pos, TNodePtr node, const TString& info)
: INode(pos)
- , Node(node)
- , Info(info)
+ , Node_(node)
+ , Info_(info)
{
}
bool DoInit(TContext& ctx, ISource* src) override {
Y_UNUSED(src);
- if (!Node) {
- ctx.Error(Pos) << Info;
+ if (!Node_) {
+ ctx.Error(Pos_) << Info_;
return false;
}
- if (!Node->Init(ctx, src)) {
+ if (!Node_->Init(ctx, src)) {
return false;
}
- Atom = MakeAtomFromExpression(ctx, Node).Build();
+ Atom_ = MakeAtomFromExpression(ctx, Node_).Build();
return true;
}
TAstNode* Translate(TContext& ctx) const override {
- return Atom->Translate(ctx);
+ return Atom_->Translate(ctx);
}
TPtr DoClone() const final {
@@ -216,9 +216,9 @@ public:
}
private:
- TNodePtr Node;
- TNodePtr Atom;
- TString Info;
+ TNodePtr Node_;
+ TNodePtr Atom_;
+ TString Info_;
};
class TYqlAsAtom: public TLiteralStringAtom {
@@ -239,54 +239,54 @@ public:
bool DoInit(TContext& ctx, ISource* src) override {
auto slot = NUdf::FindDataSlot(GetOpName());
if (!slot) {
- ctx.Error(Pos) << "Unexpected type " << GetOpName();
+ ctx.Error(Pos_) << "Unexpected type " << GetOpName();
return false;
}
if (*slot == NUdf::EDataSlot::Decimal) {
- MinArgs = MaxArgs = 3;
+ MinArgs_ = MaxArgs_ = 3;
}
if (!ValidateArguments(ctx)) {
return false;
}
- auto stringNode = Args[0];
+ auto stringNode = Args_[0];
auto atom = stringNode->GetLiteral("String");
if (!atom) {
- ctx.Error(Pos) << "Expected literal string as argument in " << GetOpName() << " function";
+ ctx.Error(Pos_) << "Expected literal string as argument in " << GetOpName() << " function";
return false;
}
TString value;
if (*slot == NUdf::EDataSlot::Decimal) {
- const auto precision = Args[1]->GetLiteral("Int32");
- const auto scale = Args[2]->GetLiteral("Int32");
+ const auto precision = Args_[1]->GetLiteral("Int32");
+ const auto scale = Args_[2]->GetLiteral("Int32");
if (!NKikimr::NMiniKQL::IsValidDecimal(*atom)) {
- ctx.Error(Pos) << "Invalid value " << atom->Quote() << " for type " << GetOpName();
+ ctx.Error(Pos_) << "Invalid value " << atom->Quote() << " for type " << GetOpName();
return false;
}
ui8 stub;
if (!(precision && TryFromString<ui8>(*precision, stub))) {
- ctx.Error(Pos) << "Invalid precision " << (precision ? precision->Quote() : "") << " for type " << GetOpName();
+ ctx.Error(Pos_) << "Invalid precision " << (precision ? precision->Quote() : "") << " for type " << GetOpName();
return false;
}
if (!(scale && TryFromString<ui8>(*scale, stub))) {
- ctx.Error(Pos) << "Invalid scale " << (scale ? scale->Quote() : "") << " for type " << GetOpName();
+ ctx.Error(Pos_) << "Invalid scale " << (scale ? scale->Quote() : "") << " for type " << GetOpName();
return false;
}
- Args[0] = BuildQuotedAtom(GetPos(), *atom);
- Args[1] = BuildQuotedAtom(GetPos(), *precision);
- Args[2] = BuildQuotedAtom(GetPos(), *scale);
+ Args_[0] = BuildQuotedAtom(GetPos(), *atom);
+ Args_[1] = BuildQuotedAtom(GetPos(), *precision);
+ Args_[2] = BuildQuotedAtom(GetPos(), *scale);
return TCallNode::DoInit(ctx, src);
} else if (NUdf::GetDataTypeInfo(*slot).Features & (NUdf::DateType | NUdf::TzDateType | NUdf::TimeIntervalType)) {
const auto out = NKikimr::NMiniKQL::ValueFromString(*slot, *atom);
if (!out) {
- ctx.Error(Pos) << "Invalid value " << atom->Quote() << " for type " << GetOpName();
+ ctx.Error(Pos_) << "Invalid value " << atom->Quote() << " for type " << GetOpName();
return false;
}
@@ -306,7 +306,7 @@ public:
case NUdf::EDataSlot::Interval:
value = ToString(out.Get<i64>());
if ('T' == atom->back()) {
- ctx.Warning(Pos, TIssuesIds::YQL_DEPRECATED_INTERVAL_CONSTANT) << "Time prefix 'T' at end of interval constant";
+ ctx.Warning(Pos_, TIssuesIds::YQL_DEPRECATED_INTERVAL_CONSTANT) << "Time prefix 'T' at end of interval constant";
}
break;
default:
@@ -320,26 +320,26 @@ public:
} else if (NUdf::EDataSlot::Uuid == *slot) {
char out[0x10];
if (!NKikimr::NMiniKQL::ParseUuid(*atom, out)) {
- ctx.Error(Pos) << "Invalid value " << atom->Quote() << " for type " << GetOpName();
+ ctx.Error(Pos_) << "Invalid value " << atom->Quote() << " for type " << GetOpName();
return false;
}
value.assign(out, sizeof(out));
} else {
if (!NKikimr::NMiniKQL::IsValidStringValue(*slot, *atom)) {
- ctx.Error(Pos) << "Invalid value " << atom->Quote() << " for type " << GetOpName();
+ ctx.Error(Pos_) << "Invalid value " << atom->Quote() << " for type " << GetOpName();
return false;
}
value = *atom;
}
- Args[0] = BuildQuotedAtom(GetPos(), value);
+ Args_[0] = BuildQuotedAtom(GetPos(), value);
return TCallNode::DoInit(ctx, src);
}
TPtr DoClone() const final {
- return new TYqlData(GetPos(), OpName, CloneContainer(Args));
+ return new TYqlData(GetPos(), OpName_, CloneContainer(Args_));
}
};
@@ -347,7 +347,7 @@ class TTableName : public TCallNode {
public:
TTableName(TPosition pos, const TVector<TNodePtr>& args, const TString& cluster)
: TCallNode(pos, "TableName", 0, 2, args)
- , Cluster(cluster)
+ , Cluster_(cluster)
{
}
@@ -356,70 +356,70 @@ public:
return false;
}
- if (Args.empty()) {
- Args.push_back(Y("TablePath", Y("DependsOn", "row")));
+ if (Args_.empty()) {
+ Args_.push_back(Y("TablePath", Y("DependsOn", "row")));
}
- if (Args.size() == 2) {
- auto literal = Args[1]->GetLiteral("String");
+ if (Args_.size() == 2) {
+ auto literal = Args_[1]->GetLiteral("String");
if (!literal) {
- ctx.Error(Args[1]->GetPos()) << "Expected literal string as second argument in TableName function";
+ ctx.Error(Args_[1]->GetPos()) << "Expected literal string as second argument in TableName function";
return false;
}
- Args[1] = BuildQuotedAtom(Args[1]->GetPos(), to_lower(*literal));
+ Args_[1] = BuildQuotedAtom(Args_[1]->GetPos(), to_lower(*literal));
} else {
- if (Cluster.empty()) {
+ if (Cluster_.empty()) {
ctx.Error(GetPos()) << GetOpName() << " requires either one of \"yt\"/\"kikimr\"/\"rtmr\" as second argument or current cluster name";
return false;
}
- auto service = ctx.GetClusterProvider(Cluster);
+ auto service = ctx.GetClusterProvider(Cluster_);
if (!service) {
- ctx.Error() << "Unknown cluster name: " << Cluster;
+ ctx.Error() << "Unknown cluster name: " << Cluster_;
return false;
}
- Args.push_back(BuildQuotedAtom(GetPos(), to_lower(*service)));
+ Args_.push_back(BuildQuotedAtom(GetPos(), to_lower(*service)));
}
return TCallNode::DoInit(ctx, src);
}
TPtr DoClone() const final {
- return new TTableName(GetPos(), CloneContainer(Args), Cluster);
+ return new TTableName(GetPos(), CloneContainer(Args_), Cluster_);
}
void DoUpdateState() const override {
- State.Set(ENodeState::Const, false);
+ State_.Set(ENodeState::Const, false);
}
private:
- TString Cluster;
+ TString Cluster_;
};
class TYqlParseType final : public INode {
public:
TYqlParseType(TPosition pos, const TVector<TNodePtr>& args)
: INode(pos)
- , Args(args)
+ , Args_(args)
{}
TAstNode* Translate(TContext& ctx) const override {
- if (Args.size() != 1) {
- ctx.Error(Pos) << "Expected 1 argument in ParseType function";
+ if (Args_.size() != 1) {
+ ctx.Error(Pos_) << "Expected 1 argument in ParseType function";
return nullptr;
}
- auto literal = Args[0]->GetLiteral("String");
+ auto literal = Args_[0]->GetLiteral("String");
if (!literal) {
- ctx.Error(Args[0]->GetPos()) << "Expected literal string as argument in ParseType function";
+ ctx.Error(Args_[0]->GetPos()) << "Expected literal string as argument in ParseType function";
return nullptr;
}
- auto parsed = ParseType(*literal, *ctx.Pool, ctx.Issues, Args[0]->GetPos());
+ auto parsed = ParseType(*literal, *ctx.Pool, ctx.Issues, Args_[0]->GetPos());
if (!parsed) {
- ctx.Error(Args[0]->GetPos()) << "Failed to parse type";
+ ctx.Error(Args_[0]->GetPos()) << "Failed to parse type";
return nullptr;
}
@@ -427,11 +427,11 @@ public:
}
TNodePtr DoClone() const final {
- return new TYqlParseType(Pos, Args);
+ return new TYqlParseType(Pos_, Args_);
}
private:
- TVector<TNodePtr> Args;
+ TVector<TNodePtr> Args_;
};
class TYqlAddTimezone: public TCallNode {
@@ -446,12 +446,12 @@ public:
return false;
}
- Args[1] = Y("TimezoneId", Args[1]);
+ Args_[1] = Y("TimezoneId", Args_[1]);
return TCallNode::DoInit(ctx, src);
}
TNodePtr DoClone() const final {
- return new TYqlAddTimezone(Pos, CloneContainer(Args));
+ return new TYqlAddTimezone(Pos_, CloneContainer(Args_));
}
};
@@ -468,39 +468,39 @@ public:
return false;
}
- auto literal = Args[1]->GetLiteral("String");
+ auto literal = Args_[1]->GetLiteral("String");
INode::TPtr type;
if (literal) {
- auto parsed = ParseType(*literal, *ctx.Pool, ctx.Issues, Args[0]->GetPos());
+ auto parsed = ParseType(*literal, *ctx.Pool, ctx.Issues, Args_[0]->GetPos());
if (!parsed) {
- ctx.Error(Args[1]->GetPos()) << "Failed to parse type";
+ ctx.Error(Args_[1]->GetPos()) << "Failed to parse type";
return false;
}
type = AstNode(parsed);
} else {
- type = Args[1];
+ type = Args_[1];
}
if (!type->Init(ctx, src)) {
return false;
}
- Args[1] = type;
- if (Args.size() == 3) {
- if (!Args[2]->Init(ctx, src)) {
+ Args_[1] = type;
+ if (Args_.size() == 3) {
+ if (!Args_[2]->Init(ctx, src)) {
return false;
}
- auto message = MakeAtomFromExpression(ctx, Args[2]).Build();
- Args[2] = message;
+ auto message = MakeAtomFromExpression(ctx, Args_[2]).Build();
+ Args_[2] = message;
}
return TCallNode::DoInit(ctx, src);
}
TNodePtr DoClone() const final {
- return new TYqlTypeAssert<Strict>(Pos, Args);
+ return new TYqlTypeAssert<Strict>(Pos_, Args_);
}
};
@@ -515,16 +515,16 @@ public:
return false;
}
- if (!Args[1]->Init(ctx, src)) {
+ if (!Args_[1]->Init(ctx, src)) {
return false;
}
- Args[1] = MakeAtomFromExpression(ctx, Args[1]).Build();
+ Args_[1] = MakeAtomFromExpression(ctx, Args_[1]).Build();
return TCallNode::DoInit(ctx, src);
}
TNodePtr DoClone() const final {
- return new TFromBytes(Pos, Args);
+ return new TFromBytes(Pos_, Args_);
}
};
@@ -539,11 +539,11 @@ public:
return false;
}
- if (!Args[1]->Init(ctx, src)) {
+ if (!Args_[1]->Init(ctx, src)) {
return false;
}
- Args[1] = MakeAtomFromExpression(ctx, Args[1]).Build();
+ Args_[1] = MakeAtomFromExpression(ctx, Args_[1]).Build();
return TCallNode::DoInit(ctx, src);
}
};
@@ -555,7 +555,7 @@ public:
{}
TNodePtr DoClone() const final {
- return new TYqlAsTagged(Pos, Args);
+ return new TYqlAsTagged(Pos_, Args_);
}
};
@@ -566,7 +566,7 @@ public:
{}
TNodePtr DoClone() const final {
- return new TYqlUntag(Pos, Args);
+ return new TYqlUntag(Pos_, Args_);
}
};
@@ -581,16 +581,16 @@ public:
return false;
}
- if (!Args[1]->Init(ctx, src)) {
+ if (!Args_[1]->Init(ctx, src)) {
return false;
}
- Args[1] = MakeAtomFromExpression(ctx, Args[1]).Build();
+ Args_[1] = MakeAtomFromExpression(ctx, Args_[1]).Build();
return TCallNode::DoInit(ctx, src);
}
TNodePtr DoClone() const final {
- return new TYqlVariant(Pos, Args);
+ return new TYqlVariant(Pos_, Args_);
}
};
@@ -605,14 +605,14 @@ public:
{}
bool DoInit(TContext& ctx, ISource* src) override {
- if (!Args.empty()) {
- Args[0] = BuildFileNameArgument(ctx.Pos(), Args[0]);
+ if (!Args_.empty()) {
+ Args_[0] = BuildFileNameArgument(ctx.Pos(), Args_[0]);
}
return TCallNode::DoInit(ctx, src);
}
TNodePtr DoClone() const final {
- return new TYqlAtom(Pos, OpName, Args);
+ return new TYqlAtom(Pos_, OpName_, Args_);
}
};
@@ -623,21 +623,21 @@ public:
{}
bool DoInit(TContext& ctx, ISource* src) override {
- if (Args.size() != 3) {
- ctx.Error(Pos) << OpName << " requires exactly three arguments";
+ if (Args_.size() != 3) {
+ ctx.Error(Pos_) << OpName_ << " requires exactly three arguments";
return false;
}
- for (const auto& arg : Args) {
+ for (const auto& arg : Args_) {
if (!arg->Init(ctx, src)) {
return false;
}
}
- Args[1] = MakeAtomFromExpression(ctx, Args[1]).Build();
+ Args_[1] = MakeAtomFromExpression(ctx, Args_[1]).Build();
return TCallNode::DoInit(ctx, src);
}
TNodePtr DoClone() const final {
- return new TAddMember(Pos, OpName, Args);
+ return new TAddMember(Pos_, OpName_, Args_);
}
};
class TRemoveMember final: public TCallNode {
@@ -647,21 +647,21 @@ public:
{}
bool DoInit(TContext& ctx, ISource* src) override {
- if (Args.size() != 2) {
- ctx.Error(Pos) << OpName << " requires exactly two arguments";
+ if (Args_.size() != 2) {
+ ctx.Error(Pos_) << OpName_ << " requires exactly two arguments";
return false;
}
- for (const auto& arg : Args) {
+ for (const auto& arg : Args_) {
if (!arg->Init(ctx, src)) {
return false;
}
}
- Args[1] = MakeAtomFromExpression(ctx, Args[1]).Build();
+ Args_[1] = MakeAtomFromExpression(ctx, Args_[1]).Build();
return TCallNode::DoInit(ctx, src);
}
TNodePtr DoClone() const final {
- return new TRemoveMember(Pos, OpName, Args);
+ return new TRemoveMember(Pos_, OpName_, Args_);
}
};
@@ -672,18 +672,18 @@ public:
{}
bool DoInit(TContext& ctx, ISource* src) override {
- if (Args.empty()) {
- ctx.Error(Pos) << "CombineMembers requires at least one argument";
+ if (Args_.empty()) {
+ ctx.Error(Pos_) << "CombineMembers requires at least one argument";
return false;
}
- for (size_t i = 0; i < Args.size(); ++i) {
- Args[i] = Q(Y(Q(""), Args[i])); // flatten without prefix
+ for (size_t i = 0; i < Args_.size(); ++i) {
+ Args_[i] = Q(Y(Q(""), Args_[i])); // flatten without prefix
}
return TCallNode::DoInit(ctx, src);
}
TNodePtr DoClone() const final {
- return new TCombineMembers(Pos, OpName, Args);
+ return new TCombineMembers(Pos_, OpName_, Args_);
}
};
@@ -694,22 +694,22 @@ public:
{}
bool DoInit(TContext& ctx, ISource* src) override {
- if (Args.empty()) {
- ctx.Error(Pos) << OpName << " requires at least one argument";
+ if (Args_.empty()) {
+ ctx.Error(Pos_) << OpName_ << " requires at least one argument";
return false;
}
- for (size_t i = 0; i < Args.size(); ++i) {
- if (!Args[i]->Init(ctx, src)) {
+ for (size_t i = 0; i < Args_.size(); ++i) {
+ if (!Args_[i]->Init(ctx, src)) {
return false;
}
- if (Args[i]->GetTupleSize() == 2) {
+ if (Args_[i]->GetTupleSize() == 2) {
// flatten with prefix
- Args[i] = Q(Y(
- MakeAtomFromExpression(ctx, Args[i]->GetTupleElement(0)).Build(),
- Args[i]->GetTupleElement(1)
+ Args_[i] = Q(Y(
+ MakeAtomFromExpression(ctx, Args_[i]->GetTupleElement(0)).Build(),
+ Args_[i]->GetTupleElement(1)
));
} else {
- ctx.Error(Pos) << OpName << " requires arguments to be tuples of size 2: prefix and struct";
+ ctx.Error(Pos_) << OpName_ << " requires arguments to be tuples of size 2: prefix and struct";
return false;
}
}
@@ -717,7 +717,7 @@ public:
}
TNodePtr DoClone() const final {
- return new TFlattenMembers(Pos, OpName, Args);
+ return new TFlattenMembers(Pos_, OpName_, Args_);
}
};
@@ -775,15 +775,15 @@ public:
if (!dataTypeStringNode) {
return false;
}
- auto aliasNode = BuildFileNameArgument(Args[1]->GetPos(), Args[1]);
- OpName = "Apply";
- Args[0] = Y("Udf", Q("File.ByLines"), Y("Void"),
+ auto aliasNode = BuildFileNameArgument(Args_[1]->GetPos(), Args_[1]);
+ OpName_ = "Apply";
+ Args_[0] = Y("Udf", Q("File.ByLines"), Y("Void"),
Y("TupleType",
Y("TupleType", Y("DataType", dataTypeStringNode)),
Y("StructType"),
Y("TupleType")));
- Args[1] = Y("FilePath", aliasNode);
+ Args_[1] = Y("FilePath", aliasNode);
return TCallNode::DoInit(ctx, src);
}
@@ -792,7 +792,7 @@ public:
}
TNodePtr DoClone() const final {
- return new TYqlParseFileOp(Pos, Args);
+ return new TYqlParseFileOp(Pos_, Args_);
}
};
@@ -811,12 +811,12 @@ public:
if (!dataTypeStringNode) {
return false;
}
- Args[0] = dataTypeStringNode;
+ Args_[0] = dataTypeStringNode;
return TCallNode::DoInit(ctx, src);
}
TNodePtr DoClone() const final {
- return new TYqlDataType(Pos, Args);
+ return new TYqlDataType(Pos_, Args_);
}
};
@@ -839,16 +839,16 @@ public:
return false;
}
- if (!Args[0]->Init(ctx, src)) {
+ if (!Args_[0]->Init(ctx, src)) {
return false;
}
- Args[0] = MakeAtomFromExpression(ctx, Args[0]).Build();
+ Args_[0] = MakeAtomFromExpression(ctx, Args_[0]).Build();
return TCallNode::DoInit(ctx, src);
}
TNodePtr DoClone() const final {
- return new TYqlResourceType(Pos, Args);
+ return new TYqlResourceType(Pos_, Args_);
}
};
@@ -863,16 +863,16 @@ public:
return false;
}
- if (!Args[1]->Init(ctx, src)) {
+ if (!Args_[1]->Init(ctx, src)) {
return false;
}
- Args[1] = MakeAtomFromExpression(ctx, Args[1]).Build();
+ Args_[1] = MakeAtomFromExpression(ctx, Args_[1]).Build();
return TCallNode::DoInit(ctx, src);
}
TNodePtr DoClone() const final {
- return new TYqlTaggedType(Pos, Args);
+ return new TYqlTaggedType(Pos_, Args_);
}
};
@@ -887,23 +887,23 @@ public:
return false;
}
- if (!dynamic_cast<TTupleNode*>(Args[0].Get())) {
+ if (!dynamic_cast<TTupleNode*>(Args_[0].Get())) {
ui32 numOptArgs;
- if (!Parseui32(Args[0], numOptArgs)) {
- ctx.Error(Args[0]->GetPos()) << "Expected either tuple or number of optional arguments";
+ if (!Parseui32(Args_[0], numOptArgs)) {
+ ctx.Error(Args_[0]->GetPos()) << "Expected either tuple or number of optional arguments";
return false;
}
- Args[0] = Q(Y(BuildQuotedAtom(Args[0]->GetPos(), ToString(numOptArgs))));
+ Args_[0] = Q(Y(BuildQuotedAtom(Args_[0]->GetPos(), ToString(numOptArgs))));
}
- if (!dynamic_cast<TTupleNode*>(Args[1].Get())) {
- Args[1] = Q(Y(Args[1]));
+ if (!dynamic_cast<TTupleNode*>(Args_[1].Get())) {
+ Args_[1] = Q(Y(Args_[1]));
}
- for (ui32 index = 2; index < Args.size(); ++index) {
- if (!dynamic_cast<TTupleNode*>(Args[index].Get())) {
- Args[index] = Q(Y(Args[index]));
+ for (ui32 index = 2; index < Args_.size(); ++index) {
+ if (!dynamic_cast<TTupleNode*>(Args_[index].Get())) {
+ Args_[index] = Q(Y(Args_[index]));
}
}
@@ -911,7 +911,7 @@ public:
}
TNodePtr DoClone() const final {
- return new TYqlCallableType(Pos, Args);
+ return new TYqlCallableType(Pos_, Args_);
}
};
@@ -926,16 +926,16 @@ public:
return false;
}
- if (!Args[1]->Init(ctx, src)) {
+ if (!Args_[1]->Init(ctx, src)) {
return false;
}
- Args[1] = MakeAtomFromExpression(ctx, Args[1]).Build();
+ Args_[1] = MakeAtomFromExpression(ctx, Args_[1]).Build();
return TCallNode::DoInit(ctx, src);
}
TNodePtr DoClone() const final {
- return new TYqlTupleElementType(Pos, Args);
+ return new TYqlTupleElementType(Pos_, Args_);
}
};
@@ -950,16 +950,16 @@ public:
return false;
}
- if (!Args[1]->Init(ctx, src)) {
+ if (!Args_[1]->Init(ctx, src)) {
return false;
}
- Args[1] = MakeAtomFromExpression(ctx, Args[1]).Build();
+ Args_[1] = MakeAtomFromExpression(ctx, Args_[1]).Build();
return TCallNode::DoInit(ctx, src);
}
TNodePtr DoClone() const final {
- return new TYqlStructMemberType(Pos, Args);
+ return new TYqlStructMemberType(Pos_, Args_);
}
};
@@ -975,17 +975,17 @@ public:
}
ui32 index;
- if (!Parseui32(Args[1], index)) {
- ctx.Error(Args[1]->GetPos()) << "Expected index of the callable argument";
+ if (!Parseui32(Args_[1], index)) {
+ ctx.Error(Args_[1]->GetPos()) << "Expected index of the callable argument";
return false;
}
- Args[1] = BuildQuotedAtom(Args[1]->GetPos(), ToString(index));
+ Args_[1] = BuildQuotedAtom(Args_[1]->GetPos(), ToString(index));
return TCallNode::DoInit(ctx, src);
}
TNodePtr DoClone() const final {
- return new TYqlCallableArgumentType(Pos, Args);
+ return new TYqlCallableArgumentType(Pos_, Args_);
}
};
@@ -993,28 +993,28 @@ class TStructTypeNode : public TAstListNode {
public:
TStructTypeNode(TPosition pos, const TVector<TNodePtr>& exprs)
: TAstListNode(pos)
- , Exprs(exprs)
+ , Exprs_(exprs)
{}
bool DoInit(TContext& ctx, ISource* src) override {
- Nodes.push_back(BuildAtom(Pos, "StructType", TNodeFlags::Default));
- for (const auto& expr : Exprs) {
+ Nodes_.push_back(BuildAtom(Pos_, "StructType", TNodeFlags::Default));
+ for (const auto& expr : Exprs_) {
const auto& label = expr->GetLabel();
if (!label) {
ctx.Error(expr->GetPos()) << "Structure does not allow anonymous members";
return false;
}
- Nodes.push_back(Q(Y(Q(label), expr)));
+ Nodes_.push_back(Q(Y(Q(label), expr)));
}
return TAstListNode::DoInit(ctx, src);
}
TNodePtr DoClone() const final {
- return new TStructTypeNode(Pos, CloneContainer(Exprs));
+ return new TStructTypeNode(Pos_, CloneContainer(Exprs_));
}
private:
- const TVector<TNodePtr> Exprs;
+ const TVector<TNodePtr> Exprs_;
};
template <bool IsStrict>
@@ -1026,7 +1026,7 @@ public:
private:
TCallNode::TPtr DoClone() const override {
- return new TYqlIf(GetPos(), CloneContainer(Args));
+ return new TYqlIf(GetPos(), CloneContainer(Args_));
}
bool DoInit(TContext& ctx, ISource* src) override {
@@ -1034,9 +1034,9 @@ private:
return false;
}
- Args[0] = Y("Coalesce", Args[0], Y("Bool", Q("false")));
- if (Args.size() == 2) {
- Args.push_back(Y("Null"));
+ Args_[0] = Y("Coalesce", Args_[0], Y("Bool", Q("false")));
+ if (Args_.size() == 2) {
+ Args_.push_back(Y("Null"));
}
return TCallNode::DoInit(ctx, src);
}
@@ -1050,12 +1050,12 @@ public:
private:
TCallNode::TPtr DoClone() const override {
- return new TYqlSubstring(GetPos(), CloneContainer(Args));
+ return new TYqlSubstring(GetPos(), CloneContainer(Args_));
}
bool DoInit(TContext& ctx, ISource* src) override {
- if (Args.size() == 2) {
- Args.push_back(Y("Uint32", Q(ToString(Max<ui32>()))));
+ if (Args_.size() == 2) {
+ Args_.push_back(Y("Uint32", Q(ToString(Max<ui32>()))));
}
return TCallNode::DoInit(ctx, src);
}
@@ -1069,16 +1069,16 @@ public:
private:
TNodePtr DoClone() const final {
- return new TYqlIn(Pos, CloneContainer(Args));
+ return new TYqlIn(Pos_, CloneContainer(Args_));
}
bool DoInit(TContext& ctx, ISource* src) override {
if (!ValidateArguments(ctx)) {
return false;
}
- auto key = Args[0];
- auto inNode = Args[1];
- auto hints = Args[2];
+ auto key = Args_[0];
+ auto inNode = Args_[1];
+ auto hints = Args_[2];
if (!key->Init(ctx, src)) {
return false;
@@ -1117,9 +1117,9 @@ private:
hints = BuildTuple(pos, hintElements);
}
- OpName = "SqlIn";
- MinArgs = MaxArgs = 3;
- Args = {
+ OpName_ = "SqlIn";
+ MinArgs_ = MaxArgs_ = 3;
+ Args_ = {
inNode->GetSource() ? inNode->GetSource() : inNode,
key,
hints
@@ -1159,12 +1159,12 @@ private:
void DoUpdateState() const override {
TCallNode::DoUpdateState();
- State.Set(ENodeState::Aggregated, false/*!RunConfig || RunConfig->IsAggregated()*/);
- State.Set(ENodeState::Const, true /* FIXME: To avoid CheckAggregationLevel issue for non-const TypeOf. */);
+ State_.Set(ENodeState::Aggregated, false/*!RunConfig || RunConfig->IsAggregated()*/);
+ State_.Set(ENodeState::Const, true /* FIXME: To avoid CheckAggregationLevel issue for non-const TypeOf. */);
}
private:
- TNodePtr RunConfig;
+ TNodePtr RunConfig_;
};
class TYqlUdf final : public TYqlUdfBase {
@@ -1179,7 +1179,7 @@ public:
private:
TYqlUdf(const TYqlUdf& other)
- : TYqlUdfBase(other.GetPos(), "Udf", other.MinArgs, other.MaxArgs, CloneContainer(other.Args))
+ : TYqlUdfBase(other.GetPos(), "Udf", other.MinArgs_, other.MaxArgs_, CloneContainer(other.Args_))
{}
TNodePtr DoClone() const final {
@@ -1199,7 +1199,7 @@ public:
private:
TYqlTypeConfigUdf(const TYqlTypeConfigUdf& other)
- : TYqlUdfBase(other.GetPos(), "Udf", other.MinArgs, other.MaxArgs, CloneContainer(other.Args))
+ : TYqlUdfBase(other.GetPos(), "Udf", other.MinArgs_, other.MaxArgs_, CloneContainer(other.Args_))
{}
bool DoInit(TContext& ctx, ISource* src) override {
@@ -1207,11 +1207,11 @@ private:
return false;
}
- if (!Args[3]->Init(ctx, src)) {
+ if (!Args_[3]->Init(ctx, src)) {
return false;
}
- Args[3] = MakeAtomFromExpression(ctx, Args[3]).Build();
+ Args_[3] = MakeAtomFromExpression(ctx, Args_[3]).Build();
return TYqlUdfBase::DoInit(ctx, src);
}
@@ -1228,7 +1228,7 @@ public:
bool DoInit(TContext& ctx, ISource* src) override {
if (!src) {
- ctx.Error(Pos) << GetCallExplain() << " unable use without source";
+ ctx.Error(Pos_) << GetCallExplain() << " unable use without source";
return false;
}
@@ -1239,53 +1239,53 @@ public:
}
PrecacheState();
- const auto memberPos = Args[0]->GetPos();
+ const auto memberPos = Args_[0]->GetPos();
TVector<TNodePtr> repackArgs = {BuildAtom(memberPos, "row", NYql::TNodeFlags::Default)};
- if (auto literal = Args[1]->GetLiteral("String")) {
+ if (auto literal = Args_[1]->GetLiteral("String")) {
TString targetType;
if (!GetDataTypeStringNode(ctx, *this, 1, &targetType)) {
return false;
}
- repackArgs.push_back(Args[1]->Q(targetType));
+ repackArgs.push_back(Args_[1]->Q(targetType));
} else {
- repackArgs.push_back(Args[1]);
+ repackArgs.push_back(Args_[1]);
}
TVector<TNodePtr> column;
- auto namePtr = Args[0]->GetColumnName();
+ auto namePtr = Args_[0]->GetColumnName();
if (!namePtr || !*namePtr) {
- ctx.Error(Pos) << GetCallExplain() << " expect as first argument column name";
+ ctx.Error(Pos_) << GetCallExplain() << " expect as first argument column name";
return false;
}
auto memberName = *namePtr;
- column.push_back(Args[0]->Q(*namePtr));
+ column.push_back(Args_[0]->Q(*namePtr));
if (src->GetJoin() && !src->IsJoinKeysInitializing()) {
- const auto sourcePtr = Args[0]->GetSourceName();
+ const auto sourcePtr = Args_[0]->GetSourceName();
if (!sourcePtr || !*sourcePtr) {
- ctx.Error(Pos) << GetOpName() << " required to have correlation name in case of JOIN for column at first parameter";
+ ctx.Error(Pos_) << GetOpName() << " required to have correlation name in case of JOIN for column at first parameter";
return false;
}
- column.push_back(Args[0]->Q(*sourcePtr));
+ column.push_back(Args_[0]->Q(*sourcePtr));
memberName = DotJoin(*sourcePtr, memberName);
}
if (!GetLabel()) {
SetLabel(memberName);
}
repackArgs.push_back(BuildTuple(memberPos, column));
- if (Args.size() == 3) {
- repackArgs.push_back(Args[2]);
+ if (Args_.size() == 3) {
+ repackArgs.push_back(Args_[2]);
}
- ++MinArgs;
- ++MaxArgs;
- Args.swap(repackArgs);
+ ++MinArgs_;
+ ++MaxArgs_;
+ Args_.swap(repackArgs);
return TCallNode::DoInit(ctx, src);
}
TNodePtr DoClone() const final {
- return new TWeakFieldOp(Pos, Args);
+ return new TWeakFieldOp(Pos_, Args_);
}
};
@@ -1297,17 +1297,17 @@ public:
TTableRow(TPosition pos, ui32 argsCount)
: TAstAtomNode(pos, "row", 0)
- , ArgsCount(argsCount)
+ , ArgsCount_(argsCount)
{}
bool DoInit(TContext& ctx, ISource* src) override {
if (!src || src->IsFake()) {
- ctx.Error(Pos) << "TableRow requires FROM section";
+ ctx.Error(Pos_) << "TableRow requires FROM section";
return false;
}
- if (ArgsCount > 0) {
- ctx.Error(Pos) << "TableRow requires exactly 0 arguments";
+ if (ArgsCount_ > 0) {
+ ctx.Error(Pos_) << "TableRow requires exactly 0 arguments";
return false;
}
@@ -1316,15 +1316,15 @@ public:
}
void DoUpdateState() const final {
- State.Set(ENodeState::Const, false);
+ State_.Set(ENodeState::Const, false);
}
TNodePtr DoClone() const final {
- return MakeIntrusive<TTableRow>(Pos, ArgsCount);
+ return MakeIntrusive<TTableRow>(Pos_, ArgsCount_);
}
private:
- ui32 ArgsCount;
+ ui32 ArgsCount_;
};
TNodePtr BuildUdfUserTypeArg(TPosition pos, const TVector<TNodePtr>& args, TNodePtr customUserType) {
@@ -1379,18 +1379,18 @@ class TCallableNode final: public INode {
public:
TCallableNode(TPosition pos, const TString& module, const TString& name, const TVector<TNodePtr>& args)
: INode(pos)
- , Module(module)
- , Name(name)
- , Args(args)
+ , Module_(module)
+ , Name_(name)
+ , Args_(args)
{}
bool DoInit(TContext& ctx, ISource* src) override {
- if (Module == "yql") {
+ if (Module_ == "yql") {
ui32 flags;
TString nameParseError;
- TPosition pos = Pos;
+ TPosition pos = Pos_;
TString parsedName;
- if (!TryStringContent(Name, parsedName, flags, nameParseError, pos)) {
+ if (!TryStringContent(Name_, parsedName, flags, nameParseError, pos)) {
ctx.Error(pos) << "Failed to parse YQL: " << nameParseError;
return false;
}
@@ -1399,56 +1399,56 @@ public:
TAstParseResult ast = ParseAst(yql, ctx.Pool.get());
/// TODO: do not drop warnings
if (ast.IsOk()) {
- Node = AstNode(ast.Root->GetChild(0));
+ Node_ = AstNode(ast.Root->GetChild(0));
} else {
- ctx.Error(Pos) << "Failed to parse YQL: " << ast.Issues.ToString();
+ ctx.Error(Pos_) << "Failed to parse YQL: " << ast.Issues.ToString();
return false;
}
if (src) {
src->AllColumns();
}
- } else if (ctx.Settings.ModuleMapping.contains(Module)) {
- Node = Y("bind", Module + "_module", Q(Name));
+ } else if (ctx.Settings.ModuleMapping.contains(Module_)) {
+ Node_ = Y("bind", Module_ + "_module", Q(Name_));
if (src) {
src->AllColumns();
}
} else {
TNodePtr customUserType = nullptr;
- if (Module == "Tensorflow" && Name == "RunBatch") {
- if (Args.size() > 2) {
+ if (Module_ == "Tensorflow" && Name_ == "RunBatch") {
+ if (Args_.size() > 2) {
auto passThroughAtom = Q("PassThrough");
- auto passThroughType = Y("StructMemberType", Y("ListItemType", Y("TypeOf", Args[1])), passThroughAtom);
- customUserType = Y("AddMemberType", Args[2], passThroughAtom, passThroughType);
- Args.erase(Args.begin() + 2);
+ auto passThroughType = Y("StructMemberType", Y("ListItemType", Y("TypeOf", Args_[1])), passThroughAtom);
+ customUserType = Y("AddMemberType", Args_[2], passThroughAtom, passThroughType);
+ Args_.erase(Args_.begin() + 2);
}
}
- auto udfArgs = BuildUdfArgs(ctx, Pos, Args, nullptr, nullptr, customUserType);
- Node = BuildUdf(ctx, Pos, Module, Name, udfArgs);
+ auto udfArgs = BuildUdfArgs(ctx, Pos_, Args_, nullptr, nullptr, customUserType);
+ Node_ = BuildUdf(ctx, Pos_, Module_, Name_, udfArgs);
}
- return Node->Init(ctx, src);
+ return Node_->Init(ctx, src);
}
TAstNode* Translate(TContext& ctx) const override {
- Y_DEBUG_ABORT_UNLESS(Node);
- return Node->Translate(ctx);
+ Y_DEBUG_ABORT_UNLESS(Node_);
+ return Node_->Translate(ctx);
}
void DoUpdateState() const override {
- YQL_ENSURE(Node);
- State.Set(ENodeState::Const, Node->IsConstant());
- State.Set(ENodeState::Aggregated, Node->IsAggregated());
+ YQL_ENSURE(Node_);
+ State_.Set(ENodeState::Const, Node_->IsConstant());
+ State_.Set(ENodeState::Aggregated, Node_->IsAggregated());
}
TNodePtr DoClone() const override {
- return new TCallableNode(Pos, Module, Name, Args);
+ return new TCallableNode(Pos_, Module_, Name_, Args_);
}
private:
- TCiString Module;
- TString Name;
- TVector<TNodePtr> Args;
- TNodePtr Node;
+ TCiString Module_;
+ TString Name_;
+ TVector<TNodePtr> Args_;
+ TNodePtr Node_;
};
TNodePtr BuildCallable(TPosition pos, const TString& module, const TString& name, const TVector<TNodePtr>& args) {
@@ -1470,54 +1470,54 @@ class TScriptUdf final: public INode {
public:
TScriptUdf(TPosition pos, const TString& moduleName, const TString& funcName, const TVector<TNodePtr>& args)
: INode(pos)
- , ModuleName(moduleName)
- , FuncName(funcName)
- , Args(args)
+ , ModuleName_(moduleName)
+ , FuncName_(funcName)
+ , Args_(args)
{}
bool DoInit(TContext& ctx, ISource* src) override {
- const bool isPython = ModuleName.find(TStringBuf("Python")) != TString::npos;
+ const bool isPython = ModuleName_.find(TStringBuf("Python")) != TString::npos;
if (!isPython) {
- if (Args.size() != 2) {
- ctx.Error(Pos) << ModuleName << " script declaration requires exactly two parameters";
+ if (Args_.size() != 2) {
+ ctx.Error(Pos_) << ModuleName_ << " script declaration requires exactly two parameters";
return false;
}
} else {
- if (Args.size() < 1 || Args.size() > 2) {
- ctx.Error(Pos) << ModuleName << " script declaration requires one or two parameters";
+ if (Args_.size() < 1 || Args_.size() > 2) {
+ ctx.Error(Pos_) << ModuleName_ << " script declaration requires one or two parameters";
return false;
}
}
- auto nameAtom = BuildQuotedAtom(Pos, FuncName);
- auto scriptNode = Args.back();
+ auto nameAtom = BuildQuotedAtom(Pos_, FuncName_);
+ auto scriptNode = Args_.back();
if (!scriptNode->Init(ctx, src)) {
return false;
}
- auto scriptStrPtr = Args.back()->GetLiteral("String");
+ auto scriptStrPtr = Args_.back()->GetLiteral("String");
if (scriptStrPtr && scriptStrPtr->size() > SQL_MAX_INLINE_SCRIPT_LEN) {
scriptNode = ctx.UniversalAlias("scriptudf", std::move(scriptNode));
}
INode::TPtr type;
- if (Args.size() == 2) {
- auto literal = Args[0]->GetLiteral("String");
+ if (Args_.size() == 2) {
+ auto literal = Args_[0]->GetLiteral("String");
if (literal) {
- auto parsed = ParseType(*literal, *ctx.Pool, ctx.Issues, Args[0]->GetPos());
+ auto parsed = ParseType(*literal, *ctx.Pool, ctx.Issues, Args_[0]->GetPos());
if (!parsed) {
- ctx.Error(Args[0]->GetPos()) << "Failed to parse script signature";
+ ctx.Error(Args_[0]->GetPos()) << "Failed to parse script signature";
return false;
}
type = AstNode(parsed);
} else {
- type = Args[0];
+ type = Args_[0];
}
} else {
// Python supports getting functions signatures right from docstrings
type = Y("EvaluateType", Y("ParseTypeHandle", Y("Apply",
Y("bind", "core_module", Q("PythonFuncSignature")),
- Q(ModuleName),
+ Q(ModuleName_),
scriptNode,
Y("String", nameAtom)
)));
@@ -1527,28 +1527,28 @@ public:
return false;
}
- Node = Y("ScriptUdf", Q(ModuleName), nameAtom, type, scriptNode);
+ Node_ = Y("ScriptUdf", Q(ModuleName_), nameAtom, type, scriptNode);
return true;
}
TAstNode* Translate(TContext& ctx) const override {
Y_UNUSED(ctx);
- Y_DEBUG_ABORT_UNLESS(Node);
- return Node->Translate(ctx);
+ Y_DEBUG_ABORT_UNLESS(Node_);
+ return Node_->Translate(ctx);
}
void DoUpdateState() const override {
- State.Set(ENodeState::Const, true);
+ State_.Set(ENodeState::Const, true);
}
TNodePtr DoClone() const final {
- return new TScriptUdf(GetPos(), ModuleName, FuncName, CloneContainer(Args));
+ return new TScriptUdf(GetPos(), ModuleName_, FuncName_, CloneContainer(Args_));
}
private:
- TString ModuleName;
- TString FuncName;
- TVector<TNodePtr> Args;
- TNodePtr Node;
+ TString ModuleName_;
+ TString FuncName_;
+ TVector<TNodePtr> Args_;
+ TNodePtr Node_;
};
template <bool Sorted>
@@ -1556,26 +1556,26 @@ class TYqlToDict final: public TCallNode {
public:
TYqlToDict(TPosition pos, const TString& mode, const TVector<TNodePtr>& args)
: TCallNode(pos, "ToDict", 4, 4, args)
- , Mode(mode)
+ , Mode_(mode)
{}
private:
TCallNode::TPtr DoClone() const override {
- return new TYqlToDict<Sorted>(GetPos(), Mode, CloneContainer(Args));
+ return new TYqlToDict<Sorted>(GetPos(), Mode_, CloneContainer(Args_));
}
bool DoInit(TContext& ctx, ISource* src) override {
- if (Args.size() != 1) {
- ctx.Error(Pos) << "ToDict required exactly one argument";
+ if (Args_.size() != 1) {
+ ctx.Error(Pos_) << "ToDict required exactly one argument";
return false;
}
- Args.push_back(BuildLambda(Pos, Y("val"), Y("Nth", "val", Q("0"))));
- Args.push_back(BuildLambda(Pos, Y("val"), Y("Nth", "val", Q("1"))));
- Args.push_back(Q(Y(Q(Sorted ? "Sorted" : "Hashed"), Q(Mode))));
+ Args_.push_back(BuildLambda(Pos_, Y("val"), Y("Nth", "val", Q("0"))));
+ Args_.push_back(BuildLambda(Pos_, Y("val"), Y("Nth", "val", Q("1"))));
+ Args_.push_back(Q(Y(Q(Sorted ? "Sorted" : "Hashed"), Q(Mode_))));
return TCallNode::DoInit(ctx, src);
}
private:
- TString Mode;
+ TString Mode_;
};
template <bool IsStart>
@@ -1597,11 +1597,11 @@ private:
auto window = src->GetHoppingWindowSpec();
if (!window) {
- ctx.Error(Pos) << "No hopping window parameters in aggregation";
+ ctx.Error(Pos_) << "No hopping window parameters in aggregation";
return false;
}
- Nodes.clear();
+ Nodes_.clear();
if (!IsStart) {
Add("Member", "row", Q("_yql_time"));
@@ -1615,7 +1615,7 @@ private:
}
void DoUpdateState() const override {
- State.Set(ENodeState::Aggregated, true);
+ State_.Set(ENodeState::Aggregated, true);
}
};
@@ -1623,12 +1623,12 @@ class TInvalidBuiltin final: public INode {
public:
TInvalidBuiltin(TPosition pos, const TString& info)
: INode(pos)
- , Info(info)
+ , Info_(info)
{
}
bool DoInit(TContext& ctx, ISource*) override {
- ctx.Error(Pos) << Info;
+ ctx.Error(Pos_) << Info_;
return false;
}
@@ -1640,7 +1640,7 @@ public:
return {};
}
private:
- TString Info;
+ TString Info_;
};
enum EAggrFuncTypeCallback {
diff --git a/yql/essentials/sql/v0/context.cpp b/yql/essentials/sql/v0/context.cpp
index 01f2c1e71b3..4e9a03f387e 100644
--- a/yql/essentials/sql/v0/context.cpp
+++ b/yql/essentials/sql/v0/context.cpp
@@ -46,9 +46,9 @@ THashMap<TStringBuf, TPragmaField> CTX_PRAGMA_FIELDS = {
TContext::TContext(const NSQLTranslation::TTranslationSettings& settings,
TIssues& issues)
- : ClusterMapping(settings.ClusterMapping)
- , PathPrefix(settings.PathPrefix)
- , ClusterPathPrefixes(settings.ClusterPathPrefixes)
+ : ClusterMapping_(settings.ClusterMapping)
+ , PathPrefix_(settings.PathPrefix)
+ , ClusterPathPrefixes_(settings.ClusterPathPrefixes)
, Settings(settings)
, Pool(new TMemoryPool(4096))
, Issues(issues)
@@ -57,7 +57,7 @@ TContext::TContext(const NSQLTranslation::TTranslationSettings& settings,
, HasPendingErrors(false)
, Libraries(settings.Libraries)
{
- Position.File = settings.File;
+ Position_.File = settings.File;
for (auto& flag: settings.Flags) {
bool value = true;
@@ -78,7 +78,7 @@ TContext::~TContext()
}
const NYql::TPosition& TContext::Pos() const {
- return Position;
+ return Position_;
}
TString TContext::MakeName(const TString& name) {
@@ -141,8 +141,8 @@ IOutputStream& TContext::MakeIssue(ESeverity severity, TIssueCode code, NYql::TP
auto& curIssue = Issues.back();
curIssue.Severity = severity;
curIssue.IssueCode = code;
- IssueMsgHolder.Reset(new TStringOutput(*Issues.back().MutableMessage()));
- return *IssueMsgHolder;
+ IssueMsgHolder_.Reset(new TStringOutput(*Issues.back().MutableMessage()));
+ return *IssueMsgHolder_;
}
bool TContext::SetPathPrefix(const TString& value, TMaybe<TString> arg) {
@@ -152,7 +152,7 @@ bool TContext::SetPathPrefix(const TString& value, TMaybe<TString> arg) {
|| *arg == RtmrProviderName
)
{
- ProviderPathPrefixes[*arg] = value;
+ ProviderPathPrefixes_[*arg] = value;
return true;
}
@@ -163,27 +163,27 @@ bool TContext::SetPathPrefix(const TString& value, TMaybe<TString> arg) {
return false;
}
- ClusterPathPrefixes[normalizedClusterName] = value;
+ ClusterPathPrefixes_[normalizedClusterName] = value;
} else {
- PathPrefix = value;
+ PathPrefix_ = value;
}
return true;
}
TNodePtr TContext::GetPrefixedPath(const TString& cluster, const TDeferredAtom& path) {
- auto* clusterPrefix = ClusterPathPrefixes.FindPtr(cluster);
+ auto* clusterPrefix = ClusterPathPrefixes_.FindPtr(cluster);
if (clusterPrefix && !clusterPrefix->empty()) {
return AddTablePathPrefix(*this, *clusterPrefix, path);
} else {
auto provider = GetClusterProvider(cluster);
YQL_ENSURE(provider.Defined());
- auto* providerPrefix = ProviderPathPrefixes.FindPtr(*provider);
+ auto* providerPrefix = ProviderPathPrefixes_.FindPtr(*provider);
if (providerPrefix && !providerPrefix->empty()) {
return AddTablePathPrefix(*this, *providerPrefix, path);
- } else if (!PathPrefix.empty()) {
- return AddTablePathPrefix(*this, PathPrefix, path);
+ } else if (!PathPrefix_.empty()) {
+ return AddTablePathPrefix(*this, PathPrefix_, path);
}
return path.Build();
@@ -338,22 +338,22 @@ bool TContext::UseUnordered(const TTableRef& table) const {
}
TTranslation::TTranslation(TContext& ctx)
- : Ctx(ctx)
+ : Ctx_(ctx)
{
}
TContext& TTranslation::Context() {
- return Ctx;
+ return Ctx_;
}
IOutputStream& TTranslation::Error() {
- return Ctx.Error();
+ return Ctx_.Error();
}
TNodePtr TTranslation::GetNamedNode(const TString& name) {
- auto mapIt = Ctx.NamedNodes.find(name);
- if (mapIt == Ctx.NamedNodes.end()) {
- Ctx.Error() << "Unknown name: " << name;
+ auto mapIt = Ctx_.NamedNodes.find(name);
+ if (mapIt == Ctx_.NamedNodes.end()) {
+ Ctx_.Error() << "Unknown name: " << name;
return nullptr;
}
Y_DEBUG_ABORT_UNLESS(!mapIt->second.empty());
@@ -362,9 +362,9 @@ TNodePtr TTranslation::GetNamedNode(const TString& name) {
void TTranslation::PushNamedNode(const TString& name, TNodePtr node) {
Y_DEBUG_ABORT_UNLESS(node);
- auto mapIt = Ctx.NamedNodes.find(name);
- if (mapIt == Ctx.NamedNodes.end()) {
- auto result = Ctx.NamedNodes.insert(std::make_pair(name, TStack<TNodePtr>()));
+ auto mapIt = Ctx_.NamedNodes.find(name);
+ if (mapIt == Ctx_.NamedNodes.end()) {
+ auto result = Ctx_.NamedNodes.insert(std::make_pair(name, TStack<TNodePtr>()));
Y_DEBUG_ABORT_UNLESS(result.second);
mapIt = result.first;
}
@@ -373,12 +373,12 @@ void TTranslation::PushNamedNode(const TString& name, TNodePtr node) {
}
void TTranslation::PopNamedNode(const TString& name) {
- auto mapIt = Ctx.NamedNodes.find(name);
- Y_DEBUG_ABORT_UNLESS(mapIt != Ctx.NamedNodes.end());
+ auto mapIt = Ctx_.NamedNodes.find(name);
+ Y_DEBUG_ABORT_UNLESS(mapIt != Ctx_.NamedNodes.end());
Y_DEBUG_ABORT_UNLESS(mapIt->second.size() > 0);
mapIt->second.pop();
if (mapIt->second.empty()) {
- Ctx.NamedNodes.erase(mapIt);
+ Ctx_.NamedNodes.erase(mapIt);
}
}
diff --git a/yql/essentials/sql/v0/context.h b/yql/essentials/sql/v0/context.h
index 6e669fff5a5..4c08659ce68 100644
--- a/yql/essentials/sql/v0/context.h
+++ b/yql/essentials/sql/v0/context.h
@@ -39,14 +39,14 @@ namespace NSQLTranslationV0 {
template <typename TToken>
const TString& Token(const TToken& token) {
- Position.Row = token.GetLine();
- Position.Column = token.GetColumn() + 1;
+ Position_.Row = token.GetLine();
+ Position_.Column = token.GetColumn() + 1;
return token.GetValue();
}
template <typename TToken>
TPosition TokenPosition(const TToken& token) {
- TPosition pos = Position;
+ TPosition pos = Position_;
pos.Row = token.GetLine();
pos.Column = token.GetColumn() + 1;
return pos;
@@ -68,7 +68,7 @@ namespace NSQLTranslationV0 {
}
TMaybe<TString> GetClusterProvider(const TString& cluster, TString& normalizedClusterName) const {
- auto provider = ClusterMapping.GetClusterProvider(cluster, normalizedClusterName);
+ auto provider = ClusterMapping_.GetClusterProvider(cluster, normalizedClusterName);
if (!provider) {
if (Settings.AssumeYdbOnClusterWithSlash && cluster.StartsWith('/')) {
normalizedClusterName = cluster;
@@ -100,11 +100,11 @@ namespace NSQLTranslationV0 {
void PopBlockShortcuts();
void BodyPart() {
- IntoHeading = false;
+ IntoHeading_ = false;
}
bool IsParseHeading() const {
- return IntoHeading;
+ return IntoHeading_;
}
bool DeclareVariable(const TString& varName, const TNodePtr& typeNode);
@@ -116,13 +116,13 @@ namespace NSQLTranslationV0 {
IOutputStream& MakeIssue(NYql::ESeverity severity, NYql::TIssueCode code, NYql::TPosition pos);
private:
- NYql::TPosition Position;
- THolder<TStringOutput> IssueMsgHolder;
- NSQLTranslation::TClusterMapping ClusterMapping;
- TString PathPrefix;
- THashMap<TString, TString> ProviderPathPrefixes;
- THashMap<TString, TString> ClusterPathPrefixes;
- bool IntoHeading = true;
+ NYql::TPosition Position_;
+ THolder<TStringOutput> IssueMsgHolder_;
+ NSQLTranslation::TClusterMapping ClusterMapping_;
+ TString PathPrefix_;
+ THashMap<TString, TString> ProviderPathPrefixes_;
+ THashMap<TString, TString> ClusterPathPrefixes_;
+ bool IntoHeading_ = true;
public:
THashMap<TString, TNodePtr> Variables;
@@ -181,16 +181,16 @@ namespace NSQLTranslationV0 {
template <typename TToken>
const TString& Token(const TToken& token) {
- return Ctx.Token(token);
+ return Ctx_.Token(token);
}
template <typename TToken>
TString Identifier(const TToken& token) {
- return IdContent(Ctx, Token(token));
+ return IdContent(Ctx_, Token(token));
}
TString Identifier(const TString& str) const {
- return IdContent(Ctx, str);
+ return IdContent(Ctx_, str);
}
TNodePtr GetNamedNode(const TString& name);
@@ -212,6 +212,6 @@ namespace NSQLTranslationV0 {
TString AltDescription(const google::protobuf::Message& node, ui32 altCase, const google::protobuf::Descriptor* descr) const;
protected:
- TContext& Ctx;
+ TContext& Ctx_;
};
} // namespace NSQLTranslationV0
diff --git a/yql/essentials/sql/v0/insert.cpp b/yql/essentials/sql/v0/insert.cpp
index 9558a04f0eb..dbb5afe54b5 100644
--- a/yql/essentials/sql/v0/insert.cpp
+++ b/yql/essentials/sql/v0/insert.cpp
@@ -23,25 +23,25 @@ class TModifySourceBase: public ISource {
public:
TModifySourceBase(TPosition pos, const TVector<TString>& columnsHint)
: ISource(pos)
- , ColumnsHint(columnsHint)
+ , ColumnsHint_(columnsHint)
{
}
bool AddFilter(TContext& ctx, TNodePtr filter) override {
Y_UNUSED(filter);
- ctx.Error(Pos) << "Source does not allow filtering";
+ ctx.Error(Pos_) << "Source does not allow filtering";
return false;
}
bool AddGroupKey(TContext& ctx, const TString& column) override {
Y_UNUSED(column);
- ctx.Error(Pos) << "Source does not allow grouping";
+ ctx.Error(Pos_) << "Source does not allow grouping";
return false;
}
bool AddAggregation(TContext& ctx, TAggregationPtr aggr) override {
Y_UNUSED(aggr);
- ctx.Error(Pos) << "Source does not allow aggregation";
+ ctx.Error(Pos_) << "Source does not allow aggregation";
return false;
}
@@ -58,24 +58,24 @@ public:
}
protected:
- TVector<TString> ColumnsHint;
- TString OperationHumanName;
+ TVector<TString> ColumnsHint_;
+ TString OperationHumanName_;
};
class TUpdateByValues: public TModifySourceBase {
public:
TUpdateByValues(TPosition pos, const TString& operationHumanName, const TVector<TString>& columnsHint, const TVector<TNodePtr>& values)
: TModifySourceBase(pos, columnsHint)
- , OperationHumanName(operationHumanName)
- , Values(values)
+ , OperationHumanName_(operationHumanName)
+ , Values_(values)
{}
bool DoInit(TContext& ctx, ISource* src) override {
- if (ColumnsHint.size() != Values.size()) {
- ctx.Error(Pos) << "VALUES have " << Values.size() << " columns, " << OperationHumanName << " expects: " << ColumnsHint.size();
+ if (ColumnsHint_.size() != Values_.size()) {
+ ctx.Error(Pos_) << "VALUES have " << Values_.size() << " columns, " << OperationHumanName_ << " expects: " << ColumnsHint_.size();
return false;
}
- for (auto& value: Values) {
+ for (auto& value: Values_) {
if (!value->Init(ctx, src)) {
return false;
}
@@ -85,56 +85,56 @@ public:
TNodePtr Build(TContext& ctx) override {
Y_UNUSED(ctx);
- YQL_ENSURE(Values.size() == ColumnsHint.size());
+ YQL_ENSURE(Values_.size() == ColumnsHint_.size());
auto structObj = Y("AsStruct");
- for (size_t i = 0; i < Values.size(); ++i) {
- TString column = ColumnsHint[i];
- TNodePtr value = Values[i];
+ for (size_t i = 0; i < Values_.size(); ++i) {
+ TString column = ColumnsHint_[i];
+ TNodePtr value = Values_[i];
structObj = L(structObj, Q(Y(Q(column), value)));
}
- auto updateRow = BuildLambda(Pos, Y("row"), structObj);
+ auto updateRow = BuildLambda(Pos_, Y("row"), structObj);
return updateRow;
}
TNodePtr DoClone() const final {
- return new TUpdateByValues(Pos, OperationHumanName, ColumnsHint, CloneContainer(Values));
+ return new TUpdateByValues(Pos_, OperationHumanName_, ColumnsHint_, CloneContainer(Values_));
}
private:
- TString OperationHumanName;
+ TString OperationHumanName_;
protected:
- TVector<TNodePtr> Values;
+ TVector<TNodePtr> Values_;
};
class TModifyByValues: public TModifySourceBase {
public:
TModifyByValues(TPosition pos, const TString& operationHumanName, const TVector<TString>& columnsHint, const TVector<TVector<TNodePtr>>& values)
: TModifySourceBase(pos, columnsHint)
- , OperationHumanName(operationHumanName)
- , Values(values)
+ , OperationHumanName_(operationHumanName)
+ , Values_(values)
{
- FakeSource = BuildFakeSource(pos);
+ FakeSource_ = BuildFakeSource(pos);
}
bool DoInit(TContext& ctx, ISource* src) override {
Y_UNUSED(src);
bool hasError = false;
- for (const auto& row: Values) {
- if (ColumnsHint.empty()) {
- ctx.Error(Pos) << OperationHumanName << " ... VALUES requires specification of table columns";
+ for (const auto& row: Values_) {
+ if (ColumnsHint_.empty()) {
+ ctx.Error(Pos_) << OperationHumanName_ << " ... VALUES requires specification of table columns";
hasError = true;
continue;
}
- if (ColumnsHint.size() != row.size()) {
- ctx.Error(Pos) << "VALUES have " << row.size() << " columns, " << OperationHumanName << " expects: " << ColumnsHint.size();
+ if (ColumnsHint_.size() != row.size()) {
+ ctx.Error(Pos_) << "VALUES have " << row.size() << " columns, " << OperationHumanName_ << " expects: " << ColumnsHint_.size();
hasError = true;
continue;
}
for (auto& value: row) {
- if (!value->Init(ctx, FakeSource.Get())) {
+ if (!value->Init(ctx, FakeSource_.Get())) {
hasError = true;
continue;
}
@@ -146,11 +146,11 @@ public:
TNodePtr Build(TContext& ctx) override {
Y_UNUSED(ctx);
auto tuple = Y();
- for (const auto& row: Values) {
+ for (const auto& row: Values_) {
auto rowValues = Y("AsStruct");
- auto column = ColumnsHint.begin();
+ auto column = ColumnsHint_.begin();
for (auto value: row) {
- rowValues = L(rowValues, Q(Y(BuildQuotedAtom(Pos, *column), value)));
+ rowValues = L(rowValues, Q(Y(BuildQuotedAtom(Pos_, *column), value)));
++column;
}
tuple = L(tuple, rowValues);
@@ -160,41 +160,41 @@ public:
TNodePtr DoClone() const final {
TVector<TVector<TNodePtr>> clonedValues;
- clonedValues.reserve(Values.size());
- for (auto cur: Values) {
+ clonedValues.reserve(Values_.size());
+ for (auto cur: Values_) {
clonedValues.push_back(CloneContainer(cur));
}
- return new TModifyByValues(Pos, OperationHumanName, ColumnsHint, clonedValues);
+ return new TModifyByValues(Pos_, OperationHumanName_, ColumnsHint_, clonedValues);
}
private:
- TString OperationHumanName;
- TVector<TVector<TNodePtr>> Values;
- TSourcePtr FakeSource;
+ TString OperationHumanName_;
+ TVector<TVector<TNodePtr>> Values_;
+ TSourcePtr FakeSource_;
};
class TModifyBySource: public TModifySourceBase {
public:
TModifyBySource(TPosition pos, const TString& operationHumanName, const TVector<TString>& columnsHint, TSourcePtr source)
: TModifySourceBase(pos, columnsHint)
- , OperationHumanName(operationHumanName)
- , Source(std::move(source))
+ , OperationHumanName_(operationHumanName)
+ , Source_(std::move(source))
{}
void GetInputTables(TTableList& tableList) const override {
- if (Source) {
- return Source->GetInputTables(tableList);
+ if (Source_) {
+ return Source_->GetInputTables(tableList);
}
}
bool DoInit(TContext& ctx, ISource* src) override {
- if (!Source->Init(ctx, src)) {
+ if (!Source_->Init(ctx, src)) {
return false;
}
- const auto& sourceColumns = Source->GetColumns();
- const auto numColumns = !ColumnsHint.empty() && sourceColumns ? sourceColumns->List.size() : 0;
- if (ColumnsHint.size() != numColumns) {
- ctx.Error(Pos) << "SELECT has " << numColumns << " columns, " << OperationHumanName << " expects: " << ColumnsHint.size();
+ const auto& sourceColumns = Source_->GetColumns();
+ const auto numColumns = !ColumnsHint_.empty() && sourceColumns ? sourceColumns->List.size() : 0;
+ if (ColumnsHint_.size() != numColumns) {
+ ctx.Error(Pos_) << "SELECT has " << numColumns << " columns, " << OperationHumanName_ << " expects: " << ColumnsHint_.size();
return false;
}
if (numColumns) {
@@ -203,7 +203,7 @@ public:
for (size_t i = 0; i < numColumns; ++i) {
bool hasName = sourceColumns->NamedColumns[i];
if (hasName) {
- const auto& hintColumn = ColumnsHint[i];
+ const auto& hintColumn = ColumnsHint_[i];
const auto& sourceColumn = sourceColumns->List[i];
if (hintColumn != sourceColumn) {
if (!mismatchFound) {
@@ -215,39 +215,39 @@ public:
}
}
if (mismatchFound) {
- ctx.Warning(Pos, TIssuesIds::YQL_SOURCE_SELECT_COLUMN_MISMATCH) << str.Str();
+ ctx.Warning(Pos_, TIssuesIds::YQL_SOURCE_SELECT_COLUMN_MISMATCH) << str.Str();
}
}
return true;
}
TNodePtr Build(TContext& ctx) override {
- auto input = Source->Build(ctx);
- if (ColumnsHint.empty() || !Source->GetColumns()) {
+ auto input = Source_->Build(ctx);
+ if (ColumnsHint_.empty() || !Source_->GetColumns()) {
return input;
}
- auto srcColumn = Source->GetColumns()->List.begin();
+ auto srcColumn = Source_->GetColumns()->List.begin();
auto structObj = Y("AsStruct");
- for (auto column: ColumnsHint) {
- structObj = L(structObj, Q(Y(BuildQuotedAtom(Pos, column),
- Y("Member", "row", BuildQuotedAtom(Pos, *srcColumn))
+ for (auto column: ColumnsHint_) {
+ structObj = L(structObj, Q(Y(BuildQuotedAtom(Pos_, column),
+ Y("Member", "row", BuildQuotedAtom(Pos_, *srcColumn))
)));
++srcColumn;
}
- return Y("OrderedMap", input, BuildLambda(Pos, Y("row"), structObj));
+ return Y("OrderedMap", input, BuildLambda(Pos_, Y("row"), structObj));
}
TNodePtr DoClone() const final {
- return new TModifyBySource(Pos, OperationHumanName, ColumnsHint, Source->CloneSource());
+ return new TModifyBySource(Pos_, OperationHumanName_, ColumnsHint_, Source_->CloneSource());
}
bool IsOrdered() const final {
- return Source->IsOrdered();
+ return Source_->IsOrdered();
}
private:
- TString OperationHumanName;
- TSourcePtr Source;
+ TString OperationHumanName_;
+ TSourcePtr Source_;
};
TSourcePtr BuildWriteValues(TPosition pos, const TString& operationHumanName, const TVector<TString>& columnsHint, const TVector<TVector<TNodePtr>>& values) {
@@ -270,83 +270,83 @@ class TWriteColumnsNode: public TAstListNode {
public:
TWriteColumnsNode(TPosition pos, const TTableRef& table, EWriteColumnMode mode, TSourcePtr values = nullptr, TNodePtr options = nullptr)
: TAstListNode(pos)
- , Table(table)
- , Mode(mode)
- , Values(std::move(values))
- , Options(std::move(options))
+ , Table_(table)
+ , Mode_(mode)
+ , Values_(std::move(values))
+ , Options_(std::move(options))
{
- FakeSource = BuildFakeSource(pos);
+ FakeSource_ = BuildFakeSource(pos);
}
void ResetSource(TSourcePtr source) {
- TableSource = std::move(source);
+ TableSource_ = std::move(source);
}
void ResetUpdate(TSourcePtr update) {
- Update = std::move(update);
+ Update_ = std::move(update);
}
bool DoInit(TContext& ctx, ISource* src) override {
- if (!Table.Check(ctx)) {
+ if (!Table_.Check(ctx)) {
return false;
}
TTableList tableList;
TNodePtr values;
auto options = Y();
- if (Options) {
- if (!Options->Init(ctx, src)) {
+ if (Options_) {
+ if (!Options_->Init(ctx, src)) {
return false;
}
- options = L(Options);
+ options = L(Options_);
}
ISource* underlyingSrc = src;
- if (TableSource) {
+ if (TableSource_) {
ctx.PushBlockShortcuts();
- if (!TableSource->Init(ctx, src) || !TableSource->InitFilters(ctx)) {
+ if (!TableSource_->Init(ctx, src) || !TableSource_->InitFilters(ctx)) {
return false;
}
- options = L(options, Q(Y(Q("filter"), TableSource->BuildFilterLambda(ctx.GroundBlockShortcuts(Pos)))));
+ options = L(options, Q(Y(Q("filter"), TableSource_->BuildFilterLambda(ctx.GroundBlockShortcuts(Pos_)))));
}
bool unordered = false;
ctx.PushBlockShortcuts();
- if (Values) {
- if (!Values->Init(ctx, TableSource.Get())) {
+ if (Values_) {
+ if (!Values_->Init(ctx, TableSource_.Get())) {
return false;
}
- Values->GetInputTables(tableList);
- underlyingSrc = Values.Get();
- values = Values->Build(ctx);
+ Values_->GetInputTables(tableList);
+ underlyingSrc = Values_.Get();
+ values = Values_->Build(ctx);
if (!values) {
return false;
}
- unordered = !Values->IsOrdered();
+ unordered = !Values_->IsOrdered();
}
- TNodePtr node(BuildInputTables(Pos, tableList, false));
+ TNodePtr node(BuildInputTables(Pos_, tableList, false));
if (!node->Init(ctx, underlyingSrc)) {
return false;
}
- if (Update) {
- if (!Update->Init(ctx, TableSource.Get()) || !Update->InitFilters(ctx)) {
+ if (Update_) {
+ if (!Update_->Init(ctx, TableSource_.Get()) || !Update_->InitFilters(ctx)) {
return false;
}
- options = L(options, Q(Y(Q("update"), Update->Build(ctx))));
+ options = L(options, Q(Y(Q("update"), Update_->Build(ctx))));
}
- auto write = BuildWriteTable(Pos, "values", Table, Mode, std::move(options));
- if (!write->Init(ctx, FakeSource.Get())) {
+ auto write = BuildWriteTable(Pos_, "values", Table_, Mode_, std::move(options));
+ if (!write->Init(ctx, FakeSource_.Get())) {
return false;
}
- node = ctx.GroundBlockShortcuts(Pos, node);
+ node = ctx.GroundBlockShortcuts(Pos_, node);
if (values) {
node = L(node, Y("let", "values", values));
- if (unordered && ctx.UseUnordered(Table)) {
+ if (unordered && ctx.UseUnordered(Table_)) {
node = L(node, Y("let", "values", Y("Unordered", "values")));
}
} else {
@@ -364,13 +364,13 @@ public:
}
protected:
- TTableRef Table;
- TSourcePtr TableSource;
- EWriteColumnMode Mode;
- TSourcePtr Values;
- TSourcePtr Update;
- TSourcePtr FakeSource;
- TNodePtr Options;
+ TTableRef Table_;
+ TSourcePtr TableSource_;
+ EWriteColumnMode Mode_;
+ TSourcePtr Values_;
+ TSourcePtr Update_;
+ TSourcePtr FakeSource_;
+ TNodePtr Options_;
};
EWriteColumnMode ToWriteColumnsMode(ESQLWriteColumnMode sqlWriteColumnMode) {
@@ -401,7 +401,7 @@ class TEraseColumnsNode: public TAstListNode {
public:
TEraseColumnsNode(TPosition pos, const TVector<TString>& columns)
: TAstListNode(pos)
- , Columns(columns)
+ , Columns_(columns)
{
}
@@ -410,7 +410,7 @@ public:
Y_UNUSED(src);
TNodePtr columnList = Y();
- for (const auto& column: Columns) {
+ for (const auto& column: Columns_) {
columnList->Add(Q(column));
}
@@ -424,7 +424,7 @@ public:
}
private:
- TVector<TString> Columns;
+ TVector<TString> Columns_;
};
diff --git a/yql/essentials/sql/v0/join.cpp b/yql/essentials/sql/v0/join.cpp
index 7a63e796599..7303322f124 100644
--- a/yql/essentials/sql/v0/join.cpp
+++ b/yql/essentials/sql/v0/join.cpp
@@ -46,7 +46,7 @@ class TJoinBase: public IJoin {
public:
TJoinBase(TPosition pos, TVector<TSourcePtr>&& sources)
: IJoin(pos)
- , Sources(std::move(sources))
+ , Sources_(std::move(sources))
{
}
@@ -56,7 +56,7 @@ public:
return true;
}
if (const auto sourceName = *column.GetSourceName()) {
- for (auto& source: Sources) {
+ for (auto& source: Sources_) {
if (sourceName == source->GetLabel()) {
srcByName = source.Get();
break;
@@ -79,7 +79,7 @@ public:
if (srcByName) {
srcByName->AllColumns();
} else {
- for (auto& source: Sources) {
+ for (auto& source: Sources_) {
source->AllColumns();
}
}
@@ -91,7 +91,7 @@ public:
if (!srcByName->AddColumn(ctx, column)) {
return {};
}
- if (!KeysInitializing && !column.IsAsterisk()) {
+ if (!KeysInitializing_ && !column.IsAsterisk()) {
column.SetUseSource();
}
return true;
@@ -100,7 +100,7 @@ public:
TIntrusivePtr<TColumnNode> tryColumn = static_cast<TColumnNode*>(column.Clone().Get());
tryColumn->SetAsNotReliable();
TString lastAcceptedColumnSource;
- for (auto& source: Sources) {
+ for (auto& source: Sources_) {
if (source->AddColumn(ctx, *tryColumn)) {
++acceptedColumns;
lastAcceptedColumnSource = source->GetLabel();
@@ -110,7 +110,7 @@ public:
TStringBuilder sb;
const auto& fullColumnName = FullColumnName(column);
sb << "Column " << fullColumnName << " is not fit to any source";
- for (auto& source: Sources) {
+ for (auto& source: Sources_) {
if (const auto mistype = source->FindColumnMistype(fullColumnName)) {
sb << ". Did you mean " << mistype.GetRef() << "?";
break;
@@ -126,30 +126,30 @@ public:
}
const TColumns* GetColumns() const override {
- YQL_ENSURE(IsColumnDone, "Unable to GetColumns while it's not finished");
- return &JoinedColumns;
+ YQL_ENSURE(IsColumnDone_, "Unable to GetColumns while it's not finished");
+ return &JoinedColumns_;
}
void GetInputTables(TTableList& tableList) const override {
- for (auto& src: Sources) {
+ for (auto& src: Sources_) {
src->GetInputTables(tableList);
}
ISource::GetInputTables(tableList);
}
TNodePtr BuildJoinKeys(TContext& ctx, const TVector<TDeferredAtom>& names) override {
- const size_t n = JoinOps.size();
- TString what(Sources[n]->GetLabel());
+ const size_t n = JoinOps_.size();
+ TString what(Sources_[n]->GetLabel());
static const TSet<TString> noRightSourceJoinOps = {"LeftOnly", "LeftSemi"};
- for (size_t nn = n; nn > 0 && noRightSourceJoinOps.contains(JoinOps[nn-1]); --nn) {
- what = Sources[nn-1]->GetLabel();
+ for (size_t nn = n; nn > 0 && noRightSourceJoinOps.contains(JoinOps_[nn-1]); --nn) {
+ what = Sources_[nn-1]->GetLabel();
}
- const TString with(Sources[n + 1]->GetLabel());
+ const TString with(Sources_[n + 1]->GetLabel());
for (auto index = n; index <= n + 1; ++index) {
- const auto& label = Sources[index]->GetLabel();
+ const auto& label = Sources_[index]->GetLabel();
if (label.Contains('.')) {
- ctx.Error(Sources[index]->GetPos()) << "Invalid label: " << label << ", unable to use name with dot symbol, you should use AS <simple alias name>";
+ ctx.Error(Sources_[index]->GetPos()) << "Invalid label: " << label << ", unable to use name with dot symbol, you should use AS <simple alias name>";
return nullptr;
}
}
@@ -164,8 +164,8 @@ public:
TPosition pos(ctx.Pos());
TNodePtr expr;
for (auto& name: names) {
- auto lhs = BuildColumn(Pos, name, what);
- auto rhs = BuildColumn(Pos, name, with);
+ auto lhs = BuildColumn(Pos_, name, what);
+ auto rhs = BuildColumn(Pos_, name, with);
if (!lhs || !rhs) {
return nullptr;
}
@@ -176,7 +176,7 @@ public:
expr = eq;
}
}
- if (expr && Sources.size() > 2) {
+ if (expr && Sources_.size() > 2) {
ctx.Warning(ctx.Pos(), TIssuesIds::YQL_MULTIWAY_JOIN_WITH_USING) << "Multi-way JOINs should be connected with ON clause instead of USING clause";
}
return expr;
@@ -185,8 +185,8 @@ public:
bool DoInit(TContext& ctx, ISource* src) override;
void SetupJoin(const TString& opName, TNodePtr expr) override {
- JoinOps.push_back(opName);
- JoinExprs.push_back(expr);
+ JoinOps_.push_back(opName);
+ JoinExprs_.push_back(expr);
}
protected:
@@ -197,7 +197,7 @@ protected:
}
bool InitKeysOrFilters(TContext& ctx, ui32 joinIdx, TNodePtr expr) {
- const TString joinOp(JoinOps[joinIdx]);
+ const TString joinOp(JoinOps_[joinIdx]);
const TCallNode* op = nullptr;
if (expr) {
const TString opName(expr->GetOpName());
@@ -213,12 +213,12 @@ protected:
ui32 idx = 0;
THashMap<TString, ui32> sources;
- for (auto& source: Sources) {
+ for (auto& source: Sources_) {
sources.insert({ source->GetLabel(), idx });
++idx;
}
- if (sources.size() != Sources.size()) {
- ctx.Error(expr ? expr->GetPos() : Pos) << "JOIN: all correlation names must be different";
+ if (sources.size() != Sources_.size()) {
+ ctx.Error(expr ? expr->GetPos() : Pos_) << "JOIN: all correlation names must be different";
return false;
}
@@ -292,7 +292,7 @@ protected:
}
if (joinedSources.size() == 1) {
- ctx.Error(expr ? expr->GetPos() : Pos) << "JOIN: different correlation names are required for joined tables";
+ ctx.Error(expr ? expr->GetPos() : Pos_) << "JOIN: different correlation names are required for joined tables";
return false;
}
@@ -307,7 +307,7 @@ protected:
}
}
- KeysInitializing = true;
+ KeysInitializing_ = true;
if (op) {
ctx.PushBlockShortcuts();
for (auto& arg : op->GetArgs()) {
@@ -315,56 +315,56 @@ protected:
return false;
}
}
- KeysGround = ctx.GroundBlockShortcuts(GetPos(), KeysGround);
+ KeysGround_ = ctx.GroundBlockShortcuts(GetPos(), KeysGround_);
Y_DEBUG_ABORT_UNLESS(leftSource);
if (sameColumnNamePtr) {
- SameKeyMap[*sameColumnNamePtr].insert(*leftSource);
- SameKeyMap[*sameColumnNamePtr].insert(*rightSource);
+ SameKeyMap_[*sameColumnNamePtr].insert(*leftSource);
+ SameKeyMap_[*sameColumnNamePtr].insert(*rightSource);
}
}
- if (joinIdx == JoinDescrs.size()) {
- JoinDescrs.push_back(TJoinDescr(joinOp));
+ if (joinIdx == JoinDescrs_.size()) {
+ JoinDescrs_.push_back(TJoinDescr(joinOp));
}
- JoinDescrs.back().Keys.push_back({ { leftSourceIdx, op ? op->GetArgs()[leftArg] : nullptr},
+ JoinDescrs_.back().Keys.push_back({ { leftSourceIdx, op ? op->GetArgs()[leftArg] : nullptr},
{ rightSourceIdx, op ? op->GetArgs()[rightArg] : nullptr } });
- KeysInitializing = false;
+ KeysInitializing_ = false;
return true;
}
bool IsJoinKeysInitializing() const override {
- return KeysInitializing;
+ return KeysInitializing_;
}
protected:
- TVector<TString> JoinOps;
- TVector<TNodePtr> JoinExprs;
- TVector<TJoinDescr> JoinDescrs;
- TNodePtr KeysGround;
- THashMap<TString, THashSet<TString>> SameKeyMap;
- TVector<TSourcePtr> Sources;
- TColumns JoinedColumns;
- bool KeysInitializing = false;
- bool IsColumnDone = false;
+ TVector<TString> JoinOps_;
+ TVector<TNodePtr> JoinExprs_;
+ TVector<TJoinDescr> JoinDescrs_;
+ TNodePtr KeysGround_;
+ THashMap<TString, THashSet<TString>> SameKeyMap_;
+ TVector<TSourcePtr> Sources_;
+ TColumns JoinedColumns_;
+ bool KeysInitializing_ = false;
+ bool IsColumnDone_ = false;
void FinishColumns() override {
- if (IsColumnDone) {
+ if (IsColumnDone_) {
return;
}
- YQL_ENSURE(JoinOps.size()+1 == Sources.size());
+ YQL_ENSURE(JoinOps_.size()+1 == Sources_.size());
bool excludeNextSource = false;
- decltype(JoinOps)::const_iterator opIter = JoinOps.begin();
- for (auto& src: Sources) {
+ decltype(JoinOps_)::const_iterator opIter = JoinOps_.begin();
+ for (auto& src: Sources_) {
if (excludeNextSource) {
excludeNextSource = false;
- if (opIter != JoinOps.end()) {
+ if (opIter != JoinOps_.end()) {
++opIter;
}
continue;
}
- if (opIter != JoinOps.end()) {
+ if (opIter != JoinOps_.end()) {
auto joinOper = *opIter;
++opIter;
if (joinOper == "LeftSemi" || joinOper == "LeftOnly") {
@@ -381,31 +381,31 @@ protected:
TColumns upColumns;
upColumns.Merge(*columnsPtr);
upColumns.SetPrefix(src->GetLabel());
- JoinedColumns.Merge(upColumns);
+ JoinedColumns_.Merge(upColumns);
}
- IsColumnDone = true;
+ IsColumnDone_ = true;
}
};
bool TJoinBase::DoInit(TContext& ctx, ISource* src) {
- for (auto& source: Sources) {
+ for (auto& source: Sources_) {
if (!source->Init(ctx, src)) {
return false;
}
}
- YQL_ENSURE(JoinOps.size() == JoinExprs.size(), "Invalid join exprs number");
+ YQL_ENSURE(JoinOps_.size() == JoinExprs_.size(), "Invalid join exprs number");
const TSet<TString> allowedJoinOps = {"Inner", "Left", "Right", "Full", "LeftOnly", "RightOnly", "Exclusion", "LeftSemi", "RightSemi", "Cross"};
- for (auto& opName: JoinOps) {
+ for (auto& opName: JoinOps_) {
if (!allowedJoinOps.contains(opName)) {
- ctx.Error(Pos) << "Invalid join op: " << opName;
+ ctx.Error(Pos_) << "Invalid join op: " << opName;
return false;
}
}
ui32 idx = 0;
- for (auto expr: JoinExprs) {
+ for (auto expr: JoinExprs_) {
if (expr) {
TDeque<TNodePtr> conjQueue;
conjQueue.push_back(expr);
@@ -429,15 +429,15 @@ bool TJoinBase::DoInit(TContext& ctx, ISource* src) {
}
TSet<ui32> joinedSources;
- for (auto& descr: JoinDescrs) {
+ for (auto& descr: JoinDescrs_) {
for (auto& key : descr.Keys) {
joinedSources.insert(key.first.Source);
joinedSources.insert(key.second.Source);
}
}
- for (idx = 0; idx < Sources.size(); ++idx) {
+ for (idx = 0; idx < Sources_.size(); ++idx) {
if (!joinedSources.contains(idx)) {
- ctx.Error(Sources[idx]->GetPos()) << "Source: " << Sources[idx]->GetLabel() << " was not used in join expressions";
+ ctx.Error(Sources_[idx]->GetPos()) << "Source: " << Sources_[idx]->GetLabel() << " was not used in join expressions";
return false;
}
}
@@ -455,10 +455,10 @@ public:
TNodePtr Build(TContext& ctx) override {
TMap<std::pair<TString, TString>, TNodePtr> extraColumns;
TNodePtr joinTree;
- for (auto& descr: JoinDescrs) {
+ for (auto& descr: JoinDescrs_) {
auto leftBranch = joinTree;
if (!leftBranch) {
- leftBranch = BuildQuotedAtom(Pos, Sources[descr.Keys[0].first.Source]->GetLabel());
+ leftBranch = BuildQuotedAtom(Pos_, Sources_[descr.Keys[0].first.Source]->GetLabel());
}
auto leftKeys = GetColumnNames(ctx, extraColumns, descr.Keys, true);
auto rightKeys = GetColumnNames(ctx, extraColumns, descr.Keys, false);
@@ -469,7 +469,7 @@ public:
joinTree = Q(Y(
Q(descr.Op),
leftBranch,
- BuildQuotedAtom(Pos, Sources[descr.Keys[0].second.Source]->GetLabel()),
+ BuildQuotedAtom(Pos_, Sources_[descr.Keys[0].second.Source]->GetLabel()),
leftKeys,
rightKeys,
Q(Y())
@@ -478,7 +478,7 @@ public:
TNodePtr equiJoin(Y("EquiJoin"));
bool ordered = false;
- for (auto& source: Sources) {
+ for (auto& source: Sources_) {
auto sourceNode = source->Build(ctx);
if (!sourceNode) {
return nullptr;
@@ -494,7 +494,7 @@ public:
return nullptr;
}
auto block = Y(Y("let", "flatten", sourceNode));
- block = L(block, Y("let", "flatten", Y(useOrderedForSource ? "OrderedFlatMap" : "FlatMap", "flatten", BuildLambda(Pos, Y("row"), flatten, "res"))));
+ block = L(block, Y("let", "flatten", Y(useOrderedForSource ? "OrderedFlatMap" : "FlatMap", "flatten", BuildLambda(Pos_, Y("row"), flatten, "res"))));
sourceNode = Y("block", Q(L(block, Y("return", "flatten"))));
}
TNodePtr extraMembers;
@@ -503,7 +503,7 @@ public:
break;
}
if (!extraMembers) {
- extraMembers = KeysGround ? KeysGround : Y();
+ extraMembers = KeysGround_ ? KeysGround_ : Y();
}
extraMembers = L(
extraMembers,
@@ -511,7 +511,7 @@ public:
);
}
if (extraMembers) {
- sourceNode = Y(useOrderedForSource ? "OrderedMap" : "Map", sourceNode, BuildLambda(Pos, Y("row"), extraMembers, "row"));
+ sourceNode = Y(useOrderedForSource ? "OrderedMap" : "Map", sourceNode, BuildLambda(Pos_, Y("row"), extraMembers, "row"));
}
if (ctx.EnableSystemColumns && source->IsTableSource()) {
sourceNode = Y("RemoveSystemMembers", sourceNode);
@@ -525,24 +525,24 @@ public:
}
removeMembers = L(
removeMembers,
- Y("let", "row", Y("ForceRemoveMember", "row", BuildQuotedAtom(Pos, DotJoin(it.first.first, it.first.second))))
+ Y("let", "row", Y("ForceRemoveMember", "row", BuildQuotedAtom(Pos_, DotJoin(it.first.first, it.first.second))))
);
}
auto options = Y();
equiJoin = L(equiJoin, joinTree, Q(options));
if (removeMembers) {
- equiJoin = Y(ordered ? "OrderedMap" : "Map", equiJoin, BuildLambda(Pos, Y("row"), removeMembers, "row"));
+ equiJoin = Y(ordered ? "OrderedMap" : "Map", equiJoin, BuildLambda(Pos_, Y("row"), removeMembers, "row"));
}
return equiJoin;
}
const THashMap<TString, THashSet<TString>>& GetSameKeysMap() const override {
- return SameKeyMap;
+ return SameKeyMap_;
}
const TSet<TString> GetJoinLabels() const override {
TSet<TString> labels;
- for (auto& source: Sources) {
+ for (auto& source: Sources_) {
const auto label = source->GetLabel();
YQL_ENSURE(label);
labels.emplace(label);
@@ -552,12 +552,12 @@ public:
TPtr DoClone() const final {
TVector<TSourcePtr> clonedSources;
- for (auto& cur: Sources) {
+ for (auto& cur: Sources_) {
clonedSources.push_back(cur->CloneSource());
}
- auto newSource = MakeIntrusive<TEquiJoin>(Pos, std::move(clonedSources));
- newSource->JoinOps = JoinOps;
- newSource->JoinExprs = CloneContainer(JoinExprs);
+ auto newSource = MakeIntrusive<TEquiJoin>(Pos_, std::move(clonedSources));
+ newSource->JoinOps_ = JoinOps_;
+ newSource->JoinExprs_ = CloneContainer(JoinExprs_);
return newSource;
}
@@ -571,7 +571,7 @@ private:
Y_UNUSED(ctx);
auto res = Y();
for (auto& it: keys) {
- auto tableName = Sources[left ? it.first.Source : it.second.Source]->GetLabel();
+ auto tableName = Sources_[left ? it.first.Source : it.second.Source]->GetLabel();
TString columnName;
auto column = left ? it.first.Column : it.second.Column;
if (!column) {
@@ -587,8 +587,8 @@ private:
extraColumns.insert({ std::make_pair(tableName, columnName), column });
}
- res = L(res, BuildQuotedAtom(Pos, tableName));
- res = L(res, BuildQuotedAtom(Pos, columnName));
+ res = L(res, BuildQuotedAtom(Pos_, tableName));
+ res = L(res, BuildQuotedAtom(Pos_, columnName));
}
return Q(res);
diff --git a/yql/essentials/sql/v0/list_builtin.cpp b/yql/essentials/sql/v0/list_builtin.cpp
index 1b510450824..9a59d052f80 100644
--- a/yql/essentials/sql/v0/list_builtin.cpp
+++ b/yql/essentials/sql/v0/list_builtin.cpp
@@ -6,101 +6,101 @@ namespace NSQLTranslationV0 {
TAstNode* TListBuiltin::Translate(TContext& ctx) const {
Y_UNUSED(ctx);
- Y_DEBUG_ABORT_UNLESS(Node);
- return Node->Translate(ctx);
+ Y_DEBUG_ABORT_UNLESS(Node_);
+ return Node_->Translate(ctx);
}
TNodePtr TListBuiltin::GetIdentityLambda() {
- return BuildLambda(Pos, Y("arg"), Y(), "arg");
+ return BuildLambda(Pos_, Y("arg"), Y(), "arg");
}
TNodePtr TListBuiltin::SkipEmpty(TNodePtr arg) {
- auto sameArgLambda = BuildLambda(Pos, Y(), AstNode("item"));
- auto handleNotSkippableType = BuildLambda(Pos, Y(), Y("Just", "item"));
+ auto sameArgLambda = BuildLambda(Pos_, Y(), AstNode("item"));
+ auto handleNotSkippableType = BuildLambda(Pos_, Y(), Y("Just", "item"));
auto checkOptional = Y("MatchType", "item", Q("Optional"),
sameArgLambda, handleNotSkippableType);
- auto checkOptionalLambda = BuildLambda(Pos, Y(), checkOptional);
+ auto checkOptionalLambda = BuildLambda(Pos_, Y(), checkOptional);
auto checkList = Y("MatchType", "item", Q("List"),
sameArgLambda, checkOptionalLambda);
- return Y("OrderedFlatMap", arg, BuildLambda(Pos, Y("item"), checkList));
+ return Y("OrderedFlatMap", arg, BuildLambda(Pos_, Y("item"), checkList));
}
bool TListSortBuiltin::DoInit(TContext& ctx, ISource* src) {
- if (Args.size() < 1 || Args.size() > 2) {
- ctx.Error(Pos) << "List" << OpName
+ if (Args_.size() < 1 || Args_.size() > 2) {
+ ctx.Error(Pos_) << "List" << OpName_
<< " requires one or two parameters";
return false;
}
- if (!Args[0]->Init(ctx, src)) {
+ if (!Args_[0]->Init(ctx, src)) {
return false;
}
- if (Args.size() == 2) {
- if (!Args[1]->Init(ctx, src)) {
+ if (Args_.size() == 2) {
+ if (!Args_[1]->Init(ctx, src)) {
return false;
}
} else {
- Args.push_back(GetIdentityLambda());
+ Args_.push_back(GetIdentityLambda());
}
- Node = Y(OpName, SkipEmpty(Args[0]), Y("Bool", Q(Asc ? "true" : "false")), Args[1]);
+ Node_ = Y(OpName_, SkipEmpty(Args_[0]), Y("Bool", Q(Asc_ ? "true" : "false")), Args_[1]);
return true;
}
bool TListExtractBuiltin::DoInit(TContext& ctx, ISource* src) {
- if (Args.size() != 2) {
- ctx.Error(Pos) << "List" << OpName
+ if (Args_.size() != 2) {
+ ctx.Error(Pos_) << "List" << OpName_
<< " requires exactly two parameters";
return false;
}
- if (!Args[0]->Init(ctx, src)) {
+ if (!Args_[0]->Init(ctx, src)) {
return false;
}
- if (!Args[1]->Init(ctx, src)) {
+ if (!Args_[1]->Init(ctx, src)) {
return false;
}
- Args[1] = MakeAtomFromExpression(ctx, Args[1]).Build();
- Node = Y(OpName, SkipEmpty(Args[0]), Args[1]);
+ Args_[1] = MakeAtomFromExpression(ctx, Args_[1]).Build();
+ Node_ = Y(OpName_, SkipEmpty(Args_[0]), Args_[1]);
return true;
}
bool TListProcessBuiltin::CheckArgs(TContext& ctx, ISource* src) {
- if (Args.size() < 2 ) {
- ctx.Error(Pos) << "List" << OpName
+ if (Args_.size() < 2 ) {
+ ctx.Error(Pos_) << "List" << OpName_
<< " requires at least two parameters";
return false;
}
- for (const auto& arg : Args) {
+ for (const auto& arg : Args_) {
if (!arg->Init(ctx, src)) {
return false;
}
}
- OpLiteral = Args[1]->GetLiteral("String");
+ OpLiteral_ = Args_[1]->GetLiteral("String");
return true;
}
TNodePtr TListProcessBuiltin::PrepareResult() {
TNodePtr result;
- if (OpLiteral) {
- size_t modulePos = OpLiteral->find("::");
+ if (OpLiteral_) {
+ size_t modulePos = OpLiteral_->find("::");
if (modulePos != TString::npos) {
- const TString& module = OpLiteral->substr(0, modulePos);
- const TString& function = OpLiteral->substr(modulePos + 2);
+ const TString& module = OpLiteral_->substr(0, modulePos);
+ const TString& function = OpLiteral_->substr(modulePos + 2);
auto udf = Y("Udf", Q(module + "." + function));
result = Y("Apply", udf, "item");
} else {
- result = Y(*OpLiteral, "item");
+ result = Y(*OpLiteral_, "item");
}
} else {
- result = Y("Apply", Args[1], "item");
+ result = Y("Apply", Args_[1], "item");
}
- for (size_t i = 0; i < Args.size(); ++i) {
+ for (size_t i = 0; i < Args_.size(); ++i) {
if (i > 1) {
- result->Add(Args[i]);
+ result->Add(Args_[i]);
}
}
@@ -113,12 +113,12 @@ bool TListMapBuiltin::DoInit(TContext& ctx, ISource* src) {
return false;
};
auto prepare = PrepareResult();
- auto just = BuildLambda(Pos, Y(), Y("Just", prepare));
- auto sameArgLambda = BuildLambda(Pos, Y(), prepare);
+ auto just = BuildLambda(Pos_, Y(), Y("Just", prepare));
+ auto sameArgLambda = BuildLambda(Pos_, Y(), prepare);
auto match = Y("MatchType", prepare, Q("Data"), just, sameArgLambda);
- auto lambda = Flat ? BuildLambda(Pos, Y("item"), match) : GetMapLambda();
- Node = Y(OpName,
- Flat ? SkipEmpty(Args[0]) : Args[0],
+ auto lambda = Flat_ ? BuildLambda(Pos_, Y("item"), match) : GetMapLambda();
+ Node_ = Y(OpName_,
+ Flat_ ? SkipEmpty(Args_[0]) : Args_[0],
lambda
);
@@ -126,7 +126,7 @@ bool TListMapBuiltin::DoInit(TContext& ctx, ISource* src) {
}
TNodePtr TListMapBuiltin::GetMapLambda() {
- return BuildLambda(Pos, Y("item"), PrepareResult());
+ return BuildLambda(Pos_, Y("item"), PrepareResult());
}
@@ -134,30 +134,30 @@ bool TListFilterBuiltin::DoInit(TContext& ctx, ISource* src) {
if (!CheckArgs(ctx, src)) {
return false;
};
- Node = Y("OrderedFlatMap",
- SkipEmpty(Args[0]),
+ Node_ = Y("OrderedFlatMap",
+ SkipEmpty(Args_[0]),
GetFilterLambda()
);
return true;
}
TNodePtr TListFilterBuiltin::GetFilterLambda() {
- return BuildLambda(Pos, Y("item"), Y("OptionalIf", Y("Coalesce", PrepareResult(), Y("Bool", Q("false"))), "item"));
+ return BuildLambda(Pos_, Y("item"), Y("OptionalIf", Y("Coalesce", PrepareResult(), Y("Bool", Q("false"))), "item"));
}
bool TListFoldBuiltin::DoInit(TContext& ctx, ISource* src) {
- if (Args.size() != ArgCount) {
- ctx.Error(Pos) << "Folding list with " << OpName << "requires exactly " << ArgCount << " parameter";
+ if (Args_.size() != ArgCount_) {
+ ctx.Error(Pos_) << "Folding list with " << OpName_ << "requires exactly " << ArgCount_ << " parameter";
return false;
}
- for (const auto& arg : Args) {
+ for (const auto& arg : Args_) {
if (!arg->Init(ctx, src)) {
return false;
}
}
- Node = Y("Fold",
- SkipEmpty(Args[0]),
+ Node_ = Y("Fold",
+ SkipEmpty(Args_[0]),
GetInitialState(),
GetUpdateLambda()
);
@@ -166,24 +166,24 @@ bool TListFoldBuiltin::DoInit(TContext& ctx, ISource* src) {
TNodePtr TListFoldBuiltin::GetInitialState() {
- return Y(StateType, Q(StateValue));
+ return Y(StateType_, Q(StateValue_));
}
TNodePtr TListFoldBuiltin::GetUpdateLambda() {
- return BuildLambda(Pos, Y("item", "state"), Y(OpName, "item", "state"));
+ return BuildLambda(Pos_, Y("item", "state"), Y(OpName_, "item", "state"));
}
TNodePtr TListCountBuiltin::GetUpdateLambda() {
- return BuildLambda(Pos, Y("item", "state"), Y(OpName, "state"));
+ return BuildLambda(Pos_, Y("item", "state"), Y(OpName_, "state"));
}
bool TListAvgBuiltin::DoInit(TContext& ctx, ISource* src) {
if (TListFoldBuiltin::DoInit(ctx, src)) {
- auto foldResult = Node;
- Node = Y("Div", Y("Nth", foldResult, Q("1")), Y("Nth", foldResult, Q("0")));
+ auto foldResult = Node_;
+ Node_ = Y("Div", Y("Nth", foldResult, Q("1")), Y("Nth", foldResult, Q("0")));
return true;
} else {
return false;
@@ -197,24 +197,24 @@ TNodePtr TListAvgBuiltin::GetInitialState() {
TNodePtr TListAvgBuiltin::GetUpdateLambda() {
auto count = Y("Inc", Y("Nth", "state", Q("0")));
auto sum = Y("Add", "item", Y("Nth", "state", Q("1")));
- return BuildLambda(Pos, Y("item", "state"), Q(Y(count, sum)));
+ return BuildLambda(Pos_, Y("item", "state"), Q(Y(count, sum)));
}
TNodePtr TListHasBuiltin::GetUpdateLambda() {
- return BuildLambda(Pos, Y("item", "state"), Y("Or", "state",
- Y("Coalesce", Y(OpName, "item", Args[1]), Y("Bool", Q("false")))));
+ return BuildLambda(Pos_, Y("item", "state"), Y("Or", "state",
+ Y("Coalesce", Y(OpName_, "item", Args_[1]), Y("Bool", Q("false")))));
}
bool TListFold1Builtin::DoInit(TContext& ctx, ISource* src) {
- if (Args.size() != 1) {
- ctx.Error(Pos) << "Folding list with " << OpName << " requires only one parameter";
+ if (Args_.size() != 1) {
+ ctx.Error(Pos_) << "Folding list with " << OpName_ << " requires only one parameter";
return false;
}
- if (!Args[0]->Init(ctx, src)) {
+ if (!Args_[0]->Init(ctx, src)) {
return false;
}
- Node = Y("Fold1",
- SkipEmpty(Args[0]),
+ Node_ = Y("Fold1",
+ SkipEmpty(Args_[0]),
GetInitLambda(),
GetUpdateLambda()
);
@@ -225,64 +225,64 @@ TNodePtr TListFold1Builtin::GetInitLambda() {
}
TNodePtr TListFold1Builtin::GetUpdateLambda() {
- return BuildLambda(Pos, Y("item", "state"), Y(OpName, "state", "item"));
+ return BuildLambda(Pos_, Y("item", "state"), Y(OpName_, "state", "item"));
}
bool TListUniqBuiltin::DoInit(TContext& ctx, ISource* src) {
- if (Args.size() != 1) {
- ctx.Error(Pos) << OpName << " requires only one parameter";
+ if (Args_.size() != 1) {
+ ctx.Error(Pos_) << OpName_ << " requires only one parameter";
return false;
}
- if (!Args[0]->Init(ctx, src)) {
+ if (!Args_[0]->Init(ctx, src)) {
return false;
}
- Node = Y("DictKeys",
- Y("ToDict", Args[0], GetIdentityLambda(), BuildLambda(Pos, Y("item"), Y("Void")), Q(Y(Q("Hashed"), Q("One"))))
+ Node_ = Y("DictKeys",
+ Y("ToDict", Args_[0], GetIdentityLambda(), BuildLambda(Pos_, Y("item"), Y("Void")), Q(Y(Q("Hashed"), Q("One"))))
);
return true;
}
bool TListCreateBuiltin::DoInit(TContext& ctx, ISource* src) {
- if (Args.size() != 1) {
- ctx.Error(Pos) << OpName << " requires only one parameter";
+ if (Args_.size() != 1) {
+ ctx.Error(Pos_) << OpName_ << " requires only one parameter";
return false;
}
- if (!Args[0]->Init(ctx, src)) {
+ if (!Args_[0]->Init(ctx, src)) {
return false;
}
- auto literal = Args[0]->GetLiteral("String");
+ auto literal = Args_[0]->GetLiteral("String");
if (literal) {
- Node = Y("List",
+ Node_ = Y("List",
Y("ListType",
Y("ParseType", Q(*literal))));
} else {
- Node = Y("List",
- Y("ListType", Args[0]));
+ Node_ = Y("List",
+ Y("ListType", Args_[0]));
}
return true;
}
bool TDictCreateBuiltin::DoInit(TContext& ctx, ISource* src) {
- if (Args.size() != 2) {
- ctx.Error(Pos) << OpName << " requires two parameters";
+ if (Args_.size() != 2) {
+ ctx.Error(Pos_) << OpName_ << " requires two parameters";
return false;
}
TNodePtr types[2];
for (ui32 i = 0; i < 2; ++i) {
- if (!Args[i]->Init(ctx, src)) {
+ if (!Args_[i]->Init(ctx, src)) {
return false;
}
- auto literal = Args[i]->GetLiteral("String");
+ auto literal = Args_[i]->GetLiteral("String");
if (literal) {
types[i] = Y("ParseType", Q(*literal));
} else {
- types[i] = Args[i];
+ types[i] = Args_[i];
}
}
- Node = Y("Dict",
+ Node_ = Y("Dict",
Y("DictType", types[0], types[1]));
return true;
diff --git a/yql/essentials/sql/v0/list_builtin.h b/yql/essentials/sql/v0/list_builtin.h
index b1d1b2e0f58..a2c65d0d4fd 100644
--- a/yql/essentials/sql/v0/list_builtin.h
+++ b/yql/essentials/sql/v0/list_builtin.h
@@ -20,8 +20,8 @@ public:
const TString& opName,
const TVector<TNodePtr>& args)
: TCallNode(pos, opName, args.size(), args.size(), args)
- , OpName(opName)
- , Args(args)
+ , OpName_(opName)
+ , Args_(args)
{}
bool DoInit(TContext& ctx, ISource* src) override = 0;
@@ -29,16 +29,16 @@ public:
TAstNode* Translate(TContext& ctx) const override;
protected:
- const TString OpName;
- TVector<TNodePtr> Args;
- TNodePtr Node;
+ const TString OpName_;
+ TVector<TNodePtr> Args_;
+ TNodePtr Node_;
inline TNodePtr GetIdentityLambda();
inline TNodePtr SkipEmpty(TNodePtr arg);
void DoUpdateState() const override {
- State.Set(ENodeState::Aggregated, Args[0]->IsAggregated());
+ State_.Set(ENodeState::Aggregated, Args_[0]->IsAggregated());
}
};
@@ -46,17 +46,17 @@ class TListSortBuiltin final: public TListBuiltin {
public:
TListSortBuiltin(TPosition pos, const TVector<TNodePtr>& args, bool asc)
: TListBuiltin(pos, "Sort", args)
- , Asc(asc)
+ , Asc_(asc)
{}
bool DoInit(TContext& ctx, ISource* src) override;
TNodePtr DoClone() const final {
- return new TListSortBuiltin(Pos, CloneContainer(Args), Asc);
+ return new TListSortBuiltin(Pos_, CloneContainer(Args_), Asc_);
}
private:
- bool Asc;
+ bool Asc_;
};
class TListExtractBuiltin final: public TListBuiltin {
@@ -68,7 +68,7 @@ public:
bool DoInit(TContext& ctx, ISource* src) override;
TNodePtr DoClone() const final {
- return new TListExtractBuiltin(Pos, CloneContainer(Args));
+ return new TListExtractBuiltin(Pos_, CloneContainer(Args_));
}
};
@@ -78,14 +78,14 @@ protected:
const TString& opName,
const TVector<TNodePtr>& args)
: TListBuiltin(pos, opName, args)
- , OpLiteral(nullptr)
+ , OpLiteral_(nullptr)
{}
bool CheckArgs(TContext& ctx, ISource* src);
TNodePtr PrepareResult();
- const TString* OpLiteral;
+ const TString* OpLiteral_;
};
class TListMapBuiltin final: public TListProcessBuiltin {
@@ -94,18 +94,18 @@ public:
const TVector<TNodePtr>& args,
bool flat)
: TListProcessBuiltin(pos, flat ? "OrderedFlatMap" : "OrderedMap", args)
- , Flat(flat)
+ , Flat_(flat)
{}
bool DoInit(TContext& ctx, ISource* src) override;
TNodePtr DoClone() const final {
- return new TListMapBuiltin(Pos, CloneContainer(Args), Flat);
+ return new TListMapBuiltin(Pos_, CloneContainer(Args_), Flat_);
}
protected:
virtual TNodePtr GetMapLambda();
private:
- bool Flat;
+ bool Flat_;
};
class TListFilterBuiltin final: public TListProcessBuiltin {
@@ -119,7 +119,7 @@ public:
bool DoInit(TContext& ctx, ISource* src) override;
TNodePtr DoClone() const final {
- return new TListFilterBuiltin(Pos, CloneContainer(Args));
+ return new TListFilterBuiltin(Pos_, CloneContainer(Args_));
}
protected:
virtual TNodePtr GetFilterLambda();
@@ -134,17 +134,17 @@ public:
const ui32 argCount,
const TVector<TNodePtr>& args)
: TListBuiltin(pos, opName, args)
- , StateType(stateType)
- , StateValue(stateValue)
- , ArgCount(argCount)
+ , StateType_(stateType)
+ , StateValue_(stateValue)
+ , ArgCount_(argCount)
{
}
bool DoInit(TContext& ctx, ISource* src) override;
protected:
- const TString StateType;
- const TString StateValue;
- const ui32 ArgCount;
+ const TString StateType_;
+ const TString StateValue_;
+ const ui32 ArgCount_;
virtual TNodePtr GetInitialState();
@@ -159,7 +159,7 @@ public:
{}
TNodePtr DoClone() const final {
- return new TListFoldBuiltinImpl(Pos, OpName, StateType, StateValue, ArgCount, CloneContainer(Args));
+ return new TListFoldBuiltinImpl(Pos_, OpName_, StateType_, StateValue_, ArgCount_, CloneContainer(Args_));
}
};
@@ -170,7 +170,7 @@ public:
{}
TNodePtr DoClone() const final {
- return new TListCountBuiltin(Pos, CloneContainer(Args));
+ return new TListCountBuiltin(Pos_, CloneContainer(Args_));
}
private:
virtual TNodePtr GetUpdateLambda();
@@ -184,7 +184,7 @@ public:
}
TNodePtr DoClone() const final {
- return new TListAvgBuiltin(Pos, CloneContainer(Args));
+ return new TListAvgBuiltin(Pos_, CloneContainer(Args_));
}
private:
bool DoInit(TContext& ctx, ISource* src) override;
@@ -202,20 +202,20 @@ public:
}
TNodePtr DoClone() const final {
- return new TListHasBuiltin(Pos, CloneContainer(Args));
+ return new TListHasBuiltin(Pos_, CloneContainer(Args_));
}
private:
TNodePtr GetUpdateLambda() override;
void DoUpdateState() const override {
bool isAggregated = true;
- for (const auto& arg: Args) {
+ for (const auto& arg: Args_) {
if (!arg->IsAggregated()) {
isAggregated = false;
break;
}
}
- State.Set(ENodeState::Aggregated, isAggregated);
+ State_.Set(ENodeState::Aggregated, isAggregated);
}
};
@@ -232,7 +232,7 @@ public:
bool DoInit(TContext& ctx, ISource* src) override;
TNodePtr DoClone() const final {
- return new TListFold1Builtin(Pos, OpName, CloneContainer(Args));
+ return new TListFold1Builtin(Pos_, OpName_, CloneContainer(Args_));
}
protected:
@@ -251,7 +251,7 @@ public:
bool DoInit(TContext& ctx, ISource* src) override;
TNodePtr DoClone() const final {
- return new TListUniqBuiltin(Pos, CloneContainer(Args));
+ return new TListUniqBuiltin(Pos_, CloneContainer(Args_));
}
};
@@ -265,7 +265,7 @@ public:
bool DoInit(TContext& ctx, ISource* src) override;
TNodePtr DoClone() const final {
- return new TListCreateBuiltin(Pos, CloneContainer(Args));
+ return new TListCreateBuiltin(Pos_, CloneContainer(Args_));
}
};
@@ -279,7 +279,7 @@ public:
bool DoInit(TContext& ctx, ISource* src) override;
TNodePtr DoClone() const final {
- return new TDictCreateBuiltin(Pos, CloneContainer(Args));
+ return new TDictCreateBuiltin(Pos_, CloneContainer(Args_));
}
};
diff --git a/yql/essentials/sql/v0/node.cpp b/yql/essentials/sql/v0/node.cpp
index 0b4c9f0694a..ae448da087b 100644
--- a/yql/essentials/sql/v0/node.cpp
+++ b/yql/essentials/sql/v0/node.cpp
@@ -85,7 +85,7 @@ TColumnSchema::TColumnSchema(TPosition pos, const TString& name, const TString&
}
INode::INode(TPosition pos)
- : Pos(pos)
+ : Pos_(pos)
{
}
@@ -94,23 +94,23 @@ INode::~INode()
}
TPosition INode::GetPos() const {
- return Pos;
+ return Pos_;
}
const TString& INode::GetLabel() const {
- return Label;
+ return Label_;
}
void INode::SetLabel(const TString& label) {
- Label = label;
+ Label_ = label;
}
void INode::SetCountHint(bool isCount) {
- State.Set(ENodeState::CountHint, isCount);
+ State_.Set(ENodeState::CountHint, isCount);
}
bool INode::GetCountHint() const {
- return State.Test(ENodeState::CountHint);
+ return State_.Test(ENodeState::CountHint);
}
bool INode::IsConstant() const {
@@ -191,16 +191,16 @@ TVector<TNodePtr>* INode::ContentListPtr() {
}
bool INode::Init(TContext& ctx, ISource* src) {
- if (State.Test(ENodeState::Failed)) {
+ if (State_.Test(ENodeState::Failed)) {
return false;
}
- if (!State.Test(ENodeState::Initialized)) {
+ if (!State_.Test(ENodeState::Initialized)) {
if (!DoInit(ctx, src)) {
- State.Set(ENodeState::Failed);
+ State_.Set(ENodeState::Failed);
return false;
}
- State.Set(ENodeState::Initialized);
+ State_.Set(ENodeState::Initialized);
}
return true;
}
@@ -212,7 +212,7 @@ bool INode::DoInit(TContext& ctx, ISource* src) {
}
TNodePtr INode::AstNode() const {
- return new TAstListNodeImpl(Pos);
+ return new TAstListNodeImpl(Pos_);
}
TNodePtr INode::AstNode(TNodePtr node) const {
@@ -220,7 +220,7 @@ TNodePtr INode::AstNode(TNodePtr node) const {
}
TNodePtr INode::AstNode(const TString& str) const {
- return new TAstAtomNodeImpl(Pos, str, TNodeFlags::Default);
+ return new TAstAtomNodeImpl(Pos_, str, TNodeFlags::Default);
}
TNodePtr INode::AstNode(TAstNode* node) const {
@@ -232,8 +232,8 @@ TNodePtr INode::Clone() const {
if (!clone) {
clone = const_cast<INode*>(this);
} else {
- YQL_ENSURE(!State.Test(ENodeState::Initialized), "Clone shold be for uninitialized or persistent node");
- clone->SetLabel(Label);
+ YQL_ENSURE(!State_.Test(ENodeState::Initialized), "Clone shold be for uninitialized or persistent node");
+ clone->SetLabel(Label_);
}
return clone;
}
@@ -248,7 +248,7 @@ INode::TPtr INode::WindowSpecFunc(const TPtr& type) const {
}
void INode::UseAsInner() {
- AsInner = true;
+ AsInner_ = true;
}
bool INode::UsedSubquery() const {
@@ -268,18 +268,18 @@ void INode::DoUpdateState() const {
}
void INode::PrecacheState() const {
- if (State.Test(ENodeState::Failed)) {
+ if (State_.Test(ENodeState::Failed)) {
return;
}
/// Not work right now! It's better use Init at first, because some kind of update depend on it
/// \todo turn on and remove all issues
//Y_DEBUG_ABORT_UNLESS(State.Test(ENodeState::Initialized));
- if (State.Test(ENodeState::Precached)) {
+ if (State_.Test(ENodeState::Precached)) {
return;
}
DoUpdateState();
- State.Set(ENodeState::Precached);
+ State_.Set(ENodeState::Precached);
}
void INode::DoAdd(TNodePtr node) {
@@ -289,8 +289,8 @@ void INode::DoAdd(TNodePtr node) {
TAstAtomNode::TAstAtomNode(TPosition pos, const TString& content, ui32 flags)
: INode(pos)
- , Content(content)
- , Flags(flags)
+ , Content_(content)
+ , Flags_(flags)
{
}
@@ -299,26 +299,26 @@ TAstAtomNode::~TAstAtomNode()
}
void TAstAtomNode::DoUpdateState() const {
- State.Set(ENodeState::Const);
+ State_.Set(ENodeState::Const);
}
TAstNode* TAstAtomNode::Translate(TContext& ctx) const {
- return TAstNode::NewAtom(Pos, Content, *ctx.Pool, Flags);
+ return TAstNode::NewAtom(Pos_, Content_, *ctx.Pool, Flags_);
}
const TString* TAstAtomNode::GetAtomContent() const {
- return &Content;
+ return &Content_;
}
TAstDirectNode::TAstDirectNode(TAstNode* node)
: INode(node->GetPosition())
- , Node(node)
+ , Node_(node)
{
}
TAstNode* TAstDirectNode::Translate(TContext& ctx) const {
Y_UNUSED(ctx);
- return Node;
+ return Node_;
}
TNodePtr BuildAtom(TPosition pos, const TString& content, ui32 flags) {
@@ -335,7 +335,7 @@ TAstListNode::~TAstListNode()
}
bool TAstListNode::DoInit(TContext& ctx, ISource* src) {
- for (auto& node: Nodes) {
+ for (auto& node: Nodes_) {
if (!node->Init(ctx, src)) {
return false;
}
@@ -345,9 +345,9 @@ bool TAstListNode::DoInit(TContext& ctx, ISource* src) {
TAstNode* TAstListNode::Translate(TContext& ctx) const {
TSmallVec<TAstNode*> children;
- children.reserve(Nodes.size());
- auto listPos = Pos;
- for (auto& node: Nodes) {
+ children.reserve(Nodes_.size());
+ auto listPos = Pos_;
+ for (auto& node: Nodes_) {
if (node) {
auto astNode = node->Translate(ctx);
if (!astNode) {
@@ -355,7 +355,7 @@ TAstNode* TAstListNode::Translate(TContext& ctx) const {
}
children.push_back(astNode);
} else {
- ctx.Error(Pos) << "Translation error: encountered empty TNodePtr";
+ ctx.Error(Pos_) << "Translation error: encountered empty TNodePtr";
return nullptr;
}
}
@@ -366,8 +366,8 @@ TAstNode* TAstListNode::Translate(TContext& ctx) const {
void TAstListNode::UpdateStateByListNodes(const TVector<TNodePtr>& nodes) const {
bool isConst = true;
struct TAttributesFlags {
- bool has = false;
- bool all = true;
+ bool Has = false;
+ bool All = true;
};
std::array<ENodeState, 3> checkStates = {{ENodeState::Aggregated, ENodeState::AggregationKey, ENodeState::OverWindow}};
std::map<ENodeState, TAttributesFlags> flags;
@@ -375,45 +375,45 @@ void TAstListNode::UpdateStateByListNodes(const TVector<TNodePtr>& nodes) const
const bool isNodeConst = node->IsConstant();
for (auto state: checkStates) {
if (node->HasState(state)) {
- flags[state].has = true;
+ flags[state].Has = true;
} else if (!isNodeConst) {
isConst = false;
- flags[state].all = false;
+ flags[state].All = false;
}
}
}
- State.Set(ENodeState::Const, isConst);
+ State_.Set(ENodeState::Const, isConst);
for (auto& flag: flags) {
- State.Set(flag.first, flag.second.has && flag.second.all);
+ State_.Set(flag.first, flag.second.Has && flag.second.All);
}
}
void TAstListNode::DoUpdateState() const {
- UpdateStateByListNodes(Nodes);
+ UpdateStateByListNodes(Nodes_);
}
TAstListNode::TAstListNode(const TAstListNode& node)
- : INode(node.Pos)
- , Nodes(node.Nodes)
+ : INode(node.Pos_)
+ , Nodes_(node.Nodes_)
{
- Label = node.Label;
- State = node.State;
+ Label_ = node.Label_;
+ State_ = node.State_;
}
TAstListNode::TAstListNode(TPosition pos, TVector<TNodePtr>&& nodes)
: INode(pos)
- , Nodes(std::move(nodes))
+ , Nodes_(std::move(nodes))
{
}
TNodePtr TAstListNode::ShallowCopy() const {
- return new TAstListNodeImpl(Pos, Nodes);
+ return new TAstListNodeImpl(Pos_, Nodes_);
}
void TAstListNode::DoAdd(TNodePtr node) {
Y_DEBUG_ABORT_UNLESS(node);
Y_DEBUG_ABORT_UNLESS(node.Get() != this);
- Nodes.push_back(node);
+ Nodes_.push_back(node);
}
TAstListNodeImpl::TAstListNodeImpl(TPosition pos)
@@ -423,11 +423,11 @@ TAstListNodeImpl::TAstListNodeImpl(TPosition pos)
TAstListNodeImpl::TAstListNodeImpl(TPosition pos, TVector<TNodePtr> nodes)
: TAstListNode(pos)
{
- Nodes.swap(nodes);
+ Nodes_.swap(nodes);
}
TNodePtr TAstListNodeImpl::DoClone() const {
- return new TAstListNodeImpl(Pos, CloneContainer(Nodes));
+ return new TAstListNodeImpl(Pos_, CloneContainer(Nodes_));
}
bool ValidateAllNodesForAggregation(TContext& ctx, const TVector<TNodePtr>& nodes) {
@@ -445,20 +445,20 @@ bool ValidateAllNodesForAggregation(TContext& ctx, const TVector<TNodePtr>& node
TCallNode::TCallNode(TPosition pos, const TString& opName, i32 minArgs, i32 maxArgs, const TVector<TNodePtr>& args)
: TAstListNode(pos)
- , OpName(opName)
- , MinArgs(minArgs)
- , MaxArgs(maxArgs)
- , Args(args)
+ , OpName_(opName)
+ , MinArgs_(minArgs)
+ , MaxArgs_(maxArgs)
+ , Args_(args)
{
}
TString TCallNode::GetOpName() const {
- return OpName;
+ return OpName_;
}
const TString* TCallNode::GetSourceName() const {
const TString* name = nullptr;
- for (auto& arg: Args) {
+ for (auto& arg: Args_) {
auto n = arg->GetSourceName();
if (!n) {
continue;
@@ -472,37 +472,37 @@ const TString* TCallNode::GetSourceName() const {
}
const TVector<TNodePtr>& TCallNode::GetArgs() const {
- return Args;
+ return Args_;
}
void TCallNode::DoUpdateState() const {
- UpdateStateByListNodes(Args);
+ UpdateStateByListNodes(Args_);
}
TString TCallNode::GetCallExplain() const {
auto derivedName = GetOpName();
TStringBuilder sb;
sb << derivedName << "()";
- if (derivedName != OpName) {
- sb << ", converted to " << OpName << "()";
+ if (derivedName != OpName_) {
+ sb << ", converted to " << OpName_ << "()";
}
return std::move(sb);
}
bool TCallNode::ValidateArguments(TContext& ctx) const {
- const auto argsCount = static_cast<i32>(Args.size());
- if (MinArgs >= 0 && MaxArgs == MinArgs && argsCount != MinArgs) {
- ctx.Error(Pos) << GetCallExplain() << " requires exactly " << MinArgs << " arguments, given: " << Args.size();
+ const auto argsCount = static_cast<i32>(Args_.size());
+ if (MinArgs_ >= 0 && MaxArgs_ == MinArgs_ && argsCount != MinArgs_) {
+ ctx.Error(Pos_) << GetCallExplain() << " requires exactly " << MinArgs_ << " arguments, given: " << Args_.size();
return false;
}
- if (MinArgs >= 0 && argsCount < MinArgs) {
- ctx.Error(Pos) << GetCallExplain() << " requires at least " << MinArgs << " arguments, given: " << Args.size();
+ if (MinArgs_ >= 0 && argsCount < MinArgs_) {
+ ctx.Error(Pos_) << GetCallExplain() << " requires at least " << MinArgs_ << " arguments, given: " << Args_.size();
return false;
}
- if (MaxArgs >= 0 && argsCount > MaxArgs) {
- ctx.Error(Pos) << GetCallExplain() << " requires at most " << MaxArgs << " arguments, given: " << Args.size();
+ if (MaxArgs_ >= 0 && argsCount > MaxArgs_) {
+ ctx.Error(Pos_) << GetCallExplain() << " requires at most " << MaxArgs_ << " arguments, given: " << Args_.size();
return false;
}
@@ -515,7 +515,7 @@ bool TCallNode::DoInit(TContext& ctx, ISource* src) {
}
bool hasError = false;
- for (auto& arg: Args) {
+ for (auto& arg: Args_) {
if (!arg->Init(ctx, src)) {
hasError = true;
continue;
@@ -526,8 +526,8 @@ bool TCallNode::DoInit(TContext& ctx, ISource* src) {
return false;
}
- Nodes.push_back(BuildAtom(Pos, OpName));
- Nodes.insert(Nodes.end(), Args.begin(), Args.end());
+ Nodes_.push_back(BuildAtom(Pos_, OpName_));
+ Nodes_.insert(Nodes_.end(), Args_.begin(), Args_.end());
return true;
}
@@ -540,21 +540,21 @@ TCallNodeImpl::TCallNodeImpl(TPosition pos, const TString& opName, const TVector
{}
TCallNode::TPtr TCallNodeImpl::DoClone() const {
- return new TCallNodeImpl(GetPos(), OpName, MinArgs, MaxArgs, CloneContainer(Args));
+ return new TCallNodeImpl(GetPos(), OpName_, MinArgs_, MaxArgs_, CloneContainer(Args_));
}
TCallNodeDepArgs::TCallNodeDepArgs(ui32 reqArgsCount, TPosition pos, const TString& opName, i32 minArgs, i32 maxArgs, const TVector<TNodePtr>& args)
: TCallNode(pos, opName, minArgs, maxArgs, args)
- , ReqArgsCount(reqArgsCount)
+ , ReqArgsCount_(reqArgsCount)
{}
TCallNodeDepArgs::TCallNodeDepArgs(ui32 reqArgsCount, TPosition pos, const TString& opName, const TVector<TNodePtr>& args)
: TCallNode(pos, opName, args.size(), args.size(), args)
- , ReqArgsCount(reqArgsCount)
+ , ReqArgsCount_(reqArgsCount)
{}
TCallNode::TPtr TCallNodeDepArgs::DoClone() const {
- return new TCallNodeDepArgs(ReqArgsCount, GetPos(), OpName, MinArgs, MaxArgs, CloneContainer(Args));
+ return new TCallNodeDepArgs(ReqArgsCount_, GetPos(), OpName_, MinArgs_, MaxArgs_, CloneContainer(Args_));
}
bool TCallNodeDepArgs::DoInit(TContext& ctx, ISource* src) {
@@ -562,14 +562,14 @@ bool TCallNodeDepArgs::DoInit(TContext& ctx, ISource* src) {
return false;
}
- for (ui32 i = 1 + ReqArgsCount; i < Nodes.size(); ++i) {
- Nodes[i] = Y("DependsOn", Nodes[i]);
+ for (ui32 i = 1 + ReqArgsCount_; i < Nodes_.size(); ++i) {
+ Nodes_[i] = Y("DependsOn", Nodes_[i]);
}
return true;
}
TCallDirectRow::TPtr TCallDirectRow::DoClone() const {
- return new TCallDirectRow(Pos, OpName, CloneContainer(Args));
+ return new TCallDirectRow(Pos_, OpName_, CloneContainer(Args_));
}
TCallDirectRow::TCallDirectRow(TPosition pos, const TString& opName, const TVector<TNodePtr>& args)
@@ -578,66 +578,66 @@ TCallDirectRow::TCallDirectRow(TPosition pos, const TString& opName, const TVect
bool TCallDirectRow::DoInit(TContext& ctx, ISource* src) {
if (!src) {
- ctx.Error(Pos) << "Unable to use function: " << OpName << " without source";
+ ctx.Error(Pos_) << "Unable to use function: " << OpName_ << " without source";
return false;
}
if (src->IsCompositeSource() || src->GetJoin() || src->HasAggregations() || src->IsFlattenByColumns() || src->IsOverWindowSource()) {
- ctx.Error(Pos) << "Failed to use function: " << OpName << " with aggregation, join, flatten by or window functions";
+ ctx.Error(Pos_) << "Failed to use function: " << OpName_ << " with aggregation, join, flatten by or window functions";
return false;
}
if (!TCallNode::DoInit(ctx, src)) {
return false;
}
- Nodes.push_back(Y("DependsOn", "row"));
+ Nodes_.push_back(Y("DependsOn", "row"));
return true;
}
void TCallDirectRow::DoUpdateState() const {
- State.Set(ENodeState::Const, false);
+ State_.Set(ENodeState::Const, false);
}
void TWinAggrEmulation::DoUpdateState() const {
- State.Set(ENodeState::OverWindow, true);
+ State_.Set(ENodeState::OverWindow, true);
}
bool TWinAggrEmulation::DoInit(TContext& ctx, ISource* src) {
if (!src) {
- ctx.Error(Pos) << "Unable to use window function: " << OpName << " without source";
+ ctx.Error(Pos_) << "Unable to use window function: " << OpName_ << " without source";
return false;
}
if (!src->IsOverWindowSource()) {
- ctx.Error(Pos) << "Failed to use window function: " << OpName << " without window specification";
+ ctx.Error(Pos_) << "Failed to use window function: " << OpName_ << " without window specification";
return false;
}
if (!src->AddFuncOverWindow(ctx, this)) {
- ctx.Error(Pos) << "Failed to use window function: " << OpName << " without specification or in wrong place";
+ ctx.Error(Pos_) << "Failed to use window function: " << OpName_ << " without specification or in wrong place";
return false;
}
- FuncAlias = "_yql_" + src->MakeLocalName(OpName);
- src->AddTmpWindowColumn(FuncAlias);
+ FuncAlias_ = "_yql_" + src->MakeLocalName(OpName_);
+ src->AddTmpWindowColumn(FuncAlias_);
ctx.PushBlockShortcuts();
if (!TCallNode::DoInit(ctx, src)) {
return false;
}
- WinAggrGround = ctx.GroundBlockShortcuts(Pos);
- Nodes.clear();
- Add("Member", "row", Q(FuncAlias));
+ WinAggrGround_ = ctx.GroundBlockShortcuts(Pos_);
+ Nodes_.clear();
+ Add("Member", "row", Q(FuncAlias_));
return true;
}
INode::TPtr TWinAggrEmulation::WindowSpecFunc(const TPtr& type) const {
- auto result = Y(OpName, type);
- for (const auto& arg: Args) {
+ auto result = Y(OpName_, type);
+ for (const auto& arg: Args_) {
result = L(result, arg);
}
- return Q(Y(Q(FuncAlias), result));
+ return Q(Y(Q(FuncAlias_), result));
}
TWinAggrEmulation::TWinAggrEmulation(TPosition pos, const TString& opName, i32 minArgs, i32 maxArgs, const TVector<TNodePtr>& args)
: TCallNode(pos, opName, minArgs, maxArgs, args)
- , FuncAlias(opName)
+ , FuncAlias_(opName)
{}
TWinRowNumber::TWinRowNumber(TPosition pos, const TString& opName, i32 minArgs, i32 maxArgs, const TVector<TNodePtr>& args)
@@ -649,17 +649,17 @@ TWinLeadLag::TWinLeadLag(TPosition pos, const TString& opName, i32 minArgs, i32
{}
bool TWinLeadLag::DoInit(TContext& ctx, ISource* src) {
- if (Args.size() >= 2) {
- if (!Args[1]->IsIntegerLiteral()) {
- ctx.Error(Args[1]->GetPos()) << "Expected integer literal as second parameter of " << OpName << "( ) function";
+ if (Args_.size() >= 2) {
+ if (!Args_[1]->IsIntegerLiteral()) {
+ ctx.Error(Args_[1]->GetPos()) << "Expected integer literal as second parameter of " << OpName_ << "( ) function";
return false;
}
}
if (!TWinAggrEmulation::DoInit(ctx, src)) {
return false;
}
- if (Args.size() >= 1) {
- Args[0] = BuildLambda(Pos, Y("row"), GroundWithExpr(WinAggrGround, Args[0]));
+ if (Args_.size() >= 1) {
+ Args_[0] = BuildLambda(Pos_, Y("row"), GroundWithExpr(WinAggrGround_, Args_[0]));
}
return true;
}
@@ -674,9 +674,9 @@ public:
protected:
TQuotedAtomNode(const TQuotedAtomNode& other)
- : TAstListNode(other.Pos)
+ : TAstListNode(other.Pos_)
{
- Nodes = CloneContainer(other.Nodes);
+ Nodes_ = CloneContainer(other.Nodes_);
}
TPtr DoClone() const final {
return new TQuotedAtomNode(*this);
@@ -802,15 +802,15 @@ THoppingWindowSpecPtr THoppingWindowSpec::Clone() const {
TColumnNode::TColumnNode(TPosition pos, const TString& column, const TString& source)
: INode(pos)
- , ColumnName(column)
- , Source(source)
+ , ColumnName_(column)
+ , Source_(source)
{
}
TColumnNode::TColumnNode(TPosition pos, const TNodePtr& column, const TString& source)
: INode(pos)
- , ColumnExpr(column)
- , Source(source)
+ , ColumnExpr_(column)
+ , Source_(source)
{
}
@@ -819,24 +819,24 @@ TColumnNode::~TColumnNode()
}
bool TColumnNode::IsAsterisk() const {
- return ColumnName == "*";
+ return ColumnName_ == "*";
}
bool TColumnNode::IsArtificial() const {
- return Artificial;
+ return Artificial_;
}
const TString* TColumnNode::GetColumnName() const {
- return UseSourceAsColumn ? &Source : (ColumnExpr ? nullptr : &ColumnName);
+ return UseSourceAsColumn_ ? &Source_ : (ColumnExpr_ ? nullptr : &ColumnName_);
}
const TString* TColumnNode::GetSourceName() const {
- return UseSourceAsColumn ? &Empty : &Source;
+ return UseSourceAsColumn_ ? &Empty : &Source_;
}
bool TColumnNode::DoInit(TContext& ctx, ISource* src) {
if (src) {
- YQL_ENSURE(!State.Test(ENodeState::Initialized)); /// should be not initialized or Aggregated already invalid
+ YQL_ENSURE(!State_.Test(ENodeState::Initialized)); /// should be not initialized or Aggregated already invalid
if (src->ShouldUseSourceAsColumn(*GetSourceName())) {
if (!IsAsterisk() && IsReliable()) {
SetUseSourceAsColumn();
@@ -844,103 +844,103 @@ bool TColumnNode::DoInit(TContext& ctx, ISource* src) {
}
if (GetColumnName()) {
- auto fullName = Source ? DotJoin(Source, *GetColumnName()) : *GetColumnName();
+ auto fullName = Source_ ? DotJoin(Source_, *GetColumnName()) : *GetColumnName();
auto alias = src->GetGroupByColumnAlias(fullName);
if (alias) {
ResetColumn(alias, {});
}
- Artificial = !Source && src->IsExprAlias(*GetColumnName());
+ Artificial_ = !Source_ && src->IsExprAlias(*GetColumnName());
}
if (!src->AddColumn(ctx, *this)) {
return false;
}
if (GetColumnName()) {
- if (src->GetJoin() && Source) {
- GroupKey = src->IsGroupByColumn(DotJoin(Source, *GetColumnName()));
+ if (src->GetJoin() && Source_) {
+ GroupKey_ = src->IsGroupByColumn(DotJoin(Source_, *GetColumnName()));
} else {
- GroupKey = src->IsGroupByColumn(*GetColumnName()) || src->IsAlias(EExprSeat::GroupBy, *GetColumnName());
+ GroupKey_ = src->IsGroupByColumn(*GetColumnName()) || src->IsAlias(EExprSeat::GroupBy, *GetColumnName());
}
}
}
if (IsAsterisk()) {
- Node = AstNode("row");
+ Node_ = AstNode("row");
} else {
- Node = Y(Reliable && !UseSource ? "Member" : "SqlColumn", "row", ColumnExpr ?
- Y("EvaluateAtom", ColumnExpr) : BuildQuotedAtom(Pos, *GetColumnName()));
- if (UseSource) {
- YQL_ENSURE(Source);
- Node = L(Node, BuildQuotedAtom(Pos, Source));
+ Node_ = Y(Reliable_ && !UseSource_ ? "Member" : "SqlColumn", "row", ColumnExpr_ ?
+ Y("EvaluateAtom", ColumnExpr_) : BuildQuotedAtom(Pos_, *GetColumnName()));
+ if (UseSource_) {
+ YQL_ENSURE(Source_);
+ Node_ = L(Node_, BuildQuotedAtom(Pos_, Source_));
}
}
- return Node->Init(ctx, src);
+ return Node_->Init(ctx, src);
}
void TColumnNode::SetUseSourceAsColumn() {
- YQL_ENSURE(!State.Test(ENodeState::Initialized)); /// should be not initialized or Aggregated already invalid
+ YQL_ENSURE(!State_.Test(ENodeState::Initialized)); /// should be not initialized or Aggregated already invalid
YQL_ENSURE(!IsAsterisk());
- UseSourceAsColumn = true;
+ UseSourceAsColumn_ = true;
}
void TColumnNode::ResetAsReliable() {
- Reliable = true;
+ Reliable_ = true;
}
void TColumnNode::SetAsNotReliable() {
- Reliable = false;
+ Reliable_ = false;
}
void TColumnNode::SetUseSource() {
- UseSource = true;
+ UseSource_ = true;
}
bool TColumnNode::IsUseSourceAsColumn() const {
- return UseSourceAsColumn;
+ return UseSourceAsColumn_;
}
bool TColumnNode::IsReliable() const {
- return Reliable;
+ return Reliable_;
}
TNodePtr TColumnNode::DoClone() const {
- YQL_ENSURE(!Node, "TColumnNode::Clone: Node should not be initialized");
- auto copy = ColumnExpr ? new TColumnNode(Pos, ColumnExpr, Source) : new TColumnNode(Pos, ColumnName, Source);
- copy->GroupKey = GroupKey;
- copy->Artificial = Artificial;
- copy->Reliable = Reliable;
- copy->UseSource = UseSource;
- copy->UseSourceAsColumn = UseSourceAsColumn;
+ YQL_ENSURE(!Node_, "TColumnNode::Clone: Node should not be initialized");
+ auto copy = ColumnExpr_ ? new TColumnNode(Pos_, ColumnExpr_, Source_) : new TColumnNode(Pos_, ColumnName_, Source_);
+ copy->GroupKey_ = GroupKey_;
+ copy->Artificial_ = Artificial_;
+ copy->Reliable_ = Reliable_;
+ copy->UseSource_ = UseSource_;
+ copy->UseSourceAsColumn_ = UseSourceAsColumn_;
return copy;
}
void TColumnNode::DoUpdateState() const {
- State.Set(ENodeState::Const, false);
- State.Set(ENodeState::Aggregated, GroupKey);
- State.Set(ENodeState::AggregationKey, GroupKey);
+ State_.Set(ENodeState::Const, false);
+ State_.Set(ENodeState::Aggregated, GroupKey_);
+ State_.Set(ENodeState::AggregationKey, GroupKey_);
}
TAstNode* TColumnNode::Translate(TContext& ctx) const {
- return Node->Translate(ctx);
+ return Node_->Translate(ctx);
}
void TColumnNode::ResetColumn(const TString& column, const TString& source) {
- YQL_ENSURE(!State.Test(ENodeState::Initialized)); /// should be not initialized
- Reliable = true;
- UseSource = false;
- UseSourceAsColumn = false;
- ColumnName = column;
- ColumnExpr = nullptr;
- Source = source;
+ YQL_ENSURE(!State_.Test(ENodeState::Initialized)); /// should be not initialized
+ Reliable_ = true;
+ UseSource_ = false;
+ UseSourceAsColumn_ = false;
+ ColumnName_ = column;
+ ColumnExpr_ = nullptr;
+ Source_ = source;
}
void TColumnNode::ResetColumn(const TNodePtr& column, const TString& source) {
- YQL_ENSURE(!State.Test(ENodeState::Initialized)); /// should be not initialized
- Reliable = true;
- UseSource = false;
- UseSourceAsColumn = false;
- ColumnName = "";
- ColumnExpr = column;
- Source = source;
+ YQL_ENSURE(!State_.Test(ENodeState::Initialized)); /// should be not initialized
+ Reliable_ = true;
+ UseSource_ = false;
+ UseSourceAsColumn_ = false;
+ ColumnName_ = "";
+ ColumnExpr_ = column;
+ Source_ = source;
}
const TString TColumnNode::Empty;
@@ -978,12 +978,12 @@ TAstNode* ITableKeys::Translate(TContext& ctx) const {
}
bool IAggregation::IsDistinct() const {
- return !DistinctKey.empty();
+ return !DistinctKey_.empty();
}
void IAggregation::DoUpdateState() const {
- State.Set(ENodeState::Aggregated, AggMode == EAggregateMode::Normal);
- State.Set(ENodeState::OverWindow, AggMode == EAggregateMode::OverWindow);
+ State_.Set(ENodeState::Aggregated, AggMode_ == EAggregateMode::Normal);
+ State_.Set(ENodeState::OverWindow, AggMode_ == EAggregateMode::OverWindow);
}
const TString* IAggregation::GetGenericKey() const {
@@ -995,11 +995,11 @@ void IAggregation::Join(IAggregation*) {
}
const TString& IAggregation::GetName() const {
- return Name;
+ return Name_;
}
IAggregation::IAggregation(TPosition pos, const TString& name, const TString& func, EAggregateMode aggMode)
- : INode(pos), Name(name), Func(func), AggMode(aggMode)
+ : INode(pos), Name_(name), Func_(func), AggMode_(aggMode)
{}
TAstNode* IAggregation::Translate(TContext& ctx) const {
@@ -1009,9 +1009,9 @@ TAstNode* IAggregation::Translate(TContext& ctx) const {
}
TNodePtr IAggregation::AggregationTraits(const TNodePtr& type) const {
- const bool distinct = AggMode == EAggregateMode::Distinct;
- const auto listType = distinct ? Y("ListType", Y("StructMemberType", Y("ListItemType", type), BuildQuotedAtom(Pos, DistinctKey))) : type;
- return distinct ? Q(Y(Q(Name), GetApply(listType), BuildQuotedAtom(Pos, DistinctKey))): Q(Y(Q(Name), GetApply(listType)));
+ const bool distinct = AggMode_ == EAggregateMode::Distinct;
+ const auto listType = distinct ? Y("ListType", Y("StructMemberType", Y("ListItemType", type), BuildQuotedAtom(Pos_, DistinctKey_))) : type;
+ return distinct ? Q(Y(Q(Name_), GetApply(listType), BuildQuotedAtom(Pos_, DistinctKey_))): Q(Y(Q(Name_), GetApply(listType)));
}
void IAggregation::AddFactoryArguments(TNodePtr& apply) const {
@@ -1023,8 +1023,8 @@ std::vector<ui32> IAggregation::GetFactoryColumnIndices() const {
}
TNodePtr IAggregation::WindowTraits(const TNodePtr& type) const {
- YQL_ENSURE(AggMode == EAggregateMode::OverWindow, "Windows traits is unavailable");
- return Q(Y(Q(Name), GetApply(type)));
+ YQL_ENSURE(AggMode_ == EAggregateMode::OverWindow, "Windows traits is unavailable");
+ return Q(Y(Q(Name_), GetApply(type)));
}
ISource::ISource(TPosition pos)
@@ -1039,13 +1039,13 @@ ISource::~ISource()
TSourcePtr ISource::CloneSource() const {
Y_DEBUG_ABORT_UNLESS(dynamic_cast<ISource*>(Clone().Get()), "Cloned node is no source");
TSourcePtr result = static_cast<ISource*>(Clone().Get());
- for (auto curFilter: Filters) {
- result->Filters.emplace_back(curFilter->Clone());
+ for (auto curFilter: Filters_) {
+ result->Filters_.emplace_back(curFilter->Clone());
}
for (int i = 0; i < static_cast<int>(EExprSeat::Max); ++i) {
- result->NamedExprs[i] = CloneContainer(NamedExprs[i]);
+ result->NamedExprs_[i] = CloneContainer(NamedExprs_[i]);
}
- result->FlattenColumns = FlattenColumns;
+ result->FlattenColumns_ = FlattenColumns_;
return result;
}
@@ -1062,7 +1062,7 @@ const TColumns* ISource::GetColumns() const {
}
void ISource::GetInputTables(TTableList& tableList) const {
- for (auto srcPtr: UsedSources) {
+ for (auto srcPtr: UsedSources_) {
srcPtr->GetInputTables(tableList);
}
return;
@@ -1070,7 +1070,7 @@ void ISource::GetInputTables(TTableList& tableList) const {
TMaybe<bool> ISource::AddColumn(TContext& ctx, TColumnNode& column) {
if (column.IsReliable()) {
- ctx.Error(Pos) << "Source does not allow column references";
+ ctx.Error(Pos_) << "Source does not allow column references";
}
return {};
}
@@ -1081,16 +1081,16 @@ void ISource::FinishColumns() {
bool ISource::AddFilter(TContext& ctx, TNodePtr filter) {
Y_UNUSED(ctx);
- Filters.push_back(filter);
+ Filters_.push_back(filter);
return true;
}
bool ISource::AddGroupKey(TContext& ctx, const TString& column) {
- if (!GroupKeys.insert(column).second) {
+ if (!GroupKeys_.insert(column).second) {
ctx.Error() << "Duplicate grouping column: " << column;
return false;
}
- OrderedGroupKeys.push_back(column);
+ OrderedGroupKeys_.push_back(column);
return true;
}
@@ -1101,7 +1101,7 @@ bool ISource::AddExpressions(TContext& ctx, const TVector<TNodePtr>& expressions
const auto& alias = expr->GetLabel();
const auto& columnNamePtr = expr->GetColumnName();
if (alias) {
- if (!ExprAliases.emplace(alias).second) {
+ if (!ExprAliases_.emplace(alias).second) {
ctx.Error(expr->GetPos()) << "Duplicate alias found: " << alias << " in " << exprSeat << " section";
return false;
}
@@ -1120,12 +1120,12 @@ bool ISource::AddExpressions(TContext& ctx, const TVector<TNodePtr>& expressions
ctx.Error(expr->GetPos()) << "Duplicate column name found: " << columnName << " in " << exprSeat << " section";
return false;
}
- if (!alias && ExprAliases.contains(columnName)) {
+ if (!alias && ExprAliases_.contains(columnName)) {
ctx.Error(expr->GetPos()) << "Collision between alias and column name: " << columnName << " in " << exprSeat << " section";
return false;
}
if (alias && exprSeat == EExprSeat::GroupBy) {
- auto columnAlias = GroupByColumnAliases.emplace(columnName, alias);
+ auto columnAlias = GroupByColumnAliases_.emplace(columnName, alias);
auto oldAlias = columnAlias.first->second;
if (columnAlias.second && oldAlias != alias) {
ctx.Error(expr->GetPos()) << "Alias for column not same, column: " << columnName <<
@@ -1140,21 +1140,21 @@ bool ISource::AddExpressions(TContext& ctx, const TVector<TNodePtr>& expressions
}
void ISource::SetFlattenByMode(const TString& mode) {
- FlattenMode = mode;
+ FlattenMode_ = mode;
}
void ISource::MarkFlattenColumns() {
- FlattenColumns = true;
+ FlattenColumns_ = true;
}
bool ISource::IsFlattenColumns() const {
- return FlattenColumns;
+ return FlattenColumns_;
}
TString ISource::MakeLocalName(const TString& name) {
- auto iter = GenIndexes.find(name);
- if (iter == GenIndexes.end()) {
- iter = GenIndexes.emplace(name, 0).first;
+ auto iter = GenIndexes_.find(name);
+ if (iter == GenIndexes_.end()) {
+ iter = GenIndexes_.emplace(name, 0).first;
}
TStringBuilder str;
str << name << iter->second;
@@ -1164,16 +1164,16 @@ TString ISource::MakeLocalName(const TString& name) {
bool ISource::AddAggregation(TContext& ctx, TAggregationPtr aggr) {
Y_UNUSED(ctx);
- Aggregations.push_back(aggr);
+ Aggregations_.push_back(aggr);
return true;
}
bool ISource::HasAggregations() const {
- return !Aggregations.empty() || !GroupKeys.empty();
+ return !Aggregations_.empty() || !GroupKeys_.empty();
}
void ISource::AddWindowSpecs(TWinSpecs winSpecs) {
- WinSpecs = winSpecs;
+ WinSpecs_ = winSpecs;
}
bool ISource::AddFuncOverWindow(TContext& ctx, TNodePtr expr) {
@@ -1183,41 +1183,41 @@ bool ISource::AddFuncOverWindow(TContext& ctx, TNodePtr expr) {
}
void ISource::AddTmpWindowColumn(const TString& column) {
- TmpWindowColumns.push_back(column);
+ TmpWindowColumns_.push_back(column);
}
const TVector<TString>& ISource::GetTmpWindowColumns() const {
- return TmpWindowColumns;
+ return TmpWindowColumns_;
}
void ISource::SetHoppingWindowSpec(THoppingWindowSpecPtr spec) {
- HoppingWindowSpec = spec;
+ HoppingWindowSpec_ = spec;
}
THoppingWindowSpecPtr ISource::GetHoppingWindowSpec() const {
- return HoppingWindowSpec;
+ return HoppingWindowSpec_;
}
TWindowSpecificationPtr ISource::FindWindowSpecification(TContext& ctx, const TString& windowName) const {
- auto winIter = WinSpecs.find(windowName);
- if (winIter == WinSpecs.end()) {
- ctx.Error(Pos) << "Can't refer to the window specification with name: " << windowName;
+ auto winIter = WinSpecs_.find(windowName);
+ if (winIter == WinSpecs_.end()) {
+ ctx.Error(Pos_) << "Can't refer to the window specification with name: " << windowName;
return {};
}
auto winSpec = winIter->second;
if (winSpec->Frame) {
- ctx.Error(Pos) << "Frame that not default is not supported yet for window: " << windowName;
+ ctx.Error(Pos_) << "Frame that not default is not supported yet for window: " << windowName;
return {};
}
return winSpec;
}
inline TVector<TNodePtr>& ISource::Expressions(EExprSeat exprSeat) {
- return NamedExprs[static_cast<size_t>(exprSeat)];
+ return NamedExprs_[static_cast<size_t>(exprSeat)];
}
inline const TVector<TNodePtr>& ISource::Expressions(EExprSeat exprSeat) const {
- return NamedExprs[static_cast<size_t>(exprSeat)];
+ return NamedExprs_[static_cast<size_t>(exprSeat)];
}
inline TNodePtr ISource::AliasOrColumn(const TNodePtr& node, bool withSource) {
@@ -1244,7 +1244,7 @@ bool ISource::AddAggregationOverWindow(TContext& ctx, const TString& windowName,
if (!FindWindowSpecification(ctx, windowName)) {
return false;
}
- AggregationOverWindow.emplace(windowName, func);
+ AggregationOverWindow_.emplace(windowName, func);
return true;
}
@@ -1252,7 +1252,7 @@ bool ISource::AddFuncOverWindow(TContext& ctx, const TString& windowName, TNodeP
if (!FindWindowSpecification(ctx, windowName)) {
return false;
}
- FuncOverWindow.emplace(windowName, func);
+ FuncOverWindow_.emplace(windowName, func);
return true;
}
@@ -1261,7 +1261,7 @@ bool ISource::IsCompositeSource() const {
}
bool ISource::IsGroupByColumn(const TString& column) const {
- return GroupKeys.contains(column);
+ return GroupKeys_.contains(column);
}
bool ISource::IsFlattenByColumns() const {
@@ -1302,8 +1302,8 @@ bool ISource::IsExprSeat(EExprSeat exprSeat, EExprType type) const {
}
TString ISource::GetGroupByColumnAlias(const TString& column) const {
- auto iter = GroupByColumnAliases.find(column);
- if (iter == GroupByColumnAliases.end()) {
+ auto iter = GroupByColumnAliases_.find(column);
+ if (iter == GroupByColumnAliases_.end()) {
return {};
}
return iter->second;
@@ -1314,11 +1314,11 @@ const TString* ISource::GetWindowName() const {
}
bool ISource::IsCalcOverWindow() const {
- return !AggregationOverWindow.empty() || !FuncOverWindow.empty();
+ return !AggregationOverWindow_.empty() || !FuncOverWindow_.empty();
}
bool ISource::IsOverWindowSource() const {
- return !WinSpecs.empty();
+ return !WinSpecs_.empty();
}
bool ISource::IsStream() const {
@@ -1354,28 +1354,28 @@ bool ISource::CalculateGroupingHint(TContext& ctx, const TVector<TString>& colum
}
TNodePtr ISource::BuildFilter(TContext& ctx, const TString& label, const TNodePtr& groundNode) {
- return Filters.empty() ? nullptr : Y(ctx.UseUnordered(*this) ? "OrderedFilter" : "Filter", label, BuildFilterLambda(groundNode));
+ return Filters_.empty() ? nullptr : Y(ctx.UseUnordered(*this) ? "OrderedFilter" : "Filter", label, BuildFilterLambda(groundNode));
}
TNodePtr ISource::BuildFilterLambda(const TNodePtr& groundNode) {
- if (Filters.empty()) {
- return BuildLambda(Pos, Y("row"), Y("Bool", Q("true")));
+ if (Filters_.empty()) {
+ return BuildLambda(Pos_, Y("row"), Y("Bool", Q("true")));
}
- YQL_ENSURE(Filters[0]->HasState(ENodeState::Initialized));
- TNodePtr filter(Filters[0]);
- for (ui32 i = 1; i < Filters.size(); ++i) {
- YQL_ENSURE(Filters[i]->HasState(ENodeState::Initialized));
- filter = Y("And", filter, Filters[i]);
+ YQL_ENSURE(Filters_[0]->HasState(ENodeState::Initialized));
+ TNodePtr filter(Filters_[0]);
+ for (ui32 i = 1; i < Filters_.size(); ++i) {
+ YQL_ENSURE(Filters_[i]->HasState(ENodeState::Initialized));
+ filter = Y("And", filter, Filters_[i]);
}
filter = Y("Coalesce", filter, Y("Bool", Q("false")));
if (groundNode) {
filter = Y("block", Q(L(groundNode, Y("return", filter))));
}
- return BuildLambda(Pos, Y("row"), filter);
+ return BuildLambda(Pos_, Y("row"), filter);
}
TNodePtr ISource::BuildFlattenByColumns(const TString& label) {
- auto columnsList = Y("FlattenByColumns", Q(FlattenMode), label);
+ auto columnsList = Y("FlattenByColumns", Q(FlattenMode_), label);
for (const auto& column: Expressions(EExprSeat::FlattenBy)) {
const auto columnNamePtr = column->GetColumnName();
YQL_ENSURE(columnNamePtr);
@@ -1398,7 +1398,7 @@ TNodePtr ISource::BuildPreaggregatedMap(TContext& ctx) {
ctx.Error(GetPos()) << "Missed columns for preaggregated map";
return nullptr;
}
- auto structObj = BuildAtom(Pos, "row", TNodeFlags::Default);
+ auto structObj = BuildAtom(Pos_, "row", TNodeFlags::Default);
for (const auto& exprNode: Expressions(EExprSeat::GroupBy)) {
const auto name = exprNode->GetLabel();
if (name) {
@@ -1412,28 +1412,28 @@ TNodePtr ISource::BuildPreaggregatedMap(TContext& ctx) {
TNodePtr ISource::BuildPrewindowMap(TContext& ctx, const TNodePtr& groundNode) {
Y_UNUSED(ctx);
- auto feed = BuildAtom(Pos, "row", TNodeFlags::Default);
+ auto feed = BuildAtom(Pos_, "row", TNodeFlags::Default);
for (const auto& exprNode: Expressions(EExprSeat::WindowPartitionBy)) {
const auto name = exprNode->GetLabel();
if (name) {
feed = Y("AddMember", feed, Q(name), GroundWithExpr(groundNode, exprNode));
}
}
- return Y(ctx.UseUnordered(*this) ? "OrderedFlatMap" : "FlatMap", "core", BuildLambda(Pos, Y("row"), Y("AsList", feed)));
+ return Y(ctx.UseUnordered(*this) ? "OrderedFlatMap" : "FlatMap", "core", BuildLambda(Pos_, Y("row"), Y("AsList", feed)));
}
TNodePtr ISource::BuildAggregation(const TString& label) {
- if (GroupKeys.empty() && Aggregations.empty() && !IsCompositeSource()) {
+ if (GroupKeys_.empty() && Aggregations_.empty() && !IsCompositeSource()) {
return nullptr;
}
auto keysTuple = Y();
- for (const auto& key: GroupKeys) {
- keysTuple = L(keysTuple, BuildQuotedAtom(Pos, key));
+ for (const auto& key: GroupKeys_) {
+ keysTuple = L(keysTuple, BuildQuotedAtom(Pos_, key));
}
std::map<std::pair<bool, TString>, std::vector<IAggregation*>> genericAggrs;
- for (const auto& aggr: Aggregations) {
+ for (const auto& aggr: Aggregations_) {
if (const auto key = aggr->GetGenericKey()) {
genericAggrs[{aggr->IsDistinct(), *key}].emplace_back(aggr.Get());
}
@@ -1447,36 +1447,36 @@ TNodePtr ISource::BuildAggregation(const TString& label) {
const auto listType = Y("TypeOf", label);
auto aggrArgs = Y();
- for (const auto& aggr: Aggregations) {
+ for (const auto& aggr: Aggregations_) {
if (const auto traits = aggr->AggregationTraits(listType))
aggrArgs = L(aggrArgs, traits);
}
- if (HoppingWindowSpec) {
+ if (HoppingWindowSpec_) {
auto hoppingTraits = Y(
"HoppingTraits",
Y("ListItemType", listType),
- BuildLambda(Pos, Y("row"), HoppingWindowSpec->TimeExtractor),
- HoppingWindowSpec->Hop,
- HoppingWindowSpec->Interval,
- HoppingWindowSpec->Delay,
+ BuildLambda(Pos_, Y("row"), HoppingWindowSpec_->TimeExtractor),
+ HoppingWindowSpec_->Hop,
+ HoppingWindowSpec_->Interval,
+ HoppingWindowSpec_->Delay,
Q("False"),
Q("v1"));
return Y("Aggregate", label, Q(keysTuple), Q(aggrArgs),
- Q(Y(Q(Y(BuildQuotedAtom(Pos, "hopping"), hoppingTraits)))));
+ Q(Y(Q(Y(BuildQuotedAtom(Pos_, "hopping"), hoppingTraits)))));
}
return Y("Aggregate", label, Q(keysTuple), Q(aggrArgs));
}
TMaybe<TString> ISource::FindColumnMistype(const TString& name) const {
- auto result = FindMistypeIn(GroupKeys, name);
- return result ? result : FindMistypeIn(ExprAliases, name);
+ auto result = FindMistypeIn(GroupKeys_, name);
+ return result ? result : FindMistypeIn(ExprAliases_, name);
}
void ISource::AddDependentSource(ISource* usedSource) {
- UsedSources.push_back(usedSource);
+ UsedSources_.push_back(usedSource);
}
/// \todo fill it
@@ -1500,14 +1500,14 @@ public:
};
size_t GetWindowByName(const TString& windowName) {
- auto iter = WindowMap.find(windowName);
- return iter != WindowMap.end() ? iter->second : 0;
+ auto iter = WindowMap_.find(windowName);
+ return iter != WindowMap_.end() ? iter->second : 0;
}
size_t CreateWindowBySpec(const TString& windowName, const TWindowSpecificationPtr& winSpec) {
Y_UNUSED(windowName);
auto curPartitions = winSpec->Partitions;
auto curOrderBy = winSpec->OrderBy;
- auto partition = std::find_if(Partitions.begin(), Partitions.end(), [&curPartitions, &curOrderBy](const TWinPartition& other) {
+ auto partition = std::find_if(Partitions_.begin(), Partitions_.end(), [&curPartitions, &curOrderBy](const TWinPartition& other) {
/// \todo this compare is too strong;
if (curPartitions != other.Partitions) {
return false;
@@ -1526,38 +1526,38 @@ public:
}
return true;
});
- if (partition == Partitions.end()) {
+ if (partition == Partitions_.end()) {
TWinPartition newPartition;
newPartition.Partitions = curPartitions;
newPartition.OrderBy = curOrderBy;
- Partitions.emplace_back(newPartition);
- partition = Partitions.end() - 1;
+ Partitions_.emplace_back(newPartition);
+ partition = Partitions_.end() - 1;
}
/// \todo add smart frame search and creation
auto frame = partition->FrameIds.begin();
if (frame == partition->FrameIds.end()) {
YQL_ENSURE(!winSpec->Frame, "Supported only default frame yet!");
- Evals.push_back({});
- const size_t curEval = Evals.size();
+ Evals_.push_back({});
+ const size_t curEval = Evals_.size();
partition->FrameIds.push_back(curEval);
frame = partition->FrameIds.end() - 1;
}
return *frame;
}
void AddAggregationFunc(size_t windowId, TAggregationPtr func) {
- Evals[windowId-1].Aggregations.push_back(func);
+ Evals_[windowId-1].Aggregations.push_back(func);
}
void AddSimpleFunc(size_t windowId, TNodePtr func) {
- Evals[windowId-1].Functions.push_back(func);
+ Evals_[windowId-1].Functions.push_back(func);
}
const TVector<TWinPartition>& GetPartitions() {
- return Partitions;
+ return Partitions_;
}
const EvalOverWindow& GetEvals(size_t frameId) {
- YQL_ENSURE(frameId && frameId <= Evals.size());
- return Evals[frameId-1];
+ YQL_ENSURE(frameId && frameId <= Evals_.size());
+ return Evals_[frameId-1];
}
TNodePtr BuildFrame(TPosition pos, size_t frameId) {
Y_UNUSED(frameId);
@@ -1566,28 +1566,28 @@ public:
}
private:
- TVector<TWinPartition> Partitions;
- TMap<TString, size_t> WindowMap;
- TVector<EvalOverWindow> Evals;
+ TVector<TWinPartition> Partitions_;
+ TMap<TString, size_t> WindowMap_;
+ TVector<EvalOverWindow> Evals_;
};
TNodePtr ISource::BuildCalcOverWindow(TContext& ctx, const TString& label, const TNodePtr& ground) {
- if (AggregationOverWindow.empty() && FuncOverWindow.empty()) {
+ if (AggregationOverWindow_.empty() && FuncOverWindow_.empty()) {
return {};
}
WindowFuncSupp winSupp;
- for (auto iter: AggregationOverWindow) {
+ for (auto iter: AggregationOverWindow_) {
auto windowId = winSupp.GetWindowByName(iter.first);
if (!windowId) {
- windowId = winSupp.CreateWindowBySpec(iter.first, WinSpecs.at(iter.first));
+ windowId = winSupp.CreateWindowBySpec(iter.first, WinSpecs_.at(iter.first));
}
winSupp.AddAggregationFunc(windowId, iter.second);
}
- for (auto iter: FuncOverWindow) {
+ for (auto iter: FuncOverWindow_) {
auto windowId = winSupp.GetWindowByName(iter.first);
if (!windowId) {
- windowId = winSupp.CreateWindowBySpec(iter.first, WinSpecs.at(iter.first));
+ windowId = winSupp.CreateWindowBySpec(iter.first, WinSpecs_.at(iter.first));
}
winSupp.AddSimpleFunc(windowId, iter.second);
}
@@ -1685,7 +1685,7 @@ bool ISource::DoInit(TContext& ctx, ISource* src) {
}
bool ISource::InitFilters(TContext& ctx) {
- for (auto& filter: Filters) {
+ for (auto& filter: Filters_) {
if (!filter->Init(ctx, this)) {
return false;
}
@@ -1725,7 +1725,7 @@ void ISource::FillSortParts(const TVector<TSortSpecificationPtr>& orderBy, TNode
expr = Q(exprList);
}
expr = sortKeySelector ? expr->Y("block", expr->Q(expr->L(sortKeySelector, expr->Y("return", expr)))) : expr;
- sortKeySelector = BuildLambda(Pos, Y("row"), expr);
+ sortKeySelector = BuildLambda(Pos_, Y("row"), expr);
}
TNodePtr ISource::BuildSortSpec(const TVector<TSortSpecificationPtr>& orderBy, const TString& label, const TNodePtr& ground, bool traits) {
@@ -1881,47 +1881,47 @@ public:
TLiteralNode::TLiteralNode(TPosition pos, bool isNull)
: TAstListNode(pos)
- , Null(isNull)
- , Void(!isNull)
+ , Null_(isNull)
+ , Void_(!isNull)
{
Add(isNull ? "Null" : "Void");
}
TLiteralNode::TLiteralNode(TPosition pos, const TString& type, const TString& value)
: TAstListNode(pos)
- , Null(false)
- , Void(false)
- , Type(type)
- , Value(value)
+ , Null_(false)
+ , Void_(false)
+ , Type_(type)
+ , Value_(value)
{
- Add(Type, BuildQuotedAtom(Pos, Value));
+ Add(Type_, BuildQuotedAtom(Pos_, Value_));
}
TLiteralNode::TLiteralNode(TPosition pos, const TString& value, ui32 nodeFlags)
: TAstListNode(pos)
- , Null(false)
- , Void(false)
- , Type("String")
- , Value(value)
+ , Null_(false)
+ , Void_(false)
+ , Type_("String")
+ , Value_(value)
{
- Add(Type, BuildQuotedAtom(pos, Value, nodeFlags));
+ Add(Type_, BuildQuotedAtom(pos, Value_, nodeFlags));
}
bool TLiteralNode::IsNull() const {
- return Null;
+ return Null_;
}
const TString* TLiteralNode::GetLiteral(const TString& type) const {
- return type == Type ? &Value : nullptr;
+ return type == Type_ ? &Value_ : nullptr;
}
void TLiteralNode::DoUpdateState() const {
- State.Set(ENodeState::Const);
+ State_.Set(ENodeState::Const);
}
TNodePtr TLiteralNode::DoClone() const {
- auto res = (Null || Void) ? MakeIntrusive<TLiteralNode>(Pos, Null) : MakeIntrusive<TLiteralNode>(Pos, Type, Value);
- res->Nodes = Nodes;
+ auto res = (Null_ || Void_) ? MakeIntrusive<TLiteralNode>(Pos_, Null_) : MakeIntrusive<TLiteralNode>(Pos_, Type_, Value_);
+ res->Nodes_ = Nodes_;
return res;
}
@@ -1932,15 +1932,15 @@ TLiteralNumberNode<T>::TLiteralNumberNode(TPosition pos, const TString& type, co
template<typename T>
TNodePtr TLiteralNumberNode<T>::DoClone() const {
- return new TLiteralNumberNode<T>(Pos, Type, Value);
+ return new TLiteralNumberNode<T>(Pos_, Type_, Value_);
}
template<typename T>
bool TLiteralNumberNode<T>::DoInit(TContext& ctx, ISource* src) {
Y_UNUSED(src);
T val;
- if (!TryFromString(Value, val)) {
- ctx.Error(Pos) << "Failed to convert string: " << Value << " to " << Type << " value";
+ if (!TryFromString(Value_, val)) {
+ ctx.Error(Pos_) << "Failed to convert string: " << Value_ << " to " << Type_ << " value";
return false;
}
return true;
@@ -2005,49 +2005,49 @@ TDeferredAtom::TDeferredAtom()
TDeferredAtom::TDeferredAtom(TPosition pos, const TString& str)
{
- Node = BuildQuotedAtom(pos, str);
- Explicit = str;
- Repr = str;
+ Node_ = BuildQuotedAtom(pos, str);
+ Explicit_ = str;
+ Repr_ = str;
}
TDeferredAtom::TDeferredAtom(TNodePtr node, TContext& ctx)
{
- Node = node;
- Repr = ctx.MakeName("DeferredAtom");
+ Node_ = node;
+ Repr_ = ctx.MakeName("DeferredAtom");
}
const TString* TDeferredAtom::GetLiteral() const {
- return Explicit.Get();
+ return Explicit_.Get();
}
TNodePtr TDeferredAtom::Build() const {
- return Node;
+ return Node_;
}
TString TDeferredAtom::GetRepr() const {
- return Repr;
+ return Repr_;
}
bool TDeferredAtom::Empty() const {
- return !Node || Repr.empty();
+ return !Node_ || Repr_.empty();
}
TTupleNode::TTupleNode(TPosition pos, const TVector<TNodePtr>& exprs)
: TAstListNode(pos)
- , Exprs(exprs)
+ , Exprs_(exprs)
{}
bool TTupleNode::IsEmpty() const {
- return Exprs.empty();
+ return Exprs_.empty();
}
const TVector<TNodePtr>& TTupleNode::Elements() const {
- return Exprs;
+ return Exprs_;
}
bool TTupleNode::DoInit(TContext& ctx, ISource* src) {
auto node(Y());
- for (auto& expr: Exprs) {
+ for (auto& expr: Exprs_) {
if (expr->GetLabel()) {
ctx.Error(expr->GetPos()) << "Tuple does not allow named members";
return false;
@@ -2059,15 +2059,15 @@ bool TTupleNode::DoInit(TContext& ctx, ISource* src) {
}
size_t TTupleNode::GetTupleSize() const {
- return Exprs.size();
+ return Exprs_.size();
}
TNodePtr TTupleNode::GetTupleElement(size_t index) const {
- return Exprs[index];
+ return Exprs_[index];
}
TNodePtr TTupleNode::DoClone() const {
- return new TTupleNode(Pos, CloneContainer(Exprs));
+ return new TTupleNode(Pos_, CloneContainer(Exprs_));
}
TNodePtr BuildTuple(TPosition pos, const TVector<TNodePtr>& exprs) {
@@ -2076,24 +2076,24 @@ TNodePtr BuildTuple(TPosition pos, const TVector<TNodePtr>& exprs) {
TStructNode::TStructNode(TPosition pos, const TVector<TNodePtr>& exprs)
: TAstListNode(pos)
- , Exprs(exprs)
+ , Exprs_(exprs)
{}
bool TStructNode::DoInit(TContext& ctx, ISource* src) {
- Nodes.push_back(BuildAtom(Pos, "AsStruct", TNodeFlags::Default));
- for (const auto& expr : Exprs) {
+ Nodes_.push_back(BuildAtom(Pos_, "AsStruct", TNodeFlags::Default));
+ for (const auto& expr : Exprs_) {
const auto& label = expr->GetLabel();
if (!label) {
ctx.Error(expr->GetPos()) << "Structure does not allow anonymous members";
return false;
}
- Nodes.push_back(Q(Y(BuildQuotedAtom(expr->GetPos(), label), expr)));
+ Nodes_.push_back(Q(Y(BuildQuotedAtom(expr->GetPos(), label), expr)));
}
return TAstListNode::DoInit(ctx, src);
}
TNodePtr TStructNode::DoClone() const {
- return new TStructNode(Pos, CloneContainer(Exprs));
+ return new TStructNode(Pos_, CloneContainer(Exprs_));
}
TNodePtr BuildStructure(TPosition pos, const TVector<TNodePtr>& exprs) {
@@ -2102,11 +2102,11 @@ TNodePtr BuildStructure(TPosition pos, const TVector<TNodePtr>& exprs) {
TListOfNamedNodes::TListOfNamedNodes(TPosition pos, TVector<TNodePtr>&& exprs)
: INode(pos)
- , Exprs(std::move(exprs))
+ , Exprs_(std::move(exprs))
{}
TVector<TNodePtr>* TListOfNamedNodes::ContentListPtr() {
- return &Exprs;
+ return &Exprs_;
}
TAstNode* TListOfNamedNodes::Translate(TContext& ctx) const {
@@ -2128,13 +2128,13 @@ const char* const TArgPlaceholderNode::ProcessRow = "$ROW";
TArgPlaceholderNode::TArgPlaceholderNode(TPosition pos, const TString &name) :
INode(pos),
- Name(name)
+ Name_(name)
{
}
bool TArgPlaceholderNode::DoInit(TContext& ctx, ISource* src) {
Y_UNUSED(src);
- ctx.Error(Pos) << Name << " can't be used as a part of expression.";
+ ctx.Error(Pos_) << Name_ << " can't be used as a part of expression.";
return false;
}
@@ -2144,7 +2144,7 @@ TAstNode* TArgPlaceholderNode::Translate(TContext& ctx) const {
}
TString TArgPlaceholderNode::GetName() const {
- return Name;
+ return Name_;
}
TNodePtr TArgPlaceholderNode::DoClone() const {
@@ -2159,45 +2159,45 @@ class TAccessNode: public INode {
public:
TAccessNode(TPosition pos, const TVector<TIdPart>& ids, bool isLookup)
: INode(pos)
- , Ids(ids)
- , IsLookup(isLookup)
- , ColumnOnly(false)
- , IsColumnRequired(false)
+ , Ids_(ids)
+ , IsLookup_(isLookup)
+ , ColumnOnly_(false)
+ , IsColumnRequired_(false)
{
- Y_DEBUG_ABORT_UNLESS(Ids.size() > 1);
- Y_DEBUG_ABORT_UNLESS(Ids[0].Expr);
- auto column = dynamic_cast<TColumnNode*>(Ids[0].Expr.Get());
+ Y_DEBUG_ABORT_UNLESS(Ids_.size() > 1);
+ Y_DEBUG_ABORT_UNLESS(Ids_[0].Expr);
+ auto column = dynamic_cast<TColumnNode*>(Ids_[0].Expr.Get());
if (column) {
ui32 idx = 1;
TString source;
- if (Ids.size() > 2) {
- source = Ids[idx].Name;
+ if (Ids_.size() > 2) {
+ source = Ids_[idx].Name;
++idx;
}
- ColumnOnly = !IsLookup && Ids.size() < 4;
- if (ColumnOnly && Ids[idx].Expr) {
- column->ResetColumn(Ids[idx].Expr, source);
+ ColumnOnly_ = !IsLookup_ && Ids_.size() < 4;
+ if (ColumnOnly_ && Ids_[idx].Expr) {
+ column->ResetColumn(Ids_[idx].Expr, source);
} else {
- column->ResetColumn(Ids[idx].Name, source);
+ column->ResetColumn(Ids_[idx].Name, source);
}
}
}
void AssumeColumn() override {
- IsColumnRequired = true;
+ IsColumnRequired_ = true;
}
TMaybe<std::pair<TString, TString>> TryMakeClusterAndTable(TContext& ctx, bool& hasErrors) {
hasErrors = false;
- if (!ColumnOnly) {
+ if (!ColumnOnly_) {
return Nothing();
}
ui32 idx = 1;
TString cluster;
- if (Ids.size() > 2) {
- cluster = Ids[idx].Name;
+ if (Ids_.size() > 2) {
+ cluster = Ids_[idx].Name;
++idx;
}
@@ -2212,7 +2212,7 @@ public:
return Nothing();
}
- auto tableName = Ids[idx].Name;
+ auto tableName = Ids_[idx].Name;
if (tableName.empty()) {
return Nothing();
}
@@ -2234,28 +2234,28 @@ public:
}
TMaybe<TString> TryMakeTable() {
- if (!ColumnOnly) {
+ if (!ColumnOnly_) {
return Nothing();
}
ui32 idx = 1;
- if (Ids.size() > 2) {
+ if (Ids_.size() > 2) {
return Nothing();
}
- return Ids[idx].Name;
+ return Ids_[idx].Name;
}
const TString* GetColumnName() const override {
- return ColumnOnly ? Ids[0].Expr->GetColumnName() : nullptr;
+ return ColumnOnly_ ? Ids_[0].Expr->GetColumnName() : nullptr;
}
const TString* GetSourceName() const override {
- return Ids[0].Expr->GetSourceName();
+ return Ids_[0].Expr->GetSourceName();
}
bool DoInit(TContext& ctx, ISource* src) override {
- auto expr = Ids[0].Expr;
+ auto expr = Ids_[0].Expr;
const TPosition pos(expr->GetPos());
if (expr->IsAsterisk()) {
ctx.Error(pos) << "Asterisk column does not allow any access";
@@ -2264,7 +2264,7 @@ public:
if (!expr->Init(ctx, src)) {
return false;
}
- for (auto& id: Ids) {
+ for (auto& id: Ids_) {
if (id.Expr && !id.Expr->Init(ctx, src)) {
return false;
}
@@ -2273,36 +2273,36 @@ public:
auto column = dynamic_cast<TColumnNode*>(expr.Get());
if (column) {
const bool useSourceAsColumn = column->IsUseSourceAsColumn();
- ColumnOnly &= !useSourceAsColumn;
- if (IsColumnRequired && !ColumnOnly) {
+ ColumnOnly_ &= !useSourceAsColumn;
+ if (IsColumnRequired_ && !ColumnOnly_) {
ctx.Error(pos) << "Please use a full form (corellation.struct.field) or an alias (struct.field as alias) to access struct's field in the GROUP BY";
return false;
}
- if (Ids.size() > 2) {
- if (!CheckColumnId(pos, ctx, Ids[idx], ColumnOnly ? "Correlation" : "Column", true)) {
+ if (Ids_.size() > 2) {
+ if (!CheckColumnId(pos, ctx, Ids_[idx], ColumnOnly_ ? "Correlation" : "Column", true)) {
return false;
}
++idx;
}
if (!useSourceAsColumn) {
- if (!IsLookup && !CheckColumnId(pos, ctx, Ids[idx], ColumnOnly ? "Column" : "Member", false)) {
+ if (!IsLookup_ && !CheckColumnId(pos, ctx, Ids_[idx], ColumnOnly_ ? "Column" : "Member", false)) {
return false;
}
++idx;
}
}
- for (; idx < Ids.size(); ++idx) {
- const auto& id = Ids[idx];
+ for (; idx < Ids_.size(); ++idx) {
+ const auto& id = Ids_[idx];
if (!id.Name.empty()) {
- expr = Y("SqlAccess", Q("struct"), expr, id.Expr ? Y("EvaluateAtom", id.Expr) : BuildQuotedAtom(Pos, id.Name));
- AccessOpName = "AccessStructMember";
+ expr = Y("SqlAccess", Q("struct"), expr, id.Expr ? Y("EvaluateAtom", id.Expr) : BuildQuotedAtom(Pos_, id.Name));
+ AccessOpName_ = "AccessStructMember";
} else if (id.Expr) {
expr = Y("SqlAccess", Q("dict"), expr, id.Expr);
- AccessOpName = "AccessDictMember";
+ AccessOpName_ = "AccessDictMember";
} else if (id.Pos >= 0) {
expr = Y("SqlAccess", Q("tuple"), expr, Q(ToString(id.Pos)));
- AccessOpName = "AccessTupleElement";
+ AccessOpName_ = "AccessTupleElement";
} else {
continue;
}
@@ -2310,41 +2310,41 @@ public:
if (ctx.PragmaYsonAutoConvert || ctx.PragmaYsonStrict) {
auto ysonOptions = Y();
if (ctx.PragmaYsonAutoConvert) {
- ysonOptions->Add(BuildQuotedAtom(Pos, "yson_auto_convert"));
+ ysonOptions->Add(BuildQuotedAtom(Pos_, "yson_auto_convert"));
}
if (ctx.PragmaYsonStrict) {
- ysonOptions->Add(BuildQuotedAtom(Pos, "yson_strict"));
+ ysonOptions->Add(BuildQuotedAtom(Pos_, "yson_strict"));
}
expr->Add(Q(ysonOptions));
}
}
- Node = expr;
+ Node_ = expr;
return true;
}
TAstNode* Translate(TContext& ctx) const override {
- Y_DEBUG_ABORT_UNLESS(Node);
- return Node->Translate(ctx);
+ Y_DEBUG_ABORT_UNLESS(Node_);
+ return Node_->Translate(ctx);
}
TPtr DoClone() const override {
- YQL_ENSURE(!Node, "TAccessNode::Clone: Node should not be initialized");
+ YQL_ENSURE(!Node_, "TAccessNode::Clone: Node should not be initialized");
TVector<TIdPart> cloneIds;
- cloneIds.reserve(Ids.size());
- for (const auto& id: Ids) {
+ cloneIds.reserve(Ids_.size());
+ for (const auto& id: Ids_) {
cloneIds.emplace_back(id.Clone());
}
- auto copy = new TAccessNode(Pos, cloneIds, IsLookup);
- copy->ColumnOnly = ColumnOnly;
+ auto copy = new TAccessNode(Pos_, cloneIds, IsLookup_);
+ copy->ColumnOnly_ = ColumnOnly_;
return copy;
}
protected:
void DoUpdateState() const override {
- State.Set(ENodeState::Const, Ids[0].Expr->IsConstant());
- State.Set(ENodeState::Aggregated, Ids[0].Expr->IsAggregated());
- State.Set(ENodeState::AggregationKey, Ids[0].Expr->HasState(ENodeState::AggregationKey));
- State.Set(ENodeState::OverWindow, Ids[0].Expr->IsOverWindow());
+ State_.Set(ENodeState::Const, Ids_[0].Expr->IsConstant());
+ State_.Set(ENodeState::Aggregated, Ids_[0].Expr->IsAggregated());
+ State_.Set(ENodeState::AggregationKey, Ids_[0].Expr->HasState(ENodeState::AggregationKey));
+ State_.Set(ENodeState::OverWindow, Ids_[0].Expr->IsOverWindow());
}
bool CheckColumnId(TPosition pos, TContext& ctx, const TIdPart& id, const TString& where, bool checkLookup) {
@@ -2364,16 +2364,16 @@ protected:
}
TString GetOpName() const override {
- return AccessOpName;
+ return AccessOpName_;
}
private:
- TNodePtr Node;
- TVector<TIdPart> Ids;
- bool IsLookup;
- bool ColumnOnly;
- bool IsColumnRequired;
- TString AccessOpName;
+ TNodePtr Node_;
+ TVector<TIdPart> Ids_;
+ bool IsLookup_;
+ bool ColumnOnly_;
+ bool IsColumnRequired_;
+ TString AccessOpName_;
};
TNodePtr BuildAccess(TPosition pos, const TVector<INode::TIdPart>& ids, bool isLookup) {
@@ -2422,14 +2422,14 @@ class TCastNode: public TAstListNode {
public:
TCastNode(TPosition pos, TNodePtr expr, const TString& typeName, const TString& paramOne, const TString& paramTwo)
: TAstListNode(pos)
- , Expr(expr)
- , NormalizedTypeName(TypeByAlias(typeName))
- , ParamOne(paramOne)
- , ParamTwo(paramTwo)
+ , Expr_(expr)
+ , NormalizedTypeName_(TypeByAlias(typeName))
+ , ParamOne_(paramOne)
+ , ParamTwo_(paramTwo)
{}
const TString* GetSourceName() const override {
- return Expr->GetSourceName();
+ return Expr_->GetSourceName();
}
TString GetOpName() const override {
@@ -2437,39 +2437,39 @@ public:
}
void DoUpdateState() const override {
- State.Set(ENodeState::Const, Expr->IsConstant());
- State.Set(ENodeState::Aggregated, Expr->IsAggregated());
- State.Set(ENodeState::OverWindow, Expr->IsOverWindow());
+ State_.Set(ENodeState::Const, Expr_->IsConstant());
+ State_.Set(ENodeState::Aggregated, Expr_->IsAggregated());
+ State_.Set(ENodeState::OverWindow, Expr_->IsOverWindow());
}
TPtr DoClone() const final {
- return new TCastNode(Pos, Expr->Clone(), NormalizedTypeName, ParamOne, ParamTwo);
+ return new TCastNode(Pos_, Expr_->Clone(), NormalizedTypeName_, ParamOne_, ParamTwo_);
}
bool DoInit(TContext& ctx, ISource* src) override;
private:
- TNodePtr Expr;
- const TString NormalizedTypeName;
- const TString ParamOne, ParamTwo;
+ TNodePtr Expr_;
+ const TString NormalizedTypeName_;
+ const TString ParamOne_, ParamTwo_;
};
template <>
bool TCastNode<false>::DoInit(TContext& ctx, ISource* src) {
- if (Expr->IsNull()) {
- if (ParamOne.empty() && ParamTwo.empty()) {
- Add("Nothing", Y("OptionalType", Y("DataType", Q(NormalizedTypeName))));
- } else if (ParamTwo.empty()) {
- Add("Nothing", Y("OptionalType", Y("DataType", Q(NormalizedTypeName), Q(ParamOne))));
+ if (Expr_->IsNull()) {
+ if (ParamOne_.empty() && ParamTwo_.empty()) {
+ Add("Nothing", Y("OptionalType", Y("DataType", Q(NormalizedTypeName_))));
+ } else if (ParamTwo_.empty()) {
+ Add("Nothing", Y("OptionalType", Y("DataType", Q(NormalizedTypeName_), Q(ParamOne_))));
} else {
- Add("Nothing", Y("OptionalType", Y("DataType", Q(NormalizedTypeName), Q(ParamOne), Q(ParamTwo))));
+ Add("Nothing", Y("OptionalType", Y("DataType", Q(NormalizedTypeName_), Q(ParamOne_), Q(ParamTwo_))));
}
} else {
- if (ParamOne.empty() && ParamTwo.empty()) {
- Add("Cast", Expr, Q(NormalizedTypeName));
- } else if (ParamTwo.empty()) {
- Add("Cast", Expr, Q(NormalizedTypeName), Q(ParamOne));
+ if (ParamOne_.empty() && ParamTwo_.empty()) {
+ Add("Cast", Expr_, Q(NormalizedTypeName_));
+ } else if (ParamTwo_.empty()) {
+ Add("Cast", Expr_, Q(NormalizedTypeName_), Q(ParamOne_));
} else {
- Add("Cast", Expr, Q(NormalizedTypeName), Q(ParamOne), Q(ParamTwo));
+ Add("Cast", Expr_, Q(NormalizedTypeName_), Q(ParamOne_), Q(ParamTwo_));
}
}
return TAstListNode::DoInit(ctx, src);
@@ -2477,21 +2477,21 @@ bool TCastNode<false>::DoInit(TContext& ctx, ISource* src) {
template <>
bool TCastNode<true>::DoInit(TContext& ctx, ISource* src) {
- if (Expr->IsNull()) {
- if (ParamOne.empty() && ParamTwo.empty()) {
- Add("Nothing", Y("OptionalType", Y("DataType", Q(NormalizedTypeName))));
- } else if (ParamTwo.empty()) {
- Add("Nothing", Y("OptionalType", Y("DataType", Q(NormalizedTypeName), Q(ParamOne))));
+ if (Expr_->IsNull()) {
+ if (ParamOne_.empty() && ParamTwo_.empty()) {
+ Add("Nothing", Y("OptionalType", Y("DataType", Q(NormalizedTypeName_))));
+ } else if (ParamTwo_.empty()) {
+ Add("Nothing", Y("OptionalType", Y("DataType", Q(NormalizedTypeName_), Q(ParamOne_))));
} else {
- Add("Nothing", Y("OptionalType", Y("DataType", Q(NormalizedTypeName), Q(ParamOne), Q(ParamTwo))));
+ Add("Nothing", Y("OptionalType", Y("DataType", Q(NormalizedTypeName_), Q(ParamOne_), Q(ParamTwo_))));
}
} else {
- if (ParamOne.empty() && ParamTwo.empty()) {
- Add("BitCast", Expr, Q(NormalizedTypeName));
- } else if (ParamTwo.empty()) {
- Add("BitCast", Expr, Q(NormalizedTypeName), Q(ParamOne));
+ if (ParamOne_.empty() && ParamTwo_.empty()) {
+ Add("BitCast", Expr_, Q(NormalizedTypeName_));
+ } else if (ParamTwo_.empty()) {
+ Add("BitCast", Expr_, Q(NormalizedTypeName_), Q(ParamOne_));
} else {
- Add("BitCast", Expr, Q(NormalizedTypeName), Q(ParamOne), Q(ParamTwo));
+ Add("BitCast", Expr_, Q(NormalizedTypeName_), Q(ParamOne_), Q(ParamTwo_));
}
}
return TAstListNode::DoInit(ctx, src);
@@ -2557,8 +2557,8 @@ public:
TBinaryOpNode(TPosition pos, const TString& opName, TNodePtr a, TNodePtr b);
TNodePtr DoClone() const final {
- YQL_ENSURE(Args.size() == 2);
- return new TBinaryOpNode(Pos, OpName, Args[0]->Clone(), Args[1]->Clone());
+ YQL_ENSURE(Args_.size() == 2);
+ return new TBinaryOpNode(Pos_, OpName_, Args_[0]->Clone(), Args_[1]->Clone());
}
};
@@ -2581,35 +2581,35 @@ class TCalcOverWindow final: public INode {
public:
TCalcOverWindow(TPosition pos, const TString& windowName, TNodePtr node)
: INode(pos)
- , WindowName(windowName)
- , FuncNode(node)
+ , WindowName_(windowName)
+ , FuncNode_(node)
{}
TAstNode* Translate(TContext& ctx) const override {
- return FuncNode->Translate(ctx);
+ return FuncNode_->Translate(ctx);
}
bool DoInit(TContext& ctx, ISource* src) override {
YQL_ENSURE(src);
- TSourcePtr overWindowSource = BuildOverWindowSource(ctx.Pos(), WindowName, src);
- if (!FuncNode->Init(ctx, overWindowSource.Get())) {
+ TSourcePtr overWindowSource = BuildOverWindowSource(ctx.Pos(), WindowName_, src);
+ if (!FuncNode_->Init(ctx, overWindowSource.Get())) {
return false;
}
return true;
}
TPtr DoClone() const final {
- return new TCalcOverWindow(Pos, WindowName, SafeClone(FuncNode));
+ return new TCalcOverWindow(Pos_, WindowName_, SafeClone(FuncNode_));
}
void DoUpdateState() const override {
- State.Set(ENodeState::Const, FuncNode->IsConstant());
- State.Set(ENodeState::Aggregated, FuncNode->IsAggregated());
- State.Set(ENodeState::OverWindow, true);
+ State_.Set(ENodeState::Const, FuncNode_->IsConstant());
+ State_.Set(ENodeState::Aggregated, FuncNode_->IsAggregated());
+ State_.Set(ENodeState::OverWindow, true);
}
protected:
- const TString WindowName;
- TNodePtr FuncNode;
+ const TString WindowName_;
+ TNodePtr FuncNode_;
};
TNodePtr BuildCalcOverWindow(TPosition pos, const TString& windowName, TNodePtr call) {
@@ -2620,37 +2620,37 @@ class TYsonOptionsNode final: public INode {
public:
TYsonOptionsNode(TPosition pos, bool autoConvert, bool strict)
: INode(pos)
- , AutoConvert(autoConvert)
- , Strict(strict)
+ , AutoConvert_(autoConvert)
+ , Strict_(strict)
{
auto udf = Y("Udf", Q("Yson.Options"));
auto autoConvertNode = BuildLiteralBool(pos, autoConvert ? "true" : "false");
autoConvertNode->SetLabel("AutoConvert");
auto strictNode = BuildLiteralBool(pos, strict ? "true" : "false");
strictNode->SetLabel("Strict");
- Node = Y("NamedApply", udf, Q(Y()), BuildStructure(pos, { autoConvertNode, strictNode }));
+ Node_ = Y("NamedApply", udf, Q(Y()), BuildStructure(pos, { autoConvertNode, strictNode }));
}
TAstNode* Translate(TContext& ctx) const override {
- return Node->Translate(ctx);
+ return Node_->Translate(ctx);
}
bool DoInit(TContext& ctx, ISource* src) override {
YQL_ENSURE(src);
- if (!Node->Init(ctx, src)) {
+ if (!Node_->Init(ctx, src)) {
return false;
}
return true;
}
TPtr DoClone() const final {
- return new TYsonOptionsNode(Pos, AutoConvert, Strict);
+ return new TYsonOptionsNode(Pos_, AutoConvert_, Strict_);
}
protected:
- TNodePtr Node;
- const bool AutoConvert;
- const bool Strict;
+ TNodePtr Node_;
+ const bool AutoConvert_;
+ const bool Strict_;
};
TNodePtr BuildYsonOptionsNode(TPosition pos, bool autoConvert, bool strict) {
@@ -2658,45 +2658,45 @@ TNodePtr BuildYsonOptionsNode(TPosition pos, bool autoConvert, bool strict) {
}
class TShortcutNode: public TAstAtomNode {
- TNodePtr ShortcutNode;
- TNodePtr SameNode;
- const TString BaseName;
+ TNodePtr ShortcutNode_;
+ TNodePtr SameNode_;
+ const TString BaseName_;
public:
TShortcutNode(const TNodePtr& node, const TString& baseName)
: TAstAtomNode(node->GetPos(), TStringBuilder() << "Shortcut" << baseName, TNodeFlags::Default)
- , ShortcutNode(node)
- , BaseName(baseName)
+ , ShortcutNode_(node)
+ , BaseName_(baseName)
{}
bool DoInit(TContext& ctx, ISource* src) override {
- auto shortcut = ctx.HasBlockShortcut(ShortcutNode);
+ auto shortcut = ctx.HasBlockShortcut(ShortcutNode_);
if (!shortcut) {
- SameNode = ShortcutNode->Clone();
- if (!SameNode->Init(ctx, src)) {
+ SameNode_ = ShortcutNode_->Clone();
+ if (!SameNode_->Init(ctx, src)) {
return false;
}
- shortcut = ctx.RegisterBlockShortcut(ShortcutNode, SameNode, BaseName);
+ shortcut = ctx.RegisterBlockShortcut(ShortcutNode_, SameNode_, BaseName_);
YQL_ENSURE(shortcut);
} else {
- SameNode = ctx.GetBlockShortcut(shortcut);
+ SameNode_ = ctx.GetBlockShortcut(shortcut);
}
- Content = shortcut;
+ Content_ = shortcut;
return true;
}
const TString* GetSourceName() const override {
- return ShortcutNode->GetSourceName();
+ return ShortcutNode_->GetSourceName();
}
void DoUpdateState() const override {
- auto& workedNode = SameNode ? SameNode : ShortcutNode;
- State.Set(ENodeState::Const, workedNode->IsConstant());
- State.Set(ENodeState::Aggregated, workedNode->IsAggregated());
- State.Set(ENodeState::OverWindow, workedNode->IsOverWindow());
+ auto& workedNode = SameNode_ ? SameNode_ : ShortcutNode_;
+ State_.Set(ENodeState::Const, workedNode->IsConstant());
+ State_.Set(ENodeState::Aggregated, workedNode->IsAggregated());
+ State_.Set(ENodeState::OverWindow, workedNode->IsOverWindow());
}
TNodePtr DoClone() const final {
- return new TShortcutNode(ShortcutNode, BaseName);
+ return new TShortcutNode(ShortcutNode_, BaseName_);
}
};
@@ -2708,37 +2708,37 @@ class TDoCall final : public INode {
public:
TDoCall(TPosition pos, const TNodePtr& node)
: INode(pos)
- , Node(node)
+ , Node_(node)
{
- FakeSource = BuildFakeSource(pos);
+ FakeSource_ = BuildFakeSource(pos);
}
ISource* GetSource() final {
- return FakeSource.Get();
+ return FakeSource_.Get();
}
bool DoInit(TContext& ctx, ISource* src) final {
Y_UNUSED(src);
ctx.PushBlockShortcuts();
- if (!Node->Init(ctx, FakeSource.Get())) {
+ if (!Node_->Init(ctx, FakeSource_.Get())) {
return false;
}
- Node = ctx.GroundBlockShortcutsForExpr(Node);
+ Node_ = ctx.GroundBlockShortcutsForExpr(Node_);
return true;
}
TAstNode* Translate(TContext& ctx) const final {
- return Node->Translate(ctx);
+ return Node_->Translate(ctx);
}
TPtr DoClone() const final {
- return new TDoCall(Pos, Node->Clone());
+ return new TDoCall(Pos_, Node_->Clone());
}
private:
- TNodePtr Node;
- TSourcePtr FakeSource;
+ TNodePtr Node_;
+ TSourcePtr FakeSource_;
};
TNodePtr BuildDoCall(TPosition pos, const TNodePtr& node) {
@@ -2854,25 +2854,25 @@ class TTupleResultNode: public INode {
public:
TTupleResultNode(TNodePtr&& tuple, int ensureTupleSize)
: INode(tuple->GetPos())
- , Node(std::move(tuple))
- , EnsureTupleSize(ensureTupleSize)
+ , Node_(std::move(tuple))
+ , EnsureTupleSize_(ensureTupleSize)
{
}
bool DoInit(TContext& ctx, ISource* src) override {
ctx.PushBlockShortcuts();
- if (!Node->Init(ctx, src)) {
+ if (!Node_->Init(ctx, src)) {
return false;
}
- Node = ctx.GroundBlockShortcutsForExpr(Node);
- Node = Y("EnsureTupleSize", Node, Q(ToString(EnsureTupleSize)));
+ Node_ = ctx.GroundBlockShortcutsForExpr(Node_);
+ Node_ = Y("EnsureTupleSize", Node_, Q(ToString(EnsureTupleSize_)));
return true;
}
TAstNode* Translate(TContext& ctx) const override {
- return Node->Translate(ctx);
+ return Node_->Translate(ctx);
}
TPtr DoClone() const final {
@@ -2880,8 +2880,8 @@ public:
}
protected:
- TNodePtr Node;
- const int EnsureTupleSize;
+ TNodePtr Node_;
+ const int EnsureTupleSize_;
};
TNodePtr BuildTupleResult(TNodePtr tuple, int ensureTupleSize) {
diff --git a/yql/essentials/sql/v0/node.h b/yql/essentials/sql/v0/node.h
index 69355bbf656..0a996501502 100644
--- a/yql/essentials/sql/v0/node.h
+++ b/yql/essentials/sql/v0/node.h
@@ -129,7 +129,7 @@ namespace NSQLTranslationV0 {
bool IsOverWindow() const;
bool HasState(ENodeState state) const {
PrecacheState();
- return State.Test(state);
+ return State_.Test(state);
}
virtual bool IsNull() const;
@@ -204,10 +204,10 @@ namespace NSQLTranslationV0 {
virtual void DoAdd(TPtr node);
protected:
- TPosition Pos;
- TString Label;
- mutable TNodeState State;
- bool AsInner = false;
+ TPosition Pos_;
+ TString Label_;
+ mutable TNodeState State_;
+ bool AsInner_ = false;
};
typedef INode::TPtr TNodePtr;
@@ -234,14 +234,14 @@ namespace NSQLTranslationV0 {
TAstNode* Translate(TContext& ctx) const override;
const TString& GetContent() const {
- return Content;
+ return Content_;
}
const TString* GetAtomContent() const override;
protected:
- TString Content;
- ui32 Flags;
+ TString Content_;
+ ui32 Flags_;
void DoUpdateState() const override;
};
@@ -253,7 +253,7 @@ namespace NSQLTranslationV0 {
{}
TNodePtr DoClone() const final {
- return new TAstAtomNodeImpl(Pos, Content, Flags);
+ return new TAstAtomNodeImpl(Pos_, Content_, Flags_);
}
};
@@ -264,10 +264,10 @@ namespace NSQLTranslationV0 {
TAstNode* Translate(TContext& ctx) const override;
TPtr DoClone() const final {
- return new TAstDirectNode(Node);
+ return new TAstDirectNode(Node_);
}
protected:
- TAstNode* Node;
+ TAstNode* Node_;
};
class TAstListNode: public INode {
@@ -289,8 +289,8 @@ namespace NSQLTranslationV0 {
void UpdateStateByListNodes(const TVector<TNodePtr>& Nodes) const;
protected:
- TVector<TNodePtr> Nodes;
- mutable TMaybe<bool> CacheGroupKey;
+ TVector<TNodePtr> Nodes_;
+ mutable TMaybe<bool> CacheGroupKey_;
};
class TAstListNodeImpl final: public TAstListNode {
@@ -320,11 +320,11 @@ namespace NSQLTranslationV0 {
TString GetCallExplain() const;
protected:
- TString OpName;
- i32 MinArgs;
- i32 MaxArgs;
- TVector<TNodePtr> Args;
- mutable TMaybe<bool> CacheGroupKey;
+ TString OpName_;
+ i32 MinArgs_;
+ i32 MaxArgs_;
+ TVector<TNodePtr> Args_;
+ mutable TMaybe<bool> CacheGroupKey_;
void DoUpdateState() const override;
};
@@ -345,7 +345,7 @@ namespace NSQLTranslationV0 {
bool DoInit(TContext& ctx, ISource* src) override;
private:
- const ui32 ReqArgsCount;
+ const ui32 ReqArgsCount_;
};
class TCallDirectRow final : public TCallNode {
@@ -367,10 +367,10 @@ namespace NSQLTranslationV0 {
protected:
template<class TNodeType>
TPtr CallNodeClone() const {
- return new TNodeType(GetPos(), OpName, MinArgs, MaxArgs, CloneContainer(Args));
+ return new TNodeType(GetPos(), OpName_, MinArgs_, MaxArgs_, CloneContainer(Args_));
}
- TString FuncAlias;
- TNodePtr WinAggrGround;
+ TString FuncAlias_;
+ TNodePtr WinAggrGround_;
};
class TWinRowNumber final: public TWinAggrEmulation {
@@ -536,9 +536,9 @@ namespace NSQLTranslationV0 {
bool Empty() const;
private:
- TMaybe<TString> Explicit;
- TNodePtr Node; // atom or evaluation node
- TString Repr;
+ TMaybe<TString> Explicit_;
+ TNodePtr Node_; // atom or evaluation node
+ TString Repr_;
};
struct TWriteSettings {
@@ -575,15 +575,15 @@ namespace NSQLTranslationV0 {
private:
static const TString Empty;
- TNodePtr Node;
- TString ColumnName;
- TNodePtr ColumnExpr;
- TString Source;
- bool GroupKey = false;
- bool Artificial = false;
- bool Reliable = true;
- bool UseSource = false;
- bool UseSourceAsColumn = false;
+ TNodePtr Node_;
+ TString ColumnName_;
+ TNodePtr ColumnExpr_;
+ TString Source_;
+ bool GroupKey_ = false;
+ bool Artificial_ = false;
+ bool Reliable_ = true;
+ bool UseSource_ = false;
+ bool UseSourceAsColumn_ = false;
};
class TArgPlaceholderNode final: public INode
@@ -603,7 +603,7 @@ namespace NSQLTranslationV0 {
bool DoInit(TContext& ctx, ISource* src) override;
private:
- TString Name;
+ TString Name_;
};
enum class EAggregateMode {
@@ -623,7 +623,7 @@ namespace NSQLTranslationV0 {
TPtr GetTupleElement(size_t index) const override;
TNodePtr DoClone() const final;
private:
- const TVector<TNodePtr> Exprs;
+ const TVector<TNodePtr> Exprs_;
};
class TStructNode: public TAstListNode {
@@ -633,11 +633,11 @@ namespace NSQLTranslationV0 {
bool DoInit(TContext& ctx, ISource* src) override;
TNodePtr DoClone() const final;
const TVector<TNodePtr>& GetExprs() {
- return Exprs;
+ return Exprs_;
}
private:
- const TVector<TNodePtr> Exprs;
+ const TVector<TNodePtr> Exprs_;
};
class IAggregation: public INode {
@@ -671,10 +671,10 @@ namespace NSQLTranslationV0 {
IAggregation(TPosition pos, const TString& name, const TString& func, EAggregateMode mode);
TAstNode* Translate(TContext& ctx) const override;
- TString Name;
- const TString Func;
- const EAggregateMode AggMode;
- TString DistinctKey;
+ TString Name_;
+ const TString Func_;
+ const EAggregateMode AggMode_;
+ TString DistinctKey_;
};
enum class EExprSeat: int {
@@ -774,22 +774,22 @@ namespace NSQLTranslationV0 {
const TVector<TNodePtr>& Expressions(EExprSeat exprSeat) const;
TNodePtr AliasOrColumn(const TNodePtr& node, bool withSource);
- THashSet<TString> ExprAliases;
- THashMap<TString, TString> GroupByColumnAliases;
- TVector<TNodePtr> Filters;
- TSet<TString> GroupKeys;
- TVector<TString> OrderedGroupKeys;
- std::array<TVector<TNodePtr>, static_cast<unsigned>(EExprSeat::Max)> NamedExprs;
- TVector<TAggregationPtr> Aggregations;
- TMultiMap<TString, TAggregationPtr> AggregationOverWindow;
- TMultiMap<TString, TNodePtr> FuncOverWindow;
- TWinSpecs WinSpecs;
- THoppingWindowSpecPtr HoppingWindowSpec;
- TVector<ISource*> UsedSources;
- TString FlattenMode;
- bool FlattenColumns = false;
- THashMap<TString, ui32> GenIndexes;
- TVector<TString> TmpWindowColumns;
+ THashSet<TString> ExprAliases_;
+ THashMap<TString, TString> GroupByColumnAliases_;
+ TVector<TNodePtr> Filters_;
+ TSet<TString> GroupKeys_;
+ TVector<TString> OrderedGroupKeys_;
+ std::array<TVector<TNodePtr>, static_cast<unsigned>(EExprSeat::Max)> NamedExprs_;
+ TVector<TAggregationPtr> Aggregations_;
+ TMultiMap<TString, TAggregationPtr> AggregationOverWindow_;
+ TMultiMap<TString, TNodePtr> FuncOverWindow_;
+ TWinSpecs WinSpecs_;
+ THoppingWindowSpecPtr HoppingWindowSpec_;
+ TVector<ISource*> UsedSources_;
+ TString FlattenMode_;
+ bool FlattenColumns_ = false;
+ THashMap<TString, ui32> GenIndexes_;
+ TVector<TString> TmpWindowColumns_;
};
typedef TIntrusivePtr<ISource> TSourcePtr;
@@ -825,8 +825,8 @@ namespace NSQLTranslationV0 {
TAstNode* Translate(TContext& ctx) const override;
TPtr DoClone() const final;
private:
- TVector<TNodePtr> Exprs;
- TString Meaning;
+ TVector<TNodePtr> Exprs_;
+ TString Meaning_;
};
class TLiteralNode: public TAstListNode {
@@ -839,10 +839,10 @@ namespace NSQLTranslationV0 {
void DoUpdateState() const override;
TPtr DoClone() const override;
protected:
- bool Null;
- bool Void;
- TString Type;
- TString Value;
+ bool Null_;
+ bool Void_;
+ TString Type_;
+ TString Value_;
};
template<typename T>
diff --git a/yql/essentials/sql/v0/query.cpp b/yql/essentials/sql/v0/query.cpp
index 81ff5fbc2c8..38d323cad57 100644
--- a/yql/essentials/sql/v0/query.cpp
+++ b/yql/essentials/sql/v0/query.cpp
@@ -17,43 +17,43 @@ class TUniqueTableKey: public ITableKeys {
public:
TUniqueTableKey(TPosition pos, const TString& cluster, const TDeferredAtom& name, const TString& view)
: ITableKeys(pos)
- , Cluster(cluster)
- , Name(name)
- , View(view)
- , Full(name.GetRepr())
+ , Cluster_(cluster)
+ , Name_(name)
+ , View_(view)
+ , Full_(name.GetRepr())
{
- if (!View.empty()) {
- Full += ":" + View;
+ if (!View_.empty()) {
+ Full_ += ":" + View_;
}
}
const TString* GetTableName() const override {
- return Name.GetLiteral() ? &Full : nullptr;
+ return Name_.GetLiteral() ? &Full_ : nullptr;
}
TNodePtr BuildKeys(TContext& ctx, ITableKeys::EBuildKeysMode mode) override {
- if (View == "@") {
- auto key = Y("TempTable", Name.Build());
+ if (View_ == "@") {
+ auto key = Y("TempTable", Name_.Build());
return key;
}
bool tableScheme = mode == ITableKeys::EBuildKeysMode::CREATE;
- if (tableScheme && !View.empty()) {
- ctx.Error(Pos) << "Table view can not be created with CREATE TABLE clause";
+ if (tableScheme && !View_.empty()) {
+ ctx.Error(Pos_) << "Table view can not be created with CREATE TABLE clause";
return nullptr;
}
- auto path = ctx.GetPrefixedPath(Cluster, Name);
+ auto path = ctx.GetPrefixedPath(Cluster_, Name_);
if (!path) {
return nullptr;
}
auto key = Y("Key", Q(Y(Q(tableScheme ? "tablescheme" : "table"), Y("String", path))));
- if (!View.empty()) {
- key = L(key, Q(Y(Q("view"), Y("String", BuildQuotedAtom(Pos, View)))));
+ if (!View_.empty()) {
+ key = L(key, Q(Y(Q("view"), Y("String", BuildQuotedAtom(Pos_, View_)))));
}
if (mode == ITableKeys::EBuildKeysMode::INPUT &&
IsQueryMode(ctx.Settings.Mode) &&
- ctx.GetClusterProvider(Cluster).GetRef() != "kikimr" &&
- ctx.GetClusterProvider(Cluster).GetRef() != "rtmr") {
+ ctx.GetClusterProvider(Cluster_).GetRef() != "kikimr" &&
+ ctx.GetClusterProvider(Cluster_).GetRef() != "rtmr") {
key = Y("MrTableConcat", key);
}
@@ -61,10 +61,10 @@ public:
}
private:
- TString Cluster;
- TDeferredAtom Name;
- TString View;
- TString Full;
+ TString Cluster_;
+ TDeferredAtom Name_;
+ TString View_;
+ TString Full_;
};
TNodePtr BuildTableKey(TPosition pos, const TString& cluster, const TDeferredAtom& name, const TString& view) {
@@ -75,9 +75,9 @@ class TPrepTableKeys: public ITableKeys {
public:
TPrepTableKeys(TPosition pos, const TString& cluster, const TString& func, const TVector<TTableArg>& args)
: ITableKeys(pos)
- , Cluster(cluster)
- , Func(func)
- , Args(args)
+ , Cluster_(cluster)
+ , Func_(func)
+ , Args_(args)
{
}
@@ -88,27 +88,27 @@ public:
TNodePtr BuildKeys(TContext& ctx, ITableKeys::EBuildKeysMode mode) override {
if (mode == ITableKeys::EBuildKeysMode::CREATE) {
// TODO: allow creation of multiple tables
- ctx.Error(Pos) << "Mutiple table creation is not implemented yet";
+ ctx.Error(Pos_) << "Mutiple table creation is not implemented yet";
return nullptr;
}
- TCiString func(Func);
+ TCiString func(Func_);
if (func == "concat_strict") {
auto tuple = Y();
- for (auto& arg: Args) {
+ for (auto& arg: Args_) {
ExtractTableName(ctx, arg);
TNodePtr key;
if (arg.HasAt) {
key = Y("TempTable", arg.Id.Build());
} else {
- auto path = ctx.GetPrefixedPath(Cluster, arg.Id);
+ auto path = ctx.GetPrefixedPath(Cluster_, arg.Id);
if (!path) {
return nullptr;
}
key = Y("Key", Q(Y(Q("table"), Y("String", path))));
if (!arg.View.empty()) {
- key = L(key, Q(Y(Q("view"), Y("String", BuildQuotedAtom(Pos, arg.View)))));
+ key = L(key, Q(Y(Q("view"), Y("String", BuildQuotedAtom(Pos_, arg.View)))));
}
}
@@ -118,20 +118,20 @@ public:
}
else if (func == "concat") {
auto concat = Y("MrTableConcat");
- for (auto& arg : Args) {
+ for (auto& arg : Args_) {
ExtractTableName(ctx, arg);
TNodePtr key;
if (arg.HasAt) {
key = Y("TempTable", arg.Id.Build());
} else {
- auto path = ctx.GetPrefixedPath(Cluster, arg.Id);
+ auto path = ctx.GetPrefixedPath(Cluster_, arg.Id);
if (!path) {
return nullptr;
}
key = Y("Key", Q(Y(Q("table"), Y("String", path))));
if (!arg.View.empty()) {
- key = L(key, Q(Y(Q("view"), Y("String", BuildQuotedAtom(Pos, arg.View)))));
+ key = L(key, Q(Y(Q("view"), Y("String", BuildQuotedAtom(Pos_, arg.View)))));
}
}
@@ -147,21 +147,21 @@ public:
bool isFilter = func.StartsWith("filter");
size_t minArgs = isRange ? 1 : 2;
size_t maxArgs = isRange ? 5 : 4;
- if (Args.size() < minArgs || Args.size() > maxArgs) {
- ctx.Error(Pos) << Func << " requires from " << minArgs << " to " << maxArgs << " arguments, but got: " << Args.size();
+ if (Args_.size() < minArgs || Args_.size() > maxArgs) {
+ ctx.Error(Pos_) << Func_ << " requires from " << minArgs << " to " << maxArgs << " arguments, but got: " << Args_.size();
return nullptr;
}
- for (ui32 index=0; index < Args.size(); ++index) {
- auto& arg = Args[index];
+ for (ui32 index=0; index < Args_.size(); ++index) {
+ auto& arg = Args_[index];
if (arg.HasAt) {
- ctx.Error(Pos) << "Temporary tables are not supported here";
+ ctx.Error(Pos_) << "Temporary tables are not supported here";
return nullptr;
}
if (!arg.View.empty()) {
TStringBuilder sb;
- sb << "Use the last argument of " << Func << " to specify a VIEW." << Endl;
+ sb << "Use the last argument of " << Func_ << " to specify a VIEW." << Endl;
if (isRange) {
sb << "Possible arguments are: prefix, from, to, suffix, view." << Endl;
} else if (isFilter) {
@@ -171,7 +171,7 @@ public:
}
sb << "Pass [] to arguments you want to skip.";
- ctx.Error(Pos) << sb;
+ ctx.Error(Pos_) << sb;
return nullptr;
}
@@ -180,7 +180,7 @@ public:
}
}
- auto path = ctx.GetPrefixedPath(Cluster, Args[0].Id);
+ auto path = ctx.GetPrefixedPath(Cluster_, Args_[0].Id);
if (!path) {
return nullptr;
}
@@ -190,59 +190,59 @@ public:
if (func.StartsWith("range")) {
TDeferredAtom min;
TDeferredAtom max;
- if (Args.size() > 1) {
- min = Args[1].Id;
+ if (Args_.size() > 1) {
+ min = Args_[1].Id;
}
- if (Args.size() > 2) {
- max = Args[2].Id;
+ if (Args_.size() > 2) {
+ max = Args_[2].Id;
}
- if (Args.size() > 3) {
- suffix = Args[3].Id;
+ if (Args_.size() > 3) {
+ suffix = Args_[3].Id;
}
if (min.Empty() && max.Empty()) {
- predicate = BuildLambda(Pos, Y("item"), Y("Bool", Q("true")));
+ predicate = BuildLambda(Pos_, Y("item"), Y("Bool", Q("true")));
}
else {
auto minPred = !min.Empty() ? Y(">=", "item", Y("String", min.Build())) : nullptr;
auto maxPred = !max.Empty() ? Y("<=", "item", Y("String", max.Build())) : nullptr;
if (!minPred) {
- predicate = BuildLambda(Pos, Y("item"), maxPred);
+ predicate = BuildLambda(Pos_, Y("item"), maxPred);
} else if (!maxPred) {
- predicate = BuildLambda(Pos, Y("item"), minPred);
+ predicate = BuildLambda(Pos_, Y("item"), minPred);
} else {
- predicate = BuildLambda(Pos, Y("item"), Y("And", minPred, maxPred));
+ predicate = BuildLambda(Pos_, Y("item"), Y("And", minPred, maxPred));
}
}
} else {
- if (Args.size() > 2) {
- suffix = Args[2].Id;
+ if (Args_.size() > 2) {
+ suffix = Args_[2].Id;
}
if (func.StartsWith("regexp")) {
- auto pattern = Args[1].Id;
+ auto pattern = Args_[1].Id;
auto udf = Y("Udf", Q("Pcre.BacktrackingGrep"), Y("String", pattern.Build()));
- predicate = BuildLambda(Pos, Y("item"), Y("Apply", udf, "item"));
+ predicate = BuildLambda(Pos_, Y("item"), Y("Apply", udf, "item"));
} else if (func.StartsWith("like")) {
- auto pattern = Args[1].Id;
+ auto pattern = Args_[1].Id;
auto convertedPattern = Y("Apply", Y("Udf", Q("Re2.PatternFromLike")),
Y("String", pattern.Build()));
auto udf = Y("Udf", Q("Re2.Match"), Q(Y(convertedPattern, Y("Null"))));
- predicate = BuildLambda(Pos, Y("item"), Y("Apply", udf, "item"));
+ predicate = BuildLambda(Pos_, Y("item"), Y("Apply", udf, "item"));
} else {
- predicate = BuildLambda(Pos, Y("item"), Y("Apply", Args[1].Expr, "item"));
+ predicate = BuildLambda(Pos_, Y("item"), Y("Apply", Args_[1].Expr, "item"));
}
}
range = L(range, predicate);
- range = L(range, suffix.Build() ? suffix.Build() : BuildQuotedAtom(Pos, ""));
+ range = L(range, suffix.Build() ? suffix.Build() : BuildQuotedAtom(Pos_, ""));
auto key = Y("Key", Q(Y(Q("table"), range)));
- if (Args.size() == maxArgs) {
- const auto& lastArg = Args.back();
+ if (Args_.size() == maxArgs) {
+ const auto& lastArg = Args_.back();
if (!lastArg.View.empty()) {
- ctx.Error(Pos) << Func << " requires that view should be set as last argument";
+ ctx.Error(Pos_) << Func_ << " requires that view should be set as last argument";
return nullptr;
}
@@ -254,9 +254,9 @@ public:
return key;
} else if (func == "each" || func == "each_strict") {
auto each = Y(func == "each" ? "MrTableEach" : "MrTableEachStrict");
- for (auto& arg : Args) {
+ for (auto& arg : Args_) {
if (arg.HasAt) {
- ctx.Error(Pos) << "Temporary tables are not supported here";
+ ctx.Error(Pos_) << "Temporary tables are not supported here";
return nullptr;
}
@@ -264,7 +264,7 @@ public:
auto key = Y("Key", Q(Y(Q("table"), Y("EvaluateExpr",
Y("EnsureType", Y("Coalesce", arg.Expr, Y("List", type)), type)))));
if (!arg.View.empty()) {
- key = L(key, Q(Y(Q("view"), Y("String", BuildQuotedAtom(Pos, arg.View)))));
+ key = L(key, Q(Y(Q("view"), Y("String", BuildQuotedAtom(Pos_, arg.View)))));
}
each = L(each, key);
}
@@ -274,20 +274,20 @@ public:
else if (func == "folder") {
size_t minArgs = 1;
size_t maxArgs = 2;
- if (Args.size() < minArgs || Args.size() > maxArgs) {
- ctx.Error(Pos) << Func << " requires from " << minArgs << " to " << maxArgs << " arguments, but found: " << Args.size();
+ if (Args_.size() < minArgs || Args_.size() > maxArgs) {
+ ctx.Error(Pos_) << Func_ << " requires from " << minArgs << " to " << maxArgs << " arguments, but found: " << Args_.size();
return nullptr;
}
- for (ui32 index = 0; index < Args.size(); ++index) {
- auto& arg = Args[index];
+ for (ui32 index = 0; index < Args_.size(); ++index) {
+ auto& arg = Args_[index];
if (arg.HasAt) {
- ctx.Error(Pos) << "Temporary tables are not supported here";
+ ctx.Error(Pos_) << "Temporary tables are not supported here";
return nullptr;
}
if (!arg.View.empty()) {
- ctx.Error(Pos) << Func << " doesn't supports views";
+ ctx.Error(Pos_) << Func_ << " doesn't supports views";
return nullptr;
}
@@ -295,19 +295,19 @@ public:
}
auto folder = Y("MrFolder");
- folder = L(folder, Args[0].Id.Build());
- folder = L(folder, Args.size() > 1 ? Args[1].Id.Build() : BuildQuotedAtom(Pos, ""));
+ folder = L(folder, Args_[0].Id.Build());
+ folder = L(folder, Args_.size() > 1 ? Args_[1].Id.Build() : BuildQuotedAtom(Pos_, ""));
return folder;
}
- ctx.Error(Pos) << "Unknown table name preprocessor: " << Func;
+ ctx.Error(Pos_) << "Unknown table name preprocessor: " << Func_;
return nullptr;
}
private:
- TString Cluster;
- TString Func;
- TVector<TTableArg> Args;
+ TString Cluster_;
+ TString Func_;
+ TVector<TTableArg> Args_;
};
TNodePtr BuildTableKeys(TPosition pos, const TString& cluster, const TString& func, const TVector<TTableArg>& args) {
@@ -318,15 +318,15 @@ class TInputOptions final: public TAstListNode {
public:
TInputOptions(TPosition pos, const TVector<TString>& hints)
: TAstListNode(pos)
- , Hints(hints)
+ , Hints_(hints)
{
}
bool DoInit(TContext& ctx, ISource* src) override {
Y_UNUSED(src);
TSet<TString> used;
- for (auto& hint: Hints) {
- TMaybe<TIssue> normalizeError = NormalizeName(Pos, hint);
+ for (auto& hint: Hints_) {
+ TMaybe<TIssue> normalizeError = NormalizeName(Pos_, hint);
if (!normalizeError.Empty()) {
ctx.Error() << normalizeError->GetMessage();
ctx.IncrementMonCounter("sql_errors", "NormalizeHintError");
@@ -334,10 +334,10 @@ public:
}
TNodePtr option;
if (used.insert(hint).second) {
- option = Y(BuildQuotedAtom(Pos, hint));
+ option = Y(BuildQuotedAtom(Pos_, hint));
}
if (option) {
- Nodes.push_back(Q(option));
+ Nodes_.push_back(Q(option));
}
}
return true;
@@ -348,7 +348,7 @@ public:
}
private:
- TVector<TString> Hints;
+ TVector<TString> Hints_;
};
TNodePtr BuildInputOptions(TPosition pos, const TVector<TString>& hints) {
@@ -363,13 +363,13 @@ class TInputTablesNode final: public TAstListNode {
public:
TInputTablesNode(TPosition pos, const TTableList& tables, bool inSubquery)
: TAstListNode(pos)
- , Tables(tables)
- , InSubquery(inSubquery)
+ , Tables_(tables)
+ , InSubquery_(inSubquery)
{}
bool DoInit(TContext& ctx, ISource* src) override {
THashSet<TString> tables;
- for (auto& tr: Tables) {
+ for (auto& tr: Tables_) {
if (!tables.insert(tr.RefName).second) {
continue;
}
@@ -386,11 +386,11 @@ public:
keys = ctx.GroundBlockShortcutsForExpr(keys);
auto service = tr.ServiceName(ctx);
auto fields = Y("Void");
- auto source = Y("DataSource", BuildQuotedAtom(Pos, service), BuildQuotedAtom(Pos, tr.Cluster));
+ auto source = Y("DataSource", BuildQuotedAtom(Pos_, service), BuildQuotedAtom(Pos_, tr.Cluster));
auto options = tr.Options ? Q(tr.Options) : Q(Y());
Add(Y("let", "x", keys->Y(TString(ReadName), "world", source, keys, fields, options)));
if (service != YtProviderName) {
- if (InSubquery) {
+ if (InSubquery_) {
ctx.Error() << "Using of system '" << service << "' is not allowed in SUBQUERY";
return false;
}
@@ -409,8 +409,8 @@ public:
}
private:
- TTableList Tables;
- const bool InSubquery;
+ TTableList Tables_;
+ const bool InSubquery_;
};
TNodePtr BuildInputTables(TPosition pos, const TTableList& tables, bool inSubquery) {
@@ -423,43 +423,43 @@ public:
const TVector<TIdentifier>& pkColumns, const TVector<TIdentifier>& partitionByColumns,
const TVector<std::pair<TIdentifier, bool>>& orderByColumns)
: TAstListNode(pos)
- , Table(tr)
- , Columns(columns)
- , PkColumns(pkColumns)
- , PartitionByColumns(partitionByColumns)
- , OrderByColumns(orderByColumns)
+ , Table_(tr)
+ , Columns_(columns)
+ , PkColumns_(pkColumns)
+ , PartitionByColumns_(partitionByColumns)
+ , OrderByColumns_(orderByColumns)
{}
bool DoInit(TContext& ctx, ISource* src) override {
- if (!Table.Check(ctx)) {
+ if (!Table_.Check(ctx)) {
return false;
}
- auto keys = Table.Keys->GetTableKeys()->BuildKeys(ctx, ITableKeys::EBuildKeysMode::CREATE);
+ auto keys = Table_.Keys->GetTableKeys()->BuildKeys(ctx, ITableKeys::EBuildKeysMode::CREATE);
ctx.PushBlockShortcuts();
if (!keys || !keys->Init(ctx, src)) {
return false;
}
keys = ctx.GroundBlockShortcutsForExpr(keys);
- if (!PkColumns.empty() || !PartitionByColumns.empty() || !OrderByColumns.empty()) {
+ if (!PkColumns_.empty() || !PartitionByColumns_.empty() || !OrderByColumns_.empty()) {
THashSet<TString> columnsSet;
- for (auto& col : Columns) {
+ for (auto& col : Columns_) {
columnsSet.insert(col.Name);
}
- for (auto& keyColumn : PkColumns) {
+ for (auto& keyColumn : PkColumns_) {
if (!columnsSet.contains(keyColumn.Name)) {
ctx.Error(keyColumn.Pos) << "Undefined column: " << keyColumn.Name;
return false;
}
}
- for (auto& keyColumn : PartitionByColumns) {
+ for (auto& keyColumn : PartitionByColumns_) {
if (!columnsSet.contains(keyColumn.Name)) {
ctx.Error(keyColumn.Pos) << "Undefined column: " << keyColumn.Name;
return false;
}
}
- for (auto& keyColumn : OrderByColumns) {
+ for (auto& keyColumn : OrderByColumns_) {
if (!columnsSet.contains(keyColumn.first.Name)) {
ctx.Error(keyColumn.first.Pos) << "Undefined column: " << keyColumn.first.Name;
return false;
@@ -468,7 +468,7 @@ public:
}
auto columns = Y();
- for (auto& col: Columns) {
+ for (auto& col: Columns_) {
auto type = ParseType(TypeByAlias(col.Type, !col.IsTypeString), *ctx.Pool, ctx.Issues, col.Pos);
if (!type) {
return false;
@@ -493,53 +493,53 @@ public:
type
);
}
- columns = L(columns, Q(Y(BuildQuotedAtom(Pos, col.Name), AstNode(type))));
+ columns = L(columns, Q(Y(BuildQuotedAtom(Pos_, col.Name), AstNode(type))));
}
auto opts = Y();
- if (Table.Options) {
- if (!Table.Options->Init(ctx, src)) {
+ if (Table_.Options) {
+ if (!Table_.Options->Init(ctx, src)) {
return false;
}
- opts = Table.Options;
+ opts = Table_.Options;
}
opts = L(opts, Q(Y(Q("mode"), Q("create"))));
opts = L(opts, Q(Y(Q("columns"), Q(columns))));
- const auto serviceName = to_lower(Table.ServiceName(ctx));
+ const auto serviceName = to_lower(Table_.ServiceName(ctx));
if (serviceName == RtmrProviderName) {
- if (!PkColumns.empty() && !PartitionByColumns.empty()) {
+ if (!PkColumns_.empty() && !PartitionByColumns_.empty()) {
ctx.Error() << "Only one of PRIMARY KEY or PARTITION BY constraints may be specified";
return false;
}
} else {
- if (!PartitionByColumns.empty() || !OrderByColumns.empty()) {
+ if (!PartitionByColumns_.empty() || !OrderByColumns_.empty()) {
ctx.Error() << "PARTITION BY and ORDER BY are supported only for " << RtmrProviderName << " provider";
return false;
}
}
- if (!PkColumns.empty()) {
+ if (!PkColumns_.empty()) {
auto primaryKey = Y();
- for (auto& col : PkColumns) {
+ for (auto& col : PkColumns_) {
primaryKey = L(primaryKey, BuildQuotedAtom(col.Pos, col.Name));
}
opts = L(opts, Q(Y(Q("primarykey"), Q(primaryKey))));
- if (!OrderByColumns.empty()) {
+ if (!OrderByColumns_.empty()) {
ctx.Error() << "PRIMARY KEY cannot be used with ORDER BY, use PARTITION BY instead";
return false;
}
} else {
- if (!PartitionByColumns.empty()) {
+ if (!PartitionByColumns_.empty()) {
auto partitionBy = Y();
- for (auto& col : PartitionByColumns) {
+ for (auto& col : PartitionByColumns_) {
partitionBy = L(partitionBy, BuildQuotedAtom(col.Pos, col.Name));
}
opts = L(opts, Q(Y(Q("partitionby"), Q(partitionBy))));
}
- if (!OrderByColumns.empty()) {
+ if (!OrderByColumns_.empty()) {
auto orderBy = Y();
- for (auto& col : OrderByColumns) {
+ for (auto& col : OrderByColumns_) {
orderBy = L(orderBy, Q(Y(BuildQuotedAtom(col.first.Pos, col.first.Name), col.second ? Q("1") : Q("0"))));
}
opts = L(opts, Q(Y(Q("orderby"), Q(orderBy))));
@@ -547,12 +547,12 @@ public:
}
Add("block", Q(Y(
- Y("let", "sink", Y("DataSink", BuildQuotedAtom(Pos, Table.ServiceName(ctx)), BuildQuotedAtom(Pos, Table.Cluster))),
+ Y("let", "sink", Y("DataSink", BuildQuotedAtom(Pos_, Table_.ServiceName(ctx)), BuildQuotedAtom(Pos_, Table_.Cluster))),
Y("let", "world", Y(TString(WriteName), "world", "sink", keys, Y("Void"), Q(opts))),
Y("return", ctx.PragmaAutoCommit ? Y(TString(CommitName), "world", "sink") : AstNode("world"))
)));
- ctx.UsedClusters.insert(Table.Cluster);
+ ctx.UsedClusters.insert(Table_.Cluster);
return TAstListNode::DoInit(ctx, src);
}
@@ -560,11 +560,11 @@ public:
return {};
}
private:
- TTableRef Table;
- TVector<TColumnSchema> Columns;
- TVector<TIdentifier> PkColumns;
- TVector<TIdentifier> PartitionByColumns;
- TVector<std::pair<TIdentifier, bool>> OrderByColumns; // column, is desc?
+ TTableRef Table_;
+ TVector<TColumnSchema> Columns_;
+ TVector<TIdentifier> PkColumns_;
+ TVector<TIdentifier> PartitionByColumns_;
+ TVector<std::pair<TIdentifier, bool>> OrderByColumns_; // column, is desc?
};
TNodePtr BuildCreateTable(TPosition pos, const TTableRef& tr, const TVector<TColumnSchema>& columns,
@@ -578,16 +578,16 @@ class TAlterTableNode final: public TAstListNode {
public:
TAlterTableNode(TPosition pos, const TTableRef& tr, const TVector<TColumnSchema>& columns, EAlterTableIntentnt intent)
: TAstListNode(pos)
- , Table(tr)
- , Columns(columns)
- , Intent(intent)
+ , Table_(tr)
+ , Columns_(columns)
+ , Intent_(intent)
{}
bool DoInit(TContext& ctx, ISource* src) override {
- if (!Table.Check(ctx)) {
+ if (!Table_.Check(ctx)) {
return false;
}
- auto keys = Table.Keys->GetTableKeys()->BuildKeys(ctx, ITableKeys::EBuildKeysMode::CREATE);
+ auto keys = Table_.Keys->GetTableKeys()->BuildKeys(ctx, ITableKeys::EBuildKeysMode::CREATE);
ctx.PushBlockShortcuts();
if (!keys || !keys->Init(ctx, src)) {
return false;
@@ -596,15 +596,15 @@ public:
auto actions = Y();
- if (Intent == EAlterTableIntentnt::DropColumn) {
+ if (Intent_ == EAlterTableIntentnt::DropColumn) {
auto columns = Y();
- for (auto& col : Columns) {
- columns = L(columns, BuildQuotedAtom(Pos, col.Name));
+ for (auto& col : Columns_) {
+ columns = L(columns, BuildQuotedAtom(Pos_, col.Name));
}
actions = L(actions, Q(Y(Q("dropColumns"), Q(columns))));
} else {
auto columns = Y();
- for (auto& col: Columns) {
+ for (auto& col: Columns_) {
auto type = ParseType(TypeByAlias(col.Type, !col.IsTypeString), *ctx.Pool, ctx.Issues, col.Pos);
if (!type) {
return false;
@@ -629,7 +629,7 @@ public:
type
);
}
- columns = L(columns, Q(Y(BuildQuotedAtom(Pos, col.Name), AstNode(type))));
+ columns = L(columns, Q(Y(BuildQuotedAtom(Pos_, col.Name), AstNode(type))));
}
actions = L(actions, Q(Y(Q("addColumns"), Q(columns))));
}
@@ -640,21 +640,21 @@ public:
opts = L(opts, Q(Y(Q("actions"), Q(actions))));
Add("block", Q(Y(
- Y("let", "sink", Y("DataSink", BuildQuotedAtom(Pos, Table.ServiceName(ctx)), BuildQuotedAtom(Pos, Table.Cluster))),
+ Y("let", "sink", Y("DataSink", BuildQuotedAtom(Pos_, Table_.ServiceName(ctx)), BuildQuotedAtom(Pos_, Table_.Cluster))),
Y("let", "world", Y(TString(WriteName), "world", "sink", keys, Y("Void"), Q(opts))),
Y("return", ctx.PragmaAutoCommit ? Y(TString(CommitName), "world", "sink") : AstNode("world"))
)));
- ctx.UsedClusters.insert(Table.Cluster);
+ ctx.UsedClusters.insert(Table_.Cluster);
return TAstListNode::DoInit(ctx, src);
}
TPtr DoClone() const final {
return {};
}
private:
- TTableRef Table;
- TVector<TColumnSchema> Columns;
- EAlterTableIntentnt Intent;
+ TTableRef Table_;
+ TVector<TColumnSchema> Columns_;
+ EAlterTableIntentnt Intent_;
};
TNodePtr BuildAlterTable(TPosition pos, const TTableRef& tr, const TVector<TColumnSchema>& columns, EAlterTableIntentnt intent)
@@ -666,39 +666,39 @@ class TDropTableNode final: public TAstListNode {
public:
TDropTableNode(TPosition pos, const TTableRef& tr)
: TAstListNode(pos)
- , Table(tr)
+ , Table_(tr)
{
- FakeSource = BuildFakeSource(pos);
+ FakeSource_ = BuildFakeSource(pos);
}
bool DoInit(TContext& ctx, ISource* src) override {
Y_UNUSED(src);
- if (!Table.Check(ctx)) {
+ if (!Table_.Check(ctx)) {
return false;
}
- auto keys = Table.Keys->GetTableKeys()->BuildKeys(ctx, ITableKeys::EBuildKeysMode::DROP);
+ auto keys = Table_.Keys->GetTableKeys()->BuildKeys(ctx, ITableKeys::EBuildKeysMode::DROP);
ctx.PushBlockShortcuts();
- if (!keys || !keys->Init(ctx, FakeSource.Get())) {
+ if (!keys || !keys->Init(ctx, FakeSource_.Get())) {
return false;
}
keys = ctx.GroundBlockShortcutsForExpr(keys);
Add("block", Q(Y(
- Y("let", "sink", Y("DataSink", BuildQuotedAtom(Pos, Table.ServiceName(ctx)), BuildQuotedAtom(Pos, Table.Cluster))),
+ Y("let", "sink", Y("DataSink", BuildQuotedAtom(Pos_, Table_.ServiceName(ctx)), BuildQuotedAtom(Pos_, Table_.Cluster))),
Y("let", "world", Y(TString(WriteName), "world", "sink", keys, Y("Void"), Q(Y(Q(Y(Q("mode"), Q("drop"))))))),
Y("return", ctx.PragmaAutoCommit ? Y(TString(CommitName), "world", "sink") : AstNode("world"))
)));
- ctx.UsedClusters.insert(Table.Cluster);
- return TAstListNode::DoInit(ctx, FakeSource.Get());
+ ctx.UsedClusters.insert(Table_.Cluster);
+ return TAstListNode::DoInit(ctx, FakeSource_.Get());
}
TPtr DoClone() const final {
return {};
}
private:
- TTableRef Table;
- TSourcePtr FakeSource;
+ TTableRef Table_;
+ TSourcePtr FakeSource_;
};
TNodePtr BuildDropTable(TPosition pos, const TTableRef& tr) {
@@ -734,24 +734,24 @@ public:
TWriteTableNode(TPosition pos, const TString& label, const TTableRef& table, EWriteColumnMode mode,
TNodePtr options)
: TAstListNode(pos)
- , Label(label)
- , Table(table)
- , Mode(mode)
- , Options(options)
+ , Label_(label)
+ , Table_(table)
+ , Mode_(mode)
+ , Options_(options)
{}
bool DoInit(TContext& ctx, ISource* src) override {
- if (!Table.Check(ctx)) {
+ if (!Table_.Check(ctx)) {
return false;
}
- auto keys = Table.Keys->GetTableKeys()->BuildKeys(ctx, ITableKeys::EBuildKeysMode::WRITE);
+ auto keys = Table_.Keys->GetTableKeys()->BuildKeys(ctx, ITableKeys::EBuildKeysMode::WRITE);
ctx.PushBlockShortcuts();
if (!keys || !keys->Init(ctx, src)) {
return false;
}
keys = ctx.GroundBlockShortcutsForExpr(keys);
- const auto serviceName = to_lower(Table.ServiceName(ctx));
+ const auto serviceName = to_lower(Table_.ServiceName(ctx));
auto getModesMap = [] (const TString& serviceName) -> const TMap<EWriteColumnMode, TString>& {
if (serviceName == KikimrProviderName) {
return columnModeToStrMapKikimr;
@@ -763,27 +763,27 @@ public:
};
auto options = Y();
- if (Options) {
- if (!Options->Init(ctx, src)) {
+ if (Options_) {
+ if (!Options_->Init(ctx, src)) {
return false;
}
- options = L(Options);
+ options = L(Options_);
}
- if (Mode != EWriteColumnMode::Default) {
- auto modeStr = getModesMap(serviceName).FindPtr(Mode);
+ if (Mode_ != EWriteColumnMode::Default) {
+ auto modeStr = getModesMap(serviceName).FindPtr(Mode_);
options->Add(Q(Y(Q("mode"), Q(modeStr ? *modeStr : "unsupported"))));
}
Add("block", Q((Y(
- Y("let", "sink", Y("DataSink", BuildQuotedAtom(Pos, Table.ServiceName(ctx)), BuildQuotedAtom(Pos, Table.Cluster))),
- Y("let", "world", Y(TString(WriteName), "world", "sink", keys, Label, Q(options))),
+ Y("let", "sink", Y("DataSink", BuildQuotedAtom(Pos_, Table_.ServiceName(ctx)), BuildQuotedAtom(Pos_, Table_.Cluster))),
+ Y("let", "world", Y(TString(WriteName), "world", "sink", keys, Label_, Q(options))),
Y("return", ctx.PragmaAutoCommit ? Y(TString(CommitName), "world", "sink") : AstNode("world"))
))));
- ctx.UsedClusters.insert(Table.Cluster);
+ ctx.UsedClusters.insert(Table_.Cluster);
return TAstListNode::DoInit(ctx, src);
}
@@ -791,10 +791,10 @@ public:
return {};
}
private:
- TString Label;
- TTableRef Table;
- EWriteColumnMode Mode;
- TNodePtr Options;
+ TString Label_;
+ TTableRef Table_;
+ EWriteColumnMode Mode_;
+ TNodePtr Options_;
};
TNodePtr BuildWriteTable(TPosition pos, const TString& label, const TTableRef& table, EWriteColumnMode mode, TNodePtr options)
@@ -806,14 +806,14 @@ class TClustersSinkOperationBase: public TAstListNode {
protected:
TClustersSinkOperationBase(TPosition pos, const TSet<TString>& clusters)
: TAstListNode(pos)
- , Clusters(clusters) {}
+ , Clusters_(clusters) {}
virtual TPtr ProduceOperation(TContext& ctx, const TString& sinkName, const TString& service) = 0;
bool DoInit(TContext& ctx, ISource* src) override {
auto block(Y());
- auto clusters = &Clusters;
- if (Clusters.empty()) {
+ auto clusters = &Clusters_;
+ if (Clusters_.empty()) {
clusters = &ctx.UsedClusters;
}
if (clusters->empty() && !ctx.CurrCluster.empty()) {
@@ -835,7 +835,7 @@ protected:
return false;
}
- block = L(block, Y("let", sinkName, Y("DataSink", BuildQuotedAtom(Pos, *service), BuildQuotedAtom(Pos, normalizedClusterName))));
+ block = L(block, Y("let", sinkName, Y("DataSink", BuildQuotedAtom(Pos_, *service), BuildQuotedAtom(Pos_, normalizedClusterName))));
block = L(block, op);
}
@@ -850,7 +850,7 @@ protected:
return {};
}
private:
- TSet<TString> Clusters;
+ TSet<TString> Clusters_;
};
class TCommitClustersNode: public TClustersSinkOperationBase {
@@ -892,18 +892,18 @@ class TWriteResultNode final: public TAstListNode {
public:
TWriteResultNode(TPosition pos, const TString& label, TNodePtr settings, const TSet<TString>& clusters)
: TAstListNode(pos)
- , Label(label)
- , Settings(settings)
- , CommitClusters(BuildCommitClusters(Pos, clusters))
+ , Label_(label)
+ , Settings_(settings)
+ , CommitClusters_(BuildCommitClusters(Pos_, clusters))
{}
bool DoInit(TContext& ctx, ISource* src) override {
auto block(Y(
Y("let", "result_sink", Y("DataSink", Q(TString(ResultProviderName)))),
- Y("let", "world", Y(TString(WriteName), "world", "result_sink", Y("Key"), Label, Q(Settings)))
+ Y("let", "world", Y(TString(WriteName), "world", "result_sink", Y("Key"), Label_, Q(Settings_)))
));
if (ctx.PragmaAutoCommit) {
- block = L(block, Y("let", "world", CommitClusters));
+ block = L(block, Y("let", "world", CommitClusters_));
}
block = L(block, Y("return", Y(TString(CommitName), "world", "result_sink")));
@@ -915,9 +915,9 @@ public:
return {};
}
private:
- TString Label;
- TNodePtr Settings;
- TNodePtr CommitClusters;
+ TString Label_;
+ TNodePtr Settings_;
+ TNodePtr CommitClusters_;
};
TNodePtr BuildWriteResult(TPosition pos, const TString& label, TNodePtr settings, const TSet<TString>& clusters) {
@@ -928,13 +928,13 @@ class TYqlProgramNode: public TAstListNode {
public:
TYqlProgramNode(TPosition pos, const TVector<TNodePtr>& blocks, bool topLevel)
: TAstListNode(pos)
- , Blocks(blocks)
- , TopLevel(topLevel)
+ , Blocks_(blocks)
+ , TopLevel_(topLevel)
{}
bool DoInit(TContext& ctx, ISource* src) override {
bool hasError = false;
- if (TopLevel) {
+ if (TopLevel_) {
for (auto& var: ctx.Variables) {
if (!var.second->Init(ctx, src)) {
hasError = true;
@@ -945,22 +945,22 @@ public:
for (const auto& lib : ctx.Libraries) {
Add(Y("library",
- new TAstAtomNodeImpl(Pos, lib, TNodeFlags::ArbitraryContent)));
+ new TAstAtomNodeImpl(Pos_, lib, TNodeFlags::ArbitraryContent)));
}
- Add(Y("import", "aggregate_module", BuildQuotedAtom(Pos, "/lib/yql/aggregate.yqls")));
- Add(Y("import", "window_module", BuildQuotedAtom(Pos, "/lib/yql/window.yqls")));
+ Add(Y("import", "aggregate_module", BuildQuotedAtom(Pos_, "/lib/yql/aggregate.yqls")));
+ Add(Y("import", "window_module", BuildQuotedAtom(Pos_, "/lib/yql/window.yqls")));
for (const auto& module : ctx.Settings.ModuleMapping) {
TString moduleName(module.first + "_module");
moduleName.to_lower();
- Add(Y("import", moduleName, BuildQuotedAtom(Pos, module.second)));
+ Add(Y("import", moduleName, BuildQuotedAtom(Pos_, module.second)));
}
for (const auto& moduleAlias : ctx.ImportModuleAliases) {
- Add(Y("import", moduleAlias.second, BuildQuotedAtom(Pos, moduleAlias.first)));
+ Add(Y("import", moduleAlias.second, BuildQuotedAtom(Pos_, moduleAlias.first)));
}
for (const auto& x : ctx.SimpleUdfs) {
- Add(Y("let", x.second, Y("Udf", BuildQuotedAtom(Pos, x.first))));
+ Add(Y("let", x.second, Y("Udf", BuildQuotedAtom(Pos_, x.first))));
}
for (auto& nodes: ctx.NamedNodes) {
@@ -981,28 +981,28 @@ public:
}
if (ctx.Settings.Mode != NSQLTranslation::ESqlMode::LIBRARY) {
- auto configSource = Y("DataSource", BuildQuotedAtom(Pos, TString(ConfigProviderName)));
- auto resultSink = Y("DataSink", BuildQuotedAtom(Pos, TString(ResultProviderName)));
+ auto configSource = Y("DataSource", BuildQuotedAtom(Pos_, TString(ConfigProviderName)));
+ auto resultSink = Y("DataSink", BuildQuotedAtom(Pos_, TString(ResultProviderName)));
for (const auto& warningPragma : ctx.WarningPolicy.GetRules()) {
Add(Y("let", "world", Y(TString(ConfigureName), "world", configSource,
- BuildQuotedAtom(Pos, "Warning"), BuildQuotedAtom(Pos, warningPragma.GetPattern()),
- BuildQuotedAtom(Pos, to_lower(ToString(warningPragma.GetAction()))))));
+ BuildQuotedAtom(Pos_, "Warning"), BuildQuotedAtom(Pos_, warningPragma.GetPattern()),
+ BuildQuotedAtom(Pos_, to_lower(ToString(warningPragma.GetAction()))))));
}
if (ctx.ResultSizeLimit > 0) {
Add(Y("let", "world", Y(TString(ConfigureName), "world", resultSink,
- BuildQuotedAtom(Pos, "SizeLimit"), BuildQuotedAtom(Pos, ToString(ctx.ResultSizeLimit)))));
+ BuildQuotedAtom(Pos_, "SizeLimit"), BuildQuotedAtom(Pos_, ToString(ctx.ResultSizeLimit)))));
}
if (!ctx.PragmaPullUpFlatMapOverJoin) {
Add(Y("let", "world", Y(TString(ConfigureName), "world", configSource,
- BuildQuotedAtom(Pos, "DisablePullUpFlatMapOverJoin"))));
+ BuildQuotedAtom(Pos_, "DisablePullUpFlatMapOverJoin"))));
}
}
}
- for (auto& block: Blocks) {
+ for (auto& block: Blocks_) {
if (block->SubqueryAlias()) {
continue;
}
@@ -1012,7 +1012,7 @@ public:
}
}
- for (auto& block: Blocks) {
+ for (auto& block: Blocks_) {
const auto subqueryAliasPtr = block->SubqueryAlias();
if (subqueryAliasPtr) {
if (block->UsedSubquery()) {
@@ -1028,14 +1028,14 @@ public:
}
}
- if (TopLevel) {
+ if (TopLevel_) {
if (ctx.UniversalAliases) {
- decltype(Nodes) preparedNodes;
- preparedNodes.swap(Nodes);
+ decltype(Nodes_) preparedNodes;
+ preparedNodes.swap(Nodes_);
for (auto aliasPair : ctx.UniversalAliases) {
Add(Y("let", aliasPair.first, aliasPair.second));
}
- Nodes.insert(Nodes.end(), preparedNodes.begin(), preparedNodes.end());
+ Nodes_.insert(Nodes_.end(), preparedNodes.begin(), preparedNodes.end());
}
for (const auto& symbol: ctx.Exports) {
@@ -1043,7 +1043,7 @@ public:
}
}
- if (!TopLevel || ctx.Settings.Mode != NSQLTranslation::ESqlMode::LIBRARY) {
+ if (!TopLevel_ || ctx.Settings.Mode != NSQLTranslation::ESqlMode::LIBRARY) {
Add(Y("return", "world"));
}
@@ -1054,8 +1054,8 @@ public:
return {};
}
private:
- TVector<TNodePtr> Blocks;
- const bool TopLevel;
+ TVector<TNodePtr> Blocks_;
+ const bool TopLevel_;
};
TNodePtr BuildQuery(TPosition pos, const TVector<TNodePtr>& blocks, bool topLevel) {
@@ -1066,69 +1066,69 @@ class TPragmaNode final: public INode {
public:
TPragmaNode(TPosition pos, const TString& prefix, const TString& name, const TVector<TDeferredAtom>& values, bool valueDefault)
: INode(pos)
- , Prefix(prefix)
- , Name(name)
- , Values(values)
- , ValueDefault(valueDefault)
+ , Prefix_(prefix)
+ , Name_(name)
+ , Values_(values)
+ , ValueDefault_(valueDefault)
{
- FakeSource = BuildFakeSource(pos);
+ FakeSource_ = BuildFakeSource(pos);
}
bool DoInit(TContext& ctx, ISource* src) override {
Y_UNUSED(src);
TString serviceName;
TString cluster;
- if (std::find(Providers.cbegin(), Providers.cend(), Prefix) != Providers.cend()) {
+ if (std::find(Providers.cbegin(), Providers.cend(), Prefix_) != Providers.cend()) {
cluster = "$all";
- serviceName = Prefix;
+ serviceName = Prefix_;
} else {
- serviceName = *ctx.GetClusterProvider(Prefix, cluster);
+ serviceName = *ctx.GetClusterProvider(Prefix_, cluster);
}
- auto datasource = Y("DataSource", BuildQuotedAtom(Pos, serviceName));
- if (Prefix != ConfigProviderName) {
- datasource = L(datasource, BuildQuotedAtom(Pos, cluster));
+ auto datasource = Y("DataSource", BuildQuotedAtom(Pos_, serviceName));
+ if (Prefix_ != ConfigProviderName) {
+ datasource = L(datasource, BuildQuotedAtom(Pos_, cluster));
}
- Node = Y();
- Node = L(Node, AstNode(TString(ConfigureName)));
- Node = L(Node, AstNode(TString(TStringBuf("world"))));
- Node = L(Node, datasource);
+ Node_ = Y();
+ Node_ = L(Node_, AstNode(TString(ConfigureName)));
+ Node_ = L(Node_, AstNode(TString(TStringBuf("world"))));
+ Node_ = L(Node_, datasource);
- if (Name == TStringBuf("flags")) {
- for (ui32 i = 0; i < Values.size(); ++i) {
- Node = L(Node, Values[i].Build());
+ if (Name_ == TStringBuf("flags")) {
+ for (ui32 i = 0; i < Values_.size(); ++i) {
+ Node_ = L(Node_, Values_[i].Build());
}
}
- else if (Name == TStringBuf("AddFileByUrl") || Name == TStringBuf("AddFolderByUrl") || Name == TStringBuf("ImportUdfs")) {
- Node = L(Node, BuildQuotedAtom(Pos, Name));
- for (ui32 i = 0; i < Values.size(); ++i) {
- Node = L(Node, Values[i].Build());
+ else if (Name_ == TStringBuf("AddFileByUrl") || Name_ == TStringBuf("AddFolderByUrl") || Name_ == TStringBuf("ImportUdfs")) {
+ Node_ = L(Node_, BuildQuotedAtom(Pos_, Name_));
+ for (ui32 i = 0; i < Values_.size(); ++i) {
+ Node_ = L(Node_, Values_[i].Build());
}
}
- else if (Name == TStringBuf("auth")) {
- Node = L(Node, BuildQuotedAtom(Pos, "Auth"));
- Node = L(Node, Values.empty() ? BuildQuotedAtom(Pos, TString()) : Values.front().Build());
+ else if (Name_ == TStringBuf("auth")) {
+ Node_ = L(Node_, BuildQuotedAtom(Pos_, "Auth"));
+ Node_ = L(Node_, Values_.empty() ? BuildQuotedAtom(Pos_, TString()) : Values_.front().Build());
}
else {
- Node = L(Node, BuildQuotedAtom(Pos, "Attr"));
- Node = L(Node, BuildQuotedAtom(Pos, Name));
- if (!ValueDefault) {
- Node = L(Node, Values.empty() ? BuildQuotedAtom(Pos, TString()) : Values.front().Build());
+ Node_ = L(Node_, BuildQuotedAtom(Pos_, "Attr"));
+ Node_ = L(Node_, BuildQuotedAtom(Pos_, Name_));
+ if (!ValueDefault_) {
+ Node_ = L(Node_, Values_.empty() ? BuildQuotedAtom(Pos_, TString()) : Values_.front().Build());
}
}
ctx.PushBlockShortcuts();
- if (!Node->Init(ctx, FakeSource.Get())) {
+ if (!Node_->Init(ctx, FakeSource_.Get())) {
return false;
}
- Node = ctx.GroundBlockShortcutsForExpr(Node);
+ Node_ = ctx.GroundBlockShortcutsForExpr(Node_);
return true;
}
TAstNode* Translate(TContext& ctx) const override {
- return Node->Translate(ctx);
+ return Node_->Translate(ctx);
}
TPtr DoClone() const final {
@@ -1136,12 +1136,12 @@ public:
}
private:
- TString Prefix;
- TString Name;
- TVector<TDeferredAtom> Values;
- bool ValueDefault;
- TNodePtr Node;
- TSourcePtr FakeSource;
+ TString Prefix_;
+ TString Name_;
+ TVector<TDeferredAtom> Values_;
+ bool ValueDefault_;
+ TNodePtr Node_;
+ TSourcePtr FakeSource_;
};
TNodePtr BuildPragma(TPosition pos, const TString& prefix, const TString& name, const TVector<TDeferredAtom>& values, bool valueDefault) {
@@ -1152,27 +1152,27 @@ class TSqlLambda final: public TAstListNode {
public:
TSqlLambda(TPosition pos, TVector<TString>&& args, TVector<TNodePtr>&& exprSeq)
: TAstListNode(pos)
- , Args(args)
- , ExprSeq(exprSeq)
+ , Args_(args)
+ , ExprSeq_(exprSeq)
{
- FakeSource = BuildFakeSource(pos);
+ FakeSource_ = BuildFakeSource(pos);
}
bool DoInit(TContext& ctx, ISource* src) override {
Y_UNUSED(src);
- for (auto& exprPtr: ExprSeq) {
+ for (auto& exprPtr: ExprSeq_) {
ctx.PushBlockShortcuts();
- if (!exprPtr->Init(ctx, FakeSource.Get())) {
+ if (!exprPtr->Init(ctx, FakeSource_.Get())) {
return {};
}
const auto label = exprPtr->GetLabel();
exprPtr = ctx.GroundBlockShortcutsForExpr(exprPtr);
exprPtr->SetLabel(label);
}
- YQL_ENSURE(!ExprSeq.empty());
+ YQL_ENSURE(!ExprSeq_.empty());
auto body = Y();
- auto end = ExprSeq.end() - 1;
- for (auto iter = ExprSeq.begin(); iter != end; ++iter) {
+ auto end = ExprSeq_.end() - 1;
+ for (auto iter = ExprSeq_.begin(); iter != end; ++iter) {
auto exprPtr = *iter;
const auto& label = exprPtr->GetLabel();
YQL_ENSURE(label);
@@ -1180,7 +1180,7 @@ public:
}
body = Y("block", Q(L(body, Y("return", *end))));
auto args = Y();
- for (const auto& arg: Args) {
+ for (const auto& arg: Args_) {
args = L(args, BuildAtom(GetPos(), arg, NYql::TNodeFlags::Default));
}
Add("lambda", Q(args), body);
@@ -1192,13 +1192,13 @@ public:
}
void DoUpdateState() const override {
- State.Set(ENodeState::Const);
+ State_.Set(ENodeState::Const);
}
private:
- TVector<TString> Args;
- TVector<TNodePtr> ExprSeq;
- TSourcePtr FakeSource;
+ TVector<TString> Args_;
+ TVector<TNodePtr> ExprSeq_;
+ TSourcePtr FakeSource_;
};
TNodePtr BuildSqlLambda(TPosition pos, TVector<TString>&& args, TVector<TNodePtr>&& exprSeq) {
@@ -1209,37 +1209,37 @@ class TEvaluateIf final : public TAstListNode {
public:
TEvaluateIf(TPosition pos, TNodePtr predicate, TNodePtr thenNode, TNodePtr elseNode)
: TAstListNode(pos)
- , Predicate(predicate)
- , ThenNode(thenNode)
- , ElseNode(elseNode)
+ , Predicate_(predicate)
+ , ThenNode_(thenNode)
+ , ElseNode_(elseNode)
{
- FakeSource = BuildFakeSource(pos);
+ FakeSource_ = BuildFakeSource(pos);
}
bool DoInit(TContext& ctx, ISource* src) override {
ctx.PushBlockShortcuts();
- if (!Predicate->Init(ctx, FakeSource.Get())) {
+ if (!Predicate_->Init(ctx, FakeSource_.Get())) {
return{};
}
- auto predicate = ctx.GroundBlockShortcutsForExpr(Predicate);
+ auto predicate = ctx.GroundBlockShortcutsForExpr(Predicate_);
Add("EvaluateIf!");
Add("world");
Add(Y("EvaluateExpr", Y("EnsureType", Y("Coalesce", predicate, Y("Bool", Q("false"))), Y("DataType", Q("Bool")))));
ctx.PushBlockShortcuts();
- if (!ThenNode->Init(ctx, FakeSource.Get())) {
+ if (!ThenNode_->Init(ctx, FakeSource_.Get())) {
return{};
}
- auto thenNode = ctx.GroundBlockShortcutsForExpr(ThenNode);
+ auto thenNode = ctx.GroundBlockShortcutsForExpr(ThenNode_);
Add(thenNode);
- if (ElseNode) {
+ if (ElseNode_) {
ctx.PushBlockShortcuts();
- if (!ElseNode->Init(ctx, FakeSource.Get())) {
+ if (!ElseNode_->Init(ctx, FakeSource_.Get())) {
return{};
}
- auto elseNode = ctx.GroundBlockShortcutsForExpr(ElseNode);
+ auto elseNode = ctx.GroundBlockShortcutsForExpr(ElseNode_);
Add(elseNode);
}
@@ -1251,10 +1251,10 @@ public:
}
private:
- TNodePtr Predicate;
- TNodePtr ThenNode;
- TNodePtr ElseNode;
- TSourcePtr FakeSource;
+ TNodePtr Predicate_;
+ TNodePtr ThenNode_;
+ TNodePtr ElseNode_;
+ TSourcePtr FakeSource_;
};
TNodePtr BuildEvaluateIfNode(TPosition pos, TNodePtr predicate, TNodePtr thenNode, TNodePtr elseNode) {
@@ -1265,36 +1265,36 @@ class TEvaluateFor final : public TAstListNode {
public:
TEvaluateFor(TPosition pos, TNodePtr list, TNodePtr bodyNode, TNodePtr elseNode)
: TAstListNode(pos)
- , List(list)
- , BodyNode(bodyNode)
- , ElseNode(elseNode)
+ , List_(list)
+ , BodyNode_(bodyNode)
+ , ElseNode_(elseNode)
{
- FakeSource = BuildFakeSource(pos);
+ FakeSource_ = BuildFakeSource(pos);
}
bool DoInit(TContext& ctx, ISource* src) override {
ctx.PushBlockShortcuts();
- if (!List->Init(ctx, FakeSource.Get())) {
+ if (!List_->Init(ctx, FakeSource_.Get())) {
return{};
}
- auto list = ctx.GroundBlockShortcutsForExpr(List);
+ auto list = ctx.GroundBlockShortcutsForExpr(List_);
Add("EvaluateFor!");
Add("world");
Add(Y("EvaluateExpr", list));
ctx.PushBlockShortcuts();
- if (!BodyNode->Init(ctx, FakeSource.Get())) {
+ if (!BodyNode_->Init(ctx, FakeSource_.Get())) {
return{};
}
- auto bodyNode = ctx.GroundBlockShortcutsForExpr(BodyNode);
+ auto bodyNode = ctx.GroundBlockShortcutsForExpr(BodyNode_);
Add(bodyNode);
- if (ElseNode) {
+ if (ElseNode_) {
ctx.PushBlockShortcuts();
- if (!ElseNode->Init(ctx, FakeSource.Get())) {
+ if (!ElseNode_->Init(ctx, FakeSource_.Get())) {
return{};
}
- auto elseNode = ctx.GroundBlockShortcutsForExpr(ElseNode);
+ auto elseNode = ctx.GroundBlockShortcutsForExpr(ElseNode_);
Add(elseNode);
}
@@ -1306,10 +1306,10 @@ public:
}
private:
- TNodePtr List;
- TNodePtr BodyNode;
- TNodePtr ElseNode;
- TSourcePtr FakeSource;
+ TNodePtr List_;
+ TNodePtr BodyNode_;
+ TNodePtr ElseNode_;
+ TSourcePtr FakeSource_;
};
TNodePtr BuildEvaluateForNode(TPosition pos, TNodePtr list, TNodePtr bodyNode, TNodePtr elseNode) {
diff --git a/yql/essentials/sql/v0/select.cpp b/yql/essentials/sql/v0/select.cpp
index f4c641de8b2..0e5271191ef 100644
--- a/yql/essentials/sql/v0/select.cpp
+++ b/yql/essentials/sql/v0/select.cpp
@@ -15,61 +15,61 @@ class TSubqueryNode: public INode {
public:
TSubqueryNode(TSourcePtr&& source, const TString& alias, bool inSubquery, int ensureTupleSize)
: INode(source->GetPos())
- , Source(std::move(source))
- , Alias(alias)
- , InSubquery(inSubquery)
- , EnsureTupleSize(ensureTupleSize)
+ , Source_(std::move(source))
+ , Alias_(alias)
+ , InSubquery_(inSubquery)
+ , EnsureTupleSize_(ensureTupleSize)
{
- YQL_ENSURE(!Alias.empty());
+ YQL_ENSURE(!Alias_.empty());
}
ISource* GetSource() override {
- return Source.Get();
+ return Source_.Get();
}
bool DoInit(TContext& ctx, ISource* src) override {
YQL_ENSURE(!src, "Source not expected for subquery node");
- Source->UseAsInner();
- if (!Source->Init(ctx, nullptr)) {
+ Source_->UseAsInner();
+ if (!Source_->Init(ctx, nullptr)) {
return false;
}
TTableList tableList;
- Source->GetInputTables(tableList);
+ Source_->GetInputTables(tableList);
- auto tables = BuildInputTables(Pos, tableList, InSubquery);
- if (!tables->Init(ctx, Source.Get())) {
+ auto tables = BuildInputTables(Pos_, tableList, InSubquery_);
+ if (!tables->Init(ctx, Source_.Get())) {
return false;
}
- auto source = Source->Build(ctx);
+ auto source = Source_->Build(ctx);
if (!source) {
return false;
}
- if (EnsureTupleSize != -1) {
- source = Y("EnsureTupleSize", source, Q(ToString(EnsureTupleSize)));
+ if (EnsureTupleSize_ != -1) {
+ source = Y("EnsureTupleSize", source, Q(ToString(EnsureTupleSize_)));
}
- Node = Y("let", Alias, Y("block", Q(L(tables, Y("return", Q(Y("world", source)))))));
- IsUsed = true;
+ Node_ = Y("let", Alias_, Y("block", Q(L(tables, Y("return", Q(Y("world", source)))))));
+ IsUsed_ = true;
return true;
}
void DoUpdateState() const override {
- State.Set(ENodeState::Const, true);
+ State_.Set(ENodeState::Const, true);
}
bool UsedSubquery() const override {
- return IsUsed;
+ return IsUsed_;
}
TAstNode* Translate(TContext& ctx) const override {
- Y_DEBUG_ABORT_UNLESS(Node);
- return Node->Translate(ctx);
+ Y_DEBUG_ABORT_UNLESS(Node_);
+ return Node_->Translate(ctx);
}
const TString* SubqueryAlias() const override {
- return &Alias;
+ return &Alias_;
}
TPtr DoClone() const final {
@@ -77,12 +77,12 @@ public:
}
protected:
- TSourcePtr Source;
- TNodePtr Node;
- const TString Alias;
- const bool InSubquery;
- const int EnsureTupleSize;
- bool IsUsed = false;
+ TSourcePtr Source_;
+ TNodePtr Node_;
+ const TString Alias_;
+ const bool InSubquery_;
+ const int EnsureTupleSize_;
+ bool IsUsed_ = false;
};
TNodePtr BuildSubquery(TSourcePtr source, const TString& alias, bool inSubquery, int ensureTupleSize) {
@@ -93,60 +93,60 @@ class TSourceNode: public INode {
public:
TSourceNode(TPosition pos, TSourcePtr&& source, bool checkExist)
: INode(pos)
- , Source(std::move(source))
- , CheckExist(checkExist)
+ , Source_(std::move(source))
+ , CheckExist_(checkExist)
{}
ISource* GetSource() override {
- return Source.Get();
+ return Source_.Get();
}
bool DoInit(TContext& ctx, ISource* src) override {
- if (AsInner) {
- Source->UseAsInner();
+ if (AsInner_) {
+ Source_->UseAsInner();
}
- if (!Source->Init(ctx, src)) {
+ if (!Source_->Init(ctx, src)) {
return false;
}
- Node = Source->Build(ctx);
- if (!Node) {
+ Node_ = Source_->Build(ctx);
+ if (!Node_) {
return false;
}
if (src) {
if (IsSubquery()) {
/// should be not used?
- auto columnsPtr = Source->GetColumns();
+ auto columnsPtr = Source_->GetColumns();
if (!columnsPtr || columnsPtr->All || columnsPtr->QualifiedAll || columnsPtr->List.size() != 1) {
- ctx.Error(Pos) << "Source used in expression should contain one concrete column";
+ ctx.Error(Pos_) << "Source used in expression should contain one concrete column";
return false;
}
- Node = Y("Member", Y("SqlAccess", Q("dict"), Y("Take", Node, Y("Uint64", Q("1"))), Y("Uint64", Q("0"))), Q(columnsPtr->List.front()));
+ Node_ = Y("Member", Y("SqlAccess", Q("dict"), Y("Take", Node_, Y("Uint64", Q("1"))), Y("Uint64", Q("0"))), Q(columnsPtr->List.front()));
}
- src->AddDependentSource(Source.Get());
+ src->AddDependentSource(Source_.Get());
}
return true;
}
bool IsSubquery() const {
- return !AsInner && Source->IsSelect() && !CheckExist;
+ return !AsInner_ && Source_->IsSelect() && !CheckExist_;
}
void DoUpdateState() const override {
- State.Set(ENodeState::Const, IsSubquery());
+ State_.Set(ENodeState::Const, IsSubquery());
}
TAstNode* Translate(TContext& ctx) const override {
- Y_DEBUG_ABORT_UNLESS(Node);
- return Node->Translate(ctx);
+ Y_DEBUG_ABORT_UNLESS(Node_);
+ return Node_->Translate(ctx);
}
TPtr DoClone() const final {
- return new TSourceNode(Pos, Source->CloneSource(), CheckExist);
+ return new TSourceNode(Pos_, Source_->CloneSource(), CheckExist_);
}
protected:
- TSourcePtr Source;
- TNodePtr Node;
- bool CheckExist;
+ TSourcePtr Source_;
+ TNodePtr Node_;
+ bool CheckExist_;
};
TNodePtr BuildSourceNode(TPosition pos, TSourcePtr source, bool checkExist) {
@@ -165,7 +165,7 @@ public:
bool AddFilter(TContext& ctx, TNodePtr filter) override {
Y_UNUSED(filter);
- ctx.Error(Pos) << "Source does not allow filtering";
+ ctx.Error(Pos_) << "Source does not allow filtering";
return false;
}
@@ -176,13 +176,13 @@ public:
bool AddGroupKey(TContext& ctx, const TString& column) override {
Y_UNUSED(column);
- ctx.Error(Pos) << "Source does not allow grouping";
+ ctx.Error(Pos_) << "Source does not allow grouping";
return false;
}
bool AddAggregation(TContext& ctx, TAggregationPtr aggr) override {
Y_UNUSED(aggr);
- ctx.Error(Pos) << "Source does not allow aggregation";
+ ctx.Error(Pos_) << "Source does not allow aggregation";
return false;
}
@@ -204,7 +204,7 @@ public:
}
TPtr DoClone() const final {
- return new TFakeSource(Pos);
+ return new TFakeSource(Pos_);
}
};
@@ -216,26 +216,26 @@ class TNodeSource: public ISource {
public:
TNodeSource(TPosition pos, const TNodePtr& node)
: ISource(pos)
- , Node(node)
+ , Node_(node)
{
- YQL_ENSURE(Node);
- FakeSource = BuildFakeSource(pos);
+ YQL_ENSURE(Node_);
+ FakeSource_ = BuildFakeSource(pos);
}
void AllColumns() final {
- UseAllColumns = true;
+ UseAllColumns_ = true;
}
TMaybe<bool> AddColumn(TContext& ctx, TColumnNode& column) final {
Y_UNUSED(ctx);
- if (UseAllColumns) {
+ if (UseAllColumns_) {
return true;
}
if (column.IsAsterisk()) {
AllColumns();
} else {
- Columns.push_back(*column.GetColumnName());
+ Columns_.push_back(*column.GetColumnName());
}
return true;
@@ -243,34 +243,34 @@ public:
TNodePtr Build(TContext& ctx) final {
ctx.PushBlockShortcuts();
- if (!Node->Init(ctx, FakeSource.Get())) {
+ if (!Node_->Init(ctx, FakeSource_.Get())) {
return {};
}
- Node = ctx.GroundBlockShortcutsForExpr(Node);
- auto nodeAst = AstNode(Node);
+ Node_ = ctx.GroundBlockShortcutsForExpr(Node_);
+ auto nodeAst = AstNode(Node_);
- if (UseAllColumns) {
+ if (UseAllColumns_) {
return nodeAst;
} else {
auto members = Y();
- for (auto& column : Columns) {
- members = L(members, BuildQuotedAtom(Pos, column));
+ for (auto& column : Columns_) {
+ members = L(members, BuildQuotedAtom(Pos_, column));
}
- return Y(ctx.UseUnordered(*this) ? "OrderedMap" : "Map", nodeAst, BuildLambda(Pos, Y("row"), Y("SelectMembers", "row", Q(members))));
+ return Y(ctx.UseUnordered(*this) ? "OrderedMap" : "Map", nodeAst, BuildLambda(Pos_, Y("row"), Y("SelectMembers", "row", Q(members))));
}
}
TPtr DoClone() const final {
- return new TNodeSource(Pos, Node);
+ return new TNodeSource(Pos_, Node_);
}
private:
- TNodePtr Node;
- TSourcePtr FakeSource;
- TVector<TString> Columns;
- bool UseAllColumns = false;
+ TNodePtr Node_;
+ TSourcePtr FakeSource_;
+ TVector<TString> Columns_;
+ bool UseAllColumns_ = false;
};
TSourcePtr BuildNodeSource(TPosition pos, const TNodePtr& node) {
@@ -281,58 +281,58 @@ class IProxySource: public ISource {
protected:
IProxySource(TPosition pos, ISource* src)
: ISource(pos)
- , Source(src)
+ , Source_(src)
{}
void AllColumns() override {
- Y_DEBUG_ABORT_UNLESS(Source);
- return Source->AllColumns();
+ Y_DEBUG_ABORT_UNLESS(Source_);
+ return Source_->AllColumns();
}
const TColumns* GetColumns() const override {
- Y_DEBUG_ABORT_UNLESS(Source);
- return Source->GetColumns();
+ Y_DEBUG_ABORT_UNLESS(Source_);
+ return Source_->GetColumns();
}
void GetInputTables(TTableList& tableList) const override {
- Source->GetInputTables(tableList);
+ Source_->GetInputTables(tableList);
ISource::GetInputTables(tableList);
}
TMaybe<bool> AddColumn(TContext& ctx, TColumnNode& column) override {
- Y_DEBUG_ABORT_UNLESS(Source);
- const TString label(Source->GetLabel());
- Source->SetLabel(Label);
- const auto ret = Source->AddColumn(ctx, column);
- Source->SetLabel(label);
+ Y_DEBUG_ABORT_UNLESS(Source_);
+ const TString label(Source_->GetLabel());
+ Source_->SetLabel(Label_);
+ const auto ret = Source_->AddColumn(ctx, column);
+ Source_->SetLabel(label);
return ret;
}
bool ShouldUseSourceAsColumn(const TString& source) override {
- return Source->ShouldUseSourceAsColumn(source);
+ return Source_->ShouldUseSourceAsColumn(source);
}
bool IsStream() const override {
- Y_DEBUG_ABORT_UNLESS(Source);
- return Source->IsStream();
+ Y_DEBUG_ABORT_UNLESS(Source_);
+ return Source_->IsStream();
}
bool IsOrdered() const override {
- Y_DEBUG_ABORT_UNLESS(Source);
- return Source->IsOrdered();
+ Y_DEBUG_ABORT_UNLESS(Source_);
+ return Source_->IsOrdered();
}
TWriteSettings GetWriteSettings() const override {
- Y_DEBUG_ABORT_UNLESS(Source);
- return Source->GetWriteSettings();
+ Y_DEBUG_ABORT_UNLESS(Source_);
+ return Source_->GetWriteSettings();
}
protected:
void SetSource(ISource* source) {
- Source = source;
+ Source_ = source;
}
- ISource* Source;
+ ISource* Source_;
};
class IRealSource: public ISource {
@@ -343,11 +343,11 @@ protected:
}
void AllColumns() override {
- Columns.SetAll();
+ Columns_.SetAll();
}
const TColumns* GetColumns() const override {
- return &Columns;
+ return &Columns_;
}
TMaybe<bool> AddColumn(TContext& ctx, TColumnNode& column) override {
@@ -362,7 +362,7 @@ protected:
return true;
}
const auto* name = column.GetColumnName();
- if (name && !Columns.IsColumnPossible(ctx, *name) && !IsAlias(EExprSeat::GroupBy, *name)) {
+ if (name && !Columns_.IsColumnPossible(ctx, *name) && !IsAlias(EExprSeat::GroupBy, *name)) {
if (column.IsReliable()) {
TStringBuilder sb;
sb << "Column " << *name << " is not in source column set";
@@ -377,51 +377,51 @@ protected:
}
TMaybe<TString> FindColumnMistype(const TString& name) const override {
- auto result = FindMistypeIn(Columns.Real, name);
+ auto result = FindMistypeIn(Columns_.Real, name);
if (!result) {
- auto result = FindMistypeIn(Columns.Artificial, name);
+ auto result = FindMistypeIn(Columns_.Artificial, name);
}
return result ? result : ISource::FindColumnMistype(name);
}
protected:
- TColumns Columns;
+ TColumns Columns_;
};
class TMuxSource: public ISource {
public:
TMuxSource(TPosition pos, TVector<TSourcePtr>&& sources)
: ISource(pos)
- , Sources(std::move(sources))
+ , Sources_(std::move(sources))
{
- YQL_ENSURE(Sources.size() > 1);
+ YQL_ENSURE(Sources_.size() > 1);
}
void AllColumns() final {
- for (auto& source: Sources) {
+ for (auto& source: Sources_) {
source->AllColumns();
}
}
const TColumns* GetColumns() const final {
// Columns are equal in all sources. Return from the first one
- return Sources.front()->GetColumns();
+ return Sources_.front()->GetColumns();
}
void GetInputTables(TTableList& tableList) const final {
- for (auto& source: Sources) {
+ for (auto& source: Sources_) {
source->GetInputTables(tableList);
}
ISource::GetInputTables(tableList);
}
bool IsStream() const final {
- return AnyOf(Sources, [] (const TSourcePtr& s) { return s->IsStream(); });
+ return AnyOf(Sources_, [] (const TSourcePtr& s) { return s->IsStream(); });
}
bool DoInit(TContext& ctx, ISource* src) final {
- for (auto& source: Sources) {
- if (AsInner) {
+ for (auto& source: Sources_) {
+ if (AsInner_) {
source->UseAsInner();
}
@@ -435,13 +435,13 @@ public:
if (!source->InitFilters(ctx)) {
return false;
}
- FiltersGrounds.push_back(ctx.GroundBlockShortcuts(Pos));
+ FiltersGrounds_.push_back(ctx.GroundBlockShortcuts(Pos_));
}
return true;
}
TMaybe<bool> AddColumn(TContext& ctx, TColumnNode& column) final {
- for (auto& source: Sources) {
+ for (auto& source: Sources_) {
if (!source->AddColumn(ctx, column)) {
return {};
}
@@ -452,8 +452,8 @@ public:
TNodePtr Build(TContext& ctx) final {
TNodePtr block;
auto muxArgs = Y();
- for (size_t i = 0; i < Sources.size(); ++i) {
- auto& source = Sources[i];
+ for (size_t i = 0; i < Sources_.size(); ++i) {
+ auto& source = Sources_[i];
auto input = source->Build(ctx);
auto ref = ctx.MakeName("src");
muxArgs->Add(ref);
@@ -462,7 +462,7 @@ public:
} else {
block = Y(Y("let", ref, input));
}
- auto filter = source->BuildFilter(ctx, ref, FiltersGrounds[i]);
+ auto filter = source->BuildFilter(ctx, ref, FiltersGrounds_[i]);
if (filter) {
block = L(block, Y("let", ref, filter));
}
@@ -478,12 +478,12 @@ public:
TPtr DoClone() const final {
// Don't clone FiltersGrounds container because it will be initialized in DoInit of cloned object
- return new TMuxSource(Pos, CloneContainer(Sources));
+ return new TMuxSource(Pos_, CloneContainer(Sources_));
}
protected:
- TVector<TSourcePtr> Sources;
- TVector<TNodePtr> FiltersGrounds;
+ TVector<TSourcePtr> Sources_;
+ TVector<TNodePtr> FiltersGrounds_;
};
TSourcePtr BuildMuxSource(TPosition pos, TVector<TSourcePtr>&& sources) {
@@ -494,9 +494,9 @@ class TSubqueryRefNode: public IRealSource {
public:
TSubqueryRefNode(const TNodePtr& subquery, const TString& alias, int tupleIndex)
: IRealSource(subquery->GetPos())
- , Subquery(subquery)
- , Alias(alias)
- , TupleIndex(tupleIndex)
+ , Subquery_(subquery)
+ , Alias_(alias)
+ , TupleIndex_(tupleIndex)
{
YQL_ENSURE(subquery->GetSource());
}
@@ -507,56 +507,56 @@ public:
bool DoInit(TContext& ctx, ISource* src) override {
// independent subquery should not connect source
- Subquery->UseAsInner();
- if (!Subquery->Init(ctx, nullptr)) {
+ Subquery_->UseAsInner();
+ if (!Subquery_->Init(ctx, nullptr)) {
return false;
}
- Columns = *Subquery->GetSource()->GetColumns();
- Node = BuildAtom(Pos, Alias, TNodeFlags::Default);
- if (TupleIndex != -1) {
- Node = Y("Nth", Node, Q(ToString(TupleIndex)));
+ Columns_ = *Subquery_->GetSource()->GetColumns();
+ Node_ = BuildAtom(Pos_, Alias_, TNodeFlags::Default);
+ if (TupleIndex_ != -1) {
+ Node_ = Y("Nth", Node_, Q(ToString(TupleIndex_)));
}
- if (!Node->Init(ctx, src)) {
+ if (!Node_->Init(ctx, src)) {
return false;
}
- if (src && Subquery->GetSource()->IsSelect()) {
- auto columnsPtr = &Columns;
+ if (src && Subquery_->GetSource()->IsSelect()) {
+ auto columnsPtr = &Columns_;
if (!columnsPtr || columnsPtr->All || columnsPtr->QualifiedAll || columnsPtr->List.size() != 1) {
- ctx.Error(Pos) << "Source used in expression should contain one concrete column";
+ ctx.Error(Pos_) << "Source used in expression should contain one concrete column";
return false;
}
- Node = Y("Member", Y("SqlAccess", Q("dict"), Y("Take", Node, Y("Uint64", Q("1"))), Y("Uint64", Q("0"))), Q(columnsPtr->List.front()));
+ Node_ = Y("Member", Y("SqlAccess", Q("dict"), Y("Take", Node_, Y("Uint64", Q("1"))), Y("Uint64", Q("0"))), Q(columnsPtr->List.front()));
}
return true;
}
TNodePtr Build(TContext& ctx) override {
Y_UNUSED(ctx);
- return Node;
+ return Node_;
}
bool IsStream() const override {
- return Subquery->GetSource()->IsStream();
+ return Subquery_->GetSource()->IsStream();
}
void DoUpdateState() const override {
- State.Set(ENodeState::Const, true);
+ State_.Set(ENodeState::Const, true);
}
TAstNode* Translate(TContext& ctx) const override {
- Y_DEBUG_ABORT_UNLESS(Node);
- return Node->Translate(ctx);
+ Y_DEBUG_ABORT_UNLESS(Node_);
+ return Node_->Translate(ctx);
}
TPtr DoClone() const final {
- return new TSubqueryRefNode(Subquery, Alias, TupleIndex);
+ return new TSubqueryRefNode(Subquery_, Alias_, TupleIndex_);
}
protected:
- TNodePtr Subquery;
- const TString Alias;
- const int TupleIndex;
- TNodePtr Node;
+ TNodePtr Subquery_;
+ const TString Alias_;
+ const int TupleIndex_;
+ TNodePtr Node_;
};
TNodePtr BuildSubqueryRef(TNodePtr subquery, const TString& alias, int tupleIndex) {
@@ -567,14 +567,14 @@ class TTableSource: public IRealSource {
public:
TTableSource(TPosition pos, const TTableRef& table, bool stream, const TString& label)
: IRealSource(pos)
- , Table(table)
- , Stream(stream)
+ , Table_(table)
+ , Stream_(stream)
{
- SetLabel(label.empty() ? Table.ShortName() : label);
+ SetLabel(label.empty() ? Table_.ShortName() : label);
}
void GetInputTables(TTableList& tableList) const override {
- tableList.push_back(Table);
+ tableList.push_back(Table_);
ISource::GetInputTables(tableList);
}
@@ -583,7 +583,7 @@ public:
}
TMaybe<bool> AddColumn(TContext& ctx, TColumnNode& column) override {
- Columns.Add(column.GetColumnName(), column.GetCountHint(), column.IsArtificial(), column.IsReliable());
+ Columns_.Add(column.GetColumnName(), column.GetCountHint(), column.IsArtificial(), column.IsReliable());
if (!IRealSource::AddColumn(ctx, column)) {
return {};
}
@@ -619,38 +619,38 @@ public:
samplingRate = Y("Ensure", samplingRate, Y("<=", samplingRate, Y("Double", Q("100"))), Y("String", Q("Sampling rate is over 100%")));
auto sampleSettings = Q(Y(Q(modeName), Y("EvaluateAtom", Y("ToString", samplingRate)), Y("EvaluateAtom", Y("ToString", samplingSeed))));
auto sampleOption = Q(Y(Q("sample"), sampleSettings));
- if (Table.Options) {
- if (!Table.Options->Init(ctx, this)) {
+ if (Table_.Options) {
+ if (!Table_.Options->Init(ctx, this)) {
return false;
}
- Table.Options = L(Table.Options, sampleOption);
+ Table_.Options = L(Table_.Options, sampleOption);
} else {
- Table.Options = Y(sampleOption);
+ Table_.Options = Y(sampleOption);
}
return true;
}
TNodePtr Build(TContext& ctx) override {
- if (!Table.Keys->Init(ctx, nullptr)) {
+ if (!Table_.Keys->Init(ctx, nullptr)) {
return nullptr;
}
- return AstNode(Table.RefName);
+ return AstNode(Table_.RefName);
}
bool IsStream() const override {
- return Stream;
+ return Stream_;
}
TPtr DoClone() const final {
- return new TTableSource(Pos, Table, Stream, GetLabel());
+ return new TTableSource(Pos_, Table_, Stream_, GetLabel());
}
bool IsTableSource() const override {
return true;
}
protected:
- TTableRef Table;
- const bool Stream;
+ TTableRef Table_;
+ const bool Stream_;
};
TSourcePtr BuildTableSource(TPosition pos, const TTableRef& table, bool stream, const TString& label) {
@@ -661,7 +661,7 @@ class TInnerSource: public IProxySource {
public:
TInnerSource(TPosition pos, TNodePtr node, const TString& label)
: IProxySource(pos, nullptr)
- , Node(node)
+ , Node_(node)
{
SetLabel(label);
}
@@ -680,26 +680,26 @@ public:
}
bool DoInit(TContext& ctx, ISource* src) override {
- auto source = Node->GetSource();
+ auto source = Node_->GetSource();
if (!source) {
- NewSource = TryMakeSourceFromExpression(ctx, Node);
- source = NewSource.Get();
+ NewSource_ = TryMakeSourceFromExpression(ctx, Node_);
+ source = NewSource_.Get();
}
if (!source) {
- ctx.Error(Pos) << "Invalid inner source node";
+ ctx.Error(Pos_) << "Invalid inner source node";
return false;
}
- source->SetLabel(Label);
- if (!NewSource) {
- Node->UseAsInner();
- if (!Node->Init(ctx, src)) {
+ source->SetLabel(Label_);
+ if (!NewSource_) {
+ Node_->UseAsInner();
+ if (!Node_->Init(ctx, src)) {
return false;
}
}
SetSource(source);
- if (NewSource && !NewSource->Init(ctx, src)) {
+ if (NewSource_ && !NewSource_->Init(ctx, src)) {
return false;
}
@@ -708,15 +708,15 @@ public:
TNodePtr Build(TContext& ctx) override {
Y_UNUSED(ctx);
- return NewSource ? NewSource->Build(ctx) : Node;
+ return NewSource_ ? NewSource_->Build(ctx) : Node_;
}
TPtr DoClone() const final {
- return new TInnerSource(Pos, SafeClone(Node), GetLabel());
+ return new TInnerSource(Pos_, SafeClone(Node_), GetLabel());
}
protected:
- TNodePtr Node;
- TSourcePtr NewSource;
+ TNodePtr Node_;
+ TSourcePtr NewSource_;
};
TSourcePtr BuildInnerSource(TPosition pos, TNodePtr node, const TString& label) {
@@ -736,40 +736,40 @@ public:
TNodePtr having,
const TWriteSettings& settings)
: IRealSource(pos)
- , Mode(mode)
- , Source(std::move(source))
- , OrderBy(std::move(orderBy))
- , Keys(std::move(keys))
- , Args(std::move(args))
- , Udf(udf)
- , Having(having)
- , Settings(settings)
+ , Mode_(mode)
+ , Source_(std::move(source))
+ , OrderBy_(std::move(orderBy))
+ , Keys_(std::move(keys))
+ , Args_(std::move(args))
+ , Udf_(udf)
+ , Having_(having)
+ , Settings_(settings)
{
- YQL_ENSURE(!Keys.empty());
- YQL_ENSURE(Source);
+ YQL_ENSURE(!Keys_.empty());
+ YQL_ENSURE(Source_);
}
void GetInputTables(TTableList& tableList) const override {
- Source->GetInputTables(tableList);
+ Source_->GetInputTables(tableList);
ISource::GetInputTables(tableList);
}
bool DoInit(TContext& ctx, ISource* src) final {
- if (AsInner) {
- Source->UseAsInner();
+ if (AsInner_) {
+ Source_->UseAsInner();
}
ctx.PushBlockShortcuts();
YQL_ENSURE(!src);
- if (!Source->Init(ctx, src)) {
+ if (!Source_->Init(ctx, src)) {
return false;
}
- if (!Source->InitFilters(ctx)) {
+ if (!Source_->InitFilters(ctx)) {
return false;
}
- FiltersGround = ctx.GroundBlockShortcuts(Pos);
- src = Source.Get();
- for (auto& key: Keys) {
+ FiltersGround_ = ctx.GroundBlockShortcuts(Pos_);
+ src = Source_.Get();
+ for (auto& key: Keys_) {
if (!key->Init(ctx, src)) {
return false;
}
@@ -780,77 +780,77 @@ public:
}
}
ctx.PushBlockShortcuts();
- if (Having && !Having->Init(ctx, nullptr)) {
+ if (Having_ && !Having_->Init(ctx, nullptr)) {
return false;
}
- HavingGround = ctx.GroundBlockShortcuts(Pos);
+ HavingGround_ = ctx.GroundBlockShortcuts(Pos_);
/// SIN: verify reduce one argument
- if (Args.size() != 1) {
- ctx.Error(Pos) << "REDUCE requires exactly one UDF argument";
+ if (Args_.size() != 1) {
+ ctx.Error(Pos_) << "REDUCE requires exactly one UDF argument";
return false;
}
ctx.PushBlockShortcuts();
- if (!Args[0]->Init(ctx, src)) {
+ if (!Args_[0]->Init(ctx, src)) {
return false;
}
- ExprGround = ctx.GroundBlockShortcuts(Pos);
+ ExprGround_ = ctx.GroundBlockShortcuts(Pos_);
ctx.PushBlockShortcuts();
- for (auto orderSpec: OrderBy) {
+ for (auto orderSpec: OrderBy_) {
if (!orderSpec->OrderExpr->Init(ctx, src)) {
return false;
}
}
- OrderByGround = ctx.GroundBlockShortcuts(Pos);
+ OrderByGround_ = ctx.GroundBlockShortcuts(Pos_);
- if (!Udf->Init(ctx, src)) {
+ if (!Udf_->Init(ctx, src)) {
return false;
}
- if (Udf->GetLabel().empty()) {
- Columns.SetAll();
+ if (Udf_->GetLabel().empty()) {
+ Columns_.SetAll();
} else {
- Columns.Add(&Udf->GetLabel(), false);
+ Columns_.Add(&Udf_->GetLabel(), false);
}
return true;
}
TNodePtr Build(TContext& ctx) final {
- auto input = Source->Build(ctx);
+ auto input = Source_->Build(ctx);
if (!input) {
return nullptr;
}
auto keysTuple = Y();
- if (Keys.size() == 1) {
- keysTuple = Y("Member", "row", BuildQuotedAtom(Pos, *Keys.back()->GetColumnName()));
+ if (Keys_.size() == 1) {
+ keysTuple = Y("Member", "row", BuildQuotedAtom(Pos_, *Keys_.back()->GetColumnName()));
}
else {
- for (const auto& key: Keys) {
- keysTuple = L(keysTuple, Y("Member", "row", BuildQuotedAtom(Pos, *key->GetColumnName())));
+ for (const auto& key: Keys_) {
+ keysTuple = L(keysTuple, Y("Member", "row", BuildQuotedAtom(Pos_, *key->GetColumnName())));
}
keysTuple = Q(keysTuple);
}
- auto extractKey = Y("SqlExtractKey", "row", BuildLambda(Pos, Y("row"), keysTuple));
- auto extractKeyLambda = BuildLambda(Pos, Y("row"), extractKey);
+ auto extractKey = Y("SqlExtractKey", "row", BuildLambda(Pos_, Y("row"), keysTuple));
+ auto extractKeyLambda = BuildLambda(Pos_, Y("row"), extractKey);
TNodePtr processPartitions;
- switch (Mode) {
+ switch (Mode_) {
case ReduceMode::ByAll: {
- auto columnPtr = Args[0]->GetColumnName();
- TNodePtr expr = BuildAtom(Pos, "partitionStream");
+ auto columnPtr = Args_[0]->GetColumnName();
+ TNodePtr expr = BuildAtom(Pos_, "partitionStream");
if (!columnPtr || *columnPtr != "*") {
- expr = Y("Map", "partitionStream", BuildLambda(Pos, Y("keyPair"), Q(L(Y(),\
+ expr = Y("Map", "partitionStream", BuildLambda(Pos_, Y("keyPair"), Q(L(Y(),\
Y("Nth", "keyPair", Q(ToString("0"))),\
- Y("Map", Y("Nth", "keyPair", Q(ToString("1"))), BuildLambda(Pos, Y("row"),
- GroundWithExpr(ExprGround, Args[0])))))));
+ Y("Map", Y("Nth", "keyPair", Q(ToString("1"))), BuildLambda(Pos_, Y("row"),
+ GroundWithExpr(ExprGround_, Args_[0])))))));
}
- processPartitions = Y("ToSequence", Y("Apply", Udf, expr));
+ processPartitions = Y("ToSequence", Y("Apply", Udf_, expr));
break;
}
case ReduceMode::ByPartition: {
- processPartitions = Y("SqlReduce", "partitionStream", extractKeyLambda, Udf,
- BuildLambda(Pos, Y("row"), GroundWithExpr(ExprGround, Args[0])));
+ processPartitions = Y("SqlReduce", "partitionStream", extractKeyLambda, Udf_,
+ BuildLambda(Pos_, Y("row"), GroundWithExpr(ExprGround_, Args_[0])));
break;
}
default:
@@ -858,50 +858,50 @@ public:
}
TNodePtr sortDirection;
- auto sortKeySelector = OrderByGround;
- FillSortParts(OrderBy, sortDirection, sortKeySelector);
- if (!OrderBy.empty()) {
- sortKeySelector = BuildLambda(Pos, Y("row"), Y("SqlExtractKey", "row", sortKeySelector));
+ auto sortKeySelector = OrderByGround_;
+ FillSortParts(OrderBy_, sortDirection, sortKeySelector);
+ if (!OrderBy_.empty()) {
+ sortKeySelector = BuildLambda(Pos_, Y("row"), Y("SqlExtractKey", "row", sortKeySelector));
}
- auto partitionByKey = Y(Mode == ReduceMode::ByAll ? "PartitionByKey" : "PartitionsByKeys", "core", extractKeyLambda,
- sortDirection, sortKeySelector, BuildLambda(Pos, Y("partitionStream"), processPartitions));
+ auto partitionByKey = Y(Mode_ == ReduceMode::ByAll ? "PartitionByKey" : "PartitionsByKeys", "core", extractKeyLambda,
+ sortDirection, sortKeySelector, BuildLambda(Pos_, Y("partitionStream"), processPartitions));
auto block(Y(Y("let", "core", input)));
- auto filter = Source->BuildFilter(ctx, "core", FiltersGround);
+ auto filter = Source_->BuildFilter(ctx, "core", FiltersGround_);
if (filter) {
block = L(block, Y("let", "core", filter));
}
block = L(block, Y("let", "core", Y("AutoDemux", partitionByKey)));
- if (Having) {
+ if (Having_) {
block = L(block, Y("let", "core",
- Y("Filter", "core", BuildLambda(Pos, Y("row"), GroundWithExpr(HavingGround, Y("Coalesce", Having, Y("Bool", Q("false"))))))
+ Y("Filter", "core", BuildLambda(Pos_, Y("row"), GroundWithExpr(HavingGround_, Y("Coalesce", Having_, Y("Bool", Q("false"))))))
));
}
return Y("block", Q(L(block, Y("return", "core"))));
}
TWriteSettings GetWriteSettings() const final {
- return Settings;
+ return Settings_;
}
TPtr DoClone() const final {
- return new TReduceSource(Pos, Mode, Source->CloneSource(), CloneContainer(OrderBy),
- CloneContainer(Keys), CloneContainer(Args), SafeClone(Udf), SafeClone(Having), Settings);
+ return new TReduceSource(Pos_, Mode_, Source_->CloneSource(), CloneContainer(OrderBy_),
+ CloneContainer(Keys_), CloneContainer(Args_), SafeClone(Udf_), SafeClone(Having_), Settings_);
}
private:
- ReduceMode Mode;
- TSourcePtr Source;
- TVector<TSortSpecificationPtr> OrderBy;
- TVector<TNodePtr> Keys;
- TVector<TNodePtr> Args;
- TNodePtr Udf;
- TNodePtr Having;
- const TWriteSettings Settings;
- TNodePtr ExprGround;
- TNodePtr FiltersGround;
- TNodePtr OrderByGround;
- TNodePtr HavingGround;
+ ReduceMode Mode_;
+ TSourcePtr Source_;
+ TVector<TSortSpecificationPtr> OrderBy_;
+ TVector<TNodePtr> Keys_;
+ TVector<TNodePtr> Args_;
+ TNodePtr Udf_;
+ TNodePtr Having_;
+ const TWriteSettings Settings_;
+ TNodePtr ExprGround_;
+ TNodePtr FiltersGround_;
+ TNodePtr OrderByGround_;
+ TNodePtr HavingGround_;
};
TSourcePtr BuildReduce(TPosition pos,
@@ -920,48 +920,48 @@ class TCompositeSelect: public IRealSource {
public:
TCompositeSelect(TPosition pos, TSourcePtr source, const TWriteSettings& settings)
: IRealSource(pos)
- , Source(std::move(source))
- , Settings(settings)
+ , Source_(std::move(source))
+ , Settings_(settings)
{
- YQL_ENSURE(Source);
+ YQL_ENSURE(Source_);
}
void SetSubselects(TVector<TSourcePtr>&& subselects, TSet<TString>&& groupingCols) {
- Subselects = std::move(subselects);
- GroupingCols = std::move(groupingCols);
- Y_DEBUG_ABORT_UNLESS(Subselects.size() > 1);
+ Subselects_ = std::move(subselects);
+ GroupingCols_ = std::move(groupingCols);
+ Y_DEBUG_ABORT_UNLESS(Subselects_.size() > 1);
}
void GetInputTables(TTableList& tableList) const override {
- for (const auto& select: Subselects) {
+ for (const auto& select: Subselects_) {
select->GetInputTables(tableList);
}
ISource::GetInputTables(tableList);
}
bool DoInit(TContext& ctx, ISource* src) override {
- if (AsInner) {
- Source->UseAsInner();
+ if (AsInner_) {
+ Source_->UseAsInner();
}
ctx.PushBlockShortcuts();
if (src) {
- src->AddDependentSource(Source.Get());
+ src->AddDependentSource(Source_.Get());
}
- if (!Source->Init(ctx, src)) {
+ if (!Source_->Init(ctx, src)) {
return false;
}
- if (!Source->InitFilters(ctx)) {
+ if (!Source_->InitFilters(ctx)) {
return false;
}
- FiltersGround = ctx.GroundBlockShortcuts(Pos);
- for (const auto& select: Subselects) {
- select->SetLabel(Label);
- if (AsInner) {
+ FiltersGround_ = ctx.GroundBlockShortcuts(Pos_);
+ for (const auto& select: Subselects_) {
+ select->SetLabel(Label_);
+ if (AsInner_) {
select->UseAsInner();
}
- if (!select->Init(ctx, Source.Get())) {
+ if (!select->Init(ctx, Source_.Get())) {
return false;
}
}
@@ -969,7 +969,7 @@ public:
}
TMaybe<bool> AddColumn(TContext& ctx, TColumnNode& column) override {
- for (const auto& select: Subselects) {
+ for (const auto& select: Subselects_) {
if (!select->AddColumn(ctx, column)) {
return {};
}
@@ -978,15 +978,15 @@ public:
}
TNodePtr Build(TContext& ctx) override {
- auto input = Source->Build(ctx);
+ auto input = Source_->Build(ctx);
auto block(Y(Y("let", "composite", input)));
- auto filter = Source->BuildFilter(ctx, "composite", FiltersGround);
+ auto filter = Source_->BuildFilter(ctx, "composite", FiltersGround_);
if (filter) {
block = L(block, Y("let", "composite", filter));
}
TNodePtr compositeNode = Y("UnionAll");
- for (const auto& select: Subselects) {
+ for (const auto& select: Subselects_) {
auto addNode = select->Build(ctx);
if (!addNode) {
return nullptr;
@@ -998,44 +998,44 @@ public:
}
bool IsGroupByColumn(const TString& column) const override {
- return GroupingCols.contains(column);
+ return GroupingCols_.contains(column);
}
const TSet<TString>& GetGroupingCols() const {
- return GroupingCols;
+ return GroupingCols_;
}
TNodePtr BuildSort(TContext& ctx, const TString& label) override {
- return Subselects.front()->BuildSort(ctx, label);
+ return Subselects_.front()->BuildSort(ctx, label);
}
bool IsOrdered() const override {
- return Subselects.front()->IsOrdered();
+ return Subselects_.front()->IsOrdered();
}
const TColumns* GetColumns() const override{
- return Subselects.front()->GetColumns();
+ return Subselects_.front()->GetColumns();
}
ISource* RealSource() const {
- return Source.Get();
+ return Source_.Get();
}
TWriteSettings GetWriteSettings() const override {
- return Settings;
+ return Settings_;
}
TNodePtr DoClone() const final {
- auto newSource = MakeIntrusive<TCompositeSelect>(Pos, Source->CloneSource(), Settings);
- newSource->SetSubselects(CloneContainer(Subselects), TSet<TString>(GroupingCols));
+ auto newSource = MakeIntrusive<TCompositeSelect>(Pos_, Source_->CloneSource(), Settings_);
+ newSource->SetSubselects(CloneContainer(Subselects_), TSet<TString>(GroupingCols_));
return newSource;
}
private:
- TSourcePtr Source;
- const TWriteSettings Settings;
- TVector<TSourcePtr> Subselects;
- TSet<TString> GroupingCols;
- TNodePtr FiltersGround;
+ TSourcePtr Source_;
+ const TWriteSettings Settings_;
+ TVector<TSourcePtr> Subselects_;
+ TSet<TString> GroupingCols_;
+ TNodePtr FiltersGround_;
};
/// \todo simplify class
@@ -1057,23 +1057,23 @@ public:
const TWriteSettings& settings
)
: IRealSource(pos)
- , Source(std::move(source))
- , GroupByExpr(groupByExpr)
- , GroupBy(groupBy)
- , OrderBy(orderBy)
- , Having(having)
- , WinSpecs(winSpecs)
- , Terms(terms)
- , Without(without)
- , Distinct(distinct)
- , HoppingWindowSpec(hoppingWindowSpec)
- , Stream(stream)
- , Settings(settings)
+ , Source_(std::move(source))
+ , GroupByExpr_(groupByExpr)
+ , GroupBy_(groupBy)
+ , OrderBy_(orderBy)
+ , Having_(having)
+ , WinSpecs_(winSpecs)
+ , Terms_(terms)
+ , Without_(without)
+ , Distinct_(distinct)
+ , HoppingWindowSpec_(hoppingWindowSpec)
+ , Stream_(stream)
+ , Settings_(settings)
{
}
void GetInputTables(TTableList& tableList) const override {
- Source->GetInputTables(tableList);
+ Source_->GetInputTables(tableList);
ISource::GetInputTables(tableList);
}
@@ -1097,43 +1097,43 @@ public:
}
bool DoInit(TContext& ctx, ISource* initSrc) override {
- if (AsInner) {
- Source->UseAsInner();
+ if (AsInner_) {
+ Source_->UseAsInner();
}
- if (!Source->Init(ctx, initSrc)) {
+ if (!Source_->Init(ctx, initSrc)) {
return false;
}
- if (Stream && !Source->IsStream()) {
- ctx.Error(Pos) << "SELECT STREAM is unsupported for non-streaming sources";
+ if (Stream_ && !Source_->IsStream()) {
+ ctx.Error(Pos_) << "SELECT STREAM is unsupported for non-streaming sources";
return false;
}
- if (!Stream && Source->IsStream() && !ctx.PragmaDirectRead) {
- ctx.Error(Pos) << "SELECT STREAM must be used for streaming sources";
+ if (!Stream_ && Source_->IsStream() && !ctx.PragmaDirectRead) {
+ ctx.Error(Pos_) << "SELECT STREAM must be used for streaming sources";
return false;
}
ctx.PushBlockShortcuts();
- auto src = Source.Get();
+ auto src = Source_.Get();
bool hasError = false;
- for (auto& expr: GroupByExpr) {
+ for (auto& expr: GroupByExpr_) {
if (!expr->Init(ctx, src) || !IsComparableExpression(ctx, expr, "GROUP BY")) {
hasError = true;
continue;
}
}
- if (!src->AddExpressions(ctx, GroupByExpr, EExprSeat::GroupBy)) {
+ if (!src->AddExpressions(ctx, GroupByExpr_, EExprSeat::GroupBy)) {
hasError = true;
}
- GroupByExprGround = ctx.GroundBlockShortcuts(Pos);
+ GroupByExprGround_ = ctx.GroundBlockShortcuts(Pos_);
/// grouped expressions are available in filters
ctx.PushBlockShortcuts();
- if (!Source->InitFilters(ctx)) {
+ if (!Source_->InitFilters(ctx)) {
hasError = true;
}
- FiltersGround = ctx.GroundBlockShortcuts(Pos);
- const bool isJoin = Source->GetJoin();
- for (auto& expr: GroupBy) {
+ FiltersGround_ = ctx.GroundBlockShortcuts(Pos_);
+ const bool isJoin = Source_->GetJoin();
+ for (auto& expr: GroupBy_) {
if (!expr->Init(ctx, src)) {
hasError = true;
continue;
@@ -1158,51 +1158,51 @@ public:
}
}
ctx.PushBlockShortcuts();
- if (Having && !Having->Init(ctx, src)) {
+ if (Having_ && !Having_->Init(ctx, src)) {
hasError = true;
}
- HavingGround = ctx.GroundBlockShortcuts(Pos);
- src->AddWindowSpecs(WinSpecs);
+ HavingGround_ = ctx.GroundBlockShortcuts(Pos_);
+ src->AddWindowSpecs(WinSpecs_);
if (!InitSelect(ctx, src, isJoin, hasError)) {
return false;
}
src->FinishColumns();
- Aggregate = src->BuildAggregation("core");
+ Aggregate_ = src->BuildAggregation("core");
if (src->IsFlattenByColumns() || src->IsFlattenColumns()) {
- Flatten = src->IsFlattenByColumns() ?
+ Flatten_ = src->IsFlattenByColumns() ?
src->BuildFlattenByColumns("row") :
src->BuildFlattenColumns("row");
- if (!Flatten || !Flatten->Init(ctx, src)) {
+ if (!Flatten_ || !Flatten_->Init(ctx, src)) {
hasError = true;
}
}
- if (GroupByExpr) {
+ if (GroupByExpr_) {
auto sourcePreaggregate = src->BuildPreaggregatedMap(ctx);
if (!sourcePreaggregate) {
hasError = true;
} else {
- PreaggregatedMap = !GroupByExprGround ? sourcePreaggregate :
- Y("block", Q(L(GroupByExprGround, Y("return", sourcePreaggregate))));
+ PreaggregatedMap_ = !GroupByExprGround_ ? sourcePreaggregate :
+ Y("block", Q(L(GroupByExprGround_, Y("return", sourcePreaggregate))));
}
}
- if (Aggregate) {
- if (!Aggregate->Init(ctx, src)) {
+ if (Aggregate_) {
+ if (!Aggregate_->Init(ctx, src)) {
hasError = true;
}
- if (Having) {
- Aggregate = Y(
+ if (Having_) {
+ Aggregate_ = Y(
"Filter",
- Aggregate,
- BuildLambda(Pos, Y("row"), GroundWithExpr(HavingGround, Y("Coalesce", Having, Y("Bool", Q("false")))))
+ Aggregate_,
+ BuildLambda(Pos_, Y("row"), GroundWithExpr(HavingGround_, Y("Coalesce", Having_, Y("Bool", Q("false")))))
);
}
- } else if (Having) {
- ctx.Error(Having->GetPos()) << "HAVING with meaning GROUP BY () should be with aggregation function.";
+ } else if (Having_) {
+ ctx.Error(Having_->GetPos()) << "HAVING with meaning GROUP BY () should be with aggregation function.";
hasError = true;
- } else if (!Distinct && !GroupBy.empty()) {
- ctx.Error(Pos) << "No aggregations were specified";
+ } else if (!Distinct_ && !GroupBy_.empty()) {
+ ctx.Error(Pos_) << "No aggregations were specified";
hasError = true;
}
if (hasError) {
@@ -1211,13 +1211,13 @@ public:
if (src->IsCalcOverWindow()) {
if (src->IsExprSeat(EExprSeat::WindowPartitionBy, EExprType::WithExpression)) {
- PrewindowMap = src->BuildPrewindowMap(ctx, WinSpecsPartitionByGround);
- if (!PrewindowMap) {
+ PrewindowMap_ = src->BuildPrewindowMap(ctx, WinSpecsPartitionByGround_);
+ if (!PrewindowMap_) {
hasError = true;
}
}
- CalcOverWindow = src->BuildCalcOverWindow(ctx, "core", WinSpecsOrderByGround);
- if (!CalcOverWindow) {
+ CalcOverWindow_ = src->BuildCalcOverWindow(ctx, "core", WinSpecsOrderByGround_);
+ if (!CalcOverWindow_) {
hasError = true;
}
}
@@ -1229,7 +1229,7 @@ public:
}
TNodePtr Build(TContext& ctx) override {
- auto input = Source->Build(ctx);
+ auto input = Source_->Build(ctx);
if (!input) {
return nullptr;
}
@@ -1238,42 +1238,42 @@ public:
bool ordered = ctx.UseUnordered(*this);
auto block(Y(Y("let", "core", input)));
- if (Flatten) {
- block = L(block, Y("let", "core", Y(ordered ? "OrderedFlatMap" : "FlatMap", "core", BuildLambda(Pos, Y("row"), Flatten, "res"))));
+ if (Flatten_) {
+ block = L(block, Y("let", "core", Y(ordered ? "OrderedFlatMap" : "FlatMap", "core", BuildLambda(Pos_, Y("row"), Flatten_, "res"))));
}
- if (PreaggregatedMap) {
- block = L(block, Y("let", "core", Y("FlatMap", "core", BuildLambda(Pos, Y("row"), PreaggregatedMap))));
- if (Source->IsCompositeSource() && !Columns.QualifiedAll) {
+ if (PreaggregatedMap_) {
+ block = L(block, Y("let", "core", Y("FlatMap", "core", BuildLambda(Pos_, Y("row"), PreaggregatedMap_))));
+ if (Source_->IsCompositeSource() && !Columns_.QualifiedAll) {
block = L(block, Y("let", "preaggregated", "core"));
}
- } else if (Source->IsCompositeSource() && !Columns.QualifiedAll) {
+ } else if (Source_->IsCompositeSource() && !Columns_.QualifiedAll) {
block = L(block, Y("let", "origcore", "core"));
}
- auto filter = Source->BuildFilter(ctx, "core", FiltersGround);
+ auto filter = Source_->BuildFilter(ctx, "core", FiltersGround_);
if (filter) {
block = L(block, Y("let", "core", filter));
}
- if (Aggregate) {
- block = L(block, Y("let", "core", Aggregate));
+ if (Aggregate_) {
+ block = L(block, Y("let", "core", Aggregate_));
ordered = false;
}
- if (PrewindowMap) {
- block = L(block, Y("let", "core", PrewindowMap));
+ if (PrewindowMap_) {
+ block = L(block, Y("let", "core", PrewindowMap_));
}
- if (CalcOverWindow) {
- block = L(block, Y("let", "core", CalcOverWindow));
+ if (CalcOverWindow_) {
+ block = L(block, Y("let", "core", CalcOverWindow_));
}
- block = L(block, Y("let", "core", Y("EnsurePersistable", Y(ordered ? "OrderedFlatMap" : "FlatMap", "core", BuildLambda(Pos, Y("row"), terms, "res")))));
+ block = L(block, Y("let", "core", Y("EnsurePersistable", Y(ordered ? "OrderedFlatMap" : "FlatMap", "core", BuildLambda(Pos_, Y("row"), terms, "res")))));
return Y("block", Q(L(block, Y("return", "core"))));
}
TNodePtr BuildSort(TContext& ctx, const TString& label) override {
Y_UNUSED(ctx);
- if (OrderBy.empty()) {
+ if (OrderBy_.empty()) {
return nullptr;
}
- return Y("let", label, BuildSortSpec(OrderBy, label, OrderByGround));
+ return Y("let", label, BuildSortSpec(OrderBy_, label, OrderByGround_));
}
bool IsSelect() const override {
@@ -1281,43 +1281,43 @@ public:
}
bool IsStream() const override {
- return Stream;
+ return Stream_;
}
bool IsOrdered() const override {
- return !OrderBy.empty();
+ return !OrderBy_.empty();
}
TWriteSettings GetWriteSettings() const override {
- return Settings;
+ return Settings_;
}
TMaybe<bool> AddColumn(TContext& ctx, TColumnNode& column) override {
- if (OrderByInit && Source->GetJoin()) {
+ if (OrderByInit_ && Source_->GetJoin()) {
column.SetAsNotReliable();
auto maybeExist = IRealSource::AddColumn(ctx, column);
if (maybeExist && maybeExist.GetRef()) {
return true;
}
- return Source->AddColumn(ctx, column);
+ return Source_->AddColumn(ctx, column);
}
return IRealSource::AddColumn(ctx, column);
}
TNodePtr PrepareWithout(const TNodePtr& base) {
auto terms = base;
- if (Without) {
- for (auto without: Without) {
+ if (Without_) {
+ for (auto without: Without_) {
auto name = *without->GetColumnName();
- if (Source && Source->GetJoin()) {
+ if (Source_ && Source_->GetJoin()) {
name = DotJoin(*without->GetSourceName(), name);
}
terms = L(terms, Y("let", "row", Y("RemoveMember", "row", Q(name))));
}
}
- if (Source) {
- for (auto column : Source->GetTmpWindowColumns()) {
+ if (Source_) {
+ for (auto column : Source_->GetTmpWindowColumns()) {
terms = L(terms, Y("let", "row", Y("RemoveMember", "row", Q(column))));
}
}
@@ -1327,17 +1327,17 @@ public:
TNodePtr DoClone() const final {
TWinSpecs newSpecs;
- for (auto cur: WinSpecs) {
+ for (auto cur: WinSpecs_) {
newSpecs.emplace(cur.first, cur.second->Clone());
}
- return new TSelectCore(Pos, Source->CloneSource(), CloneContainer(GroupByExpr),
- CloneContainer(GroupBy), CloneContainer(OrderBy), SafeClone(Having), newSpecs, SafeClone(HoppingWindowSpec),
- CloneContainer(Terms), Distinct, Without, Stream, Settings);
+ return new TSelectCore(Pos_, Source_->CloneSource(), CloneContainer(GroupByExpr_),
+ CloneContainer(GroupBy_), CloneContainer(OrderBy_), SafeClone(Having_), newSpecs, SafeClone(HoppingWindowSpec_),
+ CloneContainer(Terms_), Distinct_, Without_, Stream_, Settings_);
}
private:
bool InitSelect(TContext& ctx, ISource* src, bool isJoin, bool& hasError) {
- for (auto iter: WinSpecs) {
+ for (auto iter: WinSpecs_) {
auto winSpec = *iter.second;
ctx.PushBlockShortcuts();
for (auto& partitionNode: winSpec.Partitions) {
@@ -1359,7 +1359,7 @@ private:
continue;
}
}
- WinSpecsPartitionByGround = ctx.GroundBlockShortcuts(Pos, WinSpecsPartitionByGround);
+ WinSpecsPartitionByGround_ = ctx.GroundBlockShortcuts(Pos_, WinSpecsPartitionByGround_);
if (!src->AddExpressions(ctx, winSpec.Partitions, EExprSeat::WindowPartitionBy)) {
hasError = true;
}
@@ -1370,33 +1370,33 @@ private:
hasError = true;
}
}
- WinSpecsOrderByGround = ctx.GroundBlockShortcuts(Pos, WinSpecsOrderByGround);
+ WinSpecsOrderByGround_ = ctx.GroundBlockShortcuts(Pos_, WinSpecsOrderByGround_);
}
- if (HoppingWindowSpec) {
+ if (HoppingWindowSpec_) {
ctx.PushBlockShortcuts();
- if (!HoppingWindowSpec->TimeExtractor->Init(ctx, src)) {
+ if (!HoppingWindowSpec_->TimeExtractor->Init(ctx, src)) {
hasError = true;
}
- HoppingWindowSpec->TimeExtractor = ctx.GroundBlockShortcutsForExpr(HoppingWindowSpec->TimeExtractor);
- src->SetHoppingWindowSpec(HoppingWindowSpec);
+ HoppingWindowSpec_->TimeExtractor = ctx.GroundBlockShortcutsForExpr(HoppingWindowSpec_->TimeExtractor);
+ src->SetHoppingWindowSpec(HoppingWindowSpec_);
}
ctx.PushBlockShortcuts();
- for (auto& term: Terms) {
+ for (auto& term: Terms_) {
if (!term->Init(ctx, src)) {
hasError = true;
continue;
}
auto column = term->GetColumnName();
- if (Distinct) {
+ if (Distinct_) {
if (!column) {
- ctx.Error(Pos) << "SELECT DISTINCT requires a list of column references";
+ ctx.Error(Pos_) << "SELECT DISTINCT requires a list of column references";
hasError = true;
continue;
}
if (term->IsAsterisk()) {
- ctx.Error(Pos) << "SELECT DISTINCT * is not implemented yet";
+ ctx.Error(Pos_) << "SELECT DISTINCT * is not implemented yet";
hasError = true;
continue;
}
@@ -1425,45 +1425,45 @@ private:
hasError = true;
continue;
}
- GroupBy.push_back(BuildColumn(Pos, columnName));
+ GroupBy_.push_back(BuildColumn(Pos_, columnName));
}
TString label(term->GetLabel());
bool hasName = true;
if (label.empty()) {
auto source = term->GetSourceName();
if (term->IsAsterisk() && !source->empty()) {
- Columns.QualifiedAll = true;
+ Columns_.QualifiedAll = true;
label = DotJoin(*source, "*");
} else if (column) {
label = isJoin && source && *source ? DotJoin(*source, *column) : *column;
} else {
- label = TStringBuilder() << "column" << Columns.List.size();
+ label = TStringBuilder() << "column" << Columns_.List.size();
hasName = false;
}
}
- if (!Columns.Add(&label, false, false, true, hasName)) {
- ctx.Error(Pos) << "Duplicate column: " << label;
+ if (!Columns_.Add(&label, false, false, true, hasName)) {
+ ctx.Error(Pos_) << "Duplicate column: " << label;
hasError = true;
continue;
}
}
- TermsGround = ctx.GroundBlockShortcuts(Pos);
+ TermsGround_ = ctx.GroundBlockShortcuts(Pos_);
- if (Columns.All || Columns.QualifiedAll) {
- Source->AllColumns();
- if (Columns.All && isJoin && ctx.SimpleColumns) {
- Columns.All = false;
- Columns.QualifiedAll = true;
- const auto pos = Terms.front()->GetPos();
- Terms.clear();
- for (const auto& source: Source->GetJoin()->GetJoinLabels()) {
+ if (Columns_.All || Columns_.QualifiedAll) {
+ Source_->AllColumns();
+ if (Columns_.All && isJoin && ctx.SimpleColumns) {
+ Columns_.All = false;
+ Columns_.QualifiedAll = true;
+ const auto pos = Terms_.front()->GetPos();
+ Terms_.clear();
+ for (const auto& source: Source_->GetJoin()->GetJoinLabels()) {
auto withDot = DotJoin(source, "*");
- Columns.Add(&withDot, false);
- Terms.push_back(BuildColumn(pos, "*", source));
+ Columns_.Add(&withDot, false);
+ Terms_.push_back(BuildColumn(pos, "*", source));
}
}
}
- for (const auto& without: Without) {
+ for (const auto& without: Without_) {
auto namePtr = without->GetColumnName();
auto sourcePtr = without->GetSourceName();
YQL_ENSURE(namePtr && *namePtr);
@@ -1473,16 +1473,16 @@ private:
continue;
}
}
- if (Having && !Having->Init(ctx, src)) {
+ if (Having_ && !Having_->Init(ctx, src)) {
hasError = true;
}
- if (!src->IsCompositeSource() && !Distinct && !Columns.All && src->HasAggregations()) {
+ if (!src->IsCompositeSource() && !Distinct_ && !Columns_.All && src->HasAggregations()) {
/// verify select aggregation compatibility
- TVector<TNodePtr> exprs(Terms);
- if (Having) {
- exprs.push_back(Having);
+ TVector<TNodePtr> exprs(Terms_);
+ if (Having_) {
+ exprs.push_back(Having_);
}
- for (const auto& iter: WinSpecs) {
+ for (const auto& iter: WinSpecs_) {
for (const auto& sortSpec: iter.second->OrderBy) {
exprs.push_back(sortSpec->OrderExpr);
}
@@ -1493,21 +1493,21 @@ private:
}
const auto label = GetLabel();
ctx.PushBlockShortcuts();
- for (const auto& sortSpec: OrderBy) {
+ for (const auto& sortSpec: OrderBy_) {
auto& expr = sortSpec->OrderExpr;
- SetLabel(Source->GetLabel());
- OrderByInit = true;
+ SetLabel(Source_->GetLabel());
+ OrderByInit_ = true;
if (!expr->Init(ctx, this)) {
hasError = true;
continue;
}
- OrderByInit = false;
+ OrderByInit_ = false;
if (!IsComparableExpression(ctx, expr, "ORDER BY")) {
hasError = true;
continue;
}
}
- OrderByGround = ctx.GroundBlockShortcuts(Pos);
+ OrderByGround_ = ctx.GroundBlockShortcuts(Pos_);
SetLabel(label);
return true;
@@ -1515,26 +1515,26 @@ private:
TNodePtr BuildColumnsTerms(TContext& ctx) {
TNodePtr terms;
- if (Columns.All) {
- Y_DEBUG_ABORT_UNLESS(Columns.List.empty());
+ if (Columns_.All) {
+ Y_DEBUG_ABORT_UNLESS(Columns_.List.empty());
terms = PrepareWithout(Y());
if (ctx.EnableSystemColumns) {
terms = L(terms, Y("let", "res", Y("AsList", Y("RemoveSystemMembers", "row"))));
} else {
terms = L(terms, (Y("let", "res", Y("AsList", "row"))));
}
- } else if (!Columns.List.empty()) {
- Y_DEBUG_ABORT_UNLESS(Columns.List.size() == Terms.size());
- const bool isJoin = Source->GetJoin();
+ } else if (!Columns_.List.empty()) {
+ Y_DEBUG_ABORT_UNLESS(Columns_.List.size() == Terms_.size());
+ const bool isJoin = Source_->GetJoin();
- terms = TermsGround ? TermsGround : Y();
- if (Source->IsCompositeSource() && !Columns.QualifiedAll) {
- auto compositeSrcPtr = static_cast<TCompositeSelect*>(Source->GetCompositeSource());
+ terms = TermsGround_ ? TermsGround_ : Y();
+ if (Source_->IsCompositeSource() && !Columns_.QualifiedAll) {
+ auto compositeSrcPtr = static_cast<TCompositeSelect*>(Source_->GetCompositeSource());
if (compositeSrcPtr) {
const auto& groupings = compositeSrcPtr->GetGroupingCols();
for (const auto& column: groupings) {
bool isAggregated = false;
- for (const auto& group: GroupBy) {
+ for (const auto& group: GroupBy_) {
const auto columnName = group->GetColumnName();
if (columnName && *columnName == column) {
isAggregated = true;
@@ -1544,8 +1544,8 @@ private:
if (isAggregated) {
continue;
}
- const TString tableName = PreaggregatedMap ? "preaggregated" : "origcore";
- terms = L(terms, Y("let", "row", Y("AddMember", "row", BuildQuotedAtom(Pos, column), Y("Nothing", Y("MatchType",
+ const TString tableName = PreaggregatedMap_ ? "preaggregated" : "origcore";
+ terms = L(terms, Y("let", "row", Y("AddMember", "row", BuildQuotedAtom(Pos_, column), Y("Nothing", Y("MatchType",
Y("StructMemberType", Y("ListItemType", Y("TypeOf", tableName)), Q(column)),
Q("Optional"), Y("lambda", Q(Y("item")), "item"), Y("lambda", Q(Y("item")), Y("OptionalType", "item")))))));
}
@@ -1553,25 +1553,25 @@ private:
}
TNodePtr structObj = nullptr;
- auto column = Columns.List.begin();
- for (auto& term: Terms) {
+ auto column = Columns_.List.begin();
+ for (auto& term: Terms_) {
if (!term->IsAsterisk()) {
if (!structObj) {
structObj = Y("AsStruct");
}
- structObj = L(structObj, Q(Y(BuildQuotedAtom(Pos, *column), term)));
+ structObj = L(structObj, Q(Y(BuildQuotedAtom(Pos_, *column), term)));
}
++column;
}
terms = structObj ? L(terms, Y("let", "res", structObj)) : Y(Y("let", "res", Y("AsStruct")));
terms = PrepareWithout(terms);
- if (Columns.QualifiedAll) {
+ if (Columns_.QualifiedAll) {
if (ctx.SimpleColumns && !isJoin) {
- terms = L(terms, Y("let", "res", Y("FlattenMembers", Q(Y(BuildQuotedAtom(Pos, ""), "res")),
- Q(Y(BuildQuotedAtom(Pos, ""), "row")))));
+ terms = L(terms, Y("let", "res", Y("FlattenMembers", Q(Y(BuildQuotedAtom(Pos_, ""), "res")),
+ Q(Y(BuildQuotedAtom(Pos_, ""), "row")))));
} else {
if (isJoin && ctx.SimpleColumns) {
- const auto& sameKeyMap = Source->GetJoin()->GetSameKeysMap();
+ const auto& sameKeyMap = Source_->GetJoin()->GetSameKeysMap();
if (sameKeyMap) {
terms = L(terms, Y("let", "flatSameKeys", "row"));
for (const auto& sameKeysPair: sameKeyMap) {
@@ -1595,12 +1595,12 @@ private:
}
auto members = isJoin ? Y() : Y("FlattenMembers");
- for (auto& term: Terms) {
+ for (auto& term: Terms_) {
if (term->IsAsterisk()) {
auto sourceName = term->GetSourceName();
YQL_ENSURE(*sourceName && !sourceName->empty());
if (isJoin) {
- members = L(members, BuildQuotedAtom(Pos, *sourceName + "."));
+ members = L(members, BuildQuotedAtom(Pos_, *sourceName + "."));
} else {
auto prefix = ctx.SimpleColumns ? "" : *sourceName + ".";
members = L(members, Q(Y(Q(prefix), "row")));
@@ -1610,10 +1610,10 @@ private:
if (isJoin) {
members = Y(ctx.SimpleColumns ? "DivePrefixMembers" : "SelectMembers", "row", Q(members));
}
- terms = L(terms, Y("let", "res", Y("FlattenMembers", Q(Y(BuildQuotedAtom(Pos, ""), "res")),
- Q(Y(BuildQuotedAtom(Pos, ""), members)))));
+ terms = L(terms, Y("let", "res", Y("FlattenMembers", Q(Y(BuildQuotedAtom(Pos_, ""), "res")),
+ Q(Y(BuildQuotedAtom(Pos_, ""), members)))));
if (isJoin && ctx.SimpleColumns) {
- for (const auto& sameKeysPair: Source->GetJoin()->GetSameKeysMap()) {
+ for (const auto& sameKeysPair: Source_->GetJoin()->GetSameKeysMap()) {
const auto& column = sameKeysPair.first;
auto addMemberKeyNode = Y("Member", "row", Q(column));
terms = L(terms, Y("let", "res", Y("AddMember", "res", Q(column), addMemberKeyNode)));
@@ -1627,31 +1627,31 @@ private:
}
private:
- TSourcePtr Source;
- TVector<TNodePtr> GroupByExpr;
- TVector<TNodePtr> GroupBy;
- TVector<TSortSpecificationPtr> OrderBy;
- TNodePtr Having;
- TWinSpecs WinSpecs;
- TNodePtr Flatten;
- TNodePtr PreaggregatedMap;
- TNodePtr PrewindowMap;
- TNodePtr Aggregate;
- TNodePtr CalcOverWindow;
- TNodePtr FiltersGround;
- TNodePtr TermsGround;
- TNodePtr GroupByExprGround;
- TNodePtr HavingGround;
- TNodePtr OrderByGround;
- TNodePtr WinSpecsPartitionByGround;
- TNodePtr WinSpecsOrderByGround;
- TVector<TNodePtr> Terms;
- TVector<TNodePtr> Without;
- const bool Distinct;
- bool OrderByInit = false;
- THoppingWindowSpecPtr HoppingWindowSpec;
- const bool Stream;
- const TWriteSettings Settings;
+ TSourcePtr Source_;
+ TVector<TNodePtr> GroupByExpr_;
+ TVector<TNodePtr> GroupBy_;
+ TVector<TSortSpecificationPtr> OrderBy_;
+ TNodePtr Having_;
+ TWinSpecs WinSpecs_;
+ TNodePtr Flatten_;
+ TNodePtr PreaggregatedMap_;
+ TNodePtr PrewindowMap_;
+ TNodePtr Aggregate_;
+ TNodePtr CalcOverWindow_;
+ TNodePtr FiltersGround_;
+ TNodePtr TermsGround_;
+ TNodePtr GroupByExprGround_;
+ TNodePtr HavingGround_;
+ TNodePtr OrderByGround_;
+ TNodePtr WinSpecsPartitionByGround_;
+ TNodePtr WinSpecsOrderByGround_;
+ TVector<TNodePtr> Terms_;
+ TVector<TNodePtr> Without_;
+ const bool Distinct_;
+ bool OrderByInit_ = false;
+ THoppingWindowSpecPtr HoppingWindowSpec_;
+ const bool Stream_;
+ const TWriteSettings Settings_;
};
class TProcessSource: public IRealSource {
@@ -1666,85 +1666,85 @@ public:
const TWriteSettings& settings
)
: IRealSource(pos)
- , Source(std::move(source))
- , With(with)
- , Terms(std::move(terms))
- , ListCall(listCall)
- , Stream(stream)
- , Settings(settings)
+ , Source_(std::move(source))
+ , With_(with)
+ , Terms_(std::move(terms))
+ , ListCall_(listCall)
+ , Stream_(stream)
+ , Settings_(settings)
{
}
void GetInputTables(TTableList& tableList) const override {
- Source->GetInputTables(tableList);
+ Source_->GetInputTables(tableList);
ISource::GetInputTables(tableList);
}
bool DoInit(TContext& ctx, ISource* initSrc) override {
- if (AsInner) {
- Source->UseAsInner();
+ if (AsInner_) {
+ Source_->UseAsInner();
}
- if (!Source->Init(ctx, initSrc)) {
+ if (!Source_->Init(ctx, initSrc)) {
return false;
}
- if (Stream && !Source->IsStream()) {
- ctx.Error(Pos) << "PROCESS STREAM is unsupported for non-streaming sources";
+ if (Stream_ && !Source_->IsStream()) {
+ ctx.Error(Pos_) << "PROCESS STREAM is unsupported for non-streaming sources";
return false;
}
- if (!Stream && Source->IsStream() && !ctx.PragmaDirectRead) {
- ctx.Error(Pos) << "PROCESS STREAM must be used for streaming sources";
+ if (!Stream_ && Source_->IsStream() && !ctx.PragmaDirectRead) {
+ ctx.Error(Pos_) << "PROCESS STREAM must be used for streaming sources";
return false;
}
- auto src = Source.Get();
- if (!With) {
+ auto src = Source_.Get();
+ if (!With_) {
src->AllColumns();
- Columns.SetAll();
+ Columns_.SetAll();
src->FinishColumns();
return true;
}
/// grouped expressions are available in filters
ctx.PushBlockShortcuts();
- if (!Source->InitFilters(ctx)) {
+ if (!Source_->InitFilters(ctx)) {
return false;
}
- FiltersGround = ctx.GroundBlockShortcuts(Pos);
+ FiltersGround_ = ctx.GroundBlockShortcuts(Pos_);
// Use fake source in case of list process to restrict column access.
TSourcePtr fakeSource;
- if (ListCall) {
+ if (ListCall_) {
fakeSource = BuildFakeSource(src->GetPos());
src->AllColumns();
}
- auto processSource = ListCall ? fakeSource.Get() : src;
+ auto processSource = ListCall_ ? fakeSource.Get() : src;
Y_DEBUG_ABORT_UNLESS(processSource != nullptr);
ctx.PushBlockShortcuts();
- if (!With->Init(ctx, processSource)) {
+ if (!With_->Init(ctx, processSource)) {
return false;
}
- if (With->GetLabel().empty()) {
- Columns.SetAll();
+ if (With_->GetLabel().empty()) {
+ Columns_.SetAll();
} else {
- if (ListCall) {
- ctx.Error(With->GetPos()) << "Label is not allowed to use with $ROWS";
+ if (ListCall_) {
+ ctx.Error(With_->GetPos()) << "Label is not allowed to use with $ROWS";
return false;
}
- Columns.Add(&With->GetLabel(), false);
+ Columns_.Add(&With_->GetLabel(), false);
}
bool hasError = false;
- auto produce = Y(ListCall ? "SqlProcess" : "Apply", With);
+ auto produce = Y(ListCall_ ? "SqlProcess" : "Apply", With_);
TMaybe<ui32> listPosIndex;
ui32 termIndex = 0;
- for (auto& term: Terms) {
- if (ListCall) {
+ for (auto& term: Terms_) {
+ if (ListCall_) {
if (auto atom = dynamic_cast<TAstAtomNode*>(term.Get())) {
if (atom->GetContent() == "inputRowsList") {
listPosIndex = termIndex;
@@ -1767,7 +1767,7 @@ public:
produce = L(produce, term);
}
- if (ListCall) {
+ if (ListCall_) {
produce = L(produce, Q(ToString(*listPosIndex)));
}
@@ -1776,7 +1776,7 @@ public:
}
produce = ctx.GroundBlockShortcutsForExpr(produce);
- TVector<TNodePtr>(1, produce).swap(Terms);
+ TVector<TNodePtr>(1, produce).swap(Terms_);
src->FinishColumns();
@@ -1788,29 +1788,29 @@ public:
}
TNodePtr Build(TContext& ctx) override {
- auto input = Source->Build(ctx);
+ auto input = Source_->Build(ctx);
if (!input) {
return nullptr;
}
- if (!With) {
+ if (!With_) {
return input;
}
- TString inputLabel = ListCall ? "inputRowsList" : "core";
+ TString inputLabel = ListCall_ ? "inputRowsList" : "core";
auto block(Y(Y("let", inputLabel, input)));
- auto filter = Source->BuildFilter(ctx, inputLabel, FiltersGround);
+ auto filter = Source_->BuildFilter(ctx, inputLabel, FiltersGround_);
if (filter) {
block = L(block, Y("let", inputLabel, filter));
}
- if (ListCall) {
- block = L(block, Y("let", "core", Terms[0]));
+ if (ListCall_) {
+ block = L(block, Y("let", "core", Terms_[0]));
} else {
auto terms = BuildColumnsTerms(ctx);
- block = L(block, Y("let", "core", Y(ctx.UseUnordered(*this) ? "OrderedFlatMap" : "FlatMap", "core", BuildLambda(Pos, Y("row"), terms, "res"))));
+ block = L(block, Y("let", "core", Y(ctx.UseUnordered(*this) ? "OrderedFlatMap" : "FlatMap", "core", BuildLambda(Pos_, Y("row"), terms, "res"))));
}
block = L(block, Y("let", "core", Y("AutoDemux", Y("EnsurePersistable", "core"))));
return Y("block", Q(L(block, Y("return", "core"))));
@@ -1821,44 +1821,44 @@ public:
}
bool IsStream() const override {
- return Stream;
+ return Stream_;
}
TWriteSettings GetWriteSettings() const override {
- return Settings;
+ return Settings_;
}
TNodePtr DoClone() const final {
- return new TProcessSource(Pos, Source->CloneSource(), SafeClone(With),
- CloneContainer(Terms), ListCall, Stream, Settings);
+ return new TProcessSource(Pos_, Source_->CloneSource(), SafeClone(With_),
+ CloneContainer(Terms_), ListCall_, Stream_, Settings_);
}
private:
TNodePtr BuildColumnsTerms(TContext& ctx) {
Y_UNUSED(ctx);
TNodePtr terms;
- Y_DEBUG_ABORT_UNLESS(Terms.size() == 1);
- if (Columns.All) {
- terms = Y(Y("let", "res", Y("ToSequence", Terms.front())));
+ Y_DEBUG_ABORT_UNLESS(Terms_.size() == 1);
+ if (Columns_.All) {
+ terms = Y(Y("let", "res", Y("ToSequence", Terms_.front())));
} else {
- Y_DEBUG_ABORT_UNLESS(Columns.List.size() == Terms.size());
- terms = TermsGround ? TermsGround : Y();
+ Y_DEBUG_ABORT_UNLESS(Columns_.List.size() == Terms_.size());
+ terms = TermsGround_ ? TermsGround_ : Y();
terms = L(terms, Y("let", "res",
- L(Y("AsStruct"), Q(Y(BuildQuotedAtom(Pos, Columns.List.front()), Terms.front())))));
+ L(Y("AsStruct"), Q(Y(BuildQuotedAtom(Pos_, Columns_.List.front()), Terms_.front())))));
terms = L(terms, Y("let", "res", Y("Just", "res")));
}
return terms;
}
private:
- TSourcePtr Source;
- TNodePtr With;
- TNodePtr FiltersGround;
- TNodePtr TermsGround;
- TVector<TNodePtr> Terms;
- const bool ListCall;
- const bool Stream;
- const TWriteSettings Settings;
+ TSourcePtr Source_;
+ TNodePtr With_;
+ TNodePtr FiltersGround_;
+ TNodePtr TermsGround_;
+ TVector<TNodePtr> Terms_;
+ const bool ListCall_;
+ const bool Stream_;
+ const TWriteSettings Settings_;
};
TSourcePtr BuildProcess(
@@ -1877,31 +1877,31 @@ class TNestedProxySource: public IProxySource {
public:
TNestedProxySource(TPosition pos, const TVector<TNodePtr>& groupBy, TSourcePtr source)
: IProxySource(pos, source.Get())
- , CompositeSelect(nullptr)
- , Holder(std::move(source))
- , GroupBy(groupBy)
+ , CompositeSelect_(nullptr)
+ , Holder_(std::move(source))
+ , GroupBy_(groupBy)
{}
TNestedProxySource(TCompositeSelect* compositeSelect, const TVector<TNodePtr>& groupBy)
: IProxySource(compositeSelect->GetPos(), compositeSelect->RealSource())
- , CompositeSelect(compositeSelect)
- , GroupBy(groupBy)
+ , CompositeSelect_(compositeSelect)
+ , GroupBy_(groupBy)
{}
bool DoInit(TContext& ctx, ISource* src) override {
- return Source->Init(ctx, src);
+ return Source_->Init(ctx, src);
}
TNodePtr Build(TContext& ctx) override {
- return CompositeSelect ? BuildAtom(Pos, "composite", TNodeFlags::Default) : Source->Build(ctx);
+ return CompositeSelect_ ? BuildAtom(Pos_, "composite", TNodeFlags::Default) : Source_->Build(ctx);
}
bool InitFilters(TContext& ctx) override {
- return CompositeSelect ? true : Source->InitFilters(ctx);
+ return CompositeSelect_ ? true : Source_->InitFilters(ctx);
}
TNodePtr BuildFilter(TContext& ctx, const TString& label, const TNodePtr& groundNode) override {
- return CompositeSelect ? nullptr : Source->BuildFilter(ctx, label, groundNode);
+ return CompositeSelect_ ? nullptr : Source_->BuildFilter(ctx, label, groundNode);
}
bool IsCompositeSource() const override {
@@ -1909,22 +1909,22 @@ public:
}
ISource* GetCompositeSource() override {
- return CompositeSelect;
+ return CompositeSelect_;
}
bool CalculateGroupingHint(TContext& ctx, const TVector<TString>& columns, ui64& hint) const override {
Y_UNUSED(ctx);
hint = 0;
- if (GroupByColumns.empty()) {
- for (const auto& groupByNode: GroupBy) {
+ if (GroupByColumns_.empty()) {
+ for (const auto& groupByNode: GroupBy_) {
auto namePtr = groupByNode->GetColumnName();
YQL_ENSURE(namePtr);
- GroupByColumns.insert(*namePtr);
+ GroupByColumns_.insert(*namePtr);
}
}
for (const auto& column: columns) {
hint <<= 1;
- if (!GroupByColumns.contains(column)) {
+ if (!GroupByColumns_.contains(column)) {
hint += 1;
}
}
@@ -1932,23 +1932,23 @@ public:
}
void FinishColumns() override {
- Source->FinishColumns();
+ Source_->FinishColumns();
}
TMaybe<bool> AddColumn(TContext& ctx, TColumnNode& column) override {
- return Source->AddColumn(ctx, column);
+ return Source_->AddColumn(ctx, column);
}
TPtr DoClone() const final {
- return Holder.Get() ? new TNestedProxySource(Pos, CloneContainer(GroupBy), Holder->CloneSource()) :
- new TNestedProxySource(CompositeSelect, CloneContainer(GroupBy));
+ return Holder_.Get() ? new TNestedProxySource(Pos_, CloneContainer(GroupBy_), Holder_->CloneSource()) :
+ new TNestedProxySource(CompositeSelect_, CloneContainer(GroupBy_));
}
private:
- TCompositeSelect* CompositeSelect;
- TSourcePtr Holder;
- TVector<TNodePtr> GroupBy;
- mutable TSet<TString> GroupByColumns;
+ TCompositeSelect* CompositeSelect_;
+ TSourcePtr Holder_;
+ TVector<TNodePtr> GroupBy_;
+ mutable TSet<TString> GroupByColumns_;
};
TSourcePtr BuildSelectCore(
@@ -2021,7 +2021,7 @@ class TUnionAll: public IRealSource {
public:
TUnionAll(TPosition pos, TVector<TSourcePtr>&& sources)
: IRealSource(pos)
- , Sources(std::move(sources))
+ , Sources_(std::move(sources))
{
}
@@ -2030,7 +2030,7 @@ public:
}
void GetInputTables(TTableList& tableList) const override {
- for (auto& x : Sources) {
+ for (auto& x : Sources_) {
x->GetInputTables(tableList);
}
@@ -2038,21 +2038,21 @@ public:
}
bool DoInit(TContext& ctx, ISource* src) override {
- for (auto& s: Sources) {
+ for (auto& s: Sources_) {
s->UseAsInner();
if (!s->Init(ctx, src)) {
return false;
}
auto c = s->GetColumns();
Y_DEBUG_ABORT_UNLESS(c);
- Columns.Merge(*c);
+ Columns_.Merge(*c);
}
return true;
}
TNodePtr Build(TContext& ctx) override {
auto res = Y("UnionAll");
- for (auto& s: Sources) {
+ for (auto& s: Sources_) {
auto input = s->Build(ctx);
if (!input) {
return nullptr;
@@ -2064,7 +2064,7 @@ public:
bool IsStream() const override {
- for (auto& s: Sources) {
+ for (auto& s: Sources_) {
if (!s->IsStream()) {
return false;
}
@@ -2073,11 +2073,11 @@ public:
}
TNodePtr DoClone() const final {
- return MakeIntrusive<TUnionAll>(Pos, CloneContainer(Sources));
+ return MakeIntrusive<TUnionAll>(Pos_, CloneContainer(Sources_));
}
private:
- TVector<TSourcePtr> Sources;
+ TVector<TSourcePtr> Sources_;
};
TSourcePtr BuildUnionAll(TPosition pos, TVector<TSourcePtr>&& sources) {
@@ -2088,28 +2088,28 @@ class TOverWindowSource: public IProxySource {
public:
TOverWindowSource(TPosition pos, const TString& windowName, ISource* origSource)
: IProxySource(pos, origSource)
- , WindowName(windowName)
+ , WindowName_(windowName)
{
- Source->SetLabel(origSource->GetLabel());
+ Source_->SetLabel(origSource->GetLabel());
}
TString MakeLocalName(const TString& name) override {
- return Source->MakeLocalName(name);
+ return Source_->MakeLocalName(name);
}
void AddTmpWindowColumn(const TString& column) override {
- return Source->AddTmpWindowColumn(column);
+ return Source_->AddTmpWindowColumn(column);
}
bool AddAggregation(TContext& ctx, TAggregationPtr aggr) override {
if (aggr->IsOverWindow()) {
- return Source->AddAggregationOverWindow(ctx, WindowName, aggr);
+ return Source_->AddAggregationOverWindow(ctx, WindowName_, aggr);
}
- return Source->AddAggregation(ctx, aggr);
+ return Source_->AddAggregation(ctx, aggr);
}
bool AddFuncOverWindow(TContext& ctx, TNodePtr expr) override {
- return Source->AddFuncOverWindow(ctx, WindowName, expr);
+ return Source_->AddFuncOverWindow(ctx, WindowName_, expr);
}
bool IsOverWindowSource() const override {
@@ -2117,7 +2117,7 @@ public:
}
TMaybe<bool> AddColumn(TContext& ctx, TColumnNode& column) override {
- return Source->AddColumn(ctx, column);
+ return Source_->AddColumn(ctx, column);
}
TNodePtr Build(TContext& ctx) override {
@@ -2126,11 +2126,11 @@ public:
}
const TString* GetWindowName() const override {
- return &WindowName;
+ return &WindowName_;
}
TWindowSpecificationPtr FindWindowSpecification(TContext& ctx, const TString& windowName) const override {
- return Source->FindWindowSpecification(ctx, windowName);
+ return Source_->FindWindowSpecification(ctx, windowName);
}
TNodePtr DoClone() const final {
@@ -2138,7 +2138,7 @@ public:
}
private:
- const TString WindowName;
+ const TString WindowName_;
};
TSourcePtr BuildOverWindowSource(TPosition pos, const TString& windowName, ISource* origSource) {
@@ -2170,56 +2170,56 @@ class TSelect: public IProxySource {
public:
TSelect(TPosition pos, TSourcePtr source, TNodePtr skipTake)
: IProxySource(pos, source.Get())
- , Source(std::move(source))
- , SkipTake(skipTake)
+ , Source_(std::move(source))
+ , SkipTake_(skipTake)
{}
bool DoInit(TContext& ctx, ISource* src) override {
- Source->SetLabel(Label);
- if (AsInner) {
- Source->UseAsInner();
+ Source_->SetLabel(Label_);
+ if (AsInner_) {
+ Source_->UseAsInner();
}
- if (!Source->Init(ctx, src)) {
+ if (!Source_->Init(ctx, src)) {
return false;
}
- src = Source.Get();
- if (SkipTake) {
+ src = Source_.Get();
+ if (SkipTake_) {
ctx.PushBlockShortcuts();
- FakeSource.Reset(new TFakeSource(SkipTake->GetPos()));
- if (!SkipTake->Init(ctx, FakeSource.Get())) {
+ FakeSource_.Reset(new TFakeSource(SkipTake_->GetPos()));
+ if (!SkipTake_->Init(ctx, FakeSource_.Get())) {
return false;
}
- SkipTakeGround = ctx.GroundBlockShortcuts(ctx.Pos());
+ SkipTakeGround_ = ctx.GroundBlockShortcuts(ctx.Pos());
}
return true;
}
TNodePtr Build(TContext& ctx) override {
- auto input = Source->Build(ctx);
+ auto input = Source_->Build(ctx);
if (!input) {
return nullptr;
}
const auto label = "select";
auto block(Y(Y("let", label, input)));
- auto sortNode = Source->BuildSort(ctx, label);
+ auto sortNode = Source_->BuildSort(ctx, label);
if (sortNode) {
- if (AsInner && !SkipTake) {
+ if (AsInner_ && !SkipTake_) {
ctx.Warning(sortNode->GetPos(), TIssuesIds::YQL_ORDER_BY_WITHOUT_LIMIT_IN_SUBQUERY) << "ORDER BY without LIMIT in subquery will be ignored";
} else {
block = L(block, sortNode);
}
}
- if (SkipTake) {
- if (SkipTakeGround) {
- block = L(block, SkipTake->Y("let", "select", SkipTake->Y("block", SkipTake->Q(
- SkipTake->L(SkipTake->L(SkipTakeGround, SkipTake), Y("return", "select"))))));
+ if (SkipTake_) {
+ if (SkipTakeGround_) {
+ block = L(block, SkipTake_->Y("let", "select", SkipTake_->Y("block", SkipTake_->Q(
+ SkipTake_->L(SkipTake_->L(SkipTakeGround_, SkipTake_), Y("return", "select"))))));
} else {
- block = L(block, SkipTake);
+ block = L(block, SkipTake_);
}
}
block = L(block, Y("return", label));
@@ -2227,17 +2227,17 @@ public:
}
bool IsSelect() const override {
- return Source->IsSelect();
+ return Source_->IsSelect();
}
TPtr DoClone() const final {
- return MakeIntrusive<TSelect>(Pos, Source->CloneSource(), SafeClone(SkipTake));
+ return MakeIntrusive<TSelect>(Pos_, Source_->CloneSource(), SafeClone(SkipTake_));
}
protected:
- TSourcePtr Source;
- TNodePtr SkipTake;
- TNodePtr SkipTakeGround;
- THolder<TFakeSource> FakeSource;
+ TSourcePtr Source_;
+ TNodePtr SkipTake_;
+ TNodePtr SkipTakeGround_;
+ THolder<TFakeSource> FakeSource_;
};
TSourcePtr BuildSelect(TPosition pos, TSourcePtr source, TNodePtr skipTake) {
@@ -2248,12 +2248,12 @@ class TSelectResultNode final: public TAstListNode {
public:
TSelectResultNode(TPosition pos, TSourcePtr source, bool writeResult, bool inSubquery)
: TAstListNode(pos)
- , Source(std::move(source))
- , WriteResult(writeResult)
- , InSubquery(inSubquery)
+ , Source_(std::move(source))
+ , WriteResult_(writeResult)
+ , InSubquery_(inSubquery)
{
- YQL_ENSURE(Source, "Invalid source node");
- FakeSource = BuildFakeSource(pos);
+ YQL_ENSURE(Source_, "Invalid source node");
+ FakeSource_ = BuildFakeSource(pos);
}
bool IsSelect() const override {
@@ -2261,15 +2261,15 @@ public:
}
bool DoInit(TContext& ctx, ISource* src) override {
- if (!Source->Init(ctx, src)) {
+ if (!Source_->Init(ctx, src)) {
return false;
}
- src = Source.Get();
+ src = Source_.Get();
TTableList tableList;
- Source->GetInputTables(tableList);
+ Source_->GetInputTables(tableList);
- TNodePtr node(BuildInputTables(Pos, tableList, InSubquery));
+ TNodePtr node(BuildInputTables(Pos_, tableList, InSubquery_));
if (!node->Init(ctx, src)) {
return false;
}
@@ -2299,7 +2299,7 @@ public:
}
ctx.PushBlockShortcuts();
- if (!labelNode->Init(ctx, FakeSource.Get())) {
+ if (!labelNode->Init(ctx, FakeSource_.Get())) {
return false;
}
@@ -2313,14 +2313,14 @@ public:
settings = L(settings, Q(Y(Q("autoref"))));
}
- auto columns = Source->GetColumns();
+ auto columns = Source_->GetColumns();
if (columns && !columns->All && !(columns->QualifiedAll && ctx.SimpleColumns)) {
auto list = Y();
for (auto& c: columns->List) {
if (c.EndsWith('*')) {
- list = L(list, Q(Y(Q("prefix"), BuildQuotedAtom(Pos, c.substr(0, c.size() - 1)))));
+ list = L(list, Q(Y(Q("prefix"), BuildQuotedAtom(Pos_, c.substr(0, c.size() - 1)))));
} else {
- list = L(list, BuildQuotedAtom(Pos, c));
+ list = L(list, BuildQuotedAtom(Pos_, c));
}
}
settings = L(settings, Q(Y(Q("columns"), Q(list))));
@@ -2330,16 +2330,16 @@ public:
settings = L(settings, Q(Y(Q("take"), Q(ToString(ctx.ResultRowsLimit)))));
}
- auto output = Source->Build(ctx);
+ auto output = Source_->Build(ctx);
if (!output) {
return false;
}
node = L(node, Y("let", "output", output));
- if (WriteResult) {
- if (!Source->IsOrdered() && ctx.UseUnordered(*Source)) {
+ if (WriteResult_) {
+ if (!Source_->IsOrdered() && ctx.UseUnordered(*Source_)) {
node = L(node, Y("let", "output", Y("Unordered", "output")));
}
- auto writeResult(BuildWriteResult(Pos, "output", settings, clusters));
+ auto writeResult(BuildWriteResult(Pos_, "output", settings, clusters));
if (!writeResult->Init(ctx, src)) {
return false;
}
@@ -2357,11 +2357,11 @@ public:
return {};
}
protected:
- TSourcePtr Source;
+ TSourcePtr Source_;
- const bool WriteResult;
- const bool InSubquery;
- TSourcePtr FakeSource;
+ const bool WriteResult_;
+ const bool InSubquery_;
+ TSourcePtr FakeSource_;
};
TNodePtr BuildSelectResult(TPosition pos, TSourcePtr source, bool writeResult, bool inSubquery) {
diff --git a/yql/essentials/sql/v0/sql.cpp b/yql/essentials/sql/v0/sql.cpp
index f83a016b228..b4fab79deaa 100644
--- a/yql/essentials/sql/v0/sql.cpp
+++ b/yql/essentials/sql/v0/sql.cpp
@@ -542,7 +542,7 @@ class TSqlTranslation: public TTranslation {
protected:
TSqlTranslation(TContext& ctx, NSQLTranslation::ESqlMode mode)
: TTranslation(ctx)
- , Mode(mode)
+ , Mode_(mode)
{
/// \todo remove NSQLTranslation::ESqlMode params
YQL_ENSURE(ctx.Settings.Mode == mode);
@@ -571,7 +571,7 @@ protected:
TTableRef TableRefImpl(const TRule_table_ref& node);
TMaybe<TSourcePtr> AsTableImpl(const TRule_table_ref& node);
- NSQLTranslation::ESqlMode Mode;
+ NSQLTranslation::ESqlMode Mode_;
};
class TSqlExpression: public TSqlTranslation {
@@ -608,7 +608,7 @@ public:
}
void SetSmartParenthesisMode(ESmartParenthesis mode) {
- SmartParenthesisMode = mode;
+ SmartParenthesisMode_ = mode;
}
TNodePtr ExprShortcut(const TString& baseName, const TNodePtr& node) {
@@ -639,7 +639,7 @@ private:
bool SqlLambdaExprBody(TContext& ctx, const TRule_lambda_body& node, TVector<TNodePtr>& exprSeq);
TNodePtr KeyExpr(const TRule_key_expr& node) {
- TSqlExpression expr(Ctx, Mode);
+ TSqlExpression expr(Ctx_, Mode_);
return expr.WrapExprShortcuts(expr.Build(node.GetRule_expr2()));
}
@@ -673,14 +673,14 @@ private:
}
if (node.HasBlock3()) {
auto block = node.GetBlock3();
- TSqlExpression altExpr(Ctx, Mode);
+ TSqlExpression altExpr(Ctx_, Mode_);
auto altResult = altExpr.WrapExprShortcuts(SubExpr(block.GetRule_neq_subexpr2()));
if (!altResult) {
return nullptr;
}
const TVector<TNodePtr> args({result, altResult});
Token(block.GetToken1());
- result = BuildBuiltinFunc(Ctx, Ctx.Pos(), "Coalesce", args);
+ result = BuildBuiltinFunc(Ctx_, Ctx_.Pos(), "Coalesce", args);
}
return result;
}
@@ -714,27 +714,27 @@ private:
TNodePtr SqlInExpr(const TRule_in_expr& node);
TNodePtr SmartParenthesis(const TRule_smart_parenthesis& node);
- ESmartParenthesis SmartParenthesisMode = ESmartParenthesis::Default;
+ ESmartParenthesis SmartParenthesisMode_ = ESmartParenthesis::Default;
- THashMap<TString, TNodePtr> ExprShortcuts;
+ THashMap<TString, TNodePtr> ExprShortcuts_;
};
class TSqlCallExpr: public TSqlTranslation {
public:
TSqlCallExpr(TContext& ctx, NSQLTranslation::ESqlMode mode, TSqlExpression* usedExpr = nullptr)
: TSqlTranslation(ctx, mode)
- , UsedExpr(usedExpr)
+ , UsedExpr_(usedExpr)
{
}
TSqlCallExpr(const TSqlCallExpr& call, const TVector<TNodePtr>& args)
- : TSqlTranslation(call.Ctx, call.Mode)
- , Pos(call.Pos)
- , Func(call.Func)
- , Module(call.Module)
- , Node(call.Node)
- , Args(args)
- , AggMode(call.AggMode)
+ : TSqlTranslation(call.Ctx_, call.Mode_)
+ , Pos_(call.Pos_)
+ , Func_(call.Func_)
+ , Module_(call.Module_)
+ , Node_(call.Node_)
+ , Args_(args)
+ , AggMode_(call.AggMode_)
{
}
@@ -743,83 +743,83 @@ public:
void IncCounters();
TNodePtr BuildUdf(bool withArgsType) {
- auto result = Node ? Node : BuildCallable(Pos, Module, Func, withArgsType ? Args : TVector<TNodePtr>());
- if (to_lower(Module) == "tensorflow" && Func == "RunBatch") {
- Args.erase(Args.begin() + 2);
+ auto result = Node_ ? Node_ : BuildCallable(Pos_, Module_, Func_, withArgsType ? Args_ : TVector<TNodePtr>());
+ if (to_lower(Module_) == "tensorflow" && Func_ == "RunBatch") {
+ Args_.erase(Args_.begin() + 2);
}
return result;
}
TNodePtr BuildCall() {
TVector<TNodePtr> args;
- if (Node) {
- Module = "YQL";
- Func = NamedArgs.empty() ? "Apply" : "NamedApply";
- args.push_back(Node);
+ if (Node_) {
+ Module_ = "YQL";
+ Func_ = NamedArgs_.empty() ? "Apply" : "NamedApply";
+ args.push_back(Node_);
}
- bool mustUseNamed = !NamedArgs.empty();
+ bool mustUseNamed = !NamedArgs_.empty();
if (mustUseNamed) {
- if (Node) {
+ if (Node_) {
mustUseNamed = false;
}
- args.emplace_back(BuildTuple(Pos, PositionalArgs));
- args.emplace_back(BuildStructure(Pos, NamedArgs));
+ args.emplace_back(BuildTuple(Pos_, PositionalArgs_));
+ args.emplace_back(BuildStructure(Pos_, NamedArgs_));
} else {
- args.insert(args.end(), Args.begin(), Args.end());
+ args.insert(args.end(), Args_.begin(), Args_.end());
}
TFuncPrepareNameNode funcPrepareNameNode;
- if (UsedExpr) {
+ if (UsedExpr_) {
funcPrepareNameNode = [this](const TString& baseName, const TNodePtr& node) {
- return UsedExpr->ExprShortcut(baseName, node);
+ return UsedExpr_->ExprShortcut(baseName, node);
};
}
- auto result = BuildBuiltinFunc(Ctx, Pos, Func, args, Module, AggMode, &mustUseNamed, funcPrepareNameNode);
+ auto result = BuildBuiltinFunc(Ctx_, Pos_, Func_, args, Module_, AggMode_, &mustUseNamed, funcPrepareNameNode);
if (mustUseNamed) {
- Error() << "Named args are used for call, but unsupported by function: " << Func;
+ Error() << "Named args are used for call, but unsupported by function: " << Func_;
return nullptr;
}
return result;
}
TPosition GetPos() const {
- return Pos;
+ return Pos_;
}
const TVector<TNodePtr>& GetArgs() const {
- return Args;
+ return Args_;
}
bool EnsureNotDistinct(const TString& request) const {
- if (AggMode == EAggregateMode::Distinct) {
- Ctx.Error() << request << " does not allow DISTINCT arguments";
+ if (AggMode_ == EAggregateMode::Distinct) {
+ Ctx_.Error() << request << " does not allow DISTINCT arguments";
return false;
}
return true;
}
void SetOverWindow() {
- YQL_ENSURE(AggMode == EAggregateMode::Normal);
- AggMode = EAggregateMode::OverWindow;
+ YQL_ENSURE(AggMode_ == EAggregateMode::Normal);
+ AggMode_ = EAggregateMode::OverWindow;
}
void SetIgnoreNulls() {
- Func += "_IgnoreNulls";
+ Func_ += "_IgnoreNulls";
}
private:
- TPosition Pos;
- TString Func;
- TString Module;
- TNodePtr Node;
- TVector<TNodePtr> Args;
- TVector<TNodePtr> PositionalArgs;
- TVector<TNodePtr> NamedArgs;
- EAggregateMode AggMode = EAggregateMode::Normal;
- TSqlExpression* UsedExpr = nullptr;
+ TPosition Pos_;
+ TString Func_;
+ TString Module_;
+ TNodePtr Node_;
+ TVector<TNodePtr> Args_;
+ TVector<TNodePtr> PositionalArgs_;
+ TVector<TNodePtr> NamedArgs_;
+ EAggregateMode AggMode_ = EAggregateMode::Normal;
+ TSqlExpression* UsedExpr_ = nullptr;
};
TNodePtr TSqlTranslation::NamedExpr(const TRule_named_expr& node, EExpr exprMode) {
- TSqlExpression expr(Ctx, Mode);
+ TSqlExpression expr(Ctx_, Mode_);
if (exprMode == EExpr::GroupBy) {
expr.SetSmartParenthesisMode(TSqlExpression::ESmartParenthesis::GroupBy);
} else if (exprMode == EExpr::SqlLambdaParams) {
@@ -827,7 +827,7 @@ TNodePtr TSqlTranslation::NamedExpr(const TRule_named_expr& node, EExpr exprMode
}
TNodePtr exprNode(expr.WrapExprShortcuts(expr.Build(node.GetRule_expr1())));
if (!exprNode) {
- Ctx.IncrementMonCounter("sql_errors", "NamedExprInvalid");
+ Ctx_.IncrementMonCounter("sql_errors", "NamedExprInvalid");
return nullptr;
}
if (node.HasBlock2()) {
@@ -880,7 +880,7 @@ bool TSqlTranslation::NamedBindList(const TRule_named_bind_parameter_list& node,
TNodePtr TSqlTranslation::NamedBindParam(const TRule_named_bind_parameter& node) {
auto bindName = NamedNodeImpl(node.GetRule_bind_parameter1(), *this);
- auto result = BuildAtom(Ctx.Pos(), bindName, NYql::TNodeFlags::Default);
+ auto result = BuildAtom(Ctx_.Pos(), bindName, NYql::TNodeFlags::Default);
if (node.HasBlock2()) {
result->SetLabel(NamedNodeImpl(node.GetBlock2().GetRule_bind_parameter2(), *this));
}
@@ -890,7 +890,7 @@ TNodePtr TSqlTranslation::NamedBindParam(const TRule_named_bind_parameter& node)
TMaybe<TTableArg> TSqlTranslation::TableArgImpl(const TRule_table_arg& node) {
TTableArg ret;
ret.HasAt = node.HasBlock1();
- TSqlExpression expr(Ctx, Mode);
+ TSqlExpression expr(Ctx_, Mode_);
ret.Expr = expr.Build(node.GetRule_expr2());
if (!ret.Expr) {
return Nothing();
@@ -905,13 +905,13 @@ TMaybe<TTableArg> TSqlTranslation::TableArgImpl(const TRule_table_arg& node) {
}
TTableRef TSqlTranslation::TableRefImpl(const TRule_table_ref& node) {
- if (Mode == NSQLTranslation::ESqlMode::LIMITED_VIEW && node.GetRule_opt_id_prefix1().HasBlock1()) {
- Ctx.Error() << "Cluster should not be used in limited view";
- return TTableRef(Ctx.MakeName("table"), Ctx.CurrCluster, nullptr);
+ if (Mode_ == NSQLTranslation::ESqlMode::LIMITED_VIEW && node.GetRule_opt_id_prefix1().HasBlock1()) {
+ Ctx_.Error() << "Cluster should not be used in limited view";
+ return TTableRef(Ctx_.MakeName("table"), Ctx_.CurrCluster, nullptr);
}
auto cluster = OptIdPrefixAsClusterStr(node.GetRule_opt_id_prefix1(), *this, Context().CurrCluster);
if (!cluster) {
- return TTableRef(Ctx.MakeName("table"), Ctx.CurrCluster, nullptr);
+ return TTableRef(Ctx_.MakeName("table"), Ctx_.CurrCluster, nullptr);
}
TTableRef tr(Context().MakeName("table"), cluster, nullptr);
@@ -929,13 +929,13 @@ TTableRef TSqlTranslation::TableRefImpl(const TRule_table_ref& node) {
const TString func(Id(alt.GetRule_id_expr1(), *this));
auto arg = TableArgImpl(alt.GetRule_table_arg3());
if (!arg) {
- return TTableRef(Ctx.MakeName("table"), Ctx.CurrCluster, nullptr);
+ return TTableRef(Ctx_.MakeName("table"), Ctx_.CurrCluster, nullptr);
}
TVector<TTableArg> args(1, *arg);
for (auto& b : alt.GetBlock4()) {
arg = TableArgImpl(b.GetRule_table_arg2());
if (!arg) {
- return TTableRef(Ctx.MakeName("table"), Ctx.CurrCluster, nullptr);
+ return TTableRef(Ctx_.MakeName("table"), Ctx_.CurrCluster, nullptr);
}
args.push_back(*arg);
@@ -947,7 +947,7 @@ TTableRef TSqlTranslation::TableRefImpl(const TRule_table_ref& node) {
default:
Y_ABORT("You should change implementation according grammar changes");
}
- TVector<TString> hints = GetContextHints(Ctx);
+ TVector<TString> hints = GetContextHints(Ctx_);
if (node.HasBlock3()) {
hints = TableHintsImpl(node.GetBlock3().GetRule_table_hints1(), *this);
}
@@ -970,17 +970,17 @@ TMaybe<TSourcePtr> TSqlTranslation::AsTableImpl(const TRule_table_ref& node) {
if (func == "as_table") {
if (node.GetRule_opt_id_prefix1().HasBlock1()) {
- Ctx.Error() << "Cluster shouldn't be specified for AS_TABLE source";
+ Ctx_.Error() << "Cluster shouldn't be specified for AS_TABLE source";
return TMaybe<TSourcePtr>(nullptr);
}
if (!alt.GetBlock4().empty()) {
- Ctx.Error() << "Expected single argument for AS_TABLE source";
+ Ctx_.Error() << "Expected single argument for AS_TABLE source";
return TMaybe<TSourcePtr>(nullptr);
}
if (node.HasBlock3()) {
- Ctx.Error() << "No hints expected for AS_TABLE source";
+ Ctx_.Error() << "No hints expected for AS_TABLE source";
return TMaybe<TSourcePtr>(nullptr);
}
@@ -990,11 +990,11 @@ TMaybe<TSourcePtr> TSqlTranslation::AsTableImpl(const TRule_table_ref& node) {
}
if (arg->Expr->GetSource()) {
- Ctx.Error() << "AS_TABLE shouldn't be used for table sources";
+ Ctx_.Error() << "AS_TABLE shouldn't be used for table sources";
return TMaybe<TSourcePtr>(nullptr);
}
- return BuildNodeSource(Ctx.Pos(), arg->Expr);
+ return BuildNodeSource(Ctx_.Pos(), arg->Expr);
}
}
@@ -1032,47 +1032,47 @@ bool TSqlCallExpr::Init(const TCallExprRule& node) {
switch (block.Alt_case()) {
case TCallExprRule::TBlock1::kAlt1: {
auto& subblock = block.GetAlt1().GetBlock1();
- Module = IdOrString(subblock.GetRule_id_or_string1(), *this);
- Func = IdOrString(subblock.GetRule_id_or_string3(), *this);
+ Module_ = IdOrString(subblock.GetRule_id_or_string1(), *this);
+ Func_ = IdOrString(subblock.GetRule_id_or_string3(), *this);
break;
}
case TCallExprRule::TBlock1::kAlt2: {
if constexpr (std::is_same_v<TCallExprRule, TRule_call_expr>) {
- Func = Id(block.GetAlt2().GetRule_id_expr1(), *this);
+ Func_ = Id(block.GetAlt2().GetRule_id_expr1(), *this);
} else {
- Func = Id(block.GetAlt2().GetRule_in_id_expr1(), *this);
+ Func_ = Id(block.GetAlt2().GetRule_in_id_expr1(), *this);
}
break;
}
case TCallExprRule::TBlock1::kAlt3:
- Node = GetNamedNode(NamedNodeImpl(block.GetAlt3().GetRule_bind_parameter1(), *this));
- if (!Node) {
+ Node_ = GetNamedNode(NamedNodeImpl(block.GetAlt3().GetRule_bind_parameter1(), *this));
+ if (!Node_) {
return false;
}
break;
default:
Y_ABORT("You should change implementation according grammar changes");
}
- Pos = Ctx.Pos();
+ Pos_ = Ctx_.Pos();
if (node.HasBlock3()) {
switch (node.GetBlock3().Alt_case()) {
case TCallExprRule::TBlock3::kAlt1: {
const auto& alt = node.GetBlock3().GetAlt1();
if (IsDistinctOptSet(alt.GetRule_opt_set_quantifier1())) {
- YQL_ENSURE(AggMode == EAggregateMode::Normal);
- AggMode = EAggregateMode::Distinct;
- Ctx.IncrementMonCounter("sql_features", "DistinctInCallExpr");
+ YQL_ENSURE(AggMode_ == EAggregateMode::Normal);
+ AggMode_ = EAggregateMode::Distinct;
+ Ctx_.IncrementMonCounter("sql_features", "DistinctInCallExpr");
}
- if (!NamedExprList(alt.GetRule_named_expr_list2(), Args)) {
+ if (!NamedExprList(alt.GetRule_named_expr_list2(), Args_)) {
return false;
}
- for (const auto& arg: Args) {
+ for (const auto& arg: Args_) {
if (arg->GetLabel()) {
- NamedArgs.push_back(arg);
+ NamedArgs_.push_back(arg);
} else {
- PositionalArgs.push_back(arg);
- if (!NamedArgs.empty()) {
- Ctx.Error(arg->GetPos()) << "Unnamed arguments can not follow after named one";
+ PositionalArgs_.push_back(arg);
+ if (!NamedArgs_.empty()) {
+ Ctx_.Error(arg->GetPos()) << "Unnamed arguments can not follow after named one";
return false;
}
}
@@ -1080,7 +1080,7 @@ bool TSqlCallExpr::Init(const TCallExprRule& node) {
break;
}
case TCallExprRule::TBlock3::kAlt2:
- Args.push_back(BuildColumn(Pos, "*"));
+ Args_.push_back(BuildColumn(Pos_, "*"));
break;
default:
Y_ABORT("You should change implementation according grammar changes");
@@ -1090,22 +1090,22 @@ bool TSqlCallExpr::Init(const TCallExprRule& node) {
}
void TSqlCallExpr::IncCounters() {
- if (Node) {
- Ctx.IncrementMonCounter("sql_features", "NamedNodeUseApply");
- } else if (!Module.empty()) {
- if (ValidateForCounters(Module)) {
- Ctx.IncrementMonCounter("udf_modules", Module);
- Ctx.IncrementMonCounter("sql_features", "CallUdf");
- if (ValidateForCounters(Func)) {
- auto scriptType = NKikimr::NMiniKQL::ScriptTypeFromStr(Module);
+ if (Node_) {
+ Ctx_.IncrementMonCounter("sql_features", "NamedNodeUseApply");
+ } else if (!Module_.empty()) {
+ if (ValidateForCounters(Module_)) {
+ Ctx_.IncrementMonCounter("udf_modules", Module_);
+ Ctx_.IncrementMonCounter("sql_features", "CallUdf");
+ if (ValidateForCounters(Func_)) {
+ auto scriptType = NKikimr::NMiniKQL::ScriptTypeFromStr(Module_);
if (scriptType == NKikimr::NMiniKQL::EScriptType::Unknown) {
- Ctx.IncrementMonCounter("udf_functions", Module + "." + Func);
+ Ctx_.IncrementMonCounter("udf_functions", Module_ + "." + Func_);
}
}
}
- } else if (ValidateForCounters(Func)) {
- Ctx.IncrementMonCounter("sql_builtins", Func);
- Ctx.IncrementMonCounter("sql_features", "CallBuiltin");
+ } else if (ValidateForCounters(Func_)) {
+ Ctx_.IncrementMonCounter("sql_builtins", Func_);
+ Ctx_.IncrementMonCounter("sql_features", "CallBuiltin");
}
}
@@ -1174,7 +1174,7 @@ class TGroupByClause: public TSqlTranslation {
public:
TGroupByClause(TContext& ctx, NSQLTranslation::ESqlMode mode, TGroupByClauseCtx::TPtr groupSetContext = {})
: TSqlTranslation(ctx, mode)
- , GroupSetContext(groupSetContext ? groupSetContext : TGroupByClauseCtx::TPtr(new TGroupByClauseCtx()))
+ , GroupSetContext_(groupSetContext ? groupSetContext : TGroupByClauseCtx::TPtr(new TGroupByClauseCtx()))
{}
bool Build(const TRule_group_by_clause& node, bool stream);
@@ -1202,9 +1202,9 @@ private:
TString GenerateGroupByExprName();
bool IsAutogenerated(const TString* name) const;
- TVector<TNodePtr> GroupBySet;
- TGroupByClauseCtx::TPtr GroupSetContext;
- THoppingWindowSpecPtr HoppingWindowSpec; // stream queries
+ TVector<TNodePtr> GroupBySet_;
+ TGroupByClauseCtx::TPtr GroupSetContext_;
+ THoppingWindowSpecPtr HoppingWindowSpec_; // stream queries
static const TString AutogenerateNamePrefix;
};
@@ -1320,25 +1320,25 @@ TNodePtr Literal(TContext& ctx, const TRule_unsigned_number& rule) {
TNodePtr TSqlExpression::LiteralExpr(const TRule_literal_value& node) {
switch (node.Alt_case()) {
case TRule_literal_value::kAltLiteralValue1: {
- return LiteralNumber(Ctx, node.GetAlt_literal_value1().GetRule_integer1());
+ return LiteralNumber(Ctx_, node.GetAlt_literal_value1().GetRule_integer1());
}
case TRule_literal_value::kAltLiteralValue2: {
- return LiteralReal(Ctx, node.GetAlt_literal_value2().GetRule_real1());
+ return LiteralReal(Ctx_, node.GetAlt_literal_value2().GetRule_real1());
}
case TRule_literal_value::kAltLiteralValue3: {
const TString value(Token(node.GetAlt_literal_value3().GetToken1()));
- return BuildLiteralSmartString(Ctx, value);
+ return BuildLiteralSmartString(Ctx_, value);
}
case TRule_literal_value::kAltLiteralValue5: {
Token(node.GetAlt_literal_value5().GetToken1());
- return BuildLiteralNull(Ctx.Pos());
+ return BuildLiteralNull(Ctx_.Pos());
}
case TRule_literal_value::kAltLiteralValue9: {
const TString value(Token(node.GetAlt_literal_value9().GetRule_bool_value1().GetToken1()));
- return BuildLiteralBool(Ctx.Pos(), value);
+ return BuildLiteralBool(Ctx_.Pos(), value);
}
case TRule_literal_value::kAltLiteralValue10: {
- return BuildEmptyAction(Ctx.Pos());
+ return BuildEmptyAction(Ctx_.Pos());
}
default:
AltNotImplemented("literal_value", node);
@@ -1362,7 +1362,7 @@ TNodePtr TSqlExpression::UnaryExpr(const TUnarySubExprType& node) {
} else {
name = Id(alt.GetRule_in_id_expr1(), *this);
}
- ids.push_back(BuildColumn(Ctx.Pos()));
+ ids.push_back(BuildColumn(Ctx_.Pos()));
ids.push_back(name);
break;
}
@@ -1375,7 +1375,7 @@ TNodePtr TSqlExpression::UnaryExpr(const TUnarySubExprType& node) {
}
if (!expr) {
- Ctx.IncrementMonCounter("sql_errors", "BadAtomExpr");
+ Ctx_.IncrementMonCounter("sql_errors", "BadAtomExpr");
return nullptr;
}
ids.push_back(expr);
@@ -1388,13 +1388,13 @@ TNodePtr TSqlExpression::UnaryExpr(const TUnarySubExprType& node) {
for (auto& b: node.GetBlock2()) {
auto expr = KeyExpr(b.GetRule_key_expr1());
if (!expr) {
- Ctx.IncrementMonCounter("sql_errors", "BadKeyExpr");
+ Ctx_.IncrementMonCounter("sql_errors", "BadKeyExpr");
return nullptr;
}
ids.push_back(expr);
isLookup = true;
}
- TPosition pos(Ctx.Pos());
+ TPosition pos(Ctx_.Pos());
for (auto& dotBlock: node.GetBlock3()) {
auto bb = dotBlock.GetBlock2();
switch (bb.Alt_case()) {
@@ -1413,8 +1413,8 @@ TNodePtr TSqlExpression::UnaryExpr(const TUnarySubExprType& node) {
const TString str(Token(bb.GetAlt2().GetToken1()));
i32 pos = -1;
if (!TryFromString<i32>(str, pos)) {
- Ctx.Error() << "Failed to parse i32 from string: " << str;
- Ctx.IncrementMonCounter("sql_errors", "FailedToParsePos");
+ Ctx_.Error() << "Failed to parse i32 from string: " << str;
+ Ctx_.IncrementMonCounter("sql_errors", "FailedToParsePos");
return nullptr;
}
ids.push_back(pos);
@@ -1430,7 +1430,7 @@ TNodePtr TSqlExpression::UnaryExpr(const TUnarySubExprType& node) {
for (auto& b: dotBlock.GetBlock3()) {
auto expr = KeyExpr(b.GetRule_key_expr1());
if (!expr) {
- Ctx.IncrementMonCounter("sql_errors", "BadKeyExpr");
+ Ctx_.IncrementMonCounter("sql_errors", "BadKeyExpr");
return nullptr;
}
ids.push_back(expr);
@@ -1438,7 +1438,7 @@ TNodePtr TSqlExpression::UnaryExpr(const TUnarySubExprType& node) {
}
}
if (node.HasBlock4()) {
- Ctx.IncrementMonCounter("sql_errors", "CollateUnarySubexpr");
+ Ctx_.IncrementMonCounter("sql_errors", "CollateUnarySubexpr");
Error() << "unary_subexpr: COLLATE is not implemented yet";
}
Y_DEBUG_ABORT_UNLESS(!ids.empty());
@@ -1448,11 +1448,11 @@ TNodePtr TSqlExpression::UnaryExpr(const TUnarySubExprType& node) {
TNodePtr TSqlExpression::BindParameterRule(const TRule_bind_parameter& rule) {
const auto namedArg = NamedNodeImpl(rule, *this);
- if (SmartParenthesisMode == ESmartParenthesis::SqlLambdaParams) {
- Ctx.IncrementMonCounter("sql_features", "LambdaArgument");
- return BuildAtom(Ctx.Pos(), namedArg);
+ if (SmartParenthesisMode_ == ESmartParenthesis::SqlLambdaParams) {
+ Ctx_.IncrementMonCounter("sql_features", "LambdaArgument");
+ return BuildAtom(Ctx_.Pos(), namedArg);
} else {
- Ctx.IncrementMonCounter("sql_features", "NamedNodeUseAtom");
+ Ctx_.IncrementMonCounter("sql_features", "NamedNodeUseAtom");
return GetNamedNode(namedArg);
}
}
@@ -1463,7 +1463,7 @@ TNodePtr TSqlExpression::LambdaRule(const TRule_lambda& rule) {
if (!isSqlLambda) {
return SmartParenthesis(alt.GetRule_smart_parenthesis1());
}
- TSqlExpression expr(Ctx, Mode);
+ TSqlExpression expr(Ctx_, Mode_);
expr.SetSmartParenthesisMode(ESmartParenthesis::SqlLambdaParams);
auto parenthesis = expr.SmartParenthesis(alt.GetRule_smart_parenthesis1());
if (!parenthesis) {
@@ -1475,12 +1475,12 @@ TNodePtr TSqlExpression::LambdaRule(const TRule_lambda& rule) {
}
auto bodyBlock = alt.GetBlock2();
Token(bodyBlock.GetToken1());
- TPosition pos(Ctx.Pos());
+ TPosition pos(Ctx_.Pos());
TVector<TNodePtr> exprSeq;
for (const auto& arg: args) {
PushNamedNode(arg, BuildAtom(pos, arg, NYql::TNodeFlags::Default));
}
- const bool ret = SqlLambdaExprBody(Ctx, bodyBlock.GetRule_lambda_body3(), exprSeq);
+ const bool ret = SqlLambdaExprBody(Ctx_, bodyBlock.GetRule_lambda_body3(), exprSeq);
for (const auto& arg : args) {
PopNamedNode(arg);
}
@@ -1491,54 +1491,54 @@ TNodePtr TSqlExpression::LambdaRule(const TRule_lambda& rule) {
}
TNodePtr TSqlExpression::CastRule(const TRule_cast_expr& rule) {
- Ctx.IncrementMonCounter("sql_features", "Cast");
+ Ctx_.IncrementMonCounter("sql_features", "Cast");
const auto& alt = rule;
Token(alt.GetToken1());
- TPosition pos(Ctx.Pos());
- TSqlExpression expr(Ctx, Mode);
+ TPosition pos(Ctx_.Pos());
+ TSqlExpression expr(Ctx_, Mode_);
const auto& paramOne = alt.GetRule_type_name5().HasBlock2() ? alt.GetRule_type_name5().GetBlock2().GetRule_integer2().GetToken1().GetValue() : TString();
const auto& paramTwo = !paramOne.empty() && alt.GetRule_type_name5().GetBlock2().HasBlock3() ? alt.GetRule_type_name5().GetBlock2().GetBlock3().GetRule_integer2().GetToken1().GetValue() : TString();
- return BuildCast(Ctx, pos, expr.Build(alt.GetRule_expr3()), Id(alt.GetRule_type_name5().GetRule_id1(), *this), paramOne, paramTwo);
+ return BuildCast(Ctx_, pos, expr.Build(alt.GetRule_expr3()), Id(alt.GetRule_type_name5().GetRule_id1(), *this), paramOne, paramTwo);
}
TNodePtr TSqlExpression::BitCastRule(const TRule_bitcast_expr& rule) {
- Ctx.IncrementMonCounter("sql_features", "BitCast");
+ Ctx_.IncrementMonCounter("sql_features", "BitCast");
const auto& alt = rule;
Token(alt.GetToken1());
- TPosition pos(Ctx.Pos());
- TSqlExpression expr(Ctx, Mode);
+ TPosition pos(Ctx_.Pos());
+ TSqlExpression expr(Ctx_, Mode_);
const auto& paramOne = alt.GetRule_type_name5().HasBlock2() ? alt.GetRule_type_name5().GetBlock2().GetRule_integer2().GetToken1().GetValue() : TString();
const auto& paramTwo = !paramOne.empty() && alt.GetRule_type_name5().GetBlock2().HasBlock3() ? alt.GetRule_type_name5().GetBlock2().GetBlock3().GetRule_integer2().GetToken1().GetValue() : TString();
- return BuildBitCast(Ctx, pos, expr.Build(alt.GetRule_expr3()), Id(alt.GetRule_type_name5().GetRule_id1(), *this), paramOne, paramTwo);
+ return BuildBitCast(Ctx_, pos, expr.Build(alt.GetRule_expr3()), Id(alt.GetRule_type_name5().GetRule_id1(), *this), paramOne, paramTwo);
}
TNodePtr TSqlExpression::ExistsRule(const TRule_exists_expr& rule) {
- Ctx.IncrementMonCounter("sql_features", "Exists");
+ Ctx_.IncrementMonCounter("sql_features", "Exists");
const auto& alt = rule;
Token(alt.GetToken2());
- TSqlSelect select(Ctx, Mode);
+ TSqlSelect select(Ctx_, Mode_);
TPosition pos;
auto source = select.Build(alt.GetRule_select_stmt3(), pos);
if (!source) {
- Ctx.IncrementMonCounter("sql_errors", "BadSource");
+ Ctx_.IncrementMonCounter("sql_errors", "BadSource");
return nullptr;
}
const bool checkExist = true;
- return BuildBuiltinFunc(Ctx, Ctx.Pos(), "ListHasItems", {BuildSourceNode(pos, std::move(source), checkExist)});
+ return BuildBuiltinFunc(Ctx_, Ctx_.Pos(), "ListHasItems", {BuildSourceNode(pos, std::move(source), checkExist)});
}
TNodePtr TSqlExpression::CaseRule(const TRule_case_expr& rule) {
- Ctx.IncrementMonCounter("sql_features", "Case");
+ Ctx_.IncrementMonCounter("sql_features", "Case");
const auto& alt = rule;
Token(alt.GetToken1());
TNodePtr elseExpr;
if (alt.HasBlock4()) {
Token(alt.GetBlock4().GetToken1());
- TSqlExpression expr(Ctx, Mode);
+ TSqlExpression expr(Ctx_, Mode_);
elseExpr = expr.Build(alt.GetBlock4().GetRule_expr2());
} else {
- Ctx.IncrementMonCounter("sql_errors", "ElseIsRequired");
+ Ctx_.IncrementMonCounter("sql_errors", "ElseIsRequired");
Error() << "ELSE is required";
return nullptr;
}
@@ -1547,21 +1547,21 @@ TNodePtr TSqlExpression::CaseRule(const TRule_case_expr& rule) {
const auto& block = alt.GetBlock3(i).GetRule_when_expr1();
args.clear();
Token(block.GetToken1());
- TSqlExpression condExpr(Ctx, Mode);
+ TSqlExpression condExpr(Ctx_, Mode_);
args.push_back(condExpr.Build(block.GetRule_expr2()));
if (alt.HasBlock2()) {
- TSqlExpression expr(Ctx, Mode);
- args.back() = BuildBinaryOp(Ctx.Pos(), "==", expr.Build(alt.GetBlock2().GetRule_expr1()), args.back());
+ TSqlExpression expr(Ctx_, Mode_);
+ args.back() = BuildBinaryOp(Ctx_.Pos(), "==", expr.Build(alt.GetBlock2().GetRule_expr1()), args.back());
}
Token(block.GetToken3());
- TSqlExpression thenExpr(Ctx, Mode);
+ TSqlExpression thenExpr(Ctx_, Mode_);
args.push_back(thenExpr.Build(block.GetRule_expr4()));
args.push_back(elseExpr);
if (i > 0) {
- elseExpr = BuildBuiltinFunc(Ctx, Ctx.Pos(), "If", args);
+ elseExpr = BuildBuiltinFunc(Ctx_, Ctx_.Pos(), "If", args);
}
}
- return BuildBuiltinFunc(Ctx, Ctx.Pos(), "If", args);
+ return BuildBuiltinFunc(Ctx_, Ctx_.Pos(), "If", args);
}
template<typename TWindowFunctionType>
@@ -1570,7 +1570,7 @@ TNodePtr TSqlExpression::WindowFunctionRule(const TWindowFunctionType& rule) {
// OR
// in_window_function: in_call_expr (null_treatment? OVER window_name_or_specification)?;
const bool overWindow = rule.HasBlock2();
- TSqlCallExpr call(Ctx, Mode, this);
+ TSqlCallExpr call(Ctx_, Mode_, this);
bool initResult;
if constexpr (std::is_same_v<TWindowFunctionType, TRule_window_function>) {
@@ -1597,8 +1597,8 @@ TNodePtr TSqlExpression::WindowFunctionRule(const TWindowFunctionType& rule) {
call.SetIgnoreNulls();
}
const TString windowName = Id(winRule.GetAlt_window_name_or_specification1().GetRule_window_name1().GetRule_id1(), *this);
- Ctx.IncrementMonCounter("sql_features", "WindowFunctionOver");
- return BuildCalcOverWindow(Ctx.Pos(), windowName, call.BuildCall());
+ Ctx_.IncrementMonCounter("sql_features", "WindowFunctionOver");
+ return BuildCalcOverWindow(Ctx_.Pos(), windowName, call.BuildCall());
}
TNodePtr TSqlExpression::AtomExpr(const TRule_atom_expr& node) {
@@ -1615,7 +1615,7 @@ TNodePtr TSqlExpression::AtomExpr(const TRule_atom_expr& node) {
switch (node.Alt_case()) {
case TRule_atom_expr::kAltAtomExpr1:
- Ctx.IncrementMonCounter("sql_features", "LiteralExpr");
+ Ctx_.IncrementMonCounter("sql_features", "LiteralExpr");
return LiteralExpr(node.GetAlt_atom_expr1().GetRule_literal_value1());
case TRule_atom_expr::kAltAtomExpr2:
return BindParameterRule(node.GetAlt_atom_expr2().GetRule_bind_parameter1());
@@ -1632,7 +1632,7 @@ TNodePtr TSqlExpression::AtomExpr(const TRule_atom_expr& node) {
case TRule_atom_expr::kAltAtomExpr8: {
const auto& alt = node.GetAlt_atom_expr8();
const TString module(IdOrString(alt.GetRule_id_or_string1(), *this));
- TPosition pos(Ctx.Pos());
+ TPosition pos(Ctx_.Pos());
bool rawString = true;
const TString name(IdOrString(alt.GetRule_id_or_string3(), *this, rawString));
return BuildCallable(pos, module, name, {});
@@ -1658,7 +1658,7 @@ TNodePtr TSqlExpression::InAtomExpr(const TRule_in_atom_expr& node) {
switch (node.Alt_case()) {
case TRule_in_atom_expr::kAltInAtomExpr1:
- Ctx.IncrementMonCounter("sql_features", "LiteralExpr");
+ Ctx_.IncrementMonCounter("sql_features", "LiteralExpr");
return LiteralExpr(node.GetAlt_in_atom_expr1().GetRule_literal_value1());
case TRule_in_atom_expr::kAltInAtomExpr2:
return BindParameterRule(node.GetAlt_in_atom_expr2().GetRule_bind_parameter1());
@@ -1672,15 +1672,15 @@ TNodePtr TSqlExpression::InAtomExpr(const TRule_in_atom_expr& node) {
return CaseRule(node.GetAlt_in_atom_expr6().GetRule_case_expr1());
case TRule_in_atom_expr::kAltInAtomExpr7: {
Token(node.GetAlt_in_atom_expr7().GetToken1());
- TSqlSelect select(Ctx, Mode);
+ TSqlSelect select(Ctx_, Mode_);
TPosition pos;
auto source = select.Build(node.GetAlt_in_atom_expr7().GetRule_select_stmt2(), pos);
if (!source) {
- Ctx.IncrementMonCounter("sql_errors", "BadSource");
+ Ctx_.IncrementMonCounter("sql_errors", "BadSource");
return {};
}
- Ctx.IncrementMonCounter("sql_features", "InSubquery");
- return BuildSelectResult(pos, std::move(source), false, Mode == NSQLTranslation::ESqlMode::SUBQUERY);
+ Ctx_.IncrementMonCounter("sql_features", "InSubquery");
+ return BuildSelectResult(pos, std::move(source), false, Mode_ == NSQLTranslation::ESqlMode::SUBQUERY);
}
case TRule_in_atom_expr::kAltInAtomExpr8:
return BitCastRule(node.GetAlt_in_atom_expr8().GetRule_bitcast_expr1());
@@ -1694,18 +1694,18 @@ bool TSqlExpression::SqlLambdaParams(const TNodePtr& node, TVector<TString>& arg
auto errMsg = TStringBuf("Invalid lambda arguments syntax. Lambda arguments should starts with '$' as named value.");
auto tupleNodePtr = dynamic_cast<TTupleNode*>(node.Get());
if (!tupleNodePtr) {
- Ctx.Error(node->GetPos()) << errMsg;
+ Ctx_.Error(node->GetPos()) << errMsg;
return false;
}
THashSet<TString> dupArgsChecker;
for (const auto& argPtr: tupleNodePtr->Elements()) {
auto contentPtr = argPtr->GetAtomContent();
if (!contentPtr || !contentPtr->StartsWith("$")) {
- Ctx.Error(argPtr->GetPos()) << errMsg;
+ Ctx_.Error(argPtr->GetPos()) << errMsg;
return false;
}
if (!dupArgsChecker.insert(*contentPtr).second) {
- Ctx.Error(argPtr->GetPos()) << "Duplicate lambda argument parametr: '" << *contentPtr << "'.";
+ Ctx_.Error(argPtr->GetPos()) << "Duplicate lambda argument parametr: '" << *contentPtr << "'.";
return false;
}
args.push_back(*contentPtr);
@@ -1784,22 +1784,22 @@ TNodePtr TSqlExpression::SubExpr(const TRule_con_subexpr& node) {
case TRule_con_subexpr::kAltConSubexpr1:
return UnaryExpr(node.GetAlt_con_subexpr1().GetRule_unary_subexpr1());
case TRule_con_subexpr::kAltConSubexpr2: {
- Ctx.IncrementMonCounter("sql_features", "UnaryOperation");
+ Ctx_.IncrementMonCounter("sql_features", "UnaryOperation");
TString opName;
auto token = node.GetAlt_con_subexpr2().GetRule_unary_op1().GetToken1();
Token(token);
- TPosition pos(Ctx.Pos());
+ TPosition pos(Ctx_.Pos());
switch (token.GetId()) {
case SQLLexerTokens::TOKEN_NOT: opName = "Not"; break;
case SQLLexerTokens::TOKEN_PLUS: opName = "Plus"; break;
case SQLLexerTokens::TOKEN_MINUS: opName = "Minus"; break;
case SQLLexerTokens::TOKEN_TILDA: opName = "BitNot"; break;
default:
- Ctx.IncrementMonCounter("sql_errors", "UnsupportedUnaryOperation");
+ Ctx_.IncrementMonCounter("sql_errors", "UnsupportedUnaryOperation");
Error() << "Unsupported unary operation: " << token.GetValue();
return nullptr;
}
- Ctx.IncrementMonCounter("sql_unary_operations", opName);
+ Ctx_.IncrementMonCounter("sql_unary_operations", opName);
return BuildUnaryOp(pos, opName, UnaryExpr(node.GetAlt_con_subexpr2().GetRule_unary_subexpr2()));
}
default:
@@ -1814,7 +1814,7 @@ TNodePtr TSqlExpression::SubExpr(const TRule_xor_subexpr& node) {
if (!res) {
return {};
}
- TPosition pos(Ctx.Pos());
+ TPosition pos(Ctx_.Pos());
if (node.HasBlock2()) {
auto cond = node.GetBlock2().GetRule_cond_expr1();
switch (cond.Alt_case()) {
@@ -1830,7 +1830,7 @@ TNodePtr TSqlExpression::SubExpr(const TRule_xor_subexpr& node) {
if (opName == "like" || opName == "ilike") {
const TString* escapeLiteral = nullptr;
TNodePtr escapeNode;
- const auto& escaper = BuildUdf(Ctx, pos, "Re2", "PatternFromLike", {});
+ const auto& escaper = BuildUdf(Ctx_, pos, "Re2", "PatternFromLike", {});
TVector<TNodePtr> escaperArgs({ escaper, pattern });
if (matchOp.HasBlock4()) {
@@ -1842,30 +1842,30 @@ TNodePtr TSqlExpression::SubExpr(const TRule_xor_subexpr& node) {
escapeLiteral = escapeExpr->GetLiteral("String");
escapeNode = escapeExpr;
if (escapeLiteral) {
- Ctx.IncrementMonCounter("sql_features", "LikeEscape");
+ Ctx_.IncrementMonCounter("sql_features", "LikeEscape");
if (escapeLiteral->size() != 1) {
- Ctx.IncrementMonCounter("sql_errors", "LikeMultiCharEscape");
+ Ctx_.IncrementMonCounter("sql_errors", "LikeMultiCharEscape");
Error() << "ESCAPE clause requires single character argument";
return nullptr;
}
if (escapeLiteral[0] == "%" || escapeLiteral[0] == "_" || escapeLiteral[0] == "\\") {
- Ctx.IncrementMonCounter("sql_errors", "LikeUnsupportedEscapeChar");
+ Ctx_.IncrementMonCounter("sql_errors", "LikeUnsupportedEscapeChar");
Error() << "'%', '_' and '\\' are currently not supported in ESCAPE clause, ";
Error() << "please choose any other character";
return nullptr;
}
escaperArgs.push_back(BuildLiteralRawString(pos, *escapeLiteral));
} else {
- Ctx.IncrementMonCounter("sql_errors", "LikeNotLiteralEscape");
+ Ctx_.IncrementMonCounter("sql_errors", "LikeNotLiteralEscape");
Error() << "ESCAPE clause requires String literal argument";
return nullptr;
}
}
- auto re2options = BuildUdf(Ctx, pos, "Re2", "Options", {});
+ auto re2options = BuildUdf(Ctx_, pos, "Re2", "Options", {});
TString csMode;
if (opName == "ilike") {
- Ctx.IncrementMonCounter("sql_features", "CaseInsensitiveLike");
+ Ctx_.IncrementMonCounter("sql_features", "CaseInsensitiveLike");
csMode = "false";
} else {
csMode = "true";
@@ -1879,7 +1879,7 @@ TNodePtr TSqlExpression::SubExpr(const TRule_xor_subexpr& node) {
auto list = new TAstListNodeImpl(pos, { escapedPattern, optionsApply });
auto runConfig = new TAstListNodeImpl(pos, { new TAstAtomNodeImpl(pos, "quote", 0), list });
- const auto& matcher = BuildUdf(Ctx, pos, "Re2", "Match", { runConfig });
+ const auto& matcher = BuildUdf(Ctx_, pos, "Re2", "Match", { runConfig });
isMatch = new TCallNodeImpl(pos, "Apply", { matcher, res });
const TString* literalPattern = pattern->GetLiteral("String");
@@ -1906,7 +1906,7 @@ TNodePtr TSqlExpression::SubExpr(const TRule_xor_subexpr& node) {
}
} else {
if (inEscape) {
- Ctx.IncrementMonCounter("sql_errors", "LikeEscapeNormalSymbol");
+ Ctx_.IncrementMonCounter("sql_errors", "LikeEscapeNormalSymbol");
Error() << "Escape symbol should be used twice consecutively in LIKE pattern to be considered literal";
return nullptr;
} else {
@@ -1916,16 +1916,16 @@ TNodePtr TSqlExpression::SubExpr(const TRule_xor_subexpr& node) {
}
}
if (inEscape) {
- Ctx.IncrementMonCounter("sql_errors", "LikeEscapeSymbolEnd");
+ Ctx_.IncrementMonCounter("sql_errors", "LikeEscapeSymbolEnd");
Error() << "LIKE pattern should not end with escape symbol";
return nullptr;
}
if (opName != "ilike") {
if (!hasPattern) {
- isMatch = BuildBinaryOp(pos, "==", res, BuildLiteralSmartString(Ctx,
+ isMatch = BuildBinaryOp(pos, "==", res, BuildLiteralSmartString(Ctx_,
TStringBuilder() << "@@" << lowerBound << "@@"));
} else if (!lowerBound.empty()) {
- const auto& lowerBoundOp = BuildBinaryOp(pos, ">=", res, BuildLiteralSmartString(Ctx,
+ const auto& lowerBoundOp = BuildBinaryOp(pos, ">=", res, BuildLiteralSmartString(Ctx_,
TStringBuilder() << "@@" << lowerBound << "@@"));
auto& isMatchCopy = isMatch;
TStringBuilder upperBound;
@@ -1945,7 +1945,7 @@ TNodePtr TSqlExpression::SubExpr(const TRule_xor_subexpr& node) {
pos,
"And",
lowerBoundOp,
- BuildBinaryOp(pos, "<", res, BuildLiteralSmartString(Ctx,
+ BuildBinaryOp(pos, "<", res, BuildLiteralSmartString(Ctx_,
TStringBuilder() << "@@" << upperBound << "@@"))
);
isMatch = BuildBinaryOp(pos, "And", between, isMatchCopy);
@@ -1956,26 +1956,26 @@ TNodePtr TSqlExpression::SubExpr(const TRule_xor_subexpr& node) {
}
}
- Ctx.IncrementMonCounter("sql_features", notMatch ? "NotLike" : "Like");
+ Ctx_.IncrementMonCounter("sql_features", notMatch ? "NotLike" : "Like");
} else if (opName == "regexp" || opName == "rlike" || opName == "match") {
if (matchOp.HasBlock4()) {
- Ctx.IncrementMonCounter("sql_errors", "RegexpEscape");
+ Ctx_.IncrementMonCounter("sql_errors", "RegexpEscape");
TString opNameUpper(opName);
opNameUpper.to_upper();
Error() << opName << " and ESCAPE clauses should not be used together";
return nullptr;
}
- const auto& matcher = BuildUdf(Ctx, pos, "Pcre", opName == "match" ? "BacktrackingMatch" : "BacktrackingGrep", { pattern });
+ const auto& matcher = BuildUdf(Ctx_, pos, "Pcre", opName == "match" ? "BacktrackingMatch" : "BacktrackingGrep", { pattern });
isMatch = new TCallNodeImpl(pos, "Apply", { matcher, res });
if (opName != "match") {
- Ctx.IncrementMonCounter("sql_features", notMatch ? "NotRegexp" : "Regexp");
+ Ctx_.IncrementMonCounter("sql_features", notMatch ? "NotRegexp" : "Regexp");
} else {
- Ctx.IncrementMonCounter("sql_features", notMatch ? "NotMatch" : "Match");
+ Ctx_.IncrementMonCounter("sql_features", notMatch ? "NotMatch" : "Match");
}
} else {
- Ctx.IncrementMonCounter("sql_errors", "UnknownMatchOp");
+ Ctx_.IncrementMonCounter("sql_errors", "UnknownMatchOp");
AltNotImplemented("match_op", cond);
return nullptr;
}
@@ -1986,14 +1986,14 @@ TNodePtr TSqlExpression::SubExpr(const TRule_xor_subexpr& node) {
const bool notIn = altInExpr.HasBlock1();
auto hints = BuildTuple(pos, {});
if (altInExpr.HasBlock3()) {
- Ctx.IncrementMonCounter("sql_features", "IsCompactHint");
+ Ctx_.IncrementMonCounter("sql_features", "IsCompactHint");
auto sizeHint = BuildTuple(pos, { BuildQuotedAtom(pos, "isCompact", NYql::TNodeFlags::Default) });
hints = BuildTuple(pos, { sizeHint });
}
- TSqlExpression inSubexpr(Ctx, Mode);
+ TSqlExpression inSubexpr(Ctx_, Mode_);
auto inRight = inSubexpr.SqlInExpr(altInExpr.GetRule_in_expr4());
- auto isIn = BuildBuiltinFunc(Ctx, pos, "In", {res, inRight, hints});
- Ctx.IncrementMonCounter("sql_features", notIn ? "NotIn" : "In");
+ auto isIn = BuildBuiltinFunc(Ctx_, pos, "In", {res, inRight, hints});
+ Ctx_.IncrementMonCounter("sql_features", notIn ? "NotIn" : "In");
return notIn ? BuildUnaryOp(pos, "Not", isIn) : isIn;
}
case TRule_cond_expr::kAltCondExpr3: {
@@ -2006,17 +2006,17 @@ TNodePtr TSqlExpression::SubExpr(const TRule_xor_subexpr& node) {
if (altCase == TRule_cond_expr::TAlt3::TBlock1::kAlt4 &&
!cond.GetAlt_cond_expr3().GetBlock1().GetAlt4().HasBlock1())
{
- Ctx.Warning(Ctx.Pos(), TIssuesIds::YQL_MISSING_IS_BEFORE_NOT_NULL) << "Missing IS keyword before NOT NULL";
+ Ctx_.Warning(Ctx_.Pos(), TIssuesIds::YQL_MISSING_IS_BEFORE_NOT_NULL) << "Missing IS keyword before NOT NULL";
}
auto isNull = BuildIsNullOp(pos, res);
- Ctx.IncrementMonCounter("sql_features", notNoll ? "NotNull" : "Null");
+ Ctx_.IncrementMonCounter("sql_features", notNoll ? "NotNull" : "Null");
return notNoll ? BuildUnaryOp(pos, "Not", isNull) : isNull;
}
case TRule_cond_expr::kAltCondExpr4: {
auto alt = cond.GetAlt_cond_expr4();
if (alt.HasBlock1()) {
- Ctx.IncrementMonCounter("sql_features", "NotBetween");
+ Ctx_.IncrementMonCounter("sql_features", "NotBetween");
return BuildBinaryOp(
pos,
"Or",
@@ -2024,7 +2024,7 @@ TNodePtr TSqlExpression::SubExpr(const TRule_xor_subexpr& node) {
BuildBinaryOp(pos, ">", res, SubExpr(alt.GetRule_eq_subexpr5()))
);
} else {
- Ctx.IncrementMonCounter("sql_features", "Between");
+ Ctx_.IncrementMonCounter("sql_features", "Between");
return BuildBinaryOp(
pos,
"And",
@@ -2039,7 +2039,7 @@ TNodePtr TSqlExpression::SubExpr(const TRule_xor_subexpr& node) {
return BinOpList(node.GetRule_eq_subexpr1(), getNode, alt.GetBlock1().begin(), alt.GetBlock1().end());
}
default:
- Ctx.IncrementMonCounter("sql_errors", "UnknownConditionExpr");
+ Ctx_.IncrementMonCounter("sql_errors", "UnknownConditionExpr");
AltNotImplemented("cond_expr", cond);
return nullptr;
}
@@ -2048,7 +2048,7 @@ TNodePtr TSqlExpression::SubExpr(const TRule_xor_subexpr& node) {
}
TNodePtr TSqlExpression::BinOperList(const TString& opName, TVector<TNodePtr>::const_iterator begin, TVector<TNodePtr>::const_iterator end) const {
- TPosition pos(Ctx.Pos());
+ TPosition pos(Ctx_.Pos());
const size_t opCount = end - begin;
Y_DEBUG_ABORT_UNLESS(opCount >= 2);
if (opCount == 2) {
@@ -2066,7 +2066,7 @@ TNodePtr TSqlExpression::BinOper(const TString& opName, const TNode& node, TGetN
if (begin == end) {
return SubExpr(node);
}
- Ctx.IncrementMonCounter("sql_binary_operations", opName);
+ Ctx_.IncrementMonCounter("sql_binary_operations", opName);
const size_t listSize = end - begin;
TVector<TNodePtr> nodes;
nodes.reserve(1 + listSize);
@@ -2081,95 +2081,95 @@ template <typename TNode, typename TGetNode, typename TIter>
TNodePtr TSqlExpression::BinOpList(const TNode& node, TGetNode getNode, TIter begin, TIter end) {
TNodePtr partialResult = SubExpr(node);
while (begin != end) {
- Ctx.IncrementMonCounter("sql_features", "BinaryOperation");
+ Ctx_.IncrementMonCounter("sql_features", "BinaryOperation");
Token(begin->GetToken1());
- TPosition pos(Ctx.Pos());
+ TPosition pos(Ctx_.Pos());
TString opName;
auto tokenId = begin->GetToken1().GetId();
switch (tokenId) {
case SQLLexerTokens::TOKEN_LESS:
- Ctx.IncrementMonCounter("sql_binary_operations", "Less");
+ Ctx_.IncrementMonCounter("sql_binary_operations", "Less");
opName = "<";
break;
case SQLLexerTokens::TOKEN_LESS_OR_EQ:
opName = "<=";
- Ctx.IncrementMonCounter("sql_binary_operations", "LessOrEq");
+ Ctx_.IncrementMonCounter("sql_binary_operations", "LessOrEq");
break;
case SQLLexerTokens::TOKEN_GREATER:
opName = ">";
- Ctx.IncrementMonCounter("sql_binary_operations", "Greater");
+ Ctx_.IncrementMonCounter("sql_binary_operations", "Greater");
break;
case SQLLexerTokens::TOKEN_GREATER_OR_EQ:
opName = ">=";
- Ctx.IncrementMonCounter("sql_binary_operations", "GreaterOrEq");
+ Ctx_.IncrementMonCounter("sql_binary_operations", "GreaterOrEq");
break;
case SQLLexerTokens::TOKEN_PLUS:
opName = "+";
- Ctx.IncrementMonCounter("sql_binary_operations", "Plus");
+ Ctx_.IncrementMonCounter("sql_binary_operations", "Plus");
break;
case SQLLexerTokens::TOKEN_MINUS:
opName = "-";
- Ctx.IncrementMonCounter("sql_binary_operations", "Minus");
+ Ctx_.IncrementMonCounter("sql_binary_operations", "Minus");
break;
case SQLLexerTokens::TOKEN_ASTERISK:
opName = "*";
- Ctx.IncrementMonCounter("sql_binary_operations", "Multiply");
+ Ctx_.IncrementMonCounter("sql_binary_operations", "Multiply");
break;
case SQLLexerTokens::TOKEN_SLASH:
opName = "/";
- Ctx.IncrementMonCounter("sql_binary_operations", "Divide");
- if (!Ctx.PragmaClassicDivision) {
- partialResult = BuildCast(Ctx, pos, partialResult, "Double");
+ Ctx_.IncrementMonCounter("sql_binary_operations", "Divide");
+ if (!Ctx_.PragmaClassicDivision) {
+ partialResult = BuildCast(Ctx_, pos, partialResult, "Double");
}
break;
case SQLLexerTokens::TOKEN_PERCENT:
opName = "%";
- Ctx.IncrementMonCounter("sql_binary_operations", "Mod");
+ Ctx_.IncrementMonCounter("sql_binary_operations", "Mod");
break;
case SQLLexerTokens::TOKEN_EQUALS:
- Ctx.IncrementMonCounter("sql_binary_operations", "Equals");
+ Ctx_.IncrementMonCounter("sql_binary_operations", "Equals");
[[fallthrough]];
case SQLLexerTokens::TOKEN_EQUALS2:
- Ctx.IncrementMonCounter("sql_binary_operations", "Equals2");
+ Ctx_.IncrementMonCounter("sql_binary_operations", "Equals2");
opName = "==";
break;
case SQLLexerTokens::TOKEN_NOT_EQUALS:
- Ctx.IncrementMonCounter("sql_binary_operations", "NotEquals");
+ Ctx_.IncrementMonCounter("sql_binary_operations", "NotEquals");
[[fallthrough]];
case SQLLexerTokens::TOKEN_NOT_EQUALS2:
- Ctx.IncrementMonCounter("sql_binary_operations", "NotEquals2");
+ Ctx_.IncrementMonCounter("sql_binary_operations", "NotEquals2");
opName = "!=";
break;
case SQLLexerTokens::TOKEN_AMPERSAND:
opName = "BitAnd";
- Ctx.IncrementMonCounter("sql_binary_operations", "BitAnd");
+ Ctx_.IncrementMonCounter("sql_binary_operations", "BitAnd");
break;
case SQLLexerTokens::TOKEN_PIPE:
opName = "BitOr";
- Ctx.IncrementMonCounter("sql_binary_operations", "BitOr");
+ Ctx_.IncrementMonCounter("sql_binary_operations", "BitOr");
break;
case SQLLexerTokens::TOKEN_CARET:
opName = "BitXor";
- Ctx.IncrementMonCounter("sql_binary_operations", "BitXor");
+ Ctx_.IncrementMonCounter("sql_binary_operations", "BitXor");
break;
case SQLLexerTokens::TOKEN_SHIFT_LEFT:
opName = "ShiftLeft";
- Ctx.IncrementMonCounter("sql_binary_operations", "ShiftLeft");
+ Ctx_.IncrementMonCounter("sql_binary_operations", "ShiftLeft");
break;
case SQLLexerTokens::TOKEN_SHIFT_RIGHT:
opName = "ShiftRight";
- Ctx.IncrementMonCounter("sql_binary_operations", "ShiftRight");
+ Ctx_.IncrementMonCounter("sql_binary_operations", "ShiftRight");
break;
case SQLLexerTokens::TOKEN_ROT_LEFT:
opName = "RotLeft";
- Ctx.IncrementMonCounter("sql_binary_operations", "RotLeft");
+ Ctx_.IncrementMonCounter("sql_binary_operations", "RotLeft");
break;
case SQLLexerTokens::TOKEN_ROT_RIGHT:
opName = "RotRight";
- Ctx.IncrementMonCounter("sql_binary_operations", "RotRight");
+ Ctx_.IncrementMonCounter("sql_binary_operations", "RotRight");
break;
default:
- Ctx.IncrementMonCounter("sql_errors", "UnsupportedBinaryOperation");
+ Ctx_.IncrementMonCounter("sql_errors", "UnsupportedBinaryOperation");
Error() << "Unsupported binary operation token: " << tokenId;
return nullptr;
}
@@ -2182,7 +2182,7 @@ TNodePtr TSqlExpression::BinOpList(const TNode& node, TGetNode getNode, TIter be
}
TNodePtr TSqlExpression::SqlInExpr(const TRule_in_expr& node) {
- TSqlExpression expr(Ctx, Mode);
+ TSqlExpression expr(Ctx_, Mode_);
expr.SetSmartParenthesisMode(TSqlExpression::ESmartParenthesis::InStatement);
auto result = expr.WrapExprShortcuts(expr.UnaryExpr(node.GetRule_in_unary_subexpr1()));
return result;
@@ -2191,13 +2191,13 @@ TNodePtr TSqlExpression::SqlInExpr(const TRule_in_expr& node) {
TNodePtr TSqlExpression::SmartParenthesis(const TRule_smart_parenthesis& node) {
TVector<TNodePtr> exprs;
Token(node.GetToken1());
- const TPosition pos(Ctx.Pos());
+ const TPosition pos(Ctx_.Pos());
const bool isTuple = node.HasBlock3();
- bool expectTuple = SmartParenthesisMode == ESmartParenthesis::InStatement;
+ bool expectTuple = SmartParenthesisMode_ == ESmartParenthesis::InStatement;
EExpr mode = EExpr::Regular;
- if (SmartParenthesisMode == ESmartParenthesis::GroupBy) {
+ if (SmartParenthesisMode_ == ESmartParenthesis::GroupBy) {
mode = EExpr::GroupBy;
- } else if (SmartParenthesisMode == ESmartParenthesis::SqlLambdaParams) {
+ } else if (SmartParenthesisMode_ == ESmartParenthesis::SqlLambdaParams) {
mode = EExpr::SqlLambdaParams;
expectTuple = true;
}
@@ -2213,26 +2213,26 @@ TNodePtr TSqlExpression::SmartParenthesis(const TRule_smart_parenthesis& node) {
} else {
hasUnnamed = true;
}
- if (hasAliases && hasUnnamed && SmartParenthesisMode != ESmartParenthesis::GroupBy) {
- Ctx.IncrementMonCounter("sql_errors", "AnonymousStructMembers");
- Ctx.Error(pos) << "Structure does not allow anonymous members";
+ if (hasAliases && hasUnnamed && SmartParenthesisMode_ != ESmartParenthesis::GroupBy) {
+ Ctx_.IncrementMonCounter("sql_errors", "AnonymousStructMembers");
+ Ctx_.Error(pos) << "Structure does not allow anonymous members";
return nullptr;
}
}
if (exprs.size() == 1 && hasUnnamed && !isTuple && !expectTuple) {
return exprs.back();
}
- if (SmartParenthesisMode == ESmartParenthesis::GroupBy) {
+ if (SmartParenthesisMode_ == ESmartParenthesis::GroupBy) {
/// \todo support nested tuple\struct
if (isTuple) {
- Ctx.IncrementMonCounter("sql_errors", "SimpleTupleInGroupBy");
- Ctx.Error(pos) << "Unable to use tuple in group by clause";
+ Ctx_.IncrementMonCounter("sql_errors", "SimpleTupleInGroupBy");
+ Ctx_.Error(pos) << "Unable to use tuple in group by clause";
return nullptr;
}
- Ctx.IncrementMonCounter("sql_features", "ListOfNamedNode");
+ Ctx_.IncrementMonCounter("sql_features", "ListOfNamedNode");
return BuildListOfNamedNodes(pos, std::move(exprs));
}
- Ctx.IncrementMonCounter("sql_features", hasUnnamed ? "SimpleTuple" : "SimpleStruct");
+ Ctx_.IncrementMonCounter("sql_features", hasUnnamed ? "SimpleTuple" : "SimpleStruct");
return hasUnnamed || expectTuple ? BuildTuple(pos, exprs) : BuildStructure(pos, exprs);
}
@@ -2243,12 +2243,12 @@ TNodePtr TSqlTranslation::NamedNode(const TRule_named_nodes_stmt& rule, TVector<
TNodePtr nodeExpr = nullptr;
switch (rule.GetBlock3().Alt_case()) {
case TRule_named_nodes_stmt::TBlock3::kAlt1: {
- TSqlExpression expr(Ctx, Mode);
+ TSqlExpression expr(Ctx_, Mode_);
return expr.Build(rule.GetBlock3().GetAlt1().GetRule_expr1());
}
case TRule_named_nodes_stmt::TBlock3::kAlt2: {
- TSqlSelect expr(Ctx, Mode);
+ TSqlSelect expr(Ctx_, Mode_);
TPosition pos;
auto source = expr.Build(rule.GetBlock3().GetAlt2().GetRule_select_stmt2(), pos);
if (!source) {
@@ -2259,7 +2259,7 @@ TNodePtr TSqlTranslation::NamedNode(const TRule_named_nodes_stmt& rule, TVector<
default:
AltNotImplemented("named_node", rule.GetBlock3());
- Ctx.IncrementMonCounter("sql_errors", "UnknownNamedNode");
+ Ctx_.IncrementMonCounter("sql_errors", "UnknownNamedNode");
return nullptr;
}
}
@@ -2273,7 +2273,7 @@ bool TSqlTranslation::ImportStatement(const TRule_import_stmt& stmt, TVector<TSt
if (!NamedBindList(stmt.GetRule_named_bind_parameter_list4(), bindNames)) {
return false;
}
- const TString moduleAlias = Ctx.AddImport(std::move(modulePath));
+ const TString moduleAlias = Ctx_.AddImport(std::move(modulePath));
if (!moduleAlias) {
return false;
}
@@ -2302,49 +2302,49 @@ TNodePtr TSqlTranslation::DoStatement(const TRule_do_stmt& stmt, bool makeLambda
break;
}
case TRule_do_stmt_TBlock2::kAlt2:
- action = BuildEmptyAction(Ctx.Pos());
+ action = BuildEmptyAction(Ctx_.Pos());
break;
default:
- Ctx.IncrementMonCounter("sql_errors", "UnknownDoStmt");
+ Ctx_.IncrementMonCounter("sql_errors", "UnknownDoStmt");
AltNotImplemented("do_stmt", stmt.GetBlock2());
return nullptr;
}
TVector<TNodePtr> values;
- values.push_back(new TAstAtomNodeImpl(Ctx.Pos(), "Apply", TNodeFlags::Default));
+ values.push_back(new TAstAtomNodeImpl(Ctx_.Pos(), "Apply", TNodeFlags::Default));
values.push_back(action);
- values.push_back(new TAstAtomNodeImpl(Ctx.Pos(), "world", TNodeFlags::Default));
+ values.push_back(new TAstAtomNodeImpl(Ctx_.Pos(), "world", TNodeFlags::Default));
- TSqlExpression sqlExpr(Ctx, Mode);
+ TSqlExpression sqlExpr(Ctx_, Mode_);
if (stmt.HasBlock4() && !ExprList(sqlExpr, values, stmt.GetBlock4().GetRule_expr_list1())) {
return nullptr;
}
- TNodePtr apply = new TAstListNodeImpl(Ctx.Pos(), std::move(values));
+ TNodePtr apply = new TAstListNodeImpl(Ctx_.Pos(), std::move(values));
if (!makeLambda) {
- return BuildDoCall(Ctx.Pos(), apply);
+ return BuildDoCall(Ctx_.Pos(), apply);
}
- TNodePtr params = new TAstListNodeImpl(Ctx.Pos());
+ TNodePtr params = new TAstListNodeImpl(Ctx_.Pos());
params->Add("world");
for (const auto& arg : args) {
- params->Add(new TAstAtomNodeImpl(Ctx.Pos(), arg, TNodeFlags::ArbitraryContent));
+ params->Add(new TAstAtomNodeImpl(Ctx_.Pos(), arg, TNodeFlags::ArbitraryContent));
}
- return BuildDoCall(Ctx.Pos(), BuildLambda(Ctx.Pos(), params, apply));
+ return BuildDoCall(Ctx_.Pos(), BuildLambda(Ctx_.Pos(), params, apply));
}
bool TSqlSelect::JoinOp(ISource* join, const TRule_join_source::TBlock2& block) {
const auto& node = block.GetRule_join_op1();
switch (node.Alt_case()) {
case TRule_join_op::kAltJoinOp1:
- Ctx.IncrementMonCounter("sql_join_operations", "CartesianProduct");
+ Ctx_.IncrementMonCounter("sql_join_operations", "CartesianProduct");
Error() << "Cartesian product of tables is forbidden";
return false;
case TRule_join_op::kAltJoinOp2: {
auto alt = node.GetAlt_join_op2();
if (alt.HasBlock1()) {
- Ctx.IncrementMonCounter("sql_join_operations", "Natural");
+ Ctx_.IncrementMonCounter("sql_join_operations", "Natural");
Error() << "Natural join is not implemented yet";
return false;
}
@@ -2378,7 +2378,7 @@ bool TSqlSelect::JoinOp(ISource* join, const TRule_join_source::TBlock2& block)
joinOp = Token(block.GetAlt4().GetToken1());
break;
default:
- Ctx.IncrementMonCounter("sql_errors", "UnknownJoinOperation");
+ Ctx_.IncrementMonCounter("sql_errors", "UnknownJoinOperation");
AltNotImplemented("join_op", node);
return false;
}
@@ -2391,33 +2391,33 @@ bool TSqlSelect::JoinOp(ISource* join, const TRule_join_source::TBlock2& block)
joinOp = Token(alt.GetBlock2().GetAlt3().GetToken1());
break;
default:
- Ctx.IncrementMonCounter("sql_errors", "UnknownJoinOperation");
+ Ctx_.IncrementMonCounter("sql_errors", "UnknownJoinOperation");
AltNotImplemented("join_op", node);
return false;
}
joinOp = NormalizeJoinOp(joinOp);
- Ctx.IncrementMonCounter("sql_features", "Join");
- Ctx.IncrementMonCounter("sql_join_operations", joinOp);
+ Ctx_.IncrementMonCounter("sql_features", "Join");
+ Ctx_.IncrementMonCounter("sql_join_operations", joinOp);
TNodePtr joinKeyExpr;
if (block.HasBlock3()) {
if (joinOp == "Cross") {
Error() << "Cross join should not have ON or USING expression";
- Ctx.IncrementMonCounter("sql_errors", "BadJoinExpr");
+ Ctx_.IncrementMonCounter("sql_errors", "BadJoinExpr");
return false;
}
joinKeyExpr = JoinExpr(join, block.GetBlock3().GetRule_join_constraint1());
if (!joinKeyExpr) {
- Ctx.IncrementMonCounter("sql_errors", "BadJoinExpr");
+ Ctx_.IncrementMonCounter("sql_errors", "BadJoinExpr");
return false;
}
}
else {
if (joinOp != "Cross") {
Error() << "Expected ON or USING expression";
- Ctx.IncrementMonCounter("sql_errors", "BadJoinExpr");
+ Ctx_.IncrementMonCounter("sql_errors", "BadJoinExpr");
return false;
}
}
@@ -2427,7 +2427,7 @@ bool TSqlSelect::JoinOp(ISource* join, const TRule_join_source::TBlock2& block)
break;
}
default:
- Ctx.IncrementMonCounter("sql_errors", "UnknownJoinOperation2");
+ Ctx_.IncrementMonCounter("sql_errors", "UnknownJoinOperation2");
AltNotImplemented("join_op", node);
return false;
}
@@ -2439,23 +2439,23 @@ TNodePtr TSqlSelect::JoinExpr(ISource* join, const TRule_join_constraint& node)
case TRule_join_constraint::kAltJoinConstraint1: {
auto& alt = node.GetAlt_join_constraint1();
Token(alt.GetToken1());
- TSqlExpression expr(Ctx, Mode);
+ TSqlExpression expr(Ctx_, Mode_);
return expr.Build(alt.GetRule_expr2());
}
case TRule_join_constraint::kAltJoinConstraint2: {
auto& alt = node.GetAlt_join_constraint2();
Token(alt.GetToken1());
- TPosition pos(Ctx.Pos());
+ TPosition pos(Ctx_.Pos());
TVector<TDeferredAtom> names;
if (!PureColumnOrNamedListStr(alt.GetRule_pure_column_or_named_list2(), *this, names)) {
return nullptr;
}
Y_DEBUG_ABORT_UNLESS(join->GetJoin());
- return join->GetJoin()->BuildJoinKeys(Ctx, names);
+ return join->GetJoin()->BuildJoinKeys(Ctx_, names);
}
default:
- Ctx.IncrementMonCounter("sql_errors", "UnknownJoinConstraint");
+ Ctx_.IncrementMonCounter("sql_errors", "UnknownJoinConstraint");
AltNotImplemented("join_constraint", node);
break;
}
@@ -2476,7 +2476,7 @@ TVector<TNodePtr> TSqlSelect::OrdinaryNamedColumnList(const TRule_ordinary_named
}
break;
default:
- Ctx.IncrementMonCounter("sql_errors", "UnknownOrdinaryNamedColumn");
+ Ctx_.IncrementMonCounter("sql_errors", "UnknownOrdinaryNamedColumn");
AltNotImplemented("ordinary_named_column_list", node);
}
return result;
@@ -2502,8 +2502,8 @@ TSourcePtr TSqlSelect::FlattenSource(const TRule_flatten_source& node) {
return nullptr;
}
- Ctx.IncrementMonCounter("sql_features", "FlattenByColumns");
- if (!source->AddExpressions(Ctx, flattenColumns, EExprSeat::FlattenBy)) {
+ Ctx_.IncrementMonCounter("sql_features", "FlattenByColumns");
+ if (!source->AddExpressions(Ctx_, flattenColumns, EExprSeat::FlattenBy)) {
return nullptr;
}
@@ -2511,13 +2511,13 @@ TSourcePtr TSqlSelect::FlattenSource(const TRule_flatten_source& node) {
break;
}
case TRule_flatten_source::TBlock2::TBlock2::kAlt2: {
- Ctx.IncrementMonCounter("sql_features", "FlattenColumns");
+ Ctx_.IncrementMonCounter("sql_features", "FlattenColumns");
source->MarkFlattenColumns();
break;
}
default:
- Ctx.IncrementMonCounter("sql_errors", "UnknownOrdinaryNamedColumn");
+ Ctx_.IncrementMonCounter("sql_errors", "UnknownOrdinaryNamedColumn");
AltNotImplemented("flatten_source", flatten2);
}
}
@@ -2530,20 +2530,20 @@ TSourcePtr TSqlSelect::JoinSource(const TRule_join_source& node) {
return nullptr;
}
if (node.Block2Size()) {
- TPosition pos(Ctx.Pos());
+ TPosition pos(Ctx_.Pos());
TVector<TSourcePtr> sources;
sources.emplace_back(std::move(source));
for (auto& block: node.GetBlock2()) {
sources.emplace_back(FlattenSource(block.GetRule_flatten_source2()));
if (!sources.back()) {
- Ctx.IncrementMonCounter("sql_errors", "NoJoinWith");
+ Ctx_.IncrementMonCounter("sql_errors", "NoJoinWith");
return nullptr;
}
}
source = BuildEquiJoin(pos, std::move(sources));
for (auto& block: node.GetBlock2()) {
if (!JoinOp(source.Get(), block)) {
- Ctx.IncrementMonCounter("sql_errors", "NoJoinOp");
+ Ctx_.IncrementMonCounter("sql_errors", "NoJoinOp");
return nullptr;
}
}
@@ -2562,16 +2562,16 @@ bool TSqlSelect::SelectTerm(TVector<TNodePtr>& terms, const TRule_result_column&
Token(alt.GetToken2());
auto idAsteriskQualify = OptIdPrefixAsStr(alt.GetRule_opt_id_prefix1(), *this);
- Ctx.IncrementMonCounter("sql_features", idAsteriskQualify ? "QualifyAsterisk" : "Asterisk");
- terms.push_back(BuildColumn(Ctx.Pos(), "*", idAsteriskQualify));
+ Ctx_.IncrementMonCounter("sql_features", idAsteriskQualify ? "QualifyAsterisk" : "Asterisk");
+ terms.push_back(BuildColumn(Ctx_.Pos(), "*", idAsteriskQualify));
break;
}
case TRule_result_column::kAltResultColumn2: {
auto alt = node.GetAlt_result_column2();
- TSqlExpression expr(Ctx, Mode);
+ TSqlExpression expr(Ctx_, Mode_);
TNodePtr term(expr.Build(alt.GetRule_expr1()));
if (!term) {
- Ctx.IncrementMonCounter("sql_errors", "NoTerm");
+ Ctx_.IncrementMonCounter("sql_errors", "NoTerm");
return false;
}
if (alt.HasBlock2()) {
@@ -2581,7 +2581,7 @@ bool TSqlSelect::SelectTerm(TVector<TNodePtr>& terms, const TRule_result_column&
break;
}
default:
- Ctx.IncrementMonCounter("sql_errors", "UnknownResultColumn");
+ Ctx_.IncrementMonCounter("sql_errors", "UnknownResultColumn");
AltNotImplemented("result_column", node);
return false;
}
@@ -2593,23 +2593,23 @@ bool TSqlSelect::ValidateSelectColumns(const TVector<TNodePtr>& terms) {
TSet<TString> asteriskSources;
for (const auto& term: terms) {
const auto& label = term->GetLabel();
- if (!Ctx.PragmaAllowDotInAlias && label.find('.') != TString::npos) {
- Ctx.Error(term->GetPos()) << "Unable to use '.' in column name. Invalid column name: " << label;
+ if (!Ctx_.PragmaAllowDotInAlias && label.find('.') != TString::npos) {
+ Ctx_.Error(term->GetPos()) << "Unable to use '.' in column name. Invalid column name: " << label;
return false;
}
if (!label.empty()) {
if (!labels.insert(label).second) {
- Ctx.Error(term->GetPos()) << "Unable to use duplicate column names. Collision in name: " << label;
+ Ctx_.Error(term->GetPos()) << "Unable to use duplicate column names. Collision in name: " << label;
return false;
}
}
if (term->IsAsterisk()) {
const auto& source = *term->GetSourceName();
if (source.empty() && terms.ysize() > 1) {
- Ctx.Error(term->GetPos()) << "Unable to use general '*' with other columns, either specify concrete table like '<table>.*', either specify concrete columns.";
+ Ctx_.Error(term->GetPos()) << "Unable to use general '*' with other columns, either specify concrete table like '<table>.*', either specify concrete columns.";
return false;
} else if (!asteriskSources.insert(source).second) {
- Ctx.Error(term->GetPos()) << "Unable to use twice same quialified asterisk. Invalid source: " << source;
+ Ctx_.Error(term->GetPos()) << "Unable to use twice same quialified asterisk. Invalid source: " << source;
return false;
}
} else if (label.empty()) {
@@ -2618,7 +2618,7 @@ bool TSqlSelect::ValidateSelectColumns(const TVector<TNodePtr>& terms) {
const auto& source = *term->GetSourceName();
const auto usedName = source.empty() ? *column : source + '.' + *column;
if (!labels.insert(usedName).second) {
- Ctx.Error(term->GetPos()) << "Unable to use duplicate column names. Collision in name: " << usedName;
+ Ctx_.Error(term->GetPos()) << "Unable to use duplicate column names. Collision in name: " << usedName;
return false;
}
}
@@ -2639,19 +2639,19 @@ TSourcePtr TSqlSelect::SingleSource(const TRule_single_source& node) {
return nullptr;
}
- if (!source->Init(Ctx, source.Get())) {
+ if (!source->Init(Ctx_, source.Get())) {
return nullptr;
}
return source;
} else {
TTableRef table(TableRefImpl(alt.GetRule_table_ref1()));
- TPosition pos(Ctx.Pos());
- Ctx.IncrementMonCounter("sql_select_clusters", table.Cluster);
- if (!table.Check(Ctx)) {
+ TPosition pos(Ctx_.Pos());
+ Ctx_.IncrementMonCounter("sql_select_clusters", table.Cluster);
+ if (!table.Check(Ctx_)) {
return nullptr;
}
- const auto serviceName = to_lower(table.ServiceName(Ctx));
+ const auto serviceName = to_lower(table.ServiceName(Ctx_));
const bool stream = serviceName == RtmrProviderName;
return BuildTableSource(pos, table, stream);
@@ -2660,7 +2660,7 @@ TSourcePtr TSqlSelect::SingleSource(const TRule_single_source& node) {
case TRule_single_source::kAltSingleSource2: {
const auto& alt = node.GetAlt_single_source2();
Token(alt.GetToken1());
- TSqlSelect innerSelect(Ctx, Mode);
+ TSqlSelect innerSelect(Ctx_, Mode_);
TPosition pos;
auto source = innerSelect.Build(alt.GetRule_select_stmt2(), pos);
if (!source) {
@@ -2670,12 +2670,12 @@ TSourcePtr TSqlSelect::SingleSource(const TRule_single_source& node) {
}
case TRule_single_source::kAltSingleSource3: {
const auto& alt = node.GetAlt_single_source3();
- Ctx.IncrementMonCounter("sql_features", "NamedNodeUseSource");
+ Ctx_.IncrementMonCounter("sql_features", "NamedNodeUseSource");
auto named = NamedNodeImpl(alt.GetRule_bind_parameter2(), *this);
auto at = alt.HasBlock1();
if (at) {
if (alt.HasBlock3()) {
- Ctx.Error() << "Subquery must not be used as anonymous table name";
+ Ctx_.Error() << "Subquery must not be used as anonymous table name";
return nullptr;
}
@@ -2684,9 +2684,9 @@ TSourcePtr TSqlSelect::SingleSource(const TRule_single_source& node) {
return nullptr;
}
- auto source = TryMakeSourceFromExpression(Ctx, namedNode, "@");
+ auto source = TryMakeSourceFromExpression(Ctx_, namedNode, "@");
if (!source) {
- Ctx.Error() << "Cannot infer cluster and table name";
+ Ctx_.Error() << "Cannot infer cluster and table name";
return nullptr;
}
@@ -2694,29 +2694,29 @@ TSourcePtr TSqlSelect::SingleSource(const TRule_single_source& node) {
}
auto node = GetNamedNode(named);
if (!node) {
- Ctx.IncrementMonCounter("sql_errors", "NamedNodeSourceError");
+ Ctx_.IncrementMonCounter("sql_errors", "NamedNodeSourceError");
return nullptr;
}
if (alt.HasBlock3()) {
TVector<TNodePtr> values;
- values.push_back(new TAstAtomNodeImpl(Ctx.Pos(), "Apply", TNodeFlags::Default));
+ values.push_back(new TAstAtomNodeImpl(Ctx_.Pos(), "Apply", TNodeFlags::Default));
values.push_back(node);
- values.push_back(new TAstAtomNodeImpl(Ctx.Pos(), "world", TNodeFlags::Default));
+ values.push_back(new TAstAtomNodeImpl(Ctx_.Pos(), "world", TNodeFlags::Default));
- TSqlExpression sqlExpr(Ctx, Mode);
+ TSqlExpression sqlExpr(Ctx_, Mode_);
if (alt.GetBlock3().HasBlock2() && !ExprList(sqlExpr, values, alt.GetBlock3().GetBlock2().GetRule_expr_list1())) {
return nullptr;
}
- TNodePtr apply = new TAstListNodeImpl(Ctx.Pos(), std::move(values));
- return BuildNodeSource(Ctx.Pos(), apply);
+ TNodePtr apply = new TAstListNodeImpl(Ctx_.Pos(), std::move(values));
+ return BuildNodeSource(Ctx_.Pos(), apply);
}
- return BuildInnerSource(Ctx.Pos(), node);
+ return BuildInnerSource(Ctx_.Pos(), node);
}
default:
AltNotImplemented("single_source", node);
- Ctx.IncrementMonCounter("sql_errors", "UnknownSingleSource");
+ Ctx_.IncrementMonCounter("sql_errors", "UnknownSingleSource");
return nullptr;
}
}
@@ -2732,7 +2732,7 @@ TSourcePtr TSqlSelect::NamedSingleSource(const TRule_named_single_source& node)
}
if (node.HasBlock3()) {
ESampleMode mode = ESampleMode::Auto;
- TSqlExpression expr(Ctx, Mode);
+ TSqlExpression expr(Ctx_, Mode_);
TNodePtr samplingRateNode;
TNodePtr samplingSeedNode;
const auto& sampleBlock = node.GetBlock3();
@@ -2746,7 +2746,7 @@ TSourcePtr TSqlSelect::NamedSingleSource(const TRule_named_single_source& node)
return nullptr;
}
pos = GetPos(sampleBlock.GetAlt1().GetRule_sample_clause1().GetToken1());
- Ctx.IncrementMonCounter("sql_features", "SampleClause");
+ Ctx_.IncrementMonCounter("sql_features", "SampleClause");
}
break;
case TRule_named_single_source::TBlock3::kAlt2:
@@ -2759,8 +2759,8 @@ TSourcePtr TSqlSelect::NamedSingleSource(const TRule_named_single_source& node)
} else if (token == "bernoulli") {
mode = ESampleMode::Bernoulli;
} else {
- Ctx.Error(GetPos(modeToken)) << "Unsupported sampling mode: " << token;
- Ctx.IncrementMonCounter("sql_errors", "UnsupportedSamplingMode");
+ Ctx_.Error(GetPos(modeToken)) << "Unsupported sampling mode: " << token;
+ Ctx_.IncrementMonCounter("sql_errors", "UnsupportedSamplingMode");
return nullptr;
}
const auto& tableSampleExpr = tableSampleClause.GetRule_expr4();
@@ -2776,14 +2776,14 @@ TSourcePtr TSqlSelect::NamedSingleSource(const TRule_named_single_source& node)
}
}
pos = GetPos(sampleBlock.GetAlt2().GetRule_tablesample_clause1().GetToken1());
- Ctx.IncrementMonCounter("sql_features", "SampleClause");
+ Ctx_.IncrementMonCounter("sql_features", "SampleClause");
}
break;
default:
Y_ABORT("SampleClause: does not corresond to grammar changes");
}
- if (!singleSource->SetSamplingOptions(Ctx, pos, mode, samplingRateNode, samplingSeedNode)) {
- Ctx.IncrementMonCounter("sql_errors", "IncorrectSampleClause");
+ if (!singleSource->SetSamplingOptions(Ctx_, pos, mode, samplingRateNode, samplingSeedNode)) {
+ Ctx_.IncrementMonCounter("sql_errors", "IncorrectSampleClause");
return nullptr;
}
}
@@ -2794,7 +2794,7 @@ bool TSqlSelect::ColumnName(TVector<TNodePtr>& keys, const TRule_column_name& no
const auto sourceName = OptIdPrefixAsStr(node.GetRule_opt_id_prefix1(), *this);
const auto columnName = IdOrString(node.GetRule_id_or_string2(), *this);
YQL_ENSURE(!columnName.empty());
- keys.push_back(BuildColumn(Ctx.Pos(), columnName, sourceName));
+ keys.push_back(BuildColumn(Ctx_.Pos(), columnName, sourceName));
return true;
}
@@ -2836,7 +2836,7 @@ bool TSqlSelect::NamedColumnList(TVector<TNodePtr>& columnList, const TRule_name
bool TSqlSelect::SortSpecification(const TRule_sort_specification& node, TVector<TSortSpecificationPtr>& sortSpecs) {
bool asc = true;
- TSqlExpression expr(Ctx, Mode);
+ TSqlExpression expr(Ctx_, Mode_);
TNodePtr exprNode = expr.Build(node.GetRule_expr1());
if (!exprNode) {
return false;
@@ -2846,19 +2846,19 @@ bool TSqlSelect::SortSpecification(const TRule_sort_specification& node, TVector
Token(token);
switch (token.GetId()) {
case SQLLexerTokens::TOKEN_ASC:
- Ctx.IncrementMonCounter("sql_features", "OrderByAsc");
+ Ctx_.IncrementMonCounter("sql_features", "OrderByAsc");
break;
case SQLLexerTokens::TOKEN_DESC:
asc = false;
- Ctx.IncrementMonCounter("sql_features", "OrderByDesc");
+ Ctx_.IncrementMonCounter("sql_features", "OrderByDesc");
break;
default:
- Ctx.IncrementMonCounter("sql_errors", "UnknownOrderBy");
+ Ctx_.IncrementMonCounter("sql_errors", "UnknownOrderBy");
Error() << "Unsupported direction token: " << token.GetId();
return false;
}
} else {
- Ctx.IncrementMonCounter("sql_features", "OrderByDefault");
+ Ctx_.IncrementMonCounter("sql_features", "OrderByDefault");
}
auto sortSpecPtr = MakeIntrusive<TSortSpecification>();
sortSpecPtr->OrderExpr = exprNode;
@@ -2885,7 +2885,7 @@ TSourcePtr TSqlSelect::ProcessCore(const TRule_process_core& node, const TWriteS
// (WHERE expr)? (HAVING expr)?)?
Token(node.GetToken1());
- TPosition startPos(Ctx.Pos());
+ TPosition startPos(Ctx_.Pos());
const bool stream = node.HasBlock2();
if (!selectPos) {
@@ -2915,27 +2915,27 @@ TSourcePtr TSqlSelect::ProcessCore(const TRule_process_core& node, const TWriteS
const auto& block5 = node.GetBlock5();
if (block5.HasBlock4()) {
- TSqlExpression expr(Ctx, Mode);
+ TSqlExpression expr(Ctx_, Mode_);
TNodePtr where = expr.Build(block5.GetBlock4().GetRule_expr2());
- if (!where || !source->AddFilter(Ctx, where)) {
+ if (!where || !source->AddFilter(Ctx_, where)) {
return nullptr;
}
- Ctx.IncrementMonCounter("sql_features", "ProcessWhere");
+ Ctx_.IncrementMonCounter("sql_features", "ProcessWhere");
} else {
- Ctx.IncrementMonCounter("sql_features", stream ? "ProcessStream" : "Process");
+ Ctx_.IncrementMonCounter("sql_features", stream ? "ProcessStream" : "Process");
}
if (block5.HasBlock5()) {
- Ctx.Error() << "PROCESS does not allow HAVING yet! You may request it on yql@ maillist.";
+ Ctx_.Error() << "PROCESS does not allow HAVING yet! You may request it on yql@ maillist.";
return nullptr;
}
/// \todo other solution
- PushNamedNode(TArgPlaceholderNode::ProcessRows, BuildArgPlaceholder(Ctx.Pos(), TArgPlaceholderNode::ProcessRows));
- PushNamedNode(TArgPlaceholderNode::ProcessRow, BuildArgPlaceholder(Ctx.Pos(), TArgPlaceholderNode::ProcessRow));
+ PushNamedNode(TArgPlaceholderNode::ProcessRows, BuildArgPlaceholder(Ctx_.Pos(), TArgPlaceholderNode::ProcessRows));
+ PushNamedNode(TArgPlaceholderNode::ProcessRow, BuildArgPlaceholder(Ctx_.Pos(), TArgPlaceholderNode::ProcessRow));
bool listCall = false;
- TSqlCallExpr call(Ctx, Mode);
+ TSqlCallExpr call(Ctx_, Mode_);
bool initRet = call.Init(block5.GetRule_call_expr2());
if (initRet) {
call.IncCounters();
@@ -2956,7 +2956,7 @@ TSourcePtr TSqlSelect::ProcessCore(const TRule_process_core& node, const TWriteS
auto name = placeholder->GetName();
if (name == TArgPlaceholderNode::ProcessRows) {
if (listCall) {
- Ctx.Error(arg->GetPos()) << "Only single instance of " << name << " is allowed.";
+ Ctx_.Error(arg->GetPos()) << "Only single instance of " << name << " is allowed.";
return nullptr;
}
listCall = true;
@@ -2988,7 +2988,7 @@ TSourcePtr TSqlSelect::ReduceCore(const TRule_reduce_core& node, const TWriteSet
// ON column_list USING ALL? call_expr (AS id_or_string)?
// (WHERE expr)? (HAVING expr)?
Token(node.GetToken1());
- TPosition startPos(Ctx.Pos());
+ TPosition startPos(Ctx_.Pos());
if (!selectPos) {
selectPos = startPos;
}
@@ -3022,28 +3022,28 @@ TSourcePtr TSqlSelect::ReduceCore(const TRule_reduce_core& node, const TWriteSet
}
if (node.HasBlock11()) {
- TSqlExpression expr(Ctx, Mode);
+ TSqlExpression expr(Ctx_, Mode_);
TNodePtr where = expr.Build(node.GetBlock11().GetRule_expr2());
- if (!where || !source->AddFilter(Ctx, where)) {
+ if (!where || !source->AddFilter(Ctx_, where)) {
return nullptr;
}
- Ctx.IncrementMonCounter("sql_features", "ReduceWhere");
+ Ctx_.IncrementMonCounter("sql_features", "ReduceWhere");
} else {
- Ctx.IncrementMonCounter("sql_features", "Reduce");
+ Ctx_.IncrementMonCounter("sql_features", "Reduce");
}
TNodePtr having;
if (node.HasBlock12()) {
- TSqlExpression expr(Ctx, Mode);
+ TSqlExpression expr(Ctx_, Mode_);
having = expr.Build(node.GetBlock12().GetRule_expr2());
if (!having) {
return nullptr;
}
}
- PushNamedNode(TArgPlaceholderNode::ProcessRow, BuildColumn(Ctx.Pos(), "*"));
+ PushNamedNode(TArgPlaceholderNode::ProcessRow, BuildColumn(Ctx_.Pos(), "*"));
- TSqlCallExpr call(Ctx, Mode);
+ TSqlCallExpr call(Ctx_, Mode_);
bool initRet = call.Init(node.GetRule_call_expr9());
if (initRet) {
call.IncCounters();
@@ -3080,27 +3080,27 @@ TSourcePtr TSqlSelect::SelectCore(const TRule_select_core& node, const TWriteSet
Token(node.GetToken2());
}
- TPosition startPos(Ctx.Pos());
+ TPosition startPos(Ctx_.Pos());
if (!selectPos) {
- selectPos = Ctx.Pos();
+ selectPos = Ctx_.Pos();
}
const bool stream = node.HasBlock3();
const bool distinct = IsDistinctOptSet(node.GetRule_opt_set_quantifier4());
if (distinct) {
- Ctx.IncrementMonCounter("sql_features", "DistinctInSelect");
+ Ctx_.IncrementMonCounter("sql_features", "DistinctInSelect");
}
TSourcePtr source(BuildFakeSource(selectPos));
if (node.HasBlock1() && node.HasBlock8()) {
Token(node.GetBlock8().GetToken1());
- Ctx.IncrementMonCounter("sql_errors", "DoubleFrom");
- Ctx.Error() << "Only one FROM clause is allowed";
+ Ctx_.IncrementMonCounter("sql_errors", "DoubleFrom");
+ Ctx_.Error() << "Only one FROM clause is allowed";
return nullptr;
}
if (node.HasBlock1()) {
source = JoinSource(node.GetBlock1().GetRule_join_source2());
- Ctx.IncrementMonCounter("sql_features", "FromInFront");
+ Ctx_.IncrementMonCounter("sql_features", "FromInFront");
} else if (node.HasBlock8()) {
source = JoinSource(node.GetBlock8().GetRule_join_source2());
}
@@ -3117,25 +3117,25 @@ TSourcePtr TSqlSelect::SelectCore(const TRule_select_core& node, const TWriteSet
if (node.HasBlock9()) {
auto block = node.GetBlock9();
Token(block.GetToken1());
- TPosition pos(Ctx.Pos());
- TSqlExpression expr(Ctx, Mode);
+ TPosition pos(Ctx_.Pos());
+ TSqlExpression expr(Ctx_, Mode_);
TNodePtr where = expr.WrapExprShortcuts(expr.Build(block.GetRule_expr2()));
if (!where) {
- Ctx.IncrementMonCounter("sql_errors", "WhereInvalid");
+ Ctx_.IncrementMonCounter("sql_errors", "WhereInvalid");
return nullptr;
}
- if (!source->AddFilter(Ctx, where)) {
- Ctx.IncrementMonCounter("sql_errors", "WhereNotSupportedBySource");
+ if (!source->AddFilter(Ctx_, where)) {
+ Ctx_.IncrementMonCounter("sql_errors", "WhereNotSupportedBySource");
return nullptr;
}
- Ctx.IncrementMonCounter("sql_features", "Where");
+ Ctx_.IncrementMonCounter("sql_features", "Where");
}
/// \todo merge gtoupByExpr and groupBy in one
TVector<TNodePtr> groupByExpr, groupBy;
THoppingWindowSpecPtr hoppingWindowSpec;
if (node.HasBlock10()) {
- TGroupByClause clause(Ctx, Mode);
+ TGroupByClause clause(Ctx_, Mode_);
if (!clause.Build(node.GetBlock10().GetRule_group_by_clause1(), stream)) {
return nullptr;
}
@@ -3150,36 +3150,36 @@ TSourcePtr TSqlSelect::SelectCore(const TRule_select_core& node, const TWriteSet
TNodePtr having;
if (node.HasBlock11()) {
- TSqlExpression expr(Ctx, Mode);
+ TSqlExpression expr(Ctx_, Mode_);
having = expr.Build(node.GetBlock11().GetRule_expr2());
if (!having) {
return nullptr;
}
- Ctx.IncrementMonCounter("sql_features", "Having");
+ Ctx_.IncrementMonCounter("sql_features", "Having");
}
TWinSpecs windowSpec;
if (node.HasBlock12()) {
if (stream) {
- Ctx.Error() << "WINDOW is not allowed in streaming queries";
+ Ctx_.Error() << "WINDOW is not allowed in streaming queries";
return nullptr;
}
if (!WindowClause(node.GetBlock12().GetRule_window_clause1(), windowSpec)) {
return nullptr;
}
- Ctx.IncrementMonCounter("sql_features", "WindowClause");
+ Ctx_.IncrementMonCounter("sql_features", "WindowClause");
}
TVector<TSortSpecificationPtr> orderBy;
if (node.HasBlock13()) {
if (stream) {
- Ctx.Error() << "ORDER BY is not allowed in streaming queries";
+ Ctx_.Error() << "ORDER BY is not allowed in streaming queries";
return nullptr;
}
if (!OrderByClause(node.GetBlock13().GetRule_order_by_clause1(), orderBy)) {
return nullptr;
}
- Ctx.IncrementMonCounter("sql_features", IsColumnsOnly(orderBy) ? "OrderBy" : "OrderByExpr");
+ Ctx_.IncrementMonCounter("sql_features", IsColumnsOnly(orderBy) ? "OrderBy" : "OrderByExpr");
}
TVector<TNodePtr> terms;
if (!SelectTerm(terms, node.GetRule_result_column5())) {
@@ -3193,7 +3193,7 @@ TSourcePtr TSqlSelect::SelectCore(const TRule_select_core& node, const TWriteSet
if (!ValidateSelectColumns(terms)) {
return nullptr;
}
- return BuildSelectCore(Ctx, startPos, std::move(source), groupByExpr, groupBy, orderBy, having,
+ return BuildSelectCore(Ctx_, startPos, std::move(source), groupByExpr, groupBy, orderBy, having,
std::move(windowSpec), hoppingWindowSpec, std::move(terms), distinct, std::move(without), stream, settings);
}
@@ -3201,23 +3201,23 @@ bool TSqlSelect::FrameStart(const TRule_window_frame_start& rule, TNodePtr& node
switch (rule.Alt_case()) {
case TRule_window_frame_start::kAltWindowFrameStart1:
if (!beginBound) {
- Ctx.Error() << "Unable to use UNBOUNDED PRECEDING after BETWEEN ... AND";
+ Ctx_.Error() << "Unable to use UNBOUNDED PRECEDING after BETWEEN ... AND";
return false;
}
- node = BuildLiteralVoid(Ctx.Pos());
+ node = BuildLiteralVoid(Ctx_.Pos());
return true;
case TRule_window_frame_start::kAltWindowFrameStart2:
if (beginBound) {
- Ctx.Error() << "Unable to use FOLLOWING before AND in BETWEEN ... AND syntax";
+ Ctx_.Error() << "Unable to use FOLLOWING before AND in BETWEEN ... AND syntax";
return false;
}
{
auto precedingRule = rule.GetAlt_window_frame_start2().GetRule_window_frame_preceding1();
- node = Literal(Ctx, precedingRule.GetRule_unsigned_number1());
+ node = Literal(Ctx_, precedingRule.GetRule_unsigned_number1());
return true;
}
case TRule_window_frame_start::kAltWindowFrameStart3:
- return new TLiteralNumberNode<i32>(Ctx.Pos(), "Int32", ToString("0"));
+ return new TLiteralNumberNode<i32>(Ctx_.Pos(), "Int32", ToString("0"));
return true;
default:
Y_ABORT("FrameClause: frame start not corresond to grammar changes");
@@ -3230,19 +3230,19 @@ bool TSqlSelect::FrameBound(const TRule_window_frame_bound& rule, TNodePtr& node
return FrameStart(rule.GetAlt_window_frame_bound1().GetRule_window_frame_start1(), node, beginBound);
case TRule_window_frame_bound::kAltWindowFrameBound2:
if (beginBound) {
- Ctx.Error() << "Unable to use UNBOUNDED FOLLOWING before AND";
+ Ctx_.Error() << "Unable to use UNBOUNDED FOLLOWING before AND";
return false;
}
- node = BuildLiteralVoid(Ctx.Pos());
+ node = BuildLiteralVoid(Ctx_.Pos());
return true;
case TRule_window_frame_bound::kAltWindowFrameBound3:
if (beginBound) {
- Ctx.Error() << "Unable to use FOLLOWING before AND";
+ Ctx_.Error() << "Unable to use FOLLOWING before AND";
return false;
}
{
auto followRule = rule.GetAlt_window_frame_bound3().GetRule_window_frame_following1();
- node = Literal(Ctx, followRule.GetRule_unsigned_number1());
+ node = Literal(Ctx_, followRule.GetRule_unsigned_number1());
return true;
}
default:
@@ -3258,7 +3258,7 @@ bool TSqlSelect::FrameClause(const TRule_window_frame_clause& rule, TMaybe<TFram
} else if (frameUnitStr == "range") {
frameSpec.FrameType = EFrameType::FrameByRange;
} else {
- Ctx.Error() << "Unknown frame type in window specification: " << frameUnitStr;
+ Ctx_.Error() << "Unknown frame type in window specification: " << frameUnitStr;
return false;
}
auto frameExtent = rule.GetRule_window_frame_extent2();
@@ -3306,7 +3306,7 @@ bool TSqlSelect::FrameClause(const TRule_window_frame_clause& rule, TMaybe<TFram
TWindowSpecificationPtr TSqlSelect::WindowSpecification(const TRule_window_specification_details& rule) {
TWindowSpecificationPtr winSpecPtr = new TWindowSpecification;
if (rule.HasBlock1()) {
- Ctx.Error() << "Existing window name is not supported in window specification yet!";
+ Ctx_.Error() << "Existing window name is not supported in window specification yet!";
return {};
}
if (rule.HasBlock2()) {
@@ -3330,7 +3330,7 @@ TWindowSpecificationPtr TSqlSelect::WindowSpecification(const TRule_window_speci
bool TSqlSelect::WindowDefenition(const TRule_window_definition& rule, TWinSpecs& winSpecs) {
const TString windowName = Id(rule.GetRule_new_window_name1().GetRule_window_name1().GetRule_id1(), *this);
if (winSpecs.contains(windowName)) {
- Ctx.Error() << "Unable to declare window with same name: " << windowName;
+ Ctx_.Error() << "Unable to declare window with same name: " << windowName;
return false;
}
auto windowSpec = WindowSpecification(rule.GetRule_window_specification3().GetRule_window_specification_details2());
@@ -3361,20 +3361,20 @@ bool TSqlSelect::OrderByClause(const TRule_order_by_clause& node, TVector<TSortS
bool TGroupByClause::Build(const TRule_group_by_clause& node, bool stream) {
const bool distinct = IsDistinctOptSet(node.GetRule_opt_set_quantifier3());
if (distinct) {
- Ctx.Error() << "DISTINCT is not supported in GROUP BY clause yet!";
- Ctx.IncrementMonCounter("sql_errors", "DistinctInGroupByNotSupported");
+ Ctx_.Error() << "DISTINCT is not supported in GROUP BY clause yet!";
+ Ctx_.IncrementMonCounter("sql_errors", "DistinctInGroupByNotSupported");
return false;
}
if (!ParseList(node.GetRule_grouping_element_list4())) {
return false;
}
ResolveGroupByAndGrouping();
- if (stream && !HoppingWindowSpec) {
- Ctx.Error() << "Streaming group by query must have a hopping window specification.";
+ if (stream && !HoppingWindowSpec_) {
+ Ctx_.Error() << "Streaming group by query must have a hopping window specification.";
return false;
}
- if (!stream && HoppingWindowSpec) {
- Ctx.Error() << "Hopping window specification is not supported in a non-streaming query.";
+ if (!stream && HoppingWindowSpec_) {
+ Ctx_.Error() << "Hopping window specification is not supported in a non-streaming query.";
return false;
}
return true;
@@ -3393,38 +3393,38 @@ bool TGroupByClause::ParseList(const TRule_grouping_element_list& groupingListNo
}
void TGroupByClause::SetFeatures(const TString& field) const {
- Ctx.IncrementMonCounter(field, "GroupBy");
+ Ctx_.IncrementMonCounter(field, "GroupBy");
const auto& features = Features();
if (features.Test(EGroupByFeatures::Ordinary)) {
- Ctx.IncrementMonCounter(field, "GroupByOrdinary");
+ Ctx_.IncrementMonCounter(field, "GroupByOrdinary");
}
if (features.Test(EGroupByFeatures::Expression)) {
- Ctx.IncrementMonCounter(field, "GroupByExpression");
+ Ctx_.IncrementMonCounter(field, "GroupByExpression");
}
if (features.Test(EGroupByFeatures::Rollup)) {
- Ctx.IncrementMonCounter(field, "GroupByRollup");
+ Ctx_.IncrementMonCounter(field, "GroupByRollup");
}
if (features.Test(EGroupByFeatures::Cube)) {
- Ctx.IncrementMonCounter(field, "GroupByCube");
+ Ctx_.IncrementMonCounter(field, "GroupByCube");
}
if (features.Test(EGroupByFeatures::GroupingSet)) {
- Ctx.IncrementMonCounter(field, "GroupByGroupingSet");
+ Ctx_.IncrementMonCounter(field, "GroupByGroupingSet");
}
if (features.Test(EGroupByFeatures::Empty)) {
- Ctx.IncrementMonCounter(field, "GroupByEmpty");
+ Ctx_.IncrementMonCounter(field, "GroupByEmpty");
}
}
TVector<TNodePtr>& TGroupByClause::Content() {
- return GroupBySet;
+ return GroupBySet_;
}
TMap<TString, TNodePtr>& TGroupByClause::Aliases() {
- return GroupSetContext->NodeAliases;
+ return GroupSetContext_->NodeAliases;
}
THoppingWindowSpecPtr TGroupByClause::GetHoppingWindow() {
- return HoppingWindowSpec;
+ return HoppingWindowSpec_;
}
TVector<TNodePtr> TGroupByClause::MultiplyGroupingSets(const TVector<TNodePtr>& lhs, const TVector<TNodePtr>& rhs) const {
@@ -3437,37 +3437,37 @@ TVector<TNodePtr> TGroupByClause::MultiplyGroupingSets(const TVector<TNodePtr>&
auto rightPtr = rightNode->ContentListPtr();
YQL_ENSURE(rightPtr, "Unable to multiply grouping sets");
mulItem.insert(mulItem.end(), rightPtr->begin(), rightPtr->end());
- content.push_back(BuildListOfNamedNodes(Ctx.Pos(), std::move(mulItem)));
+ content.push_back(BuildListOfNamedNodes(Ctx_.Pos(), std::move(mulItem)));
}
}
return content;
}
void TGroupByClause::ResolveGroupByAndGrouping() {
- auto listPos = std::find_if(GroupBySet.begin(), GroupBySet.end(), [](const TNodePtr& node) {
+ auto listPos = std::find_if(GroupBySet_.begin(), GroupBySet_.end(), [](const TNodePtr& node) {
return node->ContentListPtr();
});
- if (listPos == GroupBySet.end()) {
+ if (listPos == GroupBySet_.end()) {
return;
}
auto curContent = *(*listPos)->ContentListPtr();
- if (listPos != GroupBySet.begin()) {
- TVector<TNodePtr> emulate(GroupBySet.begin(), listPos);
- TVector<TNodePtr> emulateContent(1, BuildListOfNamedNodes(Ctx.Pos(), std::move(emulate)));
+ if (listPos != GroupBySet_.begin()) {
+ TVector<TNodePtr> emulate(GroupBySet_.begin(), listPos);
+ TVector<TNodePtr> emulateContent(1, BuildListOfNamedNodes(Ctx_.Pos(), std::move(emulate)));
curContent = MultiplyGroupingSets(emulateContent, curContent);
}
- for (++listPos; listPos != GroupBySet.end(); ++listPos) {
+ for (++listPos; listPos != GroupBySet_.end(); ++listPos) {
auto newElem = (*listPos)->ContentListPtr();
if (newElem) {
curContent = MultiplyGroupingSets(curContent, *newElem);
} else {
TVector<TNodePtr> emulate(1, *listPos);
- TVector<TNodePtr> emulateContent(1, BuildListOfNamedNodes(Ctx.Pos(), std::move(emulate)));
+ TVector<TNodePtr> emulateContent(1, BuildListOfNamedNodes(Ctx_.Pos(), std::move(emulate)));
curContent = MultiplyGroupingSets(curContent, emulateContent);
}
}
- TVector<TNodePtr> result(1, BuildListOfNamedNodes(Ctx.Pos(), std::move(curContent)));
- std::swap(result, GroupBySet);
+ TVector<TNodePtr> result(1, BuildListOfNamedNodes(Ctx_.Pos(), std::move(curContent)));
+ std::swap(result, GroupBySet_);
}
bool TGroupByClause::GroupingElement(const TRule_grouping_element& node) {
@@ -3481,7 +3481,7 @@ bool TGroupByClause::GroupingElement(const TRule_grouping_element& node) {
Features().Set(EGroupByFeatures::Ordinary);
break;
case TRule_grouping_element::kAltGroupingElement2: {
- TGroupByClause subClause(Ctx, Mode, GroupSetContext);
+ TGroupByClause subClause(Ctx_, Mode_, GroupSetContext_);
if (!subClause.OrdinaryGroupingSetList(node.GetAlt_grouping_element2().GetRule_rollup_list1().GetRule_ordinary_grouping_set_list3())) {
return false;
}
@@ -3492,16 +3492,16 @@ bool TGroupByClause::GroupingElement(const TRule_grouping_element& node) {
TVector<TNodePtr> collection;
for (auto limit = content.end(), begin = content.begin(); limit != begin; --limit) {
TVector<TNodePtr> grouping(begin, limit);
- collection.push_back(BuildListOfNamedNodes(Ctx.Pos(), std::move(grouping)));
+ collection.push_back(BuildListOfNamedNodes(Ctx_.Pos(), std::move(grouping)));
}
- collection.push_back(BuildListOfNamedNodes(Ctx.Pos(), std::move(emptyContent)));
- GroupBySet.push_back(BuildListOfNamedNodes(Ctx.Pos(), std::move(collection)));
- Ctx.IncrementMonCounter("sql_features", TStringBuilder() << "GroupByRollup" << content.size());
+ collection.push_back(BuildListOfNamedNodes(Ctx_.Pos(), std::move(emptyContent)));
+ GroupBySet_.push_back(BuildListOfNamedNodes(Ctx_.Pos(), std::move(collection)));
+ Ctx_.IncrementMonCounter("sql_features", TStringBuilder() << "GroupByRollup" << content.size());
Features().Set(EGroupByFeatures::Rollup);
break;
}
case TRule_grouping_element::kAltGroupingElement3: {
- TGroupByClause subClause(Ctx, Mode, GroupSetContext);
+ TGroupByClause subClause(Ctx_, Mode_, GroupSetContext_);
if (!subClause.OrdinaryGroupingSetList(node.GetAlt_grouping_element3().GetRule_cube_list1().GetRule_ordinary_grouping_set_list3())) {
return false;
}
@@ -3509,8 +3509,8 @@ bool TGroupByClause::GroupingElement(const TRule_grouping_element& node) {
if (!IsNodeColumnsOrNamedExpression(content, "CUBE")) {
return false;
}
- if (content.size() > Ctx.PragmaGroupByCubeLimit) {
- Ctx.Error() << "GROUP BY CUBE is allowed only for " << Ctx.PragmaGroupByCubeLimit << " columns, but you use " << content.size();
+ if (content.size() > Ctx_.PragmaGroupByCubeLimit) {
+ Ctx_.Error() << "GROUP BY CUBE is allowed only for " << Ctx_.PragmaGroupByCubeLimit << " columns, but you use " << content.size();
return false;
}
TVector<TNodePtr> collection;
@@ -3521,17 +3521,17 @@ bool TGroupByClause::GroupingElement(const TRule_grouping_element& node) {
grouping.push_back(content[content.size() - index - 1]);
}
}
- collection.push_back(BuildListOfNamedNodes(Ctx.Pos(), std::move(grouping)));
+ collection.push_back(BuildListOfNamedNodes(Ctx_.Pos(), std::move(grouping)));
}
- collection.push_back(BuildListOfNamedNodes(Ctx.Pos(), std::move(emptyContent)));
- GroupBySet.push_back(BuildListOfNamedNodes(Ctx.Pos(), std::move(collection)));
- Ctx.IncrementMonCounter("sql_features", TStringBuilder() << "GroupByCube" << content.size());
+ collection.push_back(BuildListOfNamedNodes(Ctx_.Pos(), std::move(emptyContent)));
+ GroupBySet_.push_back(BuildListOfNamedNodes(Ctx_.Pos(), std::move(collection)));
+ Ctx_.IncrementMonCounter("sql_features", TStringBuilder() << "GroupByCube" << content.size());
Features().Set(EGroupByFeatures::Cube);
break;
}
case TRule_grouping_element::kAltGroupingElement4: {
auto listNode = node.GetAlt_grouping_element4().GetRule_grouping_sets_specification1().GetRule_grouping_element_list4();
- TGroupByClause subClause(Ctx, Mode, GroupSetContext);
+ TGroupByClause subClause(Ctx_, Mode_, GroupSetContext_);
if (!subClause.ParseList(listNode)) {
return false;
}
@@ -3553,10 +3553,10 @@ bool TGroupByClause::GroupingElement(const TRule_grouping_element& node) {
}
} else {
TVector<TNodePtr> elemList(1, std::move(elem));
- collection.push_back(BuildListOfNamedNodes(Ctx.Pos(), std::move(elemList)));
+ collection.push_back(BuildListOfNamedNodes(Ctx_.Pos(), std::move(elemList)));
}
}
- GroupBySet.push_back(BuildListOfNamedNodes(Ctx.Pos(), std::move(collection)));
+ GroupBySet_.push_back(BuildListOfNamedNodes(Ctx_.Pos(), std::move(collection)));
Features().Set(EGroupByFeatures::GroupingSet);
break;
}
@@ -3592,8 +3592,8 @@ bool TGroupByClause::OrdinaryGroupingSet(const TRule_ordinary_grouping_set& node
auto contentPtr = namedExprNode->ContentListPtr();
if (contentPtr) {
if (nodeLabel && (contentPtr->size() != 1 || contentPtr->front()->GetLabel())) {
- Ctx.Error() << "Unable to use aliases for list of named expressions";
- Ctx.IncrementMonCounter("sql_errors", "GroupByAliasForListOfExpressions");
+ Ctx_.Error() << "Unable to use aliases for list of named expressions";
+ Ctx_.IncrementMonCounter("sql_errors", "GroupByAliasForListOfExpressions");
return false;
}
for (auto& content: *contentPtr) {
@@ -3626,7 +3626,7 @@ bool TGroupByClause::OrdinaryGroupingSet(const TRule_ordinary_grouping_set& node
namedExprNode = BuildColumn(namedExprNode->GetPos(), nodeLabel);
}
}
- GroupBySet.emplace_back(std::move(namedExprNode));
+ GroupBySet_.emplace_back(std::move(namedExprNode));
return true;
}
@@ -3643,20 +3643,20 @@ bool TGroupByClause::OrdinaryGroupingSetList(const TRule_ordinary_grouping_set_l
}
bool TGroupByClause::HoppingWindow(const TRule_hopping_window_specification& node) {
- if (HoppingWindowSpec) {
- Ctx.Error() << "Duplicate hopping window specification.";
+ if (HoppingWindowSpec_) {
+ Ctx_.Error() << "Duplicate hopping window specification.";
return false;
}
- HoppingWindowSpec = new THoppingWindowSpec;
+ HoppingWindowSpec_ = new THoppingWindowSpec;
{
- TSqlExpression expr(Ctx, Mode);
- HoppingWindowSpec->TimeExtractor = expr.Build(node.GetRule_expr3());
- if (!HoppingWindowSpec->TimeExtractor) {
+ TSqlExpression expr(Ctx_, Mode_);
+ HoppingWindowSpec_->TimeExtractor = expr.Build(node.GetRule_expr3());
+ if (!HoppingWindowSpec_->TimeExtractor) {
return false;
}
}
auto processIntervalParam = [&] (const TRule_expr& rule) -> TNodePtr {
- TSqlExpression expr(Ctx, Mode);
+ TSqlExpression expr(Ctx_, Mode_);
auto node = expr.Build(rule);
if (!node) {
return nullptr;
@@ -3664,41 +3664,41 @@ bool TGroupByClause::HoppingWindow(const TRule_hopping_window_specification& nod
auto literal = node->GetLiteral("String");
if (!literal) {
- return new TAstListNodeImpl(Ctx.Pos(), {
- new TAstAtomNodeImpl(Ctx.Pos(), "EvaluateExpr", TNodeFlags::Default),
+ return new TAstListNodeImpl(Ctx_.Pos(), {
+ new TAstAtomNodeImpl(Ctx_.Pos(), "EvaluateExpr", TNodeFlags::Default),
node
});
}
const auto out = NKikimr::NMiniKQL::ValueFromString(NKikimr::NUdf::EDataSlot::Interval, *literal);
if (!out) {
- Ctx.Error(node->GetPos()) << "Expected interval in ISO 8601 format";
+ Ctx_.Error(node->GetPos()) << "Expected interval in ISO 8601 format";
return nullptr;
}
if ('T' == literal->back()) {
- Ctx.Warning(node->GetPos(), TIssuesIds::YQL_DEPRECATED_INTERVAL_CONSTANT) << "Time prefix 'T' at end of interval contant";
+ Ctx_.Warning(node->GetPos(), TIssuesIds::YQL_DEPRECATED_INTERVAL_CONSTANT) << "Time prefix 'T' at end of interval contant";
}
- return new TAstListNodeImpl(Ctx.Pos(), {
- new TAstAtomNodeImpl(Ctx.Pos(), "Interval", TNodeFlags::Default),
- new TAstListNodeImpl(Ctx.Pos(), {
- new TAstAtomNodeImpl(Ctx.Pos(), "quote", TNodeFlags::Default),
- new TAstAtomNodeImpl(Ctx.Pos(), ToString(out.Get<i64>()), TNodeFlags::Default)
+ return new TAstListNodeImpl(Ctx_.Pos(), {
+ new TAstAtomNodeImpl(Ctx_.Pos(), "Interval", TNodeFlags::Default),
+ new TAstListNodeImpl(Ctx_.Pos(), {
+ new TAstAtomNodeImpl(Ctx_.Pos(), "quote", TNodeFlags::Default),
+ new TAstAtomNodeImpl(Ctx_.Pos(), ToString(out.Get<i64>()), TNodeFlags::Default)
})
});
};
- HoppingWindowSpec->Hop = processIntervalParam(node.GetRule_expr5());
- if (!HoppingWindowSpec->Hop) {
+ HoppingWindowSpec_->Hop = processIntervalParam(node.GetRule_expr5());
+ if (!HoppingWindowSpec_->Hop) {
return false;
}
- HoppingWindowSpec->Interval = processIntervalParam(node.GetRule_expr7());
- if (!HoppingWindowSpec->Interval) {
+ HoppingWindowSpec_->Interval = processIntervalParam(node.GetRule_expr7());
+ if (!HoppingWindowSpec_->Interval) {
return false;
}
- HoppingWindowSpec->Delay = processIntervalParam(node.GetRule_expr9());
- if (!HoppingWindowSpec->Delay) {
+ HoppingWindowSpec_->Delay = processIntervalParam(node.GetRule_expr9());
+ if (!HoppingWindowSpec_->Delay) {
return false;
}
@@ -3708,8 +3708,8 @@ bool TGroupByClause::HoppingWindow(const TRule_hopping_window_specification& nod
bool TGroupByClause::IsNodeColumnsOrNamedExpression(const TVector<TNodePtr>& content, const TString& construction) const {
for (const auto& node: content) {
if (IsAutogenerated(node->GetColumnName())) {
- Ctx.Error() << "You should use in " << construction << " either expression with required alias either column name or used alias.";
- Ctx.IncrementMonCounter("sql_errors", "GroupBySetNoAliasOrColumn");
+ Ctx_.Error() << "You should use in " << construction << " either expression with required alias either column name or used alias.";
+ Ctx_.IncrementMonCounter("sql_errors", "GroupBySetNoAliasOrColumn");
return false;
}
}
@@ -3717,17 +3717,17 @@ bool TGroupByClause::IsNodeColumnsOrNamedExpression(const TVector<TNodePtr>& con
}
TGroupByClause::TGroupingSetFeatures& TGroupByClause::Features() {
- return GroupSetContext->GroupFeatures;
+ return GroupSetContext_->GroupFeatures;
}
const TGroupByClause::TGroupingSetFeatures& TGroupByClause::Features() const {
- return GroupSetContext->GroupFeatures;
+ return GroupSetContext_->GroupFeatures;
}
bool TGroupByClause::AddAlias(const TString& label, const TNodePtr& node) {
if (Aliases().contains(label)) {
- Ctx.Error() << "Duplicated aliases not allowed";
- Ctx.IncrementMonCounter("sql_errors", "GroupByDuplicateAliases");
+ Ctx_.Error() << "Duplicated aliases not allowed";
+ Ctx_.IncrementMonCounter("sql_errors", "GroupByDuplicateAliases");
return false;
}
Aliases().emplace(label, node);
@@ -3735,7 +3735,7 @@ bool TGroupByClause::AddAlias(const TString& label, const TNodePtr& node) {
}
TString TGroupByClause::GenerateGroupByExprName() {
- return TStringBuilder() << AutogenerateNamePrefix << GroupSetContext->UnnamedCount++;
+ return TStringBuilder() << AutogenerateNamePrefix << GroupSetContext_->UnnamedCount++;
}
bool TGroupByClause::IsAutogenerated(const TString* name) const {
@@ -3747,16 +3747,16 @@ TSourcePtr TSqlSelect::SelectKind(const TRule_select_kind_partial& node, TPositi
if (!source) {
return {};
}
- TPosition startPos(Ctx.Pos());
+ TPosition startPos(Ctx_.Pos());
/// LIMIT INTEGER block
TNodePtr skipTake;
if (node.HasBlock2()) {
auto block = node.GetBlock2();
Token(block.GetToken1());
- TPosition pos(Ctx.Pos());
+ TPosition pos(Ctx_.Pos());
- TSqlExpression takeExpr(Ctx, Mode);
+ TSqlExpression takeExpr(Ctx_, Mode_);
auto take = takeExpr.Build(block.GetRule_expr2());
if (!take) {
return{};
@@ -3764,7 +3764,7 @@ TSourcePtr TSqlSelect::SelectKind(const TRule_select_kind_partial& node, TPositi
TNodePtr skip;
if (block.HasBlock3()) {
- TSqlExpression skipExpr(Ctx, Mode);
+ TSqlExpression skipExpr(Ctx_, Mode_);
skip = skipExpr.Build(block.GetBlock3().GetRule_expr2());
if (!skip) {
return {};
@@ -3772,13 +3772,13 @@ TSourcePtr TSqlSelect::SelectKind(const TRule_select_kind_partial& node, TPositi
if (Token(block.GetBlock3().GetToken1()) == ",") {
// LIMIT skip, take
skip.Swap(take);
- Ctx.IncrementMonCounter("sql_features", "LimitSkipTake");
+ Ctx_.IncrementMonCounter("sql_features", "LimitSkipTake");
} else {
- Ctx.IncrementMonCounter("sql_features", "LimitOffset");
+ Ctx_.IncrementMonCounter("sql_features", "LimitOffset");
}
}
skipTake = BuildSkipTake(pos, skip, take);
- Ctx.IncrementMonCounter("sql_features", "Limit");
+ Ctx_.IncrementMonCounter("sql_features", "Limit");
}
return BuildSelect(startPos, std::move(source), skipTake);
}
@@ -3786,18 +3786,18 @@ TSourcePtr TSqlSelect::SelectKind(const TRule_select_kind_partial& node, TPositi
TSourcePtr TSqlSelect::SelectKind(const TRule_select_kind& node, TPosition& selectPos) {
const bool discard = node.HasBlock1();
const bool hasLabel = node.HasBlock3();
- if ((discard || hasLabel) && (Mode == NSQLTranslation::ESqlMode::LIMITED_VIEW || Mode == NSQLTranslation::ESqlMode::SUBQUERY)) {
- Ctx.Error() << "DISCARD and INTO RESULT are not allowed in current mode";
+ if ((discard || hasLabel) && (Mode_ == NSQLTranslation::ESqlMode::LIMITED_VIEW || Mode_ == NSQLTranslation::ESqlMode::SUBQUERY)) {
+ Ctx_.Error() << "DISCARD and INTO RESULT are not allowed in current mode";
return {};
}
if (discard && hasLabel) {
- Ctx.Error() << "DISCARD and INTO RESULT cannot be used at the same time";
+ Ctx_.Error() << "DISCARD and INTO RESULT cannot be used at the same time";
return {};
}
if (discard && !selectPos) {
- selectPos = Ctx.TokenPosition(node.GetBlock1().GetToken1());
+ selectPos = Ctx_.TokenPosition(node.GetBlock1().GetToken1());
}
TWriteSettings settings;
@@ -3851,7 +3851,7 @@ TSourcePtr TSqlSelect::Build(const TRule_select_stmt& node, TPosition& selectPos
const bool isUnionAll = b.GetRule_select_op1().GetAlt_select_op1().HasBlock2();
if (!isUnionAll) {
Token(b.GetRule_select_op1().GetAlt_select_op1().GetToken1());
- Ctx.Error() << "UNION without quantifier ALL is not supported yet. Did you mean UNION ALL?";
+ Ctx_.Error() << "UNION without quantifier ALL is not supported yet. Did you mean UNION ALL?";
return nullptr;
} else {
sources.emplace_back(std::move(next));
@@ -3859,7 +3859,7 @@ TSourcePtr TSqlSelect::Build(const TRule_select_stmt& node, TPosition& selectPos
break;
}
default:
- Ctx.Error() << "INTERSECT and EXCEPT are not implemented yet";
+ Ctx_.Error() << "INTERSECT and EXCEPT are not implemented yet";
return nullptr;
}
}
@@ -3898,22 +3898,22 @@ TSourcePtr TSqlIntoValues::Build(const TRule_into_values_source& node, const TSt
return ValuesSource(alt.GetRule_values_source2(), columnsHint, operationName);
}
default:
- Ctx.IncrementMonCounter("sql_errors", "DefaultValuesOrOther");
+ Ctx_.IncrementMonCounter("sql_errors", "DefaultValuesOrOther");
AltNotImplemented("into_values_source", node);
return nullptr;
}
}
bool TSqlIntoValues::BuildValuesRow(const TRule_values_source_row& inRow, TVector<TNodePtr>& outRow){
- TSqlExpression sqlExpr(Ctx, Mode);
+ TSqlExpression sqlExpr(Ctx_, Mode_);
return ExprList(sqlExpr, outRow, inRow.GetRule_expr_list2());
}
TSourcePtr TSqlIntoValues::ValuesSource(const TRule_values_source& node, TVector<TString>& columnsHint,
const TString& operationName)
{
- Ctx.IncrementMonCounter("sql_features", "ValuesSource");
- TPosition pos(Ctx.Pos());
+ Ctx_.IncrementMonCounter("sql_features", "ValuesSource");
+ TPosition pos(Ctx_.Pos());
switch (node.Alt_case()) {
case TRule_values_source::kAltValuesSource1: {
TVector<TVector<TNodePtr>> rows {{}};
@@ -3933,7 +3933,7 @@ TSourcePtr TSqlIntoValues::ValuesSource(const TRule_values_source& node, TVector
return BuildWriteValues(pos, operationName, columnsHint, rows);
}
case TRule_values_source::kAltValuesSource2: {
- TSqlSelect select(Ctx, Mode);
+ TSqlSelect select(Ctx_, Mode_);
TPosition selectPos;
auto source = select.Build(node.GetAlt_values_source2().GetRule_select_stmt1(), selectPos);
if (!source) {
@@ -3942,7 +3942,7 @@ TSourcePtr TSqlIntoValues::ValuesSource(const TRule_values_source& node, TVector
return BuildWriteValues(pos, "UPDATE", columnsHint, std::move(source));
}
default:
- Ctx.IncrementMonCounter("sql_errors", "UnknownValuesSource");
+ Ctx_.IncrementMonCounter("sql_errors", "UnknownValuesSource");
AltNotImplemented("values_source", node);
return nullptr;
}
@@ -3964,8 +3964,8 @@ private:
bool ValidateServiceName(const TRule_into_table_stmt& node, const TTableRef& table, ESQLWriteColumnMode mode,
const TPosition& pos);
- TString SqlIntoModeStr;
- TString SqlIntoUserModeStr;
+ TString SqlIntoModeStr_;
+ TString SqlIntoUserModeStr_;
};
TNodePtr TSqlIntoTable::Build(const TRule_into_table_stmt& node) {
@@ -4038,23 +4038,23 @@ TNodePtr TSqlIntoTable::Build(const TRule_into_table_stmt& node) {
modeStrings.push_back("Into");
userModeStrings.push_back("INTO");
- SqlIntoModeStr = JoinRange("", modeStrings.begin(), modeStrings.end());
- SqlIntoUserModeStr = JoinRange(" ", userModeStrings.begin(), userModeStrings.end());
+ SqlIntoModeStr_ = JoinRange("", modeStrings.begin(), modeStrings.end());
+ SqlIntoUserModeStr_ = JoinRange(" ", userModeStrings.begin(), userModeStrings.end());
auto intoTableRef = node.GetRule_into_simple_table_ref3();
auto tableRef = intoTableRef.GetRule_simple_table_ref1();
- auto cluster = Ctx.CurrCluster;
+ auto cluster = Ctx_.CurrCluster;
std::pair<bool, TDeferredAtom> nameOrAt;
if (tableRef.HasBlock1()) {
switch (tableRef.GetBlock1().Alt_case()) {
case TRule_simple_table_ref_TBlock1::AltCase::kAlt1: {
- cluster = OptIdPrefixAsClusterStr(tableRef.GetBlock1().GetAlt1().GetBlock1().GetRule_opt_id_prefix1(), *this, Ctx.CurrCluster);
- if (!cluster && Ctx.CurrCluster) {
+ cluster = OptIdPrefixAsClusterStr(tableRef.GetBlock1().GetAlt1().GetBlock1().GetRule_opt_id_prefix1(), *this, Ctx_.CurrCluster);
+ if (!cluster && Ctx_.CurrCluster) {
return nullptr;
}
auto id = Id(tableRef.GetBlock1().GetAlt1().GetBlock1().GetRule_id_or_at2(), *this);
- nameOrAt = std::make_pair(id.first, TDeferredAtom(Ctx.Pos(), id.second));
+ nameOrAt = std::make_pair(id.first, TDeferredAtom(Ctx_.Pos(), id.second));
break;
}
case TRule_simple_table_ref_TBlock1::AltCase::kAlt2: {
@@ -4065,12 +4065,12 @@ TNodePtr TSqlIntoTable::Build(const TRule_into_table_stmt& node) {
}
TDeferredAtom table;
- if (!TryMakeClusterAndTableFromExpression(named, cluster, table, Ctx)) {
- Ctx.Error() << "Cannot infer cluster and table name";
+ if (!TryMakeClusterAndTableFromExpression(named, cluster, table, Ctx_)) {
+ Ctx_.Error() << "Cannot infer cluster and table name";
return nullptr;
}
- cluster = cluster.empty() ? Ctx.CurrCluster : cluster;
+ cluster = cluster.empty() ? Ctx_.CurrCluster : cluster;
nameOrAt = std::make_pair(at, table);
break;
}
@@ -4086,7 +4086,7 @@ TNodePtr TSqlIntoTable::Build(const TRule_into_table_stmt& node) {
if (to_upper(hint) == "TRUNCATE") {
withTruncate = true;
} else {
- Ctx.Error() << "Unsupported hint: " << hint;
+ Ctx_.Error() << "Unsupported hint: " << hint;
return nullptr;
}
}
@@ -4094,14 +4094,14 @@ TNodePtr TSqlIntoTable::Build(const TRule_into_table_stmt& node) {
TVector<TString> eraseColumns;
if (intoTableRef.HasBlock2()) {
- auto service = Ctx.GetClusterProvider(cluster);
+ auto service = Ctx_.GetClusterProvider(cluster);
if (!service) {
- Ctx.Error() << "Unknown cluster name: " << cluster;
+ Ctx_.Error() << "Unknown cluster name: " << cluster;
return nullptr;
}
if (*service != StatProviderName) {
- Ctx.Error() << "ERASE BY is unsupported for " << *service;
+ Ctx_.Error() << "ERASE BY is unsupported for " << *service;
return nullptr;
}
@@ -4111,31 +4111,31 @@ TNodePtr TSqlIntoTable::Build(const TRule_into_table_stmt& node) {
}
if (withTruncate) {
- if (SqlIntoModeStr != "InsertInto") {
- Error() << "Unable " << SqlIntoUserModeStr << " with truncate mode";
+ if (SqlIntoModeStr_ != "InsertInto") {
+ Error() << "Unable " << SqlIntoUserModeStr_ << " with truncate mode";
return nullptr;
}
- SqlIntoModeStr += "WithTruncate";
- SqlIntoUserModeStr += " ... WITH TRUNCATE";
+ SqlIntoModeStr_ += "WithTruncate";
+ SqlIntoUserModeStr_ += " ... WITH TRUNCATE";
}
- const auto iterMode = str2Mode.find(SqlIntoModeStr);
- YQL_ENSURE(iterMode != str2Mode.end(), "Invalid sql write mode string: " << SqlIntoModeStr);
+ const auto iterMode = str2Mode.find(SqlIntoModeStr_);
+ YQL_ENSURE(iterMode != str2Mode.end(), "Invalid sql write mode string: " << SqlIntoModeStr_);
const auto SqlIntoMode = iterMode->second;
- TPosition pos(Ctx.Pos());
+ TPosition pos(Ctx_.Pos());
TNodePtr tableKey = BuildTableKey(pos, cluster, nameOrAt.second, nameOrAt.first ? "@" : "");
- TTableRef table(Ctx.MakeName("table"), cluster, tableKey);
- Ctx.IncrementMonCounter("sql_insert_clusters", table.Cluster);
+ TTableRef table(Ctx_.MakeName("table"), cluster, tableKey);
+ Ctx_.IncrementMonCounter("sql_insert_clusters", table.Cluster);
- auto values = TSqlIntoValues(Ctx, Mode).Build(node.GetRule_into_values_source4(), SqlIntoUserModeStr);
+ auto values = TSqlIntoValues(Ctx_, Mode_).Build(node.GetRule_into_values_source4(), SqlIntoUserModeStr_);
if (!values) {
return nullptr;
}
if (!ValidateServiceName(node, table, SqlIntoMode, GetPos(modeTokens[0]))) {
return nullptr;
}
- Ctx.IncrementMonCounter("sql_features", SqlIntoModeStr);
+ Ctx_.IncrementMonCounter("sql_features", SqlIntoModeStr_);
TNodePtr options;
if (eraseColumns) {
@@ -4148,10 +4148,10 @@ TNodePtr TSqlIntoTable::Build(const TRule_into_table_stmt& node) {
bool TSqlIntoTable::ValidateServiceName(const TRule_into_table_stmt& node, const TTableRef& table,
ESQLWriteColumnMode mode, const TPosition& pos) {
Y_UNUSED(node);
- if (!table.Check(Ctx)) {
+ if (!table.Check(Ctx_)) {
return false;
}
- auto serviceName = to_lower(table.ServiceName(Ctx));
+ auto serviceName = to_lower(table.ServiceName(Ctx_));
const bool isMapReduce = serviceName == YtProviderName;
const bool isKikimr = serviceName == KikimrProviderName;
const bool isRtmr = serviceName == RtmrProviderName;
@@ -4163,34 +4163,34 @@ bool TSqlIntoTable::ValidateServiceName(const TRule_into_table_stmt& node, const
mode == ESQLWriteColumnMode::InsertOrRevertInto ||
mode == ESQLWriteColumnMode::UpsertInto && !isStat)
{
- Ctx.Error(pos) << SqlIntoUserModeStr << " is not supported for " << serviceName << " tables";
- Ctx.IncrementMonCounter("sql_errors", TStringBuilder() << SqlIntoUserModeStr << "UnsupportedFor" << serviceName);
+ Ctx_.Error(pos) << SqlIntoUserModeStr_ << " is not supported for " << serviceName << " tables";
+ Ctx_.IncrementMonCounter("sql_errors", TStringBuilder() << SqlIntoUserModeStr_ << "UnsupportedFor" << serviceName);
return false;
}
}
if (isMapReduce) {
if (mode == ESQLWriteColumnMode::ReplaceInto) {
- Ctx.Error(pos) << "Meaning of REPLACE INTO has been changed, now you should use INSERT INTO <table> WITH TRUNCATE ... for " << serviceName;
- Ctx.IncrementMonCounter("sql_errors", "ReplaceIntoConflictUsage");
+ Ctx_.Error(pos) << "Meaning of REPLACE INTO has been changed, now you should use INSERT INTO <table> WITH TRUNCATE ... for " << serviceName;
+ Ctx_.IncrementMonCounter("sql_errors", "ReplaceIntoConflictUsage");
return false;
}
} else if (isKikimr) {
if (mode == ESQLWriteColumnMode::InsertIntoWithTruncate) {
- Ctx.Error(pos) << "INSERT INTO WITH TRUNCATE is not supported for " << serviceName << " tables";
- Ctx.IncrementMonCounter("sql_errors", TStringBuilder() << SqlIntoUserModeStr << "UnsupportedFor" << serviceName);
+ Ctx_.Error(pos) << "INSERT INTO WITH TRUNCATE is not supported for " << serviceName << " tables";
+ Ctx_.IncrementMonCounter("sql_errors", TStringBuilder() << SqlIntoUserModeStr_ << "UnsupportedFor" << serviceName);
return false;
}
} else if (isRtmr) {
if (mode != ESQLWriteColumnMode::InsertInto) {
- Ctx.Error(pos) << SqlIntoUserModeStr << " is unsupported for " << serviceName;
- Ctx.IncrementMonCounter("sql_errors", TStringBuilder() << SqlIntoUserModeStr << "UnsupportedFor" << serviceName);
+ Ctx_.Error(pos) << SqlIntoUserModeStr_ << " is unsupported for " << serviceName;
+ Ctx_.IncrementMonCounter("sql_errors", TStringBuilder() << SqlIntoUserModeStr_ << "UnsupportedFor" << serviceName);
return false;
}
} else if (isStat) {
if (mode != ESQLWriteColumnMode::UpsertInto) {
- Ctx.Error(pos) << SqlIntoUserModeStr << " is unsupported for " << serviceName;
- Ctx.IncrementMonCounter("sql_errors", TStringBuilder() << SqlIntoUserModeStr << "UnsupportedFor" << serviceName);
+ Ctx_.Error(pos) << SqlIntoUserModeStr_ << " is unsupported for " << serviceName;
+ Ctx_.IncrementMonCounter("sql_errors", TStringBuilder() << SqlIntoUserModeStr_ << "UnsupportedFor" << serviceName);
return false;
}
}
@@ -4202,7 +4202,7 @@ class TSqlQuery: public TSqlTranslation {
public:
TSqlQuery(TContext& ctx, NSQLTranslation::ESqlMode mode, bool topLevel)
: TSqlTranslation(ctx, mode)
- , TopLevel(topLevel)
+ , TopLevel_(topLevel)
{
}
@@ -4247,7 +4247,7 @@ private:
}
}
- const bool TopLevel;
+ const bool TopLevel_;
};
void TSqlQuery::AddStatementToBlocks(TVector<TNodePtr>& blocks, TNodePtr node) {
@@ -4260,13 +4260,13 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
TString humanStatementName;
ParseStatementName(core, internalStatementName, humanStatementName);
const auto& altCase = core.Alt_case();
- if (Mode == NSQLTranslation::ESqlMode::LIMITED_VIEW && (altCase >= TRule_sql_stmt_core::kAltSqlStmtCore4 &&
+ if (Mode_ == NSQLTranslation::ESqlMode::LIMITED_VIEW && (altCase >= TRule_sql_stmt_core::kAltSqlStmtCore4 &&
altCase != TRule_sql_stmt_core::kAltSqlStmtCore13)) {
Error() << humanStatementName << " statement is not supported in limited views";
return false;
}
- if (Mode == NSQLTranslation::ESqlMode::SUBQUERY && (altCase >= TRule_sql_stmt_core::kAltSqlStmtCore4 &&
+ if (Mode_ == NSQLTranslation::ESqlMode::SUBQUERY && (altCase >= TRule_sql_stmt_core::kAltSqlStmtCore4 &&
altCase != TRule_sql_stmt_core::kAltSqlStmtCore13 && altCase != TRule_sql_stmt_core::kAltSqlStmtCore6 &&
altCase != TRule_sql_stmt_core::kAltSqlStmtCore17)) {
Error() << humanStatementName << " statement is not supported in subqueries";
@@ -4285,19 +4285,19 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
break;
}
case TRule_sql_stmt_core::kAltSqlStmtCore2: {
- Ctx.BodyPart();
- TSqlSelect select(Ctx, Mode);
+ Ctx_.BodyPart();
+ TSqlSelect select(Ctx_, Mode_);
TPosition pos;
auto source = select.Build(core.GetAlt_sql_stmt_core2().GetRule_select_stmt1(), pos);
if (!source) {
return false;
}
blocks.emplace_back(BuildSelectResult(pos, std::move(source),
- Mode != NSQLTranslation::ESqlMode::LIMITED_VIEW && Mode != NSQLTranslation::ESqlMode::SUBQUERY, Mode == NSQLTranslation::ESqlMode::SUBQUERY));
+ Mode_ != NSQLTranslation::ESqlMode::LIMITED_VIEW && Mode_ != NSQLTranslation::ESqlMode::SUBQUERY, Mode_ == NSQLTranslation::ESqlMode::SUBQUERY));
break;
}
case TRule_sql_stmt_core::kAltSqlStmtCore3: {
- Ctx.BodyPart();
+ Ctx_.BodyPart();
TVector<TString> names;
auto nodeExpr = NamedNode(core.GetAlt_sql_stmt_core3().GetRule_named_nodes_stmt1(), names);
if (!nodeExpr) {
@@ -4306,9 +4306,9 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
TVector<TNodePtr> nodes;
auto subquery = nodeExpr->GetSource();
if (subquery) {
- const auto alias = Ctx.MakeName("subquerynode");
- const auto ref = Ctx.MakeName("subquery");
- blocks.push_back(BuildSubquery(subquery, alias, Mode == NSQLTranslation::ESqlMode::SUBQUERY, names.size() == 1 ? -1 : names.size()));
+ const auto alias = Ctx_.MakeName("subquerynode");
+ const auto ref = Ctx_.MakeName("subquery");
+ blocks.push_back(BuildSubquery(subquery, alias, Mode_ == NSQLTranslation::ESqlMode::SUBQUERY, names.size() == 1 ? -1 : names.size()));
blocks.back()->SetLabel(ref);
for (size_t i = 0; i < names.size(); ++i) {
@@ -4316,7 +4316,7 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
}
} else {
if (names.size() > 1) {
- const auto ref = Ctx.MakeName("tie");
+ const auto ref = Ctx_.MakeName("tie");
blocks.push_back(BuildTupleResult(nodeExpr, names.size()));
blocks.back()->SetLabel(ref);
for (size_t i = 0; i < names.size(); ++i) {
@@ -4333,9 +4333,9 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
break;
}
case TRule_sql_stmt_core::kAltSqlStmtCore4: {
- Ctx.BodyPart();
+ Ctx_.BodyPart();
const auto& rule = core.GetAlt_sql_stmt_core4().GetRule_create_table_stmt1();
- TTableRef tr(SimpleTableRefImpl(rule.GetRule_simple_table_ref3(), Mode, *this));
+ TTableRef tr(SimpleTableRefImpl(rule.GetRule_simple_table_ref3(), Mode_, *this));
TVector<TColumnSchema> columns;
TVector<TIdentifier> pkColumns;
@@ -4351,33 +4351,33 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
}
}
- AddStatementToBlocks(blocks, BuildCreateTable(Ctx.Pos(), tr, columns, pkColumns, partitionByColumns, orderByColumns));
+ AddStatementToBlocks(blocks, BuildCreateTable(Ctx_.Pos(), tr, columns, pkColumns, partitionByColumns, orderByColumns));
break;
}
case TRule_sql_stmt_core::kAltSqlStmtCore5: {
- Ctx.BodyPart();
+ Ctx_.BodyPart();
const auto& rule = core.GetAlt_sql_stmt_core5().GetRule_drop_table_stmt1();
if (rule.HasBlock3()) {
Context().Error(GetPos(rule.GetToken1())) << "IF EXISTS in " << humanStatementName
<< " is not supported.";
return false;
}
- TTableRef tr(SimpleTableRefImpl(rule.GetRule_simple_table_ref4(), Mode, *this));
- AddStatementToBlocks(blocks, BuildDropTable(Ctx.Pos(), tr));
+ TTableRef tr(SimpleTableRefImpl(rule.GetRule_simple_table_ref4(), Mode_, *this));
+ AddStatementToBlocks(blocks, BuildDropTable(Ctx_.Pos(), tr));
break;
}
case TRule_sql_stmt_core::kAltSqlStmtCore6: {
const auto& rule = core.GetAlt_sql_stmt_core6().GetRule_use_stmt1();
Token(rule.GetToken1());
- Ctx.CurrCluster = IdOrStringAsCluster(rule.GetRule_id_or_string2(), *this);
- if (!Ctx.CurrCluster) {
+ Ctx_.CurrCluster = IdOrStringAsCluster(rule.GetRule_id_or_string2(), *this);
+ if (!Ctx_.CurrCluster) {
return false;
}
break;
}
case TRule_sql_stmt_core::kAltSqlStmtCore7: {
- Ctx.BodyPart();
- TSqlIntoTable intoTable(Ctx, Mode);
+ Ctx_.BodyPart();
+ TSqlIntoTable intoTable(Ctx_, Mode_);
TNodePtr block(intoTable.Build(core.GetAlt_sql_stmt_core7().GetRule_into_table_stmt1()));
if (!block) {
return false;
@@ -4386,14 +4386,14 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
break;
}
case TRule_sql_stmt_core::kAltSqlStmtCore8: {
- Ctx.BodyPart();
+ Ctx_.BodyPart();
const auto& rule = core.GetAlt_sql_stmt_core8().GetRule_commit_stmt1();
Token(rule.GetToken1());
- blocks.emplace_back(BuildCommitClusters(Ctx.Pos()));
+ blocks.emplace_back(BuildCommitClusters(Ctx_.Pos()));
break;
}
case TRule_sql_stmt_core::kAltSqlStmtCore9: {
- Ctx.BodyPart();
+ Ctx_.BodyPart();
auto updateNode = Build(core.GetAlt_sql_stmt_core9().GetRule_update_stmt1());
if (!updateNode) {
return false;
@@ -4402,7 +4402,7 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
break;
}
case TRule_sql_stmt_core::kAltSqlStmtCore10: {
- Ctx.BodyPart();
+ Ctx_.BodyPart();
auto deleteNode = Build(core.GetAlt_sql_stmt_core10().GetRule_delete_stmt1());
if (!deleteNode) {
return false;
@@ -4411,10 +4411,10 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
break;
}
case TRule_sql_stmt_core::kAltSqlStmtCore11: {
- Ctx.BodyPart();
+ Ctx_.BodyPart();
const auto& rule = core.GetAlt_sql_stmt_core11().GetRule_rollback_stmt1();
Token(rule.GetToken1());
- blocks.emplace_back(BuildRollbackClusters(Ctx.Pos()));
+ blocks.emplace_back(BuildRollbackClusters(Ctx_.Pos()));
break;
}
case TRule_sql_stmt_core::kAltSqlStmtCore12:
@@ -4433,9 +4433,9 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
}
break;
case TRule_sql_stmt_core::kAltSqlStmtCore15: {
- Ctx.BodyPart();
+ Ctx_.BodyPart();
const auto& rule = core.GetAlt_sql_stmt_core15().GetRule_alter_table_stmt1();
- TTableRef tr(SimpleTableRefImpl(rule.GetRule_simple_table_ref3(), Mode, *this));
+ TTableRef tr(SimpleTableRefImpl(rule.GetRule_simple_table_ref3(), Mode_, *this));
const auto& ruleAction = rule.GetRule_alter_table_action4();
switch (ruleAction.Alt_case()) {
case TRule_alter_table_action::kAltAlterTableAction1: {
@@ -4459,7 +4459,7 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
break;
}
case TRule_sql_stmt_core::kAltSqlStmtCore16: {
- Ctx.BodyPart();
+ Ctx_.BodyPart();
auto node = DoStatement(core.GetAlt_sql_stmt_core16().GetRule_do_stmt1(), false);
if (!node) {
return false;
@@ -4469,7 +4469,7 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
break;
}
case TRule_sql_stmt_core::kAltSqlStmtCore17: {
- Ctx.BodyPart();
+ Ctx_.BodyPart();
if (!DefineActionOrSubqueryStatement(core.GetAlt_sql_stmt_core17().GetRule_define_action_or_subquery_stmt1())) {
return false;
}
@@ -4477,7 +4477,7 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
break;
}
case TRule_sql_stmt_core::kAltSqlStmtCore18: {
- Ctx.BodyPart();
+ Ctx_.BodyPart();
auto node = EvaluateIfStatement(core.GetAlt_sql_stmt_core18().GetRule_evaluate_if_stmt1());
if (!node) {
return false;
@@ -4487,7 +4487,7 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
break;
}
case TRule_sql_stmt_core::kAltSqlStmtCore19: {
- Ctx.BodyPart();
+ Ctx_.BodyPart();
auto node = EvaluateForStatement(core.GetAlt_sql_stmt_core19().GetRule_evaluate_for_stmt1());
if (!node) {
return false;
@@ -4497,19 +4497,19 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
break;
}
default:
- Ctx.IncrementMonCounter("sql_errors", "UnknownStatement" + internalStatementName);
+ Ctx_.IncrementMonCounter("sql_errors", "UnknownStatement" + internalStatementName);
AltNotImplemented("sql_stmt_core", core);
return false;
}
- Ctx.IncrementMonCounter("sql_features", internalStatementName);
- return !Ctx.HasPendingErrors;
+ Ctx_.IncrementMonCounter("sql_features", internalStatementName);
+ return !Ctx_.HasPendingErrors;
}
bool TSqlQuery::DeclareStatement(const TRule_declare_stmt& stmt) {
TNodePtr defaultValue;
if (stmt.HasBlock5()) {
- TSqlExpression sqlExpr(Ctx, Mode);
+ TSqlExpression sqlExpr(Ctx_, Mode_);
if (!(defaultValue = sqlExpr.LiteralExpr(stmt.GetBlock5().GetRule_literal_value2()))) {
return false;
}
@@ -4518,17 +4518,17 @@ bool TSqlQuery::DeclareStatement(const TRule_declare_stmt& stmt) {
Error() << "DEFAULT value not supported yet";
return false;
}
- if (!Ctx.IsParseHeading()) {
+ if (!Ctx_.IsParseHeading()) {
Error() << "DECLARE statement should be in beginning of query, but it's possible to use PRAGMA or USE before it";
return false;
}
const auto varName = NamedNodeImpl(stmt.GetRule_bind_parameter2(), *this);
- const auto varPos = Ctx.Pos();
+ const auto varPos = Ctx_.Pos();
const auto typeNode = FlexType(*this, stmt.GetRule_flex_type4());
if (!typeNode) {
return false;
}
- if (!Ctx.DeclareVariable(varName, typeNode)) {
+ if (!Ctx_.DeclareVariable(varName, typeNode)) {
return false;
}
PushNamedNode(varName, BuildAtom(varPos, varName));
@@ -4536,7 +4536,7 @@ bool TSqlQuery::DeclareStatement(const TRule_declare_stmt& stmt) {
}
bool TSqlQuery::ExportStatement(const TRule_export_stmt& stmt) {
- if (Mode != NSQLTranslation::ESqlMode::LIBRARY || !TopLevel) {
+ if (Mode_ != NSQLTranslation::ESqlMode::LIBRARY || !TopLevel_) {
Error() << "EXPORT statement should be used only in a library on the top level";
return false;
}
@@ -4545,7 +4545,7 @@ bool TSqlQuery::ExportStatement(const TRule_export_stmt& stmt) {
if (!BindList(stmt.GetRule_bind_parameter_list2(), bindNames)) {
return false;
}
- return Ctx.AddExports(bindNames);
+ return Ctx_.AddExports(bindNames);
}
bool TSqlQuery::AlterTableAddColumns(TVector<TNodePtr>& blocks, const TRule_alter_table_add_column& rule, const TTableRef& tr) {
@@ -4556,14 +4556,14 @@ bool TSqlQuery::AlterTableAddColumns(TVector<TNodePtr>& blocks, const TRule_alte
columns.push_back(ColumnSchemaImpl(block.GetRule_column_schema4(), *this));
}
- AddStatementToBlocks(blocks, BuildAlterTable(Ctx.Pos(), tr, columns, EAlterTableIntentnt::AddColumn));
+ AddStatementToBlocks(blocks, BuildAlterTable(Ctx_.Pos(), tr, columns, EAlterTableIntentnt::AddColumn));
return true;
}
bool TSqlQuery::AlterTableDropColumn(TVector<TNodePtr>& blocks, const TRule_alter_table_drop_column& node, const TTableRef& tr) {
TString name = Id(node.GetRule_id3(), *this);
- TColumnSchema column(Ctx.Pos(), name, "", false, false);
- AddStatementToBlocks(blocks, BuildAlterTable(Ctx.Pos(), tr, TVector<TColumnSchema>{column}, EAlterTableIntentnt::DropColumn));
+ TColumnSchema column(Ctx_.Pos(), name, "", false, false);
+ AddStatementToBlocks(blocks, BuildAlterTable(Ctx_.Pos(), tr, TVector<TColumnSchema>{column}, EAlterTableIntentnt::DropColumn));
return true;
}
@@ -4573,10 +4573,10 @@ TNodePtr TSqlQuery::PragmaStatement(const TRule_pragma_stmt& stmt, bool& success
const TString& lowerPrefix = to_lower(prefix);
const TString pragma(IdOrString(stmt.GetRule_id_or_string3(), *this));
TString normalizedPragma(pragma);
- TMaybe<TIssue> normalizeError = NormalizeName(Ctx.Pos(), normalizedPragma);
+ TMaybe<TIssue> normalizeError = NormalizeName(Ctx_.Pos(), normalizedPragma);
if (!normalizeError.Empty()) {
Error() << normalizeError->GetMessage();
- Ctx.IncrementMonCounter("sql_errors", "NormalizePragmaError");
+ Ctx_.IncrementMonCounter("sql_errors", "NormalizePragmaError");
return {};
}
@@ -4597,7 +4597,7 @@ TNodePtr TSqlQuery::PragmaStatement(const TRule_pragma_stmt& stmt, bool& success
const bool hasLexicalScope = withConfigure || normalizedPragma == "classicdivision";
for (auto pragmaValue : pragmaValues) {
if (pragmaValue->HasAlt_pragma_value3()) {
- values.push_back(TDeferredAtom(Ctx.Pos(), StringContent(Ctx, pragmaValue->GetAlt_pragma_value3().GetToken1().GetValue())));
+ values.push_back(TDeferredAtom(Ctx_.Pos(), StringContent(Ctx_, pragmaValue->GetAlt_pragma_value3().GetToken1().GetValue())));
}
else if (pragmaValue->HasAlt_pragma_value2()
&& pragmaValue->GetAlt_pragma_value2().GetRule_id1().HasAlt_id2()
@@ -4613,140 +4613,140 @@ TNodePtr TSqlQuery::PragmaStatement(const TRule_pragma_stmt& stmt, bool& success
}
TDeferredAtom atom;
- MakeTableFromExpression(Ctx, namedNode, atom);
+ MakeTableFromExpression(Ctx_, namedNode, atom);
values.push_back(atom);
} else {
Error() << "Expected string" << (withConfigure ? ", named parameter" : "") << " or 'default' keyword as pragma value for pragma: " << pragma;
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return {};
}
}
if (prefix.empty()) {
- if (!TopLevel && !hasLexicalScope) {
+ if (!TopLevel_ && !hasLexicalScope) {
Error() << "This pragma '" << pragma << "' is not allowed to be used in actions or subqueries";
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return{};
}
if (normalizedPragma == "refselect") {
- Ctx.PragmaRefSelect = true;
- Ctx.IncrementMonCounter("sql_pragma", "RefSelect");
+ Ctx_.PragmaRefSelect = true;
+ Ctx_.IncrementMonCounter("sql_pragma", "RefSelect");
} else if (normalizedPragma == "sampleselect") {
- Ctx.PragmaSampleSelect = true;
- Ctx.IncrementMonCounter("sql_pragma", "SampleSelect");
+ Ctx_.PragmaSampleSelect = true;
+ Ctx_.IncrementMonCounter("sql_pragma", "SampleSelect");
} else if (normalizedPragma == "allowdotinalias") {
- Ctx.PragmaAllowDotInAlias = true;
- Ctx.IncrementMonCounter("sql_pragma", "AllowDotInAlias");
+ Ctx_.PragmaAllowDotInAlias = true;
+ Ctx_.IncrementMonCounter("sql_pragma", "AllowDotInAlias");
} else if (normalizedPragma == "udf") {
if (values.size() != 1 || pragmaValueDefault) {
Error() << "Expected file alias as pragma value";
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return {};
}
- Ctx.IncrementMonCounter("sql_pragma", "udf");
+ Ctx_.IncrementMonCounter("sql_pragma", "udf");
success = true;
- return BuildPragma(Ctx.Pos(), TString(ConfigProviderName), "ImportUdfs", values, false);
+ return BuildPragma(Ctx_.Pos(), TString(ConfigProviderName), "ImportUdfs", values, false);
} else if (normalizedPragma == "file") {
if (values.size() != 2U || pragmaValueDefault) {
Error() << "Expected file alias and url as pragma values";
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return {};
}
- Ctx.IncrementMonCounter("sql_pragma", "file");
+ Ctx_.IncrementMonCounter("sql_pragma", "file");
success = true;
- return BuildPragma(Ctx.Pos(), TString(ConfigProviderName), "AddFileByUrl", values, false);
+ return BuildPragma(Ctx_.Pos(), TString(ConfigProviderName), "AddFileByUrl", values, false);
} else if (normalizedPragma == "folder") {
if (values.size() != 2U || pragmaValueDefault) {
Error() << "Expected folder alias as url as pragma values";
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return {};
}
- Ctx.IncrementMonCounter("sql_pragma", "folder");
+ Ctx_.IncrementMonCounter("sql_pragma", "folder");
success = true;
- return BuildPragma(Ctx.Pos(), TString(ConfigProviderName), "AddFolderByUrl", values, false);
+ return BuildPragma(Ctx_.Pos(), TString(ConfigProviderName), "AddFolderByUrl", values, false);
} else if (normalizedPragma == "library") {
if (values.size() != 1) {
Error() << "Expected non-empty file alias";
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return{};
}
- Ctx.Libraries.emplace(*values.front().GetLiteral());
- Ctx.IncrementMonCounter("sql_pragma", "library");
+ Ctx_.Libraries.emplace(*values.front().GetLiteral());
+ Ctx_.IncrementMonCounter("sql_pragma", "library");
} else if (normalizedPragma == "inferscheme" || normalizedPragma == "inferschema") {
- Ctx.Warning(Ctx.Pos(), TIssuesIds::YQL_DEPRECATED_INFERSCHEME) << "PRAGMA InferScheme is deprecated, please use PRAGMA yt.InferSchema instead.";
- Ctx.PragmaInferSchema = true;
- Ctx.IncrementMonCounter("sql_pragma", "InferSchema");
+ Ctx_.Warning(Ctx_.Pos(), TIssuesIds::YQL_DEPRECATED_INFERSCHEME) << "PRAGMA InferScheme is deprecated, please use PRAGMA yt.InferSchema instead.";
+ Ctx_.PragmaInferSchema = true;
+ Ctx_.IncrementMonCounter("sql_pragma", "InferSchema");
} else if (normalizedPragma == "directread") {
- Ctx.PragmaDirectRead = true;
- Ctx.IncrementMonCounter("sql_pragma", "DirectRead");
+ Ctx_.PragmaDirectRead = true;
+ Ctx_.IncrementMonCounter("sql_pragma", "DirectRead");
} else if (normalizedPragma == "equijoin") {
- Ctx.IncrementMonCounter("sql_pragma", "EquiJoin");
+ Ctx_.IncrementMonCounter("sql_pragma", "EquiJoin");
} else if (normalizedPragma == "autocommit") {
- Ctx.PragmaAutoCommit = true;
- Ctx.IncrementMonCounter("sql_pragma", "AutoCommit");
+ Ctx_.PragmaAutoCommit = true;
+ Ctx_.IncrementMonCounter("sql_pragma", "AutoCommit");
} else if (normalizedPragma == "tablepathprefix") {
if (values.size() == 1) {
- if (!Ctx.SetPathPrefix(*values[0].GetLiteral())) {
+ if (!Ctx_.SetPathPrefix(*values[0].GetLiteral())) {
return {};
}
} else if (values.size() == 2) {
- if (!Ctx.SetPathPrefix(*values[1].GetLiteral(), *values[0].GetLiteral())) {
+ if (!Ctx_.SetPathPrefix(*values[1].GetLiteral(), *values[0].GetLiteral())) {
return {};
}
} else {
Error() << "Expected path prefix or tuple of (Provider, PathPrefix) or"
<< " (Cluster, PathPrefix) as pragma value";
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return {};
}
- Ctx.IncrementMonCounter("sql_pragma", "PathPrefix");
+ Ctx_.IncrementMonCounter("sql_pragma", "PathPrefix");
} else if (normalizedPragma == "groupbylimit") {
- if (values.size() != 1 || !TryFromString(*values[0].GetLiteral(), Ctx.PragmaGroupByLimit)) {
+ if (values.size() != 1 || !TryFromString(*values[0].GetLiteral(), Ctx_.PragmaGroupByLimit)) {
Error() << "Expected single unsigned integer argument for: " << pragma;
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return {};
}
- Ctx.IncrementMonCounter("sql_pragma", "GroupByLimit");
+ Ctx_.IncrementMonCounter("sql_pragma", "GroupByLimit");
} else if (normalizedPragma == "groupbycubelimit") {
- if (values.size() != 1 || !TryFromString(*values[0].GetLiteral(), Ctx.PragmaGroupByCubeLimit)) {
+ if (values.size() != 1 || !TryFromString(*values[0].GetLiteral(), Ctx_.PragmaGroupByCubeLimit)) {
Error() << "Expected single unsigned integer argument for: " << pragma;
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return {};
}
- Ctx.IncrementMonCounter("sql_pragma", "GroupByCubeLimit");
+ Ctx_.IncrementMonCounter("sql_pragma", "GroupByCubeLimit");
}
else if (normalizedPragma == "simplecolumns") {
- Ctx.SimpleColumns = true;
- Ctx.IncrementMonCounter("sql_pragma", "SimpleColumns");
+ Ctx_.SimpleColumns = true;
+ Ctx_.IncrementMonCounter("sql_pragma", "SimpleColumns");
}
else if (normalizedPragma == "disablesimplecolumns") {
- Ctx.SimpleColumns = false;
- Ctx.IncrementMonCounter("sql_pragma", "DisableSimpleColumns");
+ Ctx_.SimpleColumns = false;
+ Ctx_.IncrementMonCounter("sql_pragma", "DisableSimpleColumns");
} else if (normalizedPragma == "resultrowslimit") {
- if (values.size() != 1 || !TryFromString(*values[0].GetLiteral(), Ctx.ResultRowsLimit)) {
+ if (values.size() != 1 || !TryFromString(*values[0].GetLiteral(), Ctx_.ResultRowsLimit)) {
Error() << "Expected single unsigned integer argument for: " << pragma;
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return {};
}
- Ctx.IncrementMonCounter("sql_pragma", "ResultRowsLimit");
+ Ctx_.IncrementMonCounter("sql_pragma", "ResultRowsLimit");
} else if (normalizedPragma == "resultsizelimit") {
- if (values.size() != 1 || !TryFromString(*values[0].GetLiteral(), Ctx.ResultSizeLimit)) {
+ if (values.size() != 1 || !TryFromString(*values[0].GetLiteral(), Ctx_.ResultSizeLimit)) {
Error() << "Expected single unsigned integer argument for: " << pragma;
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return {};
}
- Ctx.IncrementMonCounter("sql_pragma", "ResultSizeLimit");
+ Ctx_.IncrementMonCounter("sql_pragma", "ResultSizeLimit");
} else if (normalizedPragma == "warning") {
if (values.size() != 2U || values.front().Empty() || values.back().Empty()) {
Error() << "Expected arguments <action>, <issueId> for: " << pragma;
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return {};
}
@@ -4758,106 +4758,106 @@ TNodePtr TSqlQuery::PragmaStatement(const TRule_pragma_stmt& stmt, bool& success
auto parseResult = TWarningRule::ParseFrom(codePattern, action, rule, parseError);
switch (parseResult) {
case TWarningRule::EParseResult::PARSE_OK:
- Ctx.WarningPolicy.AddRule(rule);
- if (Ctx.Settings.WarnOnV0 && codePattern == "*") {
+ Ctx_.WarningPolicy.AddRule(rule);
+ if (Ctx_.Settings.WarnOnV0 && codePattern == "*") {
// Add exception for YQL_DEPRECATED_V0_SYNTAX
TWarningRule defaultForDeprecatedV0;
YQL_ENSURE(TWarningRule::ParseFrom(ToString(TIssueCode(TIssuesIds::YQL_DEPRECATED_V0_SYNTAX)),
"default", defaultForDeprecatedV0,
parseError) == TWarningRule::EParseResult::PARSE_OK);
- Ctx.WarningPolicy.AddRule(defaultForDeprecatedV0);
+ Ctx_.WarningPolicy.AddRule(defaultForDeprecatedV0);
}
break;
case TWarningRule::EParseResult::PARSE_PATTERN_FAIL:
case TWarningRule::EParseResult::PARSE_ACTION_FAIL:
- Ctx.Error() << parseError;
+ Ctx_.Error() << parseError;
return {};
default:
Y_ENSURE(false, "Unknown parse result");
}
- Ctx.IncrementMonCounter("sql_pragma", "warning");
+ Ctx_.IncrementMonCounter("sql_pragma", "warning");
} else if (normalizedPragma == "greetings") {
if (values.size() > 1) {
Error() << "Not expect few arguments for: " << pragma;
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return {};
} else if (values.empty()) {
- values.emplace_back(TDeferredAtom(Ctx.Pos(), "Hello, world! And best wishes from the YQL Team!"));
+ values.emplace_back(TDeferredAtom(Ctx_.Pos(), "Hello, world! And best wishes from the YQL Team!"));
}
- Ctx.Info(Ctx.Pos()) << *values[0].GetLiteral();
+ Ctx_.Info(Ctx_.Pos()) << *values[0].GetLiteral();
} else if (normalizedPragma == "warningmsg") {
if (values.size() != 1) {
Error() << "Expected single string argument for: " << pragma;
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return {};
}
- Ctx.Warning(Ctx.Pos(), TIssuesIds::YQL_PRAGMA_WARNING_MSG) << *values[0].GetLiteral();
+ Ctx_.Warning(Ctx_.Pos(), TIssuesIds::YQL_PRAGMA_WARNING_MSG) << *values[0].GetLiteral();
} else if (normalizedPragma == "errormsg") {
if (values.size() != 1) {
Error() << "Expected single string argument for: " << pragma;
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return {};
}
- Ctx.Error(Ctx.Pos()) << *values[0].GetLiteral();
+ Ctx_.Error(Ctx_.Pos()) << *values[0].GetLiteral();
} else if (normalizedPragma == "classicdivision") {
- if (values.size() != 1 || !TryFromString(*values[0].GetLiteral(), Ctx.PragmaClassicDivision)) {
+ if (values.size() != 1 || !TryFromString(*values[0].GetLiteral(), Ctx_.PragmaClassicDivision)) {
Error() << "Expected single boolean argument for: " << pragma;
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return {};
}
- Ctx.IncrementMonCounter("sql_pragma", "ClassicDivision");
+ Ctx_.IncrementMonCounter("sql_pragma", "ClassicDivision");
} else if (normalizedPragma == "disableunordered") {
- Ctx.Warning(Ctx.Pos(), TIssuesIds::YQL_DEPRECATED_PRAGMA)
+ Ctx_.Warning(Ctx_.Pos(), TIssuesIds::YQL_DEPRECATED_PRAGMA)
<< "Use of deprecated DisableUnordered pragma. It will be dropped soon";
} else if (normalizedPragma == "pullupflatmapoverjoin") {
- Ctx.PragmaPullUpFlatMapOverJoin = true;
- Ctx.IncrementMonCounter("sql_pragma", "PullUpFlatMapOverJoin");
+ Ctx_.PragmaPullUpFlatMapOverJoin = true;
+ Ctx_.IncrementMonCounter("sql_pragma", "PullUpFlatMapOverJoin");
} else if (normalizedPragma == "disablepullupflatmapoverjoin") {
- Ctx.PragmaPullUpFlatMapOverJoin = false;
- Ctx.IncrementMonCounter("sql_pragma", "DisablePullUpFlatMapOverJoin");
+ Ctx_.PragmaPullUpFlatMapOverJoin = false;
+ Ctx_.IncrementMonCounter("sql_pragma", "DisablePullUpFlatMapOverJoin");
} else if (normalizedPragma == "enablesystemcolumns") {
- if (values.size() != 1 || !TryFromString(*values[0].GetLiteral(), Ctx.EnableSystemColumns)) {
+ if (values.size() != 1 || !TryFromString(*values[0].GetLiteral(), Ctx_.EnableSystemColumns)) {
Error() << "Expected single boolean argument for: " << pragma;
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return {};
}
- Ctx.IncrementMonCounter("sql_pragma", "EnableSystemColumns");
+ Ctx_.IncrementMonCounter("sql_pragma", "EnableSystemColumns");
} else {
Error() << "Unknown pragma: " << pragma;
- Ctx.IncrementMonCounter("sql_errors", "UnknownPragma");
+ Ctx_.IncrementMonCounter("sql_errors", "UnknownPragma");
return {};
}
} else {
if (lowerPrefix == "yson") {
- if (!TopLevel) {
+ if (!TopLevel_) {
Error() << "This pragma '" << pragma << "' is not allowed to be used in actions";
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return {};
}
if (normalizedPragma == "autoconvert") {
- Ctx.PragmaYsonAutoConvert = true;
+ Ctx_.PragmaYsonAutoConvert = true;
success = true;
return {};
} else if (normalizedPragma == "strict") {
- Ctx.PragmaYsonStrict = true;
+ Ctx_.PragmaYsonStrict = true;
success = true;
return {};
} else if (normalizedPragma == "disablestrict") {
- Ctx.PragmaYsonStrict = false;
+ Ctx_.PragmaYsonStrict = false;
success = true;
return {};
} else {
Error() << "Unknown pragma: '" << pragma << "'";
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return {};
}
} else if (std::find(Providers.cbegin(), Providers.cend(), lowerPrefix) == Providers.cend()) {
- if (!Ctx.HasCluster(lowerPrefix)) {
+ if (!Ctx_.HasCluster(lowerPrefix)) {
Error() << "Unknown pragma prefix: " << prefix << ", please use cluster name or one of provider " <<
JoinRange(", ", Providers.cbegin(), Providers.cend());
- Ctx.IncrementMonCounter("sql_errors", "UnknownPragma");
+ Ctx_.IncrementMonCounter("sql_errors", "UnknownPragma");
return {};
}
}
@@ -4865,64 +4865,64 @@ TNodePtr TSqlQuery::PragmaStatement(const TRule_pragma_stmt& stmt, bool& success
if (normalizedPragma != "flags") {
if (values.size() > 1) {
Error() << "Expected at most one value in the pragma";
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return {};
}
} else {
if (pragmaValueDefault || values.size() < 1) {
Error() << "Expected at least one value in the pragma";
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return {};
}
}
success = true;
- Ctx.IncrementMonCounter("sql_pragma", pragma);
- return BuildPragma(Ctx.Pos(), lowerPrefix, normalizedPragma, values, pragmaValueDefault);
+ Ctx_.IncrementMonCounter("sql_pragma", pragma);
+ return BuildPragma(Ctx_.Pos(), lowerPrefix, normalizedPragma, values, pragmaValueDefault);
}
success = true;
return {};
}
TNodePtr TSqlQuery::Build(const TRule_delete_stmt& stmt) {
- TTableRef table = SimpleTableRefImpl(stmt.GetRule_simple_table_ref3(), Mode, *this);
- if (!table.Check(Ctx)) {
+ TTableRef table = SimpleTableRefImpl(stmt.GetRule_simple_table_ref3(), Mode_, *this);
+ if (!table.Check(Ctx_)) {
return nullptr;
}
- auto serviceName = to_lower(table.ServiceName(Ctx));
+ auto serviceName = to_lower(table.ServiceName(Ctx_));
const bool isKikimr = serviceName == KikimrProviderName;
if (!isKikimr) {
- Ctx.Error(GetPos(stmt.GetToken1())) << "DELETE is unsupported for " << serviceName;
+ Ctx_.Error(GetPos(stmt.GetToken1())) << "DELETE is unsupported for " << serviceName;
return nullptr;
}
- TSourcePtr source = BuildTableSource(Ctx.Pos(), table, false);
+ TSourcePtr source = BuildTableSource(Ctx_.Pos(), table, false);
if (stmt.HasBlock4()) {
switch (stmt.GetBlock4().Alt_case()) {
case TRule_delete_stmt_TBlock4::kAlt1: {
const auto& alt = stmt.GetBlock4().GetAlt1();
- TSqlExpression sqlExpr(Ctx, Mode);
+ TSqlExpression sqlExpr(Ctx_, Mode_);
auto whereExpr = sqlExpr.Build(alt.GetRule_expr2());
if (!whereExpr) {
return nullptr;
}
- source->AddFilter(Ctx, whereExpr);
+ source->AddFilter(Ctx_, whereExpr);
break;
}
case TRule_delete_stmt_TBlock4::kAlt2: {
const auto& alt = stmt.GetBlock4().GetAlt2();
- auto values = TSqlIntoValues(Ctx, Mode).Build(alt.GetRule_into_values_source2(), "DELETE ON");
+ auto values = TSqlIntoValues(Ctx_, Mode_).Build(alt.GetRule_into_values_source2(), "DELETE ON");
if (!values) {
return nullptr;
}
- return BuildWriteColumns(Ctx.Pos(), table, EWriteColumnMode::DeleteOn, std::move(values));
+ return BuildWriteColumns(Ctx_.Pos(), table, EWriteColumnMode::DeleteOn, std::move(values));
}
default:
@@ -4930,20 +4930,20 @@ TNodePtr TSqlQuery::Build(const TRule_delete_stmt& stmt) {
}
}
- return BuildDelete(Ctx.Pos(), table, std::move(source));
+ return BuildDelete(Ctx_.Pos(), table, std::move(source));
}
TNodePtr TSqlQuery::Build(const TRule_update_stmt& stmt) {
- TTableRef table = SimpleTableRefImpl(stmt.GetRule_simple_table_ref2(), Mode, *this);
- if (!table.Check(Ctx)) {
+ TTableRef table = SimpleTableRefImpl(stmt.GetRule_simple_table_ref2(), Mode_, *this);
+ if (!table.Check(Ctx_)) {
return nullptr;
}
- auto serviceName = to_lower(table.ServiceName(Ctx));
+ auto serviceName = to_lower(table.ServiceName(Ctx_));
const bool isKikimr = serviceName == KikimrProviderName;
if (!isKikimr) {
- Ctx.Error(GetPos(stmt.GetToken1())) << "UPDATE is unsupported for " << serviceName;
+ Ctx_.Error(GetPos(stmt.GetToken1())) << "UPDATE is unsupported for " << serviceName;
return nullptr;
}
@@ -4951,29 +4951,29 @@ TNodePtr TSqlQuery::Build(const TRule_update_stmt& stmt) {
case TRule_update_stmt_TBlock3::kAlt1: {
const auto& alt = stmt.GetBlock3().GetAlt1();
TSourcePtr values = Build(alt.GetRule_set_clause_choice2());
- auto source = BuildTableSource(Ctx.Pos(), table, false);
+ auto source = BuildTableSource(Ctx_.Pos(), table, false);
if (alt.HasBlock3()) {
- TSqlExpression sqlExpr(Ctx, Mode);
+ TSqlExpression sqlExpr(Ctx_, Mode_);
auto whereExpr = sqlExpr.Build(alt.GetBlock3().GetRule_expr2());
if (!whereExpr) {
return nullptr;
}
- source->AddFilter(Ctx, whereExpr);
+ source->AddFilter(Ctx_, whereExpr);
}
- return BuildUpdateColumns(Ctx.Pos(), table, std::move(values), std::move(source));
+ return BuildUpdateColumns(Ctx_.Pos(), table, std::move(values), std::move(source));
}
case TRule_update_stmt_TBlock3::kAlt2: {
const auto& alt = stmt.GetBlock3().GetAlt2();
- auto values = TSqlIntoValues(Ctx, Mode).Build(alt.GetRule_into_values_source2(), "UPDATE ON");
+ auto values = TSqlIntoValues(Ctx_, Mode_).Build(alt.GetRule_into_values_source2(), "UPDATE ON");
if (!values) {
return nullptr;
}
- return BuildWriteColumns(Ctx.Pos(), table, EWriteColumnMode::UpdateOn, std::move(values));
+ return BuildWriteColumns(Ctx_.Pos(), table, EWriteColumnMode::UpdateOn, std::move(values));
}
default:
@@ -4995,7 +4995,7 @@ TSourcePtr TSqlQuery::Build(const TRule_set_clause_choice& stmt) {
bool TSqlQuery::FillSetClause(const TRule_set_clause& node, TVector<TString>& targetList, TVector<TNodePtr>& values) {
targetList.push_back(ColumnNameAsSingleStr(*this, node.GetRule_set_target1().GetRule_column_name1()));
- TSqlExpression sqlExpr(Ctx, Mode);
+ TSqlExpression sqlExpr(Ctx_, Mode_);
if (!Expr(sqlExpr, values, node.GetRule_expr3())) {
return false;
}
@@ -5005,7 +5005,7 @@ bool TSqlQuery::FillSetClause(const TRule_set_clause& node, TVector<TString>& ta
TSourcePtr TSqlQuery::Build(const TRule_set_clause_list& stmt) {
TVector<TString> targetList;
TVector<TNodePtr> values;
- const TPosition pos(Ctx.Pos());
+ const TPosition pos(Ctx_.Pos());
if (!FillSetClause(stmt.GetRule_set_clause1(), targetList, values)) {
return nullptr;
}
@@ -5022,18 +5022,18 @@ TSourcePtr TSqlQuery::Build(const TRule_multiple_column_assignment& stmt) {
TVector<TString> targetList;
FillTargetList(*this, stmt.GetRule_set_target_list1(), targetList);
auto simpleValuesNode = stmt.GetRule_simple_values_source4();
- const TPosition pos(Ctx.Pos());
+ const TPosition pos(Ctx_.Pos());
switch (simpleValuesNode.Alt_case()) {
case TRule_simple_values_source::kAltSimpleValuesSource1: {
TVector<TNodePtr> values;
- TSqlExpression sqlExpr(Ctx, Mode);
+ TSqlExpression sqlExpr(Ctx_, Mode_);
if (!ExprList(sqlExpr, values, simpleValuesNode.GetAlt_simple_values_source1().GetRule_expr_list1())) {
return nullptr;
}
return BuildUpdateValues(pos, targetList, values);
}
case TRule_simple_values_source::kAltSimpleValuesSource2: {
- TSqlSelect select(Ctx, Mode);
+ TSqlSelect select(Ctx_, Mode_);
TPosition selectPos;
auto source = select.Build(simpleValuesNode.GetAlt_simple_values_source2().GetRule_select_stmt1(), selectPos);
if (!source) {
@@ -5042,7 +5042,7 @@ TSourcePtr TSqlQuery::Build(const TRule_multiple_column_assignment& stmt) {
return BuildWriteValues(pos, "UPDATE", targetList, std::move(source));
}
default:
- Ctx.IncrementMonCounter("sql_errors", "UnknownSimpleValuesSourceAlt");
+ Ctx_.IncrementMonCounter("sql_errors", "UnknownSimpleValuesSourceAlt");
AltNotImplemented("simple_values_source", simpleValuesNode);
return nullptr;
}
@@ -5052,17 +5052,17 @@ TNodePtr TSqlQuery::Build(const TSQLParserAST& ast) {
const auto& statements = ast.GetRule_sql_stmt_list();
TVector<TNodePtr> blocks;
- if (Ctx.Settings.WarnOnV0) {
- if (Ctx.Settings.V0WarnAsError->Allow()) {
+ if (Ctx_.Settings.WarnOnV0) {
+ if (Ctx_.Settings.V0WarnAsError->Allow()) {
Error() << "SQL v0 syntax is deprecated and no longer supported. Please switch to v1: https://clubs.at.yandex-team.ru/yql/2910";
return nullptr;
}
- Ctx.Warning(Ctx.Pos(), TIssuesIds::YQL_DEPRECATED_V0_SYNTAX) <<
+ Ctx_.Warning(Ctx_.Pos(), TIssuesIds::YQL_DEPRECATED_V0_SYNTAX) <<
"SQL v0 syntax is deprecated and will stop working soon. Consider switching to v1: https://clubs.at.yandex-team.ru/yql/2910";
}
- if (Ctx.Settings.V0Behavior == NSQLTranslation::EV0Behavior::Report) {
+ if (Ctx_.Settings.V0Behavior == NSQLTranslation::EV0Behavior::Report) {
AddStatementToBlocks(blocks, BuildPragma(TPosition(), "config", "flags", {
TDeferredAtom(TPosition(), "SQL"),
TDeferredAtom(TPosition(), "0")
@@ -5084,31 +5084,31 @@ TNodePtr TSqlQuery::Build(const TSQLParserAST& ast) {
}
}
- if ((Mode == NSQLTranslation::ESqlMode::SUBQUERY || Mode == NSQLTranslation::ESqlMode::LIMITED_VIEW) && topLevelSelects != 1) {
+ if ((Mode_ == NSQLTranslation::ESqlMode::SUBQUERY || Mode_ == NSQLTranslation::ESqlMode::LIMITED_VIEW) && topLevelSelects != 1) {
Error() << "Strictly one select/process/reduce statement must be used in the "
- << (Mode == NSQLTranslation::ESqlMode::LIMITED_VIEW ? "view" : "subquery");
+ << (Mode_ == NSQLTranslation::ESqlMode::LIMITED_VIEW ? "view" : "subquery");
return nullptr;
}
- if (!Ctx.PragmaAutoCommit && Ctx.Settings.EndOfQueryCommit && IsQueryMode(Mode)) {
- AddStatementToBlocks(blocks, BuildCommitClusters(Ctx.Pos()));
+ if (!Ctx_.PragmaAutoCommit && Ctx_.Settings.EndOfQueryCommit && IsQueryMode(Mode_)) {
+ AddStatementToBlocks(blocks, BuildCommitClusters(Ctx_.Pos()));
}
- return BuildQuery(Ctx.Pos(), blocks, true);
+ return BuildQuery(Ctx_.Pos(), blocks, true);
}
TNodePtr TSqlQuery::FlexType(TTranslation& ctx, const TRule_flex_type& node) {
const auto& stringType = NSQLTranslationV0::FlexType(node, ctx);
- auto res = TryBuildDataType(Ctx.Pos(), TypeByAlias(stringType.first, !stringType.second));
+ auto res = TryBuildDataType(Ctx_.Pos(), TypeByAlias(stringType.first, !stringType.second));
if (!res) {
- res = BuildBuiltinFunc(Ctx, Ctx.Pos(), "ParseType", {BuildLiteralRawString(Ctx.Pos(), stringType.first)});
+ res = BuildBuiltinFunc(Ctx_, Ctx_.Pos(), "ParseType", {BuildLiteralRawString(Ctx_.Pos(), stringType.first)});
}
return res;
}
bool TSqlTranslation::DefineActionOrSubqueryStatement(const TRule_define_action_or_subquery_stmt& stmt) {
- auto kind = Ctx.Token(stmt.GetToken2());
+ auto kind = Ctx_.Token(stmt.GetToken2());
const bool isSubquery = to_lower(kind) == "subquery";
- if (!isSubquery && Mode == NSQLTranslation::ESqlMode::SUBQUERY) {
+ if (!isSubquery && Mode_ == NSQLTranslation::ESqlMode::SUBQUERY) {
Error() << "Definition of actions is not allowed in the subquery";
return false;
}
@@ -5119,19 +5119,19 @@ bool TSqlTranslation::DefineActionOrSubqueryStatement(const TRule_define_action_
return false;
}
- auto saveNamedNodes = Ctx.NamedNodes;
+ auto saveNamedNodes = Ctx_.NamedNodes;
for (const auto& arg : argNames) {
- PushNamedNode(arg, BuildAtom(Ctx.Pos(), arg, NYql::TNodeFlags::Default));
+ PushNamedNode(arg, BuildAtom(Ctx_.Pos(), arg, NYql::TNodeFlags::Default));
}
- auto saveCurrCluster = Ctx.CurrCluster;
- auto savePragmaClassicDivision = Ctx.PragmaClassicDivision;
- auto saveMode = Ctx.Settings.Mode;
+ auto saveCurrCluster = Ctx_.CurrCluster;
+ auto savePragmaClassicDivision = Ctx_.PragmaClassicDivision;
+ auto saveMode = Ctx_.Settings.Mode;
if (isSubquery) {
- Ctx.Settings.Mode = NSQLTranslation::ESqlMode::SUBQUERY;
+ Ctx_.Settings.Mode = NSQLTranslation::ESqlMode::SUBQUERY;
}
- TSqlQuery query(Ctx, Ctx.Settings.Mode, false);
+ TSqlQuery query(Ctx_, Ctx_.Settings.Mode, false);
TVector<TNodePtr> blocks;
const auto& body = stmt.GetRule_define_action_or_subquery_body8();
bool hasError = false;
@@ -5155,33 +5155,33 @@ bool TSqlTranslation::DefineActionOrSubqueryStatement(const TRule_define_action_
return false;
}
- auto ret = !hasError ? BuildQuery(Ctx.Pos(), blocks, false) : nullptr;
- Ctx.CurrCluster = saveCurrCluster;
- Ctx.PragmaClassicDivision = savePragmaClassicDivision;
- Ctx.NamedNodes = saveNamedNodes;
- Ctx.Settings.Mode = saveMode;
+ auto ret = !hasError ? BuildQuery(Ctx_.Pos(), blocks, false) : nullptr;
+ Ctx_.CurrCluster = saveCurrCluster;
+ Ctx_.PragmaClassicDivision = savePragmaClassicDivision;
+ Ctx_.NamedNodes = saveNamedNodes;
+ Ctx_.Settings.Mode = saveMode;
if (!ret) {
return false;
}
- TNodePtr blockNode = new TAstListNodeImpl(Ctx.Pos());
+ TNodePtr blockNode = new TAstListNodeImpl(Ctx_.Pos());
blockNode->Add("block");
blockNode->Add(blockNode->Q(ret));
- TNodePtr params = new TAstListNodeImpl(Ctx.Pos());
+ TNodePtr params = new TAstListNodeImpl(Ctx_.Pos());
params->Add("world");
for (const auto& arg : argNames) {
params->Add(arg);
}
- auto lambda = BuildLambda(Ctx.Pos(), params, blockNode);
+ auto lambda = BuildLambda(Ctx_.Pos(), params, blockNode);
PushNamedNode(actionName, lambda);
return true;
}
TNodePtr TSqlTranslation::EvaluateIfStatement(const TRule_evaluate_if_stmt& stmt) {
- TSqlExpression expr(Ctx, Mode);
+ TSqlExpression expr(Ctx_, Mode_);
auto exprNode = expr.Build(stmt.GetRule_expr3());
if (!exprNode) {
return {};
@@ -5200,11 +5200,11 @@ TNodePtr TSqlTranslation::EvaluateIfStatement(const TRule_evaluate_if_stmt& stmt
}
}
- return BuildEvaluateIfNode(Ctx.Pos(), exprNode, thenNode, elseNode);
+ return BuildEvaluateIfNode(Ctx_.Pos(), exprNode, thenNode, elseNode);
}
TNodePtr TSqlTranslation::EvaluateForStatement(const TRule_evaluate_for_stmt& stmt) {
- TSqlExpression expr(Ctx, Mode);
+ TSqlExpression expr(Ctx_, Mode_);
auto itemArgName = NamedNodeImpl(stmt.GetRule_bind_parameter3(), *this);
auto exprNode = expr.Build(stmt.GetRule_expr5());
@@ -5212,7 +5212,7 @@ TNodePtr TSqlTranslation::EvaluateForStatement(const TRule_evaluate_for_stmt& st
return{};
}
- PushNamedNode(itemArgName, new TAstAtomNodeImpl(Ctx.Pos(), itemArgName, TNodeFlags::Default));
+ PushNamedNode(itemArgName, new TAstAtomNodeImpl(Ctx_.Pos(), itemArgName, TNodeFlags::Default));
auto bodyNode = DoStatement(stmt.GetRule_do_stmt6(), true, { itemArgName });
PopNamedNode(itemArgName);
if (!bodyNode) {
@@ -5227,7 +5227,7 @@ TNodePtr TSqlTranslation::EvaluateForStatement(const TRule_evaluate_for_stmt& st
}
}
- return BuildEvaluateForNode(Ctx.Pos(), exprNode, bodyNode, elseNode);
+ return BuildEvaluateForNode(Ctx_.Pos(), exprNode, bodyNode, elseNode);
}
google::protobuf::Message* SqlAST(const TString& query, const TString& queryName, TIssues& err, size_t maxErrors, google::protobuf::Arena* arena) {
diff --git a/yql/essentials/sql/v1/aggregation.cpp b/yql/essentials/sql/v1/aggregation.cpp
index a1e98d2352c..130ec26d5f7 100644
--- a/yql/essentials/sql/v1/aggregation.cpp
+++ b/yql/essentials/sql/v1/aggregation.cpp
@@ -48,62 +48,62 @@ class TAggregationFactory : public IAggregation {
public:
TAggregationFactory(TPosition pos, const TString& name, const TString& func, EAggregateMode aggMode,
bool multi = false, bool validateArgs = true)
- : IAggregation(pos, name, func, aggMode), Factory(!func.empty() ?
- BuildBind(Pos, aggMode == EAggregateMode::OverWindow || aggMode == EAggregateMode::OverWindowDistinct ? "window_module" : "aggregate_module", func) : nullptr),
- Multi(multi), ValidateArgs(validateArgs), DynamicFactory(!Factory)
+ : IAggregation(pos, name, func, aggMode), Factory_(!func.empty() ?
+ BuildBind(Pos_, aggMode == EAggregateMode::OverWindow || aggMode == EAggregateMode::OverWindowDistinct ? "window_module" : "aggregate_module", func) : nullptr),
+ Multi_(multi), ValidateArgs_(validateArgs), DynamicFactory_(!Factory_)
{
if (aggMode != EAggregateMode::OverWindow && aggMode != EAggregateMode::OverWindowDistinct && !func.empty() && AggApplyFuncs.contains(func)) {
- AggApplyName = func.substr(0, func.size() - 15);
+ AggApplyName_ = func.substr(0, func.size() - 15);
}
- if (!Factory) {
- FakeSource = BuildFakeSource(pos);
+ if (!Factory_) {
+ FakeSource_ = BuildFakeSource(pos);
}
}
protected:
bool InitAggr(TContext& ctx, bool isFactory, ISource* src, TAstListNode& node, const TVector<TNodePtr>& exprs) override {
if (!ShouldEmitAggApply(ctx)) {
- AggApplyName = "";
+ AggApplyName_ = "";
}
- if (ValidateArgs || isFactory) {
- ui32 expectedArgs = ValidateArgs && !Factory ? 2 : (isFactory ? 0 : 1);
- if (!Factory && ValidateArgs) {
+ if (ValidateArgs_ || isFactory) {
+ ui32 expectedArgs = ValidateArgs_ && !Factory_ ? 2 : (isFactory ? 0 : 1);
+ if (!Factory_ && ValidateArgs_) {
YQL_ENSURE(!isFactory);
}
if (expectedArgs != exprs.size()) {
- ctx.Error(Pos) << "Aggregation function " << (isFactory ? "factory " : "") << Name
+ ctx.Error(Pos_) << "Aggregation function " << (isFactory ? "factory " : "") << Name_
<< " requires exactly " << expectedArgs << " argument(s), given: " << exprs.size();
return false;
}
}
- if (!ValidateArgs) {
- Exprs = exprs;
+ if (!ValidateArgs_) {
+ Exprs_ = exprs;
}
- if (BlockWindowAggregationWithoutFrameSpec(Pos, GetName(), src, ctx)) {
+ if (BlockWindowAggregationWithoutFrameSpec(Pos_, GetName(), src, ctx)) {
return false;
}
- if (ValidateArgs) {
- if (!Factory) {
- Factory = exprs[1];
+ if (ValidateArgs_) {
+ if (!Factory_) {
+ Factory_ = exprs[1];
}
}
if (!isFactory) {
- if (ValidateArgs) {
- Expr = exprs.front();
+ if (ValidateArgs_) {
+ Expr_ = exprs.front();
}
- Name = src->MakeLocalName(Name);
+ Name_ = src->MakeLocalName(Name_);
}
- if (Expr && Expr->IsAsterisk() && AggApplyName == "count") {
- AggApplyName = "count_all";
+ if (Expr_ && Expr_->IsAsterisk() && AggApplyName_ == "count") {
+ AggApplyName_ = "count_all";
}
if (!Init(ctx, src)) {
@@ -111,9 +111,9 @@ protected:
}
if (!isFactory) {
- node.Add("Member", "row", Q(Name));
+ node.Add("Member", "row", Q(Name_));
if (IsOverWindow() || IsOverWindowDistinct()) {
- src->AddTmpWindowColumn(Name);
+ src->AddTmpWindowColumn(Name_);
}
}
@@ -121,12 +121,12 @@ protected:
}
TNodePtr AggregationTraitsFactory() const override {
- return Factory;
+ return Factory_;
}
TNodePtr GetExtractor(bool many, TContext& ctx) const override {
Y_UNUSED(ctx);
- return BuildLambda(Pos, Y("row"), Y("PersistableRepr", many ? Y("Unwrap", Expr) : Expr));
+ return BuildLambda(Pos_, Y("row"), Y("PersistableRepr", many ? Y("Unwrap", Expr_) : Expr_));
}
TNodePtr GetApply(const TNodePtr& type, bool many, bool allowAggApply, TContext& ctx) const override {
@@ -135,29 +135,29 @@ protected:
return nullptr;
}
- if (!Multi) {
- if (!DynamicFactory && allowAggApply && !AggApplyName.empty()) {
- return Y("AggApply", Q(AggApplyName), Y("ListItemType", type), extractor);
+ if (!Multi_) {
+ if (!DynamicFactory_ && allowAggApply && !AggApplyName_.empty()) {
+ return Y("AggApply", Q(AggApplyName_), Y("ListItemType", type), extractor);
}
- return Y("Apply", Factory, (DynamicFactory ? Y("ListItemType", type) : type),
+ return Y("Apply", Factory_, (DynamicFactory_ ? Y("ListItemType", type) : type),
extractor);
}
return Y("MultiAggregate",
Y("ListItemType", type),
extractor,
- Factory);
+ Factory_);
}
bool DoInit(TContext& ctx, ISource* src) override {
- if (!ValidateArgs) {
- for (auto x : Exprs) {
+ if (!ValidateArgs_) {
+ for (auto x : Exprs_) {
if (!x->Init(ctx, src)) {
return false;
}
if (x->IsAggregated() && !x->IsAggregationKey() && !IsOverWindow() && !IsOverWindowDistinct()) {
- ctx.Error(Pos) << "Aggregation of aggregated values is forbidden";
+ ctx.Error(Pos_) << "Aggregation of aggregated values is forbidden";
return false;
}
}
@@ -165,52 +165,52 @@ protected:
return true;
}
- if (!Expr) {
+ if (!Expr_) {
return true;
}
- if (!Expr->Init(ctx, src)) {
+ if (!Expr_->Init(ctx, src)) {
return false;
}
- if (Expr->IsAggregated() && !Expr->IsAggregationKey() && !IsOverWindow() && !IsOverWindowDistinct()) {
- ctx.Error(Pos) << "Aggregation of aggregated values is forbidden";
+ if (Expr_->IsAggregated() && !Expr_->IsAggregationKey() && !IsOverWindow() && !IsOverWindowDistinct()) {
+ ctx.Error(Pos_) << "Aggregation of aggregated values is forbidden";
return false;
}
- if (AggMode == EAggregateMode::Distinct || AggMode == EAggregateMode::OverWindowDistinct) {
- const auto column = Expr->GetColumnName();
+ if (AggMode_ == EAggregateMode::Distinct || AggMode_ == EAggregateMode::OverWindowDistinct) {
+ const auto column = Expr_->GetColumnName();
if (!column) {
// TODO: improve TBasicAggrFunc::CollectPreaggregateExprs()
- ctx.Error(Pos) << "Aggregation of aggregated values is forbidden";
+ ctx.Error(Pos_) << "Aggregation of aggregated values is forbidden";
return false;
}
- DistinctKey = *column;
+ DistinctKey_ = *column;
YQL_ENSURE(src);
- if (!IsGeneratedKeyColumn && src->GetJoin()) {
- const auto sourcePtr = Expr->GetSourceName();
+ if (!IsGeneratedKeyColumn_ && src->GetJoin()) {
+ const auto sourcePtr = Expr_->GetSourceName();
if (!sourcePtr || !*sourcePtr) {
- if (!src->IsGroupByColumn(DistinctKey)) {
- ctx.Error(Expr->GetPos()) << ErrorDistinctWithoutCorrelation(DistinctKey);
+ if (!src->IsGroupByColumn(DistinctKey_)) {
+ ctx.Error(Expr_->GetPos()) << ErrorDistinctWithoutCorrelation(DistinctKey_);
return false;
}
} else {
- DistinctKey = DotJoin(*sourcePtr, DistinctKey);
+ DistinctKey_ = DotJoin(*sourcePtr, DistinctKey_);
}
}
- if (!ctx.DistinctOverKeys && src->IsGroupByColumn(DistinctKey)) {
- ctx.Error(Expr->GetPos()) << ErrorDistinctByGroupKey(DistinctKey);
+ if (!ctx.DistinctOverKeys && src->IsGroupByColumn(DistinctKey_)) {
+ ctx.Error(Expr_->GetPos()) << ErrorDistinctByGroupKey(DistinctKey_);
return false;
}
- Expr = AstNode("row");
+ Expr_ = AstNode("row");
}
- if (FakeSource) {
- if (!Factory->Init(ctx, FakeSource.Get())) {
+ if (FakeSource_) {
+ if (!Factory_->Init(ctx, FakeSource_.Get())) {
return false;
}
- if (AggMode == EAggregateMode::OverWindow) {
- Factory = BuildLambda(Pos, Y("type", "extractor"), Y("block", Q(Y(
- Y("let", "x", Y("Apply", Factory, "type", "extractor")),
+ if (AggMode_ == EAggregateMode::OverWindow) {
+ Factory_ = BuildLambda(Pos_, Y("type", "extractor"), Y("block", Q(Y(
+ Y("let", "x", Y("Apply", Factory_, "type", "extractor")),
Y("return", Y("ToWindowTraits", "x"))
))));
}
@@ -219,16 +219,16 @@ protected:
return true;
}
- TNodePtr Factory;
- TNodePtr Expr;
- bool Multi;
- bool ValidateArgs;
- TString AggApplyName;
- TVector<TNodePtr> Exprs;
+ TNodePtr Factory_;
+ TNodePtr Expr_;
+ bool Multi_;
+ bool ValidateArgs_;
+ TString AggApplyName_;
+ TVector<TNodePtr> Exprs_;
private:
- TSourcePtr FakeSource;
- bool DynamicFactory;
+ TSourcePtr FakeSource_;
+ bool DynamicFactory_;
};
class TAggregationFactoryImpl final : public TAggregationFactory {
@@ -239,7 +239,7 @@ public:
private:
TNodePtr DoClone() const final {
- return new TAggregationFactoryImpl(Pos, Name, Func, AggMode, Multi);
+ return new TAggregationFactoryImpl(Pos_, Name_, Func_, AggMode_, Multi_);
}
};
@@ -251,39 +251,39 @@ class TKeyPayloadAggregationFactory final : public TAggregationFactory {
public:
TKeyPayloadAggregationFactory(TPosition pos, const TString& name, const TString& factory, EAggregateMode aggMode)
: TAggregationFactory(pos, name, factory, aggMode)
- , FakeSource(BuildFakeSource(pos))
+ , FakeSource_(BuildFakeSource(pos))
{}
private:
bool InitAggr(TContext& ctx, bool isFactory, ISource* src, TAstListNode& node, const TVector<TNodePtr>& exprs) final {
ui32 adjustArgsCount = isFactory ? 0 : 2;
if (exprs.size() < adjustArgsCount || exprs.size() > 1 + adjustArgsCount) {
- ctx.Error(Pos) << "Aggregation function " << (isFactory ? "factory " : "") << Name << " requires "
+ ctx.Error(Pos_) << "Aggregation function " << (isFactory ? "factory " : "") << Name_ << " requires "
<< adjustArgsCount << " or " << (1 + adjustArgsCount) << " arguments, given: " << exprs.size();
return false;
}
- if (BlockWindowAggregationWithoutFrameSpec(Pos, GetName(), src, ctx)) {
+ if (BlockWindowAggregationWithoutFrameSpec(Pos_, GetName(), src, ctx)) {
return false;
}
if (!isFactory) {
- Payload = exprs.front();
- Key = exprs[1];
+ Payload_ = exprs.front();
+ Key_ = exprs[1];
}
if (1 + adjustArgsCount == exprs.size()) {
- Limit = exprs.back();
- Func += "2";
+ Limit_ = exprs.back();
+ Func_ += "2";
} else {
- Func += "1";
+ Func_ += "1";
}
- if (Factory) {
- Factory = BuildBind(Pos, AggMode == EAggregateMode::OverWindow ? "window_module" : "aggregate_module", Func);
+ if (Factory_) {
+ Factory_ = BuildBind(Pos_, AggMode_ == EAggregateMode::OverWindow ? "window_module" : "aggregate_module", Func_);
}
if (!isFactory) {
- Name = src->MakeLocalName(Name);
+ Name_ = src->MakeLocalName(Name_);
}
if (!Init(ctx, src)) {
@@ -291,9 +291,9 @@ private:
}
if (!isFactory) {
- node.Add("Member", "row", Q(Name));
+ node.Add("Member", "row", Q(Name_));
if (IsOverWindow() || IsOverWindowDistinct()) {
- src->AddTmpWindowColumn(Name);
+ src->AddTmpWindowColumn(Name_);
}
}
@@ -301,27 +301,27 @@ private:
}
TNodePtr DoClone() const final {
- return new TKeyPayloadAggregationFactory(Pos, Name, Func, AggMode);
+ return new TKeyPayloadAggregationFactory(Pos_, Name_, Func_, AggMode_);
}
TNodePtr GetExtractor(bool many, TContext& ctx) const final {
Y_UNUSED(ctx);
- return BuildLambda(Pos, Y("row"), many ? Y("Unwrap", Payload) : Payload);
+ return BuildLambda(Pos_, Y("row"), many ? Y("Unwrap", Payload_) : Payload_);
}
TNodePtr GetApply(const TNodePtr& type, bool many, bool allowAggApply, TContext& ctx) const final {
Y_UNUSED(ctx);
Y_UNUSED(allowAggApply);
- auto apply = Y("Apply", Factory, type,
- BuildLambda(Pos, Y("row"), many ? Y("Unwrap", Key) : Key),
- BuildLambda(Pos, Y("row"), many ? Y("Unwrap", Payload) : Payload));
+ auto apply = Y("Apply", Factory_, type,
+ BuildLambda(Pos_, Y("row"), many ? Y("Unwrap", Key_) : Key_),
+ BuildLambda(Pos_, Y("row"), many ? Y("Unwrap", Payload_) : Payload_));
AddFactoryArguments(apply);
return apply;
}
void AddFactoryArguments(TNodePtr& apply) const final {
- if (Limit) {
- apply = L(apply, Limit);
+ if (Limit_) {
+ apply = L(apply, Limit_);
}
}
@@ -330,32 +330,32 @@ private:
}
bool DoInit(TContext& ctx, ISource* src) final {
- if (Limit) {
- if (!Limit->Init(ctx, FakeSource.Get())) {
+ if (Limit_) {
+ if (!Limit_->Init(ctx, FakeSource_.Get())) {
return false;
}
}
- if (!Key) {
+ if (!Key_) {
return true;
}
- if (!Key->Init(ctx, src)) {
+ if (!Key_->Init(ctx, src)) {
return false;
}
- if (!Payload->Init(ctx, src)) {
+ if (!Payload_->Init(ctx, src)) {
return false;
}
- if (Key->IsAggregated()) {
- ctx.Error(Pos) << "Aggregation of aggregated values is forbidden";
+ if (Key_->IsAggregated()) {
+ ctx.Error(Pos_) << "Aggregation of aggregated values is forbidden";
return false;
}
return true;
}
- TSourcePtr FakeSource;
- TNodePtr Key, Payload, Limit;
+ TSourcePtr FakeSource_;
+ TNodePtr Key_, Payload_, Limit_;
};
TAggregationPtr BuildKeyPayloadFactoryAggregation(TPosition pos, const TString& name, const TString& factory, EAggregateMode aggMode) {
@@ -372,19 +372,19 @@ private:
bool InitAggr(TContext& ctx, bool isFactory, ISource* src, TAstListNode& node, const TVector<TNodePtr>& exprs) final {
ui32 adjustArgsCount = isFactory ? 0 : 2;
if (exprs.size() != adjustArgsCount) {
- ctx.Error(Pos) << "Aggregation function " << (isFactory ? "factory " : "") << Name << " requires " <<
+ ctx.Error(Pos_) << "Aggregation function " << (isFactory ? "factory " : "") << Name_ << " requires " <<
adjustArgsCount << " arguments, given: " << exprs.size();
return false;
}
- if (BlockWindowAggregationWithoutFrameSpec(Pos, GetName(), src, ctx)) {
+ if (BlockWindowAggregationWithoutFrameSpec(Pos_, GetName(), src, ctx)) {
return false;
}
if (!isFactory) {
- Payload = exprs.front();
- Predicate = exprs.back();
- Name = src->MakeLocalName(Name);
+ Payload_ = exprs.front();
+ Predicate_ = exprs.back();
+ Name_ = src->MakeLocalName(Name_);
}
if (!Init(ctx, src)) {
@@ -392,9 +392,9 @@ private:
}
if (!isFactory) {
- node.Add("Member", "row", Q(Name));
+ node.Add("Member", "row", Q(Name_));
if (IsOverWindow() || IsOverWindowDistinct()) {
- src->AddTmpWindowColumn(Name);
+ src->AddTmpWindowColumn(Name_);
}
}
@@ -402,20 +402,20 @@ private:
}
TNodePtr DoClone() const final {
- return new TPayloadPredicateAggregationFactory(Pos, Name, Func, AggMode);
+ return new TPayloadPredicateAggregationFactory(Pos_, Name_, Func_, AggMode_);
}
TNodePtr GetExtractor(bool many, TContext& ctx) const final {
Y_UNUSED(ctx);
- return BuildLambda(Pos, Y("row"), many ? Y("Unwrap", Payload) : Payload);
+ return BuildLambda(Pos_, Y("row"), many ? Y("Unwrap", Payload_) : Payload_);
}
TNodePtr GetApply(const TNodePtr& type, bool many, bool allowAggApply, TContext& ctx) const final {
Y_UNUSED(ctx);
Y_UNUSED(allowAggApply);
- return Y("Apply", Factory, type,
- BuildLambda(Pos, Y("row"), many ? Y("Unwrap", Payload) : Payload),
- BuildLambda(Pos, Y("row"), many ? Y("Unwrap", Predicate) : Predicate));
+ return Y("Apply", Factory_, type,
+ BuildLambda(Pos_, Y("row"), many ? Y("Unwrap", Payload_) : Payload_),
+ BuildLambda(Pos_, Y("row"), many ? Y("Unwrap", Predicate_) : Predicate_));
}
std::vector<ui32> GetFactoryColumnIndices() const final {
@@ -423,26 +423,26 @@ private:
}
bool DoInit(TContext& ctx, ISource* src) final {
- if (!Predicate) {
+ if (!Predicate_) {
return true;
}
- if (!Predicate->Init(ctx, src)) {
+ if (!Predicate_->Init(ctx, src)) {
return false;
}
- if (!Payload->Init(ctx, src)) {
+ if (!Payload_->Init(ctx, src)) {
return false;
}
- if (Payload->IsAggregated()) {
- ctx.Error(Pos) << "Aggregation of aggregated values is forbidden";
+ if (Payload_->IsAggregated()) {
+ ctx.Error(Pos_) << "Aggregation of aggregated values is forbidden";
return false;
}
return true;
}
- TNodePtr Payload, Predicate;
+ TNodePtr Payload_, Predicate_;
};
TAggregationPtr BuildPayloadPredicateFactoryAggregation(TPosition pos, const TString& name, const TString& factory, EAggregateMode aggMode) {
@@ -459,19 +459,19 @@ private:
bool InitAggr(TContext& ctx, bool isFactory, ISource* src, TAstListNode& node, const TVector<TNodePtr>& exprs) final {
ui32 adjustArgsCount = isFactory ? 0 : 2;
if (exprs.size() != adjustArgsCount) {
- ctx.Error(Pos) << "Aggregation function " << (isFactory ? "factory " : "") << Name << " requires " <<
+ ctx.Error(Pos_) << "Aggregation function " << (isFactory ? "factory " : "") << Name_ << " requires " <<
adjustArgsCount << " arguments, given: " << exprs.size();
return false;
}
- if (BlockWindowAggregationWithoutFrameSpec(Pos, GetName(), src, ctx)) {
+ if (BlockWindowAggregationWithoutFrameSpec(Pos_, GetName(), src, ctx)) {
return false;
}
if (!isFactory) {
- One = exprs.front();
- Two = exprs.back();
- Name = src->MakeLocalName(Name);
+ One_ = exprs.front();
+ Two_ = exprs.back();
+ Name_ = src->MakeLocalName(Name_);
}
if (!Init(ctx, src)) {
@@ -479,9 +479,9 @@ private:
}
if (!isFactory) {
- node.Add("Member", "row", Q(Name));
+ node.Add("Member", "row", Q(Name_));
if (IsOverWindow() || IsOverWindowDistinct()) {
- src->AddTmpWindowColumn(Name);
+ src->AddTmpWindowColumn(Name_);
}
}
@@ -489,41 +489,41 @@ private:
}
TNodePtr DoClone() const final {
- return new TTwoArgsAggregationFactory(Pos, Name, Func, AggMode);
+ return new TTwoArgsAggregationFactory(Pos_, Name_, Func_, AggMode_);
}
TNodePtr GetExtractor(bool many, TContext& ctx) const final {
Y_UNUSED(ctx);
- return BuildLambda(Pos, Y("row"), many ? Y("Unwrap", One) : One);
+ return BuildLambda(Pos_, Y("row"), many ? Y("Unwrap", One_) : One_);
}
TNodePtr GetApply(const TNodePtr& type, bool many, bool allowAggApply, TContext& ctx) const final {
Y_UNUSED(ctx);
Y_UNUSED(allowAggApply);
- auto tuple = Q(Y(One, Two));
- return Y("Apply", Factory, type, BuildLambda(Pos, Y("row"), many ? Y("Unwrap", tuple) : tuple));
+ auto tuple = Q(Y(One_, Two_));
+ return Y("Apply", Factory_, type, BuildLambda(Pos_, Y("row"), many ? Y("Unwrap", tuple) : tuple));
}
bool DoInit(TContext& ctx, ISource* src) final {
- if (!One) {
+ if (!One_) {
return true;
}
- if (!One->Init(ctx, src)) {
+ if (!One_->Init(ctx, src)) {
return false;
}
- if (!Two->Init(ctx, src)) {
+ if (!Two_->Init(ctx, src)) {
return false;
}
- if ((One->IsAggregated() || Two->IsAggregated()) && !IsOverWindow() && !IsOverWindowDistinct()) {
- ctx.Error(Pos) << "Aggregation of aggregated values is forbidden";
+ if ((One_->IsAggregated() || Two_->IsAggregated()) && !IsOverWindow() && !IsOverWindowDistinct()) {
+ ctx.Error(Pos_) << "Aggregation of aggregated values is forbidden";
return false;
}
return true;
}
- TNodePtr One, Two;
+ TNodePtr One_, Two_;
};
TAggregationPtr BuildTwoArgsFactoryAggregation(TPosition pos, const TString& name, const TString& factory, EAggregateMode aggMode) {
@@ -534,21 +534,21 @@ class THistogramAggregationFactory final : public TAggregationFactory {
public:
THistogramAggregationFactory(TPosition pos, const TString& name, const TString& factory, EAggregateMode aggMode)
: TAggregationFactory(pos, name, factory, aggMode)
- , FakeSource(BuildFakeSource(pos))
- , Weight(Y("Double", Q("1.0")))
- , Intervals(Y("Uint32", Q("100")))
+ , FakeSource_(BuildFakeSource(pos))
+ , Weight_(Y("Double", Q("1.0")))
+ , Intervals_(Y("Uint32", Q("100")))
{}
private:
bool InitAggr(TContext& ctx, bool isFactory, ISource* src, TAstListNode& node, const TVector<TNodePtr>& exprs) final {
if (isFactory) {
if (exprs.size() > 1) {
- ctx.Error(Pos) << "Aggregation function factory " << Name << " requires 0 or 1 argument(s), given: " << exprs.size();
+ ctx.Error(Pos_) << "Aggregation function factory " << Name_ << " requires 0 or 1 argument(s), given: " << exprs.size();
return false;
}
} else {
if (exprs.empty() || exprs.size() > 3) {
- ctx.Error(Pos) << "Aggregation function " << Name << " requires one, two or three arguments, given: " << exprs.size();
+ ctx.Error(Pos_) << "Aggregation function " << Name_ << " requires one, two or three arguments, given: " << exprs.size();
return false;
}
}
@@ -559,29 +559,29 @@ private:
switch (exprs.size()) {
case 2U:
if (!integer) {
- Weight = exprs.back();
+ Weight_ = exprs.back();
}
break;
case 3U:
if (!integer) {
- ctx.Error(Pos) << "Aggregation function " << Name << " for case with 3 arguments should have third argument of integer type";
+ ctx.Error(Pos_) << "Aggregation function " << Name_ << " for case with 3 arguments should have third argument of integer type";
return false;
}
- Weight = exprs[1];
+ Weight_ = exprs[1];
break;
}
if (exprs.size() >= 2 && integer) {
- Intervals = Y("Cast", exprs.back(), Q("Uint32"));
+ Intervals_ = Y("Cast", exprs.back(), Q("Uint32"));
}
} else {
if (exprs.size() >= 1) {
const auto integer = exprs.back()->IsIntegerLiteral();
if (!integer) {
- ctx.Error(Pos) << "Aggregation function factory " << Name << " should have second interger argument";
+ ctx.Error(Pos_) << "Aggregation function factory " << Name_ << " should have second interger argument";
return false;
}
- Intervals = Y("Cast", exprs.back(), Q("Uint32"));
+ Intervals_ = Y("Cast", exprs.back(), Q("Uint32"));
}
}
@@ -589,21 +589,21 @@ private:
}
TNodePtr DoClone() const final {
- return new THistogramAggregationFactory(Pos, Name, Func, AggMode);
+ return new THistogramAggregationFactory(Pos_, Name_, Func_, AggMode_);
}
TNodePtr GetApply(const TNodePtr& type, bool many, bool allowAggApply, TContext& ctx) const final {
Y_UNUSED(ctx);
Y_UNUSED(allowAggApply);
- auto apply = Y("Apply", Factory, type,
- BuildLambda(Pos, Y("row"), many ? Y("Unwrap", Expr) : Expr),
- BuildLambda(Pos, Y("row"), many ? Y("Unwrap", Weight) : Weight));
+ auto apply = Y("Apply", Factory_, type,
+ BuildLambda(Pos_, Y("row"), many ? Y("Unwrap", Expr_) : Expr_),
+ BuildLambda(Pos_, Y("row"), many ? Y("Unwrap", Weight_) : Weight_));
AddFactoryArguments(apply);
return apply;
}
void AddFactoryArguments(TNodePtr& apply) const final {
- apply = L(apply, Intervals);
+ apply = L(apply, Intervals_);
}
std::vector<ui32> GetFactoryColumnIndices() const final {
@@ -611,18 +611,18 @@ private:
}
bool DoInit(TContext& ctx, ISource* src) final {
- if (!Weight->Init(ctx, src)) {
+ if (!Weight_->Init(ctx, src)) {
return false;
}
- if (!Intervals->Init(ctx, FakeSource.Get())) {
+ if (!Intervals_->Init(ctx, FakeSource_.Get())) {
return false;
}
return TAggregationFactory::DoInit(ctx, src);
}
- TSourcePtr FakeSource;
- TNodePtr Weight, Intervals;
+ TSourcePtr FakeSource_;
+ TNodePtr Weight_, Intervals_;
};
TAggregationPtr BuildHistogramFactoryAggregation(TPosition pos, const TString& name, const TString& factory, EAggregateMode aggMode) {
@@ -633,73 +633,73 @@ class TLinearHistogramAggregationFactory final : public TAggregationFactory {
public:
TLinearHistogramAggregationFactory(TPosition pos, const TString& name, const TString& factory, EAggregateMode aggMode)
: TAggregationFactory(pos, name, factory, aggMode)
- , FakeSource(BuildFakeSource(pos))
- , BinSize(Y("Double", Q("10.0")))
- , Minimum(Y("Double", Q(ToString(-1.0 * Max<double>()))))
- , Maximum(Y("Double", Q(ToString(Max<double>()))))
+ , FakeSource_(BuildFakeSource(pos))
+ , BinSize_(Y("Double", Q("10.0")))
+ , Minimum_(Y("Double", Q(ToString(-1.0 * Max<double>()))))
+ , Maximum_(Y("Double", Q(ToString(Max<double>()))))
{}
private:
bool InitAggr(TContext& ctx, bool isFactory, ISource* src, TAstListNode& node, const TVector<TNodePtr>& exprs) final {
if (isFactory) {
if (exprs.size() > 3) {
- ctx.Error(Pos) << "Aggregation function " << Name << " requires zero to three arguments, given: " << exprs.size();
+ ctx.Error(Pos_) << "Aggregation function " << Name_ << " requires zero to three arguments, given: " << exprs.size();
return false;
}
} else {
if (exprs.empty() || exprs.size() > 4) {
- ctx.Error(Pos) << "Aggregation function " << Name << " requires one to four arguments, given: " << exprs.size();
+ ctx.Error(Pos_) << "Aggregation function " << Name_ << " requires one to four arguments, given: " << exprs.size();
return false;
}
}
if (exprs.size() > 1 - isFactory) {
- BinSize = exprs[1 - isFactory];
+ BinSize_ = exprs[1 - isFactory];
}
if (exprs.size() > 2 - isFactory) {
- Minimum = exprs[2 - isFactory];
+ Minimum_ = exprs[2 - isFactory];
}
if (exprs.size() > 3 - isFactory) {
- Maximum = exprs[3 - isFactory];
+ Maximum_ = exprs[3 - isFactory];
}
return TAggregationFactory::InitAggr(ctx, isFactory, src, node, isFactory ? TVector<TNodePtr>() : TVector<TNodePtr>(1, exprs.front()));
}
TNodePtr DoClone() const final {
- return new TLinearHistogramAggregationFactory(Pos, Name, Func, AggMode);
+ return new TLinearHistogramAggregationFactory(Pos_, Name_, Func_, AggMode_);
}
TNodePtr GetApply(const TNodePtr& type, bool many, bool allowAggApply, TContext& ctx) const final {
Y_UNUSED(ctx);
Y_UNUSED(allowAggApply);
- return Y("Apply", Factory, type,
- BuildLambda(Pos, Y("row"), many ? Y("Unwrap", Expr) : Expr),
- BinSize, Minimum, Maximum);
+ return Y("Apply", Factory_, type,
+ BuildLambda(Pos_, Y("row"), many ? Y("Unwrap", Expr_) : Expr_),
+ BinSize_, Minimum_, Maximum_);
}
void AddFactoryArguments(TNodePtr& apply) const final {
- apply = L(apply, BinSize, Minimum, Maximum);
+ apply = L(apply, BinSize_, Minimum_, Maximum_);
}
bool DoInit(TContext& ctx, ISource* src) final {
- if (!BinSize->Init(ctx, FakeSource.Get())) {
+ if (!BinSize_->Init(ctx, FakeSource_.Get())) {
return false;
}
- if (!Minimum->Init(ctx, FakeSource.Get())) {
+ if (!Minimum_->Init(ctx, FakeSource_.Get())) {
return false;
}
- if (!Maximum->Init(ctx, FakeSource.Get())) {
+ if (!Maximum_->Init(ctx, FakeSource_.Get())) {
return false;
}
return TAggregationFactory::DoInit(ctx, src);
}
- TSourcePtr FakeSource;
- TNodePtr BinSize, Minimum, Maximum;
+ TSourcePtr FakeSource_;
+ TNodePtr BinSize_, Minimum_, Maximum_;
};
TAggregationPtr BuildLinearHistogramFactoryAggregation(TPosition pos, const TString& name, const TString& factory, EAggregateMode aggMode) {
@@ -710,33 +710,33 @@ class TPercentileFactory final : public TAggregationFactory {
public:
TPercentileFactory(TPosition pos, const TString& name, const TString& factory, EAggregateMode aggMode)
: TAggregationFactory(pos, name, factory, aggMode)
- , FakeSource(BuildFakeSource(pos))
+ , FakeSource_(BuildFakeSource(pos))
{}
private:
const TString* GetGenericKey() const final {
- return Column;
+ return Column_;
}
void Join(IAggregation* aggr) final {
const auto percentile = dynamic_cast<TPercentileFactory*>(aggr);
YQL_ENSURE(percentile);
- YQL_ENSURE(Column && percentile->Column && *Column == *percentile->Column);
- YQL_ENSURE(AggMode == percentile->AggMode);
- Percentiles.insert(percentile->Percentiles.cbegin(), percentile->Percentiles.cend());
- percentile->Percentiles.clear();
+ YQL_ENSURE(Column_ && percentile->Column_ && *Column_ == *percentile->Column_);
+ YQL_ENSURE(AggMode_ == percentile->AggMode_);
+ Percentiles_.insert(percentile->Percentiles_.cbegin(), percentile->Percentiles_.cend());
+ percentile->Percentiles_.clear();
}
bool InitAggr(TContext& ctx, bool isFactory, ISource* src, TAstListNode& node, const TVector<TNodePtr>& exprs) final {
ui32 adjustArgsCount = isFactory ? 0 : 1;
if (exprs.size() < 0 + adjustArgsCount || exprs.size() > 1 + adjustArgsCount) {
- ctx.Error(Pos) << "Aggregation function " << (isFactory ? "factory " : "") << Name << " requires "
+ ctx.Error(Pos_) << "Aggregation function " << (isFactory ? "factory " : "") << Name_ << " requires "
<< (0 + adjustArgsCount) << " or " << (1 + adjustArgsCount) << " arguments, given: " << exprs.size();
return false;
}
if (!isFactory) {
- Column = exprs.front()->GetColumnName();
+ Column_ = exprs.front()->GetColumnName();
}
if (!TAggregationFactory::InitAggr(ctx, isFactory, src, node, isFactory ? TVector<TNodePtr>() : TVector<TNodePtr>(1, exprs.front())))
@@ -745,7 +745,7 @@ private:
TNodePtr x;
if (1 + adjustArgsCount == exprs.size()) {
x = exprs.back();
- if (!x->Init(ctx, FakeSource.Get())) {
+ if (!x->Init(ctx, FakeSource_.Get())) {
return false;
}
} else {
@@ -753,53 +753,53 @@ private:
}
if (isFactory) {
- FactoryPercentile = x;
+ FactoryPercentile_ = x;
} else {
- Percentiles.emplace(Name, x);
+ Percentiles_.emplace(Name_, x);
}
return true;
}
TNodePtr DoClone() const final {
- return new TPercentileFactory(Pos, Name, Func, AggMode);
+ return new TPercentileFactory(Pos_, Name_, Func_, AggMode_);
}
TNodePtr GetApply(const TNodePtr& type, bool many, bool allowAggApply, TContext& ctx) const final {
Y_UNUSED(ctx);
Y_UNUSED(allowAggApply);
- TNodePtr percentiles(Percentiles.cbegin()->second);
+ TNodePtr percentiles(Percentiles_.cbegin()->second);
- if (Percentiles.size() > 1U) {
+ if (Percentiles_.size() > 1U) {
percentiles = Y();
- for (const auto& percentile : Percentiles) {
+ for (const auto& percentile : Percentiles_) {
percentiles = L(percentiles, percentile.second);
}
percentiles = Q(percentiles);
}
- return Y("Apply", Factory, type, BuildLambda(Pos, Y("row"), many ? Y("Unwrap", Expr) : Expr), percentiles);
+ return Y("Apply", Factory_, type, BuildLambda(Pos_, Y("row"), many ? Y("Unwrap", Expr_) : Expr_), percentiles);
}
void AddFactoryArguments(TNodePtr& apply) const final {
- apply = L(apply, FactoryPercentile);
+ apply = L(apply, FactoryPercentile_);
}
std::pair<TNodePtr, bool> AggregationTraits(const TNodePtr& type, bool overState, bool many, bool allowAggApply, TContext& ctx) const final {
- if (Percentiles.empty())
+ if (Percentiles_.empty())
return { TNodePtr(), true };
- TNodePtr names(Q(Percentiles.cbegin()->first));
+ TNodePtr names(Q(Percentiles_.cbegin()->first));
- if (Percentiles.size() > 1U) {
+ if (Percentiles_.size() > 1U) {
names = Y();
- for (const auto& percentile : Percentiles)
+ for (const auto& percentile : Percentiles_)
names = L(names, Q(percentile.first));
names = Q(names);
}
- const bool distinct = AggMode == EAggregateMode::Distinct;
- const auto listType = distinct ? Y("ListType", Y("StructMemberType", Y("ListItemType", type), BuildQuotedAtom(Pos, DistinctKey))) : type;
+ const bool distinct = AggMode_ == EAggregateMode::Distinct;
+ const auto listType = distinct ? Y("ListType", Y("StructMemberType", Y("ListItemType", type), BuildQuotedAtom(Pos_, DistinctKey_))) : type;
auto apply = GetApply(listType, many, allowAggApply, ctx);
if (!apply) {
return { TNodePtr(), false };
@@ -811,12 +811,12 @@ private:
}
return { distinct ?
- Q(Y(names, wrapped, BuildQuotedAtom(Pos, DistinctKey))) :
+ Q(Y(names, wrapped, BuildQuotedAtom(Pos_, DistinctKey_))) :
Q(Y(names, wrapped)), true };
}
bool DoInit(TContext& ctx, ISource* src) final {
- for (const auto& p : Percentiles) {
+ for (const auto& p : Percentiles_) {
if (!p.second->Init(ctx, src)) {
return false;
}
@@ -825,10 +825,10 @@ private:
return TAggregationFactory::DoInit(ctx, src);
}
- TSourcePtr FakeSource;
- std::multimap<TString, TNodePtr> Percentiles;
- TNodePtr FactoryPercentile;
- const TString* Column = nullptr;
+ TSourcePtr FakeSource_;
+ std::multimap<TString, TNodePtr> Percentiles_;
+ TNodePtr FactoryPercentile_;
+ const TString* Column_ = nullptr;
};
TAggregationPtr BuildPercentileFactoryAggregation(TPosition pos, const TString& name, const TString& factory, EAggregateMode aggMode) {
@@ -839,7 +839,7 @@ class TTopFreqFactory final : public TAggregationFactory {
public:
TTopFreqFactory(TPosition pos, const TString& name, const TString& factory, EAggregateMode aggMode)
: TAggregationFactory(pos, name, factory, aggMode)
- , FakeSource(BuildFakeSource(pos))
+ , FakeSource_(BuildFakeSource(pos))
{}
private:
@@ -853,7 +853,7 @@ private:
const ui32 MinBuffer = 100;
if (exprs.size() < adjustArgsCount || exprs.size() > 2 + adjustArgsCount) {
- ctx.Error(Pos) << "Aggregation function " << (isFactory? "factory " : "") << Name <<
+ ctx.Error(Pos_) << "Aggregation function " << (isFactory? "factory " : "") << Name_ <<
" requires " << adjustArgsCount << " to " << (2 + adjustArgsCount) << " arguments, given: " << exprs.size();
return false;
}
@@ -866,7 +866,7 @@ private:
if (1 + adjustArgsCount <= exprs.size()) {
n = exprs[adjustArgsCount];
- if (!n->Init(ctx, FakeSource.Get())) {
+ if (!n->Init(ctx, FakeSource_.Get())) {
return false;
}
n = Y("SafeCast", n, Q("Uint32"));
@@ -875,7 +875,7 @@ private:
n = Y("Coalesce", n, Y("Uint32", Q("1")));
if (2 + adjustArgsCount == exprs.size()) {
buffer = exprs[1 + adjustArgsCount];
- if (!buffer->Init(ctx, FakeSource.Get())) {
+ if (!buffer->Init(ctx, FakeSource_.Get())) {
return false;
}
@@ -888,54 +888,54 @@ private:
auto x = TPair{ n, buffer };
if (isFactory) {
- TopFreqFactoryParams = x;
+ TopFreqFactoryParams_ = x;
} else {
- TopFreqs.emplace(Name, x);
+ TopFreqs_.emplace(Name_, x);
}
return true;
}
TNodePtr DoClone() const final {
- return new TTopFreqFactory(Pos, Name, Func, AggMode);
+ return new TTopFreqFactory(Pos_, Name_, Func_, AggMode_);
}
TNodePtr GetApply(const TNodePtr& type, bool many, bool allowAggApply, TContext& ctx) const final {
Y_UNUSED(ctx);
Y_UNUSED(allowAggApply);
- TPair topFreqs(TopFreqs.cbegin()->second);
+ TPair topFreqs(TopFreqs_.cbegin()->second);
- if (TopFreqs.size() > 1U) {
+ if (TopFreqs_.size() > 1U) {
topFreqs = { Y(), Y() };
- for (const auto& topFreq : TopFreqs) {
+ for (const auto& topFreq : TopFreqs_) {
topFreqs = { L(topFreqs.first, topFreq.second.first), L(topFreqs.second, topFreq.second.second) };
}
topFreqs = { Q(topFreqs.first), Q(topFreqs.second) };
}
- auto apply = Y("Apply", Factory, type, BuildLambda(Pos, Y("row"), many ? Y("Unwrap", Expr) : Expr), topFreqs.first, topFreqs.second);
+ auto apply = Y("Apply", Factory_, type, BuildLambda(Pos_, Y("row"), many ? Y("Unwrap", Expr_) : Expr_), topFreqs.first, topFreqs.second);
return apply;
}
void AddFactoryArguments(TNodePtr& apply) const final {
- apply = L(apply, TopFreqFactoryParams.first, TopFreqFactoryParams.second);
+ apply = L(apply, TopFreqFactoryParams_.first, TopFreqFactoryParams_.second);
}
std::pair<TNodePtr, bool> AggregationTraits(const TNodePtr& type, bool overState, bool many, bool allowAggApply, TContext& ctx) const final {
- if (TopFreqs.empty())
+ if (TopFreqs_.empty())
return { TNodePtr(), true };
- TNodePtr names(Q(TopFreqs.cbegin()->first));
+ TNodePtr names(Q(TopFreqs_.cbegin()->first));
- if (TopFreqs.size() > 1U) {
+ if (TopFreqs_.size() > 1U) {
names = Y();
- for (const auto& topFreq : TopFreqs)
+ for (const auto& topFreq : TopFreqs_)
names = L(names, Q(topFreq.first));
names = Q(names);
}
- const bool distinct = AggMode == EAggregateMode::Distinct;
- const auto listType = distinct ? Y("ListType", Y("StructMemberType", Y("ListItemType", type), BuildQuotedAtom(Pos, DistinctKey))) : type;
+ const bool distinct = AggMode_ == EAggregateMode::Distinct;
+ const auto listType = distinct ? Y("ListType", Y("StructMemberType", Y("ListItemType", type), BuildQuotedAtom(Pos_, DistinctKey_))) : type;
auto apply = GetApply(listType, many, allowAggApply, ctx);
if (!apply) {
return { nullptr, false };
@@ -947,12 +947,12 @@ private:
}
return { distinct ?
- Q(Y(names, wrapped, BuildQuotedAtom(Pos, DistinctKey))) :
+ Q(Y(names, wrapped, BuildQuotedAtom(Pos_, DistinctKey_))) :
Q(Y(names, wrapped)), true };
}
bool DoInit(TContext& ctx, ISource* src) final {
- for (const auto& topFreq : TopFreqs) {
+ for (const auto& topFreq : TopFreqs_) {
if (!topFreq.second.first->Init(ctx, src)) {
return false;
}
@@ -965,9 +965,9 @@ private:
return TAggregationFactory::DoInit(ctx, src);
}
- std::multimap<TString, TPair> TopFreqs;
- TPair TopFreqFactoryParams;
- TSourcePtr FakeSource;
+ std::multimap<TString, TPair> TopFreqs_;
+ TPair TopFreqFactoryParams_;
+ TSourcePtr FakeSource_;
};
TAggregationPtr BuildTopFreqFactoryAggregation(TPosition pos, const TString& name, const TString& factory, EAggregateMode aggMode) {
@@ -979,33 +979,33 @@ class TTopAggregationFactory final : public TAggregationFactory {
public:
TTopAggregationFactory(TPosition pos, const TString& name, const TString& factory, EAggregateMode aggMode)
: TAggregationFactory(pos, name, factory, aggMode)
- , FakeSource(BuildFakeSource(pos))
+ , FakeSource_(BuildFakeSource(pos))
{}
private:
bool InitAggr(TContext& ctx, bool isFactory, ISource* src, TAstListNode& node, const TVector<TNodePtr>& exprs) final {
ui32 adjustArgsCount = isFactory ? 1 : (HasKey ? 3 : 2);
if (exprs.size() != adjustArgsCount) {
- ctx.Error(Pos) << "Aggregation function " << (isFactory ? "factory " : "") << Name << " requires "
+ ctx.Error(Pos_) << "Aggregation function " << (isFactory ? "factory " : "") << Name_ << " requires "
<< adjustArgsCount << " arguments, given: " << exprs.size();
return false;
}
- if (BlockWindowAggregationWithoutFrameSpec(Pos, GetName(), src, ctx)) {
+ if (BlockWindowAggregationWithoutFrameSpec(Pos_, GetName(), src, ctx)) {
return false;
}
if (!isFactory) {
- Payload = exprs[0];
+ Payload_ = exprs[0];
if (HasKey) {
- Key = exprs[1];
+ Key_ = exprs[1];
}
}
- Count = exprs.back();
+ Count_ = exprs.back();
if (!isFactory) {
- Name = src->MakeLocalName(Name);
+ Name_ = src->MakeLocalName(Name_);
}
if (!Init(ctx, src)) {
@@ -1013,9 +1013,9 @@ private:
}
if (!isFactory) {
- node.Add("Member", "row", Q(Name));
+ node.Add("Member", "row", Q(Name_));
if (IsOverWindow() || IsOverWindowDistinct()) {
- src->AddTmpWindowColumn(Name);
+ src->AddTmpWindowColumn(Name_);
}
}
@@ -1023,7 +1023,7 @@ private:
}
TNodePtr DoClone() const final {
- return new TTopAggregationFactory(Pos, Name, Func, AggMode);
+ return new TTopAggregationFactory(Pos_, Name_, Func_, AggMode_);
}
TNodePtr GetApply(const TNodePtr& type, bool many, bool allowAggApply, TContext& ctx) const final {
@@ -1031,18 +1031,18 @@ private:
Y_UNUSED(allowAggApply);
TNodePtr apply;
if (HasKey) {
- apply = Y("Apply", Factory, type,
- BuildLambda(Pos, Y("row"), many ? Y("Unwrap", Key) : Key),
- BuildLambda(Pos, Y("row"), many ? Y("Payload", Payload) : Payload));
+ apply = Y("Apply", Factory_, type,
+ BuildLambda(Pos_, Y("row"), many ? Y("Unwrap", Key_) : Key_),
+ BuildLambda(Pos_, Y("row"), many ? Y("Payload", Payload_) : Payload_));
} else {
- apply = Y("Apply", Factory, type, BuildLambda(Pos, Y("row"), many ? Y("Unwrap", Payload) : Payload));
+ apply = Y("Apply", Factory_, type, BuildLambda(Pos_, Y("row"), many ? Y("Unwrap", Payload_) : Payload_));
}
AddFactoryArguments(apply);
return apply;
}
void AddFactoryArguments(TNodePtr& apply) const final {
- apply = L(apply, Count);
+ apply = L(apply, Count_);
}
std::vector<ui32> GetFactoryColumnIndices() const final {
@@ -1054,33 +1054,33 @@ private:
}
bool DoInit(TContext& ctx, ISource* src) final {
- if (!Count->Init(ctx, FakeSource.Get())) {
+ if (!Count_->Init(ctx, FakeSource_.Get())) {
return false;
}
- if (!Payload) {
+ if (!Payload_) {
return true;
}
if (HasKey) {
- if (!Key->Init(ctx, src)) {
+ if (!Key_->Init(ctx, src)) {
return false;
}
}
- if (!Payload->Init(ctx, src)) {
+ if (!Payload_->Init(ctx, src)) {
return false;
}
- if ((HasKey && Key->IsAggregated()) || (!HasKey && Payload->IsAggregated())) {
- ctx.Error(Pos) << "Aggregation of aggregated values is forbidden";
+ if ((HasKey && Key_->IsAggregated()) || (!HasKey && Payload_->IsAggregated())) {
+ ctx.Error(Pos_) << "Aggregation of aggregated values is forbidden";
return false;
}
return true;
}
- TSourcePtr FakeSource;
- TNodePtr Key, Payload, Count;
+ TSourcePtr FakeSource_;
+ TNodePtr Key_, Payload_, Count_;
};
template <bool HasKey>
@@ -1101,27 +1101,27 @@ private:
bool InitAggr(TContext& ctx, bool isFactory, ISource* src, TAstListNode& node, const TVector<TNodePtr>& exprs) final {
ui32 adjustArgsCount = isFactory ? 0 : 1;
if (exprs.size() < adjustArgsCount || exprs.size() > 1 + adjustArgsCount) {
- ctx.Error(Pos) << Name << " aggregation function " << (isFactory ? "factory " : "") << " requires " <<
+ ctx.Error(Pos_) << Name_ << " aggregation function " << (isFactory ? "factory " : "") << " requires " <<
adjustArgsCount << " or " << (1 + adjustArgsCount) << " argument(s), given: " << exprs.size();
return false;
}
- Precision = 14;
+ Precision_ = 14;
if (1 + adjustArgsCount <= exprs.size()) {
auto posSecondArg = exprs[adjustArgsCount]->GetPos();
- if (!Parseui32(exprs[adjustArgsCount], Precision)) {
- ctx.Error(posSecondArg) << Name << ": invalid argument, numeric literal is expected";
+ if (!Parseui32(exprs[adjustArgsCount], Precision_)) {
+ ctx.Error(posSecondArg) << Name_ << ": invalid argument, numeric literal is expected";
return false;
}
}
- if (Precision > 18 || Precision < 4) {
- ctx.Error(Pos) << Name << ": precision is expected to be between 4 and 18 (inclusive), got " << Precision;
+ if (Precision_ > 18 || Precision_ < 4) {
+ ctx.Error(Pos_) << Name_ << ": precision is expected to be between 4 and 18 (inclusive), got " << Precision_;
return false;
}
if (!isFactory) {
- Expr = exprs[0];
- Name = src->MakeLocalName(Name);
+ Expr_ = exprs[0];
+ Name_ = src->MakeLocalName(Name_);
}
if (!Init(ctx, src)) {
@@ -1129,9 +1129,9 @@ private:
}
if (!isFactory) {
- node.Add("Member", "row", Q(Name));
+ node.Add("Member", "row", Q(Name_));
if (IsOverWindow() || IsOverWindowDistinct()) {
- src->AddTmpWindowColumn(Name);
+ src->AddTmpWindowColumn(Name_);
}
}
@@ -1139,23 +1139,23 @@ private:
}
TNodePtr DoClone() const final {
- return new TCountDistinctEstimateAggregationFactory(Pos, Name, Func, AggMode);
+ return new TCountDistinctEstimateAggregationFactory(Pos_, Name_, Func_, AggMode_);
}
TNodePtr GetApply(const TNodePtr& type, bool many, bool allowAggApply, TContext& ctx) const final {
Y_UNUSED(ctx);
Y_UNUSED(allowAggApply);
- auto apply = Y("Apply", Factory, type, BuildLambda(Pos, Y("row"), many ? Y("Unwrap", Expr) : Expr));
+ auto apply = Y("Apply", Factory_, type, BuildLambda(Pos_, Y("row"), many ? Y("Unwrap", Expr_) : Expr_));
AddFactoryArguments(apply);
return apply;
}
void AddFactoryArguments(TNodePtr& apply) const final {
- apply = L(apply, Y("Uint32", Q(ToString(Precision))));
+ apply = L(apply, Y("Uint32", Q(ToString(Precision_))));
}
private:
- ui32 Precision = 0;
+ ui32 Precision_ = 0;
};
TAggregationPtr BuildCountDistinctEstimateFactoryAggregation(TPosition pos, const TString& name, const TString& factory, EAggregateMode aggMode) {
@@ -1166,7 +1166,7 @@ class TListAggregationFactory final : public TAggregationFactory {
public:
TListAggregationFactory(TPosition pos, const TString& name, const TString& factory, EAggregateMode aggMode)
: TAggregationFactory(pos, name, factory, aggMode)
- , FakeSource(BuildFakeSource(pos))
+ , FakeSource_(BuildFakeSource(pos))
{
}
@@ -1176,27 +1176,27 @@ private:
ui32 minArgs = (0 + adjustArgsCount);
ui32 maxArgs = (1 + adjustArgsCount);
if (exprs.size() < minArgs || exprs.size() > maxArgs) {
- ctx.Error(Pos) << "List aggregation " << (isFactory ? "factory " : "") << "function require " << minArgs
+ ctx.Error(Pos_) << "List aggregation " << (isFactory ? "factory " : "") << "function require " << minArgs
<< " or " << maxArgs << " arguments, given: " << exprs.size();
return false;
}
- if (BlockWindowAggregationWithoutFrameSpec(Pos, GetName(), src, ctx)) {
+ if (BlockWindowAggregationWithoutFrameSpec(Pos_, GetName(), src, ctx)) {
return false;
}
- Limit = nullptr;
+ Limit_ = nullptr;
if (adjustArgsCount + 1U <= exprs.size()) {
auto posSecondArg = exprs[adjustArgsCount]->GetPos();
- Limit = exprs[adjustArgsCount];
- if (!Limit->Init(ctx, FakeSource.Get())) {
+ Limit_ = exprs[adjustArgsCount];
+ if (!Limit_->Init(ctx, FakeSource_.Get())) {
return false;
}
}
if (!isFactory) {
- Expr = exprs[0];
- Name = src->MakeLocalName(Name);
+ Expr_ = exprs[0];
+ Name_ = src->MakeLocalName(Name_);
}
if (!Init(ctx, src)) {
@@ -1204,9 +1204,9 @@ private:
}
if (!isFactory) {
- node.Add("Member", "row", Q(Name));
+ node.Add("Member", "row", Q(Name_));
if (IsOverWindow() || IsOverWindowDistinct()) {
- src->AddTmpWindowColumn(Name);
+ src->AddTmpWindowColumn(Name_);
}
}
@@ -1214,28 +1214,28 @@ private:
}
TNodePtr DoClone() const final {
- return new TListAggregationFactory(Pos, Name, Func, AggMode);
+ return new TListAggregationFactory(Pos_, Name_, Func_, AggMode_);
}
TNodePtr GetApply(const TNodePtr& type, bool many, bool allowAggApply, TContext& ctx) const final {
Y_UNUSED(ctx);
Y_UNUSED(allowAggApply);
- auto apply = Y("Apply", Factory, type, BuildLambda(Pos, Y("row"), many ? Y("Unwrap", Expr) : Expr));
+ auto apply = Y("Apply", Factory_, type, BuildLambda(Pos_, Y("row"), many ? Y("Unwrap", Expr_) : Expr_));
AddFactoryArguments(apply);
return apply;
}
void AddFactoryArguments(TNodePtr& apply) const final {
- if (!Limit) {
+ if (!Limit_) {
apply = L(apply, Y("Uint64", Q("0")));
} else {
- apply = L(apply, Limit);
+ apply = L(apply, Limit_);
}
}
private:
- TSourcePtr FakeSource;
- TNodePtr Limit;
+ TSourcePtr FakeSource_;
+ TNodePtr Limit_;
};
TAggregationPtr BuildListFactoryAggregation(TPosition pos, const TString& name, const TString& factory, EAggregateMode aggMode) {
@@ -1252,58 +1252,58 @@ private:
bool InitAggr(TContext& ctx, bool isFactory, ISource* src, TAstListNode& node, const TVector<TNodePtr>& exprs) final {
ui32 adjustArgsCount = isFactory ? 0 : 1;
if (exprs.size() < (3 + adjustArgsCount) || exprs.size() > (7 + adjustArgsCount)) {
- ctx.Error(Pos) << "User defined aggregation function " << (isFactory ? "factory " : "") << " requires " <<
+ ctx.Error(Pos_) << "User defined aggregation function " << (isFactory ? "factory " : "") << " requires " <<
(3 + adjustArgsCount) << " to " << (7 + adjustArgsCount) << " arguments, given: " << exprs.size();
return false;
}
- Lambdas[0] = BuildLambda(Pos, Y("value", "parent"), Y("NamedApply", exprs[adjustArgsCount], Q(Y("value")), Y("AsStruct"), Y("DependsOn", "parent")));
- Lambdas[1] = BuildLambda(Pos, Y("value", "state", "parent"), Y("NamedApply", exprs[adjustArgsCount + 1], Q(Y("state", "value")), Y("AsStruct"), Y("DependsOn", "parent")));
- Lambdas[2] = BuildLambda(Pos, Y("one", "two"), Y("IfType", exprs[adjustArgsCount + 2], Y("NullType"),
- BuildLambda(Pos, Y(), Y("Void")),
- BuildLambda(Pos, Y(), Y("Apply", exprs[adjustArgsCount + 2], "one", "two"))));
+ Lambdas_[0] = BuildLambda(Pos_, Y("value", "parent"), Y("NamedApply", exprs[adjustArgsCount], Q(Y("value")), Y("AsStruct"), Y("DependsOn", "parent")));
+ Lambdas_[1] = BuildLambda(Pos_, Y("value", "state", "parent"), Y("NamedApply", exprs[adjustArgsCount + 1], Q(Y("state", "value")), Y("AsStruct"), Y("DependsOn", "parent")));
+ Lambdas_[2] = BuildLambda(Pos_, Y("one", "two"), Y("IfType", exprs[adjustArgsCount + 2], Y("NullType"),
+ BuildLambda(Pos_, Y(), Y("Void")),
+ BuildLambda(Pos_, Y(), Y("Apply", exprs[adjustArgsCount + 2], "one", "two"))));
- for (size_t i = 3U; i < Lambdas.size(); ++i) {
+ for (size_t i = 3U; i < Lambdas_.size(); ++i) {
const auto j = adjustArgsCount + i;
- Lambdas[i] = BuildLambda(Pos, Y("state"), j >= exprs.size() ? AstNode("state") : Y("Apply", exprs[j], "state"));
+ Lambdas_[i] = BuildLambda(Pos_, Y("state"), j >= exprs.size() ? AstNode("state") : Y("Apply", exprs[j], "state"));
}
- DefVal = (exprs.size() == (7 + adjustArgsCount)) ? exprs[adjustArgsCount + 6] : Y("Null");
+ DefVal_ = (exprs.size() == (7 + adjustArgsCount)) ? exprs[adjustArgsCount + 6] : Y("Null");
return TAggregationFactory::InitAggr(ctx, isFactory, src, node, isFactory ? TVector<TNodePtr>() : TVector<TNodePtr>(1, exprs.front()));
}
TNodePtr DoClone() const final {
- return new TUserDefinedAggregationFactory(Pos, Name, Func, AggMode);
+ return new TUserDefinedAggregationFactory(Pos_, Name_, Func_, AggMode_);
}
TNodePtr GetApply(const TNodePtr& type, bool many, bool allowAggApply, TContext& ctx) const final {
Y_UNUSED(ctx);
Y_UNUSED(allowAggApply);
- auto apply = Y("Apply", Factory, type, BuildLambda(Pos, Y("row"), many ? Y("Unwrap", Expr) : Expr));
+ auto apply = Y("Apply", Factory_, type, BuildLambda(Pos_, Y("row"), many ? Y("Unwrap", Expr_) : Expr_));
AddFactoryArguments(apply);
return apply;
}
void AddFactoryArguments(TNodePtr& apply) const final {
- apply = L(apply, Lambdas[0], Lambdas[1], Lambdas[2], Lambdas[3], Lambdas[4], Lambdas[5], DefVal);
+ apply = L(apply, Lambdas_[0], Lambdas_[1], Lambdas_[2], Lambdas_[3], Lambdas_[4], Lambdas_[5], DefVal_);
}
bool DoInit(TContext& ctx, ISource* src) final {
- for (const auto& lambda : Lambdas) {
+ for (const auto& lambda : Lambdas_) {
if (!lambda->Init(ctx, src)) {
return false;
}
}
- if (!DefVal->Init(ctx, src)) {
+ if (!DefVal_->Init(ctx, src)) {
return false;
}
return TAggregationFactory::DoInit(ctx, src);
}
- std::array<TNodePtr, 6> Lambdas;
- TNodePtr DefVal;
+ std::array<TNodePtr, 6> Lambdas_;
+ TNodePtr DefVal_;
};
TAggregationPtr BuildUserDefinedFactoryAggregation(TPosition pos, const TString& name, const TString& factory, EAggregateMode aggMode) {
@@ -1318,21 +1318,21 @@ public:
private:
TNodePtr DoClone() const final {
- return new TCountAggregation(Pos, Name, Func, AggMode);
+ return new TCountAggregation(Pos_, Name_, Func_, AggMode_);
}
bool DoInit(TContext& ctx, ISource* src) final {
- if (!Expr) {
+ if (!Expr_) {
return true;
}
- if (Expr->IsAsterisk()) {
- Expr = Y("Void");
+ if (Expr_->IsAsterisk()) {
+ Expr_ = Y("Void");
}
- if (!Expr->Init(ctx, src)) {
+ if (!Expr_->Init(ctx, src)) {
return false;
}
- Expr->SetCountHint(Expr->IsConstant());
+ Expr_->SetCountHint(Expr_->IsConstant());
return TAggregationFactory::DoInit(ctx, src);
}
};
@@ -1345,17 +1345,17 @@ class TPGFactoryAggregation final : public TAggregationFactory {
public:
TPGFactoryAggregation(TPosition pos, const TString& name, EAggregateMode aggMode)
: TAggregationFactory(pos, name, "", aggMode, false, false)
- , PgFunc(Name)
+ , PgFunc_(Name_)
{}
bool InitAggr(TContext& ctx, bool isFactory, ISource* src, TAstListNode& node, const TVector<TNodePtr>& exprs) override {
auto ret = TAggregationFactory::InitAggr(ctx, isFactory, src, node, exprs);
if (ret) {
if (isFactory) {
- Factory = BuildLambda(Pos, Y("type", "extractor"), Y(AggMode == EAggregateMode::OverWindow ? "PgWindowTraitsTuple" : "PgAggregationTraitsTuple",
- Q(PgFunc), Y("ListItemType", "type"), "extractor"));
+ Factory_ = BuildLambda(Pos_, Y("type", "extractor"), Y(AggMode_ == EAggregateMode::OverWindow ? "PgWindowTraitsTuple" : "PgAggregationTraitsTuple",
+ Q(PgFunc_), Y("ListItemType", "type"), "extractor"));
} else {
- Lambda = BuildLambda(Pos, Y("row"), exprs);
+ Lambda_ = BuildLambda(Pos_, Y("row"), exprs);
}
}
@@ -1372,22 +1372,22 @@ public:
Y_UNUSED(many);
Y_UNUSED(ctx);
Y_UNUSED(allowAggApply);
- if (ShouldEmitAggApply(ctx) && allowAggApply && AggMode != EAggregateMode::OverWindow) {
+ if (ShouldEmitAggApply(ctx) && allowAggApply && AggMode_ != EAggregateMode::OverWindow) {
return Y("AggApply",
- Q("pg_" + to_lower(PgFunc)), Y("ListItemType", type), Lambda);
+ Q("pg_" + to_lower(PgFunc_)), Y("ListItemType", type), Lambda_);
}
- return Y(AggMode == EAggregateMode::OverWindow ? "PgWindowTraits" : "PgAggregationTraits",
- Q(PgFunc), Y("ListItemType", type), Lambda);
+ return Y(AggMode_ == EAggregateMode::OverWindow ? "PgWindowTraits" : "PgAggregationTraits",
+ Q(PgFunc_), Y("ListItemType", type), Lambda_);
}
private:
TNodePtr DoClone() const final {
- return new TPGFactoryAggregation(Pos, Name, AggMode);
+ return new TPGFactoryAggregation(Pos_, Name_, AggMode_);
}
- TString PgFunc;
- TNodePtr Lambda;
+ TString PgFunc_;
+ TNodePtr Lambda_;
};
TAggregationPtr BuildPGFactoryAggregation(TPosition pos, const TString& name, EAggregateMode aggMode) {
@@ -1399,7 +1399,7 @@ public:
public:
TNthValueFactoryAggregation(TPosition pos, const TString& name, const TString& factory, EAggregateMode aggMode)
: TAggregationFactory(pos, name, factory, aggMode)
- , FakeSource(BuildFakeSource(pos))
+ , FakeSource_(BuildFakeSource(pos))
{
}
@@ -1408,23 +1408,23 @@ private:
ui32 adjustArgsCount = isFactory ? 0 : 1;
ui32 expectedArgs = (1 + adjustArgsCount);
if (exprs.size() != expectedArgs) {
- ctx.Error(Pos) << "NthValue aggregation " << (isFactory ? "factory " : "") << "function require "
+ ctx.Error(Pos_) << "NthValue aggregation " << (isFactory ? "factory " : "") << "function require "
<< expectedArgs << " arguments, given: " << exprs.size();
return false;
}
- if (BlockWindowAggregationWithoutFrameSpec(Pos, GetName(), src, ctx)) {
+ if (BlockWindowAggregationWithoutFrameSpec(Pos_, GetName(), src, ctx)) {
return false;
}
- Index = exprs[adjustArgsCount];
- if (!Index->Init(ctx, FakeSource.Get())) {
+ Index_ = exprs[adjustArgsCount];
+ if (!Index_->Init(ctx, FakeSource_.Get())) {
return false;
}
if (!isFactory) {
- Expr = exprs[0];
- Name = src->MakeLocalName(Name);
+ Expr_ = exprs[0];
+ Name_ = src->MakeLocalName(Name_);
}
if (!Init(ctx, src)) {
@@ -1432,9 +1432,9 @@ private:
}
if (!isFactory) {
- node.Add("Member", "row", Q(Name));
+ node.Add("Member", "row", Q(Name_));
if (IsOverWindow()) {
- src->AddTmpWindowColumn(Name);
+ src->AddTmpWindowColumn(Name_);
}
}
@@ -1442,24 +1442,24 @@ private:
}
TNodePtr DoClone() const final {
- return new TNthValueFactoryAggregation(Pos, Name, Func, AggMode);
+ return new TNthValueFactoryAggregation(Pos_, Name_, Func_, AggMode_);
}
TNodePtr GetApply(const TNodePtr& type, bool many, bool allowAggApply, TContext& ctx) const final {
Y_UNUSED(ctx);
Y_UNUSED(allowAggApply);
- auto apply = Y("Apply", Factory, type, BuildLambda(Pos, Y("row"), many ? Y("Unwrap", Expr) : Expr));
+ auto apply = Y("Apply", Factory_, type, BuildLambda(Pos_, Y("row"), many ? Y("Unwrap", Expr_) : Expr_));
AddFactoryArguments(apply);
return apply;
}
void AddFactoryArguments(TNodePtr& apply) const final {
- apply = L(apply, Index);
+ apply = L(apply, Index_);
}
private:
- TSourcePtr FakeSource;
- TNodePtr Index;
+ TSourcePtr FakeSource_;
+ TNodePtr Index_;
};
TAggregationPtr BuildNthFactoryAggregation(TPosition pos, const TString& name, const TString& factory, EAggregateMode aggMode) {
diff --git a/yql/essentials/sql/v1/builtin.cpp b/yql/essentials/sql/v1/builtin.cpp
index 0a67e6645c1..80fe3c2a93a 100644
--- a/yql/essentials/sql/v1/builtin.cpp
+++ b/yql/essentials/sql/v1/builtin.cpp
@@ -68,22 +68,22 @@ class TGroupingNode final: public TAstListNode {
public:
TGroupingNode(TPosition pos, const TVector<TNodePtr>& args)
: TAstListNode(pos)
- , Args(args)
+ , Args_(args)
{}
bool DoInit(TContext& ctx, ISource* src) final {
if (!src) {
- ctx.Error(Pos) << "Grouping function should have source";
+ ctx.Error(Pos_) << "Grouping function should have source";
return false;
}
TVector<TString> columns;
- columns.reserve(Args.size());
+ columns.reserve(Args_.size());
const bool isJoin = src->GetJoin();
ISource* composite = src->GetCompositeSource();
- for (const auto& node: Args) {
+ for (const auto& node: Args_) {
auto namePtr = node->GetColumnName();
if (!namePtr || !*namePtr) {
- ctx.Error(Pos) << "GROUPING function should use columns as arguments";
+ ctx.Error(Pos_) << "GROUPING function should use columns as arguments";
return false;
}
TString column = *namePtr;
@@ -104,36 +104,36 @@ public:
if (!src->AddGrouping(ctx, columns, groupingColumn)) {
return false;
}
- Nodes.push_back(BuildAtom(Pos, "Member"));
- Nodes.push_back(BuildAtom(Pos, "row"));
- Nodes.push_back(BuildQuotedAtom(Pos, groupingColumn));
+ Nodes_.push_back(BuildAtom(Pos_, "Member"));
+ Nodes_.push_back(BuildAtom(Pos_, "row"));
+ Nodes_.push_back(BuildQuotedAtom(Pos_, groupingColumn));
return TAstListNode::DoInit(ctx, src);
}
TNodePtr DoClone() const final {
- return new TGroupingNode(Pos, CloneContainer(Args));
+ return new TGroupingNode(Pos_, CloneContainer(Args_));
}
private:
- const TVector<TNodePtr> Args;
+ const TVector<TNodePtr> Args_;
};
class TBasicAggrFunc final: public TAstListNode {
public:
TBasicAggrFunc(TPosition pos, const TString& name, TAggregationPtr aggr, const TVector<TNodePtr>& args)
: TAstListNode(pos)
- , Name(name)
- , Aggr(aggr)
- , Args(args)
+ , Name_(name)
+ , Aggr_(aggr)
+ , Args_(args)
{}
TCiString GetName() const {
- return Name;
+ return Name_;
}
bool DoInit(TContext& ctx, ISource* src) final {
if (!src) {
- ctx.Error(Pos) << "Unable to use aggregation function '" << Name << "' without data source";
+ ctx.Error(Pos_) << "Unable to use aggregation function '" << Name_ << "' without data source";
return false;
}
if (!DoInitAggregation(ctx, src)) {
@@ -144,11 +144,11 @@ public:
}
void CollectPreaggregateExprs(TContext& ctx, ISource& src, TVector<INode::TPtr>& exprs) override {
- if (Args.empty() || (Aggr->GetAggregationMode() != EAggregateMode::Distinct && Aggr->GetAggregationMode() != EAggregateMode::OverWindowDistinct)) {
+ if (Args_.empty() || (Aggr_->GetAggregationMode() != EAggregateMode::Distinct && Aggr_->GetAggregationMode() != EAggregateMode::OverWindowDistinct)) {
return;
}
- auto& expr = Args.front();
+ auto& expr = Args_.front();
// need to initialize expr before checking whether it is a column
auto clone = expr->Clone();
@@ -161,65 +161,65 @@ public:
return;
}
- auto tmpColumn = src.MakeLocalName("_yql_preagg_" + Name);
+ auto tmpColumn = src.MakeLocalName("_yql_preagg_" + Name_);
YQL_ENSURE(!expr->GetLabel());
expr->SetLabel(tmpColumn);
- PreaggregateExpr = expr;
- exprs.push_back(PreaggregateExpr);
+ PreaggregateExpr_ = expr;
+ exprs.push_back(PreaggregateExpr_);
expr = BuildColumn(expr->GetPos(), tmpColumn);
- Aggr->MarkKeyColumnAsGenerated();
+ Aggr_->MarkKeyColumnAsGenerated();
}
TNodePtr DoClone() const final {
- TAggregationPtr aggrClone = static_cast<IAggregation*>(Aggr->Clone().Release());
- return new TBasicAggrFunc(Pos, Name, aggrClone, CloneContainer(Args));
+ TAggregationPtr aggrClone = static_cast<IAggregation*>(Aggr_->Clone().Release());
+ return new TBasicAggrFunc(Pos_, Name_, aggrClone, CloneContainer(Args_));
}
TAggregationPtr GetAggregation() const override {
- return Aggr;
+ return Aggr_;
}
private:
bool DoInitAggregation(TContext& ctx, ISource* src) {
- if (PreaggregateExpr) {
- YQL_ENSURE(PreaggregateExpr->HasState(ENodeState::Initialized));
- if (PreaggregateExpr->IsAggregated() && !PreaggregateExpr->IsAggregationKey() && !Aggr->IsOverWindow()) {
- ctx.Error(Aggr->GetPos()) << "Aggregation of aggregated values is forbidden";
+ if (PreaggregateExpr_) {
+ YQL_ENSURE(PreaggregateExpr_->HasState(ENodeState::Initialized));
+ if (PreaggregateExpr_->IsAggregated() && !PreaggregateExpr_->IsAggregationKey() && !Aggr_->IsOverWindow()) {
+ ctx.Error(Aggr_->GetPos()) << "Aggregation of aggregated values is forbidden";
return false;
}
}
- if (!Aggr->InitAggr(ctx, false, src, *this, Args)) {
+ if (!Aggr_->InitAggr(ctx, false, src, *this, Args_)) {
return false;
}
- return src->AddAggregation(ctx, Aggr);
+ return src->AddAggregation(ctx, Aggr_);
}
void DoUpdateState() const final {
- State.Set(ENodeState::Const, !Args.empty() && AllOf(Args, [](const auto& arg){ return arg->IsConstant(); }));
- State.Set(ENodeState::Aggregated);
+ State_.Set(ENodeState::Const, !Args_.empty() && AllOf(Args_, [](const auto& arg){ return arg->IsConstant(); }));
+ State_.Set(ENodeState::Aggregated);
}
- TNodePtr PreaggregateExpr;
+ TNodePtr PreaggregateExpr_;
protected:
- const TString Name;
- TAggregationPtr Aggr;
- TVector<TNodePtr> Args;
+ const TString Name_;
+ TAggregationPtr Aggr_;
+ TVector<TNodePtr> Args_;
};
class TBasicAggrFactory final : public TAstListNode {
public:
TBasicAggrFactory(TPosition pos, const TString& name, TAggregationPtr aggr, const TVector<TNodePtr>& args)
: TAstListNode(pos)
- , Name(name)
- , Aggr(aggr)
- , Args(args)
+ , Name_(name)
+ , Aggr_(aggr)
+ , Args_(args)
{}
TCiString GetName() const {
- return Name;
+ return Name_;
}
bool DoInit(TContext& ctx, ISource* src) final {
@@ -227,48 +227,48 @@ public:
return false;
}
- auto factory = Aggr->AggregationTraitsFactory();
+ auto factory = Aggr_->AggregationTraitsFactory();
auto apply = Y("Apply", factory, Y("ListType", "type"));
- auto columnIndices = Aggr->GetFactoryColumnIndices();
+ auto columnIndices = Aggr_->GetFactoryColumnIndices();
if (columnIndices.size() == 1) {
apply = L(apply, "extractor");
} else {
// make several extractors from main that returns a tuple
for (ui32 arg = 0; arg < columnIndices.size(); ++arg) {
- auto partial = BuildLambda(Pos, Y("row"), Y("Nth", Y("Apply", "extractor", "row"), Q(ToString(columnIndices[arg]))));
+ auto partial = BuildLambda(Pos_, Y("row"), Y("Nth", Y("Apply", "extractor", "row"), Q(ToString(columnIndices[arg]))));
apply = L(apply, partial);
}
}
- Aggr->AddFactoryArguments(apply);
- Lambda = BuildLambda(Pos, Y("type", "extractor"), apply);
+ Aggr_->AddFactoryArguments(apply);
+ Lambda_ = BuildLambda(Pos_, Y("type", "extractor"), apply);
return TAstListNode::DoInit(ctx, src);
}
TAstNode* Translate(TContext& ctx) const override {
- return Lambda->Translate(ctx);
+ return Lambda_->Translate(ctx);
}
TNodePtr DoClone() const final {
- TAggregationPtr aggrClone = static_cast<IAggregation*>(Aggr->Clone().Release());
- return new TBasicAggrFactory(Pos, Name, aggrClone, CloneContainer(Args));
+ TAggregationPtr aggrClone = static_cast<IAggregation*>(Aggr_->Clone().Release());
+ return new TBasicAggrFactory(Pos_, Name_, aggrClone, CloneContainer(Args_));
}
TAggregationPtr GetAggregation() const override {
- return Aggr;
+ return Aggr_;
}
private:
bool DoInitAggregation(TContext& ctx) {
- return Aggr->InitAggr(ctx, true, nullptr, *this, Args);
+ return Aggr_->InitAggr(ctx, true, nullptr, *this, Args_);
}
protected:
- const TString Name;
- TAggregationPtr Aggr;
- TVector<TNodePtr> Args;
- TNodePtr Lambda;
+ const TString Name_;
+ TAggregationPtr Aggr_;
+ TVector<TNodePtr> Args_;
+ TNodePtr Lambda_;
};
typedef THolder<TBasicAggrFunc> TAggrFuncPtr;
@@ -277,58 +277,58 @@ class TLiteralStringAtom: public INode {
public:
TLiteralStringAtom(TPosition pos, TNodePtr node, const TString& info, const TString& prefix = {})
: INode(pos)
- , Node(node)
- , Info(info)
- , Prefix(prefix)
+ , Node_(node)
+ , Info_(info)
+ , Prefix_(prefix)
{
}
bool DoInit(TContext& ctx, ISource* src) override {
Y_UNUSED(src);
- if (!Node) {
- ctx.Error(Pos) << Info;
+ if (!Node_) {
+ ctx.Error(Pos_) << Info_;
return false;
}
- if (!Node->Init(ctx, src)) {
+ if (!Node_->Init(ctx, src)) {
return false;
}
- Atom = MakeAtomFromExpression(Pos, ctx, Node, Prefix).Build();
+ Atom_ = MakeAtomFromExpression(Pos_, ctx, Node_, Prefix_).Build();
return true;
}
bool IsLiteral() const override {
- return Atom ? Atom->IsLiteral() : false;
+ return Atom_ ? Atom_->IsLiteral() : false;
}
TString GetLiteralType() const override {
- return Atom ? Atom->GetLiteralType() : "";
+ return Atom_ ? Atom_->GetLiteralType() : "";
}
TString GetLiteralValue() const override {
- return Atom ? Atom->GetLiteralValue() : "";
+ return Atom_ ? Atom_->GetLiteralValue() : "";
}
TAstNode* Translate(TContext& ctx) const override {
- return Atom->Translate(ctx);
+ return Atom_->Translate(ctx);
}
TPtr DoClone() const final {
- return new TLiteralStringAtom(GetPos(), SafeClone(Node), Info, Prefix);
+ return new TLiteralStringAtom(GetPos(), SafeClone(Node_), Info_, Prefix_);
}
void DoUpdateState() const override {
- YQL_ENSURE(Atom);
- State.Set(ENodeState::Const, Atom->IsConstant());
- State.Set(ENodeState::Aggregated, Atom->IsAggregated());
- State.Set(ENodeState::OverWindow, Atom->IsOverWindow());
+ YQL_ENSURE(Atom_);
+ State_.Set(ENodeState::Const, Atom_->IsConstant());
+ State_.Set(ENodeState::Aggregated, Atom_->IsAggregated());
+ State_.Set(ENodeState::OverWindow, Atom_->IsOverWindow());
}
private:
- TNodePtr Node;
- TNodePtr Atom;
- TString Info;
- TString Prefix;
+ TNodePtr Node_;
+ TNodePtr Atom_;
+ TString Info_;
+ TString Prefix_;
};
class TYqlAsAtom: public TLiteralStringAtom {
@@ -349,54 +349,54 @@ public:
bool DoInit(TContext& ctx, ISource* src) override {
auto slot = NUdf::FindDataSlot(GetOpName());
if (!slot) {
- ctx.Error(Pos) << "Unexpected type " << GetOpName();
+ ctx.Error(Pos_) << "Unexpected type " << GetOpName();
return false;
}
if (*slot == NUdf::EDataSlot::Decimal) {
- MinArgs = MaxArgs = 3;
+ MinArgs_ = MaxArgs_ = 3;
}
if (!ValidateArguments(ctx)) {
return false;
}
- auto stringNode = Args[0];
+ auto stringNode = Args_[0];
auto atom = stringNode->GetLiteral("String");
if (!atom) {
- ctx.Error(Pos) << "Expected literal string as argument in " << GetOpName() << " function";
+ ctx.Error(Pos_) << "Expected literal string as argument in " << GetOpName() << " function";
return false;
}
TString value;
if (*slot == NUdf::EDataSlot::Decimal) {
- const auto precision = Args[1]->GetLiteral("Int32");
- const auto scale = Args[2]->GetLiteral("Int32");
+ const auto precision = Args_[1]->GetLiteral("Int32");
+ const auto scale = Args_[2]->GetLiteral("Int32");
if (!NKikimr::NMiniKQL::IsValidDecimal(*atom)) {
- ctx.Error(Pos) << "Invalid value " << atom->Quote() << " for type " << GetOpName();
+ ctx.Error(Pos_) << "Invalid value " << atom->Quote() << " for type " << GetOpName();
return false;
}
ui8 stub;
if (!(precision && TryFromString<ui8>(*precision, stub))) {
- ctx.Error(Pos) << "Invalid precision " << (precision ? precision->Quote() : "") << " for type " << GetOpName();
+ ctx.Error(Pos_) << "Invalid precision " << (precision ? precision->Quote() : "") << " for type " << GetOpName();
return false;
}
if (!(scale && TryFromString<ui8>(*scale, stub))) {
- ctx.Error(Pos) << "Invalid scale " << (scale ? scale->Quote() : "") << " for type " << GetOpName();
+ ctx.Error(Pos_) << "Invalid scale " << (scale ? scale->Quote() : "") << " for type " << GetOpName();
return false;
}
- Args[0] = BuildQuotedAtom(GetPos(), *atom);
- Args[1] = BuildQuotedAtom(GetPos(), *precision);
- Args[2] = BuildQuotedAtom(GetPos(), *scale);
+ Args_[0] = BuildQuotedAtom(GetPos(), *atom);
+ Args_[1] = BuildQuotedAtom(GetPos(), *precision);
+ Args_[2] = BuildQuotedAtom(GetPos(), *scale);
return TCallNode::DoInit(ctx, src);
} else if (NUdf::GetDataTypeInfo(*slot).Features & (NUdf::DateType | NUdf::TzDateType | NUdf::TimeIntervalType)) {
const auto out = NKikimr::NMiniKQL::ValueFromString(*slot, *atom);
if (!out) {
- ctx.Error(Pos) << "Invalid value " << atom->Quote() << " for type " << GetOpName();
+ ctx.Error(Pos_) << "Invalid value " << atom->Quote() << " for type " << GetOpName();
return false;
}
@@ -427,7 +427,7 @@ public:
case NUdf::EDataSlot::Interval64:
value = ToString(out.Get<i64>());
if ('T' == atom->back()) {
- ctx.Error(Pos) << "Time prefix 'T' at end of interval constant. The designator 'T' shall be absent if all of the time components are absent.";
+ ctx.Error(Pos_) << "Time prefix 'T' at end of interval constant. The designator 'T' shall be absent if all of the time components are absent.";
return false;
}
break;
@@ -442,26 +442,26 @@ public:
} else if (NUdf::EDataSlot::Uuid == *slot) {
char out[0x10];
if (!NKikimr::NMiniKQL::ParseUuid(*atom, out)) {
- ctx.Error(Pos) << "Invalid value " << atom->Quote() << " for type " << GetOpName();
+ ctx.Error(Pos_) << "Invalid value " << atom->Quote() << " for type " << GetOpName();
return false;
}
value.assign(out, sizeof(out));
} else {
if (!NKikimr::NMiniKQL::IsValidStringValue(*slot, *atom)) {
- ctx.Error(Pos) << "Invalid value " << atom->Quote() << " for type " << GetOpName();
+ ctx.Error(Pos_) << "Invalid value " << atom->Quote() << " for type " << GetOpName();
return false;
}
value = *atom;
}
- Args[0] = BuildQuotedAtom(GetPos(), value);
+ Args_[0] = BuildQuotedAtom(GetPos(), value);
return TCallNode::DoInit(ctx, src);
}
TPtr DoClone() const final {
- return new TYqlData(GetPos(), OpName, CloneContainer(Args));
+ return new TYqlData(GetPos(), OpName_, CloneContainer(Args_));
}
};
@@ -469,8 +469,8 @@ class TTableName : public TCallNode {
public:
TTableName(TPosition pos, const TVector<TNodePtr>& args, const TString& service)
: TCallNode(pos, "TableName", 0, 2, args)
- , Service(service)
- , EmptyArgs(args.empty())
+ , Service_(service)
+ , EmptyArgs_(args.empty())
{
}
@@ -479,86 +479,86 @@ public:
return false;
}
- if (Args.empty()) {
+ if (Args_.empty()) {
if (!src) {
- ctx.Error(Pos) << "Unable to use TableName() without source";
+ ctx.Error(Pos_) << "Unable to use TableName() without source";
return false;
}
// TODO: TablePath() and TableRecordIndex() have more strict limitations
if (src->GetJoin()) {
- ctx.Warning(Pos,
+ ctx.Warning(Pos_,
TIssuesIds::YQL_EMPTY_TABLENAME_RESULT) << "TableName() may produce empty result when used in ambiguous context (with JOIN)";
}
if (src->HasAggregations()) {
- ctx.Warning(Pos,
+ ctx.Warning(Pos_,
TIssuesIds::YQL_EMPTY_TABLENAME_RESULT) << "TableName() will produce empty result when used with aggregation.\n"
"Please consult documentation for possible workaround";
}
- Args.push_back(Y("TablePath", Y("DependsOn", "row")));
+ Args_.push_back(Y("TablePath", Y("DependsOn", "row")));
}
- if (Args.size() == 2) {
- auto literal = Args[1]->GetLiteral("String");
+ if (Args_.size() == 2) {
+ auto literal = Args_[1]->GetLiteral("String");
if (!literal) {
- ctx.Error(Args[1]->GetPos()) << "Expected literal string as second argument in TableName function";
+ ctx.Error(Args_[1]->GetPos()) << "Expected literal string as second argument in TableName function";
return false;
}
- Args[1] = BuildQuotedAtom(Args[1]->GetPos(), *literal);
+ Args_[1] = BuildQuotedAtom(Args_[1]->GetPos(), *literal);
} else {
- if (Service.empty()) {
+ if (Service_.empty()) {
ctx.Error(GetPos()) << GetOpName() << " requires either service name as second argument or current cluster name";
return false;
}
- Args.push_back(BuildQuotedAtom(GetPos(), Service));
+ Args_.push_back(BuildQuotedAtom(GetPos(), Service_));
}
return TCallNode::DoInit(ctx, src);
}
TPtr DoClone() const final {
- return new TTableName(GetPos(), CloneContainer(Args), Service);
+ return new TTableName(GetPos(), CloneContainer(Args_), Service_);
}
void DoUpdateState() const override {
- if (EmptyArgs) {
- State.Set(ENodeState::Const, false);
+ if (EmptyArgs_) {
+ State_.Set(ENodeState::Const, false);
} else {
TCallNode::DoUpdateState();
}
}
private:
- TString Service;
- const bool EmptyArgs;
+ TString Service_;
+ const bool EmptyArgs_;
};
class TYqlParseType final : public INode {
public:
TYqlParseType(TPosition pos, const TVector<TNodePtr>& args)
: INode(pos)
- , Args(args)
+ , Args_(args)
{}
TAstNode* Translate(TContext& ctx) const override {
- if (Args.size() != 1) {
- ctx.Error(Pos) << "Expected 1 argument in ParseType function";
+ if (Args_.size() != 1) {
+ ctx.Error(Pos_) << "Expected 1 argument in ParseType function";
return nullptr;
}
- auto literal = Args[0]->GetLiteral("String");
+ auto literal = Args_[0]->GetLiteral("String");
if (!literal) {
- ctx.Error(Args[0]->GetPos()) << "Expected literal string as argument in ParseType function";
+ ctx.Error(Args_[0]->GetPos()) << "Expected literal string as argument in ParseType function";
return nullptr;
}
- auto parsed = ParseType(*literal, *ctx.Pool, ctx.Issues, Args[0]->GetPos());
+ auto parsed = ParseType(*literal, *ctx.Pool, ctx.Issues, Args_[0]->GetPos());
if (!parsed) {
- ctx.Error(Args[0]->GetPos()) << "Failed to parse type";
+ ctx.Error(Args_[0]->GetPos()) << "Failed to parse type";
return nullptr;
}
@@ -566,14 +566,14 @@ public:
}
TNodePtr DoClone() const final {
- return new TYqlParseType(Pos, CloneContainer(Args));
+ return new TYqlParseType(Pos_, CloneContainer(Args_));
}
void DoUpdateState() const final {
- State.Set(ENodeState::Const);
+ State_.Set(ENodeState::Const);
}
private:
- TVector<TNodePtr> Args;
+ TVector<TNodePtr> Args_;
};
class TYqlAddTimezone: public TCallNode {
@@ -588,12 +588,12 @@ public:
return false;
}
- Args[1] = Y("TimezoneId", Args[1]);
+ Args_[1] = Y("TimezoneId", Args_[1]);
return TCallNode::DoInit(ctx, src);
}
TNodePtr DoClone() const final {
- return new TYqlAddTimezone(Pos, CloneContainer(Args));
+ return new TYqlAddTimezone(Pos_, CloneContainer(Args_));
}
};
@@ -610,22 +610,22 @@ public:
}
ui32 oid;
- if (Args[0]->IsIntegerLiteral() && TryFromString<ui32>(Args[0]->GetLiteralValue(), oid)) {
+ if (Args_[0]->IsIntegerLiteral() && TryFromString<ui32>(Args_[0]->GetLiteralValue(), oid)) {
if (!NPg::HasType(oid)) {
- ctx.Error(Args[0]->GetPos()) << "Unknown pg type oid: " << oid;
+ ctx.Error(Args_[0]->GetPos()) << "Unknown pg type oid: " << oid;
return false;
} else {
- Args[0] = BuildQuotedAtom(Args[0]->GetPos(), NPg::LookupType(oid).Name);
+ Args_[0] = BuildQuotedAtom(Args_[0]->GetPos(), NPg::LookupType(oid).Name);
}
- } else if (Args[0]->IsLiteral() && Args[0]->GetLiteralType() == "String") {
- if (!NPg::HasType(Args[0]->GetLiteralValue())) {
- ctx.Error(Args[0]->GetPos()) << "Unknown pg type: " << Args[0]->GetLiteralValue();
+ } else if (Args_[0]->IsLiteral() && Args_[0]->GetLiteralType() == "String") {
+ if (!NPg::HasType(Args_[0]->GetLiteralValue())) {
+ ctx.Error(Args_[0]->GetPos()) << "Unknown pg type: " << Args_[0]->GetLiteralValue();
return false;
} else {
- Args[0] = BuildQuotedAtom(Args[0]->GetPos(), Args[0]->GetLiteralValue());
+ Args_[0] = BuildQuotedAtom(Args_[0]->GetPos(), Args_[0]->GetLiteralValue());
}
} else {
- ctx.Error(Args[0]->GetPos()) << "Expecting string literal with pg type name or integer literal with pg type oid";
+ ctx.Error(Args_[0]->GetPos()) << "Expecting string literal with pg type name or integer literal with pg type oid";
return false;
}
@@ -634,7 +634,7 @@ public:
TNodePtr DoClone() const final {
- return new TYqlPgType(Pos, CloneContainer(Args));
+ return new TYqlPgType(Pos_, CloneContainer(Args_));
}
};
@@ -650,38 +650,38 @@ public:
return false;
}
- if (!Args[0]->Init(ctx, src)) {
+ if (!Args_[0]->Init(ctx, src)) {
return false;
}
- if (Args[0]->IsLiteral()) {
- Args[0] = BuildQuotedAtom(Args[0]->GetPos(), Args[0]->GetLiteralValue());
+ if (Args_[0]->IsLiteral()) {
+ Args_[0] = BuildQuotedAtom(Args_[0]->GetPos(), Args_[0]->GetLiteralValue());
} else {
- auto value = MakeAtomFromExpression(Pos, ctx, Args[0]).Build();
- Args[0] = value;
+ auto value = MakeAtomFromExpression(Pos_, ctx, Args_[0]).Build();
+ Args_[0] = value;
}
- if (Args.size() > 2) {
+ if (Args_.size() > 2) {
TVector<TNodePtr> typeModArgs;
- typeModArgs.push_back(Args[1]);
- for (ui32 i = 2; i < Args.size(); ++i) {
- if (!Args[i]->IsLiteral()) {
- ctx.Error(Args[i]->GetPos()) << "Expecting literal";
+ typeModArgs.push_back(Args_[1]);
+ for (ui32 i = 2; i < Args_.size(); ++i) {
+ if (!Args_[i]->IsLiteral()) {
+ ctx.Error(Args_[i]->GetPos()) << "Expecting literal";
return false;
}
- typeModArgs.push_back(BuildQuotedAtom(Args[i]->GetPos(), Args[i]->GetLiteralValue()));
+ typeModArgs.push_back(BuildQuotedAtom(Args_[i]->GetPos(), Args_[i]->GetLiteralValue()));
}
- Args.erase(Args.begin() + 2, Args.end());
- Args.push_back(new TCallNodeImpl(Pos, "PgTypeMod", typeModArgs));
+ Args_.erase(Args_.begin() + 2, Args_.end());
+ Args_.push_back(new TCallNodeImpl(Pos_, "PgTypeMod", typeModArgs));
}
return TCallNode::DoInit(ctx, src);
}
TNodePtr DoClone() const final {
- return new TYqlPgConst(Pos, CloneContainer(Args));
+ return new TYqlPgConst(Pos_, CloneContainer(Args_));
}
};
@@ -697,27 +697,27 @@ public:
return false;
}
- if (Args.size() > 2) {
+ if (Args_.size() > 2) {
TVector<TNodePtr> typeModArgs;
- typeModArgs.push_back(Args[1]);
- for (ui32 i = 2; i < Args.size(); ++i) {
- if (!Args[i]->IsLiteral()) {
- ctx.Error(Args[i]->GetPos()) << "Expecting literal";
+ typeModArgs.push_back(Args_[1]);
+ for (ui32 i = 2; i < Args_.size(); ++i) {
+ if (!Args_[i]->IsLiteral()) {
+ ctx.Error(Args_[i]->GetPos()) << "Expecting literal";
return false;
}
- typeModArgs.push_back(BuildQuotedAtom(Args[i]->GetPos(), Args[i]->GetLiteralValue()));
+ typeModArgs.push_back(BuildQuotedAtom(Args_[i]->GetPos(), Args_[i]->GetLiteralValue()));
}
- Args.erase(Args.begin() + 2, Args.end());
- Args.push_back(new TCallNodeImpl(Pos, "PgTypeMod", typeModArgs));
+ Args_.erase(Args_.begin() + 2, Args_.end());
+ Args_.push_back(new TCallNodeImpl(Pos_, "PgTypeMod", typeModArgs));
}
return TCallNode::DoInit(ctx, src);
}
TNodePtr DoClone() const final {
- return new TYqlPgCast(Pos, CloneContainer(Args));
+ return new TYqlPgCast(Pos_, CloneContainer(Args_));
}
};
@@ -733,21 +733,21 @@ public:
return false;
}
- if (!Args[0]->Init(ctx, src)) {
+ if (!Args_[0]->Init(ctx, src)) {
return false;
}
- if (!Args[0]->IsLiteral() || Args[0]->GetLiteralType() != "String") {
- ctx.Error(Args[0]->GetPos()) << "Expecting string literal as first argument";
+ if (!Args_[0]->IsLiteral() || Args_[0]->GetLiteralType() != "String") {
+ ctx.Error(Args_[0]->GetPos()) << "Expecting string literal as first argument";
return false;
}
- Args[0] = BuildQuotedAtom(Args[0]->GetPos(), Args[0]->GetLiteralValue());
+ Args_[0] = BuildQuotedAtom(Args_[0]->GetPos(), Args_[0]->GetLiteralValue());
return TCallNode::DoInit(ctx, src);
}
TNodePtr DoClone() const final {
- return new TYqlPgOp(Pos, CloneContainer(Args));
+ return new TYqlPgOp(Pos_, CloneContainer(Args_));
}
};
@@ -764,22 +764,22 @@ public:
return false;
}
- if (!Args[0]->Init(ctx, src)) {
+ if (!Args_[0]->Init(ctx, src)) {
return false;
}
- if (!Args[0]->IsLiteral() || Args[0]->GetLiteralType() != "String") {
- ctx.Error(Args[0]->GetPos()) << "Expecting string literal as first argument";
+ if (!Args_[0]->IsLiteral() || Args_[0]->GetLiteralType() != "String") {
+ ctx.Error(Args_[0]->GetPos()) << "Expecting string literal as first argument";
return false;
}
- Args[0] = BuildQuotedAtom(Args[0]->GetPos(), Args[0]->GetLiteralValue());
- Args.insert(Args.begin() + 1, RangeFunction ? Q(Y(Q(Y(Q("range"))))) : Q(Y()));
+ Args_[0] = BuildQuotedAtom(Args_[0]->GetPos(), Args_[0]->GetLiteralValue());
+ Args_.insert(Args_.begin() + 1, RangeFunction ? Q(Y(Q(Y(Q("range"))))) : Q(Y()));
return TCallNode::DoInit(ctx, src);
}
TNodePtr DoClone() const final {
- return new TYqlPgCall<RangeFunction>(Pos, CloneContainer(Args));
+ return new TYqlPgCall<RangeFunction>(Pos_, CloneContainer(Args_));
}
};
@@ -796,12 +796,12 @@ public:
return false;
}
- Args[0] = Y("EvaluateExpr", Args[0]);
+ Args_[0] = Y("EvaluateExpr", Args_[0]);
return TCallNode::DoInit(ctx, src);
}
TNodePtr DoClone() const final {
- return new TYqlSubqueryFor<Name>(Pos, CloneContainer(Args));
+ return new TYqlSubqueryFor<Name>(Pos_, CloneContainer(Args_));
}
};
@@ -818,12 +818,12 @@ public:
return false;
}
- Args[1] = Y("EvaluateExpr", Args[1]);
+ Args_[1] = Y("EvaluateExpr", Args_[1]);
return TCallNode::DoInit(ctx, src);
}
TNodePtr DoClone() const final {
- return new TYqlSubqueryOrderBy<Name>(Pos, CloneContainer(Args));
+ return new TYqlSubqueryOrderBy<Name>(Pos_, CloneContainer(Args_));
}
};
@@ -841,23 +841,23 @@ public:
return false;
}
- if (!Args[1]->Init(ctx, src)) {
+ if (!Args_[1]->Init(ctx, src)) {
return false;
}
- if (Args.size() == 3) {
- if (!Args[2]->Init(ctx, src)) {
+ if (Args_.size() == 3) {
+ if (!Args_[2]->Init(ctx, src)) {
return false;
}
- auto message = MakeAtomFromExpression(Pos, ctx, Args[2]).Build();
- Args[2] = message;
+ auto message = MakeAtomFromExpression(Pos_, ctx, Args_[2]).Build();
+ Args_[2] = message;
}
return TCallNode::DoInit(ctx, src);
}
TNodePtr DoClone() const final {
- return new TYqlTypeAssert<Strict>(Pos, CloneContainer(Args));
+ return new TYqlTypeAssert<Strict>(Pos_, CloneContainer(Args_));
}
};
@@ -872,16 +872,16 @@ public:
return false;
}
- if (!Args[1]->Init(ctx, src)) {
+ if (!Args_[1]->Init(ctx, src)) {
return false;
}
- Args[1] = MakeAtomFromExpression(Pos, ctx, Y("FormatType", Args[1])).Build();
+ Args_[1] = MakeAtomFromExpression(Pos_, ctx, Y("FormatType", Args_[1])).Build();
return TCallNode::DoInit(ctx, src);
}
TNodePtr DoClone() const final {
- return new TFromBytes(Pos, CloneContainer(Args));
+ return new TFromBytes(Pos_, CloneContainer(Args_));
}
};
@@ -896,11 +896,11 @@ public:
return false;
}
- if (!Args[1]->Init(ctx, src)) {
+ if (!Args_[1]->Init(ctx, src)) {
return false;
}
- Args[1] = MakeAtomFromExpression(Pos, ctx, Args[1]).Build();
+ Args_[1] = MakeAtomFromExpression(Pos_, ctx, Args_[1]).Build();
return TCallNode::DoInit(ctx, src);
}
};
@@ -912,7 +912,7 @@ public:
{}
TNodePtr DoClone() const final {
- return new TYqlAsTagged(Pos, CloneContainer(Args));
+ return new TYqlAsTagged(Pos_, CloneContainer(Args_));
}
};
@@ -923,7 +923,7 @@ public:
{}
TNodePtr DoClone() const final {
- return new TYqlUntag(Pos, CloneContainer(Args));
+ return new TYqlUntag(Pos_, CloneContainer(Args_));
}
};
@@ -938,16 +938,16 @@ public:
return false;
}
- if (!Args[1]->Init(ctx, src)) {
+ if (!Args_[1]->Init(ctx, src)) {
return false;
}
- Args[1] = MakeAtomFromExpression(Pos, ctx, Args[1]).Build();
+ Args_[1] = MakeAtomFromExpression(Pos_, ctx, Args_[1]).Build();
return TCallNode::DoInit(ctx, src);
}
TNodePtr DoClone() const final {
- return new TYqlVariant(Pos, CloneContainer(Args));
+ return new TYqlVariant(Pos_, CloneContainer(Args_));
}
};
@@ -962,16 +962,16 @@ public:
return false;
}
- if (!Args[0]->Init(ctx, src)) {
+ if (!Args_[0]->Init(ctx, src)) {
return false;
}
- Args[0] = MakeAtomFromExpression(Pos, ctx, Args[0]).Build();
+ Args_[0] = MakeAtomFromExpression(Pos_, ctx, Args_[0]).Build();
return TCallNode::DoInit(ctx, src);
}
TNodePtr DoClone() const final {
- return new TYqlEnum(Pos, CloneContainer(Args));
+ return new TYqlEnum(Pos_, CloneContainer(Args_));
}
};
@@ -986,16 +986,16 @@ public:
return false;
}
- if (!Args[1]->Init(ctx, src)) {
+ if (!Args_[1]->Init(ctx, src)) {
return false;
}
- Args[1] = MakeAtomFromExpression(Pos, ctx, Args[1]).Build();
+ Args_[1] = MakeAtomFromExpression(Pos_, ctx, Args_[1]).Build();
return TCallNode::DoInit(ctx, src);
}
TNodePtr DoClone() const final {
- return new TYqlAsVariant(Pos, CloneContainer(Args));
+ return new TYqlAsVariant(Pos_, CloneContainer(Args_));
}
};
@@ -1010,16 +1010,16 @@ public:
return false;
}
- if (!Args[0]->Init(ctx, src)) {
+ if (!Args_[0]->Init(ctx, src)) {
return false;
}
- Args[0] = MakeAtomFromExpression(Pos, ctx, Args[0]).Build();
+ Args_[0] = MakeAtomFromExpression(Pos_, ctx, Args_[0]).Build();
return TCallNode::DoInit(ctx, src);
}
TNodePtr DoClone() const final {
- return new TYqlAsEnum(Pos, CloneContainer(Args));
+ return new TYqlAsEnum(Pos_, CloneContainer(Args_));
}
};
@@ -1035,26 +1035,26 @@ public:
{}
bool DoInit(TContext& ctx, ISource* src) override {
- if (!Args.empty()) {
- Args[0] = BuildFileNameArgument(Pos, Args[0], IsFile ? ctx.Settings.FileAliasPrefix : TString());
+ if (!Args_.empty()) {
+ Args_[0] = BuildFileNameArgument(Pos_, Args_[0], IsFile ? ctx.Settings.FileAliasPrefix : TString());
}
return TCallNode::DoInit(ctx, src);
}
TNodePtr DoClone() const final {
- return new TDerived(Pos, OpName, CloneContainer(Args));
+ return new TDerived(Pos_, OpName_, CloneContainer(Args_));
}
bool IsLiteral() const override {
- return !Args.empty() ? Args[0]->IsLiteral() : false;
+ return !Args_.empty() ? Args_[0]->IsLiteral() : false;
}
TString GetLiteralType() const override {
- return !Args.empty() ? Args[0]->GetLiteralType() : "";
+ return !Args_.empty() ? Args_[0]->GetLiteralType() : "";
}
TString GetLiteralValue() const override {
- return !Args.empty() ? Args[0]->GetLiteralValue() : "";
+ return !Args_.empty() ? Args_[0]->GetLiteralValue() : "";
}
};
@@ -1077,21 +1077,21 @@ public:
{}
bool DoInit(TContext& ctx, ISource* src) override {
- if (Args.size() != 3) {
- ctx.Error(Pos) << OpName << " requires exactly three arguments";
+ if (Args_.size() != 3) {
+ ctx.Error(Pos_) << OpName_ << " requires exactly three arguments";
return false;
}
- for (const auto& arg : Args) {
+ for (const auto& arg : Args_) {
if (!arg->Init(ctx, src)) {
return false;
}
}
- Args[1] = MakeAtomFromExpression(Pos, ctx, Args[1]).Build();
+ Args_[1] = MakeAtomFromExpression(Pos_, ctx, Args_[1]).Build();
return TCallNode::DoInit(ctx, src);
}
TNodePtr DoClone() const final {
- return new TTryMember(Pos, OpName, CloneContainer(Args));
+ return new TTryMember(Pos_, OpName_, CloneContainer(Args_));
}
};
@@ -1103,22 +1103,22 @@ public:
{}
bool DoInit(TContext& ctx, ISource* src) override {
- if (Args.size() != 2) {
- ctx.Error(Pos) << OpName << " requires exactly 2 arguments";
+ if (Args_.size() != 2) {
+ ctx.Error(Pos_) << OpName_ << " requires exactly 2 arguments";
return false;
}
- for (const auto& arg : Args) {
+ for (const auto& arg : Args_) {
if (!arg->Init(ctx, src)) {
return false;
}
}
- Args.push_back(Q(Pretty ? "true" : "false"));
- OpName = "FormatTypeDiff";
+ Args_.push_back(Q(Pretty ? "true" : "false"));
+ OpName_ = "FormatTypeDiff";
return TCallNode::DoInit(ctx, src);
}
TNodePtr DoClone() const final {
- return new TFormatTypeDiff<Pretty>(GetPos(), OpName, CloneContainer(Args));
+ return new TFormatTypeDiff<Pretty>(GetPos(), OpName_, CloneContainer(Args_));
}
};
@@ -1129,21 +1129,21 @@ public:
{}
bool DoInit(TContext& ctx, ISource* src) override {
- if (Args.size() != 3) {
- ctx.Error(Pos) << OpName << " requires exactly three arguments";
+ if (Args_.size() != 3) {
+ ctx.Error(Pos_) << OpName_ << " requires exactly three arguments";
return false;
}
- for (const auto& arg : Args) {
+ for (const auto& arg : Args_) {
if (!arg->Init(ctx, src)) {
return false;
}
}
- Args[1] = MakeAtomFromExpression(Pos, ctx, Args[1]).Build();
+ Args_[1] = MakeAtomFromExpression(Pos_, ctx, Args_[1]).Build();
return TCallNode::DoInit(ctx, src);
}
TNodePtr DoClone() const final {
- return new TAddMember(Pos, OpName, CloneContainer(Args));
+ return new TAddMember(Pos_, OpName_, CloneContainer(Args_));
}
};
@@ -1154,21 +1154,21 @@ public:
{}
bool DoInit(TContext& ctx, ISource* src) override {
- if (Args.size() != 2) {
- ctx.Error(Pos) << OpName << " requires exactly two arguments";
+ if (Args_.size() != 2) {
+ ctx.Error(Pos_) << OpName_ << " requires exactly two arguments";
return false;
}
- for (const auto& arg : Args) {
+ for (const auto& arg : Args_) {
if (!arg->Init(ctx, src)) {
return false;
}
}
- Args[1] = MakeAtomFromExpression(Pos, ctx, Args[1]).Build();
+ Args_[1] = MakeAtomFromExpression(Pos_, ctx, Args_[1]).Build();
return TCallNode::DoInit(ctx, src);
}
TNodePtr DoClone() const final {
- return new TRemoveMember(Pos, OpName, CloneContainer(Args));
+ return new TRemoveMember(Pos_, OpName_, CloneContainer(Args_));
}
};
@@ -1179,18 +1179,18 @@ public:
{}
bool DoInit(TContext& ctx, ISource* src) override {
- if (Args.empty()) {
- ctx.Error(Pos) << "CombineMembers requires at least one argument";
+ if (Args_.empty()) {
+ ctx.Error(Pos_) << "CombineMembers requires at least one argument";
return false;
}
- for (size_t i = 0; i < Args.size(); ++i) {
- Args[i] = Q(Y(Q(""), Args[i])); // flatten without prefix
+ for (size_t i = 0; i < Args_.size(); ++i) {
+ Args_[i] = Q(Y(Q(""), Args_[i])); // flatten without prefix
}
return TCallNode::DoInit(ctx, src);
}
TNodePtr DoClone() const final {
- return new TCombineMembers(Pos, OpName, CloneContainer(Args));
+ return new TCombineMembers(Pos_, OpName_, CloneContainer(Args_));
}
};
@@ -1201,22 +1201,22 @@ public:
{}
bool DoInit(TContext& ctx, ISource* src) override {
- if (Args.empty()) {
- ctx.Error(Pos) << OpName << " requires at least one argument";
+ if (Args_.empty()) {
+ ctx.Error(Pos_) << OpName_ << " requires at least one argument";
return false;
}
- for (size_t i = 0; i < Args.size(); ++i) {
- if (!Args[i]->Init(ctx, src)) {
+ for (size_t i = 0; i < Args_.size(); ++i) {
+ if (!Args_[i]->Init(ctx, src)) {
return false;
}
- if (Args[i]->GetTupleSize() == 2) {
+ if (Args_[i]->GetTupleSize() == 2) {
// flatten with prefix
- Args[i] = Q(Y(
- MakeAtomFromExpression(Pos, ctx, Args[i]->GetTupleElement(0)).Build(),
- Args[i]->GetTupleElement(1)
+ Args_[i] = Q(Y(
+ MakeAtomFromExpression(Pos_, ctx, Args_[i]->GetTupleElement(0)).Build(),
+ Args_[i]->GetTupleElement(1)
));
} else {
- ctx.Error(Pos) << OpName << " requires arguments to be tuples of size 2: prefix and struct";
+ ctx.Error(Pos_) << OpName_ << " requires arguments to be tuples of size 2: prefix and struct";
return false;
}
}
@@ -1224,7 +1224,7 @@ public:
}
TNodePtr DoClone() const final {
- return new TFlattenMembers(Pos, OpName, CloneContainer(Args));
+ return new TFlattenMembers(Pos_, OpName_, CloneContainer(Args_));
}
};
@@ -1289,15 +1289,15 @@ public:
if (!dataTypeStringNode) {
return false;
}
- auto aliasNode = BuildFileNameArgument(Args[1]->GetPos(), Args[1], ctx.Settings.FileAliasPrefix);
- OpName = "Apply";
- Args[0] = Y("Udf", Q("File.ByLines"), Y("Void"),
+ auto aliasNode = BuildFileNameArgument(Args_[1]->GetPos(), Args_[1], ctx.Settings.FileAliasPrefix);
+ OpName_ = "Apply";
+ Args_[0] = Y("Udf", Q("File.ByLines"), Y("Void"),
Y("TupleType",
Y("TupleType", Y("DataType", dataTypeStringNode)),
Y("StructType"),
Y("TupleType")));
- Args[1] = Y("FilePath", aliasNode);
+ Args_[1] = Y("FilePath", aliasNode);
return TCallNode::DoInit(ctx, src);
}
@@ -1306,7 +1306,7 @@ public:
}
TNodePtr DoClone() const final {
- return new TYqlParseFileOp(Pos, CloneContainer(Args));
+ return new TYqlParseFileOp(Pos_, CloneContainer(Args_));
}
};
@@ -1315,7 +1315,7 @@ public:
TYqlDataType(TPosition pos, const TVector<TNodePtr>& args)
: TCallNode(pos, "DataType", 1, 3, args)
{
- FakeSource = BuildFakeSource(pos);
+ FakeSource_ = BuildFakeSource(pos);
}
bool DoInit(TContext& ctx, ISource* src) override {
@@ -1323,23 +1323,23 @@ public:
return false;
}
- for (ui32 i = 0; i < Args.size(); ++i) {
- if (!Args[i]->Init(ctx, FakeSource.Get())) {
+ for (ui32 i = 0; i < Args_.size(); ++i) {
+ if (!Args_[i]->Init(ctx, FakeSource_.Get())) {
return false;
}
- Args[i] = MakeAtomFromExpression(Pos, ctx, Args[i]).Build();
+ Args_[i] = MakeAtomFromExpression(Pos_, ctx, Args_[i]).Build();
}
return TCallNode::DoInit(ctx, src);
}
TNodePtr DoClone() const final {
- return new TYqlDataType(Pos, CloneContainer(Args));
+ return new TYqlDataType(Pos_, CloneContainer(Args_));
}
private:
- TSourcePtr FakeSource;
+ TSourcePtr FakeSource_;
};
class TYqlResourceType final : public TCallNode {
@@ -1353,16 +1353,16 @@ public:
return false;
}
- if (!Args[0]->Init(ctx, src)) {
+ if (!Args_[0]->Init(ctx, src)) {
return false;
}
- Args[0] = MakeAtomFromExpression(Pos, ctx, Args[0]).Build();
+ Args_[0] = MakeAtomFromExpression(Pos_, ctx, Args_[0]).Build();
return TCallNode::DoInit(ctx, src);
}
TNodePtr DoClone() const final {
- return new TYqlResourceType(Pos, CloneContainer(Args));
+ return new TYqlResourceType(Pos_, CloneContainer(Args_));
}
};
@@ -1377,16 +1377,16 @@ public:
return false;
}
- if (!Args[1]->Init(ctx, src)) {
+ if (!Args_[1]->Init(ctx, src)) {
return false;
}
- Args[1] = MakeAtomFromExpression(Pos, ctx, Args[1]).Build();
+ Args_[1] = MakeAtomFromExpression(Pos_, ctx, Args_[1]).Build();
return TCallNode::DoInit(ctx, src);
}
TNodePtr DoClone() const final {
- return new TYqlTaggedType(Pos, CloneContainer(Args));
+ return new TYqlTaggedType(Pos_, CloneContainer(Args_));
}
};
@@ -1401,23 +1401,23 @@ public:
return false;
}
- if (!Args[0]->GetTupleNode()) {
+ if (!Args_[0]->GetTupleNode()) {
ui32 numOptArgs;
- if (!Parseui32(Args[0], numOptArgs)) {
- ctx.Error(Args[0]->GetPos()) << "Expected either tuple or number of optional arguments";
+ if (!Parseui32(Args_[0], numOptArgs)) {
+ ctx.Error(Args_[0]->GetPos()) << "Expected either tuple or number of optional arguments";
return false;
}
- Args[0] = Q(Y(BuildQuotedAtom(Args[0]->GetPos(), ToString(numOptArgs))));
+ Args_[0] = Q(Y(BuildQuotedAtom(Args_[0]->GetPos(), ToString(numOptArgs))));
}
- if (!Args[1]->GetTupleNode()) {
- Args[1] = Q(Y(Args[1]));
+ if (!Args_[1]->GetTupleNode()) {
+ Args_[1] = Q(Y(Args_[1]));
}
- for (ui32 index = 2; index < Args.size(); ++index) {
- if (!Args[index]->GetTupleNode()) {
- Args[index] = Q(Y(Args[index]));
+ for (ui32 index = 2; index < Args_.size(); ++index) {
+ if (!Args_[index]->GetTupleNode()) {
+ Args_[index] = Q(Y(Args_[index]));
}
}
@@ -1425,7 +1425,7 @@ public:
}
TNodePtr DoClone() const final {
- return new TYqlCallableType(Pos, CloneContainer(Args));
+ return new TYqlCallableType(Pos_, CloneContainer(Args_));
}
};
@@ -1440,16 +1440,16 @@ public:
return false;
}
- if (!Args[1]->Init(ctx, src)) {
+ if (!Args_[1]->Init(ctx, src)) {
return false;
}
- Args[1] = MakeAtomFromExpression(Pos, ctx, Args[1]).Build();
+ Args_[1] = MakeAtomFromExpression(Pos_, ctx, Args_[1]).Build();
return TCallNode::DoInit(ctx, src);
}
TNodePtr DoClone() const final {
- return new TYqlTupleElementType(Pos, CloneContainer(Args));
+ return new TYqlTupleElementType(Pos_, CloneContainer(Args_));
}
};
@@ -1464,16 +1464,16 @@ public:
return false;
}
- if (!Args[1]->Init(ctx, src)) {
+ if (!Args_[1]->Init(ctx, src)) {
return false;
}
- Args[1] = MakeAtomFromExpression(Pos, ctx, Args[1]).Build();
+ Args_[1] = MakeAtomFromExpression(Pos_, ctx, Args_[1]).Build();
return TCallNode::DoInit(ctx, src);
}
TNodePtr DoClone() const final {
- return new TYqlStructMemberType(Pos, CloneContainer(Args));
+ return new TYqlStructMemberType(Pos_, CloneContainer(Args_));
}
};
@@ -1489,17 +1489,17 @@ public:
}
ui32 index;
- if (!Parseui32(Args[1], index)) {
- ctx.Error(Args[1]->GetPos()) << "Expected index of the callable argument";
+ if (!Parseui32(Args_[1], index)) {
+ ctx.Error(Args_[1]->GetPos()) << "Expected index of the callable argument";
return false;
}
- Args[1] = BuildQuotedAtom(Args[1]->GetPos(), ToString(index));
+ Args_[1] = BuildQuotedAtom(Args_[1]->GetPos(), ToString(index));
return TCallNode::DoInit(ctx, src);
}
TNodePtr DoClone() const final {
- return new TYqlCallableArgumentType(Pos, CloneContainer(Args));
+ return new TYqlCallableArgumentType(Pos_, CloneContainer(Args_));
}
};
@@ -1507,28 +1507,28 @@ class TStructTypeNode : public TAstListNode {
public:
TStructTypeNode(TPosition pos, const TVector<TNodePtr>& exprs)
: TAstListNode(pos)
- , Exprs(exprs)
+ , Exprs_(exprs)
{}
bool DoInit(TContext& ctx, ISource* src) override {
- Nodes.push_back(BuildAtom(Pos, "StructType", TNodeFlags::Default));
- for (const auto& expr : Exprs) {
+ Nodes_.push_back(BuildAtom(Pos_, "StructType", TNodeFlags::Default));
+ for (const auto& expr : Exprs_) {
const auto& label = expr->GetLabel();
if (!label) {
ctx.Error(expr->GetPos()) << "Structure does not allow anonymous members";
return false;
}
- Nodes.push_back(Q(Y(Q(label), expr)));
+ Nodes_.push_back(Q(Y(Q(label), expr)));
}
return TAstListNode::DoInit(ctx, src);
}
TNodePtr DoClone() const final {
- return new TStructTypeNode(Pos, CloneContainer(Exprs));
+ return new TStructTypeNode(Pos_, CloneContainer(Exprs_));
}
private:
- const TVector<TNodePtr> Exprs;
+ const TVector<TNodePtr> Exprs_;
};
template <bool IsStrict>
@@ -1540,7 +1540,7 @@ public:
private:
TCallNode::TPtr DoClone() const override {
- return new TYqlIf(GetPos(), CloneContainer(Args));
+ return new TYqlIf(GetPos(), CloneContainer(Args_));
}
bool DoInit(TContext& ctx, ISource* src) override {
@@ -1548,9 +1548,9 @@ private:
return false;
}
- Args[0] = Y("Coalesce", Args[0], Y("Bool", Q("false")));
- if (Args.size() == 2) {
- Args.push_back(Y("Null"));
+ Args_[0] = Y("Coalesce", Args_[0], Y("Bool", Q("false")));
+ if (Args_.size() == 2) {
+ Args_.push_back(Y("Null"));
}
return TCallNode::DoInit(ctx, src);
}
@@ -1564,12 +1564,12 @@ public:
private:
TCallNode::TPtr DoClone() const override {
- return new TYqlSubstring(GetPos(), OpName, CloneContainer(Args));
+ return new TYqlSubstring(GetPos(), OpName_, CloneContainer(Args_));
}
bool DoInit(TContext& ctx, ISource* src) override {
- if (Args.size() == 2) {
- Args.push_back(Y("Null"));
+ if (Args_.size() == 2) {
+ Args_.push_back(Y("Null"));
}
return TCallNode::DoInit(ctx, src);
}
@@ -1583,16 +1583,16 @@ public:
private:
TNodePtr DoClone() const final {
- return new TYqlIn(Pos, CloneContainer(Args));
+ return new TYqlIn(Pos_, CloneContainer(Args_));
}
bool DoInit(TContext& ctx, ISource* src) override {
if (!ValidateArguments(ctx)) {
return false;
}
- auto key = Args[0];
- auto inNode = Args[1];
- auto hints = Args[2];
+ auto key = Args_[0];
+ auto inNode = Args_[1];
+ auto hints = Args_[2];
const auto pos = inNode->GetPos();
@@ -1637,9 +1637,9 @@ private:
hintElements.push_back(BuildHint(pos, "ansi"));
}
- OpName = "SqlIn";
- MinArgs = MaxArgs = 3;
- Args = {
+ OpName_ = "SqlIn";
+ MinArgs_ = MaxArgs_ = 3;
+ Args_ = {
inNode->GetSource() ? inNode->GetSource() : inNode,
key,
BuildTuple(pos, hintElements)
@@ -1683,12 +1683,12 @@ private:
void DoUpdateState() const override {
TCallNode::DoUpdateState();
- State.Set(ENodeState::Aggregated, false/*!RunConfig || RunConfig->IsAggregated()*/);
- State.Set(ENodeState::Const, true /* FIXME: To avoid CheckAggregationLevel issue for non-const TypeOf. */);
+ State_.Set(ENodeState::Aggregated, false/*!RunConfig || RunConfig->IsAggregated()*/);
+ State_.Set(ENodeState::Const, true /* FIXME: To avoid CheckAggregationLevel issue for non-const TypeOf. */);
}
private:
- TNodePtr RunConfig;
+ TNodePtr RunConfig_;
};
class TYqlUdf final : public TYqlUdfBase {
@@ -1703,7 +1703,7 @@ public:
private:
TYqlUdf(const TYqlUdf& other)
- : TYqlUdfBase(other.GetPos(), "Udf", other.MinArgs, other.MaxArgs, CloneContainer(other.Args))
+ : TYqlUdfBase(other.GetPos(), "Udf", other.MinArgs_, other.MaxArgs_, CloneContainer(other.Args_))
{}
TNodePtr DoClone() const final {
@@ -1723,7 +1723,7 @@ public:
private:
TYqlTypeConfigUdf(const TYqlTypeConfigUdf& other)
- : TYqlUdfBase(other.GetPos(), "Udf", other.MinArgs, other.MaxArgs, CloneContainer(other.Args))
+ : TYqlUdfBase(other.GetPos(), "Udf", other.MinArgs_, other.MaxArgs_, CloneContainer(other.Args_))
{}
bool DoInit(TContext& ctx, ISource* src) override {
@@ -1731,11 +1731,11 @@ private:
return false;
}
- if (!Args[3]->Init(ctx, src)) {
+ if (!Args_[3]->Init(ctx, src)) {
return false;
}
- Args[3] = MakeAtomFromExpression(Pos, ctx, Args[3]).Build();
+ Args_[3] = MakeAtomFromExpression(Pos_, ctx, Args_[3]).Build();
return TYqlUdfBase::DoInit(ctx, src);
}
@@ -1752,7 +1752,7 @@ public:
bool DoInit(TContext& ctx, ISource* src) override {
if (!src) {
- ctx.Error(Pos) << GetCallExplain() << " unable use without source";
+ ctx.Error(Pos_) << GetCallExplain() << " unable use without source";
return false;
}
@@ -1763,7 +1763,7 @@ public:
}
bool hasError = false;
- for (auto& arg: Args) {
+ for (auto& arg: Args_) {
if (!arg->Init(ctx, src)) {
hasError = true;
continue;
@@ -1776,53 +1776,53 @@ public:
PrecacheState();
- const auto memberPos = Args[0]->GetPos();
+ const auto memberPos = Args_[0]->GetPos();
TVector<TNodePtr> repackArgs = {BuildAtom(memberPos, "row", NYql::TNodeFlags::Default)};
- if (auto literal = Args[1]->GetLiteral("String")) {
+ if (auto literal = Args_[1]->GetLiteral("String")) {
TString targetType;
if (!GetDataTypeStringNode(ctx, *this, 1, &targetType)) {
return false;
}
- repackArgs.push_back(Args[1]->Q(targetType));
+ repackArgs.push_back(Args_[1]->Q(targetType));
} else {
- repackArgs.push_back(Args[1]);
+ repackArgs.push_back(Args_[1]);
}
TVector<TNodePtr> column;
- auto namePtr = Args[0]->GetColumnName();
+ auto namePtr = Args_[0]->GetColumnName();
if (!namePtr || !*namePtr) {
- ctx.Error(Pos) << GetCallExplain() << " expects column name as first argument";
+ ctx.Error(Pos_) << GetCallExplain() << " expects column name as first argument";
return false;
}
auto memberName = *namePtr;
- column.push_back(Args[0]->Q(*namePtr));
+ column.push_back(Args_[0]->Q(*namePtr));
if (src->GetJoin() && !src->IsJoinKeysInitializing()) {
- const auto sourcePtr = Args[0]->GetSourceName();
+ const auto sourcePtr = Args_[0]->GetSourceName();
if (!sourcePtr || !*sourcePtr) {
- ctx.Error(Pos) << GetOpName() << " required to have correlation name in case of JOIN for column at first parameter";
+ ctx.Error(Pos_) << GetOpName() << " required to have correlation name in case of JOIN for column at first parameter";
return false;
}
- column.push_back(Args[0]->Q(*sourcePtr));
+ column.push_back(Args_[0]->Q(*sourcePtr));
memberName = DotJoin(*sourcePtr, memberName);
}
if (!GetLabel()) {
SetLabel(memberName);
}
repackArgs.push_back(BuildTuple(memberPos, column));
- if (Args.size() == 3) {
- repackArgs.push_back(Args[2]);
+ if (Args_.size() == 3) {
+ repackArgs.push_back(Args_[2]);
}
- ++MinArgs;
- ++MaxArgs;
- Args.swap(repackArgs);
+ ++MinArgs_;
+ ++MaxArgs_;
+ Args_.swap(repackArgs);
return TCallNode::DoInit(ctx, src);
}
TNodePtr DoClone() const final {
- return new TWeakFieldOp(Pos, CloneContainer(Args));
+ return new TWeakFieldOp(Pos_, CloneContainer(Args_));
}
};
@@ -1835,17 +1835,17 @@ public:
TTableRow(TPosition pos, ui32 argsCount)
: INode(pos)
- , ArgsCount(argsCount)
+ , ArgsCount_(argsCount)
{}
bool DoInit(TContext& ctx, ISource* src) override {
if (!src || src->IsFake()) {
- ctx.Error(Pos) << TStringBuilder() << (Join ? "Join" : "") << "TableRow requires data source";
+ ctx.Error(Pos_) << TStringBuilder() << (Join ? "Join" : "") << "TableRow requires data source";
return false;
}
- if (ArgsCount > 0) {
- ctx.Error(Pos) << "TableRow requires exactly 0 arguments";
+ if (ArgsCount_ > 0) {
+ ctx.Error(Pos_) << "TableRow requires exactly 0 arguments";
return false;
}
@@ -1877,7 +1877,7 @@ public:
auto members = Y();
for (auto& joinLabel: src->GetJoin()->GetJoinLabels()) {
- members = L(members, BuildQuotedAtom(Pos, joinLabel + "."));
+ members = L(members, BuildQuotedAtom(Pos_, joinLabel + "."));
}
block = L(block, Y("let", "res", Y("DivePrefixMembers", "row", Q(members))));
@@ -1887,24 +1887,24 @@ public:
block = L(block, Y("let", "res", Y("AddMember", "res", Q(column), addMemberKeyNode)));
}
- Node = Y("block", Q(L(block, Y("return", "res"))));
+ Node_ = Y("block", Q(L(block, Y("return", "res"))));
} else {
- Node = ctx.EnableSystemColumns ? Y("RemoveSystemMembers", "row") : BuildAtom(Pos, "row", 0);
+ Node_ = ctx.EnableSystemColumns ? Y("RemoveSystemMembers", "row") : BuildAtom(Pos_, "row", 0);
}
return true;
}
TAstNode* Translate(TContext& ctx) const override {
- Y_DEBUG_ABORT_UNLESS(Node);
- return Node->Translate(ctx);
+ Y_DEBUG_ABORT_UNLESS(Node_);
+ return Node_->Translate(ctx);
}
void DoUpdateState() const override {
- State.Set(ENodeState::Const, false);
+ State_.Set(ENodeState::Const, false);
}
TNodePtr DoClone() const final {
- return new TTableRow<Join>(Pos, ArgsCount);
+ return new TTableRow<Join>(Pos_, ArgsCount_);
}
bool IsTableRow() const final {
@@ -1912,8 +1912,8 @@ public:
}
private:
- const size_t ArgsCount;
- TNodePtr Node;
+ const size_t ArgsCount_;
+ TNodePtr Node_;
};
TTableRows::TTableRows(TPosition pos, const TVector<TNodePtr>& args)
@@ -1922,41 +1922,41 @@ TTableRows::TTableRows(TPosition pos, const TVector<TNodePtr>& args)
TTableRows::TTableRows(TPosition pos, ui32 argsCount)
: INode(pos)
- , ArgsCount(argsCount)
+ , ArgsCount_(argsCount)
{}
bool TTableRows::DoInit(TContext& ctx, ISource* /*src*/) {
- if (ArgsCount > 0) {
- ctx.Error(Pos) << "TableRows requires exactly 0 arguments";
+ if (ArgsCount_ > 0) {
+ ctx.Error(Pos_) << "TableRows requires exactly 0 arguments";
return false;
}
- Node = ctx.EnableSystemColumns ? Y("RemoveSystemMembers", "inputRowsList") : BuildAtom(Pos, "inputRowsList", 0);
+ Node_ = ctx.EnableSystemColumns ? Y("RemoveSystemMembers", "inputRowsList") : BuildAtom(Pos_, "inputRowsList", 0);
return true;
}
TAstNode* TTableRows::Translate(TContext& ctx) const {
- Y_DEBUG_ABORT_UNLESS(Node);
- return Node->Translate(ctx);
+ Y_DEBUG_ABORT_UNLESS(Node_);
+ return Node_->Translate(ctx);
}
void TTableRows::DoUpdateState() const {
- State.Set(ENodeState::Const, false);
+ State_.Set(ENodeState::Const, false);
}
TNodePtr TTableRows::DoClone() const {
- return MakeIntrusive<TTableRows>(Pos, ArgsCount);
+ return MakeIntrusive<TTableRows>(Pos_, ArgsCount_);
}
TSessionWindow::TSessionWindow(TPosition pos, const TVector<TNodePtr>& args)
: INode(pos)
- , Args(args)
- , FakeSource(BuildFakeSource(pos))
- , Valid(false)
+ , Args_(args)
+ , FakeSource_(BuildFakeSource(pos))
+ , Valid_(false)
{}
void TSessionWindow::MarkValid() {
YQL_ENSURE(!HasState(ENodeState::Initialized));
- Valid = true;
+ Valid_ = true;
}
TNodePtr TSessionWindow::BuildTraits(const TString& label) const {
@@ -1964,9 +1964,9 @@ TNodePtr TSessionWindow::BuildTraits(const TString& label) const {
auto trueNode = Y("Bool", Q("true"));
- if (Args.size() == 2) {
- auto timeExpr = Args[0];
- auto timeoutExpr = Args[1];
+ if (Args_.size() == 2) {
+ auto timeExpr = Args_[0];
+ auto timeoutExpr = Args_[1];
auto coalesceLess = [&](auto first, auto second) {
// first < second ?? true
@@ -1980,21 +1980,21 @@ TNodePtr TSessionWindow::BuildTraits(const TString& label) const {
auto newSessionPred = Y("And", Y("AggrNotEquals", "curr", "prev"), coalesceLess(timeoutExpr, absDelta));
auto timeoutLambda = BuildLambda(timeoutExpr->GetPos(), Y("prev", "curr"), newSessionPred);
- auto sortSpec = Y("SortTraits", Y("TypeOf", label), trueNode, BuildLambda(Pos, Y("row"), Y("PersistableRepr", timeExpr)));
+ auto sortSpec = Y("SortTraits", Y("TypeOf", label), trueNode, BuildLambda(Pos_, Y("row"), Y("PersistableRepr", timeExpr)));
return Y("SessionWindowTraits",
Y("TypeOf", label),
sortSpec,
- BuildLambda(Pos, Y("row"), timeExpr),
+ BuildLambda(Pos_, Y("row"), timeExpr),
timeoutLambda);
}
- auto orderExpr = Args[0];
- auto initLambda = Args[1];
- auto updateLambda = Args[2];
- auto calculateLambda = Args[3];
+ auto orderExpr = Args_[0];
+ auto initLambda = Args_[1];
+ auto updateLambda = Args_[2];
+ auto calculateLambda = Args_[3];
- auto sortSpec = Y("SortTraits", Y("TypeOf", label), trueNode, BuildLambda(Pos, Y("row"), Y("PersistableRepr", orderExpr)));
+ auto sortSpec = Y("SortTraits", Y("TypeOf", label), trueNode, BuildLambda(Pos_, Y("row"), Y("PersistableRepr", orderExpr)));
return Y("SessionWindowTraits",
Y("TypeOf", label),
@@ -2006,34 +2006,34 @@ TNodePtr TSessionWindow::BuildTraits(const TString& label) const {
bool TSessionWindow::DoInit(TContext& ctx, ISource* src) {
if (!src || src->IsFake()) {
- ctx.Error(Pos) << "SessionWindow requires data source";
+ ctx.Error(Pos_) << "SessionWindow requires data source";
return false;
}
- if (!(Args.size() == 2 || Args.size() == 4)) {
- ctx.Error(Pos) << "SessionWindow requires either two or four arguments";
+ if (!(Args_.size() == 2 || Args_.size() == 4)) {
+ ctx.Error(Pos_) << "SessionWindow requires either two or four arguments";
return false;
}
- if (!Valid) {
- ctx.Error(Pos) << "SessionWindow can only be used as a top-level GROUP BY / PARTITION BY expression";
+ if (!Valid_) {
+ ctx.Error(Pos_) << "SessionWindow can only be used as a top-level GROUP BY / PARTITION BY expression";
return false;
}
- if (Args.size() == 2) {
- auto timeExpr = Args[0];
- auto timeoutExpr = Args[1];
- return timeExpr->Init(ctx, src) && timeoutExpr->Init(ctx, FakeSource.Get());
+ if (Args_.size() == 2) {
+ auto timeExpr = Args_[0];
+ auto timeoutExpr = Args_[1];
+ return timeExpr->Init(ctx, src) && timeoutExpr->Init(ctx, FakeSource_.Get());
}
- auto orderExpr = Args[0];
- auto initLambda = Args[1];
- auto updateLambda = Args[2];
- auto calculateLambda = Args[3];
+ auto orderExpr = Args_[0];
+ auto initLambda = Args_[1];
+ auto updateLambda = Args_[2];
+ auto calculateLambda = Args_[3];
src->AllColumns();
- return orderExpr->Init(ctx, src) && initLambda->Init(ctx, FakeSource.Get()) &&
- updateLambda->Init(ctx, FakeSource.Get()) && calculateLambda->Init(ctx, FakeSource.Get());
+ return orderExpr->Init(ctx, src) && initLambda->Init(ctx, FakeSource_.Get()) &&
+ updateLambda->Init(ctx, FakeSource_.Get()) && calculateLambda->Init(ctx, FakeSource_.Get());
}
TAstNode* TSessionWindow::Translate(TContext&) const {
@@ -2042,11 +2042,11 @@ TAstNode* TSessionWindow::Translate(TContext&) const {
}
void TSessionWindow::DoUpdateState() const {
- State.Set(ENodeState::Const, false);
+ State_.Set(ENodeState::Const, false);
}
TNodePtr TSessionWindow::DoClone() const {
- return new TSessionWindow(Pos, CloneContainer(Args));
+ return new TSessionWindow(Pos_, CloneContainer(Args_));
}
TString TSessionWindow::GetOpName() const {
@@ -2058,28 +2058,28 @@ class TSessionStart final : public INode {
public:
TSessionStart(TPosition pos, const TVector<TNodePtr>& args)
: INode(pos)
- , ArgsCount(args.size())
+ , ArgsCount_(args.size())
{
}
private:
TSessionStart(TPosition pos, size_t argsCount)
: INode(pos)
- , ArgsCount(argsCount)
+ , ArgsCount_(argsCount)
{}
bool DoInit(TContext& ctx, ISource* src) override {
if (!src || src->IsFake()) {
- ctx.Error(Pos) << GetOpName() << " requires data source";
+ ctx.Error(Pos_) << GetOpName() << " requires data source";
return false;
}
- if (ArgsCount > 0) {
- ctx.Error(Pos) << GetOpName() << " requires exactly 0 arguments";
+ if (ArgsCount_ > 0) {
+ ctx.Error(Pos_) << GetOpName() << " requires exactly 0 arguments";
return false;
}
auto windowName = src->GetWindowName();
- OverWindow = windowName != nullptr;
+ OverWindow_ = windowName != nullptr;
TNodePtr sessionWindow;
if (windowName) {
auto spec = src->FindWindowSpecification(ctx, *windowName);
@@ -2088,7 +2088,7 @@ private:
}
sessionWindow = spec->Session;
if (!sessionWindow) {
- ctx.Error(Pos) << GetOpName() << " can not be used with window " << *windowName << ": SessionWindow specification is missing in PARTITION BY";
+ ctx.Error(Pos_) << GetOpName() << " can not be used with window " << *windowName << ": SessionWindow specification is missing in PARTITION BY";
return false;
}
} else {
@@ -2099,15 +2099,15 @@ private:
extra = ". Maybe you forgot to add OVER `window_name`?";
}
if (src->HasAggregations()) {
- ctx.Error(Pos) << GetOpName() << " can not be used here: SessionWindow specification is missing in GROUP BY" << extra;
+ ctx.Error(Pos_) << GetOpName() << " can not be used here: SessionWindow specification is missing in GROUP BY" << extra;
} else {
- ctx.Error(Pos) << GetOpName() << " can not be used without aggregation by SessionWindow" << extra;
+ ctx.Error(Pos_) << GetOpName() << " can not be used without aggregation by SessionWindow" << extra;
}
return false;
}
if (!IsStart) {
- ctx.Error(Pos) << GetOpName() << " with GROUP BY is not supported yet";
+ ctx.Error(Pos_) << GetOpName() << " with GROUP BY is not supported yet";
return false;
}
}
@@ -2118,50 +2118,50 @@ private:
YQL_ENSURE(sessionWindow->HasState(ENodeState::Initialized));
YQL_ENSURE(sessionWindow->GetLabel());
- Node = Y("Member", "row", BuildQuotedAtom(Pos, sessionWindow->GetLabel()));
- if (OverWindow) {
- Node = Y("Member", Node, BuildQuotedAtom(Pos, IsStart ? "start" : "state"));
+ Node_ = Y("Member", "row", BuildQuotedAtom(Pos_, sessionWindow->GetLabel()));
+ if (OverWindow_) {
+ Node_ = Y("Member", Node_, BuildQuotedAtom(Pos_, IsStart ? "start" : "state"));
}
return true;
}
TAstNode* Translate(TContext& ctx) const override {
- Y_DEBUG_ABORT_UNLESS(Node);
- return Node->Translate(ctx);
+ Y_DEBUG_ABORT_UNLESS(Node_);
+ return Node_->Translate(ctx);
}
void DoUpdateState() const override {
- State.Set(ENodeState::Const, false);
- if (OverWindow) {
- State.Set(ENodeState::OverWindow, true);
+ State_.Set(ENodeState::Const, false);
+ if (OverWindow_) {
+ State_.Set(ENodeState::OverWindow, true);
} else if (IsStart) {
- State.Set(ENodeState::Aggregated, true);
+ State_.Set(ENodeState::Aggregated, true);
}
}
TNodePtr DoClone() const override {
- return new TSessionStart<IsStart>(Pos, ArgsCount);
+ return new TSessionStart<IsStart>(Pos_, ArgsCount_);
}
TString GetOpName() const override {
return IsStart ? "SessionStart" : "SessionState";
}
- const size_t ArgsCount;
- bool OverWindow = false;
- TNodePtr Node;
+ const size_t ArgsCount_;
+ bool OverWindow_ = false;
+ TNodePtr Node_;
};
THoppingWindow::THoppingWindow(TPosition pos, const TVector<TNodePtr>& args)
: INode(pos)
- , Args(args)
- , FakeSource(BuildFakeSource(pos))
- , Valid(false)
+ , Args_(args)
+ , FakeSource_(BuildFakeSource(pos))
+ , Valid_(false)
{}
void THoppingWindow::MarkValid() {
YQL_ENSURE(!HasState(ENodeState::Initialized));
- Valid = true;
+ Valid_ = true;
}
TNodePtr THoppingWindow::BuildTraits(const TString& label) const {
@@ -2170,7 +2170,7 @@ TNodePtr THoppingWindow::BuildTraits(const TString& label) const {
return Y(
"HoppingTraits",
Y("ListItemType", Y("TypeOf", label)),
- BuildLambda(Pos, Y("row"), Y("Just", Y("SystemMetadata", Y("String", Q("write_time")), Y("DependsOn", "row")))),
+ BuildLambda(Pos_, Y("row"), Y("Just", Y("SystemMetadata", Y("String", Q("write_time")), Y("DependsOn", "row")))),
Hop,
Interval,
Interval,
@@ -2180,23 +2180,23 @@ TNodePtr THoppingWindow::BuildTraits(const TString& label) const {
bool THoppingWindow::DoInit(TContext& ctx, ISource* src) {
if (!src || src->IsFake()) {
- ctx.Error(Pos) << "HoppingWindow requires data source";
+ ctx.Error(Pos_) << "HoppingWindow requires data source";
return false;
}
- if (!(Args.size() == 2)) {
- ctx.Error(Pos) << "HoppingWindow requires two arguments";
+ if (!(Args_.size() == 2)) {
+ ctx.Error(Pos_) << "HoppingWindow requires two arguments";
return false;
}
- if (!Valid) {
- ctx.Error(Pos) << "HoppingWindow can only be used as a top-level GROUP BY expression";
+ if (!Valid_) {
+ ctx.Error(Pos_) << "HoppingWindow can only be used as a top-level GROUP BY expression";
return false;
}
- auto hopExpr = Args[0];
- auto intervalExpr = Args[1];
- if (!(hopExpr->Init(ctx, FakeSource.Get()) && intervalExpr->Init(ctx, FakeSource.Get()))) {
+ auto hopExpr = Args_[0];
+ auto intervalExpr = Args_[1];
+ if (!(hopExpr->Init(ctx, FakeSource_.Get()) && intervalExpr->Init(ctx, FakeSource_.Get()))) {
return false;
}
@@ -2212,11 +2212,11 @@ TAstNode* THoppingWindow::Translate(TContext&) const {
}
void THoppingWindow::DoUpdateState() const {
- State.Set(ENodeState::Const, false);
+ State_.Set(ENodeState::Const, false);
}
TNodePtr THoppingWindow::DoClone() const {
- return new THoppingWindow(Pos, CloneContainer(Args));
+ return new THoppingWindow(Pos_, CloneContainer(Args_));
}
TString THoppingWindow::GetOpName() const {
@@ -2346,17 +2346,17 @@ class TCallableNode final: public INode {
public:
TCallableNode(TPosition pos, const TString& module, const TString& name, const TVector<TNodePtr>& args, bool forReduce)
: INode(pos)
- , Module(module)
- , Name(name)
- , Args(args)
- , ForReduce(forReduce)
+ , Module_(module)
+ , Name_(name)
+ , Args_(args)
+ , ForReduce_(forReduce)
{}
bool DoInit(TContext& ctx, ISource* src) override {
- if (Module == "yql") {
- Node = new TFuncNodeImpl(Pos, Name);
- } else if (Module == "@yql") {
- auto parsedName = StringContent(ctx, Pos, Name);
+ if (Module_ == "yql") {
+ Node_ = new TFuncNodeImpl(Pos_, Name_);
+ } else if (Module_ == "@yql") {
+ auto parsedName = StringContent(ctx, Pos_, Name_);
if (!parsedName) {
return false;
}
@@ -2367,86 +2367,86 @@ public:
if (ast.IsOk()) {
const auto rootCount = ast.Root->GetChildrenCount();
if (rootCount != 1) {
- ctx.Error(Pos) << "Failed to parse YQL: expecting AST root node with single child, but got " << rootCount;
+ ctx.Error(Pos_) << "Failed to parse YQL: expecting AST root node with single child, but got " << rootCount;
return false;
}
- Node = AstNode(ast.Root->GetChild(0));
+ Node_ = AstNode(ast.Root->GetChild(0));
} else {
- ctx.Error(Pos) << "Failed to parse YQL: " << ast.Issues.ToString();
+ ctx.Error(Pos_) << "Failed to parse YQL: " << ast.Issues.ToString();
return false;
}
if (src) {
src->AllColumns();
}
- } else if (ctx.Settings.ModuleMapping.contains(Module)) {
- Node = Y("bind", Module + "_module", Q(Name));
+ } else if (ctx.Settings.ModuleMapping.contains(Module_)) {
+ Node_ = Y("bind", Module_ + "_module", Q(Name_));
if (src) {
src->AllColumns();
}
} else {
TNodePtr customUserType = nullptr;
- if (Module == "Tensorflow" && Name == "RunBatch") {
- if (Args.size() > 2) {
+ if (Module_ == "Tensorflow" && Name_ == "RunBatch") {
+ if (Args_.size() > 2) {
auto passThroughAtom = Q("PassThrough");
- auto passThroughType = Y("StructMemberType", Y("ListItemType", Y("TypeOf", Args[1])), passThroughAtom);
- customUserType = Y("AddMemberType", Args[2], passThroughAtom, passThroughType);
- Args.erase(Args.begin() + 2);
+ auto passThroughType = Y("StructMemberType", Y("ListItemType", Y("TypeOf", Args_[1])), passThroughAtom);
+ customUserType = Y("AddMemberType", Args_[2], passThroughAtom, passThroughType);
+ Args_.erase(Args_.begin() + 2);
}
}
- if ("Datetime" == Module || ("Yson" == Module && ctx.PragmaYsonFast))
- Module.append('2');
+ if ("Datetime" == Module_ || ("Yson" == Module_ && ctx.PragmaYsonFast))
+ Module_.append('2');
- TNodePtr typeConfig = MakeTypeConfig(Pos, to_lower(Module), Args);
- if (ForReduce) {
+ TNodePtr typeConfig = MakeTypeConfig(Pos_, to_lower(Module_), Args_);
+ if (ForReduce_) {
TVector<TNodePtr> udfArgs;
- udfArgs.push_back(BuildQuotedAtom(Pos, TString(Module) + "." + Name));
- udfArgs.push_back(customUserType ? customUserType : new TCallNodeImpl(Pos, "TupleType", {}));
+ udfArgs.push_back(BuildQuotedAtom(Pos_, TString(Module_) + "." + Name_));
+ udfArgs.push_back(customUserType ? customUserType : new TCallNodeImpl(Pos_, "TupleType", {}));
if (typeConfig) {
udfArgs.push_back(typeConfig);
}
- Node = new TCallNodeImpl(Pos, "SqlReduceUdf", udfArgs);
+ Node_ = new TCallNodeImpl(Pos_, "SqlReduceUdf", udfArgs);
} else {
- auto udfArgs = BuildUdfArgs(ctx, Pos, Args, nullptr, nullptr, customUserType, typeConfig);
- Node = BuildUdf(ctx, Pos, Module, Name, udfArgs);
+ auto udfArgs = BuildUdfArgs(ctx, Pos_, Args_, nullptr, nullptr, customUserType, typeConfig);
+ Node_ = BuildUdf(ctx, Pos_, Module_, Name_, udfArgs);
}
}
- return Node->Init(ctx, src);
+ return Node_->Init(ctx, src);
}
TAstNode* Translate(TContext& ctx) const override {
- Y_DEBUG_ABORT_UNLESS(Node);
- return Node->Translate(ctx);
+ Y_DEBUG_ABORT_UNLESS(Node_);
+ return Node_->Translate(ctx);
}
const TString* FuncName() const override {
- return &Name;
+ return &Name_;
}
const TString* ModuleName() const override {
- return &Module;
+ return &Module_;
}
void DoUpdateState() const override {
- State.Set(ENodeState::Const, Node->IsConstant());
- State.Set(ENodeState::Aggregated, Node->IsAggregated());
+ State_.Set(ENodeState::Const, Node_->IsConstant());
+ State_.Set(ENodeState::Aggregated, Node_->IsAggregated());
}
TNodePtr DoClone() const override {
- return new TCallableNode(Pos, Module, Name, CloneContainer(Args), ForReduce);
+ return new TCallableNode(Pos_, Module_, Name_, CloneContainer(Args_), ForReduce_);
}
void DoVisitChildren(const TVisitFunc& func, TVisitNodeSet& visited) const final {
- Y_DEBUG_ABORT_UNLESS(Node);
- Node->VisitTree(func, visited);
+ Y_DEBUG_ABORT_UNLESS(Node_);
+ Node_->VisitTree(func, visited);
}
private:
- TCiString Module;
- TString Name;
- TVector<TNodePtr> Args;
- TNodePtr Node;
- const bool ForReduce;
+ TCiString Module_;
+ TString Name_;
+ TVector<TNodePtr> Args_;
+ TNodePtr Node_;
+ const bool ForReduce_;
};
TNodePtr BuildCallable(TPosition pos, const TString& module, const TString& name, const TVector<TNodePtr>& args, bool forReduce) {
@@ -2483,17 +2483,17 @@ public:
const bool isPython = ModuleName_.find(TStringBuf("Python")) != TString::npos;
if (!isPython) {
if (Args_.size() != 2) {
- ctx.Error(Pos) << ModuleName_ << " script declaration requires exactly two parameters";
+ ctx.Error(Pos_) << ModuleName_ << " script declaration requires exactly two parameters";
return false;
}
} else {
if (Args_.size() < 1 || Args_.size() > 2) {
- ctx.Error(Pos) << ModuleName_ << " script declaration requires one or two parameters";
+ ctx.Error(Pos_) << ModuleName_ << " script declaration requires one or two parameters";
return false;
}
}
- auto nameAtom = BuildQuotedAtom(Pos, FuncName_);
+ auto nameAtom = BuildQuotedAtom(Pos_, FuncName_);
auto scriptNode = Args_.back();
if (!scriptNode->Init(ctx, src)) {
return false;
@@ -2535,7 +2535,7 @@ public:
}
void DoUpdateState() const override {
- State.Set(ENodeState::Const, true);
+ State_.Set(ENodeState::Const, true);
}
TNodePtr DoClone() const final {
@@ -2585,26 +2585,26 @@ class TYqlToDict final: public TCallNode {
public:
TYqlToDict(TPosition pos, const TString& mode, const TVector<TNodePtr>& args)
: TCallNode(pos, "ToDict", 4, 4, args)
- , Mode(mode)
+ , Mode_(mode)
{}
private:
TCallNode::TPtr DoClone() const override {
- return new TYqlToDict<Sorted, Hashed>(GetPos(), Mode, CloneContainer(Args));
+ return new TYqlToDict<Sorted, Hashed>(GetPos(), Mode_, CloneContainer(Args_));
}
bool DoInit(TContext& ctx, ISource* src) override {
- if (Args.size() != 1) {
- ctx.Error(Pos) << "ToDict required exactly one argument";
+ if (Args_.size() != 1) {
+ ctx.Error(Pos_) << "ToDict required exactly one argument";
return false;
}
- Args.push_back(BuildLambda(Pos, Y("val"), Y("Nth", "val", Q("0"))));
- Args.push_back(BuildLambda(Pos, Y("val"), Y("Nth", "val", Q("1"))));
- Args.push_back(Q(Y(Q(Sorted ? "Sorted" : Hashed ? "Hashed" : "Auto"), Q(Mode))));
+ Args_.push_back(BuildLambda(Pos_, Y("val"), Y("Nth", "val", Q("0"))));
+ Args_.push_back(BuildLambda(Pos_, Y("val"), Y("Nth", "val", Q("1"))));
+ Args_.push_back(Q(Y(Q(Sorted ? "Sorted" : Hashed ? "Hashed" : "Auto"), Q(Mode_))));
return TCallNode::DoInit(ctx, src);
}
private:
- TString Mode;
+ TString Mode_;
};
template <bool IsStart>
@@ -2627,11 +2627,11 @@ private:
auto legacySpec = src->GetLegacyHoppingWindowSpec();
auto spec = src->GetHoppingWindowSpec();
if (!legacySpec && !spec) {
- ctx.Error(Pos) << "No hopping window parameters in aggregation";
+ ctx.Error(Pos_) << "No hopping window parameters in aggregation";
return false;
}
- Nodes.clear();
+ Nodes_.clear();
const auto fieldName = legacySpec
? "_yql_time"
@@ -2653,7 +2653,7 @@ private:
}
void DoUpdateState() const override {
- State.Set(ENodeState::Aggregated, true);
+ State_.Set(ENodeState::Aggregated, true);
}
};
@@ -2661,12 +2661,12 @@ class TInvalidBuiltin final: public INode {
public:
TInvalidBuiltin(TPosition pos, const TString& info)
: INode(pos)
- , Info(info)
+ , Info_(info)
{
}
bool DoInit(TContext& ctx, ISource*) override {
- ctx.Error(Pos) << Info;
+ ctx.Error(Pos_) << Info_;
return false;
}
@@ -2675,10 +2675,10 @@ public:
}
TPtr DoClone() const override {
- return new TInvalidBuiltin(GetPos(), Info);
+ return new TInvalidBuiltin(GetPos(), Info_);
}
private:
- TString Info;
+ TString Info_;
};
enum EAggrFuncTypeCallback {
diff --git a/yql/essentials/sql/v1/complete/sql_complete.cpp b/yql/essentials/sql/v1/complete/sql_complete.cpp
index 2ed153f3ecc..07e837ed3f4 100644
--- a/yql/essentials/sql/v1/complete/sql_complete.cpp
+++ b/yql/essentials/sql/v1/complete/sql_complete.cpp
@@ -24,9 +24,9 @@ namespace NSQLComplete {
: Configuration_(std::move(configuration))
, SyntaxAnalysis_(MakeLocalSyntaxAnalysis(
lexer,
- Configuration_.IgnoredRules,
- Configuration_.DisabledPreviousByToken,
- Configuration_.ForcedPreviousByToken))
+ Configuration_.IgnoredRules_,
+ Configuration_.DisabledPreviousByToken_,
+ Configuration_.ForcedPreviousByToken_))
, GlobalAnalysis_(MakeGlobalAnalysis())
, Names_(std::move(names))
{
@@ -269,7 +269,7 @@ namespace NSQLComplete {
ISqlCompletionEngine::TConfiguration config;
for (const std::string& name : GetSqlGrammar().GetAllRules()) {
if (name.ends_with("_stmt") && !allowedStmts.contains(name)) {
- config.IgnoredRules.emplace(name);
+ config.IgnoredRules_.emplace(name);
}
}
return config;
@@ -277,7 +277,7 @@ namespace NSQLComplete {
ISqlCompletionEngine::TConfiguration MakeYDBConfiguration() {
ISqlCompletionEngine::TConfiguration config;
- config.IgnoredRules = {
+ config.IgnoredRules_ = {
"use_stmt",
"import_stmt",
"export_stmt",
@@ -305,9 +305,9 @@ namespace NSQLComplete {
"values_stmt",
});
- config.DisabledPreviousByToken = {};
+ config.DisabledPreviousByToken_ = {};
- config.ForcedPreviousByToken = {
+ config.ForcedPreviousByToken_ = {
{"PARALLEL", {}},
{"TABLESTORE", {}},
{"FOR", {"EVALUATE"}},
diff --git a/yql/essentials/sql/v1/complete/sql_complete.h b/yql/essentials/sql/v1/complete/sql_complete.h
index 90edceacbc4..ce8a7c5296f 100644
--- a/yql/essentials/sql/v1/complete/sql_complete.h
+++ b/yql/essentials/sql/v1/complete/sql_complete.h
@@ -61,9 +61,9 @@ namespace NSQLComplete {
size_t Limit = 256;
private:
- THashSet<TString> IgnoredRules;
- THashMap<TString, THashSet<TString>> DisabledPreviousByToken;
- THashMap<TString, THashSet<TString>> ForcedPreviousByToken;
+ THashSet<TString> IgnoredRules_;
+ THashMap<TString, THashSet<TString>> DisabledPreviousByToken_;
+ THashMap<TString, THashSet<TString>> ForcedPreviousByToken_;
};
virtual ~ISqlCompletionEngine() = default;
diff --git a/yql/essentials/sql/v1/context.cpp b/yql/essentials/sql/v1/context.cpp
index 893636eb673..ba64bdc5939 100644
--- a/yql/essentials/sql/v1/context.cpp
+++ b/yql/essentials/sql/v1/context.cpp
@@ -93,10 +93,10 @@ TContext::TContext(const TLexers& lexers, const TParsers& parsers,
const TString& query)
: Lexers(lexers)
, Parsers(parsers)
- , ClusterMapping(settings.ClusterMapping)
- , PathPrefix(settings.PathPrefix)
- , ClusterPathPrefixes(settings.ClusterPathPrefixes)
- , SQLHints(hints)
+ , ClusterMapping_(settings.ClusterMapping)
+ , PathPrefix_(settings.PathPrefix)
+ , ClusterPathPrefixes_(settings.ClusterPathPrefixes)
+ , SqlHints_(hints)
, Settings(settings)
, Query(query)
, Pool(new TMemoryPool(4096))
@@ -126,7 +126,7 @@ TContext::TContext(const TLexers& lexers, const TParsers& parsers,
Scoped->CurrService = *provider;
}
- Position.File = settings.File;
+ Position_.File = settings.File;
for (auto& flag: settings.Flags) {
bool value = true;
@@ -155,7 +155,7 @@ TContext::~TContext()
}
const NYql::TPosition& TContext::Pos() const {
- return Position;
+ return Position_;
}
TString TContext::MakeName(const TString& name) {
@@ -171,17 +171,17 @@ TString TContext::MakeName(const TString& name) {
void TContext::PushCurrentBlocks(TBlocks* blocks) {
YQL_ENSURE(blocks);
- CurrentBlocks.push_back(blocks);
+ CurrentBlocks_.push_back(blocks);
}
void TContext::PopCurrentBlocks() {
- YQL_ENSURE(!CurrentBlocks.empty());
- CurrentBlocks.pop_back();
+ YQL_ENSURE(!CurrentBlocks_.empty());
+ CurrentBlocks_.pop_back();
}
TBlocks& TContext::GetCurrentBlocks() const {
- YQL_ENSURE(!CurrentBlocks.empty());
- return *CurrentBlocks.back();
+ YQL_ENSURE(!CurrentBlocks_.empty());
+ return *CurrentBlocks_.back();
}
IOutputStream& TContext::Error(NYql::TIssueCode code) {
@@ -214,19 +214,19 @@ void TContext::SetWarningPolicyFor(NYql::TIssueCode code, NYql::EWarningAction a
TVector<NSQLTranslation::TSQLHint> TContext::PullHintForToken(NYql::TPosition tokenPos) {
TVector<NSQLTranslation::TSQLHint> result;
- auto it = SQLHints.find(tokenPos);
- if (it == SQLHints.end()) {
+ auto it = SqlHints_.find(tokenPos);
+ if (it == SqlHints_.end()) {
return result;
}
result = std::move(it->second);
- SQLHints.erase(it);
+ SqlHints_.erase(it);
return result;
}
void TContext::WarnUnusedHints() {
- if (!SQLHints.empty()) {
+ if (!SqlHints_.empty()) {
// warn about first unused hint
- auto firstUnused = SQLHints.begin();
+ auto firstUnused = SqlHints_.begin();
YQL_ENSURE(!firstUnused->second.empty());
const NSQLTranslation::TSQLHint& hint = firstUnused->second.front();
Warning(hint.Pos, TIssuesIds::YQL_UNUSED_HINT) << "Hint " << hint.Name << " will not be used";
@@ -265,8 +265,8 @@ IOutputStream& TContext::MakeIssue(ESeverity severity, TIssueCode code, NYql::TP
auto& curIssue = Issues.back();
curIssue.Severity = severity;
curIssue.IssueCode = code;
- IssueMsgHolder.Reset(new TStringOutput(*Issues.back().MutableMessage()));
- return *IssueMsgHolder;
+ IssueMsgHolder_.Reset(new TStringOutput(*Issues.back().MutableMessage()));
+ return *IssueMsgHolder_;
}
bool TContext::IsDynamicCluster(const TDeferredAtom& cluster) const {
@@ -275,7 +275,7 @@ bool TContext::IsDynamicCluster(const TDeferredAtom& cluster) const {
return false;
}
TString unused;
- if (ClusterMapping.GetClusterProvider(*clusterPtr, unused)) {
+ if (ClusterMapping_.GetClusterProvider(*clusterPtr, unused)) {
return false;
}
if (Settings.AssumeYdbOnClusterWithSlash && clusterPtr->StartsWith('/')) {
@@ -291,7 +291,7 @@ bool TContext::SetPathPrefix(const TString& value, TMaybe<TString> arg) {
|| *arg == RtmrProviderName
)
{
- ProviderPathPrefixes[*arg] = value;
+ ProviderPathPrefixes_[*arg] = value;
return true;
}
@@ -302,9 +302,9 @@ bool TContext::SetPathPrefix(const TString& value, TMaybe<TString> arg) {
return false;
}
- ClusterPathPrefixes[normalizedClusterName] = value;
+ ClusterPathPrefixes_[normalizedClusterName] = value;
} else {
- PathPrefix = value;
+ PathPrefix_ = value;
}
return true;
@@ -323,16 +323,16 @@ TStringBuf TContext::GetPrefixPath(const TString& service, const TDeferredAtom&
return {};
}
auto* clusterPrefix = cluster.GetLiteral()
- ? ClusterPathPrefixes.FindPtr(*cluster.GetLiteral())
+ ? ClusterPathPrefixes_.FindPtr(*cluster.GetLiteral())
: nullptr;
if (clusterPrefix && !clusterPrefix->empty()) {
return *clusterPrefix;
} else {
- auto* providerPrefix = ProviderPathPrefixes.FindPtr(service);
+ auto* providerPrefix = ProviderPathPrefixes_.FindPtr(service);
if (providerPrefix && !providerPrefix->empty()) {
return *providerPrefix;
- } else if (!PathPrefix.empty()) {
- return PathPrefix;
+ } else if (!PathPrefix_.empty()) {
+ return PathPrefix_;
}
return {};
}
@@ -569,26 +569,26 @@ TMaybe<EColumnRefState> GetFunctionArgColumnStatus(TContext& ctx, const TString&
}
TTranslation::TTranslation(TContext& ctx)
- : Ctx(ctx)
+ : Ctx_(ctx)
{
}
TContext& TTranslation::Context() {
- return Ctx;
+ return Ctx_;
}
IOutputStream& TTranslation::Error() {
- return Ctx.Error();
+ return Ctx_.Error();
}
TNodePtr TTranslation::GetNamedNode(const TString& name) {
if (name == "$_") {
- Ctx.Error() << "Unable to reference anonymous name " << name;
+ Ctx_.Error() << "Unable to reference anonymous name " << name;
return nullptr;
}
- auto res = Ctx.Scoped->LookupNode(name);
+ auto res = Ctx_.Scoped->LookupNode(name);
if (!res) {
- Ctx.Error() << "Unknown name: " << name;
+ Ctx_.Error() << "Unknown name: " << name;
}
return SafeClone(res);
}
@@ -596,19 +596,19 @@ TNodePtr TTranslation::GetNamedNode(const TString& name) {
TString TTranslation::PushNamedNode(TPosition namePos, const TString& name, const TNodeBuilderByName& builder) {
TString resultName = name;
if (IsAnonymousName(name)) {
- resultName = "$_yql_anonymous_name_" + ToString(Ctx.AnonymousNameIndex++);
- YQL_ENSURE(Ctx.Scoped->NamedNodes.find(resultName) == Ctx.Scoped->NamedNodes.end());
+ resultName = "$_yql_anonymous_name_" + ToString(Ctx_.AnonymousNameIndex++);
+ YQL_ENSURE(Ctx_.Scoped->NamedNodes.find(resultName) == Ctx_.Scoped->NamedNodes.end());
}
auto node = builder(resultName);
Y_DEBUG_ABORT_UNLESS(node);
- auto mapIt = Ctx.Scoped->NamedNodes.find(resultName);
- if (mapIt == Ctx.Scoped->NamedNodes.end()) {
- auto result = Ctx.Scoped->NamedNodes.insert(std::make_pair(resultName, TDeque<TNodeWithUsageInfoPtr>()));
+ auto mapIt = Ctx_.Scoped->NamedNodes.find(resultName);
+ if (mapIt == Ctx_.Scoped->NamedNodes.end()) {
+ auto result = Ctx_.Scoped->NamedNodes.insert(std::make_pair(resultName, TDeque<TNodeWithUsageInfoPtr>()));
Y_DEBUG_ABORT_UNLESS(result.second);
mapIt = result.first;
}
- mapIt->second.push_front(MakeIntrusive<TNodeWithUsageInfo>(node, namePos, Ctx.ScopeLevel));
+ mapIt->second.push_front(MakeIntrusive<TNodeWithUsageInfo>(node, namePos, Ctx_.ScopeLevel));
return resultName;
}
@@ -624,31 +624,31 @@ TString TTranslation::PushNamedAtom(TPosition namePos, const TString& name) {
}
void TTranslation::PopNamedNode(const TString& name) {
- auto mapIt = Ctx.Scoped->NamedNodes.find(name);
- Y_DEBUG_ABORT_UNLESS(mapIt != Ctx.Scoped->NamedNodes.end());
+ auto mapIt = Ctx_.Scoped->NamedNodes.find(name);
+ Y_DEBUG_ABORT_UNLESS(mapIt != Ctx_.Scoped->NamedNodes.end());
Y_DEBUG_ABORT_UNLESS(mapIt->second.size() > 0);
auto& top = mapIt->second.front();
- if (!top->IsUsed && !Ctx.HasPendingErrors && !name.StartsWith("$_")) {
- Ctx.Warning(top->NamePos, TIssuesIds::YQL_UNUSED_SYMBOL) << "Symbol " << name << " is not used";
+ if (!top->IsUsed && !Ctx_.HasPendingErrors && !name.StartsWith("$_")) {
+ Ctx_.Warning(top->NamePos, TIssuesIds::YQL_UNUSED_SYMBOL) << "Symbol " << name << " is not used";
}
mapIt->second.pop_front();
if (mapIt->second.empty()) {
- Ctx.Scoped->NamedNodes.erase(mapIt);
+ Ctx_.Scoped->NamedNodes.erase(mapIt);
}
}
void TTranslation::WarnUnusedNodes() const {
- if (Ctx.HasPendingErrors) {
+ if (Ctx_.HasPendingErrors) {
// result is not reliable in this case
return;
}
- for (const auto& [name, items]: Ctx.Scoped->NamedNodes) {
+ for (const auto& [name, items]: Ctx_.Scoped->NamedNodes) {
if (name.StartsWith("$_")) {
continue;
}
for (const auto& item : items) {
- if (!item->IsUsed && item->Level == Ctx.ScopeLevel) {
- Ctx.Warning(item->NamePos, TIssuesIds::YQL_UNUSED_SYMBOL) << "Symbol " << name << " is not used";
+ if (!item->IsUsed && item->Level == Ctx_.ScopeLevel) {
+ Ctx_.Warning(item->NamePos, TIssuesIds::YQL_UNUSED_SYMBOL) << "Symbol " << name << " is not used";
}
}
}
diff --git a/yql/essentials/sql/v1/context.h b/yql/essentials/sql/v1/context.h
index 4f13893a8ad..10f5d2ebf79 100644
--- a/yql/essentials/sql/v1/context.h
+++ b/yql/essentials/sql/v1/context.h
@@ -113,13 +113,13 @@ namespace NSQLTranslationV1 {
void SetWarningPolicyFor(NYql::TIssueCode code, NYql::EWarningAction action);
const TString& Token(const NSQLv1Generated::TToken& token) {
- Position.Row = token.GetLine();
- Position.Column = token.GetColumn() + 1;
+ Position_.Row = token.GetLine();
+ Position_.Column = token.GetColumn() + 1;
return token.GetValue();
}
TPosition TokenPosition(const NSQLv1Generated::TToken& token) {
- TPosition pos = Position;
+ TPosition pos = Position_;
pos.Row = token.GetLine();
pos.Column = token.GetColumn() + 1;
return pos;
@@ -141,7 +141,7 @@ namespace NSQLTranslationV1 {
}
TMaybe<TString> GetClusterProvider(const TString& cluster, TString& normalizedClusterName) const {
- auto provider = ClusterMapping.GetClusterProvider(cluster, normalizedClusterName);
+ auto provider = ClusterMapping_.GetClusterProvider(cluster, normalizedClusterName);
if (!provider) {
if (Settings.AssumeYdbOnClusterWithSlash && cluster.StartsWith('/')) {
normalizedClusterName = cluster;
@@ -170,11 +170,11 @@ namespace NSQLTranslationV1 {
TNodePtr UniversalAlias(const TString& baseName, TNodePtr&& node);
void BodyPart() {
- IntoHeading = false;
+ IntoHeading_ = false;
}
bool IsParseHeading() const {
- return IntoHeading;
+ return IntoHeading_;
}
bool IsAlreadyDeclared(const TString& varName) const;
@@ -190,44 +190,44 @@ namespace NSQLTranslationV1 {
bool CheckColumnReference(TPosition pos, const TString& name) {
const bool allowed = GetColumnReferenceState() != EColumnRefState::Deny;
if (!allowed) {
- Error(pos) << "Column reference \"" << name << "\" is not allowed " << NoColumnErrorContext;
+ Error(pos) << "Column reference \"" << name << "\" is not allowed " << NoColumnErrorContext_;
IncrementMonCounter("sql_errors", "ColumnReferenceInScopeIsNotAllowed");
}
return allowed;
}
EColumnRefState GetColumnReferenceState() const {
- return ColumnReferenceState;
+ return ColumnReferenceState_;
}
EColumnRefState GetTopLevelColumnReferenceState() const {
- return TopLevelColumnReferenceState;
+ return TopLevelColumnReferenceState_;
}
[[nodiscard]] TString GetMatchRecognizeDefineVar() const {
- YQL_ENSURE(EColumnRefState::MatchRecognizeMeasures == ColumnReferenceState
- || EColumnRefState::MatchRecognizeDefine == ColumnReferenceState
- || EColumnRefState::MatchRecognizeDefineAggregate == ColumnReferenceState,
+ YQL_ENSURE(EColumnRefState::MatchRecognizeMeasures == ColumnReferenceState_
+ || EColumnRefState::MatchRecognizeDefine == ColumnReferenceState_
+ || EColumnRefState::MatchRecognizeDefineAggregate == ColumnReferenceState_,
"MATCH_RECOGNIZE Var can only be accessed within processing of MATCH_RECOGNIZE lambdas");
- return MatchRecognizeDefineVar;
+ return MatchRecognizeDefineVar_;
}
TString ExtractMatchRecognizeAggrVar() {
- YQL_ENSURE(EColumnRefState::MatchRecognizeMeasures == ColumnReferenceState
- || EColumnRefState::MatchRecognizeDefine == ColumnReferenceState
- || EColumnRefState::MatchRecognizeDefineAggregate == ColumnReferenceState,
+ YQL_ENSURE(EColumnRefState::MatchRecognizeMeasures == ColumnReferenceState_
+ || EColumnRefState::MatchRecognizeDefine == ColumnReferenceState_
+ || EColumnRefState::MatchRecognizeDefineAggregate == ColumnReferenceState_,
"MATCH_RECOGNIZE Var can only be accessed within processing of MATCH_RECOGNIZE lambdas");
- return std::exchange(MatchRecognizeAggrVar, "");
+ return std::exchange(MatchRecognizeAggrVar_, "");
}
[[nodiscard]] bool SetMatchRecognizeAggrVar(TString var) {
- YQL_ENSURE(EColumnRefState::MatchRecognizeMeasures == ColumnReferenceState
- || EColumnRefState::MatchRecognizeDefine == ColumnReferenceState
- || EColumnRefState::MatchRecognizeDefineAggregate == ColumnReferenceState,
+ YQL_ENSURE(EColumnRefState::MatchRecognizeMeasures == ColumnReferenceState_
+ || EColumnRefState::MatchRecognizeDefine == ColumnReferenceState_
+ || EColumnRefState::MatchRecognizeDefineAggregate == ColumnReferenceState_,
"MATCH_RECOGNIZE Var can only be accessed within processing of MATCH_RECOGNIZE lambdas");
- if (MatchRecognizeAggrVar.empty()) {
- MatchRecognizeAggrVar = std::move(var);
- } else if (MatchRecognizeAggrVar != var) {
+ if (MatchRecognizeAggrVar_.empty()) {
+ MatchRecognizeAggrVar_ = std::move(var);
+ } else if (MatchRecognizeAggrVar_ != var) {
Error() << "Illegal use of aggregates or navigation operators in MATCH_RECOGNIZE";
return false;
}
@@ -235,11 +235,11 @@ namespace NSQLTranslationV1 {
}
[[nodiscard]] auto& GetMatchRecognizeAggregations() {
- YQL_ENSURE(EColumnRefState::MatchRecognizeMeasures == ColumnReferenceState
- || EColumnRefState::MatchRecognizeDefine == ColumnReferenceState
- || EColumnRefState::MatchRecognizeDefineAggregate == ColumnReferenceState,
+ YQL_ENSURE(EColumnRefState::MatchRecognizeMeasures == ColumnReferenceState_
+ || EColumnRefState::MatchRecognizeDefine == ColumnReferenceState_
+ || EColumnRefState::MatchRecognizeDefineAggregate == ColumnReferenceState_,
"MATCH_RECOGNIZE Var can only be accessed within processing of MATCH_RECOGNIZE lambdas");
- return MatchRecognizeAggregations;
+ return MatchRecognizeAggregations_;
}
TVector<NSQLTranslation::TSQLHint> PullHintForToken(NYql::TPosition tokenPos);
@@ -253,28 +253,28 @@ namespace NSQLTranslationV1 {
const TParsers Parsers;
private:
- NYql::TPosition Position;
- THolder<TStringOutput> IssueMsgHolder;
- NSQLTranslation::TClusterMapping ClusterMapping;
- TString PathPrefix;
- THashMap<TString, TString> ProviderPathPrefixes;
- THashMap<TString, TString> ClusterPathPrefixes;
- bool IntoHeading = true;
- NSQLTranslation::TSQLHints SQLHints;
+ NYql::TPosition Position_;
+ THolder<TStringOutput> IssueMsgHolder_;
+ NSQLTranslation::TClusterMapping ClusterMapping_;
+ TString PathPrefix_;
+ THashMap<TString, TString> ProviderPathPrefixes_;
+ THashMap<TString, TString> ClusterPathPrefixes_;
+ bool IntoHeading_ = true;
+ NSQLTranslation::TSQLHints SqlHints_;
friend class TColumnRefScope;
- EColumnRefState ColumnReferenceState = EColumnRefState::Deny;
- EColumnRefState TopLevelColumnReferenceState = EColumnRefState::Deny;
- TString MatchRecognizeDefineVar;
- TString MatchRecognizeAggrVar;
+ EColumnRefState ColumnReferenceState_ = EColumnRefState::Deny;
+ EColumnRefState TopLevelColumnReferenceState_ = EColumnRefState::Deny;
+ TString MatchRecognizeDefineVar_;
+ TString MatchRecognizeAggrVar_;
struct TMatchRecognizeAggregation {
TString Var;
TAggregationPtr Aggr;
};
- TVector<TMatchRecognizeAggregation> MatchRecognizeAggregations;
- TString NoColumnErrorContext = "in current scope";
- TVector<TBlocks*> CurrentBlocks;
+ TVector<TMatchRecognizeAggregation> MatchRecognizeAggregations_;
+ TString NoColumnErrorContext_ = "in current scope";
+ TVector<TBlocks*> CurrentBlocks_;
public:
THashMap<TString, std::pair<TPosition, TNodePtr>> Variables;
@@ -386,16 +386,16 @@ namespace NSQLTranslationV1 {
class TColumnRefScope {
public:
TColumnRefScope(TContext& ctx, EColumnRefState state, bool isTopLevelExpr = true, const TString& defineVar = "")
- : PrevTop(ctx.TopLevelColumnReferenceState)
- , Prev(ctx.ColumnReferenceState)
- , PrevErr(ctx.NoColumnErrorContext)
- , PrevDefineVar(ctx.MatchRecognizeDefineVar)
- , Ctx(ctx)
+ : PrevTop_(ctx.TopLevelColumnReferenceState_)
+ , Prev_(ctx.ColumnReferenceState_)
+ , PrevErr_(ctx.NoColumnErrorContext_)
+ , PrevDefineVar_(ctx.MatchRecognizeDefineVar_)
+ , Ctx_(ctx)
{
if (isTopLevelExpr) {
- Ctx.ColumnReferenceState = Ctx.TopLevelColumnReferenceState = state;
+ Ctx_.ColumnReferenceState_ = Ctx_.TopLevelColumnReferenceState_ = state;
} else {
- Ctx.ColumnReferenceState = state;
+ Ctx_.ColumnReferenceState_ = state;
}
YQL_ENSURE(
defineVar.empty()
@@ -404,25 +404,25 @@ namespace NSQLTranslationV1 {
|| EColumnRefState::MatchRecognizeDefineAggregate == state,
"Internal logic error"
);
- ctx.MatchRecognizeDefineVar = defineVar;
+ ctx.MatchRecognizeDefineVar_ = defineVar;
}
void SetNoColumnErrContext(const TString& msg) {
- Ctx.NoColumnErrorContext = msg;
+ Ctx_.NoColumnErrorContext_ = msg;
}
~TColumnRefScope() {
- Ctx.TopLevelColumnReferenceState = PrevTop;
- Ctx.ColumnReferenceState = Prev;
- std::swap(Ctx.NoColumnErrorContext, PrevErr);
- std::swap(Ctx.MatchRecognizeDefineVar, PrevDefineVar);
+ Ctx_.TopLevelColumnReferenceState_ = PrevTop_;
+ Ctx_.ColumnReferenceState_ = Prev_;
+ std::swap(Ctx_.NoColumnErrorContext_, PrevErr_);
+ std::swap(Ctx_.MatchRecognizeDefineVar_, PrevDefineVar_);
}
private:
- const EColumnRefState PrevTop;
- const EColumnRefState Prev;
- TString PrevErr;
- TString PrevDefineVar;
- TContext& Ctx;
+ const EColumnRefState PrevTop_;
+ const EColumnRefState Prev_;
+ TString PrevErr_;
+ TString PrevDefineVar_;
+ TContext& Ctx_;
};
TMaybe<EColumnRefState> GetFunctionArgColumnStatus(TContext& ctx, const TString& module, const TString& func, size_t argIndex);
@@ -439,15 +439,15 @@ namespace NSQLTranslationV1 {
IOutputStream& Error();
const TString& Token(const NSQLv1Generated::TToken& token) {
- return Ctx.Token(token);
+ return Ctx_.Token(token);
}
TString Identifier(const NSQLv1Generated::TToken& token) {
- return IdContent(Ctx, Token(token));
+ return IdContent(Ctx_, Token(token));
}
TString Identifier(const TString& str) const {
- return IdContent(Ctx, str);
+ return IdContent(Ctx_, str);
}
TNodePtr GetNamedNode(const TString& name);
@@ -474,7 +474,7 @@ namespace NSQLTranslationV1 {
TString AltDescription(const google::protobuf::Message& node, ui32 altCase, const google::protobuf::Descriptor* descr) const;
protected:
- TContext& Ctx;
+ TContext& Ctx_;
};
void EnumerateSqlFlags(std::function<void(std::string_view)> callback);
diff --git a/yql/essentials/sql/v1/format/sql_format.cpp b/yql/essentials/sql/v1/format/sql_format.cpp
index 9bdcde0f49e..4979a75d4e8 100644
--- a/yql/essentials/sql/v1/format/sql_format.cpp
+++ b/yql/essentials/sql/v1/format/sql_format.cpp
@@ -203,13 +203,13 @@ class TObfuscatingVisitor {
friend struct TStaticData;
public:
TObfuscatingVisitor()
- : StaticData(TStaticData::GetInstance())
+ : StaticData_(TStaticData::GetInstance())
{}
TString Process(const NProtoBuf::Message& msg) {
- Scopes.push_back(EScope::Default);
+ Scopes_.push_back(EScope::Default);
Visit(msg);
- return SB;
+ return Sb_;
}
private:
@@ -219,42 +219,42 @@ private:
return;
}
- if (!First) {
- SB << ' ';
+ if (!First_) {
+ Sb_ << ' ';
} else {
- First = false;
+ First_ = false;
}
- if (str == "$" && FuncCall) {
- FuncCall = false;
+ if (str == "$" && FuncCall_) {
+ FuncCall_ = false;
}
- if (Scopes.back() == EScope::Identifier && !FuncCall) {
+ if (Scopes_.back() == EScope::Identifier && !FuncCall_) {
if (str != "$" && !NYql::LookupSimpleTypeBySqlAlias(str, true)) {
- SB << "id";
+ Sb_ << "id";
} else {
- SB << str;
+ Sb_ << str;
}
- } else if (NextToken) {
- SB << *NextToken;
- NextToken = Nothing();
+ } else if (NextToken_) {
+ Sb_ << *NextToken_;
+ NextToken_ = Nothing();
} else {
- SB << str;
+ Sb_ << str;
}
}
void VisitPragmaValue(const TRule_pragma_value& msg) {
switch (msg.Alt_case()) {
case TRule_pragma_value::kAltPragmaValue1: {
- NextToken = "0";
+ NextToken_ = "0";
break;
}
case TRule_pragma_value::kAltPragmaValue3: {
- NextToken = "'str'";
+ NextToken_ = "'str'";
break;
}
case TRule_pragma_value::kAltPragmaValue4: {
- NextToken = "false";
+ NextToken_ = "false";
break;
}
default:;
@@ -265,19 +265,19 @@ private:
void VisitLiteralValue(const TRule_literal_value& msg) {
switch (msg.Alt_case()) {
case TRule_literal_value::kAltLiteralValue1: {
- NextToken = "0";
+ NextToken_ = "0";
break;
}
case TRule_literal_value::kAltLiteralValue2: {
- NextToken = "0.0";
+ NextToken_ = "0.0";
break;
}
case TRule_literal_value::kAltLiteralValue3: {
- NextToken = "'str'";
+ NextToken_ = "'str'";
break;
}
case TRule_literal_value::kAltLiteralValue9: {
- NextToken = "false";
+ NextToken_ = "false";
break;
}
default:;
@@ -289,27 +289,27 @@ private:
void VisitAtomExpr(const TRule_atom_expr& msg) {
switch (msg.Alt_case()) {
case TRule_atom_expr::kAltAtomExpr7: {
- FuncCall = true;
+ FuncCall_ = true;
break;
}
default:;
}
VisitAllFields(TRule_atom_expr::GetDescriptor(), msg);
- FuncCall = false;
+ FuncCall_ = false;
}
void VisitInAtomExpr(const TRule_in_atom_expr& msg) {
switch (msg.Alt_case()) {
case TRule_in_atom_expr::kAltInAtomExpr6: {
- FuncCall = true;
+ FuncCall_ = true;
break;
}
default:;
}
VisitAllFields(TRule_in_atom_expr::GetDescriptor(), msg);
- FuncCall = false;
+ FuncCall_ = false;
}
void VisitUnaryCasualSubexpr(const TRule_unary_casual_subexpr& msg) {
@@ -327,12 +327,12 @@ private:
}
if (invoke) {
- FuncCall = true;
+ FuncCall_ = true;
}
Visit(msg.GetBlock1());
if (invoke) {
- FuncCall = false;
+ FuncCall_ = false;
}
Visit(msg.GetRule_unary_subexpr_suffix2());
@@ -353,12 +353,12 @@ private:
}
if (invoke) {
- FuncCall = true;
+ FuncCall_ = true;
}
Visit(msg.GetBlock1());
if (invoke) {
- FuncCall = false;
+ FuncCall_ = false;
}
Visit(msg.GetRule_unary_subexpr_suffix2());
@@ -366,12 +366,12 @@ private:
void Visit(const NProtoBuf::Message& msg) {
const NProtoBuf::Descriptor* descr = msg.GetDescriptor();
- auto scopePtr = StaticData.ScopeDispatch.FindPtr(descr);
+ auto scopePtr = StaticData_.ScopeDispatch.FindPtr(descr);
if (scopePtr) {
- Scopes.push_back(*scopePtr);
+ Scopes_.push_back(*scopePtr);
}
- auto funcPtr = StaticData.ObfuscatingVisitDispatch.FindPtr(descr);
+ auto funcPtr = StaticData_.ObfuscatingVisitDispatch.FindPtr(descr);
if (funcPtr) {
(*funcPtr)(*this, msg);
} else {
@@ -379,7 +379,7 @@ private:
}
if (scopePtr) {
- Scopes.pop_back();
+ Scopes_.pop_back();
}
}
@@ -387,48 +387,48 @@ private:
VisitAllFieldsImpl<TObfuscatingVisitor, &TObfuscatingVisitor::Visit>(this, descr, msg);
}
- const TStaticData& StaticData;
- TStringBuilder SB;
- bool First = true;
- TMaybe<TString> NextToken;
- TVector<EScope> Scopes;
- bool FuncCall = false;
+ const TStaticData& StaticData_;
+ TStringBuilder Sb_;
+ bool First_ = true;
+ TMaybe<TString> NextToken_;
+ TVector<EScope> Scopes_;
+ bool FuncCall_ = false;
};
class TPrettyVisitor {
friend struct TStaticData;
public:
TPrettyVisitor(const TParsedTokenList& parsedTokens, const TParsedTokenList& comments, bool ansiLexer)
- : StaticData(TStaticData::GetInstance())
- , ParsedTokens(parsedTokens)
- , Comments(comments)
- , AnsiLexer(ansiLexer)
+ : StaticData_(TStaticData::GetInstance())
+ , ParsedTokens_(parsedTokens)
+ , Comments_(comments)
+ , AnsiLexer_(ansiLexer)
{
}
TString Process(const NProtoBuf::Message& msg, bool& addLineBefore, bool& addLineAfter, TMaybe<ui32>& stmtCoreAltCase) {
- Scopes.push_back(EScope::Default);
- MarkedTokens.reserve(ParsedTokens.size());
+ Scopes_.push_back(EScope::Default);
+ MarkedTokens_.reserve(ParsedTokens_.size());
MarkTokens(msg);
- Y_ENSURE(MarkTokenStack.empty());
- Y_ENSURE(TokenIndex == ParsedTokens.size());
+ Y_ENSURE(MarkTokenStack_.empty());
+ Y_ENSURE(TokenIndex_ == ParsedTokens_.size());
- TokenIndex = 0;
+ TokenIndex_ = 0;
Visit(msg);
- Y_ENSURE(TokenIndex == ParsedTokens.size());
- Y_ENSURE(MarkTokenStack.empty());
+ Y_ENSURE(TokenIndex_ == ParsedTokens_.size());
+ Y_ENSURE(MarkTokenStack_.empty());
- for (; LastComment < Comments.size(); ++LastComment) {
- const auto text = Comments[LastComment].Content;
+ for (; LastComment_ < Comments_.size(); ++LastComment_) {
+ const auto text = Comments_[LastComment_].Content;
AddComment(text);
}
- ui32 lines = OutLine - (OutColumn == 0 ? 1 : 0);
- addLineBefore = AddLine.GetOrElse(true) || lines > 1;
- addLineAfter = AddLine.GetOrElse(true) || lines - CommentLines > 1;
- stmtCoreAltCase = StmtCoreAltCase;
+ ui32 lines = OutLine_ - (OutColumn_ == 0 ? 1 : 0);
+ addLineBefore = AddLine_.GetOrElse(true) || lines > 1;
+ addLineAfter = AddLine_.GetOrElse(true) || lines - CommentLines_ > 1;
+ stmtCoreAltCase = StmtCoreAltCase_;
- return SB;
+ return Sb_;
}
private:
@@ -449,52 +449,52 @@ private:
void Out(char c, bool useIndent = true) {
if (c == '\n' || c == '\r') {
- SB << c;
- if (!(c == '\n' && !SB.empty() && SB.back() == '\r')) {
+ Sb_ << c;
+ if (!(c == '\n' && !Sb_.empty() && Sb_.back() == '\r')) {
// do not increase OutLine if \n is preceded by \r
// this way we handle \r, \n, or \r\n as single new line
- ++OutLine;
+ ++OutLine_;
}
- OutColumn = 0;
+ OutColumn_ = 0;
} else {
- if (!OutColumn && useIndent) {
- ui32 indent = (CurrentIndent >= 0) ? CurrentIndent : 0;
+ if (!OutColumn_ && useIndent) {
+ ui32 indent = (CurrentIndent_ >= 0) ? CurrentIndent_ : 0;
for (ui32 i = 0; i < indent; ++i) {
- SB << ' ';
+ Sb_ << ' ';
}
}
- SB << c;
- ++OutColumn;
+ Sb_ << c;
+ ++OutColumn_;
}
}
void NewLine() {
- if (TokenIndex >= ParsedTokens.size() || ParsedTokens[TokenIndex].Line > LastLine) {
+ if (TokenIndex_ >= ParsedTokens_.size() || ParsedTokens_[TokenIndex_].Line > LastLine_) {
WriteComments(true);
}
- if (OutColumn) {
+ if (OutColumn_) {
Out('\n');
}
}
void AddComment(TStringBuf text) {
- if (!AfterComment && OutLine > BlockFirstLine && OutColumn == 0) {
+ if (!AfterComment_ && OutLine_ > BlockFirstLine_ && OutColumn_ == 0) {
Out('\n');
}
- AfterComment = true;
+ AfterComment_ = true;
- if (!SB.empty() && SB.back() != ' ' && SB.back() != '\n') {
+ if (!Sb_.empty() && Sb_.back() != ' ' && Sb_.back() != '\n') {
Out(' ');
}
- if (OutColumn == 0) {
- ++CommentLines;
+ if (OutColumn_ == 0) {
+ ++CommentLines_;
}
if (!text.StartsWith("--")) {
- CommentLines += CountIf(text, [](auto c) { return c == '\n'; });
+ CommentLines_ += CountIf(text, [](auto c) { return c == '\n'; });
}
Out(text);
@@ -504,9 +504,9 @@ private:
}
if (!text.StartsWith("--") &&
- TokenIndex < ParsedTokens.size() &&
- Comments[LastComment].Line < ParsedTokens[TokenIndex].Line &&
- (LastComment + 1 >= Comments.size() || Comments[LastComment].Line < Comments[LastComment + 1].Line)
+ TokenIndex_ < ParsedTokens_.size() &&
+ Comments_[LastComment_].Line < ParsedTokens_[TokenIndex_].Line &&
+ (LastComment_ + 1 >= Comments_.size() || Comments_[LastComment_].Line < Comments_[LastComment_ + 1].Line)
) {
Out('\n');
}
@@ -514,13 +514,13 @@ private:
void MarkTokens(const NProtoBuf::Message& msg) {
const NProtoBuf::Descriptor* descr = msg.GetDescriptor();
- auto scopePtr = StaticData.ScopeDispatch.FindPtr(descr);
+ auto scopePtr = StaticData_.ScopeDispatch.FindPtr(descr);
if (scopePtr) {
if (*scopePtr == EScope::TypeName) {
- ++InsideType;
+ ++InsideType_;
}
- Scopes.push_back(*scopePtr);
+ Scopes_.push_back(*scopePtr);
}
bool suppressExpr = false;
@@ -528,19 +528,19 @@ private:
const auto& token = dynamic_cast<const TToken&>(msg);
MarkToken(token);
} else if (descr == TRule_sql_stmt_core::GetDescriptor()) {
- if (AddLine.Empty()) {
+ if (AddLine_.Empty()) {
const auto& rule = dynamic_cast<const TRule_sql_stmt_core&>(msg);
- AddLine = !IsSimpleStatement(rule).GetOrElse(false);
- StmtCoreAltCase = rule.Alt_case();
+ AddLine_ = !IsSimpleStatement(rule).GetOrElse(false);
+ StmtCoreAltCase_ = rule.Alt_case();
}
} else if (descr == TRule_lambda_body::GetDescriptor()) {
- Y_ENSURE(TokenIndex >= 1);
- auto prevIndex = TokenIndex - 1;
- Y_ENSURE(prevIndex < ParsedTokens.size());
- Y_ENSURE(ParsedTokens[prevIndex].Content == "{");
- MarkedTokens[prevIndex].OpeningBracket = false;
- ForceExpandedColumn = ParsedTokens[prevIndex].LinePos;
- ForceExpandedLine = ParsedTokens[prevIndex].Line;
+ Y_ENSURE(TokenIndex_ >= 1);
+ auto prevIndex = TokenIndex_ - 1;
+ Y_ENSURE(prevIndex < ParsedTokens_.size());
+ Y_ENSURE(ParsedTokens_[prevIndex].Content == "{");
+ MarkedTokens_[prevIndex].OpeningBracket = false;
+ ForceExpandedColumn_ = ParsedTokens_[prevIndex].LinePos;
+ ForceExpandedLine_ = ParsedTokens_[prevIndex].Line;
} else if (descr == TRule_in_atom_expr::GetDescriptor()) {
const auto& value = dynamic_cast<const TRule_in_atom_expr&>(msg);
if (value.Alt_case() == TRule_in_atom_expr::kAltInAtomExpr7) {
@@ -558,48 +558,48 @@ private:
details.HasBlock3() || details.HasBlock4();
if (needsNewline) {
auto& paren = value.GetToken1();
- ForceExpandedColumn = paren.GetColumn();
- ForceExpandedLine = paren.GetLine();
+ ForceExpandedColumn_ = paren.GetColumn();
+ ForceExpandedLine_ = paren.GetLine();
}
suppressExpr = true;
} else if (descr == TRule_exists_expr::GetDescriptor()) {
const auto& value = dynamic_cast<const TRule_exists_expr&>(msg);
auto& paren = value.GetToken2();
- ForceExpandedColumn = paren.GetColumn();
- ForceExpandedLine = paren.GetLine();
+ ForceExpandedColumn_ = paren.GetColumn();
+ ForceExpandedLine_ = paren.GetLine();
suppressExpr = true;
} else if (descr == TRule_case_expr::GetDescriptor()) {
const auto& value = dynamic_cast<const TRule_case_expr&>(msg);
auto& token = value.GetToken1();
- ForceExpandedColumn = token.GetColumn();
- ForceExpandedLine = token.GetLine();
+ ForceExpandedColumn_ = token.GetColumn();
+ ForceExpandedLine_ = token.GetLine();
}
const bool expr = (descr == TRule_expr::GetDescriptor() || descr == TRule_in_expr::GetDescriptor() || descr == TRule_type_name_composite::GetDescriptor());
if (expr) {
- ++InsideExpr;
+ ++InsideExpr_;
}
- ui64 prevInsideExpr = InsideExpr;
+ ui64 prevInsideExpr = InsideExpr_;
if (suppressExpr) {
- InsideExpr = 0;
+ InsideExpr_ = 0;
}
VisitAllFieldsImpl<TPrettyVisitor, &TPrettyVisitor::MarkTokens>(this, descr, msg);
if (suppressExpr) {
- InsideExpr = prevInsideExpr;
+ InsideExpr_ = prevInsideExpr;
}
if (scopePtr) {
if (*scopePtr == EScope::TypeName) {
- --InsideType;
+ --InsideType_;
}
- Scopes.pop_back();
+ Scopes_.pop_back();
}
if (expr) {
- --InsideExpr;
+ --InsideExpr_;
}
}
@@ -609,11 +609,11 @@ private:
return;
}
- MarkedTokens.emplace_back();
- if (str == "(" || str == "[" || str == "{" || str == "<|" || (InsideType && str == "<")) {
- MarkTokenStack.push_back(TokenIndex);
- auto& info = MarkedTokens[TokenIndex];
- info.OpeningBracket = (InsideExpr > 0);
+ MarkedTokens_.emplace_back();
+ if (str == "(" || str == "[" || str == "{" || str == "<|" || (InsideType_ && str == "<")) {
+ MarkTokenStack_.push_back(TokenIndex_);
+ auto& info = MarkedTokens_[TokenIndex_];
+ info.OpeningBracket = (InsideExpr_ > 0);
} else if (str == ")") {
PopBracket("(");
} else if (str == "]") {
@@ -622,53 +622,53 @@ private:
PopBracket("{");
} else if (str == "|>") {
PopBracket("<|");
- } else if (InsideType && str == ">") {
+ } else if (InsideType_ && str == ">") {
PopBracket("<");
}
- TokenIndex++;
+ TokenIndex_++;
}
void PopBracket(const TString& expected) {
- Y_ENSURE(!MarkTokenStack.empty());
- Y_ENSURE(MarkTokenStack.back() < ParsedTokens.size());
- auto& openToken = ParsedTokens[MarkTokenStack.back()];
+ Y_ENSURE(!MarkTokenStack_.empty());
+ Y_ENSURE(MarkTokenStack_.back() < ParsedTokens_.size());
+ auto& openToken = ParsedTokens_[MarkTokenStack_.back()];
Y_ENSURE(openToken.Content == expected);
- auto& openInfo = MarkedTokens[MarkTokenStack.back()];
- auto& closeInfo = MarkedTokens[TokenIndex];
- const bool forcedExpansion = openToken.Line == ForceExpandedLine && openToken.LinePos <= ForceExpandedColumn;
+ auto& openInfo = MarkedTokens_[MarkTokenStack_.back()];
+ auto& closeInfo = MarkedTokens_[TokenIndex_];
+ const bool forcedExpansion = openToken.Line == ForceExpandedLine_ && openToken.LinePos <= ForceExpandedColumn_;
if (openInfo.OpeningBracket) {
- openInfo.ClosingBracketIndex = TokenIndex;
+ openInfo.ClosingBracketIndex = TokenIndex_;
openInfo.BracketForcedExpansion = forcedExpansion;
closeInfo.BracketForcedExpansion = forcedExpansion;
closeInfo.ClosingBracket = true;
}
- MarkTokenStack.pop_back();
+ MarkTokenStack_.pop_back();
}
void Visit(const NProtoBuf::Message& msg) {
const NProtoBuf::Descriptor* descr = msg.GetDescriptor();
//Cerr << descr->name() << "\n";
- auto scopePtr = StaticData.ScopeDispatch.FindPtr(descr);
+ auto scopePtr = StaticData_.ScopeDispatch.FindPtr(descr);
if (descr == TRule_invoke_expr::GetDescriptor()) {
- AfterInvokeExpr = true;
+ AfterInvokeExpr_ = true;
}
if (descr == TRule_unary_op::GetDescriptor()) {
- AfterUnaryOp = true;
+ AfterUnaryOp_ = true;
}
if (scopePtr) {
if (*scopePtr == EScope::TypeName) {
- ++InsideType;
+ ++InsideType_;
}
- Scopes.push_back(*scopePtr);
+ Scopes_.push_back(*scopePtr);
}
- auto funcPtr = StaticData.PrettyVisitDispatch.FindPtr(descr);
+ auto funcPtr = StaticData_.PrettyVisitDispatch.FindPtr(descr);
if (funcPtr) {
(*funcPtr)(*this, msg);
} else {
@@ -677,10 +677,10 @@ private:
if (scopePtr) {
if (*scopePtr == EScope::TypeName) {
- --InsideType;
+ --InsideType_;
}
- Scopes.pop_back();
+ Scopes_.pop_back();
}
}
@@ -736,7 +736,7 @@ private:
Visit(m);
printOne = false;
} else {
- ++TokenIndex;
+ ++TokenIndex_;
}
}
if (printOne) {
@@ -748,10 +748,10 @@ private:
switch (msg.Alt_case()) {
case TRule_value_constructor::kAltValueConstructor1: {
auto& ctor = msg.GetAlt_value_constructor1();
- Scopes.push_back(EScope::TypeName);
+ Scopes_.push_back(EScope::TypeName);
Visit(ctor.GetToken1());
- Scopes.pop_back();
- AfterInvokeExpr = true;
+ Scopes_.pop_back();
+ AfterInvokeExpr_ = true;
Visit(ctor.GetToken2());
Visit(ctor.GetRule_expr3());
Visit(ctor.GetToken4());
@@ -763,10 +763,10 @@ private:
}
case TRule_value_constructor::kAltValueConstructor2: {
auto& ctor = msg.GetAlt_value_constructor2();
- Scopes.push_back(EScope::TypeName);
+ Scopes_.push_back(EScope::TypeName);
Visit(ctor.GetToken1());
- Scopes.pop_back();
- AfterInvokeExpr = true;
+ Scopes_.pop_back();
+ AfterInvokeExpr_ = true;
Visit(ctor.GetToken2());
Visit(ctor.GetRule_expr3());
Visit(ctor.GetToken4());
@@ -776,10 +776,10 @@ private:
}
case TRule_value_constructor::kAltValueConstructor3: {
auto& ctor = msg.GetAlt_value_constructor3();
- Scopes.push_back(EScope::TypeName);
+ Scopes_.push_back(EScope::TypeName);
Visit(ctor.GetToken1());
- Scopes.pop_back();
- AfterInvokeExpr = true;
+ Scopes_.pop_back();
+ AfterInvokeExpr_ = true;
Visit(ctor.GetToken2());
Visit(ctor.GetRule_expr3());
Visit(ctor.GetToken4());
@@ -815,12 +815,12 @@ private:
if (prefix.HasBlock1()) {
Visit(prefix.GetBlock1().GetRule_an_id_or_type1());
VisitKeyword(prefix.GetBlock1().GetToken2());
- AfterDot = true;
+ AfterDot_ = true;
}
Visit(msg.GetRule_an_id3());
if (msg.GetBlock4().HasAlt2()) {
- AfterInvokeExpr = true;
+ AfterInvokeExpr_ = true;
const auto& alt2 = msg.GetBlock4().GetAlt2();
VisitKeyword(alt2.GetToken1());
Visit(alt2.GetRule_pragma_value2());
@@ -857,7 +857,7 @@ private:
NewLine();
Visit(msg.GetRule_bind_parameter_list1());
Visit(msg.GetToken2());
- ExprLineIndent = CurrentIndent;
+ ExprLineIndent_ = CurrentIndent_;
switch (msg.GetBlock3().Alt_case()) {
case TRule_named_nodes_stmt::TBlock3::kAlt1: {
@@ -905,7 +905,7 @@ private:
ythrow yexception() << "Alt is not supported";
}
- ExprLineIndent = 0;
+ ExprLineIndent_ = 0;
}
void VisitAlterDatabase(const TRule_alter_database_stmt& msg) {
@@ -1218,7 +1218,7 @@ private:
NewLine();
const auto& alt = msg.GetBlock2().GetAlt1().GetRule_call_action1();
Visit(alt.GetBlock1());
- AfterInvokeExpr = true;
+ AfterInvokeExpr_ = true;
Visit(alt.GetToken2());
if (alt.HasBlock3()) {
Visit(alt.GetBlock3());
@@ -1250,7 +1250,7 @@ private:
VisitKeyword(msg.GetToken1());
VisitKeyword(msg.GetToken2());
Visit(msg.GetRule_bind_parameter3());
- AfterInvokeExpr = true;
+ AfterInvokeExpr_ = true;
Visit(msg.GetToken4());
if (msg.HasBlock5()) {
Visit(msg.GetBlock5());
@@ -1588,20 +1588,20 @@ private:
}
void WriteComments(bool completeLine) {
- while (LastComment < Comments.size()) {
- const auto& c = Comments[LastComment];
- if (c.Line > LastLine || !completeLine && c.Line == LastLine && c.LinePos > LastColumn) {
+ while (LastComment_ < Comments_.size()) {
+ const auto& c = Comments_[LastComment_];
+ if (c.Line > LastLine_ || !completeLine && c.Line == LastLine_ && c.LinePos > LastColumn_) {
break;
}
AddComment(c.Content);
- ++LastComment;
+ ++LastComment_;
}
}
void PosFromToken(const TToken& token) {
- LastLine = token.GetLine();
- LastColumn = token.GetColumn();
+ LastLine_ = token.GetLine();
+ LastColumn_ = token.GetColumn();
WriteComments(false);
}
@@ -1622,67 +1622,67 @@ private:
}
//Cerr << str << "\n";
- auto currentScope = Scopes.back();
- if (!SkipSpaceAfterUnaryOp && !InMultiTokenOp) {
- if (AfterLess && str == ">") {
+ auto currentScope = Scopes_.back();
+ if (!SkipSpaceAfterUnaryOp_ && !InMultiTokenOp_) {
+ if (AfterLess_ && str == ">") {
Out(' ');
- } else if (AfterDigits && str == ".") {
+ } else if (AfterDigits_ && str == ".") {
Out(' ');
- } else if (OutColumn && (currentScope == EScope::DoubleQuestion || str != "?")
+ } else if (OutColumn_ && (currentScope == EScope::DoubleQuestion || str != "?")
&& str != ":" && str != "." && str != "," && str != ";" && str != ")" && str != "]"
- && str != "}" && str != "|>" && str != "::" && !AfterNamespace && !AfterBracket
- && !AfterInvokeExpr && !AfterDollarOrAt && !AfterDot && (!AfterQuestion || str != "?")
- && (!InsideType || (str != "<" && str != ">" && str != "<>"))
- && (!InsideType || !AfterLess)
- && (!AfterKeyExpr || str != "[")
+ && str != "}" && str != "|>" && str != "::" && !AfterNamespace_ && !AfterBracket_
+ && !AfterInvokeExpr_ && !AfterDollarOrAt_ && !AfterDot_ && (!AfterQuestion_ || str != "?")
+ && (!InsideType_ || (str != "<" && str != ">" && str != "<>"))
+ && (!InsideType_ || !AfterLess_)
+ && (!AfterKeyExpr_ || str != "[")
) {
Out(' ');
}
}
- SkipSpaceAfterUnaryOp = false;
- if (AfterUnaryOp) {
+ SkipSpaceAfterUnaryOp_ = false;
+ if (AfterUnaryOp_) {
if (str == "+" || str == "-" || str == "~") {
- SkipSpaceAfterUnaryOp = true;
+ SkipSpaceAfterUnaryOp_ = true;
}
- AfterUnaryOp = false;
+ AfterUnaryOp_ = false;
}
- AfterInvokeExpr = false;
- AfterNamespace = (str == "::");
- AfterBracket = (str == "(" || str == "[" || str == "{" || str == "<|");
- AfterDot = (str == ".");
- AfterDigits = !str.empty() && AllOf(str, [](char c) { return c >= '0' && c <= '9'; });
- AfterQuestion = (str == "?");
- AfterLess = (str == "<");
- AfterKeyExpr = false;
- AfterComment = false;
+ AfterInvokeExpr_ = false;
+ AfterNamespace_ = (str == "::");
+ AfterBracket_ = (str == "(" || str == "[" || str == "{" || str == "<|");
+ AfterDot_ = (str == ".");
+ AfterDigits_ = !str.empty() && AllOf(str, [](char c) { return c >= '0' && c <= '9'; });
+ AfterQuestion_ = (str == "?");
+ AfterLess_ = (str == "<");
+ AfterKeyExpr_ = false;
+ AfterComment_ = false;
if (forceKeyword) {
str = to_upper(str);
} else if (currentScope == EScope::Default) {
- if (auto p = StaticData.Keywords.find(to_upper(str)); p != StaticData.Keywords.end()) {
+ if (auto p = StaticData_.Keywords.find(to_upper(str)); p != StaticData_.Keywords.end()) {
str = *p;
}
}
- AfterDollarOrAt = (str == "$" || str == "@");
+ AfterDollarOrAt_ = (str == "$" || str == "@");
- const auto& markedInfo = MarkedTokens[TokenIndex];
+ const auto& markedInfo = MarkedTokens_[TokenIndex_];
if (markedInfo.ClosingBracket) {
- Y_ENSURE(!MarkTokenStack.empty());
- auto beginTokenIndex = MarkTokenStack.back();
- if (markedInfo.BracketForcedExpansion || ParsedTokens[beginTokenIndex].Line != ParsedTokens[TokenIndex].Line) {
+ Y_ENSURE(!MarkTokenStack_.empty());
+ auto beginTokenIndex = MarkTokenStack_.back();
+ if (markedInfo.BracketForcedExpansion || ParsedTokens_[beginTokenIndex].Line != ParsedTokens_[TokenIndex_].Line) {
// multiline
PopCurrentIndent();
NewLine();
}
- MarkTokenStack.pop_back();
+ MarkTokenStack_.pop_back();
}
- if (InCondExpr) {
+ if (InCondExpr_) {
if (str == "=") {
str = "==";
} else if (str == "<>") {
@@ -1690,7 +1690,7 @@ private:
}
}
- if (!AnsiLexer && ParsedTokens[TokenIndex].Name == "STRING_VALUE") {
+ if (!AnsiLexer_ && ParsedTokens_[TokenIndex_].Name == "STRING_VALUE") {
TStringBuf checkStr = str;
if (checkStr.SkipPrefix("\"") && checkStr.ChopSuffix("\"") && !checkStr.Contains("'")) {
str = TStringBuilder() << '\'' << checkStr << '\'';
@@ -1699,7 +1699,7 @@ private:
Out(str);
- if (TokenIndex + 1 >= ParsedTokens.size() || ParsedTokens[TokenIndex + 1].Line > LastLine) {
+ if (TokenIndex_ + 1 >= ParsedTokens_.size() || ParsedTokens_[TokenIndex_ + 1].Line > LastLine_) {
WriteComments(true);
}
@@ -1708,25 +1708,25 @@ private:
}
if (markedInfo.OpeningBracket) {
- MarkTokenStack.push_back(TokenIndex);
- if (markedInfo.BracketForcedExpansion || ParsedTokens[TokenIndex].Line != ParsedTokens[markedInfo.ClosingBracketIndex].Line) {
+ MarkTokenStack_.push_back(TokenIndex_);
+ if (markedInfo.BracketForcedExpansion || ParsedTokens_[TokenIndex_].Line != ParsedTokens_[markedInfo.ClosingBracketIndex].Line) {
// multiline
PushCurrentIndent();
NewLine();
}
}
- if (str == "," && !MarkTokenStack.empty()) {
+ if (str == "," && !MarkTokenStack_.empty()) {
const bool addNewline =
- (TokenIndex + 1 < ParsedTokens.size() && ParsedTokens[TokenIndex].Line != ParsedTokens[TokenIndex + 1].Line)
- || (TokenIndex > 0 && ParsedTokens[TokenIndex - 1].Line != ParsedTokens[TokenIndex].Line);
+ (TokenIndex_ + 1 < ParsedTokens_.size() && ParsedTokens_[TokenIndex_].Line != ParsedTokens_[TokenIndex_ + 1].Line)
+ || (TokenIndex_ > 0 && ParsedTokens_[TokenIndex_ - 1].Line != ParsedTokens_[TokenIndex_].Line);
// add line for trailing comma
if (addNewline) {
NewLine();
}
}
- TokenIndex++;
+ TokenIndex_++;
}
void VisitIntoValuesSource(const TRule_into_values_source& msg) {
@@ -2337,7 +2337,7 @@ private:
case TRule_table_ref::TBlock3::kAlt2: {
const auto& alt = block3.GetAlt2();
Visit(alt.GetRule_an_id_expr1());
- AfterInvokeExpr = true;
+ AfterInvokeExpr_ = true;
Visit(alt.GetToken2());
if (alt.HasBlock3()) {
Visit(alt.GetBlock3());
@@ -2350,7 +2350,7 @@ private:
const auto& alt = block3.GetAlt3();
Visit(alt.GetRule_bind_parameter1());
if (alt.HasBlock2()) {
- AfterInvokeExpr = true;
+ AfterInvokeExpr_ = true;
Visit(alt.GetBlock2());
}
@@ -2486,12 +2486,12 @@ private:
}
Visit(msg.GetToken3());
- ExprLineIndent = CurrentIndent;
+ ExprLineIndent_ = CurrentIndent_;
Visit(msg.GetRule_expr4());
SkipSemicolons(msg.GetBlock5(), /* printOne = */ true);
- ExprLineIndent = 0;
+ ExprLineIndent_ = 0;
PopCurrentIndent();
NewLine();
@@ -2529,7 +2529,7 @@ private:
void VisitCastExpr(const TRule_cast_expr& msg) {
Visit(msg.GetToken1());
- AfterInvokeExpr = true;
+ AfterInvokeExpr_ = true;
Visit(msg.GetToken2());
Visit(msg.GetRule_expr3());
Visit(msg.GetToken4());
@@ -2539,7 +2539,7 @@ private:
void VisitBitCastExpr(const TRule_bitcast_expr& msg) {
Visit(msg.GetToken1());
- AfterInvokeExpr = true;
+ AfterInvokeExpr_ = true;
Visit(msg.GetToken2());
Visit(msg.GetRule_expr3());
Visit(msg.GetToken4());
@@ -2556,7 +2556,7 @@ private:
}
void VisitKeyExpr(const TRule_key_expr& msg) {
- AfterKeyExpr = true;
+ AfterKeyExpr_ = true;
VisitAllFields(TRule_key_expr::GetDescriptor(), msg);
}
@@ -2697,9 +2697,9 @@ private:
void VisitCondExpr(const TRule_cond_expr& msg) {
if (msg.Alt_case() == TRule_cond_expr::kAltCondExpr5) {
for (const auto& block : msg.GetAlt_cond_expr5().GetBlock1()) {
- InCondExpr = true;
+ InCondExpr_ = true;
Visit(block.GetBlock1());
- InCondExpr = false;
+ InCondExpr_ = false;
Visit(block.GetRule_eq_subexpr2());
}
} else {
@@ -2740,12 +2740,12 @@ private:
switch (b.Alt_case()) {
case TRule_neq_subexpr_TBlock3::kAlt1: {
const auto& alt = b.GetAlt1();
- const bool hasFirstNewline = LastLine != ParsedTokens[TokenIndex].Line;
+ const bool hasFirstNewline = LastLine_ != ParsedTokens_[TokenIndex_].Line;
// 2 is `??` size in tokens
- const bool hasSecondNewline = ParsedTokens[TokenIndex].Line != ParsedTokens[TokenIndex + 2].Line;
- const ui32 currentOutLine = OutLine;
+ const bool hasSecondNewline = ParsedTokens_[TokenIndex_].Line != ParsedTokens_[TokenIndex_ + 2].Line;
+ const ui32 currentOutLine = OutLine_;
- if (currentOutLine != OutLine || (hasFirstNewline && hasSecondNewline)) {
+ if (currentOutLine != OutLine_ || (hasFirstNewline && hasSecondNewline)) {
NewLine();
if (!pushedIndent) {
PushCurrentIndent();
@@ -2820,17 +2820,17 @@ private:
void VisitShiftRight(const TRule_shift_right& msg) {
VisitToken(msg.GetToken1());
- InMultiTokenOp = true;
+ InMultiTokenOp_ = true;
VisitToken(msg.GetToken2());
- InMultiTokenOp = false;
+ InMultiTokenOp_ = false;
}
void VisitRotRight(const TRule_rot_right& msg) {
VisitToken(msg.GetToken1());
- InMultiTokenOp = true;
+ InMultiTokenOp_ = true;
VisitToken(msg.GetToken2());
VisitToken(msg.GetToken3());
- InMultiTokenOp = false;
+ InMultiTokenOp_ = false;
}
template <typename TExpr, typename TGetOp, typename TGetExpr, typename TIter>
@@ -2841,13 +2841,13 @@ private:
for (; begin != end; ++begin) {
const auto op = getOp(*begin);
const auto opSize = BinaryOpTokenSize(op);
- const bool hasFirstNewline = LastLine != ParsedTokens[TokenIndex].Line;
- const bool hasSecondNewline = ParsedTokens[TokenIndex].Line != ParsedTokens[TokenIndex + opSize].Line;
- const ui32 currentOutLine = OutLine;
+ const bool hasFirstNewline = LastLine_ != ParsedTokens_[TokenIndex_].Line;
+ const bool hasSecondNewline = ParsedTokens_[TokenIndex_].Line != ParsedTokens_[TokenIndex_ + opSize].Line;
+ const ui32 currentOutLine = OutLine_;
- if (currentOutLine != OutLine || hasFirstNewline || hasSecondNewline) {
+ if (currentOutLine != OutLine_ || hasFirstNewline || hasSecondNewline) {
NewLine();
- if (!pushedIndent && CurrentIndent == ExprLineIndent) {
+ if (!pushedIndent && CurrentIndent_ == ExprLineIndent_) {
PushCurrentIndent();
pushedIndent = true;
}
@@ -2868,58 +2868,58 @@ private:
}
void PushCurrentIndent() {
- CurrentIndent += OneIndent;
+ CurrentIndent_ += OneIndent;
- BlockFirstLine = OutLine;
- if (OutColumn > 0) {
- ++BlockFirstLine;
+ BlockFirstLine_ = OutLine_;
+ if (OutColumn_ > 0) {
+ ++BlockFirstLine_;
}
}
void PopCurrentIndent() {
- CurrentIndent -= OneIndent;
+ CurrentIndent_ -= OneIndent;
}
private:
- const TStaticData& StaticData;
- const TParsedTokenList& ParsedTokens;
- const TParsedTokenList& Comments;
- const bool AnsiLexer;
- TStringBuilder SB;
- ui32 OutColumn = 0;
- ui32 OutLine = 1;
- ui32 LastLine = 0;
- ui32 LastColumn = 0;
- ui32 LastComment = 0;
- ui32 CommentLines = 0;
- i32 CurrentIndent = 0;
- TVector<EScope> Scopes;
- TMaybe<bool> AddLine;
- TMaybe<ui32> StmtCoreAltCase;
- ui64 InsideType = 0;
- bool AfterNamespace = false;
- bool AfterBracket = false;
- bool AfterInvokeExpr = false;
- bool AfterUnaryOp = false;
- bool SkipSpaceAfterUnaryOp = false;
- bool AfterDollarOrAt = false;
- bool AfterDot = false;
- bool AfterDigits = false;
- bool AfterQuestion = false;
- bool AfterLess = false;
- bool AfterKeyExpr = false;
- bool AfterComment = false;
- bool InMultiTokenOp = false;
- bool InCondExpr = false;
- ui32 ForceExpandedLine = 0;
- ui32 ForceExpandedColumn = 0;
- ui32 BlockFirstLine = 1;
- i32 ExprLineIndent = 0;
-
- ui32 TokenIndex = 0;
- TMarkTokenStack MarkTokenStack;
- TVector<TTokenInfo> MarkedTokens;
- ui64 InsideExpr = 0;
+ const TStaticData& StaticData_;
+ const TParsedTokenList& ParsedTokens_;
+ const TParsedTokenList& Comments_;
+ const bool AnsiLexer_;
+ TStringBuilder Sb_;
+ ui32 OutColumn_ = 0;
+ ui32 OutLine_ = 1;
+ ui32 LastLine_ = 0;
+ ui32 LastColumn_ = 0;
+ ui32 LastComment_ = 0;
+ ui32 CommentLines_ = 0;
+ i32 CurrentIndent_ = 0;
+ TVector<EScope> Scopes_;
+ TMaybe<bool> AddLine_;
+ TMaybe<ui32> StmtCoreAltCase_;
+ ui64 InsideType_ = 0;
+ bool AfterNamespace_ = false;
+ bool AfterBracket_ = false;
+ bool AfterInvokeExpr_ = false;
+ bool AfterUnaryOp_ = false;
+ bool SkipSpaceAfterUnaryOp_ = false;
+ bool AfterDollarOrAt_ = false;
+ bool AfterDot_ = false;
+ bool AfterDigits_ = false;
+ bool AfterQuestion_ = false;
+ bool AfterLess_ = false;
+ bool AfterKeyExpr_ = false;
+ bool AfterComment_ = false;
+ bool InMultiTokenOp_ = false;
+ bool InCondExpr_ = false;
+ ui32 ForceExpandedLine_ = 0;
+ ui32 ForceExpandedColumn_ = 0;
+ ui32 BlockFirstLine_ = 1;
+ i32 ExprLineIndent_ = 0;
+
+ ui32 TokenIndex_ = 0;
+ TMarkTokenStack MarkTokenStack_;
+ TVector<TTokenInfo> MarkedTokens_;
+ ui64 InsideExpr_ = 0;
};
template <typename T>
@@ -3110,14 +3110,14 @@ public:
TSqlFormatter(const NSQLTranslationV1::TLexers& lexers,
const NSQLTranslationV1::TParsers& parsers,
const NSQLTranslation::TTranslationSettings& settings)
- : Lexers(lexers)
- , Parsers(parsers)
- , Settings(settings)
+ : Lexers_(lexers)
+ , Parsers_(parsers)
+ , Settings_(settings)
{}
bool Format(const TString& query, TString& formattedQuery, NYql::TIssues& issues, EFormatMode mode) override {
formattedQuery = (mode == EFormatMode::Obfuscate) ? "" : query;
- auto parsedSettings = Settings;
+ auto parsedSettings = Settings_;
if (!NSQLTranslation::ParseTranslationSettings(query, parsedSettings, issues)) {
return false;
}
@@ -3127,7 +3127,7 @@ public:
}
if (mode == EFormatMode::Obfuscate) {
- auto message = NSQLTranslationV1::SqlAST(Parsers, query, parsedSettings.File, issues, NSQLTranslation::SQL_MAX_PARSER_ERRORS, parsedSettings.AnsiLexer, parsedSettings.Antlr4Parser, parsedSettings.Arena);
+ auto message = NSQLTranslationV1::SqlAST(Parsers_, query, parsedSettings.File, issues, NSQLTranslation::SQL_MAX_PARSER_ERRORS, parsedSettings.AnsiLexer, parsedSettings.Antlr4Parser, parsedSettings.Arena);
if (!message) {
return false;
}
@@ -3136,7 +3136,7 @@ public:
return Format(visitor.Process(*message), formattedQuery, issues, EFormatMode::Pretty);
}
- auto lexer = NSQLTranslationV1::MakeLexer(Lexers, parsedSettings.AnsiLexer, parsedSettings.Antlr4Parser);
+ auto lexer = NSQLTranslationV1::MakeLexer(Lexers_, parsedSettings.AnsiLexer, parsedSettings.Antlr4Parser);
TVector<TString> statements;
if (!NSQLTranslationV1::SplitQueryToStatements(query, lexer, statements, issues, parsedSettings.File)) {
return false;
@@ -3162,7 +3162,7 @@ public:
}
NYql::TIssues parserIssues;
- auto message = NSQLTranslationV1::SqlAST(Parsers, currentQuery, parsedSettings.File, parserIssues, NSQLTranslation::SQL_MAX_PARSER_ERRORS, parsedSettings.AnsiLexer, parsedSettings.Antlr4Parser, parsedSettings.Arena);
+ auto message = NSQLTranslationV1::SqlAST(Parsers_, currentQuery, parsedSettings.File, parserIssues, NSQLTranslation::SQL_MAX_PARSER_ERRORS, parsedSettings.AnsiLexer, parsedSettings.Antlr4Parser, parsedSettings.Arena);
if (!message) {
finalFormattedQuery << currentQuery;
if (!currentQuery.EndsWith("\n")) {
@@ -3210,9 +3210,9 @@ public:
}
private:
- const NSQLTranslationV1::TLexers Lexers;
- const NSQLTranslationV1::TParsers Parsers;
- const NSQLTranslation::TTranslationSettings Settings;
+ const NSQLTranslationV1::TLexers Lexers_;
+ const NSQLTranslationV1::TParsers Parsers_;
+ const NSQLTranslation::TTranslationSettings Settings_;
};
}
diff --git a/yql/essentials/sql/v1/insert.cpp b/yql/essentials/sql/v1/insert.cpp
index 4af4986085b..0e4da5c6163 100644
--- a/yql/essentials/sql/v1/insert.cpp
+++ b/yql/essentials/sql/v1/insert.cpp
@@ -23,19 +23,19 @@ class TModifySourceBase: public ISource {
public:
TModifySourceBase(TPosition pos, const TVector<TString>& columnsHint)
: ISource(pos)
- , ColumnsHint(columnsHint)
+ , ColumnsHint_(columnsHint)
{
}
bool AddFilter(TContext& ctx, TNodePtr filter) override {
Y_UNUSED(filter);
- ctx.Error(Pos) << "Source does not allow filtering";
+ ctx.Error(Pos_) << "Source does not allow filtering";
return false;
}
bool AddGroupKey(TContext& ctx, const TString& column) override {
Y_UNUSED(column);
- ctx.Error(Pos) << "Source does not allow grouping";
+ ctx.Error(Pos_) << "Source does not allow grouping";
return false;
}
@@ -58,24 +58,24 @@ public:
}
protected:
- TVector<TString> ColumnsHint;
- TString OperationHumanName;
+ TVector<TString> ColumnsHint_;
+ TString OperationHumanName_;
};
class TUpdateByValues: public TModifySourceBase {
public:
TUpdateByValues(TPosition pos, const TString& operationHumanName, const TVector<TString>& columnsHint, const TVector<TNodePtr>& values)
: TModifySourceBase(pos, columnsHint)
- , OperationHumanName(operationHumanName)
- , Values(values)
+ , OperationHumanName_(operationHumanName)
+ , Values_(values)
{}
bool DoInit(TContext& ctx, ISource* src) override {
- if (ColumnsHint.size() != Values.size()) {
- ctx.Error(Pos) << "VALUES have " << Values.size() << " columns, " << OperationHumanName << " expects: " << ColumnsHint.size();
+ if (ColumnsHint_.size() != Values_.size()) {
+ ctx.Error(Pos_) << "VALUES have " << Values_.size() << " columns, " << OperationHumanName_ << " expects: " << ColumnsHint_.size();
return false;
}
- for (auto& value: Values) {
+ for (auto& value: Values_) {
if (!value->Init(ctx, src)) {
return false;
}
@@ -85,56 +85,56 @@ public:
TNodePtr Build(TContext& ctx) override {
Y_UNUSED(ctx);
- YQL_ENSURE(Values.size() == ColumnsHint.size());
+ YQL_ENSURE(Values_.size() == ColumnsHint_.size());
auto structObj = Y("AsStruct");
- for (size_t i = 0; i < Values.size(); ++i) {
- TString column = ColumnsHint[i];
- TNodePtr value = Values[i];
+ for (size_t i = 0; i < Values_.size(); ++i) {
+ TString column = ColumnsHint_[i];
+ TNodePtr value = Values_[i];
structObj = L(structObj, Q(Y(Q(column), value)));
}
- auto updateRow = BuildLambda(Pos, Y("row"), structObj);
+ auto updateRow = BuildLambda(Pos_, Y("row"), structObj);
return updateRow;
}
TNodePtr DoClone() const final {
- return new TUpdateByValues(Pos, OperationHumanName, ColumnsHint, CloneContainer(Values));
+ return new TUpdateByValues(Pos_, OperationHumanName_, ColumnsHint_, CloneContainer(Values_));
}
private:
- TString OperationHumanName;
+ TString OperationHumanName_;
protected:
- TVector<TNodePtr> Values;
+ TVector<TNodePtr> Values_;
};
class TModifyByValues: public TModifySourceBase {
public:
TModifyByValues(TPosition pos, const TString& operationHumanName, const TVector<TString>& columnsHint, const TVector<TVector<TNodePtr>>& values)
: TModifySourceBase(pos, columnsHint)
- , OperationHumanName(operationHumanName)
- , Values(values)
+ , OperationHumanName_(operationHumanName)
+ , Values_(values)
{
- FakeSource = BuildFakeSource(pos);
+ FakeSource_ = BuildFakeSource(pos);
}
bool DoInit(TContext& ctx, ISource* src) override {
Y_UNUSED(src);
bool hasError = false;
- for (const auto& row: Values) {
- if (ColumnsHint.empty()) {
- ctx.Error(Pos) << OperationHumanName << " ... VALUES requires specification of table columns";
+ for (const auto& row: Values_) {
+ if (ColumnsHint_.empty()) {
+ ctx.Error(Pos_) << OperationHumanName_ << " ... VALUES requires specification of table columns";
hasError = true;
continue;
}
- if (ColumnsHint.size() != row.size()) {
- ctx.Error(Pos) << "VALUES have " << row.size() << " columns, " << OperationHumanName << " expects: " << ColumnsHint.size();
+ if (ColumnsHint_.size() != row.size()) {
+ ctx.Error(Pos_) << "VALUES have " << row.size() << " columns, " << OperationHumanName_ << " expects: " << ColumnsHint_.size();
hasError = true;
continue;
}
for (auto& value: row) {
- if (!value->Init(ctx, FakeSource.Get())) {
+ if (!value->Init(ctx, FakeSource_.Get())) {
hasError = true;
continue;
}
@@ -146,11 +146,11 @@ public:
TNodePtr Build(TContext& ctx) override {
Y_UNUSED(ctx);
auto tuple = Y();
- for (const auto& row: Values) {
+ for (const auto& row: Values_) {
auto rowValues = Y("AsStruct"); // ordered struct
- auto column = ColumnsHint.begin();
+ auto column = ColumnsHint_.begin();
for (auto value: row) {
- rowValues = L(rowValues, Q(Y(BuildQuotedAtom(Pos, *column), value)));
+ rowValues = L(rowValues, Q(Y(BuildQuotedAtom(Pos_, *column), value)));
++column;
}
tuple = L(tuple, rowValues);
@@ -160,46 +160,46 @@ public:
TNodePtr DoClone() const final {
TVector<TVector<TNodePtr>> clonedValues;
- clonedValues.reserve(Values.size());
- for (auto cur: Values) {
+ clonedValues.reserve(Values_.size());
+ for (auto cur: Values_) {
clonedValues.push_back(CloneContainer(cur));
}
- return new TModifyByValues(Pos, OperationHumanName, ColumnsHint, clonedValues);
+ return new TModifyByValues(Pos_, OperationHumanName_, ColumnsHint_, clonedValues);
}
private:
- TString OperationHumanName;
- TVector<TVector<TNodePtr>> Values;
- TSourcePtr FakeSource;
+ TString OperationHumanName_;
+ TVector<TVector<TNodePtr>> Values_;
+ TSourcePtr FakeSource_;
};
class TModifyBySource: public TModifySourceBase {
public:
TModifyBySource(TPosition pos, const TString& operationHumanName, const TVector<TString>& columnsHint, TSourcePtr source)
: TModifySourceBase(pos, columnsHint)
- , OperationHumanName(operationHumanName)
- , Source(std::move(source))
+ , OperationHumanName_(operationHumanName)
+ , Source_(std::move(source))
{}
void GetInputTables(TTableList& tableList) const override {
- if (Source) {
- return Source->GetInputTables(tableList);
+ if (Source_) {
+ return Source_->GetInputTables(tableList);
}
}
bool DoInit(TContext& ctx, ISource* src) override {
- if (!Source->Init(ctx, src)) {
+ if (!Source_->Init(ctx, src)) {
return false;
}
- const size_t numColumns = ColumnsHint.size();
+ const size_t numColumns = ColumnsHint_.size();
if (numColumns) {
- const auto sourceColumns = Source->GetColumns();
+ const auto sourceColumns = Source_->GetColumns();
if (!sourceColumns || sourceColumns->All || sourceColumns->QualifiedAll) {
return true;
}
if (numColumns != sourceColumns->List.size()) {
- ctx.Error(Pos) << "SELECT have " << numColumns << " columns, " << OperationHumanName << " expects: " << ColumnsHint.size();
+ ctx.Error(Pos_) << "SELECT have " << numColumns << " columns, " << OperationHumanName_ << " expects: " << ColumnsHint_.size();
return false;
}
@@ -208,7 +208,7 @@ public:
for (size_t i = 0; i < numColumns; ++i) {
bool hasName = sourceColumns->NamedColumns[i];
if (hasName) {
- const auto& hintColumn = ColumnsHint[i];
+ const auto& hintColumn = ColumnsHint_[i];
const auto& sourceColumn = sourceColumns->List[i];
if (hintColumn != sourceColumn) {
if (!mismatchFound) {
@@ -220,50 +220,50 @@ public:
}
}
if (mismatchFound) {
- ctx.Warning(Pos, TIssuesIds::YQL_SOURCE_SELECT_COLUMN_MISMATCH) << str.Str();
+ ctx.Warning(Pos_, TIssuesIds::YQL_SOURCE_SELECT_COLUMN_MISMATCH) << str.Str();
}
}
return true;
}
TNodePtr Build(TContext& ctx) override {
- auto input = Source->Build(ctx);
- if (ColumnsHint.empty()) {
+ auto input = Source_->Build(ctx);
+ if (ColumnsHint_.empty()) {
return input;
}
auto columns = Y();
- for (auto column: ColumnsHint) {
- columns = L(columns, BuildQuotedAtom(Pos, column));
+ for (auto column: ColumnsHint_) {
+ columns = L(columns, BuildQuotedAtom(Pos_, column));
}
- const auto sourceColumns = Source->GetColumns();
+ const auto sourceColumns = Source_->GetColumns();
if (!sourceColumns || sourceColumns->All || sourceColumns->QualifiedAll || sourceColumns->HasUnnamed) {
// will try to resolve column mapping on type annotation stage
return Y("OrderedSqlRename", input, Q(columns));
}
- YQL_ENSURE(sourceColumns->List.size() == ColumnsHint.size());
- auto srcColumn = Source->GetColumns()->List.begin();
- auto structObj = Y("AsStruct"); // ordered struct
- for (auto column: ColumnsHint) {
- structObj = L(structObj, Q(Y(BuildQuotedAtom(Pos, column),
- Y("Member", "row", BuildQuotedAtom(Pos, *srcColumn))
+ YQL_ENSURE(sourceColumns->List.size() == ColumnsHint_.size());
+ auto srcColumn = Source_->GetColumns()->List.begin();
+ auto structObj = Y("AsStruct"); // ordered struct
+ for (auto column: ColumnsHint_) {
+ structObj = L(structObj, Q(Y(BuildQuotedAtom(Pos_, column),
+ Y("Member", "row", BuildQuotedAtom(Pos_, *srcColumn))
)));
++srcColumn;
}
- return Y("AssumeColumnOrder", Y("OrderedMap", input, BuildLambda(Pos, Y("row"), structObj)), Q(columns));
+ return Y("AssumeColumnOrder", Y("OrderedMap", input, BuildLambda(Pos_, Y("row"), structObj)), Q(columns));
}
TNodePtr DoClone() const final {
- return new TModifyBySource(Pos, OperationHumanName, ColumnsHint, Source->CloneSource());
+ return new TModifyBySource(Pos_, OperationHumanName_, ColumnsHint_, Source_->CloneSource());
}
EOrderKind GetOrderKind() const final {
- return Source->GetOrderKind();
+ return Source_->GetOrderKind();
}
private:
- TString OperationHumanName;
- TSourcePtr Source;
+ TString OperationHumanName_;
+ TSourcePtr Source_;
};
TSourcePtr BuildWriteValues(TPosition pos, const TString& operationHumanName, const TVector<TString>& columnsHint, const TVector<TVector<TNodePtr>>& values) {
@@ -283,85 +283,85 @@ public:
TWriteColumnsNode(TPosition pos, TScopedStatePtr scoped,
const TTableRef& table, EWriteColumnMode mode, TSourcePtr values = nullptr, TNodePtr options = nullptr)
: TAstListNode(pos)
- , Scoped(scoped)
- , Table(table)
- , Mode(mode)
- , Values(std::move(values))
- , Options(std::move(options))
+ , Scoped_(scoped)
+ , Table_(table)
+ , Mode_(mode)
+ , Values_(std::move(values))
+ , Options_(std::move(options))
{
- FakeSource = BuildFakeSource(pos);
+ FakeSource_ = BuildFakeSource(pos);
}
void ResetSource(TSourcePtr source) {
- TableSource = std::move(source);
+ TableSource_ = std::move(source);
}
void ResetUpdate(TSourcePtr update) {
- Update = std::move(update);
+ Update_ = std::move(update);
}
void ResetIsBatch(bool isBatch) {
- IsBatch = isBatch;
+ IsBatch_ = isBatch;
}
bool DoInit(TContext& ctx, ISource* src) override {
TTableList tableList;
TNodePtr values;
auto options = Y();
- if (Options) {
- if (!Options->Init(ctx, src)) {
+ if (Options_) {
+ if (!Options_->Init(ctx, src)) {
return false;
}
- options = L(Options);
+ options = L(Options_);
}
ISource* underlyingSrc = src;
- if (TableSource) {
- if (!TableSource->Init(ctx, src) || !TableSource->InitFilters(ctx)) {
+ if (TableSource_) {
+ if (!TableSource_->Init(ctx, src) || !TableSource_->InitFilters(ctx)) {
return false;
}
- options = L(options, Q(Y(Q("filter"), TableSource->BuildFilterLambda())));
+ options = L(options, Q(Y(Q("filter"), TableSource_->BuildFilterLambda())));
}
bool unordered = false;
- if (Values) {
- if (!Values->Init(ctx, TableSource.Get())) {
+ if (Values_) {
+ if (!Values_->Init(ctx, TableSource_.Get())) {
return false;
}
- Values->GetInputTables(tableList);
- underlyingSrc = Values.Get();
- values = Values->Build(ctx);
+ Values_->GetInputTables(tableList);
+ underlyingSrc = Values_.Get();
+ values = Values_->Build(ctx);
if (!values) {
return false;
}
- unordered = (EOrderKind::None == Values->GetOrderKind());
+ unordered = (EOrderKind::None == Values_->GetOrderKind());
}
- TNodePtr node(BuildInputTables(Pos, tableList, false, Scoped));
+ TNodePtr node(BuildInputTables(Pos_, tableList, false, Scoped_));
if (!node->Init(ctx, underlyingSrc)) {
return false;
}
- if (Update) {
- if (!Update->Init(ctx, TableSource.Get()) || !Update->InitFilters(ctx)) {
+ if (Update_) {
+ if (!Update_->Init(ctx, TableSource_.Get()) || !Update_->InitFilters(ctx)) {
return false;
}
- options = L(options, Q(Y(Q("update"), Update->Build(ctx))));
+ options = L(options, Q(Y(Q("update"), Update_->Build(ctx))));
}
- if (IsBatch) {
+ if (IsBatch_) {
options = L(options, Q(Y(Q("is_batch"), Q("true"))));
}
- auto write = BuildWriteTable(Pos, "values", Table, Mode, std::move(options), Scoped);
- if (!write->Init(ctx, FakeSource.Get())) {
+ auto write = BuildWriteTable(Pos_, "values", Table_, Mode_, std::move(options), Scoped_);
+ if (!write->Init(ctx, FakeSource_.Get())) {
return false;
}
if (values) {
node = L(node, Y("let", "values", values));
- if (unordered && ctx.UseUnordered(Table)) {
+ if (unordered && ctx.UseUnordered(Table_)) {
node = L(node, Y("let", "values", Y("Unordered", "values")));
}
} else {
@@ -379,15 +379,15 @@ public:
}
protected:
- TScopedStatePtr Scoped;
- TTableRef Table;
- TSourcePtr TableSource;
- EWriteColumnMode Mode;
- TSourcePtr Values;
- TSourcePtr Update;
- TSourcePtr FakeSource;
- TNodePtr Options;
- bool IsBatch = false;
+ TScopedStatePtr Scoped_;
+ TTableRef Table_;
+ TSourcePtr TableSource_;
+ EWriteColumnMode Mode_;
+ TSourcePtr Values_;
+ TSourcePtr Update_;
+ TSourcePtr FakeSource_;
+ TNodePtr Options_;
+ bool IsBatch_ = false;
};
EWriteColumnMode ToWriteColumnsMode(ESQLWriteColumnMode sqlWriteColumnMode) {
@@ -434,7 +434,7 @@ class TEraseColumnsNode: public TAstListNode {
public:
TEraseColumnsNode(TPosition pos, const TVector<TString>& columns)
: TAstListNode(pos)
- , Columns(columns)
+ , Columns_(columns)
{
}
@@ -443,7 +443,7 @@ public:
Y_UNUSED(src);
TNodePtr columnList = Y();
- for (const auto& column: Columns) {
+ for (const auto& column: Columns_) {
columnList->Add(Q(column));
}
@@ -453,11 +453,11 @@ public:
}
TNodePtr DoClone() const final {
- return new TEraseColumnsNode(GetPos(), Columns);
+ return new TEraseColumnsNode(GetPos(), Columns_);
}
private:
- TVector<TString> Columns;
+ TVector<TString> Columns_;
};
diff --git a/yql/essentials/sql/v1/join.cpp b/yql/essentials/sql/v1/join.cpp
index 11044d559de..cec0d6293e8 100644
--- a/yql/essentials/sql/v1/join.cpp
+++ b/yql/essentials/sql/v1/join.cpp
@@ -43,14 +43,14 @@ class TJoinBase: public IJoin {
public:
TJoinBase(TPosition pos, TVector<TSourcePtr>&& sources, TVector<bool>&& anyFlags)
: IJoin(pos)
- , Sources(std::move(sources))
- , AnyFlags(std::move(anyFlags))
+ , Sources_(std::move(sources))
+ , AnyFlags_(std::move(anyFlags))
{
- YQL_ENSURE(Sources.size() == AnyFlags.size());
+ YQL_ENSURE(Sources_.size() == AnyFlags_.size());
}
void AllColumns() override {
- for (auto& source: Sources) {
+ for (auto& source: Sources_) {
source->AllColumns();
}
}
@@ -61,7 +61,7 @@ public:
return true;
}
if (const auto sourceName = *column.GetSourceName()) {
- for (auto& source: Sources) {
+ for (auto& source: Sources_) {
if (sourceName == source->GetLabel()) {
srcByName = source.Get();
break;
@@ -84,7 +84,7 @@ public:
if (srcByName) {
srcByName->AllColumns();
} else {
- for (auto& source: Sources) {
+ for (auto& source: Sources_) {
source->AllColumns();
}
}
@@ -96,7 +96,7 @@ public:
if (!srcByName->AddColumn(ctx, column)) {
return {};
}
- if (!KeysInitializing && !column.IsAsterisk()) {
+ if (!KeysInitializing_ && !column.IsAsterisk()) {
column.SetUseSource();
}
return true;
@@ -105,7 +105,7 @@ public:
TIntrusivePtr<TColumnNode> tryColumn = static_cast<TColumnNode*>(column.Clone().Get());
tryColumn->SetAsNotReliable();
TString lastAcceptedColumnSource;
- for (auto& source: Sources) {
+ for (auto& source: Sources_) {
if (source->AddColumn(ctx, *tryColumn)) {
++acceptedColumns;
lastAcceptedColumnSource = source->GetLabel();
@@ -115,7 +115,7 @@ public:
TStringBuilder sb;
const auto& fullColumnName = FullColumnName(column);
sb << "Column " << fullColumnName << " is not fit to any source";
- for (auto& source: Sources) {
+ for (auto& source: Sources_) {
if (const auto mistype = source->FindColumnMistype(fullColumnName)) {
sb << ". Did you mean " << mistype.GetRef() << "?";
break;
@@ -131,30 +131,30 @@ public:
}
const TColumns* GetColumns() const override {
- YQL_ENSURE(IsColumnDone, "Unable to GetColumns while it's not finished");
- return &JoinedColumns;
+ YQL_ENSURE(IsColumnDone_, "Unable to GetColumns while it's not finished");
+ return &JoinedColumns_;
}
void GetInputTables(TTableList& tableList) const override {
- for (auto& src: Sources) {
+ for (auto& src: Sources_) {
src->GetInputTables(tableList);
}
ISource::GetInputTables(tableList);
}
TNodePtr BuildJoinKeys(TContext& ctx, const TVector<TDeferredAtom>& names) override {
- const size_t n = JoinOps.size();
- TString what(Sources[n]->GetLabel());
+ const size_t n = JoinOps_.size();
+ TString what(Sources_[n]->GetLabel());
static const TSet<TString> noRightSourceJoinOps = {"LeftOnly", "LeftSemi"};
- for (size_t nn = n; nn > 0 && noRightSourceJoinOps.contains(JoinOps[nn-1]); --nn) {
- what = Sources[nn-1]->GetLabel();
+ for (size_t nn = n; nn > 0 && noRightSourceJoinOps.contains(JoinOps_[nn-1]); --nn) {
+ what = Sources_[nn-1]->GetLabel();
}
- const TString with(Sources[n + 1]->GetLabel());
+ const TString with(Sources_[n + 1]->GetLabel());
for (auto index = n; index <= n + 1; ++index) {
- const auto& label = Sources[index]->GetLabel();
+ const auto& label = Sources_[index]->GetLabel();
if (label.Contains('.')) {
- ctx.Error(Sources[index]->GetPos()) << "Invalid label: " << label << ", unable to use name with dot symbol, you should use AS <simple alias name>";
+ ctx.Error(Sources_[index]->GetPos()) << "Invalid label: " << label << ", unable to use name with dot symbol, you should use AS <simple alias name>";
return nullptr;
}
}
@@ -169,8 +169,8 @@ public:
TPosition pos(ctx.Pos());
TNodePtr expr;
for (auto& name: names) {
- auto lhs = BuildColumn(Pos, name, what);
- auto rhs = BuildColumn(Pos, name, with);
+ auto lhs = BuildColumn(Pos_, name, what);
+ auto rhs = BuildColumn(Pos_, name, with);
if (!lhs || !rhs) {
return nullptr;
}
@@ -181,7 +181,7 @@ public:
expr = eq;
}
}
- if (expr && Sources.size() > 2) {
+ if (expr && Sources_.size() > 2) {
ctx.Error() << "Multi-way JOINs should be connected with ON clause instead of USING clause";
return nullptr;
}
@@ -191,13 +191,13 @@ public:
bool DoInit(TContext& ctx, ISource* src) override;
void SetupJoin(const TString& opName, TNodePtr expr, const TJoinLinkSettings& linkSettings) override {
- JoinOps.push_back(opName);
- JoinExprs.push_back(expr);
- JoinLinkSettings.push_back(linkSettings);
+ JoinOps_.push_back(opName);
+ JoinExprs_.push_back(expr);
+ JoinLinkSettings_.push_back(linkSettings);
}
bool IsStream() const override {
- return AnyOf(Sources, [] (const TSourcePtr& s) { return s->IsStream(); });
+ return AnyOf(Sources_, [] (const TSourcePtr& s) { return s->IsStream(); });
}
protected:
@@ -208,8 +208,8 @@ protected:
}
bool InitKeysOrFilters(TContext& ctx, ui32 joinIdx, TNodePtr expr) {
- const TString joinOp(JoinOps[joinIdx]);
- const TJoinLinkSettings linkSettings(JoinLinkSettings[joinIdx]);
+ const TString joinOp(JoinOps_[joinIdx]);
+ const TJoinLinkSettings linkSettings(JoinLinkSettings_[joinIdx]);
const TCallNode* op = nullptr;
if (expr) {
const TString opName(expr->GetOpName());
@@ -225,7 +225,7 @@ protected:
ui32 idx = 0;
THashMap<TString, ui32> sources;
- for (auto& source: Sources) {
+ for (auto& source: Sources_) {
auto label = source->GetLabel();
if (!label) {
ctx.Error(source->GetPos()) << "JOIN: missing correlation name for source";
@@ -234,8 +234,8 @@ protected:
sources.insert({ source->GetLabel(), idx });
++idx;
}
- if (sources.size() != Sources.size()) {
- ctx.Error(expr ? expr->GetPos() : Pos) << "JOIN: all correlation names must be different";
+ if (sources.size() != Sources_.size()) {
+ ctx.Error(expr ? expr->GetPos() : Pos_) << "JOIN: all correlation names must be different";
return false;
}
@@ -309,7 +309,7 @@ protected:
}
if (joinedSources.size() == 1) {
- ctx.Error(expr ? expr->GetPos() : Pos) << "JOIN: different correlation names are required for joined tables";
+ ctx.Error(expr ? expr->GetPos() : Pos_) << "JOIN: different correlation names are required for joined tables";
return false;
}
@@ -324,7 +324,7 @@ protected:
}
}
- KeysInitializing = true;
+ KeysInitializing_ = true;
if (op) {
for (auto& arg : op->GetArgs()) {
if (!arg->Init(ctx, this)) {
@@ -334,55 +334,55 @@ protected:
Y_DEBUG_ABORT_UNLESS(leftSource);
if (sameColumnNamePtr) {
- SameKeyMap[*sameColumnNamePtr].insert(*leftSource);
- SameKeyMap[*sameColumnNamePtr].insert(*rightSource);
+ SameKeyMap_[*sameColumnNamePtr].insert(*leftSource);
+ SameKeyMap_[*sameColumnNamePtr].insert(*rightSource);
}
}
- if (joinIdx == JoinDescrs.size()) {
+ if (joinIdx == JoinDescrs_.size()) {
TJoinDescr newDescr(joinOp);
newDescr.LinkSettings = linkSettings;
- JoinDescrs.push_back(std::move(newDescr));
+ JoinDescrs_.push_back(std::move(newDescr));
}
- JoinDescrs.back().Keys.push_back({ { leftSourceIdx, op ? op->GetArgs()[leftArg] : nullptr},
+ JoinDescrs_.back().Keys.push_back({ { leftSourceIdx, op ? op->GetArgs()[leftArg] : nullptr},
{ rightSourceIdx, op ? op->GetArgs()[rightArg] : nullptr } });
- KeysInitializing = false;
+ KeysInitializing_ = false;
return true;
}
bool IsJoinKeysInitializing() const override {
- return KeysInitializing;
+ return KeysInitializing_;
}
protected:
- TVector<TString> JoinOps;
- TVector<TNodePtr> JoinExprs;
- TVector<TJoinLinkSettings> JoinLinkSettings;
- TVector<TJoinDescr> JoinDescrs;
- THashMap<TString, THashSet<TString>> SameKeyMap;
- const TVector<TSourcePtr> Sources;
- const TVector<bool> AnyFlags;
- TColumns JoinedColumns;
- bool KeysInitializing = false;
- bool IsColumnDone = false;
+ TVector<TString> JoinOps_;
+ TVector<TNodePtr> JoinExprs_;
+ TVector<TJoinLinkSettings> JoinLinkSettings_;
+ TVector<TJoinDescr> JoinDescrs_;
+ THashMap<TString, THashSet<TString>> SameKeyMap_;
+ const TVector<TSourcePtr> Sources_;
+ const TVector<bool> AnyFlags_;
+ TColumns JoinedColumns_;
+ bool KeysInitializing_ = false;
+ bool IsColumnDone_ = false;
void FinishColumns() override {
- if (IsColumnDone) {
+ if (IsColumnDone_) {
return;
}
- YQL_ENSURE(JoinOps.size()+1 == Sources.size());
+ YQL_ENSURE(JoinOps_.size()+1 == Sources_.size());
bool excludeNextSource = false;
- decltype(JoinOps)::const_iterator opIter = JoinOps.begin();
- for (auto& src: Sources) {
+ decltype(JoinOps_)::const_iterator opIter = JoinOps_.begin();
+ for (auto& src: Sources_) {
if (excludeNextSource) {
excludeNextSource = false;
- if (opIter != JoinOps.end()) {
+ if (opIter != JoinOps_.end()) {
++opIter;
}
continue;
}
- if (opIter != JoinOps.end()) {
+ if (opIter != JoinOps_.end()) {
auto joinOper = *opIter;
++opIter;
if (joinOper == "LeftSemi" || joinOper == "LeftOnly") {
@@ -399,14 +399,14 @@ protected:
TColumns upColumns;
upColumns.Merge(*columnsPtr);
upColumns.SetPrefix(src->GetLabel());
- JoinedColumns.Merge(upColumns);
+ JoinedColumns_.Merge(upColumns);
}
- IsColumnDone = true;
+ IsColumnDone_ = true;
}
};
bool TJoinBase::DoInit(TContext& ctx, ISource* initSrc) {
- for (auto& source: Sources) {
+ for (auto& source: Sources_) {
if (!source->Init(ctx, initSrc)) {
return false;
}
@@ -421,19 +421,19 @@ bool TJoinBase::DoInit(TContext& ctx, ISource* initSrc) {
}
}
- YQL_ENSURE(JoinOps.size() == JoinExprs.size(), "Invalid join exprs number");
- YQL_ENSURE(JoinOps.size() == JoinLinkSettings.size());
+ YQL_ENSURE(JoinOps_.size() == JoinExprs_.size(), "Invalid join exprs number");
+ YQL_ENSURE(JoinOps_.size() == JoinLinkSettings_.size());
const TSet<TString> allowedJoinOps = {"Inner", "Left", "Right", "Full", "LeftOnly", "RightOnly", "Exclusion", "LeftSemi", "RightSemi", "Cross"};
- for (auto& opName: JoinOps) {
+ for (auto& opName: JoinOps_) {
if (!allowedJoinOps.contains(opName)) {
- ctx.Error(Pos) << "Invalid join op: " << opName;
+ ctx.Error(Pos_) << "Invalid join op: " << opName;
return false;
}
}
ui32 idx = 0;
- for (auto expr: JoinExprs) {
+ for (auto expr: JoinExprs_) {
if (expr) {
TDeque<TNodePtr> conjQueue;
conjQueue.push_back(expr);
@@ -457,15 +457,15 @@ bool TJoinBase::DoInit(TContext& ctx, ISource* initSrc) {
}
TSet<ui32> joinedSources;
- for (auto& descr: JoinDescrs) {
+ for (auto& descr: JoinDescrs_) {
for (auto& key : descr.Keys) {
joinedSources.insert(key.first.Source);
joinedSources.insert(key.second.Source);
}
}
- for (idx = 0; idx < Sources.size(); ++idx) {
+ for (idx = 0; idx < Sources_.size(); ++idx) {
if (!joinedSources.contains(idx)) {
- ctx.Error(Sources[idx]->GetPos()) << "Source: " << Sources[idx]->GetLabel() << " was not used in join expressions";
+ ctx.Error(Sources_[idx]->GetPos()) << "Source: " << Sources_[idx]->GetLabel() << " was not used in join expressions";
return false;
}
}
@@ -477,21 +477,21 @@ class TEquiJoin: public TJoinBase {
public:
TEquiJoin(TPosition pos, TVector<TSourcePtr>&& sources, TVector<bool>&& anyFlags, bool strictJoinKeyTypes)
: TJoinBase(pos, std::move(sources), std::move(anyFlags))
- , StrictJoinKeyTypes(strictJoinKeyTypes)
+ , StrictJoinKeyTypes_(strictJoinKeyTypes)
{
}
TNodePtr Build(TContext& ctx) override {
TMap<std::pair<TString, TString>, TNodePtr> extraColumns;
TNodePtr joinTree;
- for (auto& descr: JoinDescrs) {
+ for (auto& descr: JoinDescrs_) {
auto leftBranch = joinTree;
bool leftAny = false;
if (!leftBranch) {
- leftBranch = BuildQuotedAtom(Pos, Sources[descr.Keys[0].first.Source]->GetLabel());
- leftAny = AnyFlags[descr.Keys[0].first.Source];
+ leftBranch = BuildQuotedAtom(Pos_, Sources_[descr.Keys[0].first.Source]->GetLabel());
+ leftAny = AnyFlags_[descr.Keys[0].first.Source];
}
- bool rightAny = AnyFlags[descr.Keys[0].second.Source];
+ bool rightAny = AnyFlags_[descr.Keys[0].second.Source];
auto leftKeys = GetColumnNames(ctx, extraColumns, descr.Keys, true);
auto rightKeys = GetColumnNames(ctx, extraColumns, descr.Keys, false);
if (!leftKeys || !rightKeys) {
@@ -526,7 +526,7 @@ public:
joinTree = Q(Y(
Q(descr.Op),
leftBranch,
- BuildQuotedAtom(Pos, Sources[descr.Keys[0].second.Source]->GetLabel()),
+ BuildQuotedAtom(Pos_, Sources_[descr.Keys[0].second.Source]->GetLabel()),
leftKeys,
rightKeys,
Q(linkOptions)
@@ -535,8 +535,8 @@ public:
TNodePtr equiJoin(Y("EquiJoin"));
bool ordered = false;
- for (size_t i = 0; i < Sources.size(); ++i) {
- auto& source = Sources[i];
+ for (size_t i = 0; i < Sources_.size(); ++i) {
+ auto& source = Sources_[i];
auto sourceNode = source->Build(ctx);
if (!sourceNode) {
return nullptr;
@@ -559,10 +559,10 @@ public:
return nullptr;
}
- block = L(block, Y("let", "flatten", Y(useOrderedForSource ? "OrderedFlatMap" : "FlatMap", "flatten", BuildLambda(Pos, Y("row"), premap))));
+ block = L(block, Y("let", "flatten", Y(useOrderedForSource ? "OrderedFlatMap" : "FlatMap", "flatten", BuildLambda(Pos_, Y("row"), premap))));
}
- block = L(block, Y("let", "flatten", Y(useOrderedForSource ? "OrderedFlatMap" : "FlatMap", "flatten", BuildLambda(Pos, Y("row"), flatten, "res"))));
+ block = L(block, Y("let", "flatten", Y(useOrderedForSource ? "OrderedFlatMap" : "FlatMap", "flatten", BuildLambda(Pos_, Y("row"), flatten, "res"))));
sourceNode = Y("block", Q(L(block, Y("return", "flatten"))));
}
TNodePtr extraMembers;
@@ -579,7 +579,7 @@ public:
);
}
if (extraMembers) {
- sourceNode = Y(useOrderedForSource ? "OrderedMap" : "Map", sourceNode, BuildLambda(Pos, Y("row"), extraMembers, "row"));
+ sourceNode = Y(useOrderedForSource ? "OrderedMap" : "Map", sourceNode, BuildLambda(Pos_, Y("row"), extraMembers, "row"));
}
sourceNode = Y("RemoveSystemMembers", sourceNode);
equiJoin = L(equiJoin, Q(Y(sourceNode, BuildQuotedAtom(source->GetPos(), source->GetLabel()))));
@@ -591,27 +591,27 @@ public:
}
removeMembers = L(
removeMembers,
- Y("let", "row", Y("ForceRemoveMember", "row", BuildQuotedAtom(Pos, DotJoin(it.first.first, it.first.second))))
+ Y("let", "row", Y("ForceRemoveMember", "row", BuildQuotedAtom(Pos_, DotJoin(it.first.first, it.first.second))))
);
}
auto options = Y();
- if (StrictJoinKeyTypes) {
+ if (StrictJoinKeyTypes_) {
options = L(options, Q(Y(Q("strict_keys"))));
}
equiJoin = L(equiJoin, joinTree, Q(options));
if (removeMembers) {
- equiJoin = Y(ordered ? "OrderedMap" : "Map", equiJoin, BuildLambda(Pos, Y("row"), removeMembers, "row"));
+ equiJoin = Y(ordered ? "OrderedMap" : "Map", equiJoin, BuildLambda(Pos_, Y("row"), removeMembers, "row"));
}
return equiJoin;
}
const THashMap<TString, THashSet<TString>>& GetSameKeysMap() const override {
- return SameKeyMap;
+ return SameKeyMap_;
}
TVector<TString> GetJoinLabels() const override {
TVector<TString> labels;
- for (auto& source: Sources) {
+ for (auto& source: Sources_) {
const auto label = source->GetLabel();
YQL_ENSURE(label);
labels.push_back(label);
@@ -621,13 +621,13 @@ public:
TPtr DoClone() const final {
TVector<TSourcePtr> clonedSources;
- for (auto& cur: Sources) {
+ for (auto& cur: Sources_) {
clonedSources.push_back(cur->CloneSource());
}
- auto newSource = MakeIntrusive<TEquiJoin>(Pos, std::move(clonedSources), TVector<bool>(AnyFlags), StrictJoinKeyTypes);
- newSource->JoinOps = JoinOps;
- newSource->JoinExprs = CloneContainer(JoinExprs);
- newSource->JoinLinkSettings = JoinLinkSettings;
+ auto newSource = MakeIntrusive<TEquiJoin>(Pos_, std::move(clonedSources), TVector<bool>(AnyFlags_), StrictJoinKeyTypes_);
+ newSource->JoinOps_ = JoinOps_;
+ newSource->JoinExprs_ = CloneContainer(JoinExprs_);
+ newSource->JoinLinkSettings_ = JoinLinkSettings_;
return newSource;
}
@@ -641,7 +641,7 @@ private:
Y_UNUSED(ctx);
auto res = Y();
for (auto& it: keys) {
- auto tableName = Sources[left ? it.first.Source : it.second.Source]->GetLabel();
+ auto tableName = Sources_[left ? it.first.Source : it.second.Source]->GetLabel();
TString columnName;
auto column = left ? it.first.Column : it.second.Column;
if (!column) {
@@ -657,14 +657,14 @@ private:
extraColumns.insert({ std::make_pair(tableName, columnName), column });
}
- res = L(res, BuildQuotedAtom(Pos, tableName));
- res = L(res, BuildQuotedAtom(Pos, columnName));
+ res = L(res, BuildQuotedAtom(Pos_, tableName));
+ res = L(res, BuildQuotedAtom(Pos_, columnName));
}
return Q(res);
}
- const bool StrictJoinKeyTypes;
+ const bool StrictJoinKeyTypes_;
};
TSourcePtr BuildEquiJoin(TPosition pos, TVector<TSourcePtr>&& sources, TVector<bool>&& anyFlags, bool strictJoinKeyTypes) {
diff --git a/yql/essentials/sql/v1/lexer/lexer.cpp b/yql/essentials/sql/v1/lexer/lexer.cpp
index 88ced55ccf4..543d0ccfd93 100644
--- a/yql/essentials/sql/v1/lexer/lexer.cpp
+++ b/yql/essentials/sql/v1/lexer/lexer.cpp
@@ -31,7 +31,7 @@ using NSQLTranslation::MakeDummyLexerFactory;
class TV1Lexer : public ILexer {
public:
explicit TV1Lexer(const TLexers& lexers, bool ansi, bool antlr4, ELexerFlavor flavor)
- : Factory(GetFactory(lexers, ansi, antlr4, flavor))
+ : Factory_(GetFactory(lexers, ansi, antlr4, flavor))
{
}
@@ -39,7 +39,7 @@ public:
#if defined(_tsan_enabled_)
TGuard<TMutex> grd(SanitizerSQLTranslationMutex);
#endif
- return Factory->MakeLexer()->Tokenize(query, queryName, onNextToken, issues, maxErrors);
+ return Factory_->MakeLexer()->Tokenize(query, queryName, onNextToken, issues, maxErrors);
}
private:
@@ -100,7 +100,7 @@ private:
}
private:
- NSQLTranslation::TLexerFactoryPtr Factory;
+ NSQLTranslation::TLexerFactoryPtr Factory_;
};
} // namespace
@@ -273,7 +273,7 @@ void SplitByStatements(TTokenIterator begin, TTokenIterator end, TVector<TTokenI
}
bool SplitQueryToStatements(
- const TString& query, NSQLTranslation::ILexer::TPtr& lexer,
+ const TString& query, NSQLTranslation::ILexer::TPtr& lexer,
TVector<TString>& statements, NYql::TIssues& issues, const TString& file,
bool areBlankSkipped) {
TParsedTokenList allTokens;
diff --git a/yql/essentials/sql/v1/list_builtin.cpp b/yql/essentials/sql/v1/list_builtin.cpp
index c059768cb4d..a6965a70755 100644
--- a/yql/essentials/sql/v1/list_builtin.cpp
+++ b/yql/essentials/sql/v1/list_builtin.cpp
@@ -5,57 +5,57 @@ using namespace NYql;
namespace NSQLTranslationV1 {
TAstNode* TListBuiltin::Translate(TContext& ctx) const {
- Y_DEBUG_ABORT_UNLESS(Node);
- return Node->Translate(ctx);
+ Y_DEBUG_ABORT_UNLESS(Node_);
+ return Node_->Translate(ctx);
}
TNodePtr TListBuiltin::GetIdentityLambda() {
- return BuildLambda(Pos, Y("arg"), Y(), "arg");
+ return BuildLambda(Pos_, Y("arg"), Y(), "arg");
}
bool TListSortBuiltin::DoInit(TContext& ctx, ISource* src) {
- if (Args.size() < 1 || Args.size() > 2) {
- ctx.Error(Pos) << OpName << " requires one or two parameters.";
+ if (Args_.size() < 1 || Args_.size() > 2) {
+ ctx.Error(Pos_) << OpName_ << " requires one or two parameters.";
return false;
}
- if (!Args[0]->Init(ctx, src)) {
+ if (!Args_[0]->Init(ctx, src)) {
return false;
}
- if (Args.size() == 2) {
- if (!Args[1]->Init(ctx, src)) {
+ if (Args_.size() == 2) {
+ if (!Args_[1]->Init(ctx, src)) {
return false;
}
} else {
- Args.push_back(GetIdentityLambda());
+ Args_.push_back(GetIdentityLambda());
}
- Node = Y(OpName, Args[0], Y("Bool", Q(Asc ? "true" : "false")), Args[1]);
+ Node_ = Y(OpName_, Args_[0], Y("Bool", Q(Asc_ ? "true" : "false")), Args_[1]);
return true;
}
bool TListExtractBuiltin::DoInit(TContext& ctx, ISource* src) {
- if (Args.size() != 2) {
- ctx.Error(Pos) << OpName << " requires exactly two parameters.";
+ if (Args_.size() != 2) {
+ ctx.Error(Pos_) << OpName_ << " requires exactly two parameters.";
return false;
}
- for (const auto& arg : Args) {
+ for (const auto& arg : Args_) {
if (!arg->Init(ctx, src)) {
return false;
}
}
- Args[1] = MakeAtomFromExpression(Pos, ctx, Args[1]).Build();
- Node = Y(OpName, Args[0], Args[1]);
+ Args_[1] = MakeAtomFromExpression(Pos_, ctx, Args_[1]).Build();
+ Node_ = Y(OpName_, Args_[0], Args_[1]);
return true;
}
bool TListProcessBuiltin::CheckArgs(TContext& ctx, ISource* src) {
- if (Args.size() != 2 ) {
- ctx.Error(Pos) << OpName << " requires exactly two parameters";
+ if (Args_.size() != 2 ) {
+ ctx.Error(Pos_) << OpName_ << " requires exactly two parameters";
return false;
}
- for (const auto& arg : Args) {
+ for (const auto& arg : Args_) {
if (!arg->Init(ctx, src)) {
return false;
}
@@ -68,7 +68,7 @@ bool TListMapBuiltin::DoInit(TContext& ctx, ISource* src) {
if (!CheckArgs(ctx, src)) {
return false;
};
- Node = Y(OpName, Args[0], Args[1]);
+ Node_ = Y(OpName_, Args_[0], Args_[1]);
return true;
}
@@ -77,66 +77,66 @@ bool TListFilterBuiltin::DoInit(TContext& ctx, ISource* src) {
if (!CheckArgs(ctx, src)) {
return false;
};
- Node = Y(OpName, Args[0], GetFilterLambda());
+ Node_ = Y(OpName_, Args_[0], GetFilterLambda());
return true;
}
TNodePtr TListFilterBuiltin::GetFilterLambda() {
- return BuildLambda(Pos, Y("item"), Y("Coalesce", Y("Apply", Args[1], "item"), Y("Bool", Q("false"))));
+ return BuildLambda(Pos_, Y("item"), Y("Coalesce", Y("Apply", Args_[1], "item"), Y("Bool", Q("false"))));
}
bool TListCreateBuiltin::DoInit(TContext& ctx, ISource* src) {
- if (Args.size() != 1) {
- ctx.Error(Pos) << OpName << " requires only one parameter";
+ if (Args_.size() != 1) {
+ ctx.Error(Pos_) << OpName_ << " requires only one parameter";
return false;
}
- if (!Args[0]->Init(ctx, src)) {
+ if (!Args_[0]->Init(ctx, src)) {
return false;
}
- Node = Y("List", Y("ListType", Args[0]));
+ Node_ = Y("List", Y("ListType", Args_[0]));
return true;
}
void TListCreateBuiltin::DoUpdateState() const {
- State.Set(ENodeState::Const);
+ State_.Set(ENodeState::Const);
}
bool TDictCreateBuiltin::DoInit(TContext& ctx, ISource* src) {
- if (Args.size() != 2) {
- ctx.Error(Pos) << OpName << " requires two parameters";
+ if (Args_.size() != 2) {
+ ctx.Error(Pos_) << OpName_ << " requires two parameters";
return false;
}
for (ui32 i = 0; i < 2; ++i) {
- if (!Args[i]->Init(ctx, src)) {
+ if (!Args_[i]->Init(ctx, src)) {
return false;
}
}
- Node = Y("Dict", Y("DictType", Args[0], Args[1]));
+ Node_ = Y("Dict", Y("DictType", Args_[0], Args_[1]));
return true;
}
void TDictCreateBuiltin::DoUpdateState() const {
- State.Set(ENodeState::Const);
+ State_.Set(ENodeState::Const);
}
bool TSetCreateBuiltin::DoInit(TContext& ctx, ISource* src) {
- if (Args.size() != 1) {
- ctx.Error(Pos) << OpName << " requires one parameter";
+ if (Args_.size() != 1) {
+ ctx.Error(Pos_) << OpName_ << " requires one parameter";
return false;
}
- if (!Args[0]->Init(ctx, src)) {
+ if (!Args_[0]->Init(ctx, src)) {
return false;
}
- Node = Y("Dict", Y("DictType", Args[0], Y("VoidType")));
+ Node_ = Y("Dict", Y("DictType", Args_[0], Y("VoidType")));
return true;
}
void TSetCreateBuiltin::DoUpdateState() const {
- State.Set(ENodeState::Const);
+ State_.Set(ENodeState::Const);
}
} // namespace NSQLTranslationV1
diff --git a/yql/essentials/sql/v1/list_builtin.h b/yql/essentials/sql/v1/list_builtin.h
index 61646498b7b..92961e2840d 100644
--- a/yql/essentials/sql/v1/list_builtin.h
+++ b/yql/essentials/sql/v1/list_builtin.h
@@ -20,8 +20,8 @@ public:
const TString& opName,
const TVector<TNodePtr>& args)
: TCallNode(pos, opName, args.size(), args.size(), args)
- , OpName(opName)
- , Args(args)
+ , OpName_(opName)
+ , Args_(args)
{}
bool DoInit(TContext& ctx, ISource* src) override = 0;
@@ -29,9 +29,9 @@ public:
TAstNode* Translate(TContext& ctx) const override;
protected:
- const TString OpName;
- TVector<TNodePtr> Args;
- TNodePtr Node;
+ const TString OpName_;
+ TVector<TNodePtr> Args_;
+ TNodePtr Node_;
inline TNodePtr GetIdentityLambda();
};
@@ -40,17 +40,17 @@ class TListSortBuiltin final: public TListBuiltin {
public:
TListSortBuiltin(TPosition pos, const TVector<TNodePtr>& args, bool asc)
: TListBuiltin(pos, "ListSort", args)
- , Asc(asc)
+ , Asc_(asc)
{}
bool DoInit(TContext& ctx, ISource* src) override;
TNodePtr DoClone() const final {
- return new TListSortBuiltin(Pos, CloneContainer(Args), Asc);
+ return new TListSortBuiltin(Pos_, CloneContainer(Args_), Asc_);
}
private:
- const bool Asc;
+ const bool Asc_;
};
class TListExtractBuiltin final: public TListBuiltin {
@@ -62,7 +62,7 @@ public:
bool DoInit(TContext& ctx, ISource* src) override;
TNodePtr DoClone() const final {
- return new TListExtractBuiltin(Pos, CloneContainer(Args));
+ return new TListExtractBuiltin(Pos_, CloneContainer(Args_));
}
};
@@ -83,16 +83,16 @@ public:
const TVector<TNodePtr>& args,
bool flat)
: TListProcessBuiltin(pos, flat ? "ListFlatMap" : "ListMap", args)
- , Flat(flat)
+ , Flat_(flat)
{}
bool DoInit(TContext& ctx, ISource* src) override;
TNodePtr DoClone() const final {
- return new TListMapBuiltin(Pos, CloneContainer(Args), Flat);
+ return new TListMapBuiltin(Pos_, CloneContainer(Args_), Flat_);
}
private:
- bool Flat;
+ bool Flat_;
};
class TListFilterBuiltin final: public TListProcessBuiltin {
@@ -106,7 +106,7 @@ public:
bool DoInit(TContext& ctx, ISource* src) override;
TNodePtr DoClone() const final {
- return new TListFilterBuiltin(Pos, OpName, CloneContainer(Args));
+ return new TListFilterBuiltin(Pos_, OpName_, CloneContainer(Args_));
}
protected:
virtual TNodePtr GetFilterLambda();
@@ -123,7 +123,7 @@ public:
void DoUpdateState() const override;
TNodePtr DoClone() const final {
- return new TListCreateBuiltin(Pos, CloneContainer(Args));
+ return new TListCreateBuiltin(Pos_, CloneContainer(Args_));
}
};
@@ -138,7 +138,7 @@ public:
void DoUpdateState() const override;
TNodePtr DoClone() const final {
- return new TDictCreateBuiltin(Pos, CloneContainer(Args));
+ return new TDictCreateBuiltin(Pos_, CloneContainer(Args_));
}
};
@@ -153,7 +153,7 @@ public:
void DoUpdateState() const override;
TNodePtr DoClone() const final {
- return new TSetCreateBuiltin(Pos, CloneContainer(Args));
+ return new TSetCreateBuiltin(Pos_, CloneContainer(Args_));
}
};
diff --git a/yql/essentials/sql/v1/match_recognize.cpp b/yql/essentials/sql/v1/match_recognize.cpp
index 6a0af3893ad..ce31d3fc6cf 100644
--- a/yql/essentials/sql/v1/match_recognize.cpp
+++ b/yql/essentials/sql/v1/match_recognize.cpp
@@ -16,48 +16,48 @@ class TMatchRecognizeColumnAccessNode final : public TAstListNode {
public:
TMatchRecognizeColumnAccessNode(TPosition pos, TString var, TString column)
: TAstListNode(pos)
- , Var(std::move(var))
- , Column(std::move(column)) {
+ , Var_(std::move(var))
+ , Column_(std::move(column)) {
}
const TString* GetColumnName() const override {
- return std::addressof(Column);
+ return std::addressof(Column_);
}
bool DoInit(TContext& ctx, ISource* /* src */) override {
switch (ctx.GetColumnReferenceState()) {
case EColumnRefState::MatchRecognizeMeasures:
- if (!ctx.SetMatchRecognizeAggrVar(Var)) {
+ if (!ctx.SetMatchRecognizeAggrVar(Var_)) {
return false;
}
Add(
"Member",
- BuildAtom(Pos, "row"),
- Q(Column)
+ BuildAtom(Pos_, "row"),
+ Q(Column_)
);
break;
case EColumnRefState::MatchRecognizeDefine:
- if (ctx.GetMatchRecognizeDefineVar() != Var) {
+ if (ctx.GetMatchRecognizeDefineVar() != Var_) {
ctx.Error() << "Row pattern navigation function is required";
return false;
}
BuildLookup(VarLastRowIndexName);
break;
case EColumnRefState::MatchRecognizeDefineAggregate:
- if (!ctx.SetMatchRecognizeAggrVar(Var)) {
+ if (!ctx.SetMatchRecognizeAggrVar(Var_)) {
return false;
}
BuildLookup("index");
break;
default:
- ctx.Error(Pos) << "Unexpected column reference state";
+ ctx.Error(Pos_) << "Unexpected column reference state";
return false;
}
return true;
}
TNodePtr DoClone() const override {
- return MakeIntrusive<TMatchRecognizeColumnAccessNode>(Pos, Var, Column);
+ return MakeIntrusive<TMatchRecognizeColumnAccessNode>(Pos_, Var_, Column_);
}
private:
@@ -68,90 +68,90 @@ private:
"Lookup",
Y(
"ToIndexDict",
- BuildAtom(Pos, VarDataName)
+ BuildAtom(Pos_, VarDataName)
),
- BuildAtom(Pos, std::move(varKeyName))
+ BuildAtom(Pos_, std::move(varKeyName))
),
- Q(Column)
+ Q(Column_)
);
}
private:
- TString Var;
- TString Column;
+ TString Var_;
+ TString Column_;
};
class TMatchRecognizeDefineAggregate final : public TAstListNode {
public:
TMatchRecognizeDefineAggregate(TPosition pos, TString name, TVector<TNodePtr> args)
: TAstListNode(pos)
- , Name(std::move(name))
- , Args(std::move(args)) {
+ , Name_(std::move(name))
+ , Args_(std::move(args)) {
}
bool DoInit(TContext& ctx, ISource* src) override {
if (EColumnRefState::MatchRecognizeDefine != ctx.GetColumnReferenceState()) {
- ctx.Error(Pos) << "Unexpected column reference state";
+ ctx.Error(Pos_) << "Unexpected column reference state";
return false;
}
TColumnRefScope scope(ctx, EColumnRefState::MatchRecognizeDefineAggregate, false, ctx.GetMatchRecognizeDefineVar());
- if (Args.size() != 1) {
+ if (Args_.size() != 1) {
ctx.Error() << "Exactly one argument is required in MATCH_RECOGNIZE navigation function";
return false;
}
- const auto arg = Args[0];
+ const auto arg = Args_[0];
if (!arg || !arg->Init(ctx, src)) {
return false;
}
const auto body = [&]() -> TNodePtr {
- if ("first" == Name) {
+ if ("first" == Name_) {
return Y("Member", Y("Head", "item"), Q("From"));
- } else if ("last" == Name) {
+ } else if ("last" == Name_) {
return Y("Member", Y("Last", "item"), Q("To"));
} else {
- ctx.Error() << "Unknown row pattern navigation function: " << Name;
+ ctx.Error() << "Unknown row pattern navigation function: " << Name_;
return {};
}
}();
if (!body) {
return false;
}
- Add("Apply", BuildLambda(Pos, Y("index"), arg), body);
+ Add("Apply", BuildLambda(Pos_, Y("index"), arg), body);
return true;
}
TNodePtr DoClone() const override {
- return MakeIntrusive<TMatchRecognizeDefineAggregate>(Pos, Name, Args);
+ return MakeIntrusive<TMatchRecognizeDefineAggregate>(Pos_, Name_, Args_);
}
private:
- TString Name;
- TVector<TNodePtr> Args;
+ TString Name_;
+ TVector<TNodePtr> Args_;
};
class TMatchRecognizeVarAccessNode final : public INode {
public:
TMatchRecognizeVarAccessNode(TPosition pos, TNodePtr aggr)
: INode(pos)
- , Aggr(std::move(aggr)) {
+ , Aggr_(std::move(aggr)) {
}
bool DoInit(TContext& ctx, ISource* src) override {
- if (!Aggr || !Aggr->Init(ctx, src)) {
+ if (!Aggr_ || !Aggr_->Init(ctx, src)) {
return false;
}
auto var = ctx.ExtractMatchRecognizeAggrVar();
- Expr = [&]() -> TNodePtr {
+ Expr_ = [&]() -> TNodePtr {
switch (ctx.GetColumnReferenceState()) {
case EColumnRefState::MatchRecognizeMeasures: {
- ctx.GetMatchRecognizeAggregations().emplace_back(std::move(var), Aggr->GetAggregation());
- return Aggr;
+ ctx.GetMatchRecognizeAggregations().emplace_back(std::move(var), Aggr_->GetAggregation());
+ return Aggr_;
}
case EColumnRefState::MatchRecognizeDefine:
return Y(
"Apply",
- BuildLambda(Pos, Y("item"), Aggr),
+ BuildLambda(Pos_, Y("item"), Aggr_),
Y(
"Member",
BuildAtom(ctx.Pos(), VarMatchedVarsName),
@@ -159,24 +159,24 @@ public:
)
);
default:
- ctx.Error(Pos) << "Unexpected column reference state";
+ ctx.Error(Pos_) << "Unexpected column reference state";
return {};
}
}();
- return Expr && Expr->Init(ctx, src);
+ return Expr_ && Expr_->Init(ctx, src);
}
TNodePtr DoClone() const override {
- return MakeIntrusive<TMatchRecognizeVarAccessNode>(Pos, Aggr);
+ return MakeIntrusive<TMatchRecognizeVarAccessNode>(Pos_, Aggr_);
}
TAstNode* Translate(TContext& ctx) const override {
- return Expr->Translate(ctx);
+ return Expr_->Translate(ctx);
}
private:
- TNodePtr Aggr;
- TNodePtr Expr;
+ TNodePtr Aggr_;
+ TNodePtr Expr_;
};
class TMatchRecognize final : public TAstListNode {
@@ -195,38 +195,38 @@ public:
TNodePtr subset,
TVector<TNamedFunction> definitions)
: TAstListNode(pos)
- , Label(std::move(label))
- , PartitionKeySelector(std::move(partitionKeySelector))
- , PartitionColumns(std::move(partitionColumns))
- , SortSpecs(std::move(sortSpecs))
- , Measures(std::move(measures))
- , RowsPerMatch(std::move(rowsPerMatch))
- , SkipTo(std::move(skipTo))
- , Pattern(std::move(pattern))
- , PatternVars(std::move(patternVars))
- , Subset(std::move(subset))
- , Definitions(std::move(definitions)) {
+ , Label_(std::move(label))
+ , PartitionKeySelector_(std::move(partitionKeySelector))
+ , PartitionColumns_(std::move(partitionColumns))
+ , SortSpecs_(std::move(sortSpecs))
+ , Measures_(std::move(measures))
+ , RowsPerMatch_(std::move(rowsPerMatch))
+ , SkipTo_(std::move(skipTo))
+ , Pattern_(std::move(pattern))
+ , PatternVars_(std::move(patternVars))
+ , Subset_(std::move(subset))
+ , Definitions_(std::move(definitions)) {
}
private:
bool DoInit(TContext& ctx, ISource* src) override {
- auto inputRowType = Y("ListItemType", Y("TypeOf", Label));
+ auto inputRowType = Y("ListItemType", Y("TypeOf", Label_));
- if (!PartitionKeySelector || !PartitionKeySelector->Init(ctx, src)) {
+ if (!PartitionKeySelector_ || !PartitionKeySelector_->Init(ctx, src)) {
return false;
}
- if (!PartitionColumns || !PartitionColumns->Init(ctx, src)) {
+ if (!PartitionColumns_ || !PartitionColumns_->Init(ctx, src)) {
return false;
}
- const auto sortTraits = SortSpecs.empty() ? Y("Void") : src->BuildSortSpec(SortSpecs, Label, true, false);
+ const auto sortTraits = SortSpecs_.empty() ? Y("Void") : src->BuildSortSpec(SortSpecs_, Label_, true, false);
if (!sortTraits || !sortTraits->Init(ctx, src)) {
return false;
}
auto measureNames = Y();
auto measuresCallables = Y();
- for (auto& m: Measures) {
+ for (auto& m: Measures_) {
TColumnRefScope scope(ctx, EColumnRefState::MatchRecognizeMeasures);
if (!m.Callable || !m.Callable->Init(ctx, src)) {
return false;
@@ -239,7 +239,7 @@ private:
if (!aggr) {
return false;
}
- auto [traits, result] = aggr->AggregationTraits(Y("TypeOf", Label), false, false, false, ctx);
+ auto [traits, result] = aggr->AggregationTraits(Y("TypeOf", Label_), false, false, false, ctx);
if (!result) {
return false;
}
@@ -257,30 +257,30 @@ private:
)
);
}
- auto measuresNode = Y("MatchRecognizeMeasuresCallables", inputRowType, Q(PatternVars), Q(measureNames), Q(measuresCallables));
+ auto measuresNode = Y("MatchRecognizeMeasuresCallables", inputRowType, Q(PatternVars_), Q(measureNames), Q(measuresCallables));
- if (!RowsPerMatch || !RowsPerMatch->Init(ctx, src)) {
+ if (!RowsPerMatch_ || !RowsPerMatch_->Init(ctx, src)) {
return false;
}
- if (!SkipTo || !SkipTo->Init(ctx, src)) {
+ if (!SkipTo_ || !SkipTo_->Init(ctx, src)) {
return false;
}
- if (!Pattern || !Pattern->Init(ctx, src)) {
+ if (!Pattern_ || !Pattern_->Init(ctx, src)) {
return false;
}
- if (!PatternVars || !PatternVars->Init(ctx, src)) {
+ if (!PatternVars_ || !PatternVars_->Init(ctx, src)) {
return false;
}
auto defineNames = Y();
- for (auto& d: Definitions) {
+ for (auto& d: Definitions_) {
defineNames = L(defineNames, BuildQuotedAtom(d.Callable->GetPos(), d.Name));
}
- auto defineNode = Y("MatchRecognizeDefines", inputRowType, Q(PatternVars), Q(defineNames));
- for (auto& d: Definitions) {
+ auto defineNode = Y("MatchRecognizeDefines", inputRowType, Q(PatternVars_), Q(defineNames));
+ for (auto& d: Definitions_) {
TColumnRefScope scope(ctx, EColumnRefState::MatchRecognizeDefine, true, d.Name);
if (!d.Callable || !d.Callable->Init(ctx, src)) {
return false;
@@ -292,15 +292,15 @@ private:
Add(
"block",
Q(Y(
- Y("let", "input", Label),
- Y("let", "partitionKeySelector", PartitionKeySelector),
- Y("let", "partitionColumns", PartitionColumns),
+ Y("let", "input", Label_),
+ Y("let", "partitionKeySelector", PartitionKeySelector_),
+ Y("let", "partitionColumns", PartitionColumns_),
Y("let", "sortTraits", sortTraits),
Y("let", "measures", measuresNode),
- Y("let", "rowsPerMatch", RowsPerMatch),
- Y("let", "skipTo", SkipTo),
- Y("let", "pattern", Pattern),
- Y("let", "subset", Subset ? Subset : Q("")),
+ Y("let", "rowsPerMatch", RowsPerMatch_),
+ Y("let", "skipTo", SkipTo_),
+ Y("let", "pattern", Pattern_),
+ Y("let", "subset", Subset_ ? Subset_ : Q("")),
Y("let", "define", defineNode),
Y("let", "res", Y("MatchRecognize",
"input",
@@ -323,51 +323,51 @@ private:
TNodePtr DoClone() const override {
return MakeIntrusive<TMatchRecognize>(
- Pos,
- Label,
- PartitionKeySelector,
- PartitionColumns,
- SortSpecs,
- Measures,
- RowsPerMatch,
- SkipTo,
- Pattern,
- PatternVars,
- Subset,
- Definitions
+ Pos_,
+ Label_,
+ PartitionKeySelector_,
+ PartitionColumns_,
+ SortSpecs_,
+ Measures_,
+ RowsPerMatch_,
+ SkipTo_,
+ Pattern_,
+ PatternVars_,
+ Subset_,
+ Definitions_
);
}
private:
- TString Label;
- TNodePtr PartitionKeySelector;
- TNodePtr PartitionColumns;
- TVector<TSortSpecificationPtr> SortSpecs;
- TVector<TNamedFunction> Measures;
- TNodePtr RowsPerMatch;
- TNodePtr SkipTo;
- TNodePtr Pattern;
- TNodePtr PatternVars;
- TNodePtr Subset;
- TVector<TNamedFunction> Definitions;
+ TString Label_;
+ TNodePtr PartitionKeySelector_;
+ TNodePtr PartitionColumns_;
+ TVector<TSortSpecificationPtr> SortSpecs_;
+ TVector<TNamedFunction> Measures_;
+ TNodePtr RowsPerMatch_;
+ TNodePtr SkipTo_;
+ TNodePtr Pattern_;
+ TNodePtr PatternVars_;
+ TNodePtr Subset_;
+ TVector<TNamedFunction> Definitions_;
};
} // anonymous namespace
TNodePtr TMatchRecognizeBuilder::Build(TContext& ctx, TString label, ISource* src) {
const auto node = MakeIntrusive<TMatchRecognize>(
- Pos,
+ Pos_,
std::move(label),
- std::move(PartitionKeySelector),
- std::move(PartitionColumns),
- std::move(SortSpecs),
- std::move(Measures),
- std::move(RowsPerMatch),
- std::move(SkipTo),
- std::move(Pattern),
- std::move(PatternVars),
- std::move(Subset),
- std::move(Definitions)
+ std::move(PartitionKeySelector_),
+ std::move(PartitionColumns_),
+ std::move(SortSpecs_),
+ std::move(Measures_),
+ std::move(RowsPerMatch_),
+ std::move(SkipTo_),
+ std::move(Pattern_),
+ std::move(PatternVars_),
+ std::move(Subset_),
+ std::move(Definitions_)
);
if (!node->Init(ctx, src)) {
return {};
diff --git a/yql/essentials/sql/v1/match_recognize.h b/yql/essentials/sql/v1/match_recognize.h
index 818bd6e6002..5e6f2912e98 100644
--- a/yql/essentials/sql/v1/match_recognize.h
+++ b/yql/essentials/sql/v1/match_recognize.h
@@ -26,33 +26,33 @@ public:
TNodePtr patternVars,
TNodePtr subset,
TVector<TNamedFunction> definitions)
- : Pos(pos)
- , PartitionKeySelector(std::move(partitionKeySelector))
- , PartitionColumns(std::move(partitionColumns))
- , SortSpecs(std::move(sortSpecs))
- , Measures(std::move(measures))
- , RowsPerMatch(std::move(rowsPerMatch))
- , SkipTo(std::move(skipTo))
- , Pattern(std::move(pattern))
- , PatternVars(std::move(patternVars))
- , Subset(std::move(subset))
- , Definitions(std::move(definitions))
+ : Pos_(pos)
+ , PartitionKeySelector_(std::move(partitionKeySelector))
+ , PartitionColumns_(std::move(partitionColumns))
+ , SortSpecs_(std::move(sortSpecs))
+ , Measures_(std::move(measures))
+ , RowsPerMatch_(std::move(rowsPerMatch))
+ , SkipTo_(std::move(skipTo))
+ , Pattern_(std::move(pattern))
+ , PatternVars_(std::move(patternVars))
+ , Subset_(std::move(subset))
+ , Definitions_(std::move(definitions))
{}
TNodePtr Build(TContext& ctx, TString label, ISource* source);
private:
- TPosition Pos;
- TNodePtr PartitionKeySelector;
- TNodePtr PartitionColumns;
- TVector<TSortSpecificationPtr> SortSpecs;
- TVector<TNamedFunction> Measures;
- TNodePtr RowsPerMatch;
- TNodePtr SkipTo;
- TNodePtr Pattern;
- TNodePtr PatternVars;
- TNodePtr Subset;
- TVector<TNamedFunction> Definitions;
+ TPosition Pos_;
+ TNodePtr PartitionKeySelector_;
+ TNodePtr PartitionColumns_;
+ TVector<TSortSpecificationPtr> SortSpecs_;
+ TVector<TNamedFunction> Measures_;
+ TNodePtr RowsPerMatch_;
+ TNodePtr SkipTo_;
+ TNodePtr Pattern_;
+ TNodePtr PatternVars_;
+ TNodePtr Subset_;
+ TVector<TNamedFunction> Definitions_;
};
using TMatchRecognizeBuilderPtr = TIntrusivePtr<TMatchRecognizeBuilder>;
diff --git a/yql/essentials/sql/v1/node.cpp b/yql/essentials/sql/v1/node.cpp
index fe5d4dff7b0..f6763c2be07 100644
--- a/yql/essentials/sql/v1/node.cpp
+++ b/yql/essentials/sql/v1/node.cpp
@@ -58,7 +58,7 @@ TColumnSchema::TColumnSchema(TPosition pos, const TString& name, const TNodePtr&
}
INode::INode(TPosition pos)
- : Pos(pos)
+ : Pos_(pos)
{
}
@@ -67,44 +67,44 @@ INode::~INode()
}
TPosition INode::GetPos() const {
- return Pos;
+ return Pos_;
}
const TString& INode::GetLabel() const {
- return Label;
+ return Label_;
}
TMaybe<TPosition> INode::GetLabelPos() const {
- return LabelPos;
+ return LabelPos_;
}
void INode::SetLabel(const TString& label, TMaybe<TPosition> pos) {
- Label = label;
- LabelPos = pos;
+ Label_ = label;
+ LabelPos_ = pos;
}
bool INode::IsImplicitLabel() const {
- return ImplicitLabel;
+ return ImplicitLabel_;
}
void INode::MarkImplicitLabel(bool isImplicitLabel) {
- ImplicitLabel = isImplicitLabel;
+ ImplicitLabel_ = isImplicitLabel;
}
void INode::SetRefPos(TPosition pos) {
- RefPos = pos;
+ RefPos_ = pos;
}
TMaybe<TPosition> INode::GetRefPos() const {
- return RefPos;
+ return RefPos_;
}
void INode::SetCountHint(bool isCount) {
- State.Set(ENodeState::CountHint, isCount);
+ State_.Set(ENodeState::CountHint, isCount);
}
bool INode::GetCountHint() const {
- return State.Test(ENodeState::CountHint);
+ return State_.Test(ENodeState::CountHint);
}
bool INode::IsConstant() const {
@@ -225,16 +225,16 @@ TVector<TNodePtr>* INode::ContentListPtr() {
}
bool INode::Init(TContext& ctx, ISource* src) {
- if (State.Test(ENodeState::Failed)) {
+ if (State_.Test(ENodeState::Failed)) {
return false;
}
- if (!State.Test(ENodeState::Initialized)) {
+ if (!State_.Test(ENodeState::Initialized)) {
if (!DoInit(ctx, src)) {
- State.Set(ENodeState::Failed);
+ State_.Set(ENodeState::Failed);
return false;
}
- State.Set(ENodeState::Initialized);
+ State_.Set(ENodeState::Initialized);
}
return true;
}
@@ -251,7 +251,7 @@ bool INode::DoInit(TContext& ctx, ISource* src) {
}
TNodePtr INode::AstNode() const {
- return new TAstListNodeImpl(Pos);
+ return new TAstListNodeImpl(Pos_);
}
TNodePtr INode::AstNode(TNodePtr node) const {
@@ -259,7 +259,7 @@ TNodePtr INode::AstNode(TNodePtr node) const {
}
TNodePtr INode::AstNode(const TString& str) const {
- return new TAstAtomNodeImpl(Pos, str, TNodeFlags::Default);
+ return new TAstAtomNodeImpl(Pos_, str, TNodeFlags::Default);
}
TNodePtr INode::AstNode(TAstNode* node) const {
@@ -271,9 +271,9 @@ TNodePtr INode::Clone() const {
if (!clone) {
clone = const_cast<INode*>(this);
} else {
- YQL_ENSURE(!State.Test(ENodeState::Initialized), "Clone should be for uninitialized or persistent node");
- clone->SetLabel(Label, LabelPos);
- clone->MarkImplicitLabel(ImplicitLabel);
+ YQL_ENSURE(!State_.Test(ENodeState::Initialized), "Clone should be for uninitialized or persistent node");
+ clone->SetLabel(Label_, LabelPos_);
+ clone->MarkImplicitLabel(ImplicitLabel_);
}
return clone;
}
@@ -307,7 +307,7 @@ bool INode::SetPrimaryView(TContext& ctx, TPosition pos) {
}
void INode::UseAsInner() {
- AsInner = true;
+ AsInner_ = true;
}
void INode::DisableSort() {
@@ -418,18 +418,18 @@ void INode::DoUpdateState() const {
}
void INode::PrecacheState() const {
- if (State.Test(ENodeState::Failed)) {
+ if (State_.Test(ENodeState::Failed)) {
return;
}
/// Not work right now! It's better use Init at first, because some kind of update depend on it
/// \todo turn on and remove all issues
//Y_DEBUG_ABORT_UNLESS(State.Test(ENodeState::Initialized));
- if (State.Test(ENodeState::Precached)) {
+ if (State_.Test(ENodeState::Precached)) {
return;
}
DoUpdateState();
- State.Set(ENodeState::Precached);
+ State_.Set(ENodeState::Precached);
}
void INode::DoVisitChildren(const TVisitFunc& func, TVisitNodeSet& visited) const {
@@ -443,222 +443,222 @@ void INode::DoAdd(TNodePtr node) {
}
bool IProxyNode::IsNull() const {
- return Inner->IsNull();
+ return Inner_->IsNull();
}
bool IProxyNode::IsLiteral() const {
- return Inner->IsNull();
+ return Inner_->IsNull();
}
TString IProxyNode::GetLiteralType() const {
- return Inner->GetLiteralType();
+ return Inner_->GetLiteralType();
}
TString IProxyNode::GetLiteralValue() const {
- return Inner->GetLiteralValue();
+ return Inner_->GetLiteralValue();
}
bool IProxyNode::IsIntegerLiteral() const {
- return Inner->IsIntegerLiteral();
+ return Inner_->IsIntegerLiteral();
}
INode::TPtr IProxyNode::ApplyUnaryOp(TContext& ctx, TPosition pos, const TString& opName) const {
- return Inner->ApplyUnaryOp(ctx, pos, opName);
+ return Inner_->ApplyUnaryOp(ctx, pos, opName);
}
bool IProxyNode::IsAsterisk() const {
- return Inner->IsAsterisk();
+ return Inner_->IsAsterisk();
}
const TString* IProxyNode::SubqueryAlias() const {
- return Inner->SubqueryAlias();
+ return Inner_->SubqueryAlias();
}
TString IProxyNode::GetOpName() const {
- return Inner->GetOpName();
+ return Inner_->GetOpName();
}
const TString* IProxyNode::GetLiteral(const TString& type) const {
- return Inner->GetLiteral(type);
+ return Inner_->GetLiteral(type);
}
const TString* IProxyNode::GetColumnName() const {
- return Inner->GetColumnName();
+ return Inner_->GetColumnName();
}
bool IProxyNode::IsPlainColumn() const {
- return Inner->IsPlainColumn();
+ return Inner_->IsPlainColumn();
}
bool IProxyNode::IsTableRow() const {
- return Inner->IsTableRow();
+ return Inner_->IsTableRow();
}
void IProxyNode::AssumeColumn() {
- Inner->AssumeColumn();
+ Inner_->AssumeColumn();
}
const TString* IProxyNode::GetSourceName() const {
- return Inner->GetSourceName();
+ return Inner_->GetSourceName();
}
const TString* IProxyNode::GetAtomContent() const {
- return Inner->GetAtomContent();
+ return Inner_->GetAtomContent();
}
bool IProxyNode::IsOptionalArg() const {
- return Inner->IsOptionalArg();
+ return Inner_->IsOptionalArg();
}
size_t IProxyNode::GetTupleSize() const {
- return Inner->GetTupleSize();
+ return Inner_->GetTupleSize();
}
INode::TPtr IProxyNode::GetTupleElement(size_t index) const {
- return Inner->GetTupleElement(index);
+ return Inner_->GetTupleElement(index);
}
ITableKeys* IProxyNode::GetTableKeys() {
- return Inner->GetTableKeys();
+ return Inner_->GetTableKeys();
}
ISource* IProxyNode::GetSource() {
- return Inner->GetSource();
+ return Inner_->GetSource();
}
TVector<INode::TPtr>* IProxyNode::ContentListPtr() {
- return Inner->ContentListPtr();
+ return Inner_->ContentListPtr();
}
TAggregationPtr IProxyNode::GetAggregation() const {
- return Inner->GetAggregation();
+ return Inner_->GetAggregation();
}
void IProxyNode::CollectPreaggregateExprs(TContext& ctx, ISource& src, TVector<INode::TPtr>& exprs) {
- Inner->CollectPreaggregateExprs(ctx, src, exprs);
+ Inner_->CollectPreaggregateExprs(ctx, src, exprs);
}
INode::TPtr IProxyNode::WindowSpecFunc(const TPtr& type) const {
- return Inner->WindowSpecFunc(type);
+ return Inner_->WindowSpecFunc(type);
}
bool IProxyNode::SetViewName(TContext& ctx, TPosition pos, const TString& view) {
- return Inner->SetViewName(ctx, pos, view);
+ return Inner_->SetViewName(ctx, pos, view);
}
bool IProxyNode::SetPrimaryView(TContext& ctx, TPosition pos) {
- return Inner->SetPrimaryView(ctx, pos);
+ return Inner_->SetPrimaryView(ctx, pos);
}
bool IProxyNode::UsedSubquery() const {
- return Inner->UsedSubquery();
+ return Inner_->UsedSubquery();
}
bool IProxyNode::IsSelect() const {
- return Inner->IsSelect();
+ return Inner_->IsSelect();
}
bool IProxyNode::HasSelectResult() const {
- return Inner->HasSelectResult();
+ return Inner_->HasSelectResult();
}
const TString* IProxyNode::FuncName() const {
- return Inner->FuncName();
+ return Inner_->FuncName();
}
const TString* IProxyNode::ModuleName() const {
- return Inner->ModuleName();
+ return Inner_->ModuleName();
}
bool IProxyNode::IsScript() const {
- return Inner->IsScript();
+ return Inner_->IsScript();
}
bool IProxyNode::HasSkip() const {
- return Inner->HasSkip();
+ return Inner_->HasSkip();
}
TColumnNode* IProxyNode::GetColumnNode() {
- return Inner->GetColumnNode();
+ return Inner_->GetColumnNode();
}
const TColumnNode* IProxyNode::GetColumnNode() const {
- return static_cast<const INode*>(Inner.Get())->GetColumnNode();
+ return static_cast<const INode*>(Inner_.Get())->GetColumnNode();
}
TTupleNode* IProxyNode::GetTupleNode() {
- return Inner->GetTupleNode();
+ return Inner_->GetTupleNode();
}
const TTupleNode* IProxyNode::GetTupleNode() const {
- return static_cast<const INode*>(Inner.Get())->GetTupleNode();
+ return static_cast<const INode*>(Inner_.Get())->GetTupleNode();
}
TCallNode* IProxyNode::GetCallNode() {
- return Inner->GetCallNode();
+ return Inner_->GetCallNode();
}
const TCallNode* IProxyNode::GetCallNode() const {
- return static_cast<const INode*>(Inner.Get())->GetCallNode();
+ return static_cast<const INode*>(Inner_.Get())->GetCallNode();
}
TStructNode* IProxyNode::GetStructNode() {
- return Inner->GetStructNode();
+ return Inner_->GetStructNode();
}
const TStructNode* IProxyNode::GetStructNode() const {
- return static_cast<const INode*>(Inner.Get())->GetStructNode();
+ return static_cast<const INode*>(Inner_.Get())->GetStructNode();
}
TAccessNode* IProxyNode::GetAccessNode() {
- return Inner->GetAccessNode();
+ return Inner_->GetAccessNode();
}
const TAccessNode* IProxyNode::GetAccessNode() const {
- return static_cast<const INode*>(Inner.Get())->GetAccessNode();
+ return static_cast<const INode*>(Inner_.Get())->GetAccessNode();
}
TLambdaNode* IProxyNode::GetLambdaNode() {
- return Inner->GetLambdaNode();
+ return Inner_->GetLambdaNode();
}
const TLambdaNode* IProxyNode::GetLambdaNode() const {
- return static_cast<const INode*>(Inner.Get())->GetLambdaNode();
+ return static_cast<const INode*>(Inner_.Get())->GetLambdaNode();
}
TUdfNode* IProxyNode::GetUdfNode() {
- return Inner->GetUdfNode();
+ return Inner_->GetUdfNode();
}
const TUdfNode* IProxyNode::GetUdfNode() const {
- return static_cast<const INode*>(Inner.Get())->GetUdfNode();
+ return static_cast<const INode*>(Inner_.Get())->GetUdfNode();
}
void IProxyNode::DoUpdateState() const {
static_assert(static_cast<int>(ENodeState::End) == 10, "Need to support new states here");
- State.Set(ENodeState::CountHint, Inner->GetCountHint());
- State.Set(ENodeState::Const, Inner->IsConstant());
- State.Set(ENodeState::MaybeConst, Inner->MaybeConstant());
- State.Set(ENodeState::Aggregated, Inner->IsAggregated());
- State.Set(ENodeState::AggregationKey, Inner->IsAggregationKey());
- State.Set(ENodeState::OverWindow, Inner->IsOverWindow());
- State.Set(ENodeState::OverWindowDistinct, Inner->IsOverWindowDistinct());
+ State_.Set(ENodeState::CountHint, Inner_->GetCountHint());
+ State_.Set(ENodeState::Const, Inner_->IsConstant());
+ State_.Set(ENodeState::MaybeConst, Inner_->MaybeConstant());
+ State_.Set(ENodeState::Aggregated, Inner_->IsAggregated());
+ State_.Set(ENodeState::AggregationKey, Inner_->IsAggregationKey());
+ State_.Set(ENodeState::OverWindow, Inner_->IsOverWindow());
+ State_.Set(ENodeState::OverWindowDistinct, Inner_->IsOverWindowDistinct());
}
void IProxyNode::DoVisitChildren(const TVisitFunc& func, TVisitNodeSet& visited) const {
- Inner->VisitTree(func, visited);
+ Inner_->VisitTree(func, visited);
}
bool IProxyNode::InitReference(TContext& ctx) {
- return Inner->InitReference(ctx);
+ return Inner_->InitReference(ctx);
}
bool IProxyNode::DoInit(TContext& ctx, ISource* src) {
- return Inner->Init(ctx, src);
+ return Inner_->Init(ctx, src);
}
void IProxyNode::DoAdd(TPtr node) {
- Inner->Add(node);
+ Inner_->Add(node);
}
void MergeHints(TTableHints& base, const TTableHints& overrides) {
@@ -677,8 +677,8 @@ TTableHints CloneContainer(const TTableHints& hints) {
TAstAtomNode::TAstAtomNode(TPosition pos, const TString& content, ui32 flags, bool isOptionalArg)
: INode(pos)
- , Content(content)
- , Flags(flags)
+ , Content_(content)
+ , Flags_(flags)
, IsOptionalArg_(isOptionalArg)
{
}
@@ -688,15 +688,15 @@ TAstAtomNode::~TAstAtomNode()
}
void TAstAtomNode::DoUpdateState() const {
- State.Set(ENodeState::Const);
+ State_.Set(ENodeState::Const);
}
TAstNode* TAstAtomNode::Translate(TContext& ctx) const {
- return TAstNode::NewAtom(Pos, Content, *ctx.Pool, Flags);
+ return TAstNode::NewAtom(Pos_, Content_, *ctx.Pool, Flags_);
}
const TString* TAstAtomNode::GetAtomContent() const {
- return &Content;
+ return &Content_;
}
bool TAstAtomNode::IsOptionalArg() const {
@@ -705,13 +705,13 @@ bool TAstAtomNode::IsOptionalArg() const {
TAstDirectNode::TAstDirectNode(TAstNode* node)
: INode(node->GetPosition())
- , Node(node)
+ , Node_(node)
{
}
TAstNode* TAstDirectNode::Translate(TContext& ctx) const {
Y_UNUSED(ctx);
- return Node;
+ return Node_;
}
TNodePtr BuildList(TPosition pos, TVector<TNodePtr> nodes) {
@@ -736,7 +736,7 @@ TAstListNode::~TAstListNode()
}
bool TAstListNode::DoInit(TContext& ctx, ISource* src) {
- for (auto& node: Nodes) {
+ for (auto& node: Nodes_) {
if (!node->Init(ctx, src)) {
return false;
}
@@ -746,9 +746,9 @@ bool TAstListNode::DoInit(TContext& ctx, ISource* src) {
TAstNode* TAstListNode::Translate(TContext& ctx) const {
TSmallVec<TAstNode*> children;
- children.reserve(Nodes.size());
- auto listPos = Pos;
- for (auto& node: Nodes) {
+ children.reserve(Nodes_.size());
+ auto listPos = Pos_;
+ for (auto& node: Nodes_) {
if (node) {
auto astNode = node->Translate(ctx);
if (!astNode) {
@@ -756,7 +756,7 @@ TAstNode* TAstListNode::Translate(TContext& ctx) const {
}
children.push_back(astNode);
} else {
- ctx.Error(Pos) << "Translation error: encountered empty TNodePtr";
+ ctx.Error(Pos_) << "Translation error: encountered empty TNodePtr";
return nullptr;
}
}
@@ -767,8 +767,8 @@ TAstNode* TAstListNode::Translate(TContext& ctx) const {
void TAstListNode::UpdateStateByListNodes(const TVector<TNodePtr>& nodes) const {
bool isConst = true;
struct TAttributesFlags {
- bool has = false;
- bool all = true;
+ bool Has = false;
+ bool All = true;
};
std::array<ENodeState, 3> checkStates = {{ENodeState::Aggregated, ENodeState::AggregationKey, ENodeState::OverWindow}};
std::map<ENodeState, TAttributesFlags> flags;
@@ -777,9 +777,9 @@ void TAstListNode::UpdateStateByListNodes(const TVector<TNodePtr>& nodes) const
const bool isNodeMaybeConst = node->MaybeConstant();
for (auto state: checkStates) {
if (node->HasState(state)) {
- flags[state].has = true;
+ flags[state].Has = true;
} else if (!isNodeConst && !isNodeMaybeConst) {
- flags[state].all = false;
+ flags[state].All = false;
}
if (!isNodeConst) {
@@ -787,48 +787,48 @@ void TAstListNode::UpdateStateByListNodes(const TVector<TNodePtr>& nodes) const
}
}
}
- State.Set(ENodeState::Const, isConst);
+ State_.Set(ENodeState::Const, isConst);
for (auto& flag: flags) {
- State.Set(flag.first, flag.second.has && flag.second.all);
+ State_.Set(flag.first, flag.second.Has && flag.second.All);
}
- State.Set(ENodeState::MaybeConst, !isConst && AllOf(nodes, [](const auto& node) { return node->IsConstant() || node->MaybeConstant(); }));
+ State_.Set(ENodeState::MaybeConst, !isConst && AllOf(nodes, [](const auto& node) { return node->IsConstant() || node->MaybeConstant(); }));
}
void TAstListNode::DoUpdateState() const {
- UpdateStateByListNodes(Nodes);
+ UpdateStateByListNodes(Nodes_);
}
void TAstListNode::DoVisitChildren(const TVisitFunc& func, TVisitNodeSet& visited) const {
- for (auto& node : Nodes) {
+ for (auto& node : Nodes_) {
node->VisitTree(func, visited);
}
}
TAstListNode::TAstListNode(const TAstListNode& node)
- : INode(node.Pos)
- , Nodes(node.Nodes)
+ : INode(node.Pos_)
+ , Nodes_(node.Nodes_)
{
- Label = node.Label;
- State = node.State;
+ Label_ = node.Label_;
+ State_ = node.State_;
}
TAstListNode::TAstListNode(TPosition pos, TVector<TNodePtr>&& nodes)
: INode(pos)
- , Nodes(std::move(nodes))
+ , Nodes_(std::move(nodes))
{
- for (const auto& node: Nodes) {
+ for (const auto& node: Nodes_) {
YQL_ENSURE(node, "Null ptr passed as list element");
}
}
TNodePtr TAstListNode::ShallowCopy() const {
- return new TAstListNodeImpl(Pos, Nodes);
+ return new TAstListNodeImpl(Pos_, Nodes_);
}
void TAstListNode::DoAdd(TNodePtr node) {
Y_DEBUG_ABORT_UNLESS(node);
Y_DEBUG_ABORT_UNLESS(node.Get() != this);
- Nodes.push_back(node);
+ Nodes_.push_back(node);
}
TAstListNodeImpl::TAstListNodeImpl(TPosition pos)
@@ -841,33 +841,33 @@ TAstListNodeImpl::TAstListNodeImpl(TPosition pos, TVector<TNodePtr> nodes)
for (const auto& node: nodes) {
YQL_ENSURE(node, "Null ptr passed as list element");
}
- Nodes.swap(nodes);
+ Nodes_.swap(nodes);
}
void TAstListNodeImpl::CollectPreaggregateExprs(TContext& ctx, ISource& src, TVector<INode::TPtr>& exprs) {
- for (auto& node : Nodes) {
+ for (auto& node : Nodes_) {
node->CollectPreaggregateExprs(ctx, src, exprs);
}
}
TNodePtr TAstListNodeImpl::DoClone() const {
- return new TAstListNodeImpl(Pos, CloneContainer(Nodes));
+ return new TAstListNodeImpl(Pos_, CloneContainer(Nodes_));
}
TCallNode::TCallNode(TPosition pos, const TString& opName, i32 minArgs, i32 maxArgs, const TVector<TNodePtr>& args)
: TAstListNode(pos)
- , OpName(opName)
- , MinArgs(minArgs)
- , MaxArgs(maxArgs)
- , Args(args)
+ , OpName_(opName)
+ , MinArgs_(minArgs)
+ , MaxArgs_(maxArgs)
+ , Args_(args)
{
- for (const auto& arg: Args) {
+ for (const auto& arg: Args_) {
YQL_ENSURE(arg, "Null ptr passed as call argument");
}
}
TString TCallNode::GetOpName() const {
- return OpName;
+ return OpName_;
}
const TString* DeriveCommonSourceName(const TVector<TNodePtr> &nodes) {
@@ -887,47 +887,47 @@ const TString* DeriveCommonSourceName(const TVector<TNodePtr> &nodes) {
const TString* TCallNode::GetSourceName() const {
- return DeriveCommonSourceName(Args);
+ return DeriveCommonSourceName(Args_);
}
const TVector<TNodePtr>& TCallNode::GetArgs() const {
- return Args;
+ return Args_;
}
void TCallNode::DoUpdateState() const {
- UpdateStateByListNodes(Args);
+ UpdateStateByListNodes(Args_);
}
TString TCallNode::GetCallExplain() const {
auto derivedName = GetOpName();
TStringBuilder sb;
sb << derivedName << "()";
- if (derivedName != OpName) {
- sb << ", converted to " << OpName << "()";
+ if (derivedName != OpName_) {
+ sb << ", converted to " << OpName_ << "()";
}
return std::move(sb);
}
void TCallNode::CollectPreaggregateExprs(TContext& ctx, ISource& src, TVector<INode::TPtr>& exprs) {
- for (auto& arg : Args) {
+ for (auto& arg : Args_) {
arg->CollectPreaggregateExprs(ctx, src, exprs);
}
}
bool TCallNode::ValidateArguments(TContext& ctx) const {
- const auto argsCount = static_cast<i32>(Args.size());
- if (MinArgs >= 0 && MaxArgs == MinArgs && argsCount != MinArgs) {
- ctx.Error(Pos) << GetCallExplain() << " requires exactly " << MinArgs << " arguments, given: " << Args.size();
+ const auto argsCount = static_cast<i32>(Args_.size());
+ if (MinArgs_ >= 0 && MaxArgs_ == MinArgs_ && argsCount != MinArgs_) {
+ ctx.Error(Pos_) << GetCallExplain() << " requires exactly " << MinArgs_ << " arguments, given: " << Args_.size();
return false;
}
- if (MinArgs >= 0 && argsCount < MinArgs) {
- ctx.Error(Pos) << GetCallExplain() << " requires at least " << MinArgs << " arguments, given: " << Args.size();
+ if (MinArgs_ >= 0 && argsCount < MinArgs_) {
+ ctx.Error(Pos_) << GetCallExplain() << " requires at least " << MinArgs_ << " arguments, given: " << Args_.size();
return false;
}
- if (MaxArgs >= 0 && argsCount > MaxArgs) {
- ctx.Error(Pos) << GetCallExplain() << " requires at most " << MaxArgs << " arguments, given: " << Args.size();
+ if (MaxArgs_ >= 0 && argsCount > MaxArgs_) {
+ ctx.Error(Pos_) << GetCallExplain() << " requires at most " << MaxArgs_ << " arguments, given: " << Args_.size();
return false;
}
@@ -940,7 +940,7 @@ bool TCallNode::DoInit(TContext& ctx, ISource* src) {
}
bool hasError = false;
- for (auto& arg: Args) {
+ for (auto& arg: Args_) {
if (!arg->Init(ctx, src)) {
hasError = true;
continue;
@@ -951,9 +951,9 @@ bool TCallNode::DoInit(TContext& ctx, ISource* src) {
return false;
}
- Nodes.push_back(BuildAtom(Pos, OpName,
- OpName.cend() == std::find_if_not(OpName.cbegin(), OpName.cend(), [](char c) { return bool(std::isalnum(c)); }) ? TNodeFlags::Default : TNodeFlags::ArbitraryContent));
- Nodes.insert(Nodes.end(), Args.begin(), Args.end());
+ Nodes_.push_back(BuildAtom(Pos_, OpName_,
+ OpName_.cend() == std::find_if_not(OpName_.cbegin(), OpName_.cend(), [](char c) { return bool(std::isalnum(c)); }) ? TNodeFlags::Default : TNodeFlags::ArbitraryContent));
+ Nodes_.insert(Nodes_.end(), Args_.begin(), Args_.end());
return true;
}
@@ -974,7 +974,7 @@ TCallNodeImpl::TCallNodeImpl(TPosition pos, const TString& opName, const TVector
{}
TCallNode::TPtr TCallNodeImpl::DoClone() const {
- return new TCallNodeImpl(GetPos(), OpName, MinArgs, MaxArgs, CloneContainer(Args));
+ return new TCallNodeImpl(GetPos(), OpName_, MinArgs_, MaxArgs_, CloneContainer(Args_));
}
TFuncNodeImpl::TFuncNodeImpl(TPosition pos, const TString& opName)
@@ -982,25 +982,25 @@ TFuncNodeImpl::TFuncNodeImpl(TPosition pos, const TString& opName)
{}
TCallNode::TPtr TFuncNodeImpl::DoClone() const {
- return new TFuncNodeImpl(GetPos(), OpName);
+ return new TFuncNodeImpl(GetPos(), OpName_);
}
const TString* TFuncNodeImpl::FuncName() const {
- return &OpName;
+ return &OpName_;
}
TCallNodeDepArgs::TCallNodeDepArgs(ui32 reqArgsCount, TPosition pos, const TString& opName, i32 minArgs, i32 maxArgs, const TVector<TNodePtr>& args)
: TCallNode(pos, opName, minArgs, maxArgs, args)
- , ReqArgsCount(reqArgsCount)
+ , ReqArgsCount_(reqArgsCount)
{}
TCallNodeDepArgs::TCallNodeDepArgs(ui32 reqArgsCount, TPosition pos, const TString& opName, const TVector<TNodePtr>& args)
: TCallNode(pos, opName, args.size(), args.size(), args)
- , ReqArgsCount(reqArgsCount)
+ , ReqArgsCount_(reqArgsCount)
{}
TCallNode::TPtr TCallNodeDepArgs::DoClone() const {
- return new TCallNodeDepArgs(ReqArgsCount, GetPos(), OpName, MinArgs, MaxArgs, CloneContainer(Args));
+ return new TCallNodeDepArgs(ReqArgsCount_, GetPos(), OpName_, MinArgs_, MaxArgs_, CloneContainer(Args_));
}
bool TCallNodeDepArgs::DoInit(TContext& ctx, ISource* src) {
@@ -1008,14 +1008,14 @@ bool TCallNodeDepArgs::DoInit(TContext& ctx, ISource* src) {
return false;
}
- for (ui32 i = 1 + ReqArgsCount; i < Nodes.size(); ++i) {
- Nodes[i] = Y("DependsOn", Nodes[i]);
+ for (ui32 i = 1 + ReqArgsCount_; i < Nodes_.size(); ++i) {
+ Nodes_[i] = Y("DependsOn", Nodes_[i]);
}
return true;
}
TCallDirectRow::TPtr TCallDirectRow::DoClone() const {
- return new TCallDirectRow(Pos, OpName, CloneContainer(Args));
+ return new TCallDirectRow(Pos_, OpName_, CloneContainer(Args_));
}
TCallDirectRow::TCallDirectRow(TPosition pos, const TString& opName, i32 minArgs, i32 maxArgs, const TVector<TNodePtr>& args)
@@ -1028,64 +1028,64 @@ TCallDirectRow::TCallDirectRow(TPosition pos, const TString& opName, const TVect
bool TCallDirectRow::DoInit(TContext& ctx, ISource* src) {
if (!src || (ctx.CompactNamedExprs && src->IsFake())) {
- ctx.Error(Pos) << "Unable to use function: " << OpName << " without source";
+ ctx.Error(Pos_) << "Unable to use function: " << OpName_ << " without source";
return false;
}
if (src->IsCompositeSource() || src->GetJoin() || src->HasAggregations() || src->IsFlattenByColumns() || src->IsOverWindowSource()) {
- ctx.Error(Pos) << "Failed to use function: " << OpName << " with aggregation, join, flatten by or window functions";
+ ctx.Error(Pos_) << "Failed to use function: " << OpName_ << " with aggregation, join, flatten by or window functions";
return false;
}
if (!TCallNode::DoInit(ctx, src)) {
return false;
}
- Nodes.push_back(Y("DependsOn", "row"));
+ Nodes_.push_back(Y("DependsOn", "row"));
return true;
}
void TCallDirectRow::DoUpdateState() const {
- State.Set(ENodeState::Const, false);
+ State_.Set(ENodeState::Const, false);
}
void TWinAggrEmulation::DoUpdateState() const {
- State.Set(ENodeState::OverWindow, true);
+ State_.Set(ENodeState::OverWindow, true);
}
bool TWinAggrEmulation::DoInit(TContext& ctx, ISource* src) {
if (!src) {
- ctx.Error(Pos) << "Unable to use window function " << OpName << " without source";
+ ctx.Error(Pos_) << "Unable to use window function " << OpName_ << " without source";
return false;
}
if (!src->IsOverWindowSource()) {
- ctx.Error(Pos) << "Failed to use window function " << OpName << " without window specification";
+ ctx.Error(Pos_) << "Failed to use window function " << OpName_ << " without window specification";
return false;
}
if (!src->AddFuncOverWindow(ctx, this)) {
- ctx.Error(Pos) << "Failed to use window function " << OpName << " without window specification or in wrong place";
+ ctx.Error(Pos_) << "Failed to use window function " << OpName_ << " without window specification or in wrong place";
return false;
}
- FuncAlias = "_yql_" + src->MakeLocalName(OpName);
- src->AddTmpWindowColumn(FuncAlias);
+ FuncAlias_ = "_yql_" + src->MakeLocalName(OpName_);
+ src->AddTmpWindowColumn(FuncAlias_);
if (!TCallNode::DoInit(ctx, src)) {
return false;
}
- Nodes.clear();
- Add("Member", "row", Q(FuncAlias));
+ Nodes_.clear();
+ Add("Member", "row", Q(FuncAlias_));
return true;
}
INode::TPtr TWinAggrEmulation::WindowSpecFunc(const TPtr& type) const {
- auto result = Y(OpName, type);
- for (const auto& arg: Args) {
+ auto result = Y(OpName_, type);
+ for (const auto& arg: Args_) {
result = L(result, arg);
}
- return Q(Y(Q(FuncAlias), result));
+ return Q(Y(Q(FuncAlias_), result));
}
TWinAggrEmulation::TWinAggrEmulation(TPosition pos, const TString& opName, i32 minArgs, i32 maxArgs, const TVector<TNodePtr>& args)
: TCallNode(pos, opName, minArgs, maxArgs, args)
- , FuncAlias(opName)
+ , FuncAlias_(opName)
{}
TWinRowNumber::TWinRowNumber(TPosition pos, const TString& opName, i32 minArgs, i32 maxArgs, const TVector<TNodePtr>& args)
@@ -1101,30 +1101,30 @@ bool TWinCumeDist::DoInit(TContext& ctx, ISource* src) {
return false;
}
- YQL_ENSURE(Args.size() == 0);
+ YQL_ENSURE(Args_.size() == 0);
TVector<TNodePtr> optionsElements;
if (ctx.AnsiCurrentRow) {
- optionsElements.push_back(BuildTuple(Pos, { BuildQuotedAtom(Pos, "ansi", NYql::TNodeFlags::Default) }));
+ optionsElements.push_back(BuildTuple(Pos_, { BuildQuotedAtom(Pos_, "ansi", NYql::TNodeFlags::Default) }));
}
- Args.push_back(BuildTuple(Pos, optionsElements));
+ Args_.push_back(BuildTuple(Pos_, optionsElements));
- MinArgs = MaxArgs = 1;
+ MinArgs_ = MaxArgs_ = 1;
if (!TWinAggrEmulation::DoInit(ctx, src)) {
return false;
}
- YQL_ENSURE(Args.size() == 1);
+ YQL_ENSURE(Args_.size() == 1);
return true;
}
TWinNTile::TWinNTile(TPosition pos, const TString& opName, i32 minArgs, i32 maxArgs, const TVector<TNodePtr>& args)
: TWinAggrEmulation(pos, opName, minArgs, maxArgs, args)
{
- FakeSource = BuildFakeSource(pos);
+ FakeSource_ = BuildFakeSource(pos);
}
bool TWinNTile::DoInit(TContext& ctx, ISource* src) {
- if (Args.size() >= 1 && !Args[0]->Init(ctx, FakeSource.Get())) {
+ if (Args_.size() >= 1 && !Args_[0]->Init(ctx, FakeSource_.Get())) {
return false;
}
@@ -1139,17 +1139,17 @@ TWinLeadLag::TWinLeadLag(TPosition pos, const TString& opName, i32 minArgs, i32
{}
bool TWinLeadLag::DoInit(TContext& ctx, ISource* src) {
- if (Args.size() >= 2) {
- if (!Args[1]->IsIntegerLiteral()) {
- ctx.Error(Args[1]->GetPos()) << "Expected integer literal as second parameter of " << OpName << "( ) function";
+ if (Args_.size() >= 2) {
+ if (!Args_[1]->IsIntegerLiteral()) {
+ ctx.Error(Args_[1]->GetPos()) << "Expected integer literal as second parameter of " << OpName_ << "( ) function";
return false;
}
}
if (!TWinAggrEmulation::DoInit(ctx, src)) {
return false;
}
- if (Args.size() >= 1) {
- Args[0] = BuildLambda(Pos, Y("row"), Args[0]);
+ if (Args_.size() >= 1) {
+ Args_[0] = BuildLambda(Pos_, Y("row"), Args_[0]);
}
return true;
}
@@ -1161,19 +1161,19 @@ TWinRank::TWinRank(TPosition pos, const TString& opName, i32 minArgs, i32 maxArg
}
bool TExternalFunctionConfig::DoInit(TContext& ctx, ISource* src) {
- for (auto& param: Config) {
- auto paramName = Y(BuildQuotedAtom(Pos, param.first));
+ for (auto& param: Config_) {
+ auto paramName = Y(BuildQuotedAtom(Pos_, param.first));
if (!param.second->Init(ctx, src)) {
return false;
}
- Nodes.push_back(Q(L(paramName, param.second)));
+ Nodes_.push_back(Q(L(paramName, param.second)));
}
return true;
}
INode::TPtr TExternalFunctionConfig::DoClone() const {
TFunctionConfig cloned;
- for (auto& [name, node] : Config) {
+ for (auto& [name, node] : Config_) {
cloned[name] = SafeClone(node);
}
@@ -1186,13 +1186,13 @@ bool TWinRank::DoInit(TContext& ctx, ISource* src) {
}
if (!src) {
- ctx.Error(Pos) << "Unable to use window function: " << OpName << " without source";
+ ctx.Error(Pos_) << "Unable to use window function: " << OpName_ << " without source";
return false;
}
auto winNamePtr = src->GetWindowName();
if (!winNamePtr) {
- ctx.Error(Pos) << "Failed to use window function: " << OpName << " without window";
+ ctx.Error(Pos_) << "Failed to use window function: " << OpName_ << " without window";
return false;
}
@@ -1203,42 +1203,42 @@ bool TWinRank::DoInit(TContext& ctx, ISource* src) {
const auto& orderSpec = winSpecPtr->OrderBy;
if (orderSpec.empty()) {
- if (Args.empty()) {
+ if (Args_.empty()) {
ctx.Warning(GetPos(), TIssuesIds::YQL_RANK_WITHOUT_ORDER_BY) <<
- OpName << "() is used with unordered window - all rows will be considered equal to each other";
+ OpName_ << "() is used with unordered window - all rows will be considered equal to each other";
} else {
ctx.Warning(GetPos(), TIssuesIds::YQL_RANK_WITHOUT_ORDER_BY) <<
- OpName << "(<expression>) is used with unordered window - the result is likely to be undefined";
+ OpName_ << "(<expression>) is used with unordered window - the result is likely to be undefined";
}
}
- if (Args.empty()) {
+ if (Args_.empty()) {
for (const auto& spec: orderSpec) {
- Args.push_back(spec->Clone()->OrderExpr);
+ Args_.push_back(spec->Clone()->OrderExpr);
}
- if (Args.size() != 1) {
- Args = {BuildTuple(GetPos(), Args)};
+ if (Args_.size() != 1) {
+ Args_ = {BuildTuple(GetPos(), Args_)};
}
}
- YQL_ENSURE(Args.size() == 1);
+ YQL_ENSURE(Args_.size() == 1);
TVector<TNodePtr> optionsElements;
if (!ctx.AnsiRankForNullableKeys.Defined()) {
- optionsElements.push_back(BuildTuple(Pos, { BuildQuotedAtom(Pos, "warnNoAnsi", NYql::TNodeFlags::Default) }));
+ optionsElements.push_back(BuildTuple(Pos_, { BuildQuotedAtom(Pos_, "warnNoAnsi", NYql::TNodeFlags::Default) }));
} else if (*ctx.AnsiRankForNullableKeys) {
- optionsElements.push_back(BuildTuple(Pos, { BuildQuotedAtom(Pos, "ansi", NYql::TNodeFlags::Default) }));
+ optionsElements.push_back(BuildTuple(Pos_, { BuildQuotedAtom(Pos_, "ansi", NYql::TNodeFlags::Default) }));
}
- Args.push_back(BuildTuple(Pos, optionsElements));
+ Args_.push_back(BuildTuple(Pos_, optionsElements));
- MinArgs = MaxArgs = 2;
+ MinArgs_ = MaxArgs_ = 2;
if (!TWinAggrEmulation::DoInit(ctx, src)) {
return false;
}
- YQL_ENSURE(Args.size() == 2);
- Args[0] = BuildLambda(Pos, Y("row"), Args[0]);
+ YQL_ENSURE(Args_.size() == 2);
+ Args_[0] = BuildLambda(Pos_, Y("row"), Args_[0]);
return true;
}
@@ -1252,9 +1252,9 @@ public:
protected:
TQuotedAtomNode(const TQuotedAtomNode& other)
- : TAstListNode(other.Pos)
+ : TAstListNode(other.Pos_)
{
- Nodes = CloneContainer(other.Nodes);
+ Nodes_ = CloneContainer(other.Nodes_);
}
TPtr DoClone() const final {
return new TQuotedAtomNode(*this);
@@ -1270,7 +1270,7 @@ TNodePtr ITableKeys::AddView(TNodePtr key, const TViewDescription& view) {
if (view.PrimaryFlag) {
return L(key, Q(Y(Q("primary_view"))));
} else if (!view.empty()) {
- return L(key, Q(Y(Q("view"), Y("String", BuildQuotedAtom(Pos, view.ViewName)))));
+ return L(key, Q(Y(Q("view"), Y("String", BuildQuotedAtom(Pos_, view.ViewName)))));
} else {
return key;
}
@@ -1433,12 +1433,12 @@ bool TColumns::IsColumnPossible(TContext& ctx, const TString& name) const {
TSortSpecification::TSortSpecification(const TNodePtr& orderExpr, bool ascending)
: OrderExpr(orderExpr->Clone())
, Ascending(ascending)
- , CleanOrderExpr(orderExpr->Clone())
+ , CleanOrderExpr_(orderExpr->Clone())
{
}
TSortSpecificationPtr TSortSpecification::Clone() const {
- return MakeIntrusive<TSortSpecification>(CleanOrderExpr, Ascending);
+ return MakeIntrusive<TSortSpecification>(CleanOrderExpr_, Ascending);
}
TFrameBoundPtr TFrameBound::Clone() const {
@@ -1492,16 +1492,16 @@ TLegacyHoppingWindowSpecPtr TLegacyHoppingWindowSpec::Clone() const {
TColumnNode::TColumnNode(TPosition pos, const TString& column, const TString& source, bool maybeType)
: INode(pos)
- , ColumnName(column)
- , Source(source)
- , MaybeType(maybeType)
+ , ColumnName_(column)
+ , Source_(source)
+ , MaybeType_(maybeType)
{
}
TColumnNode::TColumnNode(TPosition pos, const TNodePtr& column, const TString& source)
: INode(pos)
- , ColumnExpr(column)
- , Source(source)
+ , ColumnExpr_(column)
+ , Source_(source)
{
}
@@ -1510,19 +1510,19 @@ TColumnNode::~TColumnNode()
}
bool TColumnNode::IsAsterisk() const {
- return ColumnName == "*";
+ return ColumnName_ == "*";
}
bool TColumnNode::IsArtificial() const {
- return Artificial;
+ return Artificial_;
}
const TString* TColumnNode::GetColumnName() const {
- return UseSourceAsColumn ? &Source : (ColumnExpr ? nullptr : &ColumnName);
+ return UseSourceAsColumn_ ? &Source_ : (ColumnExpr_ ? nullptr : &ColumnName_);
}
const TString* TColumnNode::GetSourceName() const {
- return UseSourceAsColumn ? &Empty : &Source;
+ return UseSourceAsColumn_ ? &Empty : &Source_;
}
TColumnNode* TColumnNode::GetColumnNode() {
@@ -1535,7 +1535,7 @@ const TColumnNode* TColumnNode::GetColumnNode () const {
bool TColumnNode::DoInit(TContext& ctx, ISource* src) {
if (src) {
- YQL_ENSURE(!State.Test(ENodeState::Initialized)); /// should be not initialized or Aggregated already invalid
+ YQL_ENSURE(!State_.Test(ENodeState::Initialized)); /// should be not initialized or Aggregated already invalid
if (src->ShouldUseSourceAsColumn(*GetSourceName())) {
if (!IsAsterisk() && IsReliable()) {
SetUseSourceAsColumn();
@@ -1543,118 +1543,118 @@ bool TColumnNode::DoInit(TContext& ctx, ISource* src) {
}
if (GetColumnName()) {
- auto fullName = Source ? DotJoin(Source, *GetColumnName()) : *GetColumnName();
+ auto fullName = Source_ ? DotJoin(Source_, *GetColumnName()) : *GetColumnName();
auto alias = src->GetGroupByColumnAlias(fullName);
if (alias) {
ResetColumn(alias, {});
}
- Artificial = !Source && src->IsExprAlias(*GetColumnName());
+ Artificial_ = !Source_ && src->IsExprAlias(*GetColumnName());
}
if (!src->AddColumn(ctx, *this)) {
return false;
}
if (GetColumnName()) {
- if (src->GetJoin() && Source) {
- GroupKey = src->IsGroupByColumn(DotJoin(Source, *GetColumnName()));
+ if (src->GetJoin() && Source_) {
+ GroupKey_ = src->IsGroupByColumn(DotJoin(Source_, *GetColumnName()));
} else {
- GroupKey = src->IsGroupByColumn(*GetColumnName()) || src->IsAlias(EExprSeat::GroupBy, *GetColumnName());
+ GroupKey_ = src->IsGroupByColumn(*GetColumnName()) || src->IsAlias(EExprSeat::GroupBy, *GetColumnName());
}
}
}
if (IsAsterisk()) {
- Node = AstNode("row");
+ Node_ = AstNode("row");
} else {
TString callable;
- if (MaybeType) {
- callable = Reliable && !UseSource ? "SqlPlainColumnOrType" : "SqlColumnOrType";
+ if (MaybeType_) {
+ callable = Reliable_ && !UseSource_ ? "SqlPlainColumnOrType" : "SqlColumnOrType";
} else {
// TODO: consider replacing Member -> SqlPlainColumn
- callable = Reliable && !UseSource ? "Member" : "SqlColumn";
+ callable = Reliable_ && !UseSource_ ? "Member" : "SqlColumn";
}
- Node = Y(callable, "row", ColumnExpr ? Y("EvaluateAtom", ColumnExpr) : BuildQuotedAtom(Pos, *GetColumnName()));
- if (UseSource) {
- YQL_ENSURE(Source);
- Node = L(Node, BuildQuotedAtom(Pos, Source));
+ Node_ = Y(callable, "row", ColumnExpr_ ? Y("EvaluateAtom", ColumnExpr_) : BuildQuotedAtom(Pos_, *GetColumnName()));
+ if (UseSource_) {
+ YQL_ENSURE(Source_);
+ Node_ = L(Node_, BuildQuotedAtom(Pos_, Source_));
}
}
- return Node->Init(ctx, src);
+ return Node_->Init(ctx, src);
}
void TColumnNode::SetUseSourceAsColumn() {
- YQL_ENSURE(!State.Test(ENodeState::Initialized)); /// should be not initialized or Aggregated already invalid
+ YQL_ENSURE(!State_.Test(ENodeState::Initialized)); /// should be not initialized or Aggregated already invalid
YQL_ENSURE(!IsAsterisk());
- UseSourceAsColumn = true;
+ UseSourceAsColumn_ = true;
}
void TColumnNode::ResetAsReliable() {
- Reliable = true;
+ Reliable_ = true;
}
void TColumnNode::SetAsNotReliable() {
- Reliable = false;
+ Reliable_ = false;
}
void TColumnNode::SetUseSource() {
- UseSource = true;
+ UseSource_ = true;
}
bool TColumnNode::IsUseSourceAsColumn() const {
- return UseSourceAsColumn;
+ return UseSourceAsColumn_;
}
bool TColumnNode::IsUseSource() const {
- return UseSource;
+ return UseSource_;
}
bool TColumnNode::IsReliable() const {
- return Reliable;
+ return Reliable_;
}
bool TColumnNode::CanBeType() const {
- return MaybeType;
+ return MaybeType_;
}
TNodePtr TColumnNode::DoClone() const {
- YQL_ENSURE(!Node, "TColumnNode::Clone: Node should not be initialized");
- auto copy = ColumnExpr ? new TColumnNode(Pos, ColumnExpr, Source) : new TColumnNode(Pos, ColumnName, Source, MaybeType);
- copy->GroupKey = GroupKey;
- copy->Artificial = Artificial;
- copy->Reliable = Reliable;
- copy->UseSource = UseSource;
- copy->UseSourceAsColumn = UseSourceAsColumn;
+ YQL_ENSURE(!Node_, "TColumnNode::Clone: Node should not be initialized");
+ auto copy = ColumnExpr_ ? new TColumnNode(Pos_, ColumnExpr_, Source_) : new TColumnNode(Pos_, ColumnName_, Source_, MaybeType_);
+ copy->GroupKey_ = GroupKey_;
+ copy->Artificial_ = Artificial_;
+ copy->Reliable_ = Reliable_;
+ copy->UseSource_ = UseSource_;
+ copy->UseSourceAsColumn_ = UseSourceAsColumn_;
return copy;
}
void TColumnNode::DoUpdateState() const {
- State.Set(ENodeState::Const, false);
- State.Set(ENodeState::MaybeConst, MaybeType);
- State.Set(ENodeState::Aggregated, GroupKey);
- State.Set(ENodeState::AggregationKey, GroupKey);
+ State_.Set(ENodeState::Const, false);
+ State_.Set(ENodeState::MaybeConst, MaybeType_);
+ State_.Set(ENodeState::Aggregated, GroupKey_);
+ State_.Set(ENodeState::AggregationKey, GroupKey_);
}
TAstNode* TColumnNode::Translate(TContext& ctx) const {
- return Node->Translate(ctx);
+ return Node_->Translate(ctx);
}
void TColumnNode::ResetColumn(const TString& column, const TString& source) {
- YQL_ENSURE(!State.Test(ENodeState::Initialized)); /// should be not initialized
- Reliable = true;
- UseSource = false;
- UseSourceAsColumn = false;
- ColumnName = column;
- ColumnExpr = nullptr;
- Source = source;
+ YQL_ENSURE(!State_.Test(ENodeState::Initialized)); /// should be not initialized
+ Reliable_ = true;
+ UseSource_ = false;
+ UseSourceAsColumn_ = false;
+ ColumnName_ = column;
+ ColumnExpr_ = nullptr;
+ Source_ = source;
}
void TColumnNode::ResetColumn(const TNodePtr& column, const TString& source) {
- YQL_ENSURE(!State.Test(ENodeState::Initialized)); /// should be not initialized
- Reliable = true;
- UseSource = false;
- UseSourceAsColumn = false;
- ColumnName = "";
- ColumnExpr = column;
- Source = source;
+ YQL_ENSURE(!State_.Test(ENodeState::Initialized)); /// should be not initialized
+ Reliable_ = true;
+ UseSource_ = false;
+ UseSourceAsColumn_ = false;
+ ColumnName_ = "";
+ ColumnExpr_ = column;
+ Source_ = source;
}
const TString TColumnNode::Empty;
@@ -1698,13 +1698,13 @@ TAstNode* ITableKeys::Translate(TContext& ctx) const {
}
bool IAggregation::IsDistinct() const {
- return !DistinctKey.empty();
+ return !DistinctKey_.empty();
}
void IAggregation::DoUpdateState() const {
- State.Set(ENodeState::Aggregated, AggMode == EAggregateMode::Normal);
- State.Set(ENodeState::OverWindow, AggMode == EAggregateMode::OverWindow);
- State.Set(ENodeState::OverWindowDistinct, AggMode == EAggregateMode::OverWindowDistinct);
+ State_.Set(ENodeState::Aggregated, AggMode_ == EAggregateMode::Normal);
+ State_.Set(ENodeState::OverWindow, AggMode_ == EAggregateMode::OverWindow);
+ State_.Set(ENodeState::OverWindowDistinct, AggMode_ == EAggregateMode::OverWindowDistinct);
}
const TString* IAggregation::GetGenericKey() const {
@@ -1716,19 +1716,19 @@ void IAggregation::Join(IAggregation*) {
}
const TString& IAggregation::GetName() const {
- return Name;
+ return Name_;
}
EAggregateMode IAggregation::GetAggregationMode() const {
- return AggMode;
+ return AggMode_;
}
void IAggregation::MarkKeyColumnAsGenerated() {
- IsGeneratedKeyColumn = true;
+ IsGeneratedKeyColumn_ = true;
}
IAggregation::IAggregation(TPosition pos, const TString& name, const TString& func, EAggregateMode aggMode)
- : INode(pos), Name(name), Func(func), AggMode(aggMode)
+ : INode(pos), Name_(name), Func_(func), AggMode_(aggMode)
{}
TAstNode* IAggregation::Translate(TContext& ctx) const {
@@ -1738,8 +1738,8 @@ TAstNode* IAggregation::Translate(TContext& ctx) const {
}
std::pair<TNodePtr, bool> IAggregation::AggregationTraits(const TNodePtr& type, bool overState, bool many, bool allowAggApply, TContext& ctx) const {
- const bool distinct = AggMode == EAggregateMode::Distinct;
- const auto listType = distinct ? Y("ListType", Y("StructMemberType", Y("ListItemType", type), BuildQuotedAtom(Pos, DistinctKey))) : type;
+ const bool distinct = AggMode_ == EAggregateMode::Distinct;
+ const auto listType = distinct ? Y("ListType", Y("StructMemberType", Y("ListItemType", type), BuildQuotedAtom(Pos_, DistinctKey_))) : type;
auto apply = GetApply(listType, many, allowAggApply, ctx);
if (!apply) {
return { nullptr, false };
@@ -1751,8 +1751,8 @@ std::pair<TNodePtr, bool> IAggregation::AggregationTraits(const TNodePtr& type,
}
return { distinct ?
- Q(Y(Q(Name), wrapped, BuildQuotedAtom(Pos, DistinctKey))) :
- Q(Y(Q(Name), wrapped)), true };
+ Q(Y(Q(Name_), wrapped, BuildQuotedAtom(Pos_, DistinctKey_))) :
+ Q(Y(Q(Name_), wrapped)), true };
}
TNodePtr IAggregation::WrapIfOverState(const TNodePtr& input, bool overState, bool many, TContext& ctx) const {
@@ -1765,7 +1765,7 @@ TNodePtr IAggregation::WrapIfOverState(const TNodePtr& input, bool overState, bo
return nullptr;
}
- return Y(ToString("AggOverState"), extractor, BuildLambda(Pos, Y(), input));
+ return Y(ToString("AggOverState"), extractor, BuildLambda(Pos_, Y(), input));
}
void IAggregation::AddFactoryArguments(TNodePtr& apply) const {
@@ -1777,13 +1777,13 @@ std::vector<ui32> IAggregation::GetFactoryColumnIndices() const {
}
TNodePtr IAggregation::WindowTraits(const TNodePtr& type, TContext& ctx) const {
- YQL_ENSURE(AggMode == EAggregateMode::OverWindow || AggMode == EAggregateMode::OverWindowDistinct, "Windows traits is unavailable");
+ YQL_ENSURE(AggMode_ == EAggregateMode::OverWindow || AggMode_ == EAggregateMode::OverWindowDistinct, "Windows traits is unavailable");
- const bool distinct = AggMode == EAggregateMode::OverWindowDistinct;
- const auto listType = distinct ? Y("ListType", Y("StructMemberType", Y("ListItemType", type), BuildQuotedAtom(Pos, DistinctKey))) : type;
- auto traits = Y(Q(Name), GetApply(listType, false, false, ctx));
- if (AggMode == EAggregateMode::OverWindowDistinct) {
- traits->Add(BuildQuotedAtom(Pos, DistinctKey));
+ const bool distinct = AggMode_ == EAggregateMode::OverWindowDistinct;
+ const auto listType = distinct ? Y("ListType", Y("StructMemberType", Y("ListItemType", type), BuildQuotedAtom(Pos_, DistinctKey_))) : type;
+ auto traits = Y(Q(Name_), GetApply(listType, false, false, ctx));
+ if (AggMode_ == EAggregateMode::OverWindowDistinct) {
+ traits->Add(BuildQuotedAtom(Pos_, DistinctKey_));
}
return Q(traits);
@@ -2025,56 +2025,56 @@ public:
TLiteralNode::TLiteralNode(TPosition pos, bool isNull)
: TAstListNode(pos)
- , Null(isNull)
- , Void(!isNull)
+ , Null_(isNull)
+ , Void_(!isNull)
{
Add(isNull ? "Null" : "Void");
}
TLiteralNode::TLiteralNode(TPosition pos, const TString& type, const TString& value)
: TAstListNode(pos)
- , Null(false)
- , Void(false)
- , Type(type)
- , Value(value)
+ , Null_(false)
+ , Void_(false)
+ , Type_(type)
+ , Value_(value)
{
- if (Type.StartsWith("Pg")) {
- Add("PgConst", BuildQuotedAtom(Pos, Value), Y("PgType", Q(to_lower(Type.substr(2)))));
+ if (Type_.StartsWith("Pg")) {
+ Add("PgConst", BuildQuotedAtom(Pos_, Value_), Y("PgType", Q(to_lower(Type_.substr(2)))));
} else {
- Add(Type, BuildQuotedAtom(Pos, Value));
+ Add(Type_, BuildQuotedAtom(Pos_, Value_));
}
}
TLiteralNode::TLiteralNode(TPosition pos, const TString& value, ui32 nodeFlags)
: TAstListNode(pos)
- , Null(false)
- , Void(false)
- , Type("String")
- , Value(value)
+ , Null_(false)
+ , Void_(false)
+ , Type_("String")
+ , Value_(value)
{
- Add(Type, BuildQuotedAtom(pos, Value, nodeFlags));
+ Add(Type_, BuildQuotedAtom(pos, Value_, nodeFlags));
}
TLiteralNode::TLiteralNode(TPosition pos, const TString& value, ui32 nodeFlags, const TString& type)
: TAstListNode(pos)
- , Null(false)
- , Void(false)
- , Type(type)
- , Value(value)
+ , Null_(false)
+ , Void_(false)
+ , Type_(type)
+ , Value_(value)
{
- if (Type.StartsWith("Pg")) {
- Add("PgConst", BuildQuotedAtom(Pos, Value, nodeFlags), Y("PgType", Q(to_lower(Type.substr(2)))));
+ if (Type_.StartsWith("Pg")) {
+ Add("PgConst", BuildQuotedAtom(Pos_, Value_, nodeFlags), Y("PgType", Q(to_lower(Type_.substr(2)))));
} else {
- Add(Type, BuildQuotedAtom(pos, Value, nodeFlags));
+ Add(Type_, BuildQuotedAtom(pos, Value_, nodeFlags));
}
}
bool TLiteralNode::IsNull() const {
- return Null;
+ return Null_;
}
const TString* TLiteralNode::GetLiteral(const TString& type) const {
- return type == Type ? &Value : nullptr;
+ return type == Type_ ? &Value_ : nullptr;
}
bool TLiteralNode::IsLiteral() const {
@@ -2082,40 +2082,40 @@ bool TLiteralNode::IsLiteral() const {
}
TString TLiteralNode::GetLiteralType() const {
- return Type;
+ return Type_;
}
TString TLiteralNode::GetLiteralValue() const {
- return Value;
+ return Value_;
}
void TLiteralNode::DoUpdateState() const {
- State.Set(ENodeState::Const);
+ State_.Set(ENodeState::Const);
}
TNodePtr TLiteralNode::DoClone() const {
- auto res = (Null || Void) ? MakeIntrusive<TLiteralNode>(Pos, Null) : MakeIntrusive<TLiteralNode>(Pos, Type, Value);
- res->Nodes = Nodes;
+ auto res = (Null_ || Void_) ? MakeIntrusive<TLiteralNode>(Pos_, Null_) : MakeIntrusive<TLiteralNode>(Pos_, Type_, Value_);
+ res->Nodes_ = Nodes_;
return res;
}
template<typename T>
TLiteralNumberNode<T>::TLiteralNumberNode(TPosition pos, const TString& type, const TString& value, bool implicitType)
: TLiteralNode(pos, type, value)
- , ImplicitType(implicitType)
+ , ImplicitType_(implicitType)
{}
template<typename T>
TNodePtr TLiteralNumberNode<T>::DoClone() const {
- return new TLiteralNumberNode<T>(Pos, Type, Value, ImplicitType);
+ return new TLiteralNumberNode<T>(Pos_, Type_, Value_, ImplicitType_);
}
template<typename T>
bool TLiteralNumberNode<T>::DoInit(TContext& ctx, ISource* src) {
Y_UNUSED(src);
T val;
- if (!TryFromString(Value, val)) {
- ctx.Error(Pos) << "Failed to parse " << Value << " as integer literal of " << Type << " type: value out of range for " << Type;
+ if (!TryFromString(Value_, val)) {
+ ctx.Error(Pos_) << "Failed to parse " << Value_ << " as integer literal of " << Type_ << " type: value out of range for " << Type_;
return false;
}
return true;
@@ -2128,22 +2128,22 @@ bool TLiteralNumberNode<T>::IsIntegerLiteral() const {
template<typename T>
TNodePtr TLiteralNumberNode<T>::ApplyUnaryOp(TContext& ctx, TPosition pos, const TString& opName) const {
- YQL_ENSURE(!Value.empty());
- if (opName == "Minus" && IsIntegerLiteral() && Value[0] != '-') {
- if (ImplicitType) {
- ui64 val = FromString<ui64>(Value);
- TString negated = "-" + Value;
+ YQL_ENSURE(!Value_.empty());
+ if (opName == "Minus" && IsIntegerLiteral() && Value_[0] != '-') {
+ if (ImplicitType_) {
+ ui64 val = FromString<ui64>(Value_);
+ TString negated = "-" + Value_;
if (val <= ui64(std::numeric_limits<i32>::max()) + 1) {
// negated value fits in Int32
i32 v;
YQL_ENSURE(TryFromString(negated, v));
- return new TLiteralNumberNode<i32>(pos, Type.StartsWith("Pg") ? "PgInt4" : "Int32", negated);
+ return new TLiteralNumberNode<i32>(pos, Type_.StartsWith("Pg") ? "PgInt4" : "Int32", negated);
}
if (val <= ui64(std::numeric_limits<i64>::max()) + 1) {
// negated value fits in Int64
i64 v;
YQL_ENSURE(TryFromString(negated, v));
- return new TLiteralNumberNode<i64>(pos, Type.StartsWith("Pg") ? "PgInt8" : "Int64", negated);
+ return new TLiteralNumberNode<i64>(pos, Type_.StartsWith("Pg") ? "PgInt8" : "Int64", negated);
}
ctx.Error(pos) << "Failed to parse negative integer: " << negated << ", number limit overflow";
@@ -2151,7 +2151,7 @@ TNodePtr TLiteralNumberNode<T>::ApplyUnaryOp(TContext& ctx, TPosition pos, const
}
if (std::numeric_limits<T>::is_signed) {
- return new TLiteralNumberNode<T>(pos, Type, "-" + Value);
+ return new TLiteralNumberNode<T>(pos, Type_, "-" + Value_);
}
}
return INode::ApplyUnaryOp(ctx, pos, opName);
@@ -2225,11 +2225,11 @@ bool TAsteriskNode::IsAsterisk() const {
};
TNodePtr TAsteriskNode::DoClone() const {
- return new TAsteriskNode(Pos);
+ return new TAsteriskNode(Pos_);
}
TAstNode* TAsteriskNode::Translate(TContext& ctx) const {
- ctx.Error(Pos) << "* is not allowed here";
+ ctx.Error(Pos_) << "* is not allowed here";
return nullptr;
}
@@ -2245,58 +2245,58 @@ TDeferredAtom::TDeferredAtom()
TDeferredAtom::TDeferredAtom(TPosition pos, const TString& str)
{
- Node = BuildQuotedAtom(pos, str);
- Explicit = str;
- Repr = str;
+ Node_ = BuildQuotedAtom(pos, str);
+ Explicit_ = str;
+ Repr_ = str;
}
TDeferredAtom::TDeferredAtom(TNodePtr node, TContext& ctx)
{
- Node = node;
- Repr = ctx.MakeName("DeferredAtom");
+ Node_ = node;
+ Repr_ = ctx.MakeName("DeferredAtom");
}
const TString* TDeferredAtom::GetLiteral() const {
- return Explicit.Get();
+ return Explicit_.Get();
}
bool TDeferredAtom::GetLiteral(TString& value, TContext& ctx) const {
- if (Explicit) {
- value = *Explicit;
+ if (Explicit_) {
+ value = *Explicit_;
return true;
}
- ctx.Error(Node ? Node->GetPos() : ctx.Pos()) << "Expected literal value";
+ ctx.Error(Node_ ? Node_->GetPos() : ctx.Pos()) << "Expected literal value";
return false;
}
TNodePtr TDeferredAtom::Build() const {
- return Node;
+ return Node_;
}
TString TDeferredAtom::GetRepr() const {
- return Repr;
+ return Repr_;
}
bool TDeferredAtom::Empty() const {
- return !Node || Repr.empty();
+ return !Node_ || Repr_.empty();
}
bool TDeferredAtom::HasNode() const {
- return !!Node;
+ return !!Node_;
}
TTupleNode::TTupleNode(TPosition pos, const TVector<TNodePtr>& exprs)
: TAstListNode(pos)
- , Exprs(exprs)
+ , Exprs_(exprs)
{}
bool TTupleNode::IsEmpty() const {
- return Exprs.empty();
+ return Exprs_.empty();
}
const TVector<TNodePtr>& TTupleNode::Elements() const {
- return Exprs;
+ return Exprs_;
}
TTupleNode* TTupleNode::GetTupleNode() {
@@ -2309,7 +2309,7 @@ const TTupleNode* TTupleNode::GetTupleNode() const {
bool TTupleNode::DoInit(TContext& ctx, ISource* src) {
auto node(Y());
- for (auto& expr: Exprs) {
+ for (auto& expr: Exprs_) {
if (expr->GetLabel()) {
ctx.Error(expr->GetPos()) << "Tuple does not allow named members";
return false;
@@ -2321,25 +2321,25 @@ bool TTupleNode::DoInit(TContext& ctx, ISource* src) {
}
size_t TTupleNode::GetTupleSize() const {
- return Exprs.size();
+ return Exprs_.size();
}
TNodePtr TTupleNode::GetTupleElement(size_t index) const {
- return Exprs[index];
+ return Exprs_[index];
}
TNodePtr TTupleNode::DoClone() const {
- return new TTupleNode(Pos, CloneContainer(Exprs));
+ return new TTupleNode(Pos_, CloneContainer(Exprs_));
}
void TTupleNode::CollectPreaggregateExprs(TContext& ctx, ISource& src, TVector<INode::TPtr>& exprs) {
- for (auto& expr : Exprs) {
+ for (auto& expr : Exprs_) {
expr->CollectPreaggregateExprs(ctx, src, exprs);
}
}
const TString* TTupleNode::GetSourceName() const {
- return DeriveCommonSourceName(Exprs);
+ return DeriveCommonSourceName(Exprs_);
}
TNodePtr BuildTuple(TPosition pos, const TVector<TNodePtr>& exprs) {
@@ -2348,34 +2348,34 @@ TNodePtr BuildTuple(TPosition pos, const TVector<TNodePtr>& exprs) {
TStructNode::TStructNode(TPosition pos, const TVector<TNodePtr>& exprs, const TVector<TNodePtr>& labels, bool ordered)
: TAstListNode(pos)
- , Exprs(exprs)
- , Labels(labels)
- , Ordered(ordered)
+ , Exprs_(exprs)
+ , Labels_(labels)
+ , Ordered_(ordered)
{
- YQL_ENSURE(Labels.empty() || Labels.size() == Exprs.size());
+ YQL_ENSURE(Labels_.empty() || Labels_.size() == Exprs_.size());
}
bool TStructNode::DoInit(TContext& ctx, ISource* src) {
- Nodes.push_back(BuildAtom(Pos, (Ordered || Exprs.size() < 2) ? "AsStruct" : "AsStructUnordered", TNodeFlags::Default));
+ Nodes_.push_back(BuildAtom(Pos_, (Ordered_ || Exprs_.size() < 2) ? "AsStruct" : "AsStructUnordered", TNodeFlags::Default));
size_t i = 0;
- for (const auto& expr : Exprs) {
+ for (const auto& expr : Exprs_) {
TNodePtr label;
- if (Labels.empty()) {
+ if (Labels_.empty()) {
if (!expr->GetLabel()) {
ctx.Error(expr->GetPos()) << "Structure does not allow anonymous members";
return false;
}
label = BuildQuotedAtom(expr->GetPos(), expr->GetLabel());
} else {
- label = Labels[i++];
+ label = Labels_[i++];
}
- Nodes.push_back(Q(Y(label, expr)));
+ Nodes_.push_back(Q(Y(label, expr)));
}
return TAstListNode::DoInit(ctx, src);
}
TNodePtr TStructNode::DoClone() const {
- return new TStructNode(Pos, CloneContainer(Exprs), CloneContainer(Labels), Ordered);
+ return new TStructNode(Pos_, CloneContainer(Exprs_), CloneContainer(Labels_), Ordered_);
}
TStructNode* TStructNode::GetStructNode() {
@@ -2387,13 +2387,13 @@ const TStructNode* TStructNode::GetStructNode() const {
}
void TStructNode::CollectPreaggregateExprs(TContext& ctx, ISource& src, TVector<INode::TPtr>& exprs) {
- for (auto& expr : Exprs) {
+ for (auto& expr : Exprs_) {
expr->CollectPreaggregateExprs(ctx, src, exprs);
}
}
const TString* TStructNode::GetSourceName() const {
- return DeriveCommonSourceName(Exprs);
+ return DeriveCommonSourceName(Exprs_);
}
TNodePtr BuildStructure(TPosition pos, const TVector<TNodePtr>& exprs) {
@@ -2413,11 +2413,11 @@ TNodePtr BuildOrderedStructure(TPosition pos, const TVector<TNodePtr>& exprsUnla
TListOfNamedNodes::TListOfNamedNodes(TPosition pos, TVector<TNodePtr>&& exprs)
: INode(pos)
- , Exprs(std::move(exprs))
+ , Exprs_(std::move(exprs))
{}
TVector<TNodePtr>* TListOfNamedNodes::ContentListPtr() {
- return &Exprs;
+ return &Exprs_;
}
TAstNode* TListOfNamedNodes::Translate(TContext& ctx) const {
@@ -2427,11 +2427,11 @@ TAstNode* TListOfNamedNodes::Translate(TContext& ctx) const {
}
TNodePtr TListOfNamedNodes::DoClone() const {
- return new TListOfNamedNodes(GetPos(), CloneContainer(Exprs));
+ return new TListOfNamedNodes(GetPos(), CloneContainer(Exprs_));
}
void TListOfNamedNodes::DoVisitChildren(const TVisitFunc& func, TVisitNodeSet& visited) const {
- for (auto& expr : Exprs) {
+ for (auto& expr : Exprs_) {
expr->VisitTree(func, visited);
}
}
@@ -2442,13 +2442,13 @@ TNodePtr BuildListOfNamedNodes(TPosition pos, TVector<TNodePtr>&& exprs) {
TArgPlaceholderNode::TArgPlaceholderNode(TPosition pos, const TString &name) :
INode(pos),
- Name(name)
+ Name_(name)
{
}
bool TArgPlaceholderNode::DoInit(TContext& ctx, ISource* src) {
Y_UNUSED(src);
- ctx.Error(Pos) << Name << " can't be used as a part of expression.";
+ ctx.Error(Pos_) << Name_ << " can't be used as a part of expression.";
return false;
}
@@ -2458,11 +2458,11 @@ TAstNode* TArgPlaceholderNode::Translate(TContext& ctx) const {
}
TString TArgPlaceholderNode::GetName() const {
- return Name;
+ return Name_;
}
TNodePtr TArgPlaceholderNode::DoClone() const {
- return new TArgPlaceholderNode(GetPos(), Name);
+ return new TArgPlaceholderNode(GetPos(), Name_);
}
TNodePtr BuildArgPlaceholder(TPosition pos, const TString& name) {
@@ -2473,51 +2473,51 @@ class TAccessNode: public INode {
public:
TAccessNode(TPosition pos, const TVector<TIdPart>& ids, bool isLookup)
: INode(pos)
- , Ids(ids)
- , IsLookup(isLookup)
- , ColumnOnly(false)
- , IsColumnRequired(false)
- , AccessOpName("AccessNode")
+ , Ids_(ids)
+ , IsLookup_(isLookup)
+ , ColumnOnly_(false)
+ , IsColumnRequired_(false)
+ , AccessOpName_("AccessNode")
{
- Y_DEBUG_ABORT_UNLESS(Ids.size() > 1);
- Y_DEBUG_ABORT_UNLESS(Ids[0].Expr);
- auto column = Ids[0].Expr->GetColumnNode();
+ Y_DEBUG_ABORT_UNLESS(Ids_.size() > 1);
+ Y_DEBUG_ABORT_UNLESS(Ids_[0].Expr);
+ auto column = Ids_[0].Expr->GetColumnNode();
if (column) {
ui32 idx = 1;
TString source;
- if (Ids.size() > 2) {
- source = Ids[idx].Name;
+ if (Ids_.size() > 2) {
+ source = Ids_[idx].Name;
++idx;
}
- ColumnOnly = !IsLookup && Ids.size() < 4;
- if (ColumnOnly && Ids[idx].Expr) {
- column->ResetColumn(Ids[idx].Expr, source);
+ ColumnOnly_ = !IsLookup_ && Ids_.size() < 4;
+ if (ColumnOnly_ && Ids_[idx].Expr) {
+ column->ResetColumn(Ids_[idx].Expr, source);
} else {
- column->ResetColumn(Ids[idx].Name, source);
+ column->ResetColumn(Ids_[idx].Name, source);
}
}
}
void AssumeColumn() override {
- IsColumnRequired = true;
+ IsColumnRequired_ = true;
}
TMaybe<TString> TryMakeTable() {
- if (!ColumnOnly) {
+ if (!ColumnOnly_) {
return Nothing();
}
ui32 idx = 1;
- if (Ids.size() > 2) {
+ if (Ids_.size() > 2) {
return Nothing();
}
- return Ids[idx].Name;
+ return Ids_[idx].Name;
}
const TString* GetColumnName() const override {
- return ColumnOnly ? Ids[0].Expr->GetColumnName() : nullptr;
+ return ColumnOnly_ ? Ids_[0].Expr->GetColumnName() : nullptr;
}
bool IsPlainColumn() const override {
@@ -2525,7 +2525,7 @@ public:
return true;
}
- if (Ids[0].Expr->IsTableRow()) {
+ if (Ids_[0].Expr->IsTableRow()) {
return true;
}
@@ -2533,7 +2533,7 @@ public:
}
const TString* GetSourceName() const override {
- return Ids[0].Expr->GetSourceName();
+ return Ids_[0].Expr->GetSourceName();
}
TAccessNode* GetAccessNode() override {
@@ -2545,7 +2545,7 @@ public:
}
bool DoInit(TContext& ctx, ISource* src) override {
- auto expr = Ids[0].Expr;
+ auto expr = Ids_[0].Expr;
const TPosition pos(expr->GetPos());
if (expr->IsAsterisk()) {
ctx.Error(pos) << "Asterisk column does not allow any access";
@@ -2554,7 +2554,7 @@ public:
if (!expr->Init(ctx, src)) {
return false;
}
- for (auto& id: Ids) {
+ for (auto& id: Ids_) {
if (id.Expr && !id.Expr->Init(ctx, src)) {
return false;
}
@@ -2563,33 +2563,33 @@ public:
auto column = expr->GetColumnNode();
if (column) {
const bool useSourceAsColumn = column->IsUseSourceAsColumn();
- ColumnOnly &= !useSourceAsColumn;
- if (IsColumnRequired && !ColumnOnly) {
+ ColumnOnly_ &= !useSourceAsColumn;
+ if (IsColumnRequired_ && !ColumnOnly_) {
ctx.Error(pos) << "Please use a full form (corellation.struct.field) or an alias (struct.field as alias) to access struct's field in the GROUP BY";
return false;
}
- if (Ids.size() > 2) {
- if (!CheckColumnId(pos, ctx, Ids[idx], ColumnOnly ? "Correlation" : "Column", true)) {
+ if (Ids_.size() > 2) {
+ if (!CheckColumnId(pos, ctx, Ids_[idx], ColumnOnly_ ? "Correlation" : "Column", true)) {
return false;
}
++idx;
}
if (!useSourceAsColumn) {
- if (!IsLookup && !CheckColumnId(pos, ctx, Ids[idx], ColumnOnly ? "Column" : "Member", false)) {
+ if (!IsLookup_ && !CheckColumnId(pos, ctx, Ids_[idx], ColumnOnly_ ? "Column" : "Member", false)) {
return false;
}
++idx;
}
}
- for (; idx < Ids.size(); ++idx) {
- const auto& id = Ids[idx];
+ for (; idx < Ids_.size(); ++idx) {
+ const auto& id = Ids_[idx];
if (!id.Name.empty()) {
- expr = Y("SqlAccess", Q("struct"), expr, id.Expr ? Y("EvaluateAtom", id.Expr) : BuildQuotedAtom(Pos, id.Name));
- AccessOpName = "AccessStructMember";
+ expr = Y("SqlAccess", Q("struct"), expr, id.Expr ? Y("EvaluateAtom", id.Expr) : BuildQuotedAtom(Pos_, id.Name));
+ AccessOpName_ = "AccessStructMember";
} else if (id.Expr) {
expr = Y("SqlAccess", Q("dict"), expr, id.Expr);
- AccessOpName = "AccessDictMember";
+ AccessOpName_ = "AccessDictMember";
} else {
continue;
}
@@ -2597,55 +2597,55 @@ public:
if (ctx.PragmaYsonAutoConvert || ctx.PragmaYsonStrict || ctx.PragmaYsonFast) {
auto ysonOptions = Y();
if (ctx.PragmaYsonAutoConvert) {
- ysonOptions->Add(BuildQuotedAtom(Pos, "yson_auto_convert"));
+ ysonOptions->Add(BuildQuotedAtom(Pos_, "yson_auto_convert"));
}
if (ctx.PragmaYsonStrict) {
- ysonOptions->Add(BuildQuotedAtom(Pos, "yson_strict"));
+ ysonOptions->Add(BuildQuotedAtom(Pos_, "yson_strict"));
}
if (ctx.PragmaYsonFast) {
- ysonOptions->Add(BuildQuotedAtom(Pos, "yson_fast"));
+ ysonOptions->Add(BuildQuotedAtom(Pos_, "yson_fast"));
}
expr->Add(Q(ysonOptions));
}
}
- Node = expr;
+ Node_ = expr;
return true;
}
TAstNode* Translate(TContext& ctx) const override {
- Y_DEBUG_ABORT_UNLESS(Node);
- return Node->Translate(ctx);
+ Y_DEBUG_ABORT_UNLESS(Node_);
+ return Node_->Translate(ctx);
}
TPtr DoClone() const override {
- YQL_ENSURE(!Node, "TAccessNode::Clone: Node should not be initialized");
+ YQL_ENSURE(!Node_, "TAccessNode::Clone: Node should not be initialized");
TVector<TIdPart> cloneIds;
- cloneIds.reserve(Ids.size());
- for (const auto& id: Ids) {
+ cloneIds.reserve(Ids_.size());
+ for (const auto& id: Ids_) {
cloneIds.emplace_back(id.Clone());
}
- auto copy = new TAccessNode(Pos, cloneIds, IsLookup);
- copy->ColumnOnly = ColumnOnly;
+ auto copy = new TAccessNode(Pos_, cloneIds, IsLookup_);
+ copy->ColumnOnly_ = ColumnOnly_;
return copy;
}
const TVector<TIdPart>& GetParts() const {
- return Ids;
+ return Ids_;
}
protected:
void DoUpdateState() const override {
- YQL_ENSURE(Node);
- State.Set(ENodeState::Const, Node->IsConstant());
- State.Set(ENodeState::MaybeConst, Node->MaybeConstant());
- State.Set(ENodeState::Aggregated, Node->IsAggregated());
- State.Set(ENodeState::AggregationKey, Node->HasState(ENodeState::AggregationKey));
- State.Set(ENodeState::OverWindow, Node->IsOverWindow());
+ YQL_ENSURE(Node_);
+ State_.Set(ENodeState::Const, Node_->IsConstant());
+ State_.Set(ENodeState::MaybeConst, Node_->MaybeConstant());
+ State_.Set(ENodeState::Aggregated, Node_->IsAggregated());
+ State_.Set(ENodeState::AggregationKey, Node_->HasState(ENodeState::AggregationKey));
+ State_.Set(ENodeState::OverWindow, Node_->IsOverWindow());
}
void DoVisitChildren(const TVisitFunc& func, TVisitNodeSet& visited) const final {
- Y_DEBUG_ABORT_UNLESS(Node);
- Node->VisitTree(func, visited);
+ Y_DEBUG_ABORT_UNLESS(Node_);
+ Node_->VisitTree(func, visited);
}
bool CheckColumnId(TPosition pos, TContext& ctx, const TIdPart& id, const TString& where, bool checkLookup) {
@@ -2661,11 +2661,11 @@ protected:
}
TString GetOpName() const override {
- return AccessOpName;
+ return AccessOpName_;
}
void CollectPreaggregateExprs(TContext& ctx, ISource& src, TVector<INode::TPtr>& exprs) override {
- for (auto& id : Ids) {
+ for (auto& id : Ids_) {
if (id.Expr) {
id.Expr->CollectPreaggregateExprs(ctx, src, exprs);
}
@@ -2673,12 +2673,12 @@ protected:
}
private:
- TNodePtr Node;
- TVector<TIdPart> Ids;
- bool IsLookup;
- bool ColumnOnly;
- bool IsColumnRequired;
- TString AccessOpName;
+ TNodePtr Node_;
+ TVector<TIdPart> Ids_;
+ bool IsLookup_;
+ bool ColumnOnly_;
+ bool IsColumnRequired_;
+ TString AccessOpName_;
};
TNodePtr BuildAccess(TPosition pos, const TVector<INode::TIdPart>& ids, bool isLookup) {
@@ -2828,7 +2828,7 @@ private:
TBindNode(const TBindNode& other)
: TAstListNode(other.GetPos())
{
- Nodes = CloneContainer(other.Nodes);
+ Nodes_ = CloneContainer(other.Nodes_);
}
TPtr DoClone() const final {
@@ -2872,7 +2872,7 @@ private:
TLambdaNode(const TLambdaNode& other)
: TAstListNode(other.GetPos())
{
- Nodes = CloneContainer(other.Nodes);
+ Nodes_ = CloneContainer(other.Nodes_);
}
TPtr DoClone() const final {
@@ -2880,7 +2880,7 @@ private:
}
void DoUpdateState() const final {
- State.Set(ENodeState::Const);
+ State_.Set(ENodeState::Const);
}
};
@@ -3000,50 +3000,50 @@ TNodePtr BuildIsNullOp(TPosition pos, TNodePtr a) {
TUdfNode::TUdfNode(TPosition pos, const TVector<TNodePtr>& args)
: INode(pos)
- , Args(args)
+ , Args_(args)
{
- if (Args.size()) {
+ if (Args_.size()) {
// If there aren't any named args, args are passed as vector of positional args,
// else Args has length 2: tuple for positional args and struct for named args,
// so let's construct tuple of args there. Other type checks will within DoInit call.
- if (!Args[0]->GetTupleNode()) {
- Args = {BuildTuple(pos, args)};
+ if (!Args_[0]->GetTupleNode()) {
+ Args_ = {BuildTuple(pos, args)};
}
}
}
bool TUdfNode::DoInit(TContext& ctx, ISource* src) {
Y_UNUSED(src);
- if (Args.size() < 1) {
- ctx.Error(Pos) << "Udf: expected at least one argument";
+ if (Args_.size() < 1) {
+ ctx.Error(Pos_) << "Udf: expected at least one argument";
return false;
}
- TTupleNode* as_tuple = Args[0]->GetTupleNode();
+ TTupleNode* as_tuple = Args_[0]->GetTupleNode();
if (!as_tuple || as_tuple->GetTupleSize() < 1) {
- ctx.Error(Pos) << "Udf: first argument must be a callable, like Foo::Bar";
+ ctx.Error(Pos_) << "Udf: first argument must be a callable, like Foo::Bar";
return false;
}
TNodePtr function = as_tuple->GetTupleElement(0);
if (!function || !function->FuncName()) {
- ctx.Error(Pos) << "Udf: first argument must be a callable, like Foo::Bar";
+ ctx.Error(Pos_) << "Udf: first argument must be a callable, like Foo::Bar";
return false;
}
- FunctionName = function->FuncName();
- ModuleName = function->ModuleName();
- ScriptUdf = function->IsScript();
- if (ScriptUdf && as_tuple->GetTupleSize() > 1) {
- ctx.Error(Pos) << "Udf: user type is not supported for script udfs";
+ FunctionName_ = function->FuncName();
+ ModuleName_ = function->ModuleName();
+ ScriptUdf_ = function->IsScript();
+ if (ScriptUdf_ && as_tuple->GetTupleSize() > 1) {
+ ctx.Error(Pos_) << "Udf: user type is not supported for script udfs";
return false;
}
- if (ScriptUdf) {
+ if (ScriptUdf_) {
for (size_t i = 0; i < function->GetTupleSize(); ++i) {
- ScriptArgs.push_back(function->GetTupleElement(i));
+ ScriptArgs_.push_back(function->GetTupleElement(i));
}
}
@@ -3060,13 +3060,13 @@ bool TUdfNode::DoInit(TContext& ctx, ISource* src) {
external.push_back(current);
}
- ExternalTypesTuple = new TCallNodeImpl(Pos, "TupleType", external);
+ ExternalTypesTuple_ = new TCallNodeImpl(Pos_, "TupleType", external);
- if (Args.size() == 1) {
+ if (Args_.size() == 1) {
return true;
}
- if (TStructNode* named_args = Args[1]->GetStructNode(); named_args) {
+ if (TStructNode* named_args = Args_[1]->GetStructNode(); named_args) {
for (const auto &arg: named_args->GetExprs()) {
if (arg->GetLabel() == "TypeConfig") {
if (function->IsScript()) {
@@ -3074,18 +3074,18 @@ bool TUdfNode::DoInit(TContext& ctx, ISource* src) {
return false;
}
- TypeConfig = MakeAtomFromExpression(Pos, ctx, arg);
+ TypeConfig_ = MakeAtomFromExpression(Pos_, ctx, arg);
} else if (arg->GetLabel() == "RunConfig") {
if (function->IsScript()) {
ctx.Error() << "Udf: RunConfig is not supported for script udfs";
return false;
}
- RunConfig = arg;
+ RunConfig_ = arg;
} else if (arg->GetLabel() == "Cpu") {
- Cpu = MakeAtomFromExpression(Pos, ctx, arg);
+ Cpu_ = MakeAtomFromExpression(Pos_, ctx, arg);
} else if (arg->GetLabel() == "ExtraMem") {
- ExtraMem = MakeAtomFromExpression(Pos, ctx, arg);
+ ExtraMem_ = MakeAtomFromExpression(Pos_, ctx, arg);
} else {
ctx.Error() << "Udf: unexpected named argument: " << arg->GetLabel();
return false;
@@ -3097,48 +3097,48 @@ bool TUdfNode::DoInit(TContext& ctx, ISource* src) {
}
const TNodePtr TUdfNode::GetExternalTypes() const {
- return ExternalTypesTuple;
+ return ExternalTypesTuple_;
}
const TString& TUdfNode::GetFunction() const {
- return *FunctionName;
+ return *FunctionName_;
}
const TString& TUdfNode::GetModule() const {
- return *ModuleName;
+ return *ModuleName_;
}
TNodePtr TUdfNode::GetRunConfig() const {
- return RunConfig;
+ return RunConfig_;
}
const TDeferredAtom& TUdfNode::GetTypeConfig() const {
- return TypeConfig;
+ return TypeConfig_;
}
TNodePtr TUdfNode::BuildOptions() const {
- if (Cpu.Empty() && ExtraMem.Empty()) {
+ if (Cpu_.Empty() && ExtraMem_.Empty()) {
return nullptr;
}
auto options = Y();
- if (!Cpu.Empty()) {
- options = L(options, Q(Y(Q("cpu"), Cpu.Build())));
+ if (!Cpu_.Empty()) {
+ options = L(options, Q(Y(Q("cpu"), Cpu_.Build())));
}
- if (!ExtraMem.Empty()) {
- options = L(options, Q(Y(Q("extraMem"), ExtraMem.Build())));
+ if (!ExtraMem_.Empty()) {
+ options = L(options, Q(Y(Q("extraMem"), ExtraMem_.Build())));
}
return Q(options);
}
bool TUdfNode::IsScript() const {
- return ScriptUdf;
+ return ScriptUdf_;
}
const TVector<TNodePtr>& TUdfNode::GetScriptArgs() const {
- return ScriptArgs;
+ return ScriptArgs_;
}
TUdfNode* TUdfNode::GetUdfNode() {
@@ -3150,12 +3150,12 @@ const TUdfNode* TUdfNode::GetUdfNode() const {
}
TAstNode* TUdfNode::Translate(TContext& ctx) const {
- ctx.Error(Pos) << "Abstract Udf Node can't be used as a part of expression.";
+ ctx.Error(Pos_) << "Abstract Udf Node can't be used as a part of expression.";
return nullptr;
}
TNodePtr TUdfNode::DoClone() const {
- return new TUdfNode(Pos, CloneContainer(Args));
+ return new TUdfNode(Pos_, CloneContainer(Args_));
}
@@ -3164,8 +3164,8 @@ public:
TBinaryOpNode(TPosition pos, const TString& opName, TNodePtr a, TNodePtr b);
TNodePtr DoClone() const final {
- YQL_ENSURE(Args.size() == 2);
- return new TBinaryOpNode(Pos, OpName, Args[0]->Clone(), Args[1]->Clone());
+ YQL_ENSURE(Args_.size() == 2);
+ return new TBinaryOpNode(Pos_, OpName_, Args_[0]->Clone(), Args_[1]->Clone());
}
};
@@ -3209,49 +3209,49 @@ class TCalcOverWindow final: public INode {
public:
TCalcOverWindow(TPosition pos, const TString& windowName, TNodePtr node)
: INode(pos)
- , WindowName(windowName)
- , FuncNode(node)
+ , WindowName_(windowName)
+ , FuncNode_(node)
{}
TAstNode* Translate(TContext& ctx) const override {
- return FuncNode->Translate(ctx);
+ return FuncNode_->Translate(ctx);
}
bool DoInit(TContext& ctx, ISource* src) override {
YQL_ENSURE(src);
- TSourcePtr overWindowSource = BuildOverWindowSource(ctx.Pos(), WindowName, src);
- if (!FuncNode->Init(ctx, overWindowSource.Get())) {
+ TSourcePtr overWindowSource = BuildOverWindowSource(ctx.Pos(), WindowName_, src);
+ if (!FuncNode_->Init(ctx, overWindowSource.Get())) {
return false;
}
return true;
}
TPtr DoClone() const final {
- return new TCalcOverWindow(Pos, WindowName, SafeClone(FuncNode));
+ return new TCalcOverWindow(Pos_, WindowName_, SafeClone(FuncNode_));
}
void DoUpdateState() const override {
- State.Set(ENodeState::Const, FuncNode->IsConstant());
- State.Set(ENodeState::MaybeConst, FuncNode->MaybeConstant());
- State.Set(ENodeState::Aggregated, FuncNode->IsAggregated());
- State.Set(ENodeState::OverWindow, true);
+ State_.Set(ENodeState::Const, FuncNode_->IsConstant());
+ State_.Set(ENodeState::MaybeConst, FuncNode_->MaybeConstant());
+ State_.Set(ENodeState::Aggregated, FuncNode_->IsAggregated());
+ State_.Set(ENodeState::OverWindow, true);
}
void DoVisitChildren(const TVisitFunc& func, TVisitNodeSet& visited) const final {
- Y_DEBUG_ABORT_UNLESS(FuncNode);
- FuncNode->VisitTree(func, visited);
+ Y_DEBUG_ABORT_UNLESS(FuncNode_);
+ FuncNode_->VisitTree(func, visited);
}
void CollectPreaggregateExprs(TContext& ctx, ISource& src, TVector<INode::TPtr>& exprs) override {
if (ctx.DistinctOverWindow) {
- FuncNode->CollectPreaggregateExprs(ctx, src, exprs);
+ FuncNode_->CollectPreaggregateExprs(ctx, src, exprs);
} else {
INode::CollectPreaggregateExprs(ctx, src, exprs);
}
}
protected:
- const TString WindowName;
- TNodePtr FuncNode;
+ const TString WindowName_;
+ TNodePtr FuncNode_;
};
TNodePtr BuildCalcOverWindow(TPosition pos, const TString& windowName, TNodePtr call) {
@@ -3263,40 +3263,40 @@ class TYsonOptionsNode final: public INode {
public:
TYsonOptionsNode(TPosition pos, bool autoConvert, bool strict)
: INode(pos)
- , AutoConvert(autoConvert)
- , Strict(strict)
+ , AutoConvert_(autoConvert)
+ , Strict_(strict)
{
auto udf = Y("Udf", Q(Fast ? "Yson2.Options" : "Yson.Options"));
auto autoConvertNode = BuildLiteralBool(pos, autoConvert);
autoConvertNode->SetLabel("AutoConvert");
auto strictNode = BuildLiteralBool(pos, strict);
strictNode->SetLabel("Strict");
- Node = Y("NamedApply", udf, Q(Y()), BuildStructure(pos, { autoConvertNode, strictNode }));
+ Node_ = Y("NamedApply", udf, Q(Y()), BuildStructure(pos, { autoConvertNode, strictNode }));
}
TAstNode* Translate(TContext& ctx) const override {
- return Node->Translate(ctx);
+ return Node_->Translate(ctx);
}
bool DoInit(TContext& ctx, ISource* src) override {
- if (!Node->Init(ctx, src)) {
+ if (!Node_->Init(ctx, src)) {
return false;
}
return true;
}
TPtr DoClone() const final {
- return new TYsonOptionsNode(Pos, AutoConvert, Strict);
+ return new TYsonOptionsNode(Pos_, AutoConvert_, Strict_);
}
void DoUpdateState() const override {
- State.Set(ENodeState::Const, true);
+ State_.Set(ENodeState::Const, true);
}
protected:
- TNodePtr Node;
- const bool AutoConvert;
- const bool Strict;
+ TNodePtr Node_;
+ const bool AutoConvert_;
+ const bool Strict_;
};
TNodePtr BuildYsonOptionsNode(TPosition pos, bool autoConvert, bool strict, bool fastYson) {
@@ -3310,18 +3310,18 @@ class TDoCall final : public INode {
public:
TDoCall(TPosition pos, const TNodePtr& node)
: INode(pos)
- , Node(node)
+ , Node_(node)
{
- FakeSource = BuildFakeSource(pos);
+ FakeSource_ = BuildFakeSource(pos);
}
ISource* GetSource() final {
- return FakeSource.Get();
+ return FakeSource_.Get();
}
bool DoInit(TContext& ctx, ISource* src) final {
Y_UNUSED(src);
- if (!Node->Init(ctx, FakeSource.Get())) {
+ if (!Node_->Init(ctx, FakeSource_.Get())) {
return false;
}
@@ -3329,20 +3329,20 @@ public:
}
TAstNode* Translate(TContext& ctx) const final {
- return Node->Translate(ctx);
+ return Node_->Translate(ctx);
}
TPtr DoClone() const final {
- return new TDoCall(Pos, Node->Clone());
+ return new TDoCall(Pos_, Node_->Clone());
}
void DoVisitChildren(const TVisitFunc& func, TVisitNodeSet& visited) const final {
- Y_DEBUG_ABORT_UNLESS(Node);
- Node->VisitTree(func, visited);
+ Y_DEBUG_ABORT_UNLESS(Node_);
+ Node_->VisitTree(func, visited);
}
private:
- TNodePtr Node;
- TSourcePtr FakeSource;
+ TNodePtr Node_;
+ TSourcePtr FakeSource_;
};
TNodePtr BuildDoCall(TPosition pos, const TNodePtr& node) {
@@ -3442,36 +3442,36 @@ class TTupleResultNode: public INode {
public:
TTupleResultNode(TNodePtr&& tuple, size_t ensureTupleSize)
: INode(tuple->GetPos())
- , Node(std::move(tuple))
- , EnsureTupleSize(ensureTupleSize)
+ , Node_(std::move(tuple))
+ , EnsureTupleSize_(ensureTupleSize)
{
}
bool DoInit(TContext& ctx, ISource* src) override {
- if (!Node->Init(ctx, src)) {
+ if (!Node_->Init(ctx, src)) {
return false;
}
- Node = Y("EnsureTupleSize", Node, Q(ToString(EnsureTupleSize)));
+ Node_ = Y("EnsureTupleSize", Node_, Q(ToString(EnsureTupleSize_)));
return true;
}
TAstNode* Translate(TContext& ctx) const override {
- return Node->Translate(ctx);
+ return Node_->Translate(ctx);
}
TPtr DoClone() const final {
- return new TTupleResultNode(Node->Clone(), EnsureTupleSize);
+ return new TTupleResultNode(Node_->Clone(), EnsureTupleSize_);
}
void DoVisitChildren(const TVisitFunc& func, TVisitNodeSet& visited) const final {
- Y_DEBUG_ABORT_UNLESS(Node);
- Node->VisitTree(func, visited);
+ Y_DEBUG_ABORT_UNLESS(Node_);
+ Node_->VisitTree(func, visited);
}
protected:
- TNodePtr Node;
- const size_t EnsureTupleSize;
+ TNodePtr Node_;
+ const size_t EnsureTupleSize_;
};
TNodePtr BuildTupleResult(TNodePtr tuple, size_t ensureTupleSize) {
@@ -3482,8 +3482,8 @@ class TNamedExprReferenceNode: public IProxyNode {
public:
TNamedExprReferenceNode(TNodePtr parent, const TString& name, TMaybe<size_t> tupleIndex)
: IProxyNode(parent->GetPos(), parent)
- , Name(name)
- , TupleIndex(tupleIndex)
+ , Name_(name)
+ , TupleIndex_(tupleIndex)
{
}
@@ -3493,28 +3493,28 @@ public:
return false;
}
- Node = BuildAtom(GetPos(), Name, TNodeFlags::Default);
- if (TupleIndex.Defined()) {
- Node = Y("Nth", Node, Q(ToString(*TupleIndex)));
+ Node_ = BuildAtom(GetPos(), Name_, TNodeFlags::Default);
+ if (TupleIndex_.Defined()) {
+ Node_ = Y("Nth", Node_, Q(ToString(*TupleIndex_)));
}
return true;
}
TAstNode* Translate(TContext& ctx) const override {
- YQL_ENSURE(Node, "Init() should be done before Translate()");
- return Node->Translate(ctx);
+ YQL_ENSURE(Node_, "Init() should be done before Translate()");
+ return Node_->Translate(ctx);
}
TPtr DoClone() const final {
// do not clone Inner here
- return new TNamedExprReferenceNode(Inner, Name, TupleIndex);
+ return new TNamedExprReferenceNode(Inner_, Name_, TupleIndex_);
}
private:
- const TString Name;
- const TMaybe<size_t> TupleIndex;
- TNodePtr Node;
+ const TString Name_;
+ const TMaybe<size_t> TupleIndex_;
+ TNodePtr Node_;
};
TNodePtr BuildNamedExprReference(TNodePtr parent, const TString& name, TMaybe<size_t> tupleIndex) {
@@ -3526,41 +3526,41 @@ class TNamedExprNode: public IProxyNode {
public:
TNamedExprNode(TNodePtr parent)
: IProxyNode(parent->GetPos(), parent)
- , FakeSource(BuildFakeSource(parent->GetPos()))
- , Referenced(false)
+ , FakeSource_(BuildFakeSource(parent->GetPos()))
+ , Referenced_(false)
{
}
bool DoInit(TContext& ctx, ISource* src) final {
- YQL_ENSURE(!Referenced, "Refrence is initialized before named expr itself");
+ YQL_ENSURE(!Referenced_, "Refrence is initialized before named expr itself");
Y_UNUSED(src);
if (ctx.ValidateUnusedExprs) {
- return IProxyNode::DoInit(ctx, FakeSource.Get());
+ return IProxyNode::DoInit(ctx, FakeSource_.Get());
}
// do actual init in InitReference()
return true;
}
bool InitReference(TContext& ctx) final {
- Referenced = true;
- return IProxyNode::DoInit(ctx, FakeSource.Get());
+ Referenced_ = true;
+ return IProxyNode::DoInit(ctx, FakeSource_.Get());
}
TAstNode* Translate(TContext& ctx) const override {
- if (ctx.ValidateUnusedExprs || Referenced) {
- return Inner->Translate(ctx);
+ if (ctx.ValidateUnusedExprs || Referenced_) {
+ return Inner_->Translate(ctx);
}
auto unused = BuildQuotedAtom(GetPos(), "unused", TNodeFlags::Default);
return unused->Translate(ctx);
}
TPtr DoClone() const final {
- return new TNamedExprNode(Inner->Clone());
+ return new TNamedExprNode(Inner_->Clone());
}
private:
- const TSourcePtr FakeSource;
- bool Referenced;
+ const TSourcePtr FakeSource_;
+ bool Referenced_;
};
TNodePtr BuildNamedExpr(TNodePtr parent) {
diff --git a/yql/essentials/sql/v1/node.h b/yql/essentials/sql/v1/node.h
index bb4448df2aa..b076d6df6d1 100644
--- a/yql/essentials/sql/v1/node.h
+++ b/yql/essentials/sql/v1/node.h
@@ -156,7 +156,7 @@ namespace NSQLTranslationV1 {
bool IsOverWindowDistinct() const;
bool HasState(ENodeState state) const {
PrecacheState();
- return State.Test(state);
+ return State_.Test(state);
}
virtual bool IsNull() const;
@@ -275,13 +275,13 @@ namespace NSQLTranslationV1 {
virtual void DoAdd(TPtr node);
protected:
- TPosition Pos;
- TString Label;
- TMaybe<TPosition> LabelPos;
- bool ImplicitLabel = false;
- TMaybe<TPosition> RefPos;
- mutable TNodeState State;
- bool AsInner = false;
+ TPosition Pos_;
+ TString Label_;
+ TMaybe<TPosition> LabelPos_;
+ bool ImplicitLabel_ = false;
+ TMaybe<TPosition> RefPos_;
+ mutable TNodeState State_;
+ bool AsInner_ = false;
bool DisableSort_ = false;
};
typedef INode::TPtr TNodePtr;
@@ -290,7 +290,7 @@ namespace NSQLTranslationV1 {
public:
IProxyNode(TPosition pos, const TNodePtr& parent)
: INode(pos)
- , Inner(parent)
+ , Inner_(parent)
{}
protected:
@@ -360,7 +360,7 @@ namespace NSQLTranslationV1 {
virtual void DoAdd(TPtr node) override;
protected:
- const TNodePtr Inner;
+ const TNodePtr Inner_;
};
using TTableHints = TMap<TString, TVector<TNodePtr>>;
@@ -391,15 +391,15 @@ namespace NSQLTranslationV1 {
TAstNode* Translate(TContext& ctx) const override;
const TString& GetContent() const {
- return Content;
+ return Content_;
}
const TString* GetAtomContent() const override;
bool IsOptionalArg() const override;
protected:
- TString Content;
- ui32 Flags;
+ TString Content_;
+ ui32 Flags_;
bool IsOptionalArg_;
void DoUpdateState() const override;
@@ -412,7 +412,7 @@ namespace NSQLTranslationV1 {
{}
TNodePtr DoClone() const final {
- return new TAstAtomNodeImpl(Pos, Content, Flags, IsOptionalArg_);
+ return new TAstAtomNodeImpl(Pos_, Content_, Flags_, IsOptionalArg_);
}
};
@@ -423,10 +423,10 @@ namespace NSQLTranslationV1 {
TAstNode* Translate(TContext& ctx) const override;
TPtr DoClone() const final {
- return new TAstDirectNode(Node);
+ return new TAstDirectNode(Node_);
}
protected:
- TAstNode* Node;
+ TAstNode* Node_;
};
class TAstListNode: public INode {
@@ -449,8 +449,8 @@ namespace NSQLTranslationV1 {
void UpdateStateByListNodes(const TVector<TNodePtr>& Nodes) const;
protected:
- TVector<TNodePtr> Nodes;
- mutable TMaybe<bool> CacheGroupKey;
+ TVector<TNodePtr> Nodes_;
+ mutable TMaybe<bool> CacheGroupKey_;
};
class TAstListNodeImpl final: public TAstListNode {
@@ -484,11 +484,11 @@ namespace NSQLTranslationV1 {
void CollectPreaggregateExprs(TContext& ctx, ISource& src, TVector<INode::TPtr>& exprs) override;
protected:
- TString OpName;
- i32 MinArgs;
- i32 MaxArgs;
- TVector<TNodePtr> Args;
- mutable TMaybe<bool> CacheGroupKey;
+ TString OpName_;
+ i32 MinArgs_;
+ i32 MaxArgs_;
+ TVector<TNodePtr> Args_;
+ mutable TMaybe<bool> CacheGroupKey_;
void DoUpdateState() const override;
};
@@ -516,7 +516,7 @@ namespace NSQLTranslationV1 {
bool DoInit(TContext& ctx, ISource* src) override;
private:
- const ui32 ReqArgsCount;
+ const ui32 ReqArgsCount_;
};
class TCallDirectRow final : public TCallNode {
@@ -539,9 +539,9 @@ namespace NSQLTranslationV1 {
protected:
template<class TNodeType>
TPtr CallNodeClone() const {
- return new TNodeType(GetPos(), OpName, MinArgs, MaxArgs, CloneContainer(Args));
+ return new TNodeType(GetPos(), OpName_, MinArgs_, MaxArgs_, CloneContainer(Args_));
}
- TString FuncAlias;
+ TString FuncAlias_;
};
using TFunctionConfig = TMap<TString, TNodePtr>;
@@ -550,7 +550,7 @@ namespace NSQLTranslationV1 {
public:
TExternalFunctionConfig(TPosition pos, const TFunctionConfig& config)
: TAstListNode(pos)
- , Config(config)
+ , Config_(config)
{
}
@@ -558,7 +558,7 @@ namespace NSQLTranslationV1 {
TPtr DoClone() const final;
private:
- TFunctionConfig Config;
+ TFunctionConfig Config_;
};
class TWinRowNumber final: public TWinAggrEmulation {
@@ -588,7 +588,7 @@ namespace NSQLTranslationV1 {
TWinNTile(TPosition pos, const TString& opName, i32 minArgs, i32 maxArgs, const TVector<TNodePtr>& args);
private:
- TSourcePtr FakeSource;
+ TSourcePtr FakeSource_;
};
class TWinLeadLag final: public TWinAggrEmulation {
@@ -666,9 +666,9 @@ namespace NSQLTranslationV1 {
bool HasNode() const;
private:
- TMaybe<TString> Explicit;
- TNodePtr Node; // atom or evaluation node
- TString Repr;
+ TMaybe<TString> Explicit_;
+ TNodePtr Node_; // atom or evaluation node
+ TString Repr_;
};
struct TTopicRef {
@@ -747,7 +747,7 @@ namespace NSQLTranslationV1 {
TIntrusivePtr<TSortSpecification> Clone() const;
~TSortSpecification() {}
private:
- const TNodePtr CleanOrderExpr;
+ const TNodePtr CleanOrderExpr_;
};
typedef TIntrusivePtr<TSortSpecification> TSortSpecificationPtr;
@@ -862,16 +862,16 @@ namespace NSQLTranslationV1 {
private:
static const TString Empty;
- TNodePtr Node;
- TString ColumnName;
- TNodePtr ColumnExpr;
- TString Source;
- bool GroupKey = false;
- bool Artificial = false;
- bool Reliable = true;
- bool UseSource = false;
- bool UseSourceAsColumn = false;
- bool MaybeType = false;
+ TNodePtr Node_;
+ TString ColumnName_;
+ TNodePtr ColumnExpr_;
+ TString Source_;
+ bool GroupKey_ = false;
+ bool Artificial_ = false;
+ bool Reliable_ = true;
+ bool UseSource_ = false;
+ bool UseSourceAsColumn_ = false;
+ bool MaybeType_ = false;
};
class TArgPlaceholderNode final: public INode
@@ -888,7 +888,7 @@ namespace NSQLTranslationV1 {
bool DoInit(TContext& ctx, ISource* src) override;
private:
- TString Name;
+ TString Name_;
};
enum class EAggregateMode {
@@ -914,7 +914,7 @@ namespace NSQLTranslationV1 {
void CollectPreaggregateExprs(TContext& ctx, ISource& src, TVector<INode::TPtr>& exprs) override;
const TString* GetSourceName() const override;
- const TVector<TNodePtr> Exprs;
+ const TVector<TNodePtr> Exprs_;
};
class TStructNode: public TAstListNode {
@@ -924,7 +924,7 @@ namespace NSQLTranslationV1 {
bool DoInit(TContext& ctx, ISource* src) override;
TNodePtr DoClone() const final;
const TVector<TNodePtr>& GetExprs() {
- return Exprs;
+ return Exprs_;
}
TStructNode* GetStructNode() override;
const TStructNode* GetStructNode() const override;
@@ -933,9 +933,9 @@ namespace NSQLTranslationV1 {
void CollectPreaggregateExprs(TContext& ctx, ISource& src, TVector<INode::TPtr>& exprs) override;
const TString* GetSourceName() const override;
- const TVector<TNodePtr> Exprs;
- const TVector<TNodePtr> Labels;
- const bool Ordered;
+ const TVector<TNodePtr> Exprs_;
+ const TVector<TNodePtr> Labels_;
+ const bool Ordered_;
};
@@ -956,16 +956,16 @@ namespace NSQLTranslationV1 {
const TVector<TNodePtr>& GetScriptArgs() const;
TNodePtr BuildOptions() const;
private:
- TVector<TNodePtr> Args;
- const TString* FunctionName;
- const TString* ModuleName;
- TNodePtr ExternalTypesTuple = nullptr;
- TNodePtr RunConfig;
- TDeferredAtom TypeConfig;
- TDeferredAtom Cpu;
- TDeferredAtom ExtraMem;
- bool ScriptUdf = false;
- TVector<TNodePtr> ScriptArgs;
+ TVector<TNodePtr> Args_;
+ const TString* FunctionName_;
+ const TString* ModuleName_;
+ TNodePtr ExternalTypesTuple_ = nullptr;
+ TNodePtr RunConfig_;
+ TDeferredAtom TypeConfig_;
+ TDeferredAtom Cpu_;
+ TDeferredAtom ExtraMem_;
+ bool ScriptUdf_ = false;
+ TVector<TNodePtr> ScriptArgs_;
};
class IAggregation: public INode {
@@ -1004,11 +1004,11 @@ namespace NSQLTranslationV1 {
TNodePtr WrapIfOverState(const TNodePtr& input, bool overState, bool many, TContext& ctx) const;
virtual TNodePtr GetExtractor(bool many, TContext& ctx) const = 0;
- TString Name;
- TString Func;
- const EAggregateMode AggMode;
- TString DistinctKey;
- bool IsGeneratedKeyColumn = false;
+ TString Name_;
+ TString Func_;
+ const EAggregateMode AggMode_;
+ TString DistinctKey_;
+ bool IsGeneratedKeyColumn_ = false;
};
enum class EExprSeat: int {
@@ -1042,8 +1042,8 @@ namespace NSQLTranslationV1 {
TPtr DoClone() const final;
void DoVisitChildren(const TVisitFunc& func, TVisitNodeSet& visited) const final;
private:
- TVector<TNodePtr> Exprs;
- TString Meaning;
+ TVector<TNodePtr> Exprs_;
+ TString Meaning_;
};
class TLiteralNode: public TAstListNode {
@@ -1060,10 +1060,10 @@ namespace NSQLTranslationV1 {
TString GetLiteralType() const override;
TString GetLiteralValue() const override;
protected:
- bool Null;
- bool Void;
- TString Type;
- TString Value;
+ bool Null_;
+ bool Void_;
+ TString Type_;
+ TString Value_;
};
class TAsteriskNode: public INode {
@@ -1083,7 +1083,7 @@ namespace NSQLTranslationV1 {
bool IsIntegerLiteral() const override;
TPtr ApplyUnaryOp(TContext& ctx, TPosition pos, const TString& opName) const override;
private:
- const bool ImplicitType;
+ const bool ImplicitType_;
};
struct TTableArg {
@@ -1106,8 +1106,8 @@ namespace NSQLTranslationV1 {
TAstNode* Translate(TContext& ctx) const override;
private:
- ui32 ArgsCount;
- TNodePtr Node;
+ ui32 ArgsCount_;
+ TNodePtr Node_;
};
struct TStringContent {
diff --git a/yql/essentials/sql/v1/object_processing.cpp b/yql/essentials/sql/v1/object_processing.cpp
index fed6b422195..64b46d612d4 100644
--- a/yql/essentials/sql/v1/object_processing.cpp
+++ b/yql/essentials/sql/v1/object_processing.cpp
@@ -7,28 +7,28 @@ using namespace NYql;
INode::TPtr TObjectProcessorImpl::BuildKeys() const {
auto keys = Y("Key");
- keys = L(keys, Q(Y(Q("objectId"), Y("String", BuildQuotedAtom(Pos, ObjectId)))));
- keys = L(keys, Q(Y(Q("typeId"), Y("String", BuildQuotedAtom(Pos, TypeId)))));
+ keys = L(keys, Q(Y(Q("objectId"), Y("String", BuildQuotedAtom(Pos_, ObjectId_)))));
+ keys = L(keys, Q(Y(Q("typeId"), Y("String", BuildQuotedAtom(Pos_, TypeId_)))));
return keys;
}
TObjectProcessorImpl::TObjectProcessorImpl(TPosition pos, const TString& objectId, const TString& typeId, const TObjectOperatorContext& context)
: TBase(pos)
, TObjectOperatorContext(context)
- , ObjectId(objectId)
- , TypeId(typeId)
+ , ObjectId_(objectId)
+ , TypeId_(typeId)
{
}
bool TObjectProcessorImpl::DoInit(TContext& ctx, ISource* src) {
Y_UNUSED(src);
- Scoped->UseCluster(ServiceId, Cluster);
+ Scoped_->UseCluster(ServiceId, Cluster);
auto options = FillFeatures(BuildOptions());
auto keys = BuildKeys();
Add("block", Q(Y(
- Y("let", "sink", Y("DataSink", BuildQuotedAtom(Pos, ServiceId), Scoped->WrapCluster(Cluster, ctx))),
+ Y("let", "sink", Y("DataSink", BuildQuotedAtom(Pos_, ServiceId), Scoped_->WrapCluster(Cluster, ctx))),
Y("let", "world", Y(TString(WriteName), "world", "sink", keys, Y("Void"), Q(options))),
Y("return", ctx.PragmaAutoCommit ? Y(TString(CommitName), "world", "sink") : AstNode("world"))
)));
@@ -36,21 +36,21 @@ bool TObjectProcessorImpl::DoInit(TContext& ctx, ISource* src) {
}
INode::TPtr TCreateObject::FillFeatures(INode::TPtr options) const {
- if (!Features.empty()) {
+ if (!Features_.empty()) {
auto features = Y();
- for (auto&& i : Features) {
+ for (auto&& i : Features_) {
if (i.second.HasNode()) {
- features->Add(Q(Y(BuildQuotedAtom(Pos, i.first), i.second.Build())));
+ features->Add(Q(Y(BuildQuotedAtom(Pos_, i.first), i.second.Build())));
} else {
- features->Add(Q(Y(BuildQuotedAtom(Pos, i.first))));
+ features->Add(Q(Y(BuildQuotedAtom(Pos_, i.first))));
}
}
options->Add(Q(Y(Q("features"), Q(features))));
}
- if (!FeaturesToReset.empty()) {
+ if (!FeaturesToReset_.empty()) {
auto reset = Y();
- for (const auto& featureName : FeaturesToReset) {
- reset->Add(BuildQuotedAtom(Pos, featureName));
+ for (const auto& featureName : FeaturesToReset_) {
+ reset->Add(BuildQuotedAtom(Pos_, featureName));
}
options->Add(Q(Y(Q("resetFeatures"), Q(reset))));
}
@@ -71,16 +71,16 @@ bool InitFeatures(TContext& ctx, ISource* src, const std::map<TString, TDeferred
}
bool TCreateObject::DoInit(TContext& ctx, ISource* src) {
- if (!InitFeatures(ctx, src, Features)) {
+ if (!InitFeatures(ctx, src, Features_)) {
return false;
}
return TObjectProcessorImpl::DoInit(ctx, src);
}
TObjectOperatorContext::TObjectOperatorContext(TScopedStatePtr scoped)
- : Scoped(scoped)
- , ServiceId(Scoped->CurrService)
- , Cluster(Scoped->CurrCluster)
+ : Scoped_(scoped)
+ , ServiceId(Scoped_->CurrService)
+ , Cluster(Scoped_->CurrCluster)
{
}
diff --git a/yql/essentials/sql/v1/object_processing.h b/yql/essentials/sql/v1/object_processing.h
index 3bfe83d5359..df3f6d13975 100644
--- a/yql/essentials/sql/v1/object_processing.h
+++ b/yql/essentials/sql/v1/object_processing.h
@@ -6,7 +6,7 @@ namespace NSQLTranslationV1 {
class TObjectOperatorContext {
protected:
- TScopedStatePtr Scoped;
+ TScopedStatePtr Scoped_;
public:
TString ServiceId;
TDeferredAtom Cluster;
@@ -17,8 +17,8 @@ public:
class TObjectProcessorImpl: public TAstListNode, public TObjectOperatorContext {
protected:
using TBase = TAstListNode;
- TString ObjectId;
- TString TypeId;
+ TString ObjectId_;
+ TString TypeId_;
virtual INode::TPtr BuildOptions() const = 0;
virtual INode::TPtr FillFeatures(INode::TPtr options) const = 0;
@@ -36,17 +36,17 @@ public:
class TCreateObject: public TObjectProcessorImpl {
private:
using TBase = TObjectProcessorImpl;
- std::map<TString, TDeferredAtom> Features;
- std::set<TString> FeaturesToReset;
+ std::map<TString, TDeferredAtom> Features_;
+ std::set<TString> FeaturesToReset_;
protected:
- bool ExistingOk = false;
- bool ReplaceIfExists = false;
+ bool ExistingOk_ = false;
+ bool ReplaceIfExists_ = false;
protected:
virtual INode::TPtr BuildOptions() const override {
TString mode;
- if (ExistingOk) {
+ if (ExistingOk_) {
mode = "createObjectIfNotExists";
- } else if (ReplaceIfExists) {
+ } else if (ReplaceIfExists_) {
mode = "createObjectOrReplace";
} else {
mode = "createObject";
@@ -60,10 +60,10 @@ public:
TCreateObject(TPosition pos, const TString& objectId,
const TString& typeId, bool existingOk, bool replaceIfExists, std::map<TString, TDeferredAtom>&& features, std::set<TString>&& featuresToReset, const TObjectOperatorContext& context)
: TBase(pos, objectId, typeId, context)
- , Features(std::move(features))
- , FeaturesToReset(std::move(featuresToReset))
- , ExistingOk(existingOk)
- , ReplaceIfExists(replaceIfExists) {
+ , Features_(std::move(features))
+ , FeaturesToReset_(std::move(featuresToReset))
+ , ExistingOk_(existingOk)
+ , ReplaceIfExists_(replaceIfExists) {
}
};
@@ -93,7 +93,7 @@ class TDropObject final: public TCreateObject {
private:
using TBase = TCreateObject;
bool MissingOk() const {
- return ExistingOk; // Because we were derived from TCreateObject
+ return ExistingOk_; // Because we were derived from TCreateObject
}
protected:
virtual INode::TPtr BuildOptions() const override {
diff --git a/yql/essentials/sql/v1/query.cpp b/yql/essentials/sql/v1/query.cpp
index 631aa097b58..c672d9aa90c 100644
--- a/yql/essentials/sql/v1/query.cpp
+++ b/yql/essentials/sql/v1/query.cpp
@@ -27,65 +27,65 @@ public:
TUniqueTableKey(TPosition pos, const TString& service, const TDeferredAtom& cluster,
const TDeferredAtom& name, const TViewDescription& view)
: ITableKeys(pos)
- , Service(service)
- , Cluster(cluster)
- , Name(name)
- , View(view)
- , Full(name.GetRepr())
+ , Service_(service)
+ , Cluster_(cluster)
+ , Name_(name)
+ , View_(view)
+ , Full_(name.GetRepr())
{
- if (!View.ViewName.empty()) {
- Full += ":" + View.ViewName;
+ if (!View_.ViewName.empty()) {
+ Full_ += ":" + View_.ViewName;
}
}
bool SetPrimaryView(TContext& ctx, TPosition pos) override {
Y_UNUSED(ctx);
Y_UNUSED(pos);
- View = {"", true};
+ View_ = {"", true};
return true;
}
bool SetViewName(TContext& ctx, TPosition pos, const TString& view) override {
Y_UNUSED(ctx);
Y_UNUSED(pos);
- Full = Name.GetRepr();
- View = {view};
- if (!View.empty()) {
- Full = ":" + View.ViewName;
+ Full_ = Name_.GetRepr();
+ View_ = {view};
+ if (!View_.empty()) {
+ Full_ = ":" + View_.ViewName;
}
return true;
}
const TString* GetTableName() const override {
- return Name.GetLiteral() ? &Full : nullptr;
+ return Name_.GetLiteral() ? &Full_ : nullptr;
}
TNodePtr BuildKeys(TContext& ctx, ITableKeys::EBuildKeysMode mode) override {
- if (View == TViewDescription{"@"}) {
- auto key = Y("TempTable", Name.Build());
+ if (View_ == TViewDescription{"@"}) {
+ auto key = Y("TempTable", Name_.Build());
return key;
}
bool tableScheme = mode == ITableKeys::EBuildKeysMode::CREATE;
- if (tableScheme && !View.empty()) {
- ctx.Error(Pos) << "Table view can not be created with CREATE TABLE clause";
+ if (tableScheme && !View_.empty()) {
+ ctx.Error(Pos_) << "Table view can not be created with CREATE TABLE clause";
return nullptr;
}
- auto path = ctx.GetPrefixedPath(Service, Cluster, Name);
+ auto path = ctx.GetPrefixedPath(Service_, Cluster_, Name_);
if (!path) {
return nullptr;
}
auto key = Y("Key", Q(Y(Q(tableScheme ? "tablescheme" : "table"), Y("String", path))));
- key = AddView(key, View);
- if (!ValidateView(GetPos(), ctx, Service, View)) {
+ key = AddView(key, View_);
+ if (!ValidateView(GetPos(), ctx, Service_, View_)) {
return nullptr;
}
if (mode == ITableKeys::EBuildKeysMode::INPUT &&
IsQueryMode(ctx.Settings.Mode) &&
- Service != KikimrProviderName &&
- Service != RtmrProviderName &&
- Service != YdbProviderName) {
+ Service_ != KikimrProviderName &&
+ Service_ != RtmrProviderName &&
+ Service_ != YdbProviderName) {
key = Y("MrTableConcat", key);
}
@@ -93,11 +93,11 @@ public:
}
private:
- TString Service;
- TDeferredAtom Cluster;
- TDeferredAtom Name;
- TViewDescription View;
- TString Full;
+ TString Service_;
+ TDeferredAtom Cluster_;
+ TDeferredAtom Name_;
+ TViewDescription View_;
+ TString Full_;
};
TNodePtr BuildTableKey(TPosition pos, const TString& service, const TDeferredAtom& cluster,
@@ -109,18 +109,18 @@ class TTopicKey: public ITableKeys {
public:
TTopicKey(TPosition pos, const TDeferredAtom& cluster, const TDeferredAtom& name)
: ITableKeys(pos)
- , Cluster(cluster)
- , Name(name)
- , Full(name.GetRepr())
+ , Cluster_(cluster)
+ , Name_(name)
+ , Full_(name.GetRepr())
{
}
const TString* GetTableName() const override {
- return Name.GetLiteral() ? &Full : nullptr;
+ return Name_.GetLiteral() ? &Full_ : nullptr;
}
TNodePtr BuildKeys(TContext& ctx, ITableKeys::EBuildKeysMode) override {
- const auto path = ctx.GetPrefixedPath(Service, Cluster, Name);
+ const auto path = ctx.GetPrefixedPath(Service_, Cluster_, Name_);
if (!path) {
return nullptr;
}
@@ -129,11 +129,11 @@ public:
}
private:
- TString Service;
- TDeferredAtom Cluster;
- TDeferredAtom Name;
- TString View;
- TString Full;
+ TString Service_;
+ TDeferredAtom Cluster_;
+ TDeferredAtom Name_;
+ TString View_;
+ TString Full_;
};
TNodePtr BuildTopicKey(TPosition pos, const TDeferredAtom& cluster, const TDeferredAtom& name) {
@@ -418,49 +418,49 @@ public:
TPrepTableKeys(TPosition pos, const TString& service, const TDeferredAtom& cluster,
const TString& func, const TVector<TTableArg>& args)
: ITableKeys(pos)
- , Service(service)
- , Cluster(cluster)
- , Func(func)
- , Args(args)
+ , Service_(service)
+ , Cluster_(cluster)
+ , Func_(func)
+ , Args_(args)
{
}
void ExtractTableName(TContext&ctx, TTableArg& arg) {
- MakeTableFromExpression(Pos, ctx, arg.Expr, arg.Id);
+ MakeTableFromExpression(Pos_, ctx, arg.Expr, arg.Id);
}
TNodePtr BuildKeys(TContext& ctx, ITableKeys::EBuildKeysMode mode) override {
if (mode == ITableKeys::EBuildKeysMode::CREATE) {
// TODO: allow creation of multiple tables
- ctx.Error(Pos) << "Mutiple table creation is not implemented yet";
+ ctx.Error(Pos_) << "Mutiple table creation is not implemented yet";
return nullptr;
}
- TCiString func(Func);
+ TCiString func(Func_);
if (func != "object" && func != "walkfolders") {
- for (auto& arg: Args) {
+ for (auto& arg: Args_) {
if (arg.Expr->GetLabel()) {
- ctx.Error(Pos) << "Named arguments are not supported for table function " << to_upper(Func);
+ ctx.Error(Pos_) << "Named arguments are not supported for table function " << to_upper(Func_);
return nullptr;
}
}
}
if (func == "concat_strict") {
auto tuple = Y();
- for (auto& arg: Args) {
+ for (auto& arg: Args_) {
ExtractTableName(ctx, arg);
TNodePtr key;
if (arg.HasAt) {
key = Y("TempTable", arg.Id.Build());
} else {
- auto path = ctx.GetPrefixedPath(Service, Cluster, arg.Id);
+ auto path = ctx.GetPrefixedPath(Service_, Cluster_, arg.Id);
if (!path) {
return nullptr;
}
key = Y("Key", Q(Y(Q("table"), Y("String", path))));
key = AddView(key, arg.View);
- if (!ValidateView(GetPos(), ctx, Service, arg.View)) {
+ if (!ValidateView(GetPos(), ctx, Service_, arg.View)) {
return nullptr;
}
}
@@ -471,20 +471,20 @@ public:
}
else if (func == "concat") {
auto concat = Y("MrTableConcat");
- for (auto& arg : Args) {
+ for (auto& arg : Args_) {
ExtractTableName(ctx, arg);
TNodePtr key;
if (arg.HasAt) {
key = Y("TempTable", arg.Id.Build());
} else {
- auto path = ctx.GetPrefixedPath(Service, Cluster, arg.Id);
+ auto path = ctx.GetPrefixedPath(Service_, Cluster_, arg.Id);
if (!path) {
return nullptr;
}
key = Y("Key", Q(Y(Q("table"), Y("String", path))));
key = AddView(key, arg.View);
- if (!ValidateView(GetPos(), ctx, Service, arg.View)) {
+ if (!ValidateView(GetPos(), ctx, Service_, arg.View)) {
return nullptr;
}
}
@@ -501,25 +501,25 @@ public:
bool isFilter = func.StartsWith("filter");
size_t minArgs = isRange ? 1 : 2;
size_t maxArgs = isRange ? 5 : 4;
- if (Args.size() < minArgs || Args.size() > maxArgs) {
- ctx.Error(Pos) << Func << " requires from " << minArgs << " to " << maxArgs << " arguments, but got: " << Args.size();
+ if (Args_.size() < minArgs || Args_.size() > maxArgs) {
+ ctx.Error(Pos_) << Func_ << " requires from " << minArgs << " to " << maxArgs << " arguments, but got: " << Args_.size();
return nullptr;
}
if (ctx.DiscoveryMode) {
- ctx.Error(Pos, TIssuesIds::YQL_NOT_ALLOWED_IN_DISCOVERY) << Func << " is not allowed in Discovery mode";
+ ctx.Error(Pos_, TIssuesIds::YQL_NOT_ALLOWED_IN_DISCOVERY) << Func_ << " is not allowed in Discovery mode";
return nullptr;
}
- for (ui32 index=0; index < Args.size(); ++index) {
- auto& arg = Args[index];
+ for (ui32 index=0; index < Args_.size(); ++index) {
+ auto& arg = Args_[index];
if (arg.HasAt) {
- ctx.Error(Pos) << "Temporary tables are not supported here";
+ ctx.Error(Pos_) << "Temporary tables are not supported here";
return nullptr;
}
if (!arg.View.empty()) {
TStringBuilder sb;
- sb << "Use the last argument of " << Func << " to specify a VIEW." << Endl;
+ sb << "Use the last argument of " << Func_ << " to specify a VIEW." << Endl;
if (isRange) {
sb << "Possible arguments are: prefix, from, to, suffix, view." << Endl;
} else if (isFilter) {
@@ -529,7 +529,7 @@ public:
}
sb << "Pass empty string in arguments if you want to skip.";
- ctx.Error(Pos) << sb;
+ ctx.Error(Pos_) << sb;
return nullptr;
}
@@ -538,7 +538,7 @@ public:
}
}
- auto path = ctx.GetPrefixedPath(Service, Cluster, Args[0].Id);
+ auto path = ctx.GetPrefixedPath(Service_, Cluster_, Args_[0].Id);
if (!path) {
return nullptr;
}
@@ -548,65 +548,65 @@ public:
if (func.StartsWith("range")) {
TDeferredAtom min;
TDeferredAtom max;
- if (Args.size() > 1) {
- min = Args[1].Id;
+ if (Args_.size() > 1) {
+ min = Args_[1].Id;
}
- if (Args.size() > 2) {
- max = Args[2].Id;
+ if (Args_.size() > 2) {
+ max = Args_[2].Id;
}
- if (Args.size() > 3) {
- suffix = Args[3].Id;
+ if (Args_.size() > 3) {
+ suffix = Args_[3].Id;
}
if (min.Empty() && max.Empty()) {
- predicate = BuildLambda(Pos, Y("item"), Y("Bool", Q("true")));
+ predicate = BuildLambda(Pos_, Y("item"), Y("Bool", Q("true")));
}
else {
auto minPred = !min.Empty() ? Y(">=", "item", Y("String", min.Build())) : nullptr;
auto maxPred = !max.Empty() ? Y("<=", "item", Y("String", max.Build())) : nullptr;
if (!minPred) {
- predicate = BuildLambda(Pos, Y("item"), maxPred);
+ predicate = BuildLambda(Pos_, Y("item"), maxPred);
} else if (!maxPred) {
- predicate = BuildLambda(Pos, Y("item"), minPred);
+ predicate = BuildLambda(Pos_, Y("item"), minPred);
} else {
- predicate = BuildLambda(Pos, Y("item"), Y("And", minPred, maxPred));
+ predicate = BuildLambda(Pos_, Y("item"), Y("And", minPred, maxPred));
}
}
} else {
- if (Args.size() > 2) {
- suffix = Args[2].Id;
+ if (Args_.size() > 2) {
+ suffix = Args_[2].Id;
}
if (func.StartsWith("regexp")) {
if (!ctx.PragmaRegexUseRe2) {
- ctx.Warning(Pos, TIssuesIds::CORE_LEGACY_REGEX_ENGINE) << "Legacy regex engine works incorrectly with unicode. Use PRAGMA RegexUseRe2='true';";
+ ctx.Warning(Pos_, TIssuesIds::CORE_LEGACY_REGEX_ENGINE) << "Legacy regex engine works incorrectly with unicode. Use PRAGMA RegexUseRe2='true';";
}
- auto pattern = Args[1].Id;
+ auto pattern = Args_[1].Id;
auto udf = ctx.PragmaRegexUseRe2 ?
Y("Udf", Q("Re2.Grep"), Q(Y(Y("String", pattern.Build()), Y("Null")))):
Y("Udf", Q("Pcre.BacktrackingGrep"), Y("String", pattern.Build()));
- predicate = BuildLambda(Pos, Y("item"), Y("Apply", udf, "item"));
+ predicate = BuildLambda(Pos_, Y("item"), Y("Apply", udf, "item"));
} else if (func.StartsWith("like")) {
- auto pattern = Args[1].Id;
+ auto pattern = Args_[1].Id;
auto convertedPattern = Y("Apply", Y("Udf", Q("Re2.PatternFromLike")),
Y("String", pattern.Build()));
auto udf = Y("Udf", Q("Re2.Match"), Q(Y(convertedPattern, Y("Null"))));
- predicate = BuildLambda(Pos, Y("item"), Y("Apply", udf, "item"));
+ predicate = BuildLambda(Pos_, Y("item"), Y("Apply", udf, "item"));
} else {
- predicate = BuildLambda(Pos, Y("item"), Y("Apply", Args[1].Expr, "item"));
+ predicate = BuildLambda(Pos_, Y("item"), Y("Apply", Args_[1].Expr, "item"));
}
}
range = L(range, predicate);
- range = L(range, suffix.Build() ? suffix.Build() : BuildQuotedAtom(Pos, ""));
+ range = L(range, suffix.Build() ? suffix.Build() : BuildQuotedAtom(Pos_, ""));
auto key = Y("Key", Q(Y(Q("table"), range)));
- if (Args.size() == maxArgs) {
- const auto& lastArg = Args.back();
+ if (Args_.size() == maxArgs) {
+ const auto& lastArg = Args_.back();
if (!lastArg.View.empty()) {
- ctx.Error(Pos) << Func << " requires that view should be set as last argument";
+ ctx.Error(Pos_) << Func_ << " requires that view should be set as last argument";
return nullptr;
}
@@ -618,9 +618,9 @@ public:
return key;
} else if (func == "each" || func == "each_strict") {
auto each = Y(func == "each" ? "MrTableEach" : "MrTableEachStrict");
- for (auto& arg : Args) {
+ for (auto& arg : Args_) {
if (arg.HasAt) {
- ctx.Error(Pos) << "Temporary tables are not supported here";
+ ctx.Error(Pos_) << "Temporary tables are not supported here";
return nullptr;
}
@@ -630,15 +630,15 @@ public:
Y("List", type)), type)))));
key = AddView(key, arg.View);
- if (!ValidateView(GetPos(), ctx, Service, arg.View)) {
+ if (!ValidateView(GetPos(), ctx, Service_, arg.View)) {
return nullptr;
}
each = L(each, key);
}
if (ctx.PragmaUseTablePrefixForEach) {
- TStringBuf prefixPath = ctx.GetPrefixPath(Service, Cluster);
+ TStringBuf prefixPath = ctx.GetPrefixPath(Service_, Cluster_);
if (prefixPath) {
- each = L(each, BuildQuotedAtom(Pos, TString(prefixPath)));
+ each = L(each, BuildQuotedAtom(Pos_, TString(prefixPath)));
}
}
return each;
@@ -646,25 +646,25 @@ public:
else if (func == "folder") {
size_t minArgs = 1;
size_t maxArgs = 2;
- if (Args.size() < minArgs || Args.size() > maxArgs) {
- ctx.Error(Pos) << Func << " requires from " << minArgs << " to " << maxArgs << " arguments, but found: " << Args.size();
+ if (Args_.size() < minArgs || Args_.size() > maxArgs) {
+ ctx.Error(Pos_) << Func_ << " requires from " << minArgs << " to " << maxArgs << " arguments, but found: " << Args_.size();
return nullptr;
}
if (ctx.DiscoveryMode) {
- ctx.Error(Pos, TIssuesIds::YQL_NOT_ALLOWED_IN_DISCOVERY) << Func << " is not allowed in Discovery mode";
+ ctx.Error(Pos_, TIssuesIds::YQL_NOT_ALLOWED_IN_DISCOVERY) << Func_ << " is not allowed in Discovery mode";
return nullptr;
}
- for (ui32 index = 0; index < Args.size(); ++index) {
- auto& arg = Args[index];
+ for (ui32 index = 0; index < Args_.size(); ++index) {
+ auto& arg = Args_[index];
if (arg.HasAt) {
- ctx.Error(Pos) << "Temporary tables are not supported here";
+ ctx.Error(Pos_) << "Temporary tables are not supported here";
return nullptr;
}
if (!arg.View.empty()) {
- ctx.Error(Pos) << Func << " doesn't supports views";
+ ctx.Error(Pos_) << Func_ << " doesn't supports views";
return nullptr;
}
@@ -672,8 +672,8 @@ public:
}
auto folder = Y("MrFolder");
- folder = L(folder, Args[0].Id.Build());
- folder = L(folder, Args.size() > 1 ? Args[1].Id.Build() : BuildQuotedAtom(Pos, ""));
+ folder = L(folder, Args_[0].Id.Build());
+ folder = L(folder, Args_.size() > 1 ? Args_[1].Id.Build() : BuildQuotedAtom(Pos_, ""));
return folder;
}
else if (func == "walkfolders") {
@@ -681,7 +681,7 @@ public:
const size_t maxPositionalArgs = 2;
size_t positionalArgsCnt = 0;
- for (const auto& arg : Args) {
+ for (const auto& arg : Args_) {
if (!arg.Expr->GetLabel()) {
positionalArgsCnt++;
} else {
@@ -689,7 +689,7 @@ public:
}
}
if (positionalArgsCnt < minPositionalArgs || positionalArgsCnt > maxPositionalArgs) {
- ctx.Error(Pos) << Func << " requires from " << minPositionalArgs
+ ctx.Error(Pos_) << Func_ << " requires from " << minPositionalArgs
<< " to " << maxPositionalArgs
<< " positional arguments, but got: " << positionalArgsCnt;
return nullptr;
@@ -698,20 +698,20 @@ public:
constexpr auto walkFoldersModuleName = "walk_folders_module";
ctx.RequiredModules.emplace(walkFoldersModuleName, "/lib/yql/walk_folders.yql");
- auto& rootFolderArg = Args[0];
+ auto& rootFolderArg = Args_[0];
if (rootFolderArg.HasAt) {
- ctx.Error(Pos) << "Temporary tables are not supported here";
+ ctx.Error(Pos_) << "Temporary tables are not supported here";
return nullptr;
}
if (!rootFolderArg.View.empty()) {
- ctx.Error(Pos) << Func << " doesn't supports views";
+ ctx.Error(Pos_) << Func_ << " doesn't supports views";
return nullptr;
}
ExtractTableName(ctx, rootFolderArg);
const auto initState =
positionalArgsCnt > 1
- ? Args[1].Expr
+ ? Args_[1].Expr
: Y("List", Y("ListType", Y("DataType", Q("String"))));
TNodePtr rootAttributes;
@@ -719,7 +719,7 @@ public:
TNodePtr resolveHandler;
TNodePtr diveHandler;
TNodePtr postHandler;
- for (auto it = Args.begin() + positionalArgsCnt; it != Args.end(); ++it) {
+ for (auto it = Args_.begin() + positionalArgsCnt; it != Args_.end(); ++it) {
auto& arg = *it;
const auto label = arg.Expr->GetLabel();
if (label == "RootAttributes") {
@@ -739,16 +739,16 @@ public:
postHandler = arg.Expr;
}
else {
- ctx.Warning(Pos, DEFAULT_ERROR) << "Unsupported named argument: "
- << label << " in " << Func;
+ ctx.Warning(Pos_, DEFAULT_ERROR) << "Unsupported named argument: "
+ << label << " in " << Func_;
}
}
if (rootAttributes == nullptr) {
- rootAttributes = BuildQuotedAtom(Pos, "");
+ rootAttributes = BuildQuotedAtom(Pos_, "");
}
if (preHandler != nullptr || postHandler != nullptr) {
- const auto makePrePostHandlerType = BuildBind(Pos, walkFoldersModuleName, "MakePrePostHandlersType");
+ const auto makePrePostHandlerType = BuildBind(Pos_, walkFoldersModuleName, "MakePrePostHandlersType");
const auto prePostHandlerType = Y("EvaluateType", Y("TypeHandle", Y("Apply", makePrePostHandlerType, Y("TypeOf", initState))));
if (preHandler != nullptr) {
@@ -765,13 +765,13 @@ public:
postHandler = Y("Void");
}
- const auto makeResolveDiveHandlerType = BuildBind(Pos, walkFoldersModuleName, "MakeResolveDiveHandlersType");
+ const auto makeResolveDiveHandlerType = BuildBind(Pos_, walkFoldersModuleName, "MakeResolveDiveHandlersType");
const auto resolveDiveHandlerType = Y("EvaluateType", Y("TypeHandle", Y("Apply", makeResolveDiveHandlerType, Y("TypeOf", initState))));
if (resolveHandler == nullptr) {
- resolveHandler = BuildBind(Pos, walkFoldersModuleName, "AnyNodeDiveHandler");
+ resolveHandler = BuildBind(Pos_, walkFoldersModuleName, "AnyNodeDiveHandler");
}
if (diveHandler == nullptr) {
- diveHandler = BuildBind(Pos, walkFoldersModuleName, "AnyNodeDiveHandler");
+ diveHandler = BuildBind(Pos_, walkFoldersModuleName, "AnyNodeDiveHandler");
}
resolveHandler = Y("Callable", resolveDiveHandlerType, resolveHandler);
@@ -786,8 +786,8 @@ public:
preHandler, resolveHandler, diveHandler, postHandler);
}
else if (func == "tables") {
- if (!Args.empty()) {
- ctx.Error(Pos) << Func << " doesn't accept arguments";
+ if (!Args_.empty()) {
+ ctx.Error(Pos_) << Func_ << " doesn't accept arguments";
return nullptr;
}
@@ -799,15 +799,15 @@ public:
auto settings = Y();
//TVector<TNodePtr> settings;
size_t argc = 0;
- for (ui32 index = 0; index < Args.size(); ++index) {
- auto& arg = Args[index];
+ for (ui32 index = 0; index < Args_.size(); ++index) {
+ auto& arg = Args_[index];
if (arg.HasAt) {
ctx.Error(arg.Expr->GetPos()) << "Temporary tables are not supported here";
return nullptr;
}
if (!arg.View.empty()) {
- ctx.Error(Pos) << to_upper(Func) << " doesn't supports views";
+ ctx.Error(Pos_) << to_upper(Func_) << " doesn't supports views";
return nullptr;
}
@@ -821,7 +821,7 @@ public:
}
if (argc != positionalArgs) {
- ctx.Error(Pos) << to_upper(Func) << " requires exacty " << positionalArgs << " positional args, but got " << argc;
+ ctx.Error(Pos_) << to_upper(Func_) << " requires exacty " << positionalArgs << " positional args, but got " << argc;
return nullptr;
}
@@ -829,15 +829,15 @@ public:
return result;
}
- ctx.Error(Pos) << "Unknown table name preprocessor: " << Func;
+ ctx.Error(Pos_) << "Unknown table name preprocessor: " << Func_;
return nullptr;
}
private:
- TString Service;
- TDeferredAtom Cluster;
- TString Func;
- TVector<TTableArg> Args;
+ TString Service_;
+ TDeferredAtom Cluster_;
+ TString Func_;
+ TVector<TTableArg> Args_;
};
TNodePtr BuildTableKeys(TPosition pos, const TString& service, const TDeferredAtom& cluster,
@@ -849,20 +849,20 @@ class TInputOptions final : public TAstListNode {
public:
TInputOptions(TPosition pos, const TTableHints& hints)
: TAstListNode(pos)
- , Hints(hints)
+ , Hints_(hints)
{
}
bool DoInit(TContext& ctx, ISource* src) override {
- for (auto& hint: Hints) {
+ for (auto& hint: Hints_) {
TString hintName = hint.first;
- TMaybe<TIssue> normalizeError = NormalizeName(Pos, hintName);
+ TMaybe<TIssue> normalizeError = NormalizeName(Pos_, hintName);
if (!normalizeError.Empty()) {
ctx.Error() << normalizeError->GetMessage();
ctx.IncrementMonCounter("sql_errors", "NormalizeHintError");
return false;
}
- TNodePtr option = Y(BuildQuotedAtom(Pos, hintName));
+ TNodePtr option = Y(BuildQuotedAtom(Pos_, hintName));
for (auto& x : hint.second) {
if (!x->Init(ctx, src)) {
return false;
@@ -871,7 +871,7 @@ public:
option = L(option, x);
}
- Nodes.push_back(Q(option));
+ Nodes_.push_back(Q(option));
}
return true;
}
@@ -881,7 +881,7 @@ public:
}
private:
- TTableHints Hints;
+ TTableHints Hints_;
};
TNodePtr BuildInputOptions(TPosition pos, const TTableHints& hints) {
@@ -896,8 +896,8 @@ class TIntoTableOptions : public TAstListNode {
public:
TIntoTableOptions(TPosition pos, const TVector<TString>& columns, const TTableHints& hints)
: TAstListNode(pos)
- , Columns(columns)
- , Hints(hints)
+ , Columns_(columns)
+ , Hints_(hints)
{
}
@@ -906,22 +906,22 @@ public:
Y_UNUSED(src);
TNodePtr options = Y();
- for (const auto& column: Columns) {
+ for (const auto& column: Columns_) {
options->Add(Q(column));
}
- if (Columns) {
+ if (Columns_) {
Add(Q(Y(Q("erase_columns"), Q(options))));
}
- for (const auto& hint : Hints) {
+ for (const auto& hint : Hints_) {
TString hintName = hint.first;
- TMaybe<TIssue> normalizeError = NormalizeName(Pos, hintName);
+ TMaybe<TIssue> normalizeError = NormalizeName(Pos_, hintName);
if (!normalizeError.Empty()) {
ctx.Error() << normalizeError->GetMessage();
ctx.IncrementMonCounter("sql_errors", "NormalizeHintError");
return false;
}
- TNodePtr option = Y(BuildQuotedAtom(Pos, hintName));
+ TNodePtr option = Y(BuildQuotedAtom(Pos_, hintName));
for (auto& x : hint.second) {
if (!x->Init(ctx, src)) {
return false;
@@ -935,12 +935,12 @@ public:
}
TNodePtr DoClone() const final {
- return new TIntoTableOptions(GetPos(), Columns, CloneContainer(Hints));
+ return new TIntoTableOptions(GetPos(), Columns_, CloneContainer(Hints_));
}
private:
- TVector<TString> Columns;
- TTableHints Hints;
+ TVector<TString> Columns_;
+ TTableHints Hints_;
};
TNodePtr BuildIntoTableOptions(TPosition pos, const TVector<TString>& eraseColumns, const TTableHints& hints) {
@@ -951,31 +951,31 @@ class TInputTablesNode final : public TAstListNode {
public:
TInputTablesNode(TPosition pos, const TTableList& tables, bool inSubquery, TScopedStatePtr scoped)
: TAstListNode(pos)
- , Tables(tables)
- , InSubquery(inSubquery)
- , Scoped(scoped)
+ , Tables_(tables)
+ , InSubquery_(inSubquery)
+ , Scoped_(scoped)
{
}
bool DoInit(TContext& ctx, ISource* src) override {
THashSet<TString> processedTables;
- for (auto& tr: Tables) {
+ for (auto& tr: Tables_) {
if (!processedTables.insert(tr.RefName).second) {
continue;
}
- Scoped->UseCluster(tr.Service, tr.Cluster);
+ Scoped_->UseCluster(tr.Service, tr.Cluster);
auto tableKeys = tr.Keys->GetTableKeys();
auto keys = tableKeys->BuildKeys(ctx, ITableKeys::EBuildKeysMode::INPUT);
if (!keys || !keys->Init(ctx, src)) {
return false;
}
auto fields = Y("Void");
- auto source = Y("DataSource", BuildQuotedAtom(Pos, tr.Service), Scoped->WrapCluster(tr.Cluster, ctx));
+ auto source = Y("DataSource", BuildQuotedAtom(Pos_, tr.Service), Scoped_->WrapCluster(tr.Cluster, ctx));
auto options = tr.Options ? Q(tr.Options) : Q(Y());
Add(Y("let", "x", keys->Y(TString(ReadName), "world", source, keys, fields, options)));
- if (IsIn({KikimrProviderName, YdbProviderName}, tr.Service) && InSubquery) {
+ if (IsIn({KikimrProviderName, YdbProviderName}, tr.Service) && InSubquery_) {
ctx.Error() << "Using of system '" << tr.Service << "' is not allowed in SUBQUERY";
return false;
}
@@ -994,9 +994,9 @@ public:
}
private:
- TTableList Tables;
- const bool InSubquery;
- TScopedStatePtr Scoped;
+ TTableList Tables_;
+ const bool InSubquery_;
+ TScopedStatePtr Scoped_;
};
TNodePtr BuildInputTables(TPosition pos, const TTableList& tables, bool inSubquery, TScopedStatePtr scoped) {
@@ -1007,37 +1007,37 @@ class TCreateTableNode final : public TAstListNode {
public:
TCreateTableNode(TPosition pos, const TTableRef& tr, bool existingOk, bool replaceIfExists, const TCreateTableParameters& params, TSourcePtr values, TScopedStatePtr scoped)
: TAstListNode(pos)
- , Table(tr)
- , Params(params)
- , ExistingOk(existingOk)
- , ReplaceIfExists(replaceIfExists)
- , Values(std::move(values))
- , Scoped(scoped)
+ , Table_(tr)
+ , Params_(params)
+ , ExistingOk_(existingOk)
+ , ReplaceIfExists_(replaceIfExists)
+ , Values_(std::move(values))
+ , Scoped_(scoped)
{
- scoped->UseCluster(Table.Service, Table.Cluster);
+ scoped->UseCluster(Table_.Service, Table_.Cluster);
}
bool DoInit(TContext& ctx, ISource* src) override {
- auto keys = Table.Keys->GetTableKeys()->BuildKeys(ctx, ITableKeys::EBuildKeysMode::CREATE);
+ auto keys = Table_.Keys->GetTableKeys()->BuildKeys(ctx, ITableKeys::EBuildKeysMode::CREATE);
if (!keys || !keys->Init(ctx, src)) {
return false;
}
- if (!Params.PkColumns.empty()
- || !Params.PartitionByColumns.empty()
- || !Params.OrderByColumns.empty()
- || !Params.Indexes.empty()
- || !Params.Changefeeds.empty())
+ if (!Params_.PkColumns.empty()
+ || !Params_.PartitionByColumns.empty()
+ || !Params_.OrderByColumns.empty()
+ || !Params_.Indexes.empty()
+ || !Params_.Changefeeds.empty())
{
THashSet<TString> columnsSet;
- for (auto& col : Params.Columns) {
+ for (auto& col : Params_.Columns) {
columnsSet.insert(col.Name);
}
- const bool allowUndefinedColumns = (Values != nullptr) && columnsSet.empty();
+ const bool allowUndefinedColumns = (Values_ != nullptr) && columnsSet.empty();
THashSet<TString> pkColumns;
- for (auto& keyColumn : Params.PkColumns) {
+ for (auto& keyColumn : Params_.PkColumns) {
if (!allowUndefinedColumns && !columnsSet.contains(keyColumn.Name)) {
ctx.Error(keyColumn.Pos) << "Undefined column: " << keyColumn.Name;
return false;
@@ -1047,13 +1047,13 @@ public:
return false;
}
}
- for (auto& keyColumn : Params.PartitionByColumns) {
+ for (auto& keyColumn : Params_.PartitionByColumns) {
if (!allowUndefinedColumns && !columnsSet.contains(keyColumn.Name)) {
ctx.Error(keyColumn.Pos) << "Undefined column: " << keyColumn.Name;
return false;
}
}
- for (auto& keyColumn : Params.OrderByColumns) {
+ for (auto& keyColumn : Params_.OrderByColumns) {
if (!allowUndefinedColumns && !columnsSet.contains(keyColumn.first.Name)) {
ctx.Error(keyColumn.first.Pos) << "Undefined column: " << keyColumn.first.Name;
return false;
@@ -1061,7 +1061,7 @@ public:
}
THashSet<TString> indexNames;
- for (const auto& index : Params.Indexes) {
+ for (const auto& index : Params_.Indexes) {
if (!indexNames.insert(index.Name.Name).second) {
ctx.Error(index.Name.Pos) << "Index " << index.Name.Name << " must be defined once";
return false;
@@ -1083,7 +1083,7 @@ public:
}
THashSet<TString> cfNames;
- for (const auto& cf : Params.Changefeeds) {
+ for (const auto& cf : Params_.Changefeeds) {
if (!cfNames.insert(cf.Name.Name).second) {
ctx.Error(cf.Name.Pos) << "Changefeed " << cf.Name.Name << " must be defined once";
return false;
@@ -1092,16 +1092,16 @@ public:
}
auto opts = Y();
- if (Table.Options) {
- if (!Table.Options->Init(ctx, src)) {
+ if (Table_.Options) {
+ if (!Table_.Options->Init(ctx, src)) {
return false;
}
- opts = Table.Options;
+ opts = Table_.Options;
}
- if (ExistingOk) {
+ if (ExistingOk_) {
opts = L(opts, Q(Y(Q("mode"), Q("create_if_not_exists"))));
- } else if (ReplaceIfExists) {
+ } else if (ReplaceIfExists_) {
opts = L(opts, Q(Y(Q("mode"), Q("create_or_replace"))));
} else {
opts = L(opts, Q(Y(Q("mode"), Q("create"))));
@@ -1109,9 +1109,9 @@ public:
THashSet<TString> columnFamilyNames;
- if (Params.ColumnFamilies) {
+ if (Params_.ColumnFamilies) {
auto columnFamilies = Y();
- for (const auto& family : Params.ColumnFamilies) {
+ for (const auto& family : Params_.ColumnFamilies) {
if (!columnFamilyNames.insert(family.Name.Name).second) {
ctx.Error(family.Name.Pos) << "Family " << family.Name.Name << " specified more than once";
return false;
@@ -1136,9 +1136,9 @@ public:
THashSet<TString> columnsWithDefaultValue;
auto columnsDefaultValueSettings = Y();
- for (auto& col : Params.Columns) {
+ for (auto& col : Params_.Columns) {
auto columnDesc = Y();
- columnDesc = L(columnDesc, BuildQuotedAtom(Pos, col.Name));
+ columnDesc = L(columnDesc, BuildQuotedAtom(Pos_, col.Name));
auto type = col.Type;
if (type) {
@@ -1191,63 +1191,63 @@ public:
opts = L(opts, Q(Y(Q("columnsDefaultValues"), Q(columnsDefaultValueSettings))));
}
- if (Table.Service == RtmrProviderName) {
- if (!Params.PkColumns.empty() && !Params.PartitionByColumns.empty()) {
+ if (Table_.Service == RtmrProviderName) {
+ if (!Params_.PkColumns.empty() && !Params_.PartitionByColumns.empty()) {
ctx.Error() << "Only one of PRIMARY KEY or PARTITION BY constraints may be specified";
return false;
}
} else {
- if (!Params.OrderByColumns.empty()) {
+ if (!Params_.OrderByColumns.empty()) {
ctx.Error() << "ORDER BY is supported only for " << RtmrProviderName << " provider";
return false;
}
}
- if (!Params.PkColumns.empty()) {
+ if (!Params_.PkColumns.empty()) {
auto primaryKey = Y();
- for (auto& col : Params.PkColumns) {
+ for (auto& col : Params_.PkColumns) {
primaryKey = L(primaryKey, BuildQuotedAtom(col.Pos, col.Name));
}
opts = L(opts, Q(Y(Q("primarykey"), Q(primaryKey))));
- if (!Params.OrderByColumns.empty()) {
+ if (!Params_.OrderByColumns.empty()) {
ctx.Error() << "PRIMARY KEY cannot be used with ORDER BY, use PARTITION BY instead";
return false;
}
}
- if (!Params.PartitionByColumns.empty()) {
+ if (!Params_.PartitionByColumns.empty()) {
auto partitionBy = Y();
- for (auto& col : Params.PartitionByColumns) {
+ for (auto& col : Params_.PartitionByColumns) {
partitionBy = L(partitionBy, BuildQuotedAtom(col.Pos, col.Name));
}
opts = L(opts, Q(Y(Q("partitionby"), Q(partitionBy))));
}
- if (!Params.OrderByColumns.empty()) {
+ if (!Params_.OrderByColumns.empty()) {
auto orderBy = Y();
- for (auto& col : Params.OrderByColumns) {
+ for (auto& col : Params_.OrderByColumns) {
orderBy = L(orderBy, Q(Y(BuildQuotedAtom(col.first.Pos, col.first.Name), col.second ? Q("1") : Q("0"))));
}
opts = L(opts, Q(Y(Q("orderby"), Q(orderBy))));
}
- for (const auto& index : Params.Indexes) {
+ for (const auto& index : Params_.Indexes) {
const auto& desc = CreateIndexDesc(index, ETableSettingsParsingMode::Create, *this);
opts = L(opts, Q(Y(Q("index"), Q(desc))));
}
- for (const auto& cf : Params.Changefeeds) {
+ for (const auto& cf : Params_.Changefeeds) {
const auto& desc = CreateChangefeedDesc(cf, *this);
opts = L(opts, Q(Y(Q("changefeed"), Q(desc))));
}
- if (Params.TableSettings.IsSet()) {
+ if (Params_.TableSettings.IsSet()) {
opts = L(opts, Q(Y(Q("tableSettings"), Q(
- CreateTableSettings(Params.TableSettings, ETableSettingsParsingMode::Create, *this)
+ CreateTableSettings(Params_.TableSettings, ETableSettingsParsingMode::Create, *this)
))));
}
- switch (Params.TableType) {
+ switch (Params_.TableType) {
case ETableType::TableStore:
opts = L(opts, Q(Y(Q("tableType"), Q("tableStore"))));
break;
@@ -1258,24 +1258,24 @@ public:
break;
}
- if (Params.Temporary) {
+ if (Params_.Temporary) {
opts = L(opts, Q(Y(Q("temporary"))));
}
TNodePtr node = nullptr;
- if (Values) {
- if (!Values->Init(ctx, nullptr)) {
+ if (Values_) {
+ if (!Values_->Init(ctx, nullptr)) {
return false;
}
TTableList tableList;
- Values->GetInputTables(tableList);
- auto valuesSource = Values.Get();
- auto values = Values->Build(ctx);
- if (!Values) {
+ Values_->GetInputTables(tableList);
+ auto valuesSource = Values_.Get();
+ auto values = Values_->Build(ctx);
+ if (!Values_) {
return false;
}
- TNodePtr inputTables(BuildInputTables(Pos, tableList, false, Scoped));
+ TNodePtr inputTables(BuildInputTables(Pos_, tableList, false, Scoped_));
if (!inputTables->Init(ctx, valuesSource)) {
return false;
}
@@ -1287,7 +1287,7 @@ public:
}
auto write = Y(
- Y("let", "sink", Y("DataSink", BuildQuotedAtom(Pos, Table.Service), Scoped->WrapCluster(Table.Cluster, ctx))),
+ Y("let", "sink", Y("DataSink", BuildQuotedAtom(Pos_, Table_.Service), Scoped_->WrapCluster(Table_.Cluster, ctx))),
Y("let", "world", Y(TString(WriteName), "world", "sink", keys, "values", Q(opts))),
Y("return", ctx.PragmaAutoCommit ? Y(TString(CommitName), "world", "sink") : AstNode("world"))
);
@@ -1304,12 +1304,12 @@ public:
return {};
}
private:
- const TTableRef Table;
- const TCreateTableParameters Params;
- const bool ExistingOk;
- const bool ReplaceIfExists;
- const TSourcePtr Values;
- TScopedStatePtr Scoped;
+ const TTableRef Table_;
+ const TCreateTableParameters Params_;
+ const bool ExistingOk_;
+ const bool ReplaceIfExists_;
+ const TSourcePtr Values_;
+ TScopedStatePtr Scoped_;
};
TNodePtr BuildCreateTable(TPosition pos, const TTableRef& tr, bool existingOk, bool replaceIfExists, const TCreateTableParameters& params, TSourcePtr values, TScopedStatePtr scoped)
@@ -1340,30 +1340,30 @@ public:
TScopedStatePtr scoped
)
: TAstListNode(pos)
- , Params(params)
- , Scoped(scoped)
- , Cluster(cluster)
- , Service(service)
+ , Params_(params)
+ , Scoped_(scoped)
+ , Cluster_(cluster)
+ , Service_(service)
{
scoped->UseCluster(service, cluster);
}
bool DoInit(TContext& ctx, ISource* src) override {
- TNodePtr cluster = Scoped->WrapCluster(Cluster, ctx);
+ TNodePtr cluster = Scoped_->WrapCluster(Cluster_, ctx);
auto options = Y(Q(Y(Q("mode"), Q("alterDatabase"))));
- if (Params.Owner.has_value()) {
- options = L(options, Q(Y(Q("owner"), Params.Owner.value().Build())));
+ if (Params_.Owner.has_value()) {
+ options = L(options, Q(Y(Q("owner"), Params_.Owner.value().Build())));
}
- if (!InitDatabaseSettings(ctx, src, Params.DatabaseSettings)) {
+ if (!InitDatabaseSettings(ctx, src, Params_.DatabaseSettings)) {
return false;
}
- AddDatabaseSettings(options, Params.DatabaseSettings);
+ AddDatabaseSettings(options, Params_.DatabaseSettings);
Add("block", Q(Y(
- Y("let", "sink", Y("DataSink", BuildQuotedAtom(Pos, Service), cluster)),
- Y("let", "world", Y(TString(WriteName), "world", "sink", Y("Key", Q(Y(Q("databasePath"), Y("String", Params.DbPath.Build())))), Y("Void"), Q(options))),
+ Y("let", "sink", Y("DataSink", BuildQuotedAtom(Pos_, Service_), cluster)),
+ Y("let", "world", Y(TString(WriteName), "world", "sink", Y("Key", Q(Y(Q("databasePath"), Y("String", Params_.DbPath.Build())))), Y("Void"), Q(options))),
Y("return", ctx.PragmaAutoCommit ? Y(TString(CommitName), "world", "sink") : AstNode("world"))
)));
@@ -1375,14 +1375,14 @@ public:
}
private:
- const TAlterDatabaseParameters Params;
- TScopedStatePtr Scoped;
- TDeferredAtom Cluster;
- TString Service;
+ const TAlterDatabaseParameters Params_;
+ TScopedStatePtr Scoped_;
+ TDeferredAtom Cluster_;
+ TString Service_;
void AddDatabaseSettings(TNodePtr& options, const THashMap<TString, TNodePtr>& settings) {
for (const auto& [setting, value] : settings) {
- options = L(options, Q(Y(BuildQuotedAtom(Pos, setting), value)));
+ options = L(options, Q(Y(BuildQuotedAtom(Pos_, setting), value)));
}
}
@@ -1409,26 +1409,26 @@ class TAlterTableNode final : public TAstListNode {
public:
TAlterTableNode(TPosition pos, const TTableRef& tr, const TAlterTableParameters& params, TScopedStatePtr scoped)
: TAstListNode(pos)
- , Table(tr)
- , Params(params)
- , Scoped(scoped)
+ , Table_(tr)
+ , Params_(params)
+ , Scoped_(scoped)
{
- scoped->UseCluster(Table.Service, Table.Cluster);
+ scoped->UseCluster(Table_.Service, Table_.Cluster);
}
bool DoInit(TContext& ctx, ISource* src) override {
- auto keys = Table.Keys->GetTableKeys()->BuildKeys(ctx, ITableKeys::EBuildKeysMode::CREATE);
+ auto keys = Table_.Keys->GetTableKeys()->BuildKeys(ctx, ITableKeys::EBuildKeysMode::CREATE);
if (!keys || !keys->Init(ctx, src)) {
return false;
}
auto actions = Y();
- if (Params.AddColumns) {
+ if (Params_.AddColumns) {
auto columns = Y();
- for (auto& col : Params.AddColumns) {
+ for (auto& col : Params_.AddColumns) {
auto columnDesc = Y();
- columnDesc = L(columnDesc, BuildQuotedAtom(Pos, col.Name));
+ columnDesc = L(columnDesc, BuildQuotedAtom(Pos_, col.Name));
auto type = col.Type;
if (col.Nullable) {
type = Y("AsOptionalType", type);
@@ -1465,20 +1465,20 @@ public:
actions = L(actions, Q(Y(Q("addColumns"), Q(columns))));
}
- if (Params.DropColumns) {
+ if (Params_.DropColumns) {
auto columns = Y();
- for (auto& colName : Params.DropColumns) {
- columns = L(columns, BuildQuotedAtom(Pos, colName));
+ for (auto& colName : Params_.DropColumns) {
+ columns = L(columns, BuildQuotedAtom(Pos_, colName));
}
actions = L(actions, Q(Y(Q("dropColumns"), Q(columns))));
}
- if (Params.AlterColumns) {
+ if (Params_.AlterColumns) {
auto columns = Y();
- for (auto& col : Params.AlterColumns) {
+ for (auto& col : Params_.AlterColumns) {
if (col.TypeOfChange == TColumnSchema::ETypeOfChange::DropNotNullConstraint) {
auto columnDesc = Y();
- columnDesc = L(columnDesc, BuildQuotedAtom(Pos, col.Name));
+ columnDesc = L(columnDesc, BuildQuotedAtom(Pos_, col.Name));
auto columnConstraints = Y();
columnConstraints = L(columnConstraints, Q(Y(Q("drop_not_null"))));
@@ -1488,7 +1488,7 @@ public:
// todo flown4qqqq
} else if (col.TypeOfChange == TColumnSchema::ETypeOfChange::SetFamily) {
auto columnDesc = Y();
- columnDesc = L(columnDesc, BuildQuotedAtom(Pos, col.Name));
+ columnDesc = L(columnDesc, BuildQuotedAtom(Pos_, col.Name));
auto familiesDesc = Y();
for (const auto& family : col.Families) {
familiesDesc = L(familiesDesc, BuildQuotedAtom(family.Pos, family.Name));
@@ -1499,15 +1499,15 @@ public:
} else if (col.TypeOfChange == TColumnSchema::ETypeOfChange::Nothing) {
// do nothing
} else {
- ctx.Error(Pos) << " action is not supported";
+ ctx.Error(Pos_) << " action is not supported";
}
}
actions = L(actions, Q(Y(Q("alterColumns"), Q(columns))));
}
- if (Params.AddColumnFamilies) {
+ if (Params_.AddColumnFamilies) {
auto columnFamilies = Y();
- for (const auto& family : Params.AddColumnFamilies) {
+ for (const auto& family : Params_.AddColumnFamilies) {
auto familyDesc = Y();
familyDesc = L(familyDesc, Q(Y(Q("name"), BuildQuotedAtom(family.Name.Pos, family.Name.Name))));
if (family.Data) {
@@ -1524,9 +1524,9 @@ public:
actions = L(actions, Q(Y(Q("addColumnFamilies"), Q(columnFamilies))));
}
- if (Params.AlterColumnFamilies) {
+ if (Params_.AlterColumnFamilies) {
auto columnFamilies = Y();
- for (const auto& family : Params.AlterColumnFamilies) {
+ for (const auto& family : Params_.AlterColumnFamilies) {
auto familyDesc = Y();
familyDesc = L(familyDesc, Q(Y(Q("name"), BuildQuotedAtom(family.Name.Pos, family.Name.Name))));
if (family.Data) {
@@ -1543,30 +1543,30 @@ public:
actions = L(actions, Q(Y(Q("alterColumnFamilies"), Q(columnFamilies))));
}
- if (Params.TableSettings.IsSet()) {
+ if (Params_.TableSettings.IsSet()) {
actions = L(actions, Q(Y(Q("setTableSettings"), Q(
- CreateTableSettings(Params.TableSettings, ETableSettingsParsingMode::Alter, *this)
+ CreateTableSettings(Params_.TableSettings, ETableSettingsParsingMode::Alter, *this)
))));
}
- for (const auto& index : Params.AddIndexes) {
+ for (const auto& index : Params_.AddIndexes) {
const auto& desc = CreateIndexDesc(index, ETableSettingsParsingMode::Alter, *this);
actions = L(actions, Q(Y(Q("addIndex"), Q(desc))));
}
- for (const auto& index : Params.AlterIndexes) {
+ for (const auto& index : Params_.AlterIndexes) {
const auto& desc = CreateAlterIndex(index, *this);
actions = L(actions, Q(Y(Q("alterIndex"), Q(desc))));
}
- for (const auto& id : Params.DropIndexes) {
+ for (const auto& id : Params_.DropIndexes) {
auto indexName = BuildQuotedAtom(id.Pos, id.Name);
actions = L(actions, Q(Y(Q("dropIndex"), indexName)));
}
- if (Params.RenameIndexTo) {
- auto src = BuildQuotedAtom(Params.RenameIndexTo->first.Pos, Params.RenameIndexTo->first.Name);
- auto dst = BuildQuotedAtom(Params.RenameIndexTo->second.Pos, Params.RenameIndexTo->second.Name);
+ if (Params_.RenameIndexTo) {
+ auto src = BuildQuotedAtom(Params_.RenameIndexTo->first.Pos, Params_.RenameIndexTo->first.Name);
+ auto dst = BuildQuotedAtom(Params_.RenameIndexTo->second.Pos, Params_.RenameIndexTo->second.Name);
auto desc = Y();
@@ -1576,23 +1576,23 @@ public:
actions = L(actions, Q(Y(Q("renameIndexTo"), Q(desc))));
}
- if (Params.RenameTo) {
- auto destination = ctx.GetPrefixedPath(Scoped->CurrService, Scoped->CurrCluster,
- TDeferredAtom(Params.RenameTo->Pos, Params.RenameTo->Name));
+ if (Params_.RenameTo) {
+ auto destination = ctx.GetPrefixedPath(Scoped_->CurrService, Scoped_->CurrCluster,
+ TDeferredAtom(Params_.RenameTo->Pos, Params_.RenameTo->Name));
actions = L(actions, Q(Y(Q("renameTo"), destination)));
}
- for (const auto& cf : Params.AddChangefeeds) {
+ for (const auto& cf : Params_.AddChangefeeds) {
const auto& desc = CreateChangefeedDesc(cf, *this);
actions = L(actions, Q(Y(Q("addChangefeed"), Q(desc))));
}
- for (const auto& cf : Params.AlterChangefeeds) {
+ for (const auto& cf : Params_.AlterChangefeeds) {
const auto& desc = CreateChangefeedDesc(cf, *this);
actions = L(actions, Q(Y(Q("alterChangefeed"), Q(desc))));
}
- for (const auto& id : Params.DropChangefeeds) {
+ for (const auto& id : Params_.DropChangefeeds) {
const auto name = BuildQuotedAtom(id.Pos, id.Name);
actions = L(actions, Q(Y(Q("dropChangefeed"), name)));
}
@@ -1602,7 +1602,7 @@ public:
opts = L(opts, Q(Y(Q("mode"), Q("alter"))));
opts = L(opts, Q(Y(Q("actions"), Q(actions))));
- switch (Params.TableType) {
+ switch (Params_.TableType) {
case ETableType::TableStore:
opts = L(opts, Q(Y(Q("tableType"), Q("tableStore"))));
break;
@@ -1614,7 +1614,7 @@ public:
}
Add("block", Q(Y(
- Y("let", "sink", Y("DataSink", BuildQuotedAtom(Pos, Table.Service), Scoped->WrapCluster(Table.Cluster, ctx))),
+ Y("let", "sink", Y("DataSink", BuildQuotedAtom(Pos_, Table_.Service), Scoped_->WrapCluster(Table_.Cluster, ctx))),
Y("let", "world", Y(TString(WriteName), "world", "sink", keys, Y("Void"), Q(opts))),
Y("return", ctx.PragmaAutoCommit ? Y(TString(CommitName), "world", "sink") : AstNode("world"))
)));
@@ -1625,9 +1625,9 @@ public:
return {};
}
private:
- TTableRef Table;
- const TAlterTableParameters Params;
- TScopedStatePtr Scoped;
+ TTableRef Table_;
+ const TAlterTableParameters Params_;
+ TScopedStatePtr Scoped_;
};
TNodePtr BuildAlterTable(TPosition pos, const TTableRef& tr, const TAlterTableParameters& params, TScopedStatePtr scoped)
@@ -1639,27 +1639,27 @@ class TDropTableNode final : public TAstListNode {
public:
TDropTableNode(TPosition pos, const TTableRef& tr, bool missingOk, ETableType tableType, TScopedStatePtr scoped)
: TAstListNode(pos)
- , Table(tr)
- , TableType(tableType)
- , Scoped(scoped)
- , MissingOk(missingOk)
+ , Table_(tr)
+ , TableType_(tableType)
+ , Scoped_(scoped)
+ , MissingOk_(missingOk)
{
- FakeSource = BuildFakeSource(pos);
- scoped->UseCluster(Table.Service, Table.Cluster);
+ FakeSource_ = BuildFakeSource(pos);
+ scoped->UseCluster(Table_.Service, Table_.Cluster);
}
bool DoInit(TContext& ctx, ISource* src) override {
Y_UNUSED(src);
- auto keys = Table.Keys->GetTableKeys()->BuildKeys(ctx, ITableKeys::EBuildKeysMode::DROP);
- if (!keys || !keys->Init(ctx, FakeSource.Get())) {
+ auto keys = Table_.Keys->GetTableKeys()->BuildKeys(ctx, ITableKeys::EBuildKeysMode::DROP);
+ if (!keys || !keys->Init(ctx, FakeSource_.Get())) {
return false;
}
auto opts = Y();
- opts = L(opts, Q(Y(Q("mode"), Q(MissingOk ? "drop_if_exists" : "drop"))));
+ opts = L(opts, Q(Y(Q("mode"), Q(MissingOk_ ? "drop_if_exists" : "drop"))));
- switch (TableType) {
+ switch (TableType_) {
case ETableType::TableStore:
opts = L(opts, Q(Y(Q("tableType"), Q("tableStore"))));
break;
@@ -1671,23 +1671,23 @@ public:
}
Add("block", Q(Y(
- Y("let", "sink", Y("DataSink", BuildQuotedAtom(Pos, Table.Service), Scoped->WrapCluster(Table.Cluster, ctx))),
+ Y("let", "sink", Y("DataSink", BuildQuotedAtom(Pos_, Table_.Service), Scoped_->WrapCluster(Table_.Cluster, ctx))),
Y("let", "world", Y(TString(WriteName), "world", "sink", keys, Y("Void"), Q(opts))),
Y("return", ctx.PragmaAutoCommit ? Y(TString(CommitName), "world", "sink") : AstNode("world"))
)));
- return TAstListNode::DoInit(ctx, FakeSource.Get());
+ return TAstListNode::DoInit(ctx, FakeSource_.Get());
}
TPtr DoClone() const final {
return {};
}
private:
- TTableRef Table;
- ETableType TableType;
- TScopedStatePtr Scoped;
- TSourcePtr FakeSource;
- const bool MissingOk;
+ TTableRef Table_;
+ ETableType TableType_;
+ TScopedStatePtr Scoped_;
+ TSourcePtr FakeSource_;
+ const bool MissingOk_;
};
TNodePtr BuildDropTable(TPosition pos, const TTableRef& tr, bool missingOk, ETableType tableType, TScopedStatePtr scoped) {
@@ -1728,23 +1728,23 @@ class TCreateTopicNode final : public TAstListNode {
public:
TCreateTopicNode(TPosition pos, const TTopicRef& tr, const TCreateTopicParameters& params, TScopedStatePtr scoped)
: TAstListNode(pos)
- , Topic(tr)
- , Params(params)
- , Scoped(scoped)
+ , Topic_(tr)
+ , Params_(params)
+ , Scoped_(scoped)
{
- scoped->UseCluster(TString(KikimrProviderName), Topic.Cluster);
+ scoped->UseCluster(TString(KikimrProviderName), Topic_.Cluster);
}
bool DoInit(TContext& ctx, ISource* src) override {
- auto keys = Topic.Keys->GetTableKeys()->BuildKeys(ctx, ITableKeys::EBuildKeysMode::CREATE);
+ auto keys = Topic_.Keys->GetTableKeys()->BuildKeys(ctx, ITableKeys::EBuildKeysMode::CREATE);
if (!keys || !keys->Init(ctx, src)) {
return false;
}
- if (!Params.Consumers.empty())
+ if (!Params_.Consumers.empty())
{
THashSet<TString> consumerNames;
- for (const auto& consumer : Params.Consumers) {
+ for (const auto& consumer : Params_.Consumers) {
if (!consumerNames.insert(consumer.Name.Name).second) {
ctx.Error(consumer.Name.Pos) << "Consumer " << consumer.Name.Name << " defined more than once";
return false;
@@ -1753,19 +1753,19 @@ public:
}
auto opts = Y();
- TString mode = Params.ExistingOk ? "create_if_not_exists" : "create";
+ TString mode = Params_.ExistingOk ? "create_if_not_exists" : "create";
opts = L(opts, Q(Y(Q("mode"), Q(mode))));
- for (const auto& consumer : Params.Consumers) {
+ for (const auto& consumer : Params_.Consumers) {
const auto& desc = CreateConsumerDesc(consumer, *this, false);
opts = L(opts, Q(Y(Q("consumer"), Q(desc))));
}
- if (Params.TopicSettings.IsSet()) {
+ if (Params_.TopicSettings.IsSet()) {
auto settings = Y();
#define INSERT_TOPIC_SETTING(NAME) \
- if (const auto& NAME##Val = Params.TopicSettings.NAME) { \
+ if (const auto& NAME##Val = Params_.TopicSettings.NAME) { \
if (NAME##Val.IsSet()) { \
settings = L(settings, Q(Y(Q(Y_STRINGIZE(set##NAME)), NAME##Val.GetValueSet()))); \
} else { \
@@ -1792,8 +1792,8 @@ public:
Add("block", Q(Y(
- Y("let", "sink", Y("DataSink", BuildQuotedAtom(Pos, TString(KikimrProviderName)),
- Scoped->WrapCluster(Topic.Cluster, ctx))),
+ Y("let", "sink", Y("DataSink", BuildQuotedAtom(Pos_, TString(KikimrProviderName)),
+ Scoped_->WrapCluster(Topic_.Cluster, ctx))),
Y("let", "world", Y(TString(WriteName), "world", "sink", keys, Y("Void"), Q(opts))),
Y("return", ctx.PragmaAutoCommit ? Y(TString(CommitName), "world", "sink") : AstNode("world"))
)));
@@ -1805,9 +1805,9 @@ public:
return {};
}
private:
- const TTopicRef Topic;
- const TCreateTopicParameters Params;
- TScopedStatePtr Scoped;
+ const TTopicRef Topic_;
+ const TCreateTopicParameters Params_;
+ TScopedStatePtr Scoped_;
};
TNodePtr BuildCreateTopic(
@@ -1820,43 +1820,43 @@ class TAlterTopicNode final : public TAstListNode {
public:
TAlterTopicNode(TPosition pos, const TTopicRef& tr, const TAlterTopicParameters& params, TScopedStatePtr scoped)
: TAstListNode(pos)
- , Topic(tr)
- , Params(params)
- , Scoped(scoped)
+ , Topic_(tr)
+ , Params_(params)
+ , Scoped_(scoped)
{
- scoped->UseCluster(TString(KikimrProviderName), Topic.Cluster);
+ scoped->UseCluster(TString(KikimrProviderName), Topic_.Cluster);
}
bool DoInit(TContext& ctx, ISource* src) override {
- auto keys = Topic.Keys->GetTableKeys()->BuildKeys(ctx, ITableKeys::EBuildKeysMode::CREATE);
+ auto keys = Topic_.Keys->GetTableKeys()->BuildKeys(ctx, ITableKeys::EBuildKeysMode::CREATE);
if (!keys || !keys->Init(ctx, src)) {
return false;
}
- if (!Params.AddConsumers.empty())
+ if (!Params_.AddConsumers.empty())
{
THashSet<TString> consumerNames;
- for (const auto& consumer : Params.AddConsumers) {
+ for (const auto& consumer : Params_.AddConsumers) {
if (!consumerNames.insert(consumer.Name.Name).second) {
ctx.Error(consumer.Name.Pos) << "Consumer " << consumer.Name.Name << " defined more than once";
return false;
}
}
}
- if (!Params.AlterConsumers.empty())
+ if (!Params_.AlterConsumers.empty())
{
THashSet<TString> consumerNames;
- for (const auto& [_, consumer] : Params.AlterConsumers) {
+ for (const auto& [_, consumer] : Params_.AlterConsumers) {
if (!consumerNames.insert(consumer.Name.Name).second) {
ctx.Error(consumer.Name.Pos) << "Consumer " << consumer.Name.Name << " altered more than once";
return false;
}
}
}
- if (!Params.DropConsumers.empty())
+ if (!Params_.DropConsumers.empty())
{
THashSet<TString> consumerNames;
- for (const auto& consumer : Params.DropConsumers) {
+ for (const auto& consumer : Params_.DropConsumers) {
if (!consumerNames.insert(consumer.Name).second) {
ctx.Error(consumer.Pos) << "Consumer " << consumer.Name << " dropped more than once";
return false;
@@ -1865,29 +1865,29 @@ public:
}
auto opts = Y();
- TString mode = Params.MissingOk ? "alter_if_exists" : "alter";
+ TString mode = Params_.MissingOk ? "alter_if_exists" : "alter";
opts = L(opts, Q(Y(Q("mode"), Q(mode))));
- for (const auto& consumer : Params.AddConsumers) {
+ for (const auto& consumer : Params_.AddConsumers) {
const auto& desc = CreateConsumerDesc(consumer, *this, false);
opts = L(opts, Q(Y(Q("addConsumer"), Q(desc))));
}
- for (const auto& [_, consumer] : Params.AlterConsumers) {
+ for (const auto& [_, consumer] : Params_.AlterConsumers) {
const auto& desc = CreateConsumerDesc(consumer, *this, true);
opts = L(opts, Q(Y(Q("alterConsumer"), Q(desc))));
}
- for (const auto& consumer : Params.DropConsumers) {
+ for (const auto& consumer : Params_.DropConsumers) {
const auto name = BuildQuotedAtom(consumer.Pos, consumer.Name);
opts = L(opts, Q(Y(Q("dropConsumer"), name)));
}
- if (Params.TopicSettings.IsSet()) {
+ if (Params_.TopicSettings.IsSet()) {
auto settings = Y();
#define INSERT_TOPIC_SETTING(NAME) \
- if (const auto& NAME##Val = Params.TopicSettings.NAME) { \
+ if (const auto& NAME##Val = Params_.TopicSettings.NAME) { \
if (NAME##Val.IsSet()) { \
settings = L(settings, Q(Y(Q(Y_STRINGIZE(set##NAME)), NAME##Val.GetValueSet()))); \
} else { \
@@ -1914,8 +1914,8 @@ public:
Add("block", Q(Y(
- Y("let", "sink", Y("DataSink", BuildQuotedAtom(Pos, TString(KikimrProviderName)),
- Scoped->WrapCluster(Topic.Cluster, ctx))),
+ Y("let", "sink", Y("DataSink", BuildQuotedAtom(Pos_, TString(KikimrProviderName)),
+ Scoped_->WrapCluster(Topic_.Cluster, ctx))),
Y("let", "world", Y(TString(WriteName), "world", "sink", keys, Y("Void"), Q(opts))),
Y("return", ctx.PragmaAutoCommit ? Y(TString(CommitName), "world", "sink") : AstNode("world"))
)));
@@ -1927,9 +1927,9 @@ public:
return {};
}
private:
- const TTopicRef Topic;
- const TAlterTopicParameters Params;
- TScopedStatePtr Scoped;
+ const TTopicRef Topic_;
+ const TAlterTopicParameters Params_;
+ TScopedStatePtr Scoped_;
};
TNodePtr BuildAlterTopic(
@@ -1942,44 +1942,44 @@ class TDropTopicNode final : public TAstListNode {
public:
TDropTopicNode(TPosition pos, const TTopicRef& tr, const TDropTopicParameters& params, TScopedStatePtr scoped)
: TAstListNode(pos)
- , Topic(tr)
- , Params(params)
- , Scoped(scoped)
+ , Topic_(tr)
+ , Params_(params)
+ , Scoped_(scoped)
{
- scoped->UseCluster(TString(KikimrProviderName), Topic.Cluster);
+ scoped->UseCluster(TString(KikimrProviderName), Topic_.Cluster);
}
bool DoInit(TContext& ctx, ISource* src) override {
Y_UNUSED(src);
- auto keys = Topic.Keys->GetTableKeys()->BuildKeys(ctx, ITableKeys::EBuildKeysMode::DROP);
- if (!keys || !keys->Init(ctx, FakeSource.Get())) {
+ auto keys = Topic_.Keys->GetTableKeys()->BuildKeys(ctx, ITableKeys::EBuildKeysMode::DROP);
+ if (!keys || !keys->Init(ctx, FakeSource_.Get())) {
return false;
}
auto opts = Y();
- TString mode = Params.MissingOk ? "drop_if_exists" : "drop";
+ TString mode = Params_.MissingOk ? "drop_if_exists" : "drop";
opts = L(opts, Q(Y(Q("mode"), Q(mode))));
Add("block", Q(Y(
- Y("let", "sink", Y("DataSink", BuildQuotedAtom(Pos, TString(KikimrProviderName)),
- Scoped->WrapCluster(Topic.Cluster, ctx))),
+ Y("let", "sink", Y("DataSink", BuildQuotedAtom(Pos_, TString(KikimrProviderName)),
+ Scoped_->WrapCluster(Topic_.Cluster, ctx))),
Y("let", "world", Y(TString(WriteName), "world", "sink", keys, Y("Void"), Q(opts))),
Y("return", ctx.PragmaAutoCommit ? Y(TString(CommitName), "world", "sink") : AstNode("world"))
)));
- return TAstListNode::DoInit(ctx, FakeSource.Get());
+ return TAstListNode::DoInit(ctx, FakeSource_.Get());
}
TPtr DoClone() const final {
return {};
}
private:
- TTopicRef Topic;
- TDropTopicParameters Params;
- TScopedStatePtr Scoped;
- TSourcePtr FakeSource;
+ TTopicRef Topic_;
+ TDropTopicParameters Params_;
+ TScopedStatePtr Scoped_;
+ TSourcePtr FakeSource_;
};
TNodePtr BuildDropTopic(TPosition pos, const TTopicRef& tr, const TDropTopicParameters& params, TScopedStatePtr scoped) {
@@ -1990,80 +1990,80 @@ class TControlUser final : public TAstListNode {
public:
TControlUser(TPosition pos, const TString& service, const TDeferredAtom& cluster, const TDeferredAtom& name, const TMaybe<TUserParameters>& params, TScopedStatePtr scoped, bool IsCreateUser)
: TAstListNode(pos)
- , Service(service)
- , Cluster(cluster)
- , Name(name)
- , Params(params)
- , Scoped(scoped)
- , IsCreateUser(IsCreateUser)
+ , Service_(service)
+ , Cluster_(cluster)
+ , Name_(name)
+ , Params_(params)
+ , Scoped_(scoped)
+ , IsCreateUser_(IsCreateUser)
{
- FakeSource = BuildFakeSource(pos);
+ FakeSource_ = BuildFakeSource(pos);
scoped->UseCluster(service, cluster);
}
bool DoInit(TContext& ctx, ISource*) override {
- auto name = Name.Build();
+ auto name = Name_.Build();
TNodePtr password;
TNodePtr hash;
- if (Params) {
- if (Params->Password) {
- password = Params->Password->Build();
- } else if (Params->Hash) {
- hash = Params->Hash->Build();
+ if (Params_) {
+ if (Params_->Password) {
+ password = Params_->Password->Build();
+ } else if (Params_->Hash) {
+ hash = Params_->Hash->Build();
}
}
- TNodePtr cluster = Scoped->WrapCluster(Cluster, ctx);
+ TNodePtr cluster = Scoped_->WrapCluster(Cluster_, ctx);
- if (!name->Init(ctx, FakeSource.Get())
- || !cluster->Init(ctx, FakeSource.Get())
- || password && !password->Init(ctx, FakeSource.Get())
- || hash && !hash->Init(ctx, FakeSource.Get())
+ if (!name->Init(ctx, FakeSource_.Get())
+ || !cluster->Init(ctx, FakeSource_.Get())
+ || password && !password->Init(ctx, FakeSource_.Get())
+ || hash && !hash->Init(ctx, FakeSource_.Get())
)
{
return false;
}
- auto options = Y(Q(Y(Q("mode"), Q(IsCreateUser ? "createUser" : "alterUser")))) ;
+ auto options = Y(Q(Y(Q("mode"), Q(IsCreateUser_ ? "createUser" : "alterUser")))) ;
TVector<TNodePtr> roles;
- if (Params && !Params->Roles.empty()) {
- for (auto& item : Params->Roles) {
+ if (Params_ && !Params_->Roles.empty()) {
+ for (auto& item : Params_->Roles) {
roles.push_back(item.Build());
- if (!roles.back()->Init(ctx, FakeSource.Get())) {
+ if (!roles.back()->Init(ctx, FakeSource_.Get())) {
return false;
}
}
- options = L(options, Q(Y(Q("roles"), Q(new TAstListNodeImpl(Pos, std::move(roles))))));
+ options = L(options, Q(Y(Q("roles"), Q(new TAstListNodeImpl(Pos_, std::move(roles))))));
}
- if (Params) {
- if (Params->IsPasswordEncrypted) {
+ if (Params_) {
+ if (Params_->IsPasswordEncrypted) {
options = L(options, Q(Y(Q("passwordEncrypted"))));
}
- if (Params->Password) {
+ if (Params_->Password) {
options = L(options, Q(Y(Q("password"), password)));
- } else if (Params->Hash) {
+ } else if (Params_->Hash) {
options = L(options, Q(Y(Q("hash"), hash)));
- } else if (Params->IsPasswordNull) {
+ } else if (Params_->IsPasswordNull) {
options = L(options, Q(Y(Q("nullPassword"))));
}
- if (Params->CanLogin.has_value()) {
- options = L(options, Q(Y(Q(Params->CanLogin.value() ? "login" : "noLogin"))));
+ if (Params_->CanLogin.has_value()) {
+ options = L(options, Q(Y(Q(Params_->CanLogin.value() ? "login" : "noLogin"))));
}
}
Add("block", Q(Y(
- Y("let", "sink", Y("DataSink", BuildQuotedAtom(Pos, Service), cluster)),
+ Y("let", "sink", Y("DataSink", BuildQuotedAtom(Pos_, Service_), cluster)),
Y("let", "world", Y(TString(WriteName), "world", "sink", Y("Key", Q(Y(Q("role"), Y("String", name)))), Y("Void"), Q(options))),
Y("return", ctx.PragmaAutoCommit ? Y(TString(CommitName), "world", "sink") : AstNode("world"))
)));
- return TAstListNode::DoInit(ctx, FakeSource.Get());
+ return TAstListNode::DoInit(ctx, FakeSource_.Get());
}
TPtr DoClone() const final {
@@ -2071,13 +2071,13 @@ public:
}
private:
- const TString Service;
- TDeferredAtom Cluster;
- TDeferredAtom Name;
- const TMaybe<TUserParameters> Params;
- TScopedStatePtr Scoped;
- TSourcePtr FakeSource;
- bool IsCreateUser;
+ const TString Service_;
+ TDeferredAtom Cluster_;
+ TDeferredAtom Name_;
+ const TMaybe<TUserParameters> Params_;
+ TScopedStatePtr Scoped_;
+ TSourcePtr FakeSource_;
+ bool IsCreateUser_;
};
TNodePtr BuildControlUser( TPosition pos,
@@ -2095,13 +2095,13 @@ class TCreateGroup final : public TAstListNode {
public:
TCreateGroup(TPosition pos, const TString& service, const TDeferredAtom& cluster, const TDeferredAtom& name, const TMaybe<TCreateGroupParameters>& params, TScopedStatePtr scoped)
: TAstListNode(pos)
- , Service(service)
- , Cluster(cluster)
- , Name(name)
- , Params(params)
- , Scoped(scoped)
+ , Service_(service)
+ , Cluster_(cluster)
+ , Name_(name)
+ , Params_(params)
+ , Scoped_(scoped)
{
- FakeSource = BuildFakeSource(pos);
+ FakeSource_ = BuildFakeSource(pos);
scoped->UseCluster(service, cluster);
}
@@ -2109,26 +2109,26 @@ public:
auto options = Y(Q(Y(Q("mode"), Q("createGroup"))));
TVector<TNodePtr> roles;
- if (Params && !Params->Roles.empty()) {
- for (auto& item : Params->Roles) {
+ if (Params_ && !Params_->Roles.empty()) {
+ for (auto& item : Params_->Roles) {
roles.push_back(item.Build());
- if (!roles.back()->Init(ctx, FakeSource.Get())) {
+ if (!roles.back()->Init(ctx, FakeSource_.Get())) {
return false;
}
}
- options = L(options, Q(Y(Q("roles"), Q(new TAstListNodeImpl(Pos, std::move(roles))))));
+ options = L(options, Q(Y(Q("roles"), Q(new TAstListNodeImpl(Pos_, std::move(roles))))));
}
- TNodePtr cluster = Scoped->WrapCluster(Cluster, ctx);
+ TNodePtr cluster = Scoped_->WrapCluster(Cluster_, ctx);
Add("block", Q(Y(
- Y("let", "sink", Y("DataSink", BuildQuotedAtom(Pos, Service), cluster)),
- Y("let", "world", Y(TString(WriteName), "world", "sink", Y("Key", Q(Y(Q("role"), Y("String", Name.Build())))), Y("Void"), Q(options))),
+ Y("let", "sink", Y("DataSink", BuildQuotedAtom(Pos_, Service_), cluster)),
+ Y("let", "world", Y(TString(WriteName), "world", "sink", Y("Key", Q(Y(Q("role"), Y("String", Name_.Build())))), Y("Void"), Q(options))),
Y("return", ctx.PragmaAutoCommit ? Y(TString(CommitName), "world", "sink") : AstNode("world"))
)));
- return TAstListNode::DoInit(ctx, FakeSource.Get());
+ return TAstListNode::DoInit(ctx, FakeSource_.Get());
}
TPtr DoClone() const final {
@@ -2136,12 +2136,12 @@ public:
}
private:
- const TString Service;
- TDeferredAtom Cluster;
- TDeferredAtom Name;
- const TMaybe<TCreateGroupParameters> Params;
- TScopedStatePtr Scoped;
- TSourcePtr FakeSource;
+ const TString Service_;
+ TDeferredAtom Cluster_;
+ TDeferredAtom Name_;
+ const TMaybe<TCreateGroupParameters> Params_;
+ TScopedStatePtr Scoped_;
+ TSourcePtr FakeSource_;
};
TNodePtr BuildCreateGroup(TPosition pos, const TString& service, const TDeferredAtom& cluster, const TDeferredAtom& name, const TMaybe<TCreateGroupParameters>& params, TScopedStatePtr scoped) {
@@ -2152,41 +2152,41 @@ class TAlterSequence final : public TAstListNode {
public:
TAlterSequence(TPosition pos, const TString& service, const TDeferredAtom& cluster, const TString& id, const TSequenceParameters& params, TScopedStatePtr scoped)
: TAstListNode(pos)
- , Service(service)
- , Cluster(cluster)
- , Id(id)
- , Params(params)
- , Scoped(scoped)
+ , Service_(service)
+ , Cluster_(cluster)
+ , Id_(id)
+ , Params_(params)
+ , Scoped_(scoped)
{
- FakeSource = BuildFakeSource(pos);
+ FakeSource_ = BuildFakeSource(pos);
scoped->UseCluster(service, cluster);
}
bool DoInit(TContext& ctx, ISource* src) override {
Y_UNUSED(src);
- TNodePtr cluster = Scoped->WrapCluster(Cluster, ctx);
+ TNodePtr cluster = Scoped_->WrapCluster(Cluster_, ctx);
- if (!cluster->Init(ctx, FakeSource.Get())) {
+ if (!cluster->Init(ctx, FakeSource_.Get())) {
return false;
}
auto options = Y();
- TString mode = Params.MissingOk ? "alter_if_exists" : "alter";
+ TString mode = Params_.MissingOk ? "alter_if_exists" : "alter";
options = L(options, Q(Y(Q("mode"), Q(mode))));
- if (Params.IsRestart) {
- if (Params.RestartValue) {
- TString strValue = Params.RestartValue->Build()->GetLiteralValue();
+ if (Params_.IsRestart) {
+ if (Params_.RestartValue) {
+ TString strValue = Params_.RestartValue->Build()->GetLiteralValue();
ui64 value = FromString<ui64>(strValue);
ui64 maxValue = ui64(std::numeric_limits<i64>::max());
ui64 minValue = 1;
if (value > maxValue) {
- ctx.Error(Pos) << "Restart value: " << value << " cannot be greater than max value: " << maxValue;
+ ctx.Error(Pos_) << "Restart value: " << value << " cannot be greater than max value: " << maxValue;
return false;
}
if (value < minValue) {
- ctx.Error(Pos) << "Restart value: " << value << " cannot be less than min value: " << minValue;
+ ctx.Error(Pos_) << "Restart value: " << value << " cannot be less than min value: " << minValue;
return false;
}
options = L(options, Q(Y(Q("restart"), Q(ToString(value)))));
@@ -2194,41 +2194,41 @@ public:
options = L(options, Q(Y(Q("restart"), Q(TString()))));
}
}
- if (Params.StartValue) {
- TString strValue = Params.StartValue->Build()->GetLiteralValue();
+ if (Params_.StartValue) {
+ TString strValue = Params_.StartValue->Build()->GetLiteralValue();
ui64 value = FromString<ui64>(strValue);
ui64 maxValue = ui64(std::numeric_limits<i64>::max());
ui64 minValue = 1;
if (value > maxValue) {
- ctx.Error(Pos) << "Start value: " << value << " cannot be greater than max value: " << maxValue;
+ ctx.Error(Pos_) << "Start value: " << value << " cannot be greater than max value: " << maxValue;
return false;
}
if (value < minValue) {
- ctx.Error(Pos) << "Start value: " << value << " cannot be less than min value: " << minValue;
+ ctx.Error(Pos_) << "Start value: " << value << " cannot be less than min value: " << minValue;
return false;
}
options = L(options, Q(Y(Q("start"), Q(ToString(value)))));
}
- if (Params.Increment) {
- TString strValue = Params.Increment->Build()->GetLiteralValue();
+ if (Params_.Increment) {
+ TString strValue = Params_.Increment->Build()->GetLiteralValue();
ui64 value = FromString<ui64>(strValue);
ui64 maxValue = ui64(std::numeric_limits<i64>::max());
if (value > maxValue) {
- ctx.Error(Pos) << "Increment: " << value << " cannot be greater than max value: " << maxValue;
+ ctx.Error(Pos_) << "Increment: " << value << " cannot be greater than max value: " << maxValue;
return false;
}
if (value == 0) {
- ctx.Error(Pos) << "Increment must not be zero";
+ ctx.Error(Pos_) << "Increment must not be zero";
return false;
}
options = L(options, Q(Y(Q("increment"), Q(ToString(value)))));
}
Add("block", Q(Y(
- Y("let", "sink", Y("DataSink", BuildQuotedAtom(Pos, TString(KikimrProviderName)),
- Scoped->WrapCluster(Cluster, ctx))),
- Y("let", "world", Y(TString(WriteName), "world", "sink", Y("Key", Q(Y(Q("sequence"), Y("String", BuildQuotedAtom(Pos, Id))))), Y("Void"), Q(options))),
+ Y("let", "sink", Y("DataSink", BuildQuotedAtom(Pos_, TString(KikimrProviderName)),
+ Scoped_->WrapCluster(Cluster_, ctx))),
+ Y("let", "world", Y(TString(WriteName), "world", "sink", Y("Key", Q(Y(Q("sequence"), Y("String", BuildQuotedAtom(Pos_, Id_))))), Y("Void"), Q(options))),
Y("return", ctx.PragmaAutoCommit ? Y(TString(CommitName), "world", "sink") : AstNode("world"))
)));
@@ -2239,13 +2239,13 @@ public:
return {};
}
private:
- const TString Service;
- TDeferredAtom Cluster;
- TString Id;
- const TSequenceParameters Params;
+ const TString Service_;
+ TDeferredAtom Cluster_;
+ TString Id_;
+ const TSequenceParameters Params_;
- TScopedStatePtr Scoped;
- TSourcePtr FakeSource;
+ TScopedStatePtr Scoped_;
+ TSourcePtr FakeSource_;
};
TNodePtr BuildAlterSequence(TPosition pos, const TString& service, const TDeferredAtom& cluster, const TString& id, const TSequenceParameters& params, TScopedStatePtr scoped) {
@@ -2256,53 +2256,53 @@ class TRenameRole final : public TAstListNode {
public:
TRenameRole(TPosition pos, bool isUser, const TString& service, const TDeferredAtom& cluster, const TDeferredAtom& name, const TDeferredAtom& newName, TScopedStatePtr scoped)
: TAstListNode(pos)
- , IsUser(isUser)
- , Service(service)
- , Cluster(cluster)
- , Name(name)
- , NewName(newName)
- , Scoped(scoped)
+ , IsUser_(isUser)
+ , Service_(service)
+ , Cluster_(cluster)
+ , Name_(name)
+ , NewName_(newName)
+ , Scoped_(scoped)
{
- FakeSource = BuildFakeSource(pos);
+ FakeSource_ = BuildFakeSource(pos);
scoped->UseCluster(service, cluster);
}
bool DoInit(TContext& ctx, ISource* src) override {
Y_UNUSED(src);
- auto name = Name.Build();
- auto newName = NewName.Build();
- TNodePtr cluster = Scoped->WrapCluster(Cluster, ctx);
+ auto name = Name_.Build();
+ auto newName = NewName_.Build();
+ TNodePtr cluster = Scoped_->WrapCluster(Cluster_, ctx);
- if (!name->Init(ctx, FakeSource.Get()) ||
- !newName->Init(ctx, FakeSource.Get()) ||
- !cluster->Init(ctx, FakeSource.Get()))
+ if (!name->Init(ctx, FakeSource_.Get()) ||
+ !newName->Init(ctx, FakeSource_.Get()) ||
+ !cluster->Init(ctx, FakeSource_.Get()))
{
return false;
}
- auto options = Y(Q(Y(Q("mode"), Q(IsUser ? "renameUser" : "renameGroup"))));
+ auto options = Y(Q(Y(Q("mode"), Q(IsUser_ ? "renameUser" : "renameGroup"))));
options = L(options, Q(Y(Q("newName"), newName)));
Add("block", Q(Y(
- Y("let", "sink", Y("DataSink", BuildQuotedAtom(Pos, Service), cluster)),
+ Y("let", "sink", Y("DataSink", BuildQuotedAtom(Pos_, Service_), cluster)),
Y("let", "world", Y(TString(WriteName), "world", "sink", Y("Key", Q(Y(Q("role"), Y("String", name)))), Y("Void"), Q(options))),
Y("return", ctx.PragmaAutoCommit ? Y(TString(CommitName), "world", "sink") : AstNode("world"))
)));
- return TAstListNode::DoInit(ctx, FakeSource.Get());
+ return TAstListNode::DoInit(ctx, FakeSource_.Get());
}
TPtr DoClone() const final {
return {};
}
private:
- const bool IsUser;
- const TString Service;
- TDeferredAtom Cluster;
- TDeferredAtom Name;
- TDeferredAtom NewName;
- TScopedStatePtr Scoped;
- TSourcePtr FakeSource;
+ const bool IsUser_;
+ const TString Service_;
+ TDeferredAtom Cluster_;
+ TDeferredAtom Name_;
+ TDeferredAtom NewName_;
+ TScopedStatePtr Scoped_;
+ TSourcePtr FakeSource_;
};
TNodePtr BuildRenameUser(TPosition pos, const TString& service, const TDeferredAtom& cluster, const TDeferredAtom& name, const TDeferredAtom& newName, TScopedStatePtr scoped) {
@@ -2319,57 +2319,57 @@ class TAlterGroup final : public TAstListNode {
public:
TAlterGroup(TPosition pos, const TString& service, const TDeferredAtom& cluster, const TDeferredAtom& name, const TVector<TDeferredAtom>& toChange, bool isDrop, TScopedStatePtr scoped)
: TAstListNode(pos)
- , Service(service)
- , Cluster(cluster)
- , Name(name)
- , ToChange(toChange)
- , IsDrop(isDrop)
- , Scoped(scoped)
+ , Service_(service)
+ , Cluster_(cluster)
+ , Name_(name)
+ , ToChange_(toChange)
+ , IsDrop_(isDrop)
+ , Scoped_(scoped)
{
- FakeSource = BuildFakeSource(pos);
+ FakeSource_ = BuildFakeSource(pos);
scoped->UseCluster(service, cluster);
}
bool DoInit(TContext& ctx, ISource* src) override {
Y_UNUSED(src);
- auto name = Name.Build();
- TNodePtr cluster = Scoped->WrapCluster(Cluster, ctx);
+ auto name = Name_.Build();
+ TNodePtr cluster = Scoped_->WrapCluster(Cluster_, ctx);
- if (!name->Init(ctx, FakeSource.Get()) || !cluster->Init(ctx, FakeSource.Get())) {
+ if (!name->Init(ctx, FakeSource_.Get()) || !cluster->Init(ctx, FakeSource_.Get())) {
return false;
}
TVector<TNodePtr> toChange;
- for (auto& item : ToChange) {
+ for (auto& item : ToChange_) {
toChange.push_back(item.Build());
- if (!toChange.back()->Init(ctx, FakeSource.Get())) {
+ if (!toChange.back()->Init(ctx, FakeSource_.Get())) {
return false;
}
}
- auto options = Y(Q(Y(Q("mode"), Q(IsDrop ? "dropUsersFromGroup" : "addUsersToGroup"))));
- options = L(options, Q(Y(Q("roles"), Q(new TAstListNodeImpl(Pos, std::move(toChange))))));
+ auto options = Y(Q(Y(Q("mode"), Q(IsDrop_ ? "dropUsersFromGroup" : "addUsersToGroup"))));
+ options = L(options, Q(Y(Q("roles"), Q(new TAstListNodeImpl(Pos_, std::move(toChange))))));
Add("block", Q(Y(
- Y("let", "sink", Y("DataSink", BuildQuotedAtom(Pos, Service), cluster)),
+ Y("let", "sink", Y("DataSink", BuildQuotedAtom(Pos_, Service_), cluster)),
Y("let", "world", Y(TString(WriteName), "world", "sink", Y("Key", Q(Y(Q("role"), Y("String", name)))), Y("Void"), Q(options))),
Y("return", ctx.PragmaAutoCommit ? Y(TString(CommitName), "world", "sink") : AstNode("world"))
)));
- return TAstListNode::DoInit(ctx, FakeSource.Get());
+ return TAstListNode::DoInit(ctx, FakeSource_.Get());
}
TPtr DoClone() const final {
return {};
}
private:
- const TString Service;
- TDeferredAtom Cluster;
- TDeferredAtom Name;
- TVector<TDeferredAtom> ToChange;
- const bool IsDrop;
- TScopedStatePtr Scoped;
- TSourcePtr FakeSource;
+ const TString Service_;
+ TDeferredAtom Cluster_;
+ TDeferredAtom Name_;
+ TVector<TDeferredAtom> ToChange_;
+ const bool IsDrop_;
+ TScopedStatePtr Scoped_;
+ TSourcePtr FakeSource_;
};
TNodePtr BuildAlterGroup(TPosition pos, const TString& service, const TDeferredAtom& cluster, const TDeferredAtom& name, const TVector<TDeferredAtom>& toChange, bool isDrop,
@@ -2382,35 +2382,35 @@ class TDropRoles final : public TAstListNode {
public:
TDropRoles(TPosition pos, const TString& service, const TDeferredAtom& cluster, const TVector<TDeferredAtom>& toDrop, bool isUser, bool missingOk, TScopedStatePtr scoped)
: TAstListNode(pos)
- , Service(service)
- , Cluster(cluster)
- , ToDrop(toDrop)
- , IsUser(isUser)
- , MissingOk(missingOk)
- , Scoped(scoped)
+ , Service_(service)
+ , Cluster_(cluster)
+ , ToDrop_(toDrop)
+ , IsUser_(isUser)
+ , MissingOk_(missingOk)
+ , Scoped_(scoped)
{
- FakeSource = BuildFakeSource(pos);
+ FakeSource_ = BuildFakeSource(pos);
scoped->UseCluster(service, cluster);
}
bool DoInit(TContext& ctx, ISource* src) override {
Y_UNUSED(src);
- TNodePtr cluster = Scoped->WrapCluster(Cluster, ctx);
+ TNodePtr cluster = Scoped_->WrapCluster(Cluster_, ctx);
- if (!cluster->Init(ctx, FakeSource.Get())) {
+ if (!cluster->Init(ctx, FakeSource_.Get())) {
return false;
}
- const char* mode = IsUser ?
- (MissingOk ? "dropUserIfExists" : "dropUser") :
- (MissingOk ? "dropGroupIfExists" : "dropGroup");
+ const char* mode = IsUser_ ?
+ (MissingOk_ ? "dropUserIfExists" : "dropUser") :
+ (MissingOk_ ? "dropGroupIfExists" : "dropGroup");
auto options = Y(Q(Y(Q("mode"), Q(mode))));
- auto block = Y(Y("let", "sink", Y("DataSink", BuildQuotedAtom(Pos, Service), cluster)));
- for (auto& item : ToDrop) {
+ auto block = Y(Y("let", "sink", Y("DataSink", BuildQuotedAtom(Pos_, Service_), cluster)));
+ for (auto& item : ToDrop_) {
auto name = item.Build();
- if (!name->Init(ctx, FakeSource.Get())) {
+ if (!name->Init(ctx, FakeSource_.Get())) {
return false;
}
@@ -2419,20 +2419,20 @@ public:
block = L(block, Y("return", ctx.PragmaAutoCommit ? Y(TString(CommitName), "world", "sink") : AstNode("world")));
Add("block", Q(block));
- return TAstListNode::DoInit(ctx, FakeSource.Get());
+ return TAstListNode::DoInit(ctx, FakeSource_.Get());
}
TPtr DoClone() const final {
return {};
}
private:
- const TString Service;
- TDeferredAtom Cluster;
- TVector<TDeferredAtom> ToDrop;
- const bool IsUser;
- const bool MissingOk;
- TScopedStatePtr Scoped;
- TSourcePtr FakeSource;
+ const TString Service_;
+ TDeferredAtom Cluster_;
+ TVector<TDeferredAtom> ToDrop_;
+ const bool IsUser_;
+ const bool MissingOk_;
+ TScopedStatePtr Scoped_;
+ TSourcePtr FakeSource_;
};
TNodePtr BuildUpsertObjectOperation(TPosition pos, const TString& objectId, const TString& typeId,
@@ -2469,62 +2469,62 @@ public:
TPermissionsAction(TPosition pos, const TString& service, const TDeferredAtom& cluster, const TPermissionParameters& parameters, TScopedStatePtr scoped)
: TAstListNode(pos)
- , Service(service)
- , Cluster(cluster)
- , Parameters(parameters)
- , Scoped(scoped)
+ , Service_(service)
+ , Cluster_(cluster)
+ , Parameters_(parameters)
+ , Scoped_(scoped)
{
- FakeSource = BuildFakeSource(pos);
+ FakeSource_ = BuildFakeSource(pos);
scoped->UseCluster(service, cluster);
}
bool DoInit(TContext& ctx, ISource* src) override {
Y_UNUSED(src);
- TNodePtr cluster = Scoped->WrapCluster(Cluster, ctx);
- TNodePtr permissionAction = TDeferredAtom(Pos, Parameters.PermissionAction).Build();
+ TNodePtr cluster = Scoped_->WrapCluster(Cluster_, ctx);
+ TNodePtr permissionAction = TDeferredAtom(Pos_, Parameters_.PermissionAction).Build();
- if (!permissionAction->Init(ctx, FakeSource.Get()) ||
- !cluster->Init(ctx, FakeSource.Get())) {
+ if (!permissionAction->Init(ctx, FakeSource_.Get()) ||
+ !cluster->Init(ctx, FakeSource_.Get())) {
return false;
}
TVector<TNodePtr> paths;
- paths.reserve(Parameters.SchemaPaths.size());
- for (auto& item : Parameters.SchemaPaths) {
+ paths.reserve(Parameters_.SchemaPaths.size());
+ for (auto& item : Parameters_.SchemaPaths) {
paths.push_back(item.Build());
- if (!paths.back()->Init(ctx, FakeSource.Get())) {
+ if (!paths.back()->Init(ctx, FakeSource_.Get())) {
return false;
}
}
- auto options = Y(Q(Y(Q("paths"), Q(new TAstListNodeImpl(Pos, std::move(paths))))));
+ auto options = Y(Q(Y(Q("paths"), Q(new TAstListNodeImpl(Pos_, std::move(paths))))));
TVector<TNodePtr> permissions;
- permissions.reserve(Parameters.Permissions.size());
- for (auto& item : Parameters.Permissions) {
+ permissions.reserve(Parameters_.Permissions.size());
+ for (auto& item : Parameters_.Permissions) {
permissions.push_back(item.Build());
- if (!permissions.back()->Init(ctx, FakeSource.Get())) {
+ if (!permissions.back()->Init(ctx, FakeSource_.Get())) {
return false;
}
}
- options = L(options, Q(Y(Q("permissions"), Q(new TAstListNodeImpl(Pos, std::move(permissions))))));
+ options = L(options, Q(Y(Q("permissions"), Q(new TAstListNodeImpl(Pos_, std::move(permissions))))));
TVector<TNodePtr> roles;
- roles.reserve(Parameters.RoleNames.size());
- for (auto& item : Parameters.RoleNames) {
+ roles.reserve(Parameters_.RoleNames.size());
+ for (auto& item : Parameters_.RoleNames) {
roles.push_back(item.Build());
- if (!roles.back()->Init(ctx, FakeSource.Get())) {
+ if (!roles.back()->Init(ctx, FakeSource_.Get())) {
return false;
}
}
- options = L(options, Q(Y(Q("roles"), Q(new TAstListNodeImpl(Pos, std::move(roles))))));
+ options = L(options, Q(Y(Q("roles"), Q(new TAstListNodeImpl(Pos_, std::move(roles))))));
- auto block = Y(Y("let", "sink", Y("DataSink", BuildQuotedAtom(Pos, Service), cluster)));
+ auto block = Y(Y("let", "sink", Y("DataSink", BuildQuotedAtom(Pos_, Service_), cluster)));
block = L(block, Y("let", "world", Y(TString(WriteName), "world", "sink", Y("Key", Q(Y(Q("permission"), Y("String", permissionAction)))), Y("Void"), Q(options))));
block = L(block, Y("return", ctx.PragmaAutoCommit ? Y(TString(CommitName), "world", "sink") : AstNode("world")));
Add("block", Q(block));
- return TAstListNode::DoInit(ctx, FakeSource.Get());
+ return TAstListNode::DoInit(ctx, FakeSource_.Get());
}
TPtr DoClone() const final {
@@ -2532,11 +2532,11 @@ public:
}
private:
- const TString Service;
- TDeferredAtom Cluster;
- TPermissionParameters Parameters;
- TScopedStatePtr Scoped;
- TSourcePtr FakeSource;
+ const TString Service_;
+ TDeferredAtom Cluster_;
+ TPermissionParameters Parameters_;
+ TScopedStatePtr Scoped_;
+ TSourcePtr FakeSource_;
};
TNodePtr BuildGrantPermissions(TPosition pos, const TString& service, const TDeferredAtom& cluster, const TVector<TDeferredAtom>& permissions, const TVector<TDeferredAtom>& schemaPaths, const TVector<TDeferredAtom>& roleNames, TScopedStatePtr scoped) {
@@ -2572,19 +2572,19 @@ public:
explicit TAsyncReplication(TPosition pos, const TString& id, const TString& mode, const TObjectOperatorContext& context)
: TAstListNode(pos)
, TObjectOperatorContext(context)
- , Id(id)
- , Mode(mode)
+ , Id_(id)
+ , Mode_(mode)
{
}
bool DoInit(TContext& ctx, ISource* src) override {
- Scoped->UseCluster(ServiceId, Cluster);
+ Scoped_->UseCluster(ServiceId, Cluster);
- auto keys = Y("Key", Q(Y(Q("replication"), Y("String", BuildQuotedAtom(Pos, Id)))));
- auto options = FillOptions(Y(Q(Y(Q("mode"), Q(Mode)))));
+ auto keys = Y("Key", Q(Y(Q("replication"), Y("String", BuildQuotedAtom(Pos_, Id_)))));
+ auto options = FillOptions(Y(Q(Y(Q("mode"), Q(Mode_)))));
Add("block", Q(Y(
- Y("let", "sink", Y("DataSink", BuildQuotedAtom(Pos, ServiceId), Scoped->WrapCluster(Cluster, ctx))),
+ Y("let", "sink", Y("DataSink", BuildQuotedAtom(Pos_, ServiceId), Scoped_->WrapCluster(Cluster, ctx))),
Y("let", "world", Y(TString(WriteName), "world", "sink", keys, Y("Void"), Q(options))),
Y("return", ctx.PragmaAutoCommit ? Y(TString(CommitName), "world", "sink") : AstNode("world"))
)));
@@ -2597,8 +2597,8 @@ public:
}
private:
- const TString Id;
- const TString Mode;
+ const TString Id_;
+ const TString Mode_;
}; // TAsyncReplication
@@ -2609,16 +2609,16 @@ public:
std::map<TString, TNodePtr>&& settings,
const TObjectOperatorContext& context)
: TAsyncReplication(pos, id, "create", context)
- , Targets(std::move(targets))
- , Settings(std::move(settings))
+ , Targets_(std::move(targets))
+ , Settings_(std::move(settings))
{
}
protected:
INode::TPtr FillOptions(INode::TPtr options) const override {
- if (!Targets.empty()) {
+ if (!Targets_.empty()) {
auto targets = Y();
- for (auto&& [remote, local] : Targets) {
+ for (auto&& [remote, local] : Targets_) {
auto target = Y();
target = L(target, Q(Y(Q("remote"), Q(remote))));
target = L(target, Q(Y(Q("local"), Q(local))));
@@ -2627,13 +2627,13 @@ protected:
options = L(options, Q(Y(Q("targets"), Q(targets))));
}
- if (!Settings.empty()) {
+ if (!Settings_.empty()) {
auto settings = Y();
- for (auto&& [k, v] : Settings) {
+ for (auto&& [k, v] : Settings_) {
if (v) {
- settings = L(settings, Q(Y(BuildQuotedAtom(Pos, k), v)));
+ settings = L(settings, Q(Y(BuildQuotedAtom(Pos_, k), v)));
} else {
- settings = L(settings, Q(Y(BuildQuotedAtom(Pos, k))));
+ settings = L(settings, Q(Y(BuildQuotedAtom(Pos_, k))));
}
}
options = L(options, Q(Y(Q("settings"), Q(settings))));
@@ -2643,8 +2643,8 @@ protected:
}
private:
- std::vector<std::pair<TString, TString>> Targets; // (remote, local)
- std::map<TString, TNodePtr> Settings;
+ std::vector<std::pair<TString, TString>> Targets_; // (remote, local)
+ std::map<TString, TNodePtr> Settings_;
}; // TCreateAsyncReplication
@@ -2680,19 +2680,19 @@ public:
std::map<TString, TNodePtr>&& settings,
const TObjectOperatorContext& context)
: TAsyncReplication(pos, id, "alter", context)
- , Settings(std::move(settings))
+ , Settings_(std::move(settings))
{
}
protected:
INode::TPtr FillOptions(INode::TPtr options) const override {
- if (!Settings.empty()) {
+ if (!Settings_.empty()) {
auto settings = Y();
- for (auto&& [k, v] : Settings) {
+ for (auto&& [k, v] : Settings_) {
if (v) {
- settings = L(settings, Q(Y(BuildQuotedAtom(Pos, k), v)));
+ settings = L(settings, Q(Y(BuildQuotedAtom(Pos_, k), v)));
} else {
- settings = L(settings, Q(Y(BuildQuotedAtom(Pos, k))));
+ settings = L(settings, Q(Y(BuildQuotedAtom(Pos_, k))));
}
}
options = L(options, Q(Y(Q("settings"), Q(settings))));
@@ -2702,7 +2702,7 @@ protected:
}
private:
- std::map<TString, TNodePtr> Settings;
+ std::map<TString, TNodePtr> Settings_;
}; // TAlterAsyncReplication
@@ -2724,19 +2724,19 @@ public:
explicit TTransfer(TPosition pos, const TString& id, const TString& mode, const TObjectOperatorContext& context)
: TAstListNode(pos)
, TObjectOperatorContext(context)
- , Id(id)
- , Mode(mode)
+ , Id_(id)
+ , Mode_(mode)
{
}
bool DoInit(TContext& ctx, ISource* src) override {
- Scoped->UseCluster(ServiceId, Cluster);
+ Scoped_->UseCluster(ServiceId, Cluster);
- auto keys = Y("Key", Q(Y(Q("transfer"), Y("String", BuildQuotedAtom(Pos, Id)))));
- auto options = FillOptions(Y(Q(Y(Q("mode"), Q(Mode)))));
+ auto keys = Y("Key", Q(Y(Q("transfer"), Y("String", BuildQuotedAtom(Pos_, Id_)))));
+ auto options = FillOptions(Y(Q(Y(Q("mode"), Q(Mode_)))));
Add("block", Q(Y(
- Y("let", "sink", Y("DataSink", BuildQuotedAtom(Pos, ServiceId), Scoped->WrapCluster(Cluster, ctx))),
+ Y("let", "sink", Y("DataSink", BuildQuotedAtom(Pos_, ServiceId), Scoped_->WrapCluster(Cluster, ctx))),
Y("let", "world", Y(TString(WriteName), "world", "sink", keys, Y("Void"), Q(options))),
Y("return", ctx.PragmaAutoCommit ? Y(TString(CommitName), "world", "sink") : AstNode("world"))
)));
@@ -2749,8 +2749,8 @@ public:
}
private:
- const TString Id;
- const TString Mode;
+ const TString Id_;
+ const TString Mode_;
}; // TTransfer
@@ -2761,26 +2761,26 @@ public:
std::map<TString, TNodePtr>&& settings,
const TObjectOperatorContext& context)
: TTransfer(pos, id, "create", context)
- , Source(std::move(source))
- , Target(std::move(target))
- , TransformLambda(std::move(transformLambda))
- , Settings(std::move(settings))
+ , Source_(std::move(source))
+ , Target_(std::move(target))
+ , TransformLambda_(std::move(transformLambda))
+ , Settings_(std::move(settings))
{
}
protected:
INode::TPtr FillOptions(INode::TPtr options) const override {
- options = L(options, Q(Y(Q("source"), Q(Source))));
- options = L(options, Q(Y(Q("target"), Q(Target))));
- options = L(options, Q(Y(Q("transformLambda"), Q(TransformLambda))));
+ options = L(options, Q(Y(Q("source"), Q(Source_))));
+ options = L(options, Q(Y(Q("target"), Q(Target_))));
+ options = L(options, Q(Y(Q("transformLambda"), Q(TransformLambda_))));
- if (!Settings.empty()) {
+ if (!Settings_.empty()) {
auto settings = Y();
- for (auto&& [k, v] : Settings) {
+ for (auto&& [k, v] : Settings_) {
if (v) {
- settings = L(settings, Q(Y(BuildQuotedAtom(Pos, k), v)));
+ settings = L(settings, Q(Y(BuildQuotedAtom(Pos_, k), v)));
} else {
- settings = L(settings, Q(Y(BuildQuotedAtom(Pos, k))));
+ settings = L(settings, Q(Y(BuildQuotedAtom(Pos_, k))));
}
}
options = L(options, Q(Y(Q("settings"), Q(settings))));
@@ -2790,10 +2790,10 @@ protected:
}
private:
- const TString Source;
- const TString Target;
- const TString TransformLambda;
- std::map<TString, TNodePtr> Settings;
+ const TString Source_;
+ const TString Target_;
+ const TString TransformLambda_;
+ std::map<TString, TNodePtr> Settings_;
}; // TCreateTransfer
@@ -2829,22 +2829,22 @@ public:
std::map<TString, TNodePtr>&& settings,
const TObjectOperatorContext& context)
: TTransfer(pos, id, "alter", context)
- , TransformLambda(std::move(transformLambda))
- , Settings(std::move(settings))
+ , TransformLambda_(std::move(transformLambda))
+ , Settings_(std::move(settings))
{
}
protected:
INode::TPtr FillOptions(INode::TPtr options) const override {
- options = L(options, Q(Y(Q("transformLambda"), Q(TransformLambda ? TransformLambda.value() : ""))));
+ options = L(options, Q(Y(Q("transformLambda"), Q(TransformLambda_ ? TransformLambda_.value() : ""))));
- if (!Settings.empty()) {
+ if (!Settings_.empty()) {
auto settings = Y();
- for (auto&& [k, v] : Settings) {
+ for (auto&& [k, v] : Settings_) {
if (v) {
- settings = L(settings, Q(Y(BuildQuotedAtom(Pos, k), v)));
+ settings = L(settings, Q(Y(BuildQuotedAtom(Pos_, k), v)));
} else {
- settings = L(settings, Q(Y(BuildQuotedAtom(Pos, k))));
+ settings = L(settings, Q(Y(BuildQuotedAtom(Pos_, k))));
}
}
options = L(options, Q(Y(Q("settings"), Q(settings))));
@@ -2854,8 +2854,8 @@ protected:
}
private:
- const std::optional<TString> TransformLambda;
- std::map<TString, TNodePtr> Settings;
+ const std::optional<TString> TransformLambda_;
+ std::map<TString, TNodePtr> Settings_;
}; // TAlterTransfer
@@ -2895,17 +2895,17 @@ public:
TWriteTableNode(TPosition pos, const TString& label, const TTableRef& table, EWriteColumnMode mode,
TNodePtr options, TScopedStatePtr scoped)
: TAstListNode(pos)
- , Label(label)
- , Table(table)
- , Mode(mode)
- , Options(options)
- , Scoped(scoped)
+ , Label_(label)
+ , Table_(table)
+ , Mode_(mode)
+ , Options_(options)
+ , Scoped_(scoped)
{
- scoped->UseCluster(Table.Service, Table.Cluster);
+ scoped->UseCluster(Table_.Service, Table_.Cluster);
}
bool DoInit(TContext& ctx, ISource* src) override {
- auto keys = Table.Keys->GetTableKeys()->BuildKeys(ctx, ITableKeys::EBuildKeysMode::WRITE);
+ auto keys = Table_.Keys->GetTableKeys()->BuildKeys(ctx, ITableKeys::EBuildKeysMode::WRITE);
if (!keys || !keys->Init(ctx, src)) {
return false;
}
@@ -2921,23 +2921,23 @@ public:
};
auto options = Y();
- if (Options) {
- if (!Options->Init(ctx, src)) {
+ if (Options_) {
+ if (!Options_->Init(ctx, src)) {
return false;
}
- options = L(Options);
+ options = L(Options_);
}
- if (Mode != EWriteColumnMode::Default) {
- auto modeStr = getModesMap(Table.Service).FindPtr(Mode);
+ if (Mode_ != EWriteColumnMode::Default) {
+ auto modeStr = getModesMap(Table_.Service).FindPtr(Mode_);
options->Add(Q(Y(Q("mode"), Q(modeStr ? *modeStr : "unsupported"))));
}
Add("block", Q((Y(
- Y("let", "sink", Y("DataSink", BuildQuotedAtom(Pos, Table.Service), Scoped->WrapCluster(Table.Cluster, ctx))),
- Y("let", "world", Y(TString(WriteName), "world", "sink", keys, Label, Q(options))),
+ Y("let", "sink", Y("DataSink", BuildQuotedAtom(Pos_, Table_.Service), Scoped_->WrapCluster(Table_.Cluster, ctx))),
+ Y("let", "world", Y(TString(WriteName), "world", "sink", keys, Label_, Q(options))),
Y("return", ctx.PragmaAutoCommit ? Y(TString(CommitName), "world", "sink") : AstNode("world"))
))));
@@ -2948,11 +2948,11 @@ public:
return {};
}
private:
- TString Label;
- TTableRef Table;
- EWriteColumnMode Mode;
- TNodePtr Options;
- TScopedStatePtr Scoped;
+ TString Label_;
+ TTableRef Table_;
+ EWriteColumnMode Mode_;
+ TNodePtr Options_;
+ TScopedStatePtr Scoped_;
};
TNodePtr BuildWriteTable(TPosition pos, const TString& label, const TTableRef& table, EWriteColumnMode mode, TNodePtr options,
@@ -3025,18 +3025,18 @@ class TWriteResultNode final : public TAstListNode {
public:
TWriteResultNode(TPosition pos, const TString& label, TNodePtr settings)
: TAstListNode(pos)
- , Label(label)
- , Settings(settings)
- , CommitClusters(BuildCommitClusters(Pos))
+ , Label_(label)
+ , Settings_(settings)
+ , CommitClusters_(BuildCommitClusters(Pos_))
{}
bool DoInit(TContext& ctx, ISource* src) override {
auto block(Y(
Y("let", "result_sink", Y("DataSink", Q(TString(ResultProviderName)))),
- Y("let", "world", Y(TString(WriteName), "world", "result_sink", Y("Key"), Label, Q(Settings)))
+ Y("let", "world", Y(TString(WriteName), "world", "result_sink", Y("Key"), Label_, Q(Settings_)))
));
if (ctx.PragmaAutoCommit) {
- block = L(block, Y("let", "world", CommitClusters));
+ block = L(block, Y("let", "world", CommitClusters_));
}
block = L(block, Y("return", Y(TString(CommitName), "world", "result_sink")));
@@ -3048,9 +3048,9 @@ public:
return {};
}
private:
- TString Label;
- TNodePtr Settings;
- TNodePtr CommitClusters;
+ TString Label_;
+ TNodePtr Settings_;
+ TNodePtr CommitClusters_;
};
TNodePtr BuildWriteResult(TPosition pos, const TString& label, TNodePtr settings) {
@@ -3061,23 +3061,23 @@ class TYqlProgramNode : public TAstListNode {
public:
TYqlProgramNode(TPosition pos, const TVector<TNodePtr>& blocks, bool topLevel, TScopedStatePtr scoped, bool useSeq)
: TAstListNode(pos)
- , Blocks(blocks)
- , TopLevel(topLevel)
- , Scoped(scoped)
- , UseSeq(useSeq)
+ , Blocks_(blocks)
+ , TopLevel_(topLevel)
+ , Scoped_(scoped)
+ , UseSeq_(useSeq)
{}
bool DoInit(TContext& ctx, ISource* src) override {
bool hasError = false;
INode::TPtr currentWorldsHolder;
INode::TPtr seqNode;
- if (UseSeq) {
+ if (UseSeq_) {
currentWorldsHolder = new TAstListNodeImpl(GetPos());
seqNode = new TAstListNodeImpl(GetPos());
seqNode->Add("Seq!","world");
}
- INode* currentWorlds = UseSeq ? currentWorldsHolder.Get() : this;
+ INode* currentWorlds = UseSeq_ ? currentWorldsHolder.Get() : this;
auto flushCurrentWorlds = [&](bool changeSeq, bool finish) {
currentWorldsHolder->Add(Y("return","world"));
auto lambda = BuildLambda(GetPos(), Y("world"), Y("block", Q(currentWorldsHolder)));
@@ -3097,7 +3097,7 @@ public:
}
};
- if (TopLevel) {
+ if (TopLevel_) {
for (auto& var: ctx.Variables) {
if (!var.second.second->Init(ctx, src)) {
hasError = true;
@@ -3153,26 +3153,26 @@ public:
}
for (const auto& p : ctx.PackageVersions) {
- Add(Y("set_package_version", BuildQuotedAtom(Pos, p.first), BuildQuotedAtom(Pos, ToString(p.second))));
+ Add(Y("set_package_version", BuildQuotedAtom(Pos_, p.first), BuildQuotedAtom(Pos_, ToString(p.second))));
}
- Add(Y("import", "aggregate_module", BuildQuotedAtom(Pos, "/lib/yql/aggregate.yqls")));
- Add(Y("import", "window_module", BuildQuotedAtom(Pos, "/lib/yql/window.yqls")));
+ Add(Y("import", "aggregate_module", BuildQuotedAtom(Pos_, "/lib/yql/aggregate.yqls")));
+ Add(Y("import", "window_module", BuildQuotedAtom(Pos_, "/lib/yql/window.yqls")));
for (const auto& module : ctx.Settings.ModuleMapping) {
TString moduleName(module.first + "_module");
moduleName.to_lower();
- Add(Y("import", moduleName, BuildQuotedAtom(Pos, module.second)));
+ Add(Y("import", moduleName, BuildQuotedAtom(Pos_, module.second)));
}
for (const auto& moduleAlias : ctx.ImportModuleAliases) {
- Add(Y("import", moduleAlias.second, BuildQuotedAtom(Pos, moduleAlias.first)));
+ Add(Y("import", moduleAlias.second, BuildQuotedAtom(Pos_, moduleAlias.first)));
}
for (const auto& x : ctx.SimpleUdfs) {
- Add(Y("let", x.second, Y("Udf", BuildQuotedAtom(Pos, x.first))));
+ Add(Y("let", x.second, Y("Udf", BuildQuotedAtom(Pos_, x.first))));
}
if (!ctx.CompactNamedExprs) {
- for (auto& nodes: Scoped->NamedNodes) {
+ for (auto& nodes: Scoped_->NamedNodes) {
if (src || ctx.Exports.contains(nodes.first)) {
auto& item = nodes.second.front();
if (!item->Node->Init(ctx, src)) {
@@ -3189,43 +3189,43 @@ public:
}
if (ctx.Settings.Mode != NSQLTranslation::ESqlMode::LIBRARY) {
- auto configSource = Y("DataSource", BuildQuotedAtom(Pos, TString(ConfigProviderName)));
- auto resultSink = Y("DataSink", BuildQuotedAtom(Pos, TString(ResultProviderName)));
+ auto configSource = Y("DataSource", BuildQuotedAtom(Pos_, TString(ConfigProviderName)));
+ auto resultSink = Y("DataSink", BuildQuotedAtom(Pos_, TString(ResultProviderName)));
for (const auto& warningPragma : ctx.WarningPolicy.GetRules()) {
currentWorlds->Add(Y("let", "world", Y(TString(ConfigureName), "world", configSource,
- BuildQuotedAtom(Pos, "Warning"), BuildQuotedAtom(Pos, warningPragma.GetPattern()),
- BuildQuotedAtom(Pos, to_lower(ToString(warningPragma.GetAction()))))));
+ BuildQuotedAtom(Pos_, "Warning"), BuildQuotedAtom(Pos_, warningPragma.GetPattern()),
+ BuildQuotedAtom(Pos_, to_lower(ToString(warningPragma.GetAction()))))));
}
if (ctx.RuntimeLogLevel) {
currentWorlds->Add(Y("let", "world", Y(TString(ConfigureName), "world", configSource,
- BuildQuotedAtom(Pos, "RuntimeLogLevel"), BuildQuotedAtom(Pos, ctx.RuntimeLogLevel))));
+ BuildQuotedAtom(Pos_, "RuntimeLogLevel"), BuildQuotedAtom(Pos_, ctx.RuntimeLogLevel))));
}
if (ctx.ResultSizeLimit > 0) {
currentWorlds->Add(Y("let", "world", Y(TString(ConfigureName), "world", resultSink,
- BuildQuotedAtom(Pos, "SizeLimit"), BuildQuotedAtom(Pos, ToString(ctx.ResultSizeLimit)))));
+ BuildQuotedAtom(Pos_, "SizeLimit"), BuildQuotedAtom(Pos_, ToString(ctx.ResultSizeLimit)))));
}
if (!ctx.PragmaPullUpFlatMapOverJoin) {
currentWorlds->Add(Y("let", "world", Y(TString(ConfigureName), "world", configSource,
- BuildQuotedAtom(Pos, "DisablePullUpFlatMapOverJoin"))));
+ BuildQuotedAtom(Pos_, "DisablePullUpFlatMapOverJoin"))));
}
if (ctx.FilterPushdownOverJoinOptionalSide) {
currentWorlds->Add(Y("let", "world", Y(TString(ConfigureName), "world", configSource,
- BuildQuotedAtom(Pos, "FilterPushdownOverJoinOptionalSide"))));
+ BuildQuotedAtom(Pos_, "FilterPushdownOverJoinOptionalSide"))));
}
if (!ctx.RotateJoinTree) {
currentWorlds->Add(Y("let", "world", Y(TString(ConfigureName), "world", configSource,
- BuildQuotedAtom(Pos, "RotateJoinTree"), BuildQuotedAtom(Pos, "false"))));
+ BuildQuotedAtom(Pos_, "RotateJoinTree"), BuildQuotedAtom(Pos_, "false"))));
}
if (ctx.DiscoveryMode) {
currentWorlds->Add(Y("let", "world", Y(TString(ConfigureName), "world", configSource,
- BuildQuotedAtom(Pos, "DiscoveryMode"))));
+ BuildQuotedAtom(Pos_, "DiscoveryMode"))));
}
if (ctx.DqEngineEnable) {
@@ -3236,12 +3236,12 @@ public:
mode = "force";
}
currentWorlds->Add(Y("let", "world", Y(TString(ConfigureName), "world", configSource,
- BuildQuotedAtom(Pos, "DqEngine"), BuildQuotedAtom(Pos, mode))));
+ BuildQuotedAtom(Pos_, "DqEngine"), BuildQuotedAtom(Pos_, mode))));
}
if (ctx.CostBasedOptimizer) {
currentWorlds->Add(Y("let", "world", Y(TString(ConfigureName), "world", configSource,
- BuildQuotedAtom(Pos, "CostBasedOptimizer"), BuildQuotedAtom(Pos, ctx.CostBasedOptimizer))));
+ BuildQuotedAtom(Pos_, "CostBasedOptimizer"), BuildQuotedAtom(Pos_, ctx.CostBasedOptimizer))));
}
if (ctx.JsonQueryReturnsJsonDocument.Defined()) {
@@ -3250,59 +3250,59 @@ public:
pragmaName = "JsonQueryReturnsJsonDocument";
}
- currentWorlds->Add(Y("let", "world", Y(TString(ConfigureName), "world", configSource, BuildQuotedAtom(Pos, pragmaName))));
+ currentWorlds->Add(Y("let", "world", Y(TString(ConfigureName), "world", configSource, BuildQuotedAtom(Pos_, pragmaName))));
}
if (ctx.OrderedColumns) {
currentWorlds->Add(Y("let", "world", Y(TString(ConfigureName), "world", configSource,
- BuildQuotedAtom(Pos, "OrderedColumns"))));
+ BuildQuotedAtom(Pos_, "OrderedColumns"))));
}
if (ctx.DeriveColumnOrder) {
currentWorlds->Add(Y("let", "world", Y(TString(ConfigureName), "world", configSource,
- BuildQuotedAtom(Pos, "DeriveColumnOrder"))));
+ BuildQuotedAtom(Pos_, "DeriveColumnOrder"))));
}
if (ctx.PqReadByRtmrCluster) {
- auto pqSourceAll = Y("DataSource", BuildQuotedAtom(Pos, TString(PqProviderName)), BuildQuotedAtom(Pos, "$all"));
+ auto pqSourceAll = Y("DataSource", BuildQuotedAtom(Pos_, TString(PqProviderName)), BuildQuotedAtom(Pos_, "$all"));
currentWorlds->Add(Y("let", "world", Y(TString(ConfigureName), "world", pqSourceAll,
- BuildQuotedAtom(Pos, "Attr"), BuildQuotedAtom(Pos, "PqReadByRtmrCluster_"), BuildQuotedAtom(Pos, ctx.PqReadByRtmrCluster))));
+ BuildQuotedAtom(Pos_, "Attr"), BuildQuotedAtom(Pos_, "PqReadByRtmrCluster_"), BuildQuotedAtom(Pos_, ctx.PqReadByRtmrCluster))));
- auto rtmrSourceAll = Y("DataSource", BuildQuotedAtom(Pos, TString(RtmrProviderName)), BuildQuotedAtom(Pos, "$all"));
+ auto rtmrSourceAll = Y("DataSource", BuildQuotedAtom(Pos_, TString(RtmrProviderName)), BuildQuotedAtom(Pos_, "$all"));
currentWorlds->Add(Y("let", "world", Y(TString(ConfigureName), "world", rtmrSourceAll,
- BuildQuotedAtom(Pos, "Attr"), BuildQuotedAtom(Pos, "PqReadByRtmrCluster_"), BuildQuotedAtom(Pos, ctx.PqReadByRtmrCluster))));
+ BuildQuotedAtom(Pos_, "Attr"), BuildQuotedAtom(Pos_, "PqReadByRtmrCluster_"), BuildQuotedAtom(Pos_, ctx.PqReadByRtmrCluster))));
if (ctx.PqReadByRtmrCluster != "dq") {
// set any dynamic settings for particular RTMR cluster for CommitAll!
- auto rtmrSource = Y("DataSource", BuildQuotedAtom(Pos, TString(RtmrProviderName)), BuildQuotedAtom(Pos, ctx.PqReadByRtmrCluster));
+ auto rtmrSource = Y("DataSource", BuildQuotedAtom(Pos_, TString(RtmrProviderName)), BuildQuotedAtom(Pos_, ctx.PqReadByRtmrCluster));
currentWorlds->Add(Y("let", "world", Y(TString(ConfigureName), "world", rtmrSource,
- BuildQuotedAtom(Pos, "Attr"), BuildQuotedAtom(Pos, "Dummy_"), BuildQuotedAtom(Pos, "1"))));
+ BuildQuotedAtom(Pos_, "Attr"), BuildQuotedAtom(Pos_, "Dummy_"), BuildQuotedAtom(Pos_, "1"))));
}
}
if (ctx.YsonCastToString.Defined()) {
const TString pragmaName = *ctx.YsonCastToString ? "YsonCastToString" : "DisableYsonCastToString";
- currentWorlds->Add(Y("let", "world", Y(TString(ConfigureName), "world", configSource, BuildQuotedAtom(Pos, pragmaName))));
+ currentWorlds->Add(Y("let", "world", Y(TString(ConfigureName), "world", configSource, BuildQuotedAtom(Pos_, pragmaName))));
}
if (ctx.UseBlocks) {
- currentWorlds->Add(Y("let", "world", Y(TString(ConfigureName), "world", configSource, BuildQuotedAtom(Pos, "UseBlocks"))));
+ currentWorlds->Add(Y("let", "world", Y(TString(ConfigureName), "world", configSource, BuildQuotedAtom(Pos_, "UseBlocks"))));
}
if (ctx.BlockEngineEnable) {
TString mode = ctx.BlockEngineForce ? "force" : "auto";
currentWorlds->Add(Y("let", "world", Y(TString(ConfigureName), "world", configSource,
- BuildQuotedAtom(Pos, "BlockEngine"), BuildQuotedAtom(Pos, mode))));
+ BuildQuotedAtom(Pos_, "BlockEngine"), BuildQuotedAtom(Pos_, mode))));
}
if (ctx.Engine) {
Add(Y("let", "world", Y(TString(ConfigureName), "world", configSource,
- BuildQuotedAtom(Pos, "Engine"), BuildQuotedAtom(Pos, *ctx.Engine))));
+ BuildQuotedAtom(Pos_, "Engine"), BuildQuotedAtom(Pos_, *ctx.Engine))));
}
}
}
- for (auto& block: Blocks) {
+ for (auto& block: Blocks_) {
if (block->SubqueryAlias()) {
continue;
}
@@ -3312,8 +3312,8 @@ public:
}
}
- for (const auto& x : Scoped->Local.ExprClusters) {
- auto& data = Scoped->Local.ExprClustersMap[x.Get()];
+ for (const auto& x : Scoped_->Local.ExprClusters) {
+ auto& data = Scoped_->Local.ExprClustersMap[x.Get()];
auto& node = data.second;
if (!node->Init(ctx, nullptr)) {
@@ -3324,15 +3324,15 @@ public:
Add(Y("let", data.first, node));
}
- if (UseSeq) {
+ if (UseSeq_) {
flushCurrentWorlds(false, false);
}
- for (auto& block: Blocks) {
+ for (auto& block: Blocks_) {
const auto subqueryAliasPtr = block->SubqueryAlias();
if (subqueryAliasPtr) {
if (block->UsedSubquery()) {
- if (UseSeq) {
+ if (UseSeq_) {
flushCurrentWorlds(true, false);
}
@@ -3348,36 +3348,36 @@ public:
Add(Y("let", ref, block));
} else {
currentWorlds->Add(Y("let", "world", block));
- if (UseSeq) {
+ if (UseSeq_) {
flushCurrentWorlds(false, false);
}
}
}
}
- if (UseSeq) {
+ if (UseSeq_) {
flushCurrentWorlds(false, true);
}
- if (TopLevel) {
+ if (TopLevel_) {
if (ctx.UniversalAliases) {
- decltype(Nodes) preparedNodes;
- preparedNodes.swap(Nodes);
+ decltype(Nodes_) preparedNodes;
+ preparedNodes.swap(Nodes_);
for (const auto& [name, node] : ctx.UniversalAliases) {
Add(Y("let", name, node));
}
- Nodes.insert(Nodes.end(), preparedNodes.begin(), preparedNodes.end());
+ Nodes_.insert(Nodes_.end(), preparedNodes.begin(), preparedNodes.end());
}
- decltype(Nodes) imports;
+ decltype(Nodes_) imports;
for (const auto& [alias, path]: ctx.RequiredModules) {
- imports.push_back(Y("import", alias, BuildQuotedAtom(Pos, path)));
+ imports.push_back(Y("import", alias, BuildQuotedAtom(Pos_, path)));
}
- Nodes.insert(Nodes.begin(), std::make_move_iterator(imports.begin()), std::make_move_iterator(imports.end()));
+ Nodes_.insert(Nodes_.begin(), std::make_move_iterator(imports.begin()), std::make_move_iterator(imports.end()));
for (const auto& symbol: ctx.Exports) {
if (ctx.CompactNamedExprs) {
- auto node = Scoped->LookupNode(symbol);
+ auto node = Scoped_->LookupNode(symbol);
YQL_ENSURE(node);
if (!node->Init(ctx, src)) {
hasError = true;
@@ -3389,7 +3389,7 @@ public:
}
}
- if (!TopLevel || ctx.Settings.Mode != NSQLTranslation::ESqlMode::LIBRARY) {
+ if (!TopLevel_ || ctx.Settings.Mode != NSQLTranslation::ESqlMode::LIBRARY) {
Add(Y("return", "world"));
}
@@ -3400,10 +3400,10 @@ public:
return {};
}
private:
- TVector<TNodePtr> Blocks;
- const bool TopLevel;
- TScopedStatePtr Scoped;
- const bool UseSeq;
+ TVector<TNodePtr> Blocks_;
+ const bool TopLevel_;
+ TScopedStatePtr Scoped_;
+ const bool UseSeq_;
};
TNodePtr BuildQuery(TPosition pos, const TVector<TNodePtr>& blocks, bool topLevel, TScopedStatePtr scoped, bool useSeq) {
@@ -3414,59 +3414,59 @@ class TPragmaNode final : public INode {
public:
TPragmaNode(TPosition pos, const TString& prefix, const TString& name, const TVector<TDeferredAtom>& values, bool valueDefault)
: INode(pos)
- , Prefix(prefix)
- , Name(name)
- , Values(values)
- , ValueDefault(valueDefault)
+ , Prefix_(prefix)
+ , Name_(name)
+ , Values_(values)
+ , ValueDefault_(valueDefault)
{
- FakeSource = BuildFakeSource(pos);
+ FakeSource_ = BuildFakeSource(pos);
}
bool DoInit(TContext& ctx, ISource* src) override {
Y_UNUSED(src);
TString serviceName;
TString cluster;
- if (std::find(Providers.cbegin(), Providers.cend(), Prefix) != Providers.cend()) {
+ if (std::find(Providers.cbegin(), Providers.cend(), Prefix_) != Providers.cend()) {
cluster = "$all";
- serviceName = Prefix;
+ serviceName = Prefix_;
} else {
- serviceName = *ctx.GetClusterProvider(Prefix, cluster);
+ serviceName = *ctx.GetClusterProvider(Prefix_, cluster);
}
- auto datasource = Y("DataSource", BuildQuotedAtom(Pos, serviceName));
- if (Prefix != ConfigProviderName) {
- datasource = L(datasource, BuildQuotedAtom(Pos, cluster));
+ auto datasource = Y("DataSource", BuildQuotedAtom(Pos_, serviceName));
+ if (Prefix_ != ConfigProviderName) {
+ datasource = L(datasource, BuildQuotedAtom(Pos_, cluster));
}
- Node = Y();
- Node = L(Node, AstNode(TString(ConfigureName)));
- Node = L(Node, AstNode(TString(TStringBuf("world"))));
- Node = L(Node, datasource);
+ Node_ = Y();
+ Node_ = L(Node_, AstNode(TString(ConfigureName)));
+ Node_ = L(Node_, AstNode(TString(TStringBuf("world"))));
+ Node_ = L(Node_, datasource);
- if (Name == TStringBuf("flags")) {
- for (ui32 i = 0; i < Values.size(); ++i) {
- Node = L(Node, Values[i].Build());
+ if (Name_ == TStringBuf("flags")) {
+ for (ui32 i = 0; i < Values_.size(); ++i) {
+ Node_ = L(Node_, Values_[i].Build());
}
}
- else if (Name == TStringBuf("AddFileByUrl") || Name == TStringBuf("SetFileOption") || Name == TStringBuf("AddFolderByUrl") || Name == TStringBuf("ImportUdfs") || Name == TStringBuf("SetPackageVersion")) {
- Node = L(Node, BuildQuotedAtom(Pos, Name));
- for (ui32 i = 0; i < Values.size(); ++i) {
- Node = L(Node, Values[i].Build());
+ else if (Name_ == TStringBuf("AddFileByUrl") || Name_ == TStringBuf("SetFileOption") || Name_ == TStringBuf("AddFolderByUrl") || Name_ == TStringBuf("ImportUdfs") || Name_ == TStringBuf("SetPackageVersion")) {
+ Node_ = L(Node_, BuildQuotedAtom(Pos_, Name_));
+ for (ui32 i = 0; i < Values_.size(); ++i) {
+ Node_ = L(Node_, Values_[i].Build());
}
}
- else if (Name == TStringBuf("auth")) {
- Node = L(Node, BuildQuotedAtom(Pos, "Auth"));
- Node = L(Node, Values.empty() ? BuildQuotedAtom(Pos, TString()) : Values.front().Build());
+ else if (Name_ == TStringBuf("auth")) {
+ Node_ = L(Node_, BuildQuotedAtom(Pos_, "Auth"));
+ Node_ = L(Node_, Values_.empty() ? BuildQuotedAtom(Pos_, TString()) : Values_.front().Build());
}
else {
- Node = L(Node, BuildQuotedAtom(Pos, "Attr"));
- Node = L(Node, BuildQuotedAtom(Pos, Name));
- if (!ValueDefault) {
- Node = L(Node, Values.empty() ? BuildQuotedAtom(Pos, TString()) : Values.front().Build());
+ Node_ = L(Node_, BuildQuotedAtom(Pos_, "Attr"));
+ Node_ = L(Node_, BuildQuotedAtom(Pos_, Name_));
+ if (!ValueDefault_) {
+ Node_ = L(Node_, Values_.empty() ? BuildQuotedAtom(Pos_, TString()) : Values_.front().Build());
}
}
- if (!Node->Init(ctx, FakeSource.Get())) {
+ if (!Node_->Init(ctx, FakeSource_.Get())) {
return false;
}
@@ -3474,7 +3474,7 @@ public:
}
TAstNode* Translate(TContext& ctx) const final {
- return Node->Translate(ctx);
+ return Node_->Translate(ctx);
}
TPtr DoClone() const final {
@@ -3482,12 +3482,12 @@ public:
}
private:
- TString Prefix;
- TString Name;
- TVector<TDeferredAtom> Values;
- bool ValueDefault;
- TNodePtr Node;
- TSourcePtr FakeSource;
+ TString Prefix_;
+ TString Name_;
+ TVector<TDeferredAtom> Values_;
+ bool ValueDefault_;
+ TNodePtr Node_;
+ TSourcePtr FakeSource_;
};
TNodePtr BuildPragma(TPosition pos, const TString& prefix, const TString& name, const TVector<TDeferredAtom>& values, bool valueDefault) {
@@ -3498,23 +3498,23 @@ class TSqlLambda final : public TAstListNode {
public:
TSqlLambda(TPosition pos, TVector<TString>&& args, TVector<TNodePtr>&& exprSeq)
: TAstListNode(pos)
- , Args(args)
- , ExprSeq(exprSeq)
+ , Args_(args)
+ , ExprSeq_(exprSeq)
{
- FakeSource = BuildFakeSource(pos);
+ FakeSource_ = BuildFakeSource(pos);
}
bool DoInit(TContext& ctx, ISource* src) override {
Y_UNUSED(src);
- for (auto& exprPtr: ExprSeq) {
- if (!exprPtr->Init(ctx, FakeSource.Get())) {
+ for (auto& exprPtr: ExprSeq_) {
+ if (!exprPtr->Init(ctx, FakeSource_.Get())) {
return {};
}
}
- YQL_ENSURE(!ExprSeq.empty());
+ YQL_ENSURE(!ExprSeq_.empty());
auto body = Y();
- auto end = ExprSeq.end() - 1;
- for (auto iter = ExprSeq.begin(); iter != end; ++iter) {
+ auto end = ExprSeq_.end() - 1;
+ for (auto iter = ExprSeq_.begin(); iter != end; ++iter) {
auto exprPtr = *iter;
const auto& label = exprPtr->GetLabel();
YQL_ENSURE(label);
@@ -3522,7 +3522,7 @@ public:
}
body = Y("block", Q(L(body, Y("return", *end))));
auto args = Y();
- for (const auto& arg: Args) {
+ for (const auto& arg: Args_) {
args = L(args, BuildAtom(GetPos(), arg));
}
Add("lambda", Q(args), body);
@@ -3530,17 +3530,17 @@ public:
}
TPtr DoClone() const final {
- return new TSqlLambda(Pos, TVector<TString>(Args), CloneContainer(ExprSeq));
+ return new TSqlLambda(Pos_, TVector<TString>(Args_), CloneContainer(ExprSeq_));
}
void DoUpdateState() const override {
- State.Set(ENodeState::Const);
+ State_.Set(ENodeState::Const);
}
private:
- TVector<TString> Args;
- TVector<TNodePtr> ExprSeq;
- TSourcePtr FakeSource;
+ TVector<TString> Args_;
+ TVector<TNodePtr> ExprSeq_;
+ TSourcePtr FakeSource_;
};
TNodePtr BuildSqlLambda(TPosition pos, TVector<TString>&& args, TVector<TNodePtr>&& exprSeq) {
@@ -3551,49 +3551,49 @@ class TWorldIf final : public TAstListNode {
public:
TWorldIf(TPosition pos, TNodePtr predicate, TNodePtr thenNode, TNodePtr elseNode, bool isEvaluate)
: TAstListNode(pos)
- , Predicate(predicate)
- , ThenNode(thenNode)
- , ElseNode(elseNode)
- , IsEvaluate(isEvaluate)
+ , Predicate_(predicate)
+ , ThenNode_(thenNode)
+ , ElseNode_(elseNode)
+ , IsEvaluate_(isEvaluate)
{
- FakeSource = BuildFakeSource(pos);
+ FakeSource_ = BuildFakeSource(pos);
}
bool DoInit(TContext& ctx, ISource* src) override {
- if (!Predicate->Init(ctx, FakeSource.Get())) {
+ if (!Predicate_->Init(ctx, FakeSource_.Get())) {
return{};
}
- Add(IsEvaluate ? "EvaluateIf!" : "If!");
+ Add(IsEvaluate_ ? "EvaluateIf!" : "If!");
Add("world");
- auto coalesced = Y("Coalesce", Predicate, Y("Bool", Q("false")));
- Add(IsEvaluate ? Y("EvaluateExpr", Y("EnsureType", coalesced, Y("DataType", Q("Bool")))) : coalesced);
+ auto coalesced = Y("Coalesce", Predicate_, Y("Bool", Q("false")));
+ Add(IsEvaluate_ ? Y("EvaluateExpr", Y("EnsureType", coalesced, Y("DataType", Q("Bool")))) : coalesced);
- if (!ThenNode->Init(ctx, FakeSource.Get())) {
+ if (!ThenNode_->Init(ctx, FakeSource_.Get())) {
return{};
}
- Add(ThenNode);
- if (ElseNode) {
- if (!ElseNode->Init(ctx, FakeSource.Get())) {
+ Add(ThenNode_);
+ if (ElseNode_) {
+ if (!ElseNode_->Init(ctx, FakeSource_.Get())) {
return{};
}
- Add(ElseNode);
+ Add(ElseNode_);
}
return TAstListNode::DoInit(ctx, src);
}
TPtr DoClone() const final {
- return new TWorldIf(GetPos(), SafeClone(Predicate), SafeClone(ThenNode), SafeClone(ElseNode), IsEvaluate);
+ return new TWorldIf(GetPos(), SafeClone(Predicate_), SafeClone(ThenNode_), SafeClone(ElseNode_), IsEvaluate_);
}
private:
- TNodePtr Predicate;
- TNodePtr ThenNode;
- TNodePtr ElseNode;
- bool IsEvaluate;
- TSourcePtr FakeSource;
+ TNodePtr Predicate_;
+ TNodePtr ThenNode_;
+ TNodePtr ElseNode_;
+ bool IsEvaluate_;
+ TSourcePtr FakeSource_;
};
TNodePtr BuildWorldIfNode(TPosition pos, TNodePtr predicate, TNodePtr thenNode, TNodePtr elseNode, bool isEvaluate) {
@@ -3604,49 +3604,49 @@ class TWorldFor final : public TAstListNode {
public:
TWorldFor(TPosition pos, TNodePtr list, TNodePtr bodyNode, TNodePtr elseNode, bool isEvaluate, bool isParallel)
: TAstListNode(pos)
- , List(list)
- , BodyNode(bodyNode)
- , ElseNode(elseNode)
- , IsEvaluate(isEvaluate)
- , IsParallel(isParallel)
+ , List_(list)
+ , BodyNode_(bodyNode)
+ , ElseNode_(elseNode)
+ , IsEvaluate_(isEvaluate)
+ , IsParallel_(isParallel)
{
- FakeSource = BuildFakeSource(pos);
+ FakeSource_ = BuildFakeSource(pos);
}
bool DoInit(TContext& ctx, ISource* src) override {
- if (!List->Init(ctx, FakeSource.Get())) {
+ if (!List_->Init(ctx, FakeSource_.Get())) {
return{};
}
- Add(TStringBuilder() << (IsEvaluate ? "Evaluate": "") << (IsParallel ? "Parallel" : "") << "For!");
+ Add(TStringBuilder() << (IsEvaluate_ ? "Evaluate": "") << (IsParallel_ ? "Parallel" : "") << "For!");
Add("world");
- Add(IsEvaluate ? Y("EvaluateExpr", List) : List);
+ Add(IsEvaluate_ ? Y("EvaluateExpr", List_) : List_);
- if (!BodyNode->Init(ctx, FakeSource.Get())) {
+ if (!BodyNode_->Init(ctx, FakeSource_.Get())) {
return{};
}
- Add(BodyNode);
+ Add(BodyNode_);
- if (ElseNode) {
- if (!ElseNode->Init(ctx, FakeSource.Get())) {
+ if (ElseNode_) {
+ if (!ElseNode_->Init(ctx, FakeSource_.Get())) {
return{};
}
- Add(ElseNode);
+ Add(ElseNode_);
}
return TAstListNode::DoInit(ctx, src);
}
TPtr DoClone() const final {
- return new TWorldFor(GetPos(), SafeClone(List), SafeClone(BodyNode), SafeClone(ElseNode), IsEvaluate, IsParallel);
+ return new TWorldFor(GetPos(), SafeClone(List_), SafeClone(BodyNode_), SafeClone(ElseNode_), IsEvaluate_, IsParallel_);
}
private:
- TNodePtr List;
- TNodePtr BodyNode;
- TNodePtr ElseNode;
- bool IsEvaluate;
- bool IsParallel;
- TSourcePtr FakeSource;
+ TNodePtr List_;
+ TNodePtr BodyNode_;
+ TNodePtr ElseNode_;
+ bool IsEvaluate_;
+ bool IsParallel_;
+ TSourcePtr FakeSource_;
};
TNodePtr BuildWorldForNode(TPosition pos, TNodePtr list, TNodePtr bodyNode, TNodePtr elseNode, bool isEvaluate, bool isParallel) {
@@ -3657,50 +3657,50 @@ class TAnalyzeNode final : public TAstListNode {
public:
TAnalyzeNode(TPosition pos, const TString& service, const TDeferredAtom& cluster, const TAnalyzeParams& params, TScopedStatePtr scoped)
: TAstListNode(pos)
- , Service(service)
- , Cluster(cluster)
- , Params(params)
- , Scoped(scoped)
+ , Service_(service)
+ , Cluster_(cluster)
+ , Params_(params)
+ , Scoped_(scoped)
{
- FakeSource = BuildFakeSource(pos);
- scoped->UseCluster(Service, Cluster);
+ FakeSource_ = BuildFakeSource(pos);
+ scoped->UseCluster(Service_, Cluster_);
}
bool DoInit(TContext& ctx, ISource* src) override {
Y_UNUSED(src);
- auto keys = Params.Table->Keys->GetTableKeys()->BuildKeys(ctx, ITableKeys::EBuildKeysMode::DROP);
- if (!keys || !keys->Init(ctx, FakeSource.Get())) {
+ auto keys = Params_.Table->Keys->GetTableKeys()->BuildKeys(ctx, ITableKeys::EBuildKeysMode::DROP);
+ if (!keys || !keys->Init(ctx, FakeSource_.Get())) {
return false;
}
auto opts = Y();
auto columns = Y();
- for (const auto& column: Params.Columns) {
+ for (const auto& column: Params_.Columns) {
columns->Add(Q(column));
}
opts->Add(Q(Y(Q("columns"), Q(columns))));
opts->Add(Q(Y(Q("mode"), Q("analyze"))));
Add("block", Q(Y(
- Y("let", "sink", Y("DataSink", BuildQuotedAtom(Pos, Service), Scoped->WrapCluster(Cluster, ctx))),
+ Y("let", "sink", Y("DataSink", BuildQuotedAtom(Pos_, Service_), Scoped_->WrapCluster(Cluster_, ctx))),
Y("let", "world", Y(TString(WriteName), "world", "sink", keys, Y("Void"), Q(opts))),
Y("return", ctx.PragmaAutoCommit ? Y(TString(CommitName), "world", "sink") : AstNode("world"))
)));
- return TAstListNode::DoInit(ctx, FakeSource.Get());
+ return TAstListNode::DoInit(ctx, FakeSource_.Get());
}
TPtr DoClone() const final {
return {};
}
private:
- TString Service;
- TDeferredAtom Cluster;
- TAnalyzeParams Params;
+ TString Service_;
+ TDeferredAtom Cluster_;
+ TAnalyzeParams Params_;
- TScopedStatePtr Scoped;
- TSourcePtr FakeSource;
+ TScopedStatePtr Scoped_;
+ TSourcePtr FakeSource_;
};
TNodePtr BuildAnalyze(TPosition pos, const TString& service, const TDeferredAtom& cluster, const TAnalyzeParams& params, TScopedStatePtr scoped) {
@@ -3711,22 +3711,22 @@ class TShowCreateNode final : public TAstListNode {
public:
TShowCreateNode(TPosition pos, const TTableRef& tr, const TString& type, TScopedStatePtr scoped)
: TAstListNode(pos)
- , Table(tr)
- , Type(type)
- , Scoped(scoped)
- , FakeSource(BuildFakeSource(pos))
+ , Table_(tr)
+ , Type_(type)
+ , Scoped_(scoped)
+ , FakeSource_(BuildFakeSource(pos))
{
- Scoped->UseCluster(Table.Service, Table.Cluster);
+ Scoped_->UseCluster(Table_.Service, Table_.Cluster);
}
bool DoInit(TContext& ctx, ISource* src) override {
- if (Table.Options) {
- if (!Table.Options->Init(ctx, src)) {
+ if (Table_.Options) {
+ if (!Table_.Options->Init(ctx, src)) {
return false;
}
- Table.Options = L(Table.Options, Q(Y(Q(Type))));
+ Table_.Options = L(Table_.Options, Q(Y(Q(Type_))));
} else {
- Table.Options = Y(Q(Y(Q(Type))));
+ Table_.Options = Y(Q(Y(Q(Type_))));
}
bool asRef = ctx.PragmaRefSelect;
@@ -3743,12 +3743,12 @@ public:
settings = L(settings, Q(Y(Q("autoref"))));
}
- TNodePtr node(BuildInputTables(Pos, {Table}, false, Scoped));
+ TNodePtr node(BuildInputTables(Pos_, {Table_}, false, Scoped_));
if (!node->Init(ctx, src)) {
return false;
}
- auto source = BuildTableSource(TPosition(ctx.Pos()), Table);
+ auto source = BuildTableSource(TPosition(ctx.Pos()), Table_);
if (!source) {
return false;
}
@@ -3758,7 +3758,7 @@ public:
}
node = L(node, Y("let", "output", output));
- auto writeResult(BuildWriteResult(Pos, "output", settings));
+ auto writeResult(BuildWriteResult(Pos_, "output", settings));
if (!writeResult->Init(ctx, src)) {
return false;
}
@@ -3766,18 +3766,18 @@ public:
node = L(node, Y("return", "world"));
Add("block", Q(node));
- return TAstListNode::DoInit(ctx, FakeSource.Get());
+ return TAstListNode::DoInit(ctx, FakeSource_.Get());
}
TPtr DoClone() const final {
return {};
}
private:
- TTableRef Table;
+ TTableRef Table_;
// showCreateTable, showCreateView, ...
- TString Type;
- TScopedStatePtr Scoped;
- TSourcePtr FakeSource;
+ TString Type_;
+ TScopedStatePtr Scoped_;
+ TSourcePtr FakeSource_;
};
TNodePtr BuildShowCreate(TPosition pos, const TTableRef& tr, const TString& type, TScopedStatePtr scoped) {
@@ -3797,17 +3797,17 @@ public:
const TObjectOperatorContext& context)
: TBase(pos)
, TObjectOperatorContext(context)
- , Prefix(prefix)
- , Id(objectId)
+ , Prefix_(prefix)
+ , Id_(objectId)
{}
bool DoInit(TContext& ctx, ISource* src) final {
auto keys = Y("Key");
- keys = L(keys, Q(Y(Q("backupCollection"), Y("String", BuildQuotedAtom(Pos, Id)), Y("String", BuildQuotedAtom(Pos, Prefix)))));
+ keys = L(keys, Q(Y(Q("backupCollection"), Y("String", BuildQuotedAtom(Pos_, Id_)), Y("String", BuildQuotedAtom(Pos_, Prefix_)))));
auto options = this->FillOptions(ctx, Y());
Add("block", Q(Y(
- Y("let", "sink", Y("DataSink", BuildQuotedAtom(Pos, ServiceId), Scoped->WrapCluster(Cluster, ctx))),
+ Y("let", "sink", Y("DataSink", BuildQuotedAtom(Pos_, ServiceId), Scoped_->WrapCluster(Cluster, ctx))),
Y("let", "world", Y(TString(WriteName), "world", "sink", keys, Y("Void"), Q(options))),
Y("return", ctx.PragmaAutoCommit ? Y(TString(CommitName), "world", "sink") : AstNode("world"))
)));
@@ -3818,8 +3818,8 @@ public:
virtual INode::TPtr FillOptions(TContext& ctx, INode::TPtr options) const = 0;
protected:
- TString Prefix;
- TString Id;
+ TString Prefix_;
+ TString Id_;
};
class TCreateBackupCollectionNode
@@ -3834,23 +3834,23 @@ public:
const TCreateBackupCollectionParameters& params,
const TObjectOperatorContext& context)
: TBase(pos, prefix, objectId, context)
- , Params(params)
+ , Params_(params)
{}
virtual INode::TPtr FillOptions(TContext& ctx, INode::TPtr options) const final {
options->Add(Q(Y(Q("mode"), Q("create"))));
auto settings = Y();
- for (auto& [key, value] : Params.Settings) {
- settings->Add(Q(Y(BuildQuotedAtom(Pos, key), Y("String", value.Build()))));
+ for (auto& [key, value] : Params_.Settings) {
+ settings->Add(Q(Y(BuildQuotedAtom(Pos_, key), Y("String", value.Build()))));
}
options->Add(Q(Y(Q("settings"), Q(settings))));
auto entries = Y();
- if (Params.Database) {
+ if (Params_.Database) {
entries->Add(Q(Y(Q(Y(Q("type"), Q("database"))))));
}
- for (auto& table : Params.Tables) {
+ for (auto& table : Params_.Tables) {
auto path = ctx.GetPrefixedPath(ServiceId, Cluster, table);
entries->Add(Q(Y(Q(Y(Q("type"), Q("table"))), Q(Y(Q("path"), path)))));
}
@@ -3860,11 +3860,11 @@ public:
}
TPtr DoClone() const final {
- return new TCreateBackupCollectionNode(GetPos(), Prefix, Id, Params, *this);
+ return new TCreateBackupCollectionNode(GetPos(), Prefix_, Id_, Params_, *this);
}
private:
- TCreateBackupCollectionParameters Params;
+ TCreateBackupCollectionParameters Params_;
};
class TAlterBackupCollectionNode
@@ -3879,33 +3879,33 @@ public:
const TAlterBackupCollectionParameters& params,
const TObjectOperatorContext& context)
: TBase(pos, prefix, objectId, context)
- , Params(params)
+ , Params_(params)
{}
virtual INode::TPtr FillOptions(TContext& ctx, INode::TPtr options) const final {
options->Add(Q(Y(Q("mode"), Q("alter"))));
auto settings = Y();
- for (auto& [key, value] : Params.Settings) {
- settings->Add(Q(Y(BuildQuotedAtom(Pos, key), Y("String", value.Build()))));
+ for (auto& [key, value] : Params_.Settings) {
+ settings->Add(Q(Y(BuildQuotedAtom(Pos_, key), Y("String", value.Build()))));
}
options->Add(Q(Y(Q("settings"), Q(settings))));
auto resetSettings = Y();
- for (auto& key : Params.SettingsToReset) {
- resetSettings->Add(BuildQuotedAtom(Pos, key));
+ for (auto& key : Params_.SettingsToReset) {
+ resetSettings->Add(BuildQuotedAtom(Pos_, key));
}
options->Add(Q(Y(Q("resetSettings"), Q(resetSettings))));
auto entries = Y();
- if (Params.Database != TAlterBackupCollectionParameters::EDatabase::Unchanged) {
- entries->Add(Q(Y(Q(Y(Q("type"), Q("database"))), Q(Y(Q("action"), Q(Params.Database == TAlterBackupCollectionParameters::EDatabase::Add ? "add" : "drop"))))));
+ if (Params_.Database != TAlterBackupCollectionParameters::EDatabase::Unchanged) {
+ entries->Add(Q(Y(Q(Y(Q("type"), Q("database"))), Q(Y(Q("action"), Q(Params_.Database == TAlterBackupCollectionParameters::EDatabase::Add ? "add" : "drop"))))));
}
- for (auto& table : Params.TablesToAdd) {
+ for (auto& table : Params_.TablesToAdd) {
auto path = ctx.GetPrefixedPath(ServiceId, Cluster, table);
entries->Add(Q(Y(Q(Y(Q("type"), Q("table"))), Q(Y(Q("path"), path)), Q(Y(Q("action"), Q("add"))))));
}
- for (auto& table : Params.TablesToDrop) {
+ for (auto& table : Params_.TablesToDrop) {
auto path = ctx.GetPrefixedPath(ServiceId, Cluster, table);
entries->Add(Q(Y(Q(Y(Q("type"), Q("table"))), Q(Y(Q("path"), path)), Q(Y(Q("action"), Q("drop"))))));
}
@@ -3915,11 +3915,11 @@ public:
}
TPtr DoClone() const final {
- return new TAlterBackupCollectionNode(GetPos(), Prefix, Id, Params, *this);
+ return new TAlterBackupCollectionNode(GetPos(), Prefix_, Id_, Params_, *this);
}
private:
- TAlterBackupCollectionParameters Params;
+ TAlterBackupCollectionParameters Params_;
};
class TDropBackupCollectionNode
@@ -3944,7 +3944,7 @@ public:
TPtr DoClone() const final {
TDropBackupCollectionParameters params;
- return new TDropBackupCollectionNode(GetPos(), Prefix, Id, params, *this);
+ return new TDropBackupCollectionNode(GetPos(), Prefix_, Id_, params, *this);
}
};
@@ -3992,27 +3992,27 @@ public:
const TObjectOperatorContext& context)
: TBase(pos)
, TObjectOperatorContext(context)
- , Prefix(prefix)
- , Id(id)
- , Params(params)
+ , Prefix_(prefix)
+ , Id_(id)
+ , Params_(params)
{
- Y_UNUSED(Params);
+ Y_UNUSED(Params_);
}
bool DoInit(TContext& ctx, ISource* src) override {
auto keys = Y("Key");
- keys = L(keys, Q(Y(Q("backup"), Y("String", BuildQuotedAtom(Pos, Id)), Y("String", BuildQuotedAtom(Pos, Prefix)))));
+ keys = L(keys, Q(Y(Q("backup"), Y("String", BuildQuotedAtom(Pos_, Id_)), Y("String", BuildQuotedAtom(Pos_, Prefix_)))));
auto opts = Y();
- if (Params.Incremental) {
+ if (Params_.Incremental) {
opts->Add(Q(Y(Q("mode"), Q("backupIncremental"))));
} else {
opts->Add(Q(Y(Q("mode"), Q("backup"))));
}
Add("block", Q(Y(
- Y("let", "sink", Y("DataSink", BuildQuotedAtom(Pos, ServiceId), Scoped->WrapCluster(Cluster, ctx))),
+ Y("let", "sink", Y("DataSink", BuildQuotedAtom(Pos_, ServiceId), Scoped_->WrapCluster(Cluster, ctx))),
Y("let", "world", Y(TString(WriteName), "world", "sink", keys, Y("Void"), Q(opts))),
Y("return", ctx.PragmaAutoCommit ? Y(TString(CommitName), "world", "sink") : AstNode("world"))
)));
@@ -4021,12 +4021,12 @@ public:
}
TPtr DoClone() const final {
- return new TBackupNode(GetPos(), Prefix, Id, Params, *this);
+ return new TBackupNode(GetPos(), Prefix_, Id_, Params_, *this);
}
private:
- TString Prefix;
- TString Id;
- TBackupParameters Params;
+ TString Prefix_;
+ TString Id_;
+ TBackupParameters Params_;
};
TNodePtr BuildBackup(
@@ -4053,26 +4053,26 @@ public:
const TObjectOperatorContext& context)
: TBase(pos)
, TObjectOperatorContext(context)
- , Prefix(prefix)
- , Id(id)
- , Params(params)
+ , Prefix_(prefix)
+ , Id_(id)
+ , Params_(params)
{
- Y_UNUSED(Params);
+ Y_UNUSED(Params_);
}
bool DoInit(TContext& ctx, ISource* src) override {
auto keys = Y("Key");
- keys = L(keys, Q(Y(Q("restore"), Y("String", BuildQuotedAtom(Pos, Id)), Y("String", BuildQuotedAtom(Pos, Prefix)))));
+ keys = L(keys, Q(Y(Q("restore"), Y("String", BuildQuotedAtom(Pos_, Id_)), Y("String", BuildQuotedAtom(Pos_, Prefix_)))));
auto opts = Y();
opts->Add(Q(Y(Q("mode"), Q("restore"))));
- if (Params.At) {
- opts->Add(Q(Y(Q("at"), BuildQuotedAtom(Pos, Params.At))));
+ if (Params_.At) {
+ opts->Add(Q(Y(Q("at"), BuildQuotedAtom(Pos_, Params_.At))));
}
Add("block", Q(Y(
- Y("let", "sink", Y("DataSink", BuildQuotedAtom(Pos, ServiceId), Scoped->WrapCluster(Cluster, ctx))),
+ Y("let", "sink", Y("DataSink", BuildQuotedAtom(Pos_, ServiceId), Scoped_->WrapCluster(Cluster, ctx))),
Y("let", "world", Y(TString(WriteName), "world", "sink", keys, Y("Void"), Q(opts))),
Y("return", ctx.PragmaAutoCommit ? Y(TString(CommitName), "world", "sink") : AstNode("world"))
)));
@@ -4081,12 +4081,12 @@ public:
}
TPtr DoClone() const final {
- return new TRestoreNode(GetPos(), Prefix, Id, Params, *this);
+ return new TRestoreNode(GetPos(), Prefix_, Id_, Params_, *this);
}
private:
- TString Prefix;
- TString Id;
- TRestoreParameters Params;
+ TString Prefix_;
+ TString Id_;
+ TRestoreParameters Params_;
};
TNodePtr BuildRestore(
diff --git a/yql/essentials/sql/v1/select.cpp b/yql/essentials/sql/v1/select.cpp
index e34ddb7c43f..5a17bba297c 100644
--- a/yql/essentials/sql/v1/select.cpp
+++ b/yql/essentials/sql/v1/select.cpp
@@ -17,76 +17,76 @@ class TSubqueryNode: public INode {
public:
TSubqueryNode(TSourcePtr&& source, const TString& alias, bool inSubquery, int ensureTupleSize, TScopedStatePtr scoped)
: INode(source->GetPos())
- , Source(std::move(source))
- , Alias(alias)
- , InSubquery(inSubquery)
- , EnsureTupleSize(ensureTupleSize)
- , Scoped(scoped)
+ , Source_(std::move(source))
+ , Alias_(alias)
+ , InSubquery_(inSubquery)
+ , EnsureTupleSize_(ensureTupleSize)
+ , Scoped_(scoped)
{
- YQL_ENSURE(!Alias.empty());
+ YQL_ENSURE(!Alias_.empty());
}
ISource* GetSource() override {
- return Source.Get();
+ return Source_.Get();
}
bool DoInit(TContext& ctx, ISource* src) override {
YQL_ENSURE(!src, "Source not expected for subquery node");
- Source->UseAsInner();
- if (!Source->Init(ctx, nullptr)) {
+ Source_->UseAsInner();
+ if (!Source_->Init(ctx, nullptr)) {
return false;
}
TTableList tableList;
- Source->GetInputTables(tableList);
+ Source_->GetInputTables(tableList);
- auto tables = BuildInputTables(Pos, tableList, InSubquery, Scoped);
- if (!tables->Init(ctx, Source.Get())) {
+ auto tables = BuildInputTables(Pos_, tableList, InSubquery_, Scoped_);
+ if (!tables->Init(ctx, Source_.Get())) {
return false;
}
- auto source = Source->Build(ctx);
+ auto source = Source_->Build(ctx);
if (!source) {
return false;
}
- if (EnsureTupleSize != -1) {
- source = Y("EnsureTupleSize", source, Q(ToString(EnsureTupleSize)));
+ if (EnsureTupleSize_ != -1) {
+ source = Y("EnsureTupleSize", source, Q(ToString(EnsureTupleSize_)));
}
- Node = Y("let", Alias, Y("block", Q(L(tables, Y("return", Q(Y("world", source)))))));
- IsUsed = true;
+ Node_ = Y("let", Alias_, Y("block", Q(L(tables, Y("return", Q(Y("world", source)))))));
+ IsUsed_ = true;
return true;
}
void DoUpdateState() const override {
- State.Set(ENodeState::Const, true);
+ State_.Set(ENodeState::Const, true);
}
bool UsedSubquery() const override {
- return IsUsed;
+ return IsUsed_;
}
TAstNode* Translate(TContext& ctx) const override {
- Y_DEBUG_ABORT_UNLESS(Node);
- return Node->Translate(ctx);
+ Y_DEBUG_ABORT_UNLESS(Node_);
+ return Node_->Translate(ctx);
}
const TString* SubqueryAlias() const override {
- return &Alias;
+ return &Alias_;
}
TPtr DoClone() const final {
- return new TSubqueryNode(Source->CloneSource(), Alias, InSubquery, EnsureTupleSize, Scoped);
+ return new TSubqueryNode(Source_->CloneSource(), Alias_, InSubquery_, EnsureTupleSize_, Scoped_);
}
protected:
- TSourcePtr Source;
- TNodePtr Node;
- const TString Alias;
- const bool InSubquery;
- const int EnsureTupleSize;
- bool IsUsed = false;
- TScopedStatePtr Scoped;
+ TSourcePtr Source_;
+ TNodePtr Node_;
+ const TString Alias_;
+ const bool InSubquery_;
+ const int EnsureTupleSize_;
+ bool IsUsed_ = false;
+ TScopedStatePtr Scoped_;
};
TNodePtr BuildSubquery(TSourcePtr source, const TString& alias, bool inSubquery, int ensureTupleSize, TScopedStatePtr scoped) {
@@ -97,81 +97,81 @@ class TSourceNode: public INode {
public:
TSourceNode(TPosition pos, TSourcePtr&& source, bool checkExist, bool withTables)
: INode(pos)
- , Source(std::move(source))
- , CheckExist(checkExist)
- , WithTables(withTables)
+ , Source_(std::move(source))
+ , CheckExist_(checkExist)
+ , WithTables_(withTables)
{}
ISource* GetSource() override {
- return Source.Get();
+ return Source_.Get();
}
bool DoInit(TContext& ctx, ISource* src) override {
- if (AsInner) {
- Source->UseAsInner();
+ if (AsInner_) {
+ Source_->UseAsInner();
}
- if (!Source->Init(ctx, src)) {
+ if (!Source_->Init(ctx, src)) {
return false;
}
- Node = Source->Build(ctx);
- if (!Node) {
+ Node_ = Source_->Build(ctx);
+ if (!Node_) {
return false;
}
if (src) {
if (IsSubquery()) {
/// should be not used?
- auto columnsPtr = Source->GetColumns();
+ auto columnsPtr = Source_->GetColumns();
if (columnsPtr && (columnsPtr->All || columnsPtr->QualifiedAll || columnsPtr->List.size() == 1)) {
- Node = Y("SingleMember", Y("SqlAccess", Q("dict"), Y("Take", Node, Y("Uint64", Q("1"))), Y("Uint64", Q("0"))));
+ Node_ = Y("SingleMember", Y("SqlAccess", Q("dict"), Y("Take", Node_, Y("Uint64", Q("1"))), Y("Uint64", Q("0"))));
} else {
- ctx.Error(Pos) << "Source used in expression should contain one concrete column";
- if (RefPos) {
- ctx.Error(*RefPos) << "Source is used here";
+ ctx.Error(Pos_) << "Source used in expression should contain one concrete column";
+ if (RefPos_) {
+ ctx.Error(*RefPos_) << "Source is used here";
}
return false;
}
}
- src->AddDependentSource(Source);
+ src->AddDependentSource(Source_);
}
- if (Node && WithTables) {
+ if (Node_ && WithTables_) {
TTableList tableList;
- Source->GetInputTables(tableList);
+ Source_->GetInputTables(tableList);
TNodePtr inputTables(BuildInputTables(ctx.Pos(), tableList, IsSubquery(), ctx.Scoped));
- if (!inputTables->Init(ctx, Source.Get())) {
+ if (!inputTables->Init(ctx, Source_.Get())) {
return false;
}
auto blockContent = inputTables;
- blockContent = L(blockContent, Y("return", Node));
- Node = Y("block", Q(blockContent));
+ blockContent = L(blockContent, Y("return", Node_));
+ Node_ = Y("block", Q(blockContent));
}
return true;
}
bool IsSubquery() const {
- return !AsInner && Source->IsSelect() && !CheckExist;
+ return !AsInner_ && Source_->IsSelect() && !CheckExist_;
}
void DoUpdateState() const override {
- State.Set(ENodeState::Const, IsSubquery());
+ State_.Set(ENodeState::Const, IsSubquery());
}
TAstNode* Translate(TContext& ctx) const override {
- Y_DEBUG_ABORT_UNLESS(Node);
- return Node->Translate(ctx);
+ Y_DEBUG_ABORT_UNLESS(Node_);
+ return Node_->Translate(ctx);
}
TPtr DoClone() const final {
- return new TSourceNode(Pos, Source->CloneSource(), CheckExist, WithTables);
+ return new TSourceNode(Pos_, Source_->CloneSource(), CheckExist_, WithTables_);
}
protected:
- TSourcePtr Source;
- TNodePtr Node;
- bool CheckExist;
- bool WithTables;
+ TSourcePtr Source_;
+ TNodePtr Node_;
+ bool CheckExist_;
+ bool WithTables_;
};
TNodePtr BuildSourceNode(TPosition pos, TSourcePtr source, bool checkExist, bool withTables) {
@@ -182,8 +182,8 @@ class TFakeSource: public ISource {
public:
TFakeSource(TPosition pos, bool missingFrom, bool inSubquery)
: ISource(pos)
- , MissingFrom(missingFrom)
- , InSubquery(inSubquery)
+ , MissingFrom_(missingFrom)
+ , InSubquery_(inSubquery)
{}
bool IsFake() const override {
@@ -195,7 +195,7 @@ public:
if (column.CanBeType()) {
return true;
}
- ctx.Error(Pos) << (MissingFrom ? "Column references are not allowed without FROM" : "Source does not allow column references");
+ ctx.Error(Pos_) << (MissingFrom_ ? "Column references are not allowed without FROM" : "Source does not allow column references");
ctx.Error(column.GetPos()) << "Column reference "
<< (column.GetColumnName() ? "'" + *column.GetColumnName() + "'" : "(expr)");
return {};
@@ -203,15 +203,15 @@ public:
bool AddFilter(TContext& ctx, TNodePtr filter) override {
Y_UNUSED(filter);
- auto pos = filter ? filter->GetPos() : Pos;
- ctx.Error(pos) << (MissingFrom ? "Filtering is not allowed without FROM" : "Source does not allow filtering");
+ auto pos = filter ? filter->GetPos() : Pos_;
+ ctx.Error(pos) << (MissingFrom_ ? "Filtering is not allowed without FROM" : "Source does not allow filtering");
return false;
}
TNodePtr Build(TContext& ctx) override {
Y_UNUSED(ctx);
auto ret = Y("AsList", Y("AsStruct"));
- if (InSubquery) {
+ if (InSubquery_) {
return Y("WithWorld", ret, "world");
} else {
return ret;
@@ -220,33 +220,33 @@ public:
bool AddGroupKey(TContext& ctx, const TString& column) override {
Y_UNUSED(column);
- ctx.Error(Pos) << "Grouping is not allowed " << (MissingFrom ? "without FROM" : "in this context");
+ ctx.Error(Pos_) << "Grouping is not allowed " << (MissingFrom_ ? "without FROM" : "in this context");
return false;
}
bool AddAggregation(TContext& ctx, TAggregationPtr aggr) override {
YQL_ENSURE(aggr);
- ctx.Error(aggr->GetPos()) << "Aggregation is not allowed " << (MissingFrom ? "without FROM" : "in this context");
+ ctx.Error(aggr->GetPos()) << "Aggregation is not allowed " << (MissingFrom_ ? "without FROM" : "in this context");
return false;
}
bool AddAggregationOverWindow(TContext& ctx, const TString& windowName, TAggregationPtr func) override {
Y_UNUSED(windowName);
YQL_ENSURE(func);
- ctx.Error(func->GetPos()) << "Aggregation is not allowed " << (MissingFrom ? "without FROM" : "in this context");
+ ctx.Error(func->GetPos()) << "Aggregation is not allowed " << (MissingFrom_ ? "without FROM" : "in this context");
return false;
}
bool AddFuncOverWindow(TContext& ctx, const TString& windowName, TNodePtr func) override {
Y_UNUSED(windowName);
YQL_ENSURE(func);
- ctx.Error(func->GetPos()) << "Window functions are not allowed " << (MissingFrom ? "without FROM" : "in this context");
+ ctx.Error(func->GetPos()) << "Window functions are not allowed " << (MissingFrom_ ? "without FROM" : "in this context");
return false;
}
TWindowSpecificationPtr FindWindowSpecification(TContext& ctx, const TString& windowName) const override {
Y_UNUSED(windowName);
- ctx.Error(Pos) << "Window and aggregation functions are not allowed " << (MissingFrom ? "without FROM" : "in this context");
+ ctx.Error(Pos_) << "Window and aggregation functions are not allowed " << (MissingFrom_ ? "without FROM" : "in this context");
return {};
}
@@ -268,11 +268,11 @@ public:
}
TPtr DoClone() const final {
- return new TFakeSource(Pos, MissingFrom, InSubquery);
+ return new TFakeSource(Pos_, MissingFrom_, InSubquery_);
}
private:
- const bool MissingFrom;
- const bool InSubquery;
+ const bool MissingFrom_;
+ const bool InSubquery_;
};
TSourcePtr BuildFakeSource(TPosition pos, bool missingFrom, bool inSubquery) {
@@ -283,12 +283,12 @@ class TNodeSource: public ISource {
public:
TNodeSource(TPosition pos, const TNodePtr& node, bool wrapToList, bool wrapByTableSource)
: ISource(pos)
- , Node(node)
- , WrapToList(wrapToList)
- , WrapByTableSource(wrapByTableSource)
+ , Node_(node)
+ , WrapToList_(wrapToList)
+ , WrapByTableSource_(wrapByTableSource)
{
- YQL_ENSURE(Node);
- FakeSource = BuildFakeSource(pos);
+ YQL_ENSURE(Node_);
+ FakeSource_ = BuildFakeSource(pos);
}
bool ShouldUseSourceAsColumn(const TString& source) const final {
@@ -302,19 +302,19 @@ public:
}
bool DoInit(TContext& ctx, ISource* src) final {
- if (!Node->Init(ctx, FakeSource.Get())) {
+ if (!Node_->Init(ctx, FakeSource_.Get())) {
return false;
}
return ISource::DoInit(ctx, src);
}
TNodePtr Build(TContext& /*ctx*/) final {
- auto nodeAst = AstNode(Node);
- if (WrapToList) {
+ auto nodeAst = AstNode(Node_);
+ if (WrapToList_) {
nodeAst = Y("ToList", nodeAst);
}
- if (WrapByTableSource) {
+ if (WrapByTableSource_) {
nodeAst = Y("TableSource", nodeAst);
}
@@ -322,14 +322,14 @@ public:
}
TPtr DoClone() const final {
- return new TNodeSource(Pos, SafeClone(Node), WrapToList, WrapByTableSource);
+ return new TNodeSource(Pos_, SafeClone(Node_), WrapToList_, WrapByTableSource_);
}
private:
- TNodePtr Node;
- const bool WrapToList;
- const bool WrapByTableSource;
- TSourcePtr FakeSource;
+ TNodePtr Node_;
+ const bool WrapToList_;
+ const bool WrapByTableSource_;
+ TSourcePtr FakeSource_;
};
TSourcePtr BuildNodeSource(TPosition pos, const TNodePtr& node, bool wrapToList, bool wrapByTableSource) {
@@ -340,61 +340,61 @@ class IProxySource: public ISource {
protected:
IProxySource(TPosition pos, ISource* src)
: ISource(pos)
- , Source(src)
+ , Source_(src)
{}
void AllColumns() override {
- Y_DEBUG_ABORT_UNLESS(Source);
- return Source->AllColumns();
+ Y_DEBUG_ABORT_UNLESS(Source_);
+ return Source_->AllColumns();
}
const TColumns* GetColumns() const override {
- Y_DEBUG_ABORT_UNLESS(Source);
- return Source->GetColumns();
+ Y_DEBUG_ABORT_UNLESS(Source_);
+ return Source_->GetColumns();
}
void GetInputTables(TTableList& tableList) const override {
- if (Source) {
- Source->GetInputTables(tableList);
+ if (Source_) {
+ Source_->GetInputTables(tableList);
}
ISource::GetInputTables(tableList);
}
TMaybe<bool> AddColumn(TContext& ctx, TColumnNode& column) override {
- Y_DEBUG_ABORT_UNLESS(Source);
- const TString label(Source->GetLabel());
- Source->SetLabel(Label);
- const auto ret = Source->AddColumn(ctx, column);
- Source->SetLabel(label);
+ Y_DEBUG_ABORT_UNLESS(Source_);
+ const TString label(Source_->GetLabel());
+ Source_->SetLabel(Label_);
+ const auto ret = Source_->AddColumn(ctx, column);
+ Source_->SetLabel(label);
return ret;
}
bool ShouldUseSourceAsColumn(const TString& source) const override {
- return Source->ShouldUseSourceAsColumn(source);
+ return Source_->ShouldUseSourceAsColumn(source);
}
bool IsStream() const override {
- Y_DEBUG_ABORT_UNLESS(Source);
- return Source->IsStream();
+ Y_DEBUG_ABORT_UNLESS(Source_);
+ return Source_->IsStream();
}
EOrderKind GetOrderKind() const override {
- Y_DEBUG_ABORT_UNLESS(Source);
- return Source->GetOrderKind();
+ Y_DEBUG_ABORT_UNLESS(Source_);
+ return Source_->GetOrderKind();
}
TWriteSettings GetWriteSettings() const override {
- Y_DEBUG_ABORT_UNLESS(Source);
- return Source->GetWriteSettings();
+ Y_DEBUG_ABORT_UNLESS(Source_);
+ return Source_->GetWriteSettings();
}
protected:
void SetSource(ISource* source) {
- Source = source;
+ Source_ = source;
}
- ISource* Source;
+ ISource* Source_;
};
class IRealSource: public ISource {
@@ -405,11 +405,11 @@ protected:
}
void AllColumns() override {
- Columns.SetAll();
+ Columns_.SetAll();
}
const TColumns* GetColumns() const override {
- return &Columns;
+ return &Columns_;
}
TMaybe<bool> AddColumn(TContext& ctx, TColumnNode& column) override {
@@ -425,7 +425,7 @@ protected:
return true;
}
const auto* name = column.GetColumnName();
- if (name && !column.CanBeType() && !Columns.IsColumnPossible(ctx, *name) && !IsAlias(EExprSeat::GroupBy, *name) && !IsAlias(EExprSeat::DistinctAggr, *name)) {
+ if (name && !column.CanBeType() && !Columns_.IsColumnPossible(ctx, *name) && !IsAlias(EExprSeat::GroupBy, *name) && !IsAlias(EExprSeat::DistinctAggr, *name)) {
if (column.IsReliable()) {
TStringBuilder sb;
sb << "Column " << *name << " is not in source column set";
@@ -440,15 +440,15 @@ protected:
}
TMaybe<TString> FindColumnMistype(const TString& name) const override {
- auto result = FindMistypeIn(Columns.Real, name);
+ auto result = FindMistypeIn(Columns_.Real, name);
if (!result) {
- auto result = FindMistypeIn(Columns.Artificial, name);
+ auto result = FindMistypeIn(Columns_.Artificial, name);
}
return result ? result : ISource::FindColumnMistype(name);
}
protected:
- TColumns Columns;
+ TColumns Columns_;
};
class IComposableSource : private TNonCopyable {
@@ -463,36 +463,36 @@ class TMuxSource: public ISource {
public:
TMuxSource(TPosition pos, TVector<TSourcePtr>&& sources)
: ISource(pos)
- , Sources(std::move(sources))
+ , Sources_(std::move(sources))
{
- YQL_ENSURE(Sources.size() > 1);
+ YQL_ENSURE(Sources_.size() > 1);
}
void AllColumns() final {
- for (auto& source: Sources) {
+ for (auto& source: Sources_) {
source->AllColumns();
}
}
const TColumns* GetColumns() const final {
// Columns are equal in all sources. Return from the first one
- return Sources.front()->GetColumns();
+ return Sources_.front()->GetColumns();
}
void GetInputTables(TTableList& tableList) const final {
- for (auto& source: Sources) {
+ for (auto& source: Sources_) {
source->GetInputTables(tableList);
}
ISource::GetInputTables(tableList);
}
bool IsStream() const final {
- return AnyOf(Sources, [] (const TSourcePtr& s) { return s->IsStream(); });
+ return AnyOf(Sources_, [] (const TSourcePtr& s) { return s->IsStream(); });
}
bool DoInit(TContext& ctx, ISource* src) final {
- for (auto& source: Sources) {
- if (AsInner) {
+ for (auto& source: Sources_) {
+ if (AsInner_) {
source->UseAsInner();
}
@@ -510,7 +510,7 @@ public:
}
TMaybe<bool> AddColumn(TContext& ctx, TColumnNode& column) final {
- for (auto& source: Sources) {
+ for (auto& source: Sources_) {
if (!source->AddColumn(ctx, column)) {
return {};
}
@@ -521,8 +521,8 @@ public:
TNodePtr Build(TContext& ctx) final {
TNodePtr block;
auto muxArgs = Y();
- for (size_t i = 0; i < Sources.size(); ++i) {
- auto& source = Sources[i];
+ for (size_t i = 0; i < Sources_.size(); ++i) {
+ auto& source = Sources_[i];
auto input = source->Build(ctx);
auto ref = ctx.MakeName("src");
muxArgs->Add(ref);
@@ -549,11 +549,11 @@ public:
}
TPtr DoClone() const final {
- return new TMuxSource(Pos, CloneContainer(Sources));
+ return new TMuxSource(Pos_, CloneContainer(Sources_));
}
protected:
- TVector<TSourcePtr> Sources;
+ TVector<TSourcePtr> Sources_;
};
TSourcePtr BuildMuxSource(TPosition pos, TVector<TSourcePtr>&& sources) {
@@ -564,9 +564,9 @@ class TSubqueryRefNode: public IRealSource {
public:
TSubqueryRefNode(const TNodePtr& subquery, const TString& alias, int tupleIndex)
: IRealSource(subquery->GetPos())
- , Subquery(subquery)
- , Alias(alias)
- , TupleIndex(tupleIndex)
+ , Subquery_(subquery)
+ , Alias_(alias)
+ , TupleIndex_(tupleIndex)
{
YQL_ENSURE(subquery->GetSource());
}
@@ -577,26 +577,26 @@ public:
bool DoInit(TContext& ctx, ISource* src) override {
// independent subquery should not connect source
- Subquery->UseAsInner();
- if (!Subquery->Init(ctx, nullptr)) {
+ Subquery_->UseAsInner();
+ if (!Subquery_->Init(ctx, nullptr)) {
return false;
}
- Columns = *Subquery->GetSource()->GetColumns();
- Node = BuildAtom(Pos, Alias, TNodeFlags::Default);
- if (TupleIndex != -1) {
- Node = Y("Nth", Node, Q(ToString(TupleIndex)));
+ Columns_ = *Subquery_->GetSource()->GetColumns();
+ Node_ = BuildAtom(Pos_, Alias_, TNodeFlags::Default);
+ if (TupleIndex_ != -1) {
+ Node_ = Y("Nth", Node_, Q(ToString(TupleIndex_)));
}
- if (!Node->Init(ctx, src)) {
+ if (!Node_->Init(ctx, src)) {
return false;
}
- if (src && Subquery->GetSource()->IsSelect()) {
- auto columnsPtr = &Columns;
+ if (src && Subquery_->GetSource()->IsSelect()) {
+ auto columnsPtr = &Columns_;
if (columnsPtr && (columnsPtr->All || columnsPtr->QualifiedAll || columnsPtr->List.size() == 1)) {
- Node = Y("SingleMember", Y("SqlAccess", Q("dict"), Y("Take", Node, Y("Uint64", Q("1"))), Y("Uint64", Q("0"))));
+ Node_ = Y("SingleMember", Y("SqlAccess", Q("dict"), Y("Take", Node_, Y("Uint64", Q("1"))), Y("Uint64", Q("0"))));
} else {
- ctx.Error(Pos) << "Source used in expression should contain one concrete column";
- if (RefPos) {
- ctx.Error(*RefPos) << "Source is used here";
+ ctx.Error(Pos_) << "Source used in expression should contain one concrete column";
+ if (RefPos_) {
+ ctx.Error(*RefPos_) << "Source is used here";
}
return false;
@@ -606,14 +606,14 @@ public:
if (!BuildSamplingLambda(sample)) {
return false;
} else if (sample) {
- Node = Y("block", Q(Y(Y("let", Node, Y("OrderedFlatMap", Node, sample)), Y("return", Node))));
+ Node_ = Y("block", Q(Y(Y("let", Node_, Y("OrderedFlatMap", Node_, sample)), Y("return", Node_))));
}
return true;
}
TNodePtr Build(TContext& ctx) override {
Y_UNUSED(ctx);
- return Node;
+ return Node_;
}
bool SetSamplingOptions(
@@ -635,27 +635,27 @@ public:
}
bool IsStream() const override {
- return Subquery->GetSource()->IsStream();
+ return Subquery_->GetSource()->IsStream();
}
void DoUpdateState() const override {
- State.Set(ENodeState::Const, true);
+ State_.Set(ENodeState::Const, true);
}
TAstNode* Translate(TContext& ctx) const override {
- Y_DEBUG_ABORT_UNLESS(Node);
- return Node->Translate(ctx);
+ Y_DEBUG_ABORT_UNLESS(Node_);
+ return Node_->Translate(ctx);
}
TPtr DoClone() const final {
- return new TSubqueryRefNode(Subquery, Alias, TupleIndex);
+ return new TSubqueryRefNode(Subquery_, Alias_, TupleIndex_);
}
protected:
- TNodePtr Subquery;
- const TString Alias;
- const int TupleIndex;
- TNodePtr Node;
+ TNodePtr Subquery_;
+ const TString Alias_;
+ const int TupleIndex_;
+ TNodePtr Node_;
};
TNodePtr BuildSubqueryRef(TNodePtr subquery, const TString& alias, int tupleIndex) {
@@ -666,13 +666,13 @@ class TInvalidSubqueryRefNode: public ISource {
public:
TInvalidSubqueryRefNode(TPosition pos)
: ISource(pos)
- , Pos(pos)
+ , Pos_(pos)
{
}
bool DoInit(TContext& ctx, ISource* src) override {
Y_UNUSED(src);
- ctx.Error(Pos) << "Named subquery can not be used as a top level statement in libraries";
+ ctx.Error(Pos_) << "Named subquery can not be used as a top level statement in libraries";
return false;
}
@@ -682,11 +682,11 @@ public:
}
TPtr DoClone() const final {
- return new TInvalidSubqueryRefNode(Pos);
+ return new TInvalidSubqueryRefNode(Pos_);
}
protected:
- const TPosition Pos;
+ const TPosition Pos_;
};
TNodePtr BuildInvalidSubqueryRef(TPosition subqueryPos) {
@@ -697,14 +697,14 @@ class TTableSource: public IRealSource {
public:
TTableSource(TPosition pos, const TTableRef& table, const TString& label)
: IRealSource(pos)
- , Table(table)
- , FakeSource(BuildFakeSource(pos))
+ , Table_(table)
+ , FakeSource_(BuildFakeSource(pos))
{
- SetLabel(label.empty() ? Table.ShortName() : label);
+ SetLabel(label.empty() ? Table_.ShortName() : label);
}
void GetInputTables(TTableList& tableList) const override {
- tableList.push_back(Table);
+ tableList.push_back(Table_);
ISource::GetInputTables(tableList);
}
@@ -714,7 +714,7 @@ public:
}
TMaybe<bool> AddColumn(TContext& ctx, TColumnNode& column) override {
- Columns.Add(column.GetColumnName(), column.GetCountHint(), column.IsArtificial(), column.IsReliable());
+ Columns_.Add(column.GetColumnName(), column.GetCountHint(), column.IsArtificial(), column.IsReliable());
if (!IRealSource::AddColumn(ctx, column)) {
return {};
}
@@ -746,7 +746,7 @@ public:
break;
}
- if (!samplingRate->Init(ctx, FakeSource.Get())) {
+ if (!samplingRate->Init(ctx, FakeSource_.Get())) {
return false;
}
@@ -754,13 +754,13 @@ public:
auto sampleSettings = Q(Y(Q(modeName), Y("EvaluateAtom", Y("ToString", samplingRate)), Y("EvaluateAtom", Y("ToString", samplingSeed))));
auto sampleOption = Q(Y(Q("sample"), sampleSettings));
- if (Table.Options) {
- if (!Table.Options->Init(ctx, this)) {
+ if (Table_.Options) {
+ if (!Table_.Options->Init(ctx, this)) {
return false;
}
- Table.Options = L(Table.Options, sampleOption);
+ Table_.Options = L(Table_.Options, sampleOption);
} else {
- Table.Options = Y(sampleOption);
+ Table_.Options = Y(sampleOption);
}
return true;
}
@@ -769,36 +769,36 @@ public:
Y_UNUSED(ctx);
TTableHints merged = contextHints;
MergeHints(merged, hints);
- Table.Options = BuildInputOptions(pos, merged);
+ Table_.Options = BuildInputOptions(pos, merged);
return true;
}
bool SetViewName(TContext& ctx, TPosition pos, const TString& view) override {
- return Table.Keys->SetViewName(ctx, pos, view);
+ return Table_.Keys->SetViewName(ctx, pos, view);
}
TNodePtr Build(TContext& ctx) override {
- if (!Table.Keys->Init(ctx, nullptr)) {
+ if (!Table_.Keys->Init(ctx, nullptr)) {
return nullptr;
}
- return AstNode(Table.RefName);
+ return AstNode(Table_.RefName);
}
bool IsStream() const override {
- return IsStreamingService(Table.Service);
+ return IsStreamingService(Table_.Service);
}
TPtr DoClone() const final {
- return new TTableSource(Pos, Table, GetLabel());
+ return new TTableSource(Pos_, Table_, GetLabel());
}
bool IsTableSource() const override {
return true;
}
protected:
- TTableRef Table;
+ TTableRef Table_;
private:
- const TSourcePtr FakeSource;
+ const TSourcePtr FakeSource_;
};
TSourcePtr BuildTableSource(TPosition pos, const TTableRef& table, const TString& label) {
@@ -809,35 +809,35 @@ class TInnerSource: public IProxySource {
public:
TInnerSource(TPosition pos, TNodePtr node, const TString& service, const TDeferredAtom& cluster, const TString& label)
: IProxySource(pos, nullptr)
- , Node(node)
- , Service(service)
- , Cluster(cluster)
+ , Node_(node)
+ , Service_(service)
+ , Cluster_(cluster)
{
SetLabel(label);
}
bool SetSamplingOptions(TContext& ctx, TPosition pos, ESampleClause sampleClause, ESampleMode mode, TNodePtr samplingRate, TNodePtr samplingSeed) override {
Y_UNUSED(ctx);
- SamplingPos = pos;
- SamplingClause = sampleClause;
- SamplingMode = mode;
- SamplingRate = samplingRate;
- SamplingSeed = samplingSeed;
+ SamplingPos_ = pos;
+ SamplingClause_ = sampleClause;
+ SamplingMode_ = mode;
+ SamplingRate_ = samplingRate;
+ SamplingSeed_ = samplingSeed;
return true;
}
bool SetTableHints(TContext& ctx, TPosition pos, const TTableHints& hints, const TTableHints& contextHints) override {
Y_UNUSED(ctx);
- HintsPos = pos;
- Hints = hints;
- ContextHints = contextHints;
+ HintsPos_ = pos;
+ Hints_ = hints;
+ ContextHints_ = contextHints;
return true;
}
bool SetViewName(TContext& ctx, TPosition pos, const TString& view) override {
Y_UNUSED(ctx);
- ViewPos = pos;
- View = view;
+ ViewPos_ = pos;
+ View_ = view;
return true;
}
@@ -856,45 +856,45 @@ public:
bool DoInit(TContext& ctx, ISource* initSrc) override {
Y_UNUSED(initSrc);
- auto source = Node->GetSource();
+ auto source = Node_->GetSource();
if (!source) {
- NewSource = TryMakeSourceFromExpression(Pos, ctx, Service, Cluster, Node);
- source = NewSource.Get();
+ NewSource_ = TryMakeSourceFromExpression(Pos_, ctx, Service_, Cluster_, Node_);
+ source = NewSource_.Get();
}
if (!source) {
- ctx.Error(Pos) << "Invalid inner source node";
+ ctx.Error(Pos_) << "Invalid inner source node";
return false;
}
- if (SamplingPos) {
- if (!source->SetSamplingOptions(ctx, *SamplingPos, SamplingClause, SamplingMode, SamplingRate, SamplingSeed)) {
+ if (SamplingPos_) {
+ if (!source->SetSamplingOptions(ctx, *SamplingPos_, SamplingClause_, SamplingMode_, SamplingRate_, SamplingSeed_)) {
return false;
}
}
- if (ViewPos) {
- if (!source->SetViewName(ctx, *ViewPos, View)) {
+ if (ViewPos_) {
+ if (!source->SetViewName(ctx, *ViewPos_, View_)) {
return false;
}
}
- if (HintsPos) {
- if (!source->SetTableHints(ctx, *HintsPos, Hints, ContextHints)) {
+ if (HintsPos_) {
+ if (!source->SetTableHints(ctx, *HintsPos_, Hints_, ContextHints_)) {
return false;
}
}
- source->SetLabel(Label);
- if (!NewSource) {
- Node->UseAsInner();
- if (!Node->Init(ctx, nullptr)) {
+ source->SetLabel(Label_);
+ if (!NewSource_) {
+ Node_->UseAsInner();
+ if (!Node_->Init(ctx, nullptr)) {
return false;
}
}
SetSource(source);
- if (NewSource && !NewSource->Init(ctx, nullptr)) {
+ if (NewSource_ && !NewSource_->Init(ctx, nullptr)) {
return false;
}
@@ -903,42 +903,42 @@ public:
TNodePtr Build(TContext& ctx) override {
Y_UNUSED(ctx);
- return NewSource ? NewSource->Build(ctx) : Node;
+ return NewSource_ ? NewSource_->Build(ctx) : Node_;
}
bool IsStream() const override {
- auto source = Node->GetSource();
+ auto source = Node_->GetSource();
if (source) {
return source->IsStream();
}
// NewSource will be built later in DoInit->TryMakeSourceFromExpression
// where Service will be used in all situations
// let's detect IsStream by Service value
- return IsStreamingService(Service);
+ return IsStreamingService(Service_);
}
TPtr DoClone() const final {
- return new TInnerSource(Pos, SafeClone(Node), Service, Cluster, GetLabel());
+ return new TInnerSource(Pos_, SafeClone(Node_), Service_, Cluster_, GetLabel());
}
protected:
- TNodePtr Node;
- TString Service;
- TDeferredAtom Cluster;
- TSourcePtr NewSource;
+ TNodePtr Node_;
+ TString Service_;
+ TDeferredAtom Cluster_;
+ TSourcePtr NewSource_;
private:
- TMaybe<TPosition> SamplingPos;
- ESampleClause SamplingClause;
- ESampleMode SamplingMode;
- TNodePtr SamplingRate;
- TNodePtr SamplingSeed;
-
- TMaybe<TPosition> ViewPos;
- TString View;
-
- TMaybe<TPosition> HintsPos;
- TTableHints Hints;
- TTableHints ContextHints;
+ TMaybe<TPosition> SamplingPos_;
+ ESampleClause SamplingClause_;
+ ESampleMode SamplingMode_;
+ TNodePtr SamplingRate_;
+ TNodePtr SamplingSeed_;
+
+ TMaybe<TPosition> ViewPos_;
+ TString View_;
+
+ TMaybe<TPosition> HintsPos_;
+ TTableHints Hints_;
+ TTableHints ContextHints_;
};
TSourcePtr BuildInnerSource(TPosition pos, TNodePtr node, const TString& service, const TDeferredAtom& cluster, const TString& label) {
@@ -984,40 +984,40 @@ public:
const TVector<TSortSpecificationPtr>& assumeOrderBy,
bool listCall)
: IRealSource(pos)
- , Mode(mode)
- , Source(std::move(source))
- , OrderBy(std::move(orderBy))
- , Keys(std::move(keys))
- , Args(std::move(args))
- , Udf(udf)
- , Having(having)
- , Settings(settings)
- , AssumeOrderBy(assumeOrderBy)
- , ListCall(listCall)
+ , Mode_(mode)
+ , Source_(std::move(source))
+ , OrderBy_(std::move(orderBy))
+ , Keys_(std::move(keys))
+ , Args_(std::move(args))
+ , Udf_(udf)
+ , Having_(having)
+ , Settings_(settings)
+ , AssumeOrderBy_(assumeOrderBy)
+ , ListCall_(listCall)
{
- YQL_ENSURE(!Keys.empty());
- YQL_ENSURE(Source);
+ YQL_ENSURE(!Keys_.empty());
+ YQL_ENSURE(Source_);
}
void GetInputTables(TTableList& tableList) const override {
- Source->GetInputTables(tableList);
+ Source_->GetInputTables(tableList);
ISource::GetInputTables(tableList);
}
bool DoInit(TContext& ctx, ISource* src) final {
- if (AsInner) {
- Source->UseAsInner();
+ if (AsInner_) {
+ Source_->UseAsInner();
}
YQL_ENSURE(!src);
- if (!Source->Init(ctx, src)) {
+ if (!Source_->Init(ctx, src)) {
return false;
}
- if (!Source->InitFilters(ctx)) {
+ if (!Source_->InitFilters(ctx)) {
return false;
}
- src = Source.Get();
- for (auto& key: Keys) {
+ src = Source_.Get();
+ for (auto& key: Keys_) {
if (!key->Init(ctx, src)) {
return false;
}
@@ -1027,39 +1027,39 @@ public:
return false;
}
}
- if (Having && !Having->Init(ctx, nullptr)) {
+ if (Having_ && !Having_->Init(ctx, nullptr)) {
return false;
}
/// SIN: verify reduce one argument
- if (Args.size() != 1) {
- ctx.Error(Pos) << "REDUCE requires exactly one UDF argument";
+ if (Args_.size() != 1) {
+ ctx.Error(Pos_) << "REDUCE requires exactly one UDF argument";
return false;
}
- if (!Args[0]->Init(ctx, src)) {
+ if (!Args_[0]->Init(ctx, src)) {
return false;
}
- for (auto orderSpec: OrderBy) {
+ for (auto orderSpec: OrderBy_) {
if (!orderSpec->OrderExpr->Init(ctx, src)) {
return false;
}
}
- if (!Udf->Init(ctx, src)) {
+ if (!Udf_->Init(ctx, src)) {
return false;
}
- if (Udf->GetLabel().empty()) {
- Columns.SetAll();
+ if (Udf_->GetLabel().empty()) {
+ Columns_.SetAll();
} else {
- Columns.Add(&Udf->GetLabel(), false);
+ Columns_.Add(&Udf_->GetLabel(), false);
}
const auto label = GetLabel();
- for (const auto& sortSpec: AssumeOrderBy) {
+ for (const auto& sortSpec: AssumeOrderBy_) {
auto& expr = sortSpec->OrderExpr;
- SetLabel(Source->GetLabel());
+ SetLabel(Source_->GetLabel());
if (!expr->Init(ctx, this)) {
return false;
}
@@ -1073,49 +1073,49 @@ public:
}
TNodePtr Build(TContext& ctx) final {
- auto input = Source->Build(ctx);
+ auto input = Source_->Build(ctx);
if (!input) {
return nullptr;
}
auto keysTuple = Y();
- if (Keys.size() == 1) {
- keysTuple = Y("Member", "row", BuildQuotedAtom(Pos, *Keys.back()->GetColumnName()));
+ if (Keys_.size() == 1) {
+ keysTuple = Y("Member", "row", BuildQuotedAtom(Pos_, *Keys_.back()->GetColumnName()));
}
else {
- for (const auto& key: Keys) {
- keysTuple = L(keysTuple, Y("Member", "row", BuildQuotedAtom(Pos, *key->GetColumnName())));
+ for (const auto& key: Keys_) {
+ keysTuple = L(keysTuple, Y("Member", "row", BuildQuotedAtom(Pos_, *key->GetColumnName())));
}
keysTuple = Q(keysTuple);
}
- auto extractKey = Y("SqlExtractKey", "row", BuildLambda(Pos, Y("row"), keysTuple));
- auto extractKeyLambda = BuildLambda(Pos, Y("row"), extractKey);
+ auto extractKey = Y("SqlExtractKey", "row", BuildLambda(Pos_, Y("row"), keysTuple));
+ auto extractKeyLambda = BuildLambda(Pos_, Y("row"), extractKey);
TNodePtr processPartitions;
- if (ListCall) {
- if (Mode != ReduceMode::ByAll) {
- ctx.Error(Pos) << "TableRows() must be used only with USING ALL";
+ if (ListCall_) {
+ if (Mode_ != ReduceMode::ByAll) {
+ ctx.Error(Pos_) << "TableRows() must be used only with USING ALL";
return nullptr;
}
- TNodePtr expr = BuildAtom(Pos, "partitionStream");
- processPartitions = Y("SqlReduce", "partitionStream", BuildQuotedAtom(Pos, "byAllList", TNodeFlags::Default), Udf, expr);
+ TNodePtr expr = BuildAtom(Pos_, "partitionStream");
+ processPartitions = Y("SqlReduce", "partitionStream", BuildQuotedAtom(Pos_, "byAllList", TNodeFlags::Default), Udf_, expr);
} else {
- switch (Mode) {
+ switch (Mode_) {
case ReduceMode::ByAll: {
- auto columnPtr = Args[0]->GetColumnName();
- TNodePtr expr = BuildAtom(Pos, "partitionStream");
+ auto columnPtr = Args_[0]->GetColumnName();
+ TNodePtr expr = BuildAtom(Pos_, "partitionStream");
if (!columnPtr || *columnPtr != "*") {
- expr = Y("Map", "partitionStream", BuildLambda(Pos, Y("keyPair"), Q(L(Y(),\
+ expr = Y("Map", "partitionStream", BuildLambda(Pos_, Y("keyPair"), Q(L(Y(),\
Y("Nth", "keyPair", Q(ToString("0"))),\
- Y("Map", Y("Nth", "keyPair", Q(ToString("1"))), BuildLambda(Pos, Y("row"), Args[0]))))));
+ Y("Map", Y("Nth", "keyPair", Q(ToString("1"))), BuildLambda(Pos_, Y("row"), Args_[0]))))));
}
- processPartitions = Y("SqlReduce", "partitionStream", BuildQuotedAtom(Pos, "byAll", TNodeFlags::Default), Udf, expr);
+ processPartitions = Y("SqlReduce", "partitionStream", BuildQuotedAtom(Pos_, "byAll", TNodeFlags::Default), Udf_, expr);
break;
}
case ReduceMode::ByPartition: {
- processPartitions = Y("SqlReduce", "partitionStream", extractKeyLambda, Udf,
- BuildLambda(Pos, Y("row"), Args[0]));
+ processPartitions = Y("SqlReduce", "partitionStream", extractKeyLambda, Udf_,
+ BuildLambda(Pos_, Y("row"), Args_[0]));
break;
}
default:
@@ -1125,21 +1125,21 @@ public:
TNodePtr sortDirection;
TNodePtr sortKeySelector;
- FillSortParts(OrderBy, sortDirection, sortKeySelector);
- if (!OrderBy.empty()) {
- sortKeySelector = BuildLambda(Pos, Y("row"), Y("SqlExtractKey", "row", sortKeySelector));
+ FillSortParts(OrderBy_, sortDirection, sortKeySelector);
+ if (!OrderBy_.empty()) {
+ sortKeySelector = BuildLambda(Pos_, Y("row"), Y("SqlExtractKey", "row", sortKeySelector));
}
- auto partitionByKey = Y(!ListCall && Mode == ReduceMode::ByAll ? "PartitionByKey" : "PartitionsByKeys", "core", extractKeyLambda,
- sortDirection, sortKeySelector, BuildLambda(Pos, Y("partitionStream"), processPartitions));
+ auto partitionByKey = Y(!ListCall_ && Mode_ == ReduceMode::ByAll ? "PartitionByKey" : "PartitionsByKeys", "core", extractKeyLambda,
+ sortDirection, sortKeySelector, BuildLambda(Pos_, Y("partitionStream"), processPartitions));
- auto inputLabel = ListCall ? "inputRowsList" : "core";
+ auto inputLabel = ListCall_ ? "inputRowsList" : "core";
auto block(Y(Y("let", inputLabel, input)));
- auto filter = Source->BuildFilter(ctx, inputLabel);
+ auto filter = Source_->BuildFilter(ctx, inputLabel);
if (filter) {
block = L(block, Y("let", inputLabel, filter));
}
- if (ListCall) {
+ if (ListCall_) {
block = L(block, Y("let", "core", "inputRowsList"));
}
@@ -1147,9 +1147,9 @@ public:
block = L(block, Y("let", "core", Y("RemoveSystemMembers", "core")));
}
block = L(block, Y("let", "core", Y("AutoDemux", partitionByKey)));
- if (Having) {
+ if (Having_) {
block = L(block, Y("let", "core",
- Y("Filter", "core", BuildLambda(Pos, Y("row"), Y("Coalesce", Having, Y("Bool", Q("false")))))
+ Y("Filter", "core", BuildLambda(Pos_, Y("row"), Y("Coalesce", Having_, Y("Bool", Q("false")))))
));
}
return Y("block", Q(L(block, Y("return", "core"))));
@@ -1157,41 +1157,41 @@ public:
TNodePtr BuildSort(TContext& ctx, const TString& label) override {
Y_UNUSED(ctx);
- if (AssumeOrderBy.empty()) {
+ if (AssumeOrderBy_.empty()) {
return nullptr;
}
- return Y("let", label, BuildSortSpec(AssumeOrderBy, label, false, true));
+ return Y("let", label, BuildSortSpec(AssumeOrderBy_, label, false, true));
}
EOrderKind GetOrderKind() const override {
- return AssumeOrderBy.empty() ? EOrderKind::None : EOrderKind::Assume;
+ return AssumeOrderBy_.empty() ? EOrderKind::None : EOrderKind::Assume;
}
TWriteSettings GetWriteSettings() const final {
- return Settings;
+ return Settings_;
}
bool HasSelectResult() const final {
- return !Settings.Discard;
+ return !Settings_.Discard;
}
TPtr DoClone() const final {
- return new TReduceSource(Pos, Mode, Source->CloneSource(), CloneContainer(OrderBy),
- CloneContainer(Keys), CloneContainer(Args), SafeClone(Udf), SafeClone(Having), Settings,
- CloneContainer(AssumeOrderBy), ListCall);
+ return new TReduceSource(Pos_, Mode_, Source_->CloneSource(), CloneContainer(OrderBy_),
+ CloneContainer(Keys_), CloneContainer(Args_), SafeClone(Udf_), SafeClone(Having_), Settings_,
+ CloneContainer(AssumeOrderBy_), ListCall_);
}
private:
- ReduceMode Mode;
- TSourcePtr Source;
- TVector<TSortSpecificationPtr> OrderBy;
- TVector<TNodePtr> Keys;
- TVector<TNodePtr> Args;
- TNodePtr Udf;
- TNodePtr Having;
- const TWriteSettings Settings;
- TVector<TSortSpecificationPtr> AssumeOrderBy;
- const bool ListCall;
+ ReduceMode Mode_;
+ TSourcePtr Source_;
+ TVector<TSortSpecificationPtr> OrderBy_;
+ TVector<TNodePtr> Keys_;
+ TVector<TNodePtr> Args_;
+ TNodePtr Udf_;
+ TNodePtr Having_;
+ const TWriteSettings Settings_;
+ TVector<TSortSpecificationPtr> AssumeOrderBy_;
+ const bool ListCall_;
};
TSourcePtr BuildReduce(TPosition pos,
@@ -1247,39 +1247,39 @@ class TCompositeSelect: public IRealSource {
public:
TCompositeSelect(TPosition pos, TSourcePtr source, TSourcePtr originalSource, const TWriteSettings& settings)
: IRealSource(pos)
- , Source(std::move(source))
- , OriginalSource(std::move(originalSource))
- , Settings(settings)
+ , Source_(std::move(source))
+ , OriginalSource_(std::move(originalSource))
+ , Settings_(settings)
{
- YQL_ENSURE(Source);
+ YQL_ENSURE(Source_);
}
void SetSubselects(TVector<TSourcePtr>&& subselects, TVector<TNodePtr>&& grouping, TVector<TNodePtr>&& groupByExpr) {
- Subselects = std::move(subselects);
- Grouping = std::move(grouping);
- GroupByExpr = std::move(groupByExpr);
- Y_DEBUG_ABORT_UNLESS(Subselects.size() > 1);
+ Subselects_ = std::move(subselects);
+ Grouping_ = std::move(grouping);
+ GroupByExpr_ = std::move(groupByExpr);
+ Y_DEBUG_ABORT_UNLESS(Subselects_.size() > 1);
}
void GetInputTables(TTableList& tableList) const override {
- for (const auto& select: Subselects) {
+ for (const auto& select: Subselects_) {
select->GetInputTables(tableList);
}
ISource::GetInputTables(tableList);
}
bool DoInit(TContext& ctx, ISource* src) override {
- if (AsInner) {
- Source->UseAsInner();
+ if (AsInner_) {
+ Source_->UseAsInner();
}
if (src) {
- src->AddDependentSource(Source);
+ src->AddDependentSource(Source_);
}
- if (!Source->Init(ctx, src)) {
+ if (!Source_->Init(ctx, src)) {
return false;
}
- if (!Source->InitFilters(ctx)) {
+ if (!Source_->InitFilters(ctx)) {
return false;
}
@@ -1287,16 +1287,16 @@ public:
return false;
}
- auto origSrc = OriginalSource.Get();
+ auto origSrc = OriginalSource_.Get();
if (!origSrc->Init(ctx, src)) {
return false;
}
if (origSrc->IsFlattenByColumns() || origSrc->IsFlattenColumns()) {
- Flatten = origSrc->IsFlattenByColumns() ?
+ Flatten_ = origSrc->IsFlattenByColumns() ?
origSrc->BuildFlattenByColumns("row") :
origSrc->BuildFlattenColumns("row");
- if (!Flatten || !Flatten->Init(ctx, src)) {
+ if (!Flatten_ || !Flatten_->Init(ctx, src)) {
return false;
}
}
@@ -1307,26 +1307,26 @@ public:
return false;
}
}
- PreFlattenMap = origSrc->BuildPreFlattenMap(ctx);
- if (!PreFlattenMap) {
+ PreFlattenMap_ = origSrc->BuildPreFlattenMap(ctx);
+ if (!PreFlattenMap_) {
return false;
}
}
- for (const auto& select: Subselects) {
- select->SetLabel(Label);
- if (AsInner) {
+ for (const auto& select: Subselects_) {
+ select->SetLabel(Label_);
+ if (AsInner_) {
select->UseAsInner();
}
- if (!select->Init(ctx, Source.Get())) {
+ if (!select->Init(ctx, Source_.Get())) {
return false;
}
}
TMaybe<size_t> groupingColumnsCount;
size_t idx = 0;
- for (const auto& select : Subselects) {
+ for (const auto& select : Subselects_) {
size_t count = select->GetGroupingColumnsCount();
if (!groupingColumnsCount.Defined()) {
groupingColumnsCount = count;
@@ -1341,7 +1341,7 @@ public:
}
TMaybe<bool> AddColumn(TContext& ctx, TColumnNode& column) override {
- for (const auto& select: Subselects) {
+ for (const auto& select: Subselects_) {
if (!select->AddColumn(ctx, column)) {
return {};
}
@@ -1350,23 +1350,23 @@ public:
}
TNodePtr Build(TContext& ctx) override {
- auto input = Source->Build(ctx);
+ auto input = Source_->Build(ctx);
auto block(Y(Y("let", "composite", input)));
bool ordered = ctx.UseUnordered(*this);
- if (PreFlattenMap) {
- block = L(block, Y("let", "composite", Y(ordered ? "OrderedFlatMap" : "FlatMap", "composite", BuildLambda(Pos, Y("row"), PreFlattenMap))));
+ if (PreFlattenMap_) {
+ block = L(block, Y("let", "composite", Y(ordered ? "OrderedFlatMap" : "FlatMap", "composite", BuildLambda(Pos_, Y("row"), PreFlattenMap_))));
}
- if (Flatten) {
- block = L(block, Y("let", "composite", Y(ordered ? "OrderedFlatMap" : "FlatMap", "composite", BuildLambda(Pos, Y("row"), Flatten, "res"))));
+ if (Flatten_) {
+ block = L(block, Y("let", "composite", Y(ordered ? "OrderedFlatMap" : "FlatMap", "composite", BuildLambda(Pos_, Y("row"), Flatten_, "res"))));
}
- auto filter = Source->BuildFilter(ctx, "composite");
+ auto filter = Source_->BuildFilter(ctx, "composite");
if (filter) {
block = L(block, Y("let", "composite", filter));
}
TNodePtr compositeNode = Y("UnionAll");
- for (const auto& select: Subselects) {
+ for (const auto& select: Subselects_) {
YQL_ENSURE(dynamic_cast<IComposableSource*>(select.Get()));
auto addNode = select->Build(ctx);
if (!addNode) {
@@ -1376,88 +1376,88 @@ public:
}
block = L(block, Y("let", "core", compositeNode));
- YQL_ENSURE(!Subselects.empty());
- dynamic_cast<IComposableSource*>(Subselects.front().Get())->BuildProjectWindowDistinct(block, ctx, false);
+ YQL_ENSURE(!Subselects_.empty());
+ dynamic_cast<IComposableSource*>(Subselects_.front().Get())->BuildProjectWindowDistinct(block, ctx, false);
return Y("block", Q(L(block, Y("return", "core"))));
}
bool IsGroupByColumn(const TString& column) const override {
- YQL_ENSURE(!GroupingCols.empty());
- return GroupingCols.contains(column);
+ YQL_ENSURE(!GroupingCols_.empty());
+ return GroupingCols_.contains(column);
}
const TSet<TString>& GetGroupingCols() const {
- return GroupingCols;
+ return GroupingCols_;
}
TNodePtr BuildSort(TContext& ctx, const TString& label) override {
- return Subselects.front()->BuildSort(ctx, label);
+ return Subselects_.front()->BuildSort(ctx, label);
}
EOrderKind GetOrderKind() const override {
- return Subselects.front()->GetOrderKind();
+ return Subselects_.front()->GetOrderKind();
}
const TColumns* GetColumns() const override{
- return Subselects.front()->GetColumns();
+ return Subselects_.front()->GetColumns();
}
ISource* RealSource() const {
- return Source.Get();
+ return Source_.Get();
}
TWriteSettings GetWriteSettings() const override {
- return Settings;
+ return Settings_;
}
bool HasSelectResult() const override {
- return !Settings.Discard;
+ return !Settings_.Discard;
}
TNodePtr DoClone() const final {
- auto newSource = MakeIntrusive<TCompositeSelect>(Pos, Source->CloneSource(), OriginalSource->CloneSource(), Settings);
- newSource->SetSubselects(CloneContainer(Subselects), CloneContainer(Grouping), CloneContainer(GroupByExpr));
+ auto newSource = MakeIntrusive<TCompositeSelect>(Pos_, Source_->CloneSource(), OriginalSource_->CloneSource(), Settings_);
+ newSource->SetSubselects(CloneContainer(Subselects_), CloneContainer(Grouping_), CloneContainer(GroupByExpr_));
return newSource;
}
private:
bool CalculateGroupingCols(TContext& ctx, ISource* initSrc) {
- auto origSrc = OriginalSource->CloneSource();
+ auto origSrc = OriginalSource_->CloneSource();
if (!origSrc->Init(ctx, initSrc)) {
return false;
}
bool hasError = false;
- for (auto& expr: GroupByExpr) {
+ for (auto& expr: GroupByExpr_) {
if (!expr->Init(ctx, origSrc.Get()) || !IsComparableExpression(ctx, expr, false, "GROUP BY")) {
hasError = true;
}
}
- if (!origSrc->AddExpressions(ctx, GroupByExpr, EExprSeat::GroupBy)) {
+ if (!origSrc->AddExpressions(ctx, GroupByExpr_, EExprSeat::GroupBy)) {
hasError = true;
}
- YQL_ENSURE(!Grouping.empty());
- for (auto& grouping : Grouping) {
+ YQL_ENSURE(!Grouping_.empty());
+ for (auto& grouping : Grouping_) {
TString keyColumn;
if (!InitAndGetGroupKey(ctx, grouping, origSrc.Get(), "grouping sets", keyColumn)) {
hasError = true;
} else if (!keyColumn.empty()) {
- GroupingCols.insert(keyColumn);
+ GroupingCols_.insert(keyColumn);
}
}
return !hasError;
}
- TSourcePtr Source;
- TSourcePtr OriginalSource;
- TNodePtr Flatten;
- TNodePtr PreFlattenMap;
- const TWriteSettings Settings;
- TVector<TSourcePtr> Subselects;
- TVector<TNodePtr> Grouping;
- TVector<TNodePtr> GroupByExpr;
- TSet<TString> GroupingCols;
+ TSourcePtr Source_;
+ TSourcePtr OriginalSource_;
+ TNodePtr Flatten_;
+ TNodePtr PreFlattenMap_;
+ const TWriteSettings Settings_;
+ TVector<TSourcePtr> Subselects_;
+ TVector<TNodePtr> Grouping_;
+ TVector<TNodePtr> GroupByExpr_;
+ TSet<TString> GroupingCols_;
};
namespace {
@@ -1496,56 +1496,56 @@ public:
TColumnsSets&& distinctSets
)
: IRealSource(pos)
- , Source(std::move(source))
- , GroupByExpr(groupByExpr)
- , GroupBy(groupBy)
- , AssumeSorted(assumeSorted)
- , CompactGroupBy(compactGroupBy)
- , GroupBySuffix(groupBySuffix)
- , OrderBy(orderBy)
- , Having(having)
- , WinSpecs(winSpecs)
- , Terms(terms)
- , Without(without)
- , ForceWithout(forceWithout)
- , Distinct(distinct)
- , LegacyHoppingWindowSpec(legacyHoppingWindowSpec)
- , SelectStream(selectStream)
- , Settings(settings)
- , UniqueSets(std::move(uniqueSets))
- , DistinctSets(std::move(distinctSets))
+ , Source_(std::move(source))
+ , GroupByExpr_(groupByExpr)
+ , GroupBy_(groupBy)
+ , AssumeSorted_(assumeSorted)
+ , CompactGroupBy_(compactGroupBy)
+ , GroupBySuffix_(groupBySuffix)
+ , OrderBy_(orderBy)
+ , Having_(having)
+ , WinSpecs_(winSpecs)
+ , Terms_(terms)
+ , Without_(without)
+ , ForceWithout_(forceWithout)
+ , Distinct_(distinct)
+ , LegacyHoppingWindowSpec_(legacyHoppingWindowSpec)
+ , SelectStream_(selectStream)
+ , Settings_(settings)
+ , UniqueSets_(std::move(uniqueSets))
+ , DistinctSets_(std::move(distinctSets))
{
}
void AllColumns() override {
- if (!OrderByInit) {
- Columns.SetAll();
+ if (!OrderByInit_) {
+ Columns_.SetAll();
}
}
void GetInputTables(TTableList& tableList) const override {
- Source->GetInputTables(tableList);
+ Source_->GetInputTables(tableList);
ISource::GetInputTables(tableList);
}
size_t GetGroupingColumnsCount() const override {
- return Source->GetGroupingColumnsCount();
+ return Source_->GetGroupingColumnsCount();
}
bool DoInit(TContext& ctx, ISource* initSrc) override {
- if (AsInner) {
- Source->UseAsInner();
+ if (AsInner_) {
+ Source_->UseAsInner();
}
- if (!Source->Init(ctx, initSrc)) {
+ if (!Source_->Init(ctx, initSrc)) {
return false;
}
- if (SelectStream && !Source->IsStream()) {
- ctx.Error(Pos) << "SELECT STREAM is unsupported for non-streaming sources";
+ if (SelectStream_ && !Source_->IsStream()) {
+ ctx.Error(Pos_) << "SELECT STREAM is unsupported for non-streaming sources";
return false;
}
- auto src = Source.Get();
+ auto src = Source_.Get();
bool hasError = false;
if (src->IsFlattenByExprs()) {
@@ -1561,21 +1561,21 @@ public:
return false;
}
- src->SetCompactGroupBy(CompactGroupBy);
- src->SetGroupBySuffix(GroupBySuffix);
+ src->SetCompactGroupBy(CompactGroupBy_);
+ src->SetGroupBySuffix(GroupBySuffix_);
- for (auto& term: Terms) {
- term->CollectPreaggregateExprs(ctx, *src, DistinctAggrExpr);
+ for (auto& term: Terms_) {
+ term->CollectPreaggregateExprs(ctx, *src, DistinctAggrExpr_);
}
- if (Having) {
- Having->CollectPreaggregateExprs(ctx, *src, DistinctAggrExpr);
+ if (Having_) {
+ Having_->CollectPreaggregateExprs(ctx, *src, DistinctAggrExpr_);
}
- for (auto& expr: GroupByExpr) {
+ for (auto& expr: GroupByExpr_) {
if (auto sessionWindow = dynamic_cast<TSessionWindow*>(expr.Get())) {
- if (Source->IsStream()) {
- ctx.Error(Pos) << "SessionWindow is unsupported for streaming sources";
+ if (Source_->IsStream()) {
+ ctx.Error(Pos_) << "SessionWindow is unsupported for streaming sources";
return false;
}
sessionWindow->MarkValid();
@@ -1593,31 +1593,31 @@ public:
return false;
}
}
- DistinctAggrExpr.insert(DistinctAggrExpr.end(), distinctAggrsInGroupBy.begin(), distinctAggrsInGroupBy.end());
+ DistinctAggrExpr_.insert(DistinctAggrExpr_.end(), distinctAggrsInGroupBy.begin(), distinctAggrsInGroupBy.end());
if (!expr->Init(ctx, src) || !IsComparableExpression(ctx, expr, false, "GROUP BY")) {
hasError = true;
}
}
- if (hasError || !src->AddExpressions(ctx, GroupByExpr, EExprSeat::GroupBy)) {
+ if (hasError || !src->AddExpressions(ctx, GroupByExpr_, EExprSeat::GroupBy)) {
return false;
}
- for (auto& expr: DistinctAggrExpr) {
+ for (auto& expr: DistinctAggrExpr_) {
if (!expr->Init(ctx, src)) {
hasError = true;
}
}
- if (hasError || !src->AddExpressions(ctx, DistinctAggrExpr, EExprSeat::DistinctAggr)) {
+ if (hasError || !src->AddExpressions(ctx, DistinctAggrExpr_, EExprSeat::DistinctAggr)) {
return false;
}
/// grouped expressions are available in filters
- if (!Source->InitFilters(ctx)) {
+ if (!Source_->InitFilters(ctx)) {
return false;
}
- for (auto& expr: GroupBy) {
+ for (auto& expr: GroupBy_) {
TString usedColumn;
if (!InitAndGetGroupKey(ctx, expr, src, "GROUP BY", usedColumn)) {
hasError = true;
@@ -1632,12 +1632,12 @@ public:
return false;
}
- if (Having && !Having->Init(ctx, src)) {
+ if (Having_ && !Having_->Init(ctx, src)) {
return false;
}
- src->AddWindowSpecs(WinSpecs);
+ src->AddWindowSpecs(WinSpecs_);
- const bool isJoin = Source->GetJoin();
+ const bool isJoin = Source_->GetJoin();
if (!InitSelect(ctx, src, isJoin, hasError)) {
return false;
}
@@ -1648,55 +1648,55 @@ public:
return false;
}
- Aggregate = aggRes.first;
+ Aggregate_ = aggRes.first;
if (src->IsFlattenByColumns() || src->IsFlattenColumns()) {
- Flatten = src->IsFlattenByColumns() ?
+ Flatten_ = src->IsFlattenByColumns() ?
src->BuildFlattenByColumns("row") :
src->BuildFlattenColumns("row");
- if (!Flatten || !Flatten->Init(ctx, src)) {
+ if (!Flatten_ || !Flatten_->Init(ctx, src)) {
return false;
}
}
if (src->IsFlattenByExprs()) {
- PreFlattenMap = src->BuildPreFlattenMap(ctx);
- if (!PreFlattenMap) {
+ PreFlattenMap_ = src->BuildPreFlattenMap(ctx);
+ if (!PreFlattenMap_) {
return false;
}
}
- if (GroupByExpr || DistinctAggrExpr) {
- PreaggregatedMap = src->BuildPreaggregatedMap(ctx);
- if (!PreaggregatedMap) {
+ if (GroupByExpr_ || DistinctAggrExpr_) {
+ PreaggregatedMap_ = src->BuildPreaggregatedMap(ctx);
+ if (!PreaggregatedMap_) {
return false;
}
}
- if (Aggregate) {
- if (!Aggregate->Init(ctx, src)) {
+ if (Aggregate_) {
+ if (!Aggregate_->Init(ctx, src)) {
return false;
}
- if (Having) {
- Aggregate = Y(
+ if (Having_) {
+ Aggregate_ = Y(
"Filter",
- Aggregate,
- BuildLambda(Pos, Y("row"), Y("Coalesce", Having, Y("Bool", Q("false"))))
+ Aggregate_,
+ BuildLambda(Pos_, Y("row"), Y("Coalesce", Having_, Y("Bool", Q("false"))))
);
}
- } else if (Having) {
- if (Distinct) {
- Aggregate = Y(
+ } else if (Having_) {
+ if (Distinct_) {
+ Aggregate_ = Y(
"Filter",
"core",
- BuildLambda(Pos, Y("row"), Y("Coalesce", Having, Y("Bool", Q("false"))))
+ BuildLambda(Pos_, Y("row"), Y("Coalesce", Having_, Y("Bool", Q("false"))))
);
- ctx.Warning(Having->GetPos(), TIssuesIds::YQL_HAVING_WITHOUT_AGGREGATION_IN_SELECT_DISTINCT)
+ ctx.Warning(Having_->GetPos(), TIssuesIds::YQL_HAVING_WITHOUT_AGGREGATION_IN_SELECT_DISTINCT)
<< "The usage of HAVING without aggregations with SELECT DISTINCT is non-standard and will stop working soon. Please use WHERE instead.";
} else {
- ctx.Error(Having->GetPos()) << "HAVING with meaning GROUP BY () should be with aggregation function.";
+ ctx.Error(Having_->GetPos()) << "HAVING with meaning GROUP BY () should be with aggregation function.";
return false;
}
- } else if (!Distinct && !GroupBy.empty()) {
- ctx.Error(Pos) << "No aggregations were specified";
+ } else if (!Distinct_ && !GroupBy_.empty()) {
+ ctx.Error(Pos_) << "No aggregations were specified";
return false;
}
if (hasError) {
@@ -1705,13 +1705,13 @@ public:
if (src->IsCalcOverWindow()) {
if (src->IsExprSeat(EExprSeat::WindowPartitionBy, EExprType::WithExpression)) {
- PrewindowMap = src->BuildPrewindowMap(ctx);
- if (!PrewindowMap) {
+ PrewindowMap_ = src->BuildPrewindowMap(ctx);
+ if (!PrewindowMap_) {
return false;
}
}
- CalcOverWindow = src->BuildCalcOverWindow(ctx, "core");
- if (!CalcOverWindow || !CalcOverWindow->Init(ctx, src)) {
+ CalcOverWindow_ = src->BuildCalcOverWindow(ctx, "core");
+ if (!CalcOverWindow_ || !CalcOverWindow_->Init(ctx, src)) {
return false;
}
}
@@ -1719,15 +1719,15 @@ public:
}
TNodePtr Build(TContext& ctx) override {
- auto input = Source->Build(ctx);
+ auto input = Source_->Build(ctx);
if (!input) {
return nullptr;
}
auto block(Y(Y("let", "core", input)));
- if (Source->HasMatchRecognize()) {
- if (auto matchRecognize = Source->BuildMatchRecognize(ctx, "core")) {
+ if (Source_->HasMatchRecognize()) {
+ if (auto matchRecognize = Source_->BuildMatchRecognize(ctx, "core")) {
//use unique name match_recognize to find this block easily in unit tests
block = L(block, Y("let", "match_recognize", matchRecognize));
//then bind to the conventional name
@@ -1738,47 +1738,47 @@ public:
}
bool ordered = ctx.UseUnordered(*this);
- if (PreFlattenMap) {
- block = L(block, Y("let", "core", Y(ordered ? "OrderedFlatMap" : "FlatMap", "core", BuildLambda(Pos, Y("row"), PreFlattenMap))));
+ if (PreFlattenMap_) {
+ block = L(block, Y("let", "core", Y(ordered ? "OrderedFlatMap" : "FlatMap", "core", BuildLambda(Pos_, Y("row"), PreFlattenMap_))));
}
- if (Flatten) {
- block = L(block, Y("let", "core", Y(ordered ? "OrderedFlatMap" : "FlatMap", "core", BuildLambda(Pos, Y("row"), Flatten, "res"))));
+ if (Flatten_) {
+ block = L(block, Y("let", "core", Y(ordered ? "OrderedFlatMap" : "FlatMap", "core", BuildLambda(Pos_, Y("row"), Flatten_, "res"))));
}
if (ctx.GroupByExprAfterWhere) {
- if (auto filter = Source->BuildFilter(ctx, "core"); filter) {
+ if (auto filter = Source_->BuildFilter(ctx, "core"); filter) {
block = L(block, Y("let", "core", filter));
}
}
- if (PreaggregatedMap) {
- block = L(block, Y("let", "core", PreaggregatedMap));
- if (Source->IsCompositeSource() && !Columns.QualifiedAll) {
+ if (PreaggregatedMap_) {
+ block = L(block, Y("let", "core", PreaggregatedMap_));
+ if (Source_->IsCompositeSource() && !Columns_.QualifiedAll) {
block = L(block, Y("let", "preaggregated", "core"));
}
- } else if (Source->IsCompositeSource() && !Columns.QualifiedAll) {
+ } else if (Source_->IsCompositeSource() && !Columns_.QualifiedAll) {
block = L(block, Y("let", "origcore", "core"));
}
if (!ctx.GroupByExprAfterWhere) {
- if (auto filter = Source->BuildFilter(ctx, "core"); filter) {
+ if (auto filter = Source_->BuildFilter(ctx, "core"); filter) {
block = L(block, Y("let", "core", filter));
}
}
- if (Aggregate) {
- block = L(block, Y("let", "core", Aggregate));
+ if (Aggregate_) {
+ block = L(block, Y("let", "core", Aggregate_));
ordered = false;
}
- const bool haveCompositeTerms = Source->IsCompositeSource() && !Columns.All && !Columns.QualifiedAll && !Columns.List.empty();
+ const bool haveCompositeTerms = Source_->IsCompositeSource() && !Columns_.All && !Columns_.QualifiedAll && !Columns_.List.empty();
if (haveCompositeTerms) {
// column order does not matter here - it will be set in projection
- YQL_ENSURE(Aggregate);
- block = L(block, Y("let", "core", Y("Map", "core", BuildLambda(Pos, Y("row"), CompositeTerms, "row"))));
+ YQL_ENSURE(Aggregate_);
+ block = L(block, Y("let", "core", Y("Map", "core", BuildLambda(Pos_, Y("row"), CompositeTerms_, "row"))));
}
- if (auto grouping = Source->BuildGroupingColumns("core")) {
+ if (auto grouping = Source_->BuildGroupingColumns("core")) {
block = L(block, Y("let", "core", grouping));
}
- if (!Source->GetCompositeSource()) {
+ if (!Source_->GetCompositeSource()) {
BuildProjectWindowDistinct(block, ctx, ordered);
}
@@ -1786,51 +1786,51 @@ public:
}
void BuildProjectWindowDistinct(TNodePtr& block, TContext& ctx, bool ordered) override {
- if (PrewindowMap) {
- block = L(block, Y("let", "core", PrewindowMap));
+ if (PrewindowMap_) {
+ block = L(block, Y("let", "core", PrewindowMap_));
}
- if (CalcOverWindow) {
- block = L(block, Y("let", "core", CalcOverWindow));
+ if (CalcOverWindow_) {
+ block = L(block, Y("let", "core", CalcOverWindow_));
}
block = L(block, Y("let", "core", Y("PersistableRepr", BuildSqlProject(ctx, ordered))));
- if (Distinct) {
+ if (Distinct_) {
block = L(block, Y("let", "core", Y("PersistableRepr", Y("SqlAggregateAll", Y("RemoveSystemMembers", "core")))));
}
}
TNodePtr BuildSort(TContext& ctx, const TString& label) override {
Y_UNUSED(ctx);
- if (OrderBy.empty() || DisableSort_) {
+ if (OrderBy_.empty() || DisableSort_) {
return nullptr;
}
- auto sorted = BuildSortSpec(OrderBy, label, false, AssumeSorted);
- if (ExtraSortColumns.empty()) {
+ auto sorted = BuildSortSpec(OrderBy_, label, false, AssumeSorted_);
+ if (ExtraSortColumns_.empty()) {
return Y("let", label, sorted);
}
auto body = Y();
- for (const auto& [column, _] : ExtraSortColumns) {
+ for (const auto& [column, _] : ExtraSortColumns_) {
body = L(body, Y("let", "row", Y("RemoveMember", "row", Q(column))));
}
body = L(body, Y("let", "res", "row"));
- return Y("let", label, Y("OrderedMap", sorted, BuildLambda(Pos, Y("row"), body, "res")));
+ return Y("let", label, Y("OrderedMap", sorted, BuildLambda(Pos_, Y("row"), body, "res")));
}
TNodePtr BuildCleanupColumns(TContext& ctx, const TString& label) override {
TNodePtr cleanup;
if (ctx.EnableSystemColumns && ctx.Settings.Mode != NSQLTranslation::ESqlMode::LIMITED_VIEW) {
- if (Columns.All) {
+ if (Columns_.All) {
cleanup = Y("let", label, Y("RemoveSystemMembers", label));
- } else if (!Columns.List.empty()) {
- const bool isJoin = Source->GetJoin();
- if (!isJoin && Columns.QualifiedAll) {
+ } else if (!Columns_.List.empty()) {
+ const bool isJoin = Source_->GetJoin();
+ if (!isJoin && Columns_.QualifiedAll) {
if (ctx.SimpleColumns) {
cleanup = Y("let", label, Y("RemoveSystemMembers", label));
} else {
TNodePtr members;
- for (auto& term: Terms) {
+ for (auto& term: Terms_) {
if (term->IsAsterisk()) {
auto sourceName = term->GetSourceName();
YQL_ENSURE(*sourceName && !sourceName->empty());
@@ -1853,43 +1853,43 @@ public:
}
bool HasSelectResult() const override {
- return !Settings.Discard;
+ return !Settings_.Discard;
}
bool IsStream() const override {
- return Source->IsStream();
+ return Source_->IsStream();
}
EOrderKind GetOrderKind() const override {
- if (OrderBy.empty()) {
+ if (OrderBy_.empty()) {
return EOrderKind::None;
}
- return AssumeSorted ? EOrderKind::Assume : EOrderKind::Sort;
+ return AssumeSorted_ ? EOrderKind::Assume : EOrderKind::Sort;
}
TWriteSettings GetWriteSettings() const override {
- return Settings;
+ return Settings_;
}
TMaybe<bool> AddColumn(TContext& ctx, TColumnNode& column) override {
- const bool aggregated = Source->HasAggregations() || Distinct;
- if (OrderByInit && (Source->GetJoin() || !aggregated)) {
+ const bool aggregated = Source_->HasAggregations() || Distinct_;
+ if (OrderByInit_ && (Source_->GetJoin() || !aggregated)) {
// ORDER BY will try to find column not only in projection items, but also in Source.
// ```SELECT a, b FROM T ORDER BY c``` should work if c is present in T
const bool reliable = column.IsReliable();
column.SetAsNotReliable();
auto maybeExist = IRealSource::AddColumn(ctx, column);
- if (reliable && !Source->GetJoin()) {
+ if (reliable && !Source_->GetJoin()) {
column.ResetAsReliable();
}
if (!maybeExist || !maybeExist.GetRef()) {
- maybeExist = Source->AddColumn(ctx, column);
+ maybeExist = Source_->AddColumn(ctx, column);
}
if (!maybeExist.Defined()) {
return maybeExist;
}
if (!DisableSort_ && !aggregated && column.GetColumnName() && IsMissingInProjection(ctx, column)) {
- ExtraSortColumns[FullColumnName(column)] = &column;
+ ExtraSortColumns_[FullColumnName(column)] = &column;
}
return maybeExist;
}
@@ -1899,21 +1899,21 @@ public:
bool IsMissingInProjection(TContext& ctx, const TColumnNode& column) const {
TString columnName = FullColumnName(column);
- if (Columns.Real.contains(columnName) || Columns.Artificial.contains(columnName)) {
+ if (Columns_.Real.contains(columnName) || Columns_.Artificial.contains(columnName)) {
return false;
}
- if (!ctx.SimpleColumns && Columns.QualifiedAll && !columnName.Contains('.')) {
+ if (!ctx.SimpleColumns && Columns_.QualifiedAll && !columnName.Contains('.')) {
return false;
}
- if (!Columns.IsColumnPossible(ctx, columnName)) {
+ if (!Columns_.IsColumnPossible(ctx, columnName)) {
return true;
}
- for (auto without: Without) {
+ for (auto without: Without_) {
auto name = *without->GetColumnName();
- if (Source && Source->GetJoin()) {
+ if (Source_ && Source_->GetJoin()) {
name = DotJoin(*without->GetSourceName(), name);
}
if (name == columnName) {
@@ -1926,18 +1926,18 @@ public:
TNodePtr PrepareWithout(const TNodePtr& base) {
auto terms = base;
- if (Without) {
- for (auto without: Without) {
+ if (Without_) {
+ for (auto without: Without_) {
auto name = *without->GetColumnName();
- if (Source && Source->GetJoin()) {
+ if (Source_ && Source_->GetJoin()) {
name = DotJoin(*without->GetSourceName(), name);
}
- terms = L(terms, Y("let", "row", Y(ForceWithout ? "ForceRemoveMember" : "RemoveMember", "row", Q(name))));
+ terms = L(terms, Y("let", "row", Y(ForceWithout_ ? "ForceRemoveMember" : "RemoveMember", "row", Q(name))));
}
}
- if (Source) {
- for (auto column : Source->GetTmpWindowColumns()) {
+ if (Source_) {
+ for (auto column : Source_->GetTmpWindowColumns()) {
terms = L(terms, Y("let", "row", Y("RemoveMember", "row", Q(column))));
}
}
@@ -1946,15 +1946,15 @@ public:
}
TNodePtr DoClone() const final {
- return new TSelectCore(Pos, Source->CloneSource(), CloneContainer(GroupByExpr),
- CloneContainer(GroupBy), CompactGroupBy, GroupBySuffix, AssumeSorted, CloneContainer(OrderBy),
- SafeClone(Having), CloneContainer(WinSpecs), SafeClone(LegacyHoppingWindowSpec),
- CloneContainer(Terms), Distinct, Without, ForceWithout, SelectStream, Settings, TColumnsSets(UniqueSets), TColumnsSets(DistinctSets));
+ return new TSelectCore(Pos_, Source_->CloneSource(), CloneContainer(GroupByExpr_),
+ CloneContainer(GroupBy_), CompactGroupBy_, GroupBySuffix_, AssumeSorted_, CloneContainer(OrderBy_),
+ SafeClone(Having_), CloneContainer(WinSpecs_), SafeClone(LegacyHoppingWindowSpec_),
+ CloneContainer(Terms_), Distinct_, Without_, ForceWithout_, SelectStream_, Settings_, TColumnsSets(UniqueSets_), TColumnsSets(DistinctSets_));
}
private:
bool InitSelect(TContext& ctx, ISource* src, bool isJoin, bool& hasError) {
- for (auto& [name, winSpec] : WinSpecs) {
+ for (auto& [name, winSpec] : WinSpecs_) {
for (size_t i = 0; i < winSpec->Partitions.size(); ++i) {
auto partitionNode = winSpec->Partitions[i];
if (auto sessionWindow = dynamic_cast<TSessionWindow*>(partitionNode.Get())) {
@@ -1983,14 +1983,14 @@ private:
}
}
- if (LegacyHoppingWindowSpec) {
- if (!LegacyHoppingWindowSpec->TimeExtractor->Init(ctx, src)) {
+ if (LegacyHoppingWindowSpec_) {
+ if (!LegacyHoppingWindowSpec_->TimeExtractor->Init(ctx, src)) {
hasError = true;
}
- src->SetLegacyHoppingWindowSpec(LegacyHoppingWindowSpec);
+ src->SetLegacyHoppingWindowSpec(LegacyHoppingWindowSpec_);
}
- for (auto& term: Terms) {
+ for (auto& term: Terms_) {
if (!term->Init(ctx, src)) {
hasError = true;
continue;
@@ -2001,12 +2001,12 @@ private:
if (label.empty()) {
auto source = term->GetSourceName();
if (term->IsAsterisk() && !source->empty()) {
- Columns.QualifiedAll = true;
+ Columns_.QualifiedAll = true;
label = DotJoin(*source, "*");
} else if (column) {
label = isJoin && source && *source ? DotJoin(*source, *column) : *column;
} else {
- label = Columns.AddUnnamed();
+ label = Columns_.AddUnnamed();
hasName = false;
if (ctx.WarnUnnamedColumns) {
ctx.Warning(term->GetPos(), TIssuesIds::YQL_UNNAMED_COLUMN)
@@ -2014,30 +2014,30 @@ private:
}
}
}
- if (hasName && !Columns.Add(&label, false, false, true)) {
- ctx.Error(Pos) << "Duplicate column: " << label;
+ if (hasName && !Columns_.Add(&label, false, false, true)) {
+ ctx.Error(Pos_) << "Duplicate column: " << label;
hasError = true;
}
}
- CompositeTerms = Y();
- if (!hasError && Source->IsCompositeSource() && !Columns.All && !Columns.QualifiedAll && !Columns.List.empty()) {
- auto compositeSrcPtr = static_cast<TCompositeSelect*>(Source->GetCompositeSource());
+ CompositeTerms_ = Y();
+ if (!hasError && Source_->IsCompositeSource() && !Columns_.All && !Columns_.QualifiedAll && !Columns_.List.empty()) {
+ auto compositeSrcPtr = static_cast<TCompositeSelect*>(Source_->GetCompositeSource());
if (compositeSrcPtr) {
const auto& groupings = compositeSrcPtr->GetGroupingCols();
for (const auto& column: groupings) {
- if (Source->IsGroupByColumn(column)) {
+ if (Source_->IsGroupByColumn(column)) {
continue;
}
- const TString tableName = (GroupByExpr || DistinctAggrExpr) ? "preaggregated" : "origcore";
- CompositeTerms = L(CompositeTerms, Y("let", "row", Y("AddMember", "row", BuildQuotedAtom(Pos, column), Y("Nothing", Y("MatchType",
+ const TString tableName = (GroupByExpr_ || DistinctAggrExpr_) ? "preaggregated" : "origcore";
+ CompositeTerms_ = L(CompositeTerms_, Y("let", "row", Y("AddMember", "row", BuildQuotedAtom(Pos_, column), Y("Nothing", Y("MatchType",
Y("StructMemberType", Y("ListItemType", Y("TypeOf", tableName)), Q(column)),
Q("Optional"), Y("lambda", Q(Y("item")), "item"), Y("lambda", Q(Y("item")), Y("OptionalType", "item")))))));
}
}
}
- for (auto iter: WinSpecs) {
+ for (auto iter: WinSpecs_) {
auto winSpec = *iter.second;
for (auto orderSpec: winSpec.OrderBy) {
if (!orderSpec->OrderExpr->Init(ctx, src)) {
@@ -2046,10 +2046,10 @@ private:
}
}
- if (Columns.All || Columns.QualifiedAll) {
- Source->AllColumns();
+ if (Columns_.All || Columns_.QualifiedAll) {
+ Source_->AllColumns();
}
- for (const auto& without: Without) {
+ for (const auto& without: Without_) {
auto namePtr = without->GetColumnName();
auto sourcePtr = without->GetSourceName();
YQL_ENSURE(namePtr && *namePtr);
@@ -2059,18 +2059,18 @@ private:
continue;
}
}
- if (Having && !Having->Init(ctx, src)) {
+ if (Having_ && !Having_->Init(ctx, src)) {
hasError = true;
}
- if (!src->IsCompositeSource() && !Columns.All && src->HasAggregations()) {
- WarnIfAliasFromSelectIsUsedInGroupBy(ctx, Terms, GroupBy, GroupByExpr);
+ if (!src->IsCompositeSource() && !Columns_.All && src->HasAggregations()) {
+ WarnIfAliasFromSelectIsUsedInGroupBy(ctx, Terms_, GroupBy_, GroupByExpr_);
/// verify select aggregation compatibility
- TVector<TNodePtr> exprs(Terms);
- if (Having) {
- exprs.push_back(Having);
+ TVector<TNodePtr> exprs(Terms_);
+ if (Having_) {
+ exprs.push_back(Having_);
}
- for (const auto& iter: WinSpecs) {
+ for (const auto& iter: WinSpecs_) {
for (const auto& sortSpec: iter.second->OrderBy) {
exprs.push_back(sortSpec->OrderExpr);
}
@@ -2080,16 +2080,16 @@ private:
}
}
const auto label = GetLabel();
- for (const auto& sortSpec: OrderBy) {
+ for (const auto& sortSpec: OrderBy_) {
auto& expr = sortSpec->OrderExpr;
- SetLabel(Source->GetLabel());
- OrderByInit = true;
+ SetLabel(Source_->GetLabel());
+ OrderByInit_ = true;
if (!expr->Init(ctx, this)) {
hasError = true;
continue;
}
- OrderByInit = false;
- if (!IsComparableExpression(ctx, expr, AssumeSorted, AssumeSorted ? "ASSUME ORDER BY" : "ORDER BY")) {
+ OrderByInit_ = false;
+ if (!IsComparableExpression(ctx, expr, AssumeSorted_, AssumeSorted_ ? "ASSUME ORDER BY" : "ORDER BY")) {
hasError = true;
continue;
}
@@ -2100,16 +2100,16 @@ private:
}
TNodePtr PrepareJoinCoalesce(TContext& ctx, const TNodePtr& base, bool multipleQualifiedAll, const TVector<TString>& coalesceLabels) {
- const bool isJoin = Source->GetJoin();
+ const bool isJoin = Source_->GetJoin();
const bool needCoalesce = isJoin && ctx.SimpleColumns &&
- (Columns.All || multipleQualifiedAll || ctx.CoalesceJoinKeysOnQualifiedAll);
+ (Columns_.All || multipleQualifiedAll || ctx.CoalesceJoinKeysOnQualifiedAll);
if (!needCoalesce) {
return base;
}
auto terms = base;
- const auto& sameKeyMap = Source->GetJoin()->GetSameKeysMap();
+ const auto& sameKeyMap = Source_->GetJoin()->GetSameKeysMap();
if (sameKeyMap) {
terms = L(terms, Y("let", "flatSameKeys", "row"));
for (const auto& [key, sources]: sameKeyMap) {
@@ -2129,63 +2129,63 @@ private:
TNodePtr BuildSqlProject(TContext& ctx, bool ordered) {
auto sqlProjectArgs = Y();
- const bool isJoin = Source->GetJoin();
+ const bool isJoin = Source_->GetJoin();
- if (Columns.All) {
- YQL_ENSURE(Columns.List.empty());
+ if (Columns_.All) {
+ YQL_ENSURE(Columns_.List.empty());
auto terms = PrepareWithout(Y());
auto options = Y();
if (isJoin && ctx.SimpleColumns) {
- terms = PrepareJoinCoalesce(ctx, terms, false, Source->GetJoin()->GetJoinLabels());
+ terms = PrepareJoinCoalesce(ctx, terms, false, Source_->GetJoin()->GetJoinLabels());
auto members = Y();
- for (auto& source : Source->GetJoin()->GetJoinLabels()) {
+ for (auto& source : Source_->GetJoin()->GetJoinLabels()) {
YQL_ENSURE(!source.empty());
- members = L(members, BuildQuotedAtom(Pos, source + "."));
+ members = L(members, BuildQuotedAtom(Pos_, source + "."));
}
- if (GroupByExpr.empty() || ctx.BogousStarInGroupByOverJoin) {
+ if (GroupByExpr_.empty() || ctx.BogousStarInGroupByOverJoin) {
terms = L(terms, Y("let", "res", Y("DivePrefixMembers", "row", Q(members))));
} else {
auto groupExprStruct = Y("AsStruct");
- for (auto node : GroupByExpr) {
+ for (auto node : GroupByExpr_) {
auto label = node->GetLabel();
YQL_ENSURE(label);
- if (Source->IsGroupByColumn(label)) {
- auto name = BuildQuotedAtom(Pos, label);
+ if (Source_->IsGroupByColumn(label)) {
+ auto name = BuildQuotedAtom(Pos_, label);
groupExprStruct = L(groupExprStruct, Q(Y(name, Y("Member", "row", name))));
}
}
auto groupColumnsStruct = Y("DivePrefixMembers", "row", Q(members));
- terms = L(terms, Y("let", "res", Y("FlattenMembers", Q(Y(BuildQuotedAtom(Pos, ""), groupExprStruct)),
- Q(Y(BuildQuotedAtom(Pos, ""), groupColumnsStruct)))));
+ terms = L(terms, Y("let", "res", Y("FlattenMembers", Q(Y(BuildQuotedAtom(Pos_, ""), groupExprStruct)),
+ Q(Y(BuildQuotedAtom(Pos_, ""), groupColumnsStruct)))));
}
options = L(options, Q(Y(Q("divePrefix"), Q(members))));
} else {
terms = L(terms, Y("let", "res", "row"));
}
- sqlProjectArgs = L(sqlProjectArgs, Y("SqlProjectStarItem", "projectCoreType", BuildQuotedAtom(Pos, ""), BuildLambda(Pos, Y("row"), terms, "res"), Q(options)));
+ sqlProjectArgs = L(sqlProjectArgs, Y("SqlProjectStarItem", "projectCoreType", BuildQuotedAtom(Pos_, ""), BuildLambda(Pos_, Y("row"), terms, "res"), Q(options)));
} else {
- YQL_ENSURE(!Columns.List.empty());
- YQL_ENSURE(Columns.List.size() == Terms.size());
+ YQL_ENSURE(!Columns_.List.empty());
+ YQL_ENSURE(Columns_.List.size() == Terms_.size());
TVector<TString> coalesceLabels;
bool multipleQualifiedAll = false;
if (isJoin && ctx.SimpleColumns) {
THashSet<TString> starTerms;
- for (auto& term: Terms) {
+ for (auto& term: Terms_) {
if (term->IsAsterisk()) {
auto sourceName = term->GetSourceName();
YQL_ENSURE(*sourceName && !sourceName->empty());
- YQL_ENSURE(Columns.QualifiedAll);
+ YQL_ENSURE(Columns_.QualifiedAll);
starTerms.insert(*sourceName);
}
}
TVector<TString> matched;
TVector<TString> unmatched;
- for (auto& label : Source->GetJoin()->GetJoinLabels()) {
+ for (auto& label : Source_->GetJoin()->GetJoinLabels()) {
if (starTerms.contains(label)) {
matched.push_back(label);
} else {
@@ -2199,15 +2199,15 @@ private:
multipleQualifiedAll = starTerms.size() > 1;
}
- auto column = Columns.List.begin();
- auto isNamedColumn = Columns.NamedColumns.begin();
- for (auto& term: Terms) {
+ auto column = Columns_.List.begin();
+ auto isNamedColumn = Columns_.NamedColumns.begin();
+ for (auto& term: Terms_) {
auto sourceName = term->GetSourceName();
if (!term->IsAsterisk()) {
auto body = Y();
body = L(body, Y("let", "res", term));
- TPosition lambdaPos = Pos;
- TPosition aliasPos = Pos;
+ TPosition lambdaPos = Pos_;
+ TPosition aliasPos = Pos_;
if (term->IsImplicitLabel() && ctx.WarnOnAnsiAliasShadowing) {
// TODO: recanonize for positions below
lambdaPos = term->GetPos();
@@ -2231,13 +2231,13 @@ private:
auto members = isJoin ? Y() : Y("FlattenMembers");
if (isJoin) {
- members = L(members, BuildQuotedAtom(Pos, *sourceName + "."));
+ members = L(members, BuildQuotedAtom(Pos_, *sourceName + "."));
if (ctx.SimpleColumns) {
options = L(options, Q(Y(Q("divePrefix"), Q(members))));
}
members = Y(ctx.SimpleColumns ? "DivePrefixMembers" : "SelectMembers", "row", Q(members));
} else {
- auto prefix = BuildQuotedAtom(Pos, ctx.SimpleColumns ? "" : *sourceName + ".");
+ auto prefix = BuildQuotedAtom(Pos_, ctx.SimpleColumns ? "" : *sourceName + ".");
members = L(members, Q(Y(prefix, "row")));
if (!ctx.SimpleColumns) {
options = L(options, Q(Y(Q("addPrefix"), prefix)));
@@ -2246,14 +2246,14 @@ private:
terms = L(terms, Y("let", "res", members));
}
- sqlProjectArgs = L(sqlProjectArgs, Y("SqlProjectStarItem", "projectCoreType", BuildQuotedAtom(Pos, *sourceName), BuildLambda(Pos, Y("row"), terms, "res"), Q(options)));
+ sqlProjectArgs = L(sqlProjectArgs, Y("SqlProjectStarItem", "projectCoreType", BuildQuotedAtom(Pos_, *sourceName), BuildLambda(Pos_, Y("row"), terms, "res"), Q(options)));
}
++column;
++isNamedColumn;
}
}
- for (const auto& [columnName, column]: ExtraSortColumns) {
+ for (const auto& [columnName, column]: ExtraSortColumns_) {
auto body = Y();
body = L(body, Y("let", "res", column));
TPosition pos = column->GetPos();
@@ -2263,7 +2263,7 @@ private:
auto block(Y(Y("let", "projectCoreType", Y("TypeOf", "core"))));
block = L(block, Y("let", "core", Y(ordered ? "OrderedSqlProject" : "SqlProject", "core", Q(sqlProjectArgs))));
- if (!(UniqueSets.empty() && DistinctSets.empty())) {
+ if (!(UniqueSets_.empty() && DistinctSets_.empty())) {
block = L(block, Y("let", "core", Y("RemoveSystemMembers", "core")));
const auto MakeUniqueHint = [this](INode::TPtr& block, const TColumnsSets& sets, bool distinct) {
if (!sets.empty()) {
@@ -2282,41 +2282,41 @@ private:
}
};
- MakeUniqueHint(block, DistinctSets, true);
- MakeUniqueHint(block, UniqueSets, false);
+ MakeUniqueHint(block, DistinctSets_, true);
+ MakeUniqueHint(block, UniqueSets_, false);
}
return Y("block", Q(L(block, Y("return", "core"))));
}
private:
- TSourcePtr Source;
- TVector<TNodePtr> GroupByExpr;
- TVector<TNodePtr> DistinctAggrExpr;
- TVector<TNodePtr> GroupBy;
- bool AssumeSorted = false;
- bool CompactGroupBy = false;
- TString GroupBySuffix;
- TVector<TSortSpecificationPtr> OrderBy;
- TNodePtr Having;
- TWinSpecs WinSpecs;
- TNodePtr Flatten;
- TNodePtr PreFlattenMap;
- TNodePtr PreaggregatedMap;
- TNodePtr PrewindowMap;
- TNodePtr Aggregate;
- TNodePtr CalcOverWindow;
- TNodePtr CompositeTerms;
- TVector<TNodePtr> Terms;
- TVector<TNodePtr> Without;
- const bool ForceWithout;
- const bool Distinct;
- bool OrderByInit = false;
- TLegacyHoppingWindowSpecPtr LegacyHoppingWindowSpec;
- const bool SelectStream;
- const TWriteSettings Settings;
- const TColumnsSets UniqueSets, DistinctSets;
- TMap<TString, TNodePtr> ExtraSortColumns;
+ TSourcePtr Source_;
+ TVector<TNodePtr> GroupByExpr_;
+ TVector<TNodePtr> DistinctAggrExpr_;
+ TVector<TNodePtr> GroupBy_;
+ bool AssumeSorted_ = false;
+ bool CompactGroupBy_ = false;
+ TString GroupBySuffix_;
+ TVector<TSortSpecificationPtr> OrderBy_;
+ TNodePtr Having_;
+ TWinSpecs WinSpecs_;
+ TNodePtr Flatten_;
+ TNodePtr PreFlattenMap_;
+ TNodePtr PreaggregatedMap_;
+ TNodePtr PrewindowMap_;
+ TNodePtr Aggregate_;
+ TNodePtr CalcOverWindow_;
+ TNodePtr CompositeTerms_;
+ TVector<TNodePtr> Terms_;
+ TVector<TNodePtr> Without_;
+ const bool ForceWithout_;
+ const bool Distinct_;
+ bool OrderByInit_ = false;
+ TLegacyHoppingWindowSpecPtr LegacyHoppingWindowSpec_;
+ const bool SelectStream_;
+ const TWriteSettings Settings_;
+ const TColumnsSets UniqueSets_, DistinctSets_;
+ TMap<TString, TNodePtr> ExtraSortColumns_;
};
class TProcessSource: public IRealSource {
@@ -2333,82 +2333,82 @@ public:
const TVector<TSortSpecificationPtr>& assumeOrderBy
)
: IRealSource(pos)
- , Source(std::move(source))
- , With(with)
- , WithExtFunction(withExtFunction)
- , Terms(std::move(terms))
- , ListCall(listCall)
- , ProcessStream(processStream)
- , Settings(settings)
- , AssumeOrderBy(assumeOrderBy)
+ , Source_(std::move(source))
+ , With_(with)
+ , WithExtFunction_(withExtFunction)
+ , Terms_(std::move(terms))
+ , ListCall_(listCall)
+ , ProcessStream_(processStream)
+ , Settings_(settings)
+ , AssumeOrderBy_(assumeOrderBy)
{
}
void GetInputTables(TTableList& tableList) const override {
- Source->GetInputTables(tableList);
+ Source_->GetInputTables(tableList);
ISource::GetInputTables(tableList);
}
bool DoInit(TContext& ctx, ISource* initSrc) override {
- if (AsInner) {
- Source->UseAsInner();
+ if (AsInner_) {
+ Source_->UseAsInner();
}
- if (!Source->Init(ctx, initSrc)) {
+ if (!Source_->Init(ctx, initSrc)) {
return false;
}
- if (ProcessStream && !Source->IsStream()) {
- ctx.Error(Pos) << "PROCESS STREAM is unsupported for non-streaming sources";
+ if (ProcessStream_ && !Source_->IsStream()) {
+ ctx.Error(Pos_) << "PROCESS STREAM is unsupported for non-streaming sources";
return false;
}
- auto src = Source.Get();
- if (!With) {
+ auto src = Source_.Get();
+ if (!With_) {
src->AllColumns();
- Columns.SetAll();
+ Columns_.SetAll();
src->FinishColumns();
return true;
}
/// grouped expressions are available in filters
- if (!Source->InitFilters(ctx)) {
+ if (!Source_->InitFilters(ctx)) {
return false;
}
TSourcePtr fakeSource = nullptr;
- if (ListCall && !WithExtFunction) {
+ if (ListCall_ && !WithExtFunction_) {
fakeSource = BuildFakeSource(src->GetPos());
src->AllColumns();
}
auto processSource = fakeSource != nullptr ? fakeSource.Get() : src;
Y_DEBUG_ABORT_UNLESS(processSource != nullptr);
- if (!With->Init(ctx, processSource)) {
+ if (!With_->Init(ctx, processSource)) {
return false;
}
- if (With->GetLabel().empty()) {
- Columns.SetAll();
+ if (With_->GetLabel().empty()) {
+ Columns_.SetAll();
} else {
- if (ListCall) {
- ctx.Error(With->GetPos()) << "Label is not allowed to use with TableRows()";
+ if (ListCall_) {
+ ctx.Error(With_->GetPos()) << "Label is not allowed to use with TableRows()";
return false;
}
- Columns.Add(&With->GetLabel(), false);
+ Columns_.Add(&With_->GetLabel(), false);
}
bool hasError = false;
TNodePtr produce;
- if (WithExtFunction) {
+ if (WithExtFunction_) {
produce = Y();
} else {
- TString processCall = (ListCall ? "SqlProcess" : "Apply");
- produce = Y(processCall, With);
+ TString processCall = (ListCall_ ? "SqlProcess" : "Apply");
+ produce = Y(processCall, With_);
}
TMaybe<ui32> listPosIndex;
ui32 termIndex = 0;
- for (auto& term: Terms) {
+ for (auto& term: Terms_) {
if (!term->GetLabel().empty()) {
ctx.Error(term->GetPos()) << "Labels are not allowed for PROCESS terms";
hasError = true;
@@ -2420,7 +2420,7 @@ public:
continue;
}
- if (ListCall) {
+ if (ListCall_) {
if (auto atom = dynamic_cast<TTableRows*>(term.Get())) {
listPosIndex = termIndex;
}
@@ -2434,7 +2434,7 @@ public:
return false;
}
- if (ListCall && !WithExtFunction) {
+ if (ListCall_ && !WithExtFunction_) {
YQL_ENSURE(listPosIndex.Defined());
produce = L(produce, Q(ToString(*listPosIndex)));
}
@@ -2443,16 +2443,16 @@ public:
hasError = true;
}
- if (!(WithExtFunction && Terms.empty())) {
- TVector<TNodePtr>(1, produce).swap(Terms);
+ if (!(WithExtFunction_ && Terms_.empty())) {
+ TVector<TNodePtr>(1, produce).swap(Terms_);
}
src->FinishColumns();
const auto label = GetLabel();
- for (const auto& sortSpec: AssumeOrderBy) {
+ for (const auto& sortSpec: AssumeOrderBy_) {
auto& expr = sortSpec->OrderExpr;
- SetLabel(Source->GetLabel());
+ SetLabel(Source_->GetLabel());
if (!expr->Init(ctx, this)) {
hasError = true;
continue;
@@ -2468,12 +2468,12 @@ public:
}
TNodePtr Build(TContext& ctx) override {
- auto input = Source->Build(ctx);
+ auto input = Source_->Build(ctx);
if (!input) {
return nullptr;
}
- if (!With) {
+ if (!With_) {
auto res = input;
if (ctx.EnableSystemColumns) {
res = Y("RemoveSystemMembers", res);
@@ -2482,28 +2482,28 @@ public:
return res;
}
- TString inputLabel = ListCall ? "inputRowsList" : "core";
+ TString inputLabel = ListCall_ ? "inputRowsList" : "core";
auto block(Y(Y("let", inputLabel, input)));
- auto filter = Source->BuildFilter(ctx, inputLabel);
+ auto filter = Source_->BuildFilter(ctx, inputLabel);
if (filter) {
block = L(block, Y("let", inputLabel, filter));
}
- if (WithExtFunction) {
+ if (WithExtFunction_) {
auto preTransform = Y("RemoveSystemMembers", inputLabel);
- if (Terms.size() > 0) {
- preTransform = Y("Map", preTransform, BuildLambda(Pos, Y("row"), Q(Terms[0])));
+ if (Terms_.size() > 0) {
+ preTransform = Y("Map", preTransform, BuildLambda(Pos_, Y("row"), Q(Terms_[0])));
}
block = L(block, Y("let", inputLabel, preTransform));
- block = L(block, Y("let", "transform", With));
+ block = L(block, Y("let", "transform", With_));
block = L(block, Y("let", "core", Y("Apply", "transform", inputLabel)));
- } else if (ListCall) {
- block = L(block, Y("let", "core", Terms[0]));
+ } else if (ListCall_) {
+ block = L(block, Y("let", "core", Terms_[0]));
} else {
auto terms = BuildColumnsTerms(ctx);
- block = L(block, Y("let", "core", Y(ctx.UseUnordered(*this) ? "OrderedFlatMap" : "FlatMap", "core", BuildLambda(Pos, Y("row"), terms, "res"))));
+ block = L(block, Y("let", "core", Y(ctx.UseUnordered(*this) ? "OrderedFlatMap" : "FlatMap", "core", BuildLambda(Pos_, Y("row"), terms, "res"))));
}
block = L(block, Y("let", "core", Y("AutoDemux", Y("PersistableRepr", "core"))));
return Y("block", Q(L(block, Y("return", "core"))));
@@ -2511,18 +2511,18 @@ public:
TNodePtr BuildSort(TContext& ctx, const TString& label) override {
Y_UNUSED(ctx);
- if (AssumeOrderBy.empty()) {
+ if (AssumeOrderBy_.empty()) {
return nullptr;
}
- return Y("let", label, BuildSortSpec(AssumeOrderBy, label, false, true));
+ return Y("let", label, BuildSortSpec(AssumeOrderBy_, label, false, true));
}
EOrderKind GetOrderKind() const override {
- if (!With) {
+ if (!With_) {
return EOrderKind::Passthrough;
}
- return AssumeOrderBy.empty() ? EOrderKind::None : EOrderKind::Assume;
+ return AssumeOrderBy_.empty() ? EOrderKind::None : EOrderKind::Assume;
}
bool IsSelect() const override {
@@ -2530,47 +2530,47 @@ public:
}
bool HasSelectResult() const override {
- return !Settings.Discard;
+ return !Settings_.Discard;
}
bool IsStream() const override {
- return Source->IsStream();
+ return Source_->IsStream();
}
TWriteSettings GetWriteSettings() const override {
- return Settings;
+ return Settings_;
}
TNodePtr DoClone() const final {
- return new TProcessSource(Pos, Source->CloneSource(), SafeClone(With), WithExtFunction,
- CloneContainer(Terms), ListCall, ProcessStream, Settings, CloneContainer(AssumeOrderBy));
+ return new TProcessSource(Pos_, Source_->CloneSource(), SafeClone(With_), WithExtFunction_,
+ CloneContainer(Terms_), ListCall_, ProcessStream_, Settings_, CloneContainer(AssumeOrderBy_));
}
private:
TNodePtr BuildColumnsTerms(TContext& ctx) {
Y_UNUSED(ctx);
TNodePtr terms;
- Y_DEBUG_ABORT_UNLESS(Terms.size() == 1);
- if (Columns.All) {
- terms = Y(Y("let", "res", Y("ToSequence", Terms.front())));
+ Y_DEBUG_ABORT_UNLESS(Terms_.size() == 1);
+ if (Columns_.All) {
+ terms = Y(Y("let", "res", Y("ToSequence", Terms_.front())));
} else {
- Y_DEBUG_ABORT_UNLESS(Columns.List.size() == Terms.size());
+ Y_DEBUG_ABORT_UNLESS(Columns_.List.size() == Terms_.size());
terms = L(Y(), Y("let", "res",
- L(Y("AsStructUnordered"), Q(Y(BuildQuotedAtom(Pos, Columns.List.front()), Terms.front())))));
+ L(Y("AsStructUnordered"), Q(Y(BuildQuotedAtom(Pos_, Columns_.List.front()), Terms_.front())))));
terms = L(terms, Y("let", "res", Y("Just", "res")));
}
return terms;
}
private:
- TSourcePtr Source;
- TNodePtr With;
- const bool WithExtFunction;
- TVector<TNodePtr> Terms;
- const bool ListCall;
- const bool ProcessStream;
- const TWriteSettings Settings;
- TVector<TSortSpecificationPtr> AssumeOrderBy;
+ TSourcePtr Source_;
+ TNodePtr With_;
+ const bool WithExtFunction_;
+ TVector<TNodePtr> Terms_;
+ const bool ListCall_;
+ const bool ProcessStream_;
+ const TWriteSettings Settings_;
+ TVector<TSortSpecificationPtr> AssumeOrderBy_;
};
TSourcePtr BuildProcess(
@@ -2591,35 +2591,35 @@ class TNestedProxySource: public IProxySource {
public:
TNestedProxySource(TPosition pos, const TVector<TNodePtr>& groupBy, TSourcePtr source)
: IProxySource(pos, source.Get())
- , CompositeSelect(nullptr)
- , Holder(std::move(source))
- , GroupBy(groupBy)
+ , CompositeSelect_(nullptr)
+ , Holder_(std::move(source))
+ , GroupBy_(groupBy)
{}
TNestedProxySource(TCompositeSelect* compositeSelect, const TVector<TNodePtr>& groupBy)
: IProxySource(compositeSelect->GetPos(), compositeSelect->RealSource())
- , CompositeSelect(compositeSelect)
- , GroupBy(groupBy)
+ , CompositeSelect_(compositeSelect)
+ , GroupBy_(groupBy)
{}
bool DoInit(TContext& ctx, ISource* src) override {
- return Source->Init(ctx, src);
+ return Source_->Init(ctx, src);
}
TNodePtr Build(TContext& ctx) override {
- return CompositeSelect ? BuildAtom(Pos, "composite", TNodeFlags::Default) : Source->Build(ctx);
+ return CompositeSelect_ ? BuildAtom(Pos_, "composite", TNodeFlags::Default) : Source_->Build(ctx);
}
bool InitFilters(TContext& ctx) override {
- return CompositeSelect ? true : Source->InitFilters(ctx);
+ return CompositeSelect_ ? true : Source_->InitFilters(ctx);
}
TNodePtr BuildFilter(TContext& ctx, const TString& label) override {
- return CompositeSelect ? nullptr : Source->BuildFilter(ctx, label);
+ return CompositeSelect_ ? nullptr : Source_->BuildFilter(ctx, label);
}
IJoin* GetJoin() override {
- return Source->GetJoin();
+ return Source_->GetJoin();
}
bool IsCompositeSource() const override {
@@ -2627,16 +2627,16 @@ public:
}
ISource* GetCompositeSource() override {
- return CompositeSelect;
+ return CompositeSelect_;
}
bool AddGrouping(TContext& ctx, const TVector<TString>& columns, TString& hintColumn) override {
Y_UNUSED(ctx);
- hintColumn = TStringBuilder() << "GroupingHint" << Hints.size();
+ hintColumn = TStringBuilder() << "GroupingHint" << Hints_.size();
ui64 hint = 0;
- if (GroupByColumns.empty()) {
+ if (GroupByColumns_.empty()) {
const bool isJoin = GetJoin();
- for (const auto& groupByNode: GroupBy) {
+ for (const auto& groupByNode: GroupBy_) {
auto namePtr = groupByNode->GetColumnName();
YQL_ENSURE(namePtr);
TString column = *namePtr;
@@ -2646,40 +2646,40 @@ public:
column = DotJoin(*sourceNamePtr, column);
}
}
- GroupByColumns.insert(column);
+ GroupByColumns_.insert(column);
}
}
for (const auto& column: columns) {
hint <<= 1;
- if (!GroupByColumns.contains(column)) {
+ if (!GroupByColumns_.contains(column)) {
hint += 1;
}
}
- Hints.push_back(hint);
+ Hints_.push_back(hint);
return true;
}
size_t GetGroupingColumnsCount() const override {
- return Hints.size();
+ return Hints_.size();
}
TNodePtr BuildGroupingColumns(const TString& label) override {
- if (Hints.empty()) {
+ if (Hints_.empty()) {
return nullptr;
}
auto body = Y();
- for (size_t i = 0; i < Hints.size(); ++i) {
+ for (size_t i = 0; i < Hints_.size(); ++i) {
TString hintColumn = TStringBuilder() << "GroupingHint" << i;
- TString hintValue = ToString(Hints[i]);
+ TString hintValue = ToString(Hints_[i]);
body = L(body, Y("let", "row", Y("AddMember", "row", Q(hintColumn), Y("Uint64", Q(hintValue)))));
}
- return Y("Map", label, BuildLambda(Pos, Y("row"), body, "row"));
+ return Y("Map", label, BuildLambda(Pos_, Y("row"), body, "row"));
}
void FinishColumns() override {
- Source->FinishColumns();
+ Source_->FinishColumns();
}
TMaybe<bool> AddColumn(TContext& ctx, TColumnNode& column) override {
@@ -2688,21 +2688,21 @@ public:
return true;
}
}
- return Source->AddColumn(ctx, column);
+ return Source_->AddColumn(ctx, column);
}
TPtr DoClone() const final {
- YQL_ENSURE(Hints.empty());
- return Holder.Get() ? new TNestedProxySource(Pos, CloneContainer(GroupBy), Holder->CloneSource()) :
- new TNestedProxySource(CompositeSelect, CloneContainer(GroupBy));
+ YQL_ENSURE(Hints_.empty());
+ return Holder_.Get() ? new TNestedProxySource(Pos_, CloneContainer(GroupBy_), Holder_->CloneSource()) :
+ new TNestedProxySource(CompositeSelect_, CloneContainer(GroupBy_));
}
private:
- TCompositeSelect* CompositeSelect;
- TSourcePtr Holder;
- TVector<TNodePtr> GroupBy;
- mutable TSet<TString> GroupByColumns;
- mutable TVector<ui64> Hints;
+ TCompositeSelect* CompositeSelect_;
+ TSourcePtr Holder_;
+ TVector<TNodePtr> GroupBy_;
+ mutable TSet<TString> GroupByColumns_;
+ mutable TVector<ui64> Hints_;
};
@@ -2811,9 +2811,9 @@ class TUnion: public IRealSource {
public:
TUnion(TPosition pos, TVector<TSourcePtr>&& sources, bool quantifierAll, const TWriteSettings& settings)
: IRealSource(pos)
- , Sources(std::move(sources))
- , QuantifierAll(quantifierAll)
- , Settings(settings)
+ , Sources_(std::move(sources))
+ , QuantifierAll_(quantifierAll)
+ , Settings_(settings)
{
}
@@ -2822,7 +2822,7 @@ public:
}
void GetInputTables(TTableList& tableList) const override {
- for (auto& x : Sources) {
+ for (auto& x : Sources_) {
x->GetInputTables(tableList);
}
@@ -2831,7 +2831,7 @@ public:
bool DoInit(TContext& ctx, ISource* src) override {
bool first = true;
- for (auto& s: Sources) {
+ for (auto& s: Sources_) {
s->UseAsInner();
if (!s->Init(ctx, src)) {
return false;
@@ -2839,7 +2839,7 @@ public:
if (!ctx.PositionalUnionAll || first) {
auto c = s->GetColumns();
Y_DEBUG_ABORT_UNLESS(c);
- Columns.Merge(*c);
+ Columns_.Merge(*c);
first = false;
}
}
@@ -2848,7 +2848,7 @@ public:
TNodePtr Build(TContext& ctx) override {
TPtr res;
- if (QuantifierAll) {
+ if (QuantifierAll_) {
if (ctx.EmitUnionMerge) {
res = ctx.PositionalUnionAll ? Y("UnionMergePositional") : Y("UnionMerge");
} else {
@@ -2858,7 +2858,7 @@ public:
res = ctx.PositionalUnionAll ? Y("UnionPositional") : Y("Union");
}
- for (auto& s: Sources) {
+ for (auto& s: Sources_) {
auto input = s->Build(ctx);
if (!input) {
return nullptr;
@@ -2870,7 +2870,7 @@ public:
bool IsStream() const override {
- for (auto& s: Sources) {
+ for (auto& s: Sources_) {
if (!s->IsStream()) {
return false;
}
@@ -2879,7 +2879,7 @@ public:
}
TNodePtr DoClone() const final {
- return MakeIntrusive<TUnion>(Pos, CloneContainer(Sources), QuantifierAll, Settings);
+ return MakeIntrusive<TUnion>(Pos_, CloneContainer(Sources_), QuantifierAll_, Settings_);
}
bool IsSelect() const override {
@@ -2887,17 +2887,17 @@ public:
}
bool HasSelectResult() const override {
- return !Settings.Discard;
+ return !Settings_.Discard;
}
TWriteSettings GetWriteSettings() const override {
- return Settings;
+ return Settings_;
}
private:
- TVector<TSourcePtr> Sources;
- bool QuantifierAll;
- const TWriteSettings Settings;
+ TVector<TSourcePtr> Sources_;
+ bool QuantifierAll_;
+ const TWriteSettings Settings_;
};
TSourcePtr BuildUnion(
@@ -2913,28 +2913,28 @@ class TOverWindowSource: public IProxySource {
public:
TOverWindowSource(TPosition pos, const TString& windowName, ISource* origSource)
: IProxySource(pos, origSource)
- , WindowName(windowName)
+ , WindowName_(windowName)
{
- Source->SetLabel(origSource->GetLabel());
+ Source_->SetLabel(origSource->GetLabel());
}
TString MakeLocalName(const TString& name) override {
- return Source->MakeLocalName(name);
+ return Source_->MakeLocalName(name);
}
void AddTmpWindowColumn(const TString& column) override {
- return Source->AddTmpWindowColumn(column);
+ return Source_->AddTmpWindowColumn(column);
}
bool AddAggregation(TContext& ctx, TAggregationPtr aggr) override {
if (aggr->IsOverWindow() || aggr->IsOverWindowDistinct()) {
- return Source->AddAggregationOverWindow(ctx, WindowName, aggr);
+ return Source_->AddAggregationOverWindow(ctx, WindowName_, aggr);
}
- return Source->AddAggregation(ctx, aggr);
+ return Source_->AddAggregation(ctx, aggr);
}
bool AddFuncOverWindow(TContext& ctx, TNodePtr expr) override {
- return Source->AddFuncOverWindow(ctx, WindowName, expr);
+ return Source_->AddFuncOverWindow(ctx, WindowName_, expr);
}
bool IsOverWindowSource() const override {
@@ -2942,7 +2942,7 @@ public:
}
TMaybe<bool> AddColumn(TContext& ctx, TColumnNode& column) override {
- return Source->AddColumn(ctx, column);
+ return Source_->AddColumn(ctx, column);
}
TNodePtr Build(TContext& ctx) override {
@@ -2951,19 +2951,19 @@ public:
}
const TString* GetWindowName() const override {
- return &WindowName;
+ return &WindowName_;
}
TWindowSpecificationPtr FindWindowSpecification(TContext& ctx, const TString& windowName) const override {
- return Source->FindWindowSpecification(ctx, windowName);
+ return Source_->FindWindowSpecification(ctx, windowName);
}
TNodePtr GetSessionWindowSpec() const override {
- return Source->GetSessionWindowSpec();
+ return Source_->GetSessionWindowSpec();
}
IJoin* GetJoin() override {
- return Source->GetJoin();
+ return Source_->GetJoin();
}
TNodePtr DoClone() const final {
@@ -2971,7 +2971,7 @@ public:
}
private:
- const TString WindowName;
+ const TString WindowName_;
};
TSourcePtr BuildOverWindowSource(TPosition pos, const TString& windowName, ISource* origSource) {
@@ -3010,32 +3010,32 @@ class TSelect: public IProxySource {
public:
TSelect(TPosition pos, TSourcePtr source, TNodePtr skipTake)
: IProxySource(pos, source.Get())
- , Source(std::move(source))
- , SkipTake(skipTake)
+ , Source_(std::move(source))
+ , SkipTake_(skipTake)
{}
bool DoInit(TContext& ctx, ISource* src) override {
- Source->SetLabel(Label);
- if (AsInner) {
- Source->UseAsInner();
+ Source_->SetLabel(Label_);
+ if (AsInner_) {
+ Source_->UseAsInner();
}
if (IgnoreSort()) {
- Source->DisableSort();
- ctx.Warning(Source->GetPos(), TIssuesIds::YQL_ORDER_BY_WITHOUT_LIMIT_IN_SUBQUERY) << "ORDER BY without LIMIT in subquery will be ignored";
+ Source_->DisableSort();
+ ctx.Warning(Source_->GetPos(), TIssuesIds::YQL_ORDER_BY_WITHOUT_LIMIT_IN_SUBQUERY) << "ORDER BY without LIMIT in subquery will be ignored";
}
- if (!Source->Init(ctx, src)) {
+ if (!Source_->Init(ctx, src)) {
return false;
}
- src = Source.Get();
- if (SkipTake) {
- FakeSource = BuildFakeSource(SkipTake->GetPos());
- if (!SkipTake->Init(ctx, FakeSource.Get())) {
+ src = Source_.Get();
+ if (SkipTake_) {
+ FakeSource_ = BuildFakeSource(SkipTake_->GetPos());
+ if (!SkipTake_->Init(ctx, FakeSource_.Get())) {
return false;
}
- if (SkipTake->HasSkip() && Source->GetOrderKind() != EOrderKind::Sort && Source->GetOrderKind() != EOrderKind::Assume) {
- ctx.Warning(Source->GetPos(), TIssuesIds::YQL_OFFSET_WITHOUT_SORT) << "LIMIT with OFFSET without [ASSUME] ORDER BY may provide different results from run to run";
+ if (SkipTake_->HasSkip() && Source_->GetOrderKind() != EOrderKind::Sort && Source_->GetOrderKind() != EOrderKind::Assume) {
+ ctx.Warning(Source_->GetPos(), TIssuesIds::YQL_OFFSET_WITHOUT_SORT) << "LIMIT with OFFSET without [ASSUME] ORDER BY may provide different results from run to run";
}
}
@@ -3043,20 +3043,20 @@ public:
}
TNodePtr Build(TContext& ctx) override {
- auto input = Source->Build(ctx);
+ auto input = Source_->Build(ctx);
if (!input) {
return nullptr;
}
const auto label = "select";
auto block(Y(Y("let", label, input)));
- auto sortNode = Source->BuildSort(ctx, label);
+ auto sortNode = Source_->BuildSort(ctx, label);
if (sortNode && !IgnoreSort()) {
block = L(block, sortNode);
}
- if (SkipTake) {
- block = L(block, SkipTake);
+ if (SkipTake_) {
+ block = L(block, SkipTake_);
}
TNodePtr sample;
@@ -3066,7 +3066,7 @@ public:
block = L(block, Y("let", "select", Y("OrderedFlatMap", "select", sample)));
}
- if (auto removeNode = Source->BuildCleanupColumns(ctx, label)) {
+ if (auto removeNode = Source_->BuildCleanupColumns(ctx, label)) {
block = L(block, removeNode);
}
@@ -3093,24 +3093,24 @@ public:
}
bool IsSelect() const override {
- return Source->IsSelect();
+ return Source_->IsSelect();
}
bool HasSelectResult() const override {
- return Source->HasSelectResult();
+ return Source_->HasSelectResult();
}
TPtr DoClone() const final {
- return MakeIntrusive<TSelect>(Pos, Source->CloneSource(), SafeClone(SkipTake));
+ return MakeIntrusive<TSelect>(Pos_, Source_->CloneSource(), SafeClone(SkipTake_));
}
protected:
bool IgnoreSort() const {
- return AsInner && !SkipTake && EOrderKind::Sort == Source->GetOrderKind();
+ return AsInner_ && !SkipTake_ && EOrderKind::Sort == Source_->GetOrderKind();
}
- TSourcePtr Source;
- TNodePtr SkipTake;
- TSourcePtr FakeSource;
+ TSourcePtr Source_;
+ TNodePtr SkipTake_;
+ TSourcePtr FakeSource_;
};
TSourcePtr BuildSelect(TPosition pos, TSourcePtr source, TNodePtr skipTake) {
@@ -3122,13 +3122,13 @@ public:
TSelectResultNode(TPosition pos, TSourcePtr source, bool writeResult, bool inSubquery,
TScopedStatePtr scoped)
: TAstListNode(pos)
- , Source(std::move(source))
- , WriteResult(writeResult)
- , InSubquery(inSubquery)
- , Scoped(scoped)
+ , Source_(std::move(source))
+ , WriteResult_(writeResult)
+ , InSubquery_(inSubquery)
+ , Scoped_(scoped)
{
- YQL_ENSURE(Source, "Invalid source node");
- FakeSource = BuildFakeSource(pos);
+ YQL_ENSURE(Source_, "Invalid source node");
+ FakeSource_ = BuildFakeSource(pos);
}
bool IsSelect() const override {
@@ -3136,19 +3136,19 @@ public:
}
bool HasSelectResult() const override {
- return Source->HasSelectResult();
+ return Source_->HasSelectResult();
}
bool DoInit(TContext& ctx, ISource* src) override {
- if (!Source->Init(ctx, src)) {
+ if (!Source_->Init(ctx, src)) {
return false;
}
- src = Source.Get();
+ src = Source_.Get();
TTableList tableList;
- Source->GetInputTables(tableList);
+ Source_->GetInputTables(tableList);
- TNodePtr node(BuildInputTables(Pos, tableList, InSubquery, Scoped));
+ TNodePtr node(BuildInputTables(Pos_, tableList, InSubquery_, Scoped_));
if (!node->Init(ctx, src)) {
return false;
}
@@ -3172,7 +3172,7 @@ public:
labelNode = Y("EvaluateAtom", labelNode);
}
- if (!labelNode->Init(ctx, FakeSource.Get())) {
+ if (!labelNode->Init(ctx, FakeSource_.Get())) {
return false;
}
@@ -3185,16 +3185,16 @@ public:
settings = L(settings, Q(Y(Q("autoref"))));
}
- auto columns = Source->GetColumns();
+ auto columns = Source_->GetColumns();
if (columns && !columns->All && !(columns->QualifiedAll && ctx.SimpleColumns)) {
auto list = Y();
YQL_ENSURE(columns->List.size() == columns->NamedColumns.size());
for (size_t i = 0; i < columns->List.size(); ++i) {
auto& c = columns->List[i];
if (c.EndsWith('*')) {
- list = L(list, Q(Y(Q("prefix"), BuildQuotedAtom(Pos, c.substr(0, c.size() - 1)))));
+ list = L(list, Q(Y(Q("prefix"), BuildQuotedAtom(Pos_, c.substr(0, c.size() - 1)))));
} else if (columns->NamedColumns[i]) {
- list = L(list, BuildQuotedAtom(Pos, c));
+ list = L(list, BuildQuotedAtom(Pos_, c));
} else {
list = L(list, Q(Y(Q("auto"))));
}
@@ -3206,19 +3206,19 @@ public:
settings = L(settings, Q(Y(Q("take"), Q(ToString(ctx.ResultRowsLimit)))));
}
- auto output = Source->Build(ctx);
+ auto output = Source_->Build(ctx);
if (!output) {
return false;
}
node = L(node, Y("let", "output", output));
- if (WriteResult || writeSettings.Discard) {
- if (EOrderKind::None == Source->GetOrderKind() && ctx.UseUnordered(*Source)) {
+ if (WriteResult_ || writeSettings.Discard) {
+ if (EOrderKind::None == Source_->GetOrderKind() && ctx.UseUnordered(*Source_)) {
node = L(node, Y("let", "output", Y("Unordered", "output")));
if (ctx.UnorderedResult) {
settings = L(settings, Q(Y(Q("unordered"))));
}
}
- auto writeResult(BuildWriteResult(Pos, "output", settings));
+ auto writeResult(BuildWriteResult(Pos_, "output", settings));
if (!writeResult->Init(ctx, src)) {
return false;
}
@@ -3236,12 +3236,12 @@ public:
return {};
}
protected:
- TSourcePtr Source;
+ TSourcePtr Source_;
- const bool WriteResult;
- const bool InSubquery;
- TScopedStatePtr Scoped;
- TSourcePtr FakeSource;
+ const bool WriteResult_;
+ const bool InSubquery_;
+ TScopedStatePtr Scoped_;
+ TSourcePtr FakeSource_;
};
TNodePtr BuildSelectResult(TPosition pos, TSourcePtr source, bool writeResult, bool inSubquery,
diff --git a/yql/essentials/sql/v1/source.cpp b/yql/essentials/sql/v1/source.cpp
index 1b639dbc5d9..7b313adff13 100644
--- a/yql/essentials/sql/v1/source.cpp
+++ b/yql/essentials/sql/v1/source.cpp
@@ -49,14 +49,14 @@ ISource::~ISource()
TSourcePtr ISource::CloneSource() const {
Y_DEBUG_ABORT_UNLESS(dynamic_cast<ISource*>(Clone().Get()), "Cloned node is no source");
TSourcePtr result = static_cast<ISource*>(Clone().Get());
- for (auto curFilter: Filters) {
- result->Filters.emplace_back(curFilter->Clone());
+ for (auto curFilter: Filters_) {
+ result->Filters_.emplace_back(curFilter->Clone());
}
for (int i = 0; i < static_cast<int>(EExprSeat::Max); ++i) {
- result->NamedExprs[i] = CloneContainer(NamedExprs[i]);
+ result->NamedExprs_[i] = CloneContainer(NamedExprs_[i]);
}
- result->FlattenColumns = FlattenColumns;
- result->FlattenMode = FlattenMode;
+ result->FlattenColumns_ = FlattenColumns_;
+ result->FlattenMode_ = FlattenMode_;
return result;
}
@@ -73,7 +73,7 @@ const TColumns* ISource::GetColumns() const {
}
void ISource::GetInputTables(TTableList& tableList) const {
- for (auto srcPtr: UsedSources) {
+ for (auto srcPtr: UsedSources_) {
srcPtr->GetInputTables(tableList);
}
return;
@@ -81,7 +81,7 @@ void ISource::GetInputTables(TTableList& tableList) const {
TMaybe<bool> ISource::AddColumn(TContext& ctx, TColumnNode& column) {
if (column.IsReliable()) {
- ctx.Error(Pos) << "Source does not allow column references";
+ ctx.Error(Pos_) << "Source does not allow column references";
ctx.Error(column.GetPos()) << "Column reference " <<
(column.GetColumnName() ? "'" + *column.GetColumnName() + "'" : "(expr)");
}
@@ -94,25 +94,25 @@ void ISource::FinishColumns() {
bool ISource::AddFilter(TContext& ctx, TNodePtr filter) {
Y_UNUSED(ctx);
- Filters.push_back(filter);
+ Filters_.push_back(filter);
return true;
}
bool ISource::AddGroupKey(TContext& ctx, const TString& column) {
- if (!GroupKeys.insert(column).second) {
+ if (!GroupKeys_.insert(column).second) {
ctx.Error() << "Duplicate grouping column: " << column;
return false;
}
- OrderedGroupKeys.push_back(column);
+ OrderedGroupKeys_.push_back(column);
return true;
}
void ISource::SetCompactGroupBy(bool compactGroupBy) {
- CompactGroupBy = compactGroupBy;
+ CompactGroupBy_ = compactGroupBy;
}
void ISource::SetGroupBySuffix(const TString& suffix) {
- GroupBySuffix = suffix;
+ GroupBySuffix_ = suffix;
}
bool ISource::AddExpressions(TContext& ctx, const TVector<TNodePtr>& expressions, EExprSeat exprSeat) {
@@ -121,12 +121,12 @@ bool ISource::AddExpressions(TContext& ctx, const TVector<TNodePtr>& expressions
THashSet<TString> aliasSet;
// TODO: merge FlattenBy with FlattenByExpr
const bool isFlatten = (exprSeat == EExprSeat::FlattenBy || exprSeat == EExprSeat::FlattenByExpr);
- THashSet<TString>& aliases = isFlatten ? FlattenByAliases : aliasSet;
+ THashSet<TString>& aliases = isFlatten ? FlattenByAliases_ : aliasSet;
for (const auto& expr: expressions) {
const auto& alias = expr->GetLabel();
const auto& columnNamePtr = expr->GetColumnName();
if (alias) {
- ExprAliases.insert(alias);
+ ExprAliases_.insert(alias);
if (!aliases.emplace(alias).second) {
ctx.Error(expr->GetPos()) << "Duplicate alias found: " << alias << " in " << exprSeat << " section";
return false;
@@ -151,7 +151,7 @@ bool ISource::AddExpressions(TContext& ctx, const TVector<TNodePtr>& expressions
return false;
}
if (alias && exprSeat == EExprSeat::GroupBy) {
- auto columnAlias = GroupByColumnAliases.emplace(columnName, alias);
+ auto columnAlias = GroupByColumnAliases_.emplace(columnName, alias);
auto oldAlias = columnAlias.first->second;
if (columnAlias.second && oldAlias != alias) {
ctx.Error(expr->GetPos()) << "Alias for column not same, column: " << columnName <<
@@ -163,20 +163,20 @@ bool ISource::AddExpressions(TContext& ctx, const TVector<TNodePtr>& expressions
if (exprSeat == EExprSeat::GroupBy) {
if (auto sessionWindow = dynamic_cast<TSessionWindow*>(expr.Get())) {
- if (SessionWindow) {
+ if (SessionWindow_) {
ctx.Error(expr->GetPos()) << "Duplicate session window specification:";
- ctx.Error(SessionWindow->GetPos()) << "Previous session window is declared here";
+ ctx.Error(SessionWindow_->GetPos()) << "Previous session window is declared here";
return false;
}
- SessionWindow = expr;
+ SessionWindow_ = expr;
}
if (auto hoppingWindow = dynamic_cast<THoppingWindow*>(expr.Get())) {
- if (HoppingWindow) {
+ if (HoppingWindow_) {
ctx.Error(expr->GetPos()) << "Duplicate hopping window specification:";
- ctx.Error(HoppingWindow->GetPos()) << "Previous hopping window is declared here";
+ ctx.Error(HoppingWindow_->GetPos()) << "Previous hopping window is declared here";
return false;
}
- HoppingWindow = expr;
+ HoppingWindow_ = expr;
}
}
Expressions(exprSeat).emplace_back(expr);
@@ -185,21 +185,21 @@ bool ISource::AddExpressions(TContext& ctx, const TVector<TNodePtr>& expressions
}
void ISource::SetFlattenByMode(const TString& mode) {
- FlattenMode = mode;
+ FlattenMode_ = mode;
}
void ISource::MarkFlattenColumns() {
- FlattenColumns = true;
+ FlattenColumns_ = true;
}
bool ISource::IsFlattenColumns() const {
- return FlattenColumns;
+ return FlattenColumns_;
}
TString ISource::MakeLocalName(const TString& name) {
- auto iter = GenIndexes.find(name);
- if (iter == GenIndexes.end()) {
- iter = GenIndexes.emplace(name, 0).first;
+ auto iter = GenIndexes_.find(name);
+ if (iter == GenIndexes_.end()) {
+ iter = GenIndexes_.emplace(name, 0).first;
}
TStringBuilder str;
str << name << iter->second;
@@ -210,16 +210,16 @@ TString ISource::MakeLocalName(const TString& name) {
bool ISource::AddAggregation(TContext& ctx, TAggregationPtr aggr) {
Y_UNUSED(ctx);
YQL_ENSURE(aggr);
- Aggregations.push_back(aggr);
+ Aggregations_.push_back(aggr);
return true;
}
bool ISource::HasAggregations() const {
- return !Aggregations.empty() || !GroupKeys.empty();
+ return !Aggregations_.empty() || !GroupKeys_.empty();
}
void ISource::AddWindowSpecs(TWinSpecs winSpecs) {
- WinSpecs = winSpecs;
+ WinSpecs_ = winSpecs;
}
bool ISource::AddFuncOverWindow(TContext& ctx, TNodePtr expr) {
@@ -229,33 +229,33 @@ bool ISource::AddFuncOverWindow(TContext& ctx, TNodePtr expr) {
}
void ISource::AddTmpWindowColumn(const TString& column) {
- TmpWindowColumns.push_back(column);
+ TmpWindowColumns_.push_back(column);
}
const TVector<TString>& ISource::GetTmpWindowColumns() const {
- return TmpWindowColumns;
+ return TmpWindowColumns_;
}
void ISource::SetLegacyHoppingWindowSpec(TLegacyHoppingWindowSpecPtr spec) {
- LegacyHoppingWindowSpec = spec;
+ LegacyHoppingWindowSpec_ = spec;
}
TLegacyHoppingWindowSpecPtr ISource::GetLegacyHoppingWindowSpec() const {
- return LegacyHoppingWindowSpec;
+ return LegacyHoppingWindowSpec_;
}
TNodePtr ISource::GetSessionWindowSpec() const {
- return SessionWindow;
+ return SessionWindow_;
}
TNodePtr ISource::GetHoppingWindowSpec() const {
- return HoppingWindow;
+ return HoppingWindow_;
}
TWindowSpecificationPtr ISource::FindWindowSpecification(TContext& ctx, const TString& windowName) const {
- auto winIter = WinSpecs.find(windowName);
- if (winIter == WinSpecs.end()) {
- ctx.Error(Pos) << "Unable to find window specification for window '" << windowName << "'";
+ auto winIter = WinSpecs_.find(windowName);
+ if (winIter == WinSpecs_.end()) {
+ ctx.Error(Pos_) << "Unable to find window specification for window '" << windowName << "'";
return {};
}
YQL_ENSURE(winIter->second);
@@ -263,11 +263,11 @@ TWindowSpecificationPtr ISource::FindWindowSpecification(TContext& ctx, const TS
}
inline TVector<TNodePtr>& ISource::Expressions(EExprSeat exprSeat) {
- return NamedExprs[static_cast<size_t>(exprSeat)];
+ return NamedExprs_[static_cast<size_t>(exprSeat)];
}
const TVector<TNodePtr>& ISource::Expressions(EExprSeat exprSeat) const {
- return NamedExprs[static_cast<size_t>(exprSeat)];
+ return NamedExprs_[static_cast<size_t>(exprSeat)];
}
inline TNodePtr ISource::AliasOrColumn(const TNodePtr& node, bool withSource) {
@@ -300,7 +300,7 @@ bool ISource::AddAggregationOverWindow(TContext& ctx, const TString& windowName,
if (!FindWindowSpecification(ctx, windowName)) {
return false;
}
- AggregationOverWindow[windowName].emplace_back(std::move(func));
+ AggregationOverWindow_[windowName].emplace_back(std::move(func));
return true;
}
@@ -308,12 +308,12 @@ bool ISource::AddFuncOverWindow(TContext& ctx, const TString& windowName, TNodeP
if (!FindWindowSpecification(ctx, windowName)) {
return false;
}
- FuncOverWindow[windowName].emplace_back(std::move(func));
+ FuncOverWindow_[windowName].emplace_back(std::move(func));
return true;
}
void ISource::SetMatchRecognize(TMatchRecognizeBuilderPtr matchRecognize) {
- MatchRecognizeBuilder = matchRecognize;
+ MatchRecognizeBuilder_ = matchRecognize;
}
bool ISource::IsCompositeSource() const {
@@ -321,7 +321,7 @@ bool ISource::IsCompositeSource() const {
}
bool ISource::IsGroupByColumn(const TString& column) const {
- return GroupKeys.contains(column);
+ return GroupKeys_.contains(column);
}
bool ISource::IsFlattenByColumns() const {
@@ -367,8 +367,8 @@ bool ISource::IsExprSeat(EExprSeat exprSeat, EExprType type) const {
}
TString ISource::GetGroupByColumnAlias(const TString& column) const {
- auto iter = GroupByColumnAliases.find(column);
- if (iter == GroupByColumnAliases.end()) {
+ auto iter = GroupByColumnAliases_.find(column);
+ if (iter == GroupByColumnAliases_.end()) {
return {};
}
return iter->second;
@@ -379,12 +379,12 @@ const TString* ISource::GetWindowName() const {
}
bool ISource::IsCalcOverWindow() const {
- return !AggregationOverWindow.empty() || !FuncOverWindow.empty() ||
- AnyOf(WinSpecs, [](const auto& item) { return item.second->Session; });
+ return !AggregationOverWindow_.empty() || !FuncOverWindow_.empty() ||
+ AnyOf(WinSpecs_, [](const auto& item) { return item.second->Session; });
}
bool ISource::IsOverWindowSource() const {
- return !WinSpecs.empty();
+ return !WinSpecs_.empty();
}
bool ISource::IsStream() const {
@@ -451,25 +451,25 @@ size_t ISource::GetGroupingColumnsCount() const {
}
TNodePtr ISource::BuildFilter(TContext& ctx, const TString& label) {
- return Filters.empty() ? nullptr : Y(ctx.UseUnordered(*this) ? "OrderedFilter" : "Filter", label, BuildFilterLambda());
+ return Filters_.empty() ? nullptr : Y(ctx.UseUnordered(*this) ? "OrderedFilter" : "Filter", label, BuildFilterLambda());
}
TNodePtr ISource::BuildFilterLambda() {
- if (Filters.empty()) {
- return BuildLambda(Pos, Y("row"), Y("Bool", Q("true")));
+ if (Filters_.empty()) {
+ return BuildLambda(Pos_, Y("row"), Y("Bool", Q("true")));
}
- YQL_ENSURE(Filters[0]->HasState(ENodeState::Initialized));
- TNodePtr filter(Filters[0]);
- for (ui32 i = 1; i < Filters.size(); ++i) {
- YQL_ENSURE(Filters[i]->HasState(ENodeState::Initialized));
- filter = Y("And", filter, Filters[i]);
+ YQL_ENSURE(Filters_[0]->HasState(ENodeState::Initialized));
+ TNodePtr filter(Filters_[0]);
+ for (ui32 i = 1; i < Filters_.size(); ++i) {
+ YQL_ENSURE(Filters_[i]->HasState(ENodeState::Initialized));
+ filter = Y("And", filter, Filters_[i]);
}
filter = Y("Coalesce", filter, Y("Bool", Q("false")));
- return BuildLambda(Pos, Y("row"), filter);
+ return BuildLambda(Pos_, Y("row"), filter);
}
TNodePtr ISource::BuildFlattenByColumns(const TString& label) {
- auto columnsList = Y("FlattenByColumns", Q(FlattenMode), label);
+ auto columnsList = Y("FlattenByColumns", Q(FlattenMode_), label);
for (const auto& column: Expressions(EExprSeat::FlattenBy)) {
const auto columnNamePtr = column->GetColumnName();
YQL_ENSURE(columnNamePtr);
@@ -518,13 +518,13 @@ TNodePtr ISource::BuildPreaggregatedMap(TContext& ctx) {
TNodePtr res;
if (groupByExprs) {
- auto body = BuildLambdaBodyForExprAliases(Pos, groupByExprs, ctx.GroupByExprAfterWhere || !ctx.FailOnGroupByExprOverride);
- res = Y("FlatMap", "core", BuildLambda(Pos, Y("row"), body));
+ auto body = BuildLambdaBodyForExprAliases(Pos_, groupByExprs, ctx.GroupByExprAfterWhere || !ctx.FailOnGroupByExprOverride);
+ res = Y("FlatMap", "core", BuildLambda(Pos_, Y("row"), body));
}
if (distinctAggrExprs) {
- auto body = BuildLambdaBodyForExprAliases(Pos, distinctAggrExprs, ctx.GroupByExprAfterWhere || !ctx.FailOnGroupByExprOverride);
- auto lambda = BuildLambda(Pos, Y("row"), body);
+ auto body = BuildLambdaBodyForExprAliases(Pos_, distinctAggrExprs, ctx.GroupByExprAfterWhere || !ctx.FailOnGroupByExprOverride);
+ auto lambda = BuildLambda(Pos_, Y("row"), body);
res = res ? Y("FlatMap", res, lambda) : Y("FlatMap", "core", lambda);
}
return res;
@@ -533,25 +533,25 @@ TNodePtr ISource::BuildPreaggregatedMap(TContext& ctx) {
TNodePtr ISource::BuildPreFlattenMap(TContext& ctx) {
Y_UNUSED(ctx);
YQL_ENSURE(IsFlattenByExprs());
- return BuildLambdaBodyForExprAliases(Pos, Expressions(EExprSeat::FlattenByExpr), true);
+ return BuildLambdaBodyForExprAliases(Pos_, Expressions(EExprSeat::FlattenByExpr), true);
}
TNodePtr ISource::BuildPrewindowMap(TContext& ctx) {
- auto feed = BuildAtom(Pos, "row", TNodeFlags::Default);
+ auto feed = BuildAtom(Pos_, "row", TNodeFlags::Default);
for (const auto& exprNode: Expressions(EExprSeat::WindowPartitionBy)) {
const auto name = exprNode->GetLabel();
if (name && !dynamic_cast<const TSessionWindow*>(exprNode.Get())) {
feed = Y("AddMember", feed, Q(name), exprNode);
}
}
- return Y(ctx.UseUnordered(*this) ? "OrderedFlatMap" : "FlatMap", "core", BuildLambda(Pos, Y("row"), Y("AsList", feed)));
+ return Y(ctx.UseUnordered(*this) ? "OrderedFlatMap" : "FlatMap", "core", BuildLambda(Pos_, Y("row"), Y("AsList", feed)));
}
bool ISource::BuildSamplingLambda(TNodePtr& node) {
- if (!SamplingRate) {
+ if (!SamplingRate_) {
return true;
}
- auto res = Y("Coalesce", Y("SafeCast", SamplingRate, Y("DataType", Q("Double"))), Y("Double", Q("0")));
+ auto res = Y("Coalesce", Y("SafeCast", SamplingRate_, Y("DataType", Q("Double"))), Y("Double", Q("0")));
res = Y("/", res, Y("Double", Q("100")));
res = Y(Y("let", "res", Y("OptionalIf", Y("<", Y("Random", Y("DependsOn", "row")), res), "row")));
node = BuildLambda(GetPos(), Y("row"), res, "res");
@@ -563,25 +563,25 @@ bool ISource::SetSamplingRate(TContext& ctx, ESampleClause clause, TNodePtr samp
if (!samplingRate->Init(ctx, this)) {
return false;
}
- SamplingRate = PrepareSamplingRate(Pos, clause, samplingRate);
+ SamplingRate_ = PrepareSamplingRate(Pos_, clause, samplingRate);
}
return true;
}
std::pair<TNodePtr, bool> ISource::BuildAggregation(const TString& label, TContext& ctx) {
- if (GroupKeys.empty() && Aggregations.empty() && !IsCompositeSource() && !LegacyHoppingWindowSpec) {
+ if (GroupKeys_.empty() && Aggregations_.empty() && !IsCompositeSource() && !LegacyHoppingWindowSpec_) {
return { nullptr, true };
}
auto keysTuple = Y();
- YQL_ENSURE(GroupKeys.size() == OrderedGroupKeys.size());
- for (const auto& key: OrderedGroupKeys) {
- YQL_ENSURE(GroupKeys.contains(key));
- keysTuple = L(keysTuple, BuildQuotedAtom(Pos, key));
+ YQL_ENSURE(GroupKeys_.size() == OrderedGroupKeys_.size());
+ for (const auto& key: OrderedGroupKeys_) {
+ YQL_ENSURE(GroupKeys_.contains(key));
+ keysTuple = L(keysTuple, BuildQuotedAtom(Pos_, key));
}
std::map<std::pair<bool, TString>, std::vector<IAggregation*>> genericAggrs;
- for (const auto& aggr: Aggregations) {
+ for (const auto& aggr: Aggregations_) {
if (const auto key = aggr->GetGenericKey()) {
genericAggrs[{aggr->IsDistinct(), *key}].emplace_back(aggr.Get());
}
@@ -595,11 +595,11 @@ std::pair<TNodePtr, bool> ISource::BuildAggregation(const TString& label, TConte
const auto listType = Y("TypeOf", label);
auto aggrArgs = Y();
- const bool overState = GroupBySuffix == "CombineState" || GroupBySuffix == "MergeState" ||
- GroupBySuffix == "MergeFinalize" || GroupBySuffix == "MergeManyFinalize";
- const bool allowAggApply = !LegacyHoppingWindowSpec && !SessionWindow && !HoppingWindow;
- for (const auto& aggr: Aggregations) {
- auto res = aggr->AggregationTraits(listType, overState, GroupBySuffix == "MergeManyFinalize", allowAggApply, ctx);
+ const bool overState = GroupBySuffix_ == "CombineState" || GroupBySuffix_ == "MergeState" ||
+ GroupBySuffix_ == "MergeFinalize" || GroupBySuffix_ == "MergeManyFinalize";
+ const bool allowAggApply = !LegacyHoppingWindowSpec_ && !SessionWindow_ && !HoppingWindow_;
+ for (const auto& aggr: Aggregations_) {
+ auto res = aggr->AggregationTraits(listType, overState, GroupBySuffix_ == "MergeManyFinalize", allowAggApply, ctx);
if (!res.second) {
return { nullptr, false };
}
@@ -610,57 +610,57 @@ std::pair<TNodePtr, bool> ISource::BuildAggregation(const TString& label, TConte
}
auto options = Y();
- if (CompactGroupBy || GroupBySuffix == "Finalize") {
+ if (CompactGroupBy_ || GroupBySuffix_ == "Finalize") {
options = L(options, Q(Y(Q("compact"))));
}
- if (LegacyHoppingWindowSpec) {
+ if (LegacyHoppingWindowSpec_) {
auto hoppingTraits = Y(
"HoppingTraits",
Y("ListItemType", listType),
- BuildLambda(Pos, Y("row"), LegacyHoppingWindowSpec->TimeExtractor),
- LegacyHoppingWindowSpec->Hop,
- LegacyHoppingWindowSpec->Interval,
- LegacyHoppingWindowSpec->Delay,
- LegacyHoppingWindowSpec->DataWatermarks ? Q("true") : Q("false"),
+ BuildLambda(Pos_, Y("row"), LegacyHoppingWindowSpec_->TimeExtractor),
+ LegacyHoppingWindowSpec_->Hop,
+ LegacyHoppingWindowSpec_->Interval,
+ LegacyHoppingWindowSpec_->Delay,
+ LegacyHoppingWindowSpec_->DataWatermarks ? Q("true") : Q("false"),
Q("v1"));
options = L(options, Q(Y(Q("hopping"), hoppingTraits)));
}
- if (SessionWindow) {
- YQL_ENSURE(SessionWindow->GetLabel());
- auto sessionWindow = dynamic_cast<TSessionWindow*>(SessionWindow.Get());
+ if (SessionWindow_) {
+ YQL_ENSURE(SessionWindow_->GetLabel());
+ auto sessionWindow = dynamic_cast<TSessionWindow*>(SessionWindow_.Get());
YQL_ENSURE(sessionWindow);
options = L(options, Q(Y(Q("session"),
- Q(Y(BuildQuotedAtom(Pos, SessionWindow->GetLabel()), sessionWindow->BuildTraits(label))))));
+ Q(Y(BuildQuotedAtom(Pos_, SessionWindow_->GetLabel()), sessionWindow->BuildTraits(label))))));
}
- if (HoppingWindow) {
- YQL_ENSURE(HoppingWindow->GetLabel());
- auto hoppingWindow = dynamic_cast<THoppingWindow*>(HoppingWindow.Get());
+ if (HoppingWindow_) {
+ YQL_ENSURE(HoppingWindow_->GetLabel());
+ auto hoppingWindow = dynamic_cast<THoppingWindow*>(HoppingWindow_.Get());
YQL_ENSURE(hoppingWindow);
options = L(options, Q(Y(Q("hopping"),
- Q(Y(BuildQuotedAtom(Pos, HoppingWindow->GetLabel()), hoppingWindow->BuildTraits(label))))));
+ Q(Y(BuildQuotedAtom(Pos_, HoppingWindow_->GetLabel()), hoppingWindow->BuildTraits(label))))));
}
- return { Y("AssumeColumnOrderPartial", Y("Aggregate" + GroupBySuffix, label, Q(keysTuple), Q(aggrArgs), Q(options)), Q(keysTuple)), true };
+ return { Y("AssumeColumnOrderPartial", Y("Aggregate" + GroupBySuffix_, label, Q(keysTuple), Q(aggrArgs), Q(options)), Q(keysTuple)), true };
}
TMaybe<TString> ISource::FindColumnMistype(const TString& name) const {
- auto result = FindMistypeIn(GroupKeys, name);
- return result ? result : FindMistypeIn(ExprAliases, name);
+ auto result = FindMistypeIn(GroupKeys_, name);
+ return result ? result : FindMistypeIn(ExprAliases_, name);
}
void ISource::AddDependentSource(TSourcePtr usedSource) {
- UsedSources.push_back(usedSource);
+ UsedSources_.push_back(usedSource);
}
class TYqlFrameBound final: public TCallNode {
public:
TYqlFrameBound(TPosition pos, TNodePtr bound)
: TCallNode(pos, "EvaluateExpr", 1, 1, { bound })
- , FakeSource(BuildFakeSource(pos))
+ , FakeSource_(BuildFakeSource(pos))
{
}
@@ -669,7 +669,7 @@ public:
return false;
}
- if (!Args[0]->Init(ctx, FakeSource.Get())) {
+ if (!Args_[0]->Init(ctx, FakeSource_.Get())) {
return false;
}
@@ -677,10 +677,10 @@ public:
}
TNodePtr DoClone() const final {
- return new TYqlFrameBound(Pos, Args[0]->Clone());
+ return new TYqlFrameBound(Pos_, Args_[0]->Clone());
}
private:
- TSourcePtr FakeSource;
+ TSourcePtr FakeSource_;
};
TNodePtr BuildFrameNode(const TFrameBound& frame, EFrameType frameType) {
@@ -747,7 +747,7 @@ class TSessionWindowTraits final: public TCallNode {
public:
TSessionWindowTraits(TPosition pos, const TVector<TNodePtr>& args)
: TCallNode(pos, "SessionWindowTraits", args)
- , FakeSource(BuildFakeSource(pos))
+ , FakeSource_(BuildFakeSource(pos))
{
YQL_ENSURE(args.size() == 4);
}
@@ -757,7 +757,7 @@ public:
return false;
}
- if (!Args.back()->Init(ctx, FakeSource.Get())) {
+ if (!Args_.back()->Init(ctx, FakeSource_.Get())) {
return false;
}
@@ -765,23 +765,23 @@ public:
}
TNodePtr DoClone() const final {
- return new TSessionWindowTraits(Pos, CloneContainer(Args));
+ return new TSessionWindowTraits(Pos_, CloneContainer(Args_));
}
private:
- TSourcePtr FakeSource;
+ TSourcePtr FakeSource_;
};
TNodePtr ISource::BuildCalcOverWindow(TContext& ctx, const TString& label) {
YQL_ENSURE(IsCalcOverWindow());
TSet<TString> usedWindows;
- for (auto& it : AggregationOverWindow) {
+ for (auto& it : AggregationOverWindow_) {
usedWindows.insert(it.first);
}
- for (auto& it : FuncOverWindow) {
+ for (auto& it : FuncOverWindow_) {
usedWindows.insert(it.first);
}
- for (auto& it : WinSpecs) {
+ for (auto& it : WinSpecs_) {
if (it.second->Session) {
usedWindows.insert(it.first);
}
@@ -799,11 +799,11 @@ TNodePtr ISource::BuildCalcOverWindow(TContext& ctx, const TString& label) {
auto spec = FindWindowSpecification(ctx, name);
YQL_ENSURE(spec);
- auto aggsIter = AggregationOverWindow.find(name);
- auto funcsIter = FuncOverWindow.find(name);
+ auto aggsIter = AggregationOverWindow_.find(name);
+ auto funcsIter = FuncOverWindow_.find(name);
- const auto& aggs = (aggsIter == AggregationOverWindow.end()) ? TVector<TAggregationPtr>() : aggsIter->second;
- const auto& funcs = (funcsIter == FuncOverWindow.end()) ? TVector<TNodePtr>() : funcsIter->second;
+ const auto& aggs = (aggsIter == AggregationOverWindow_.end()) ? TVector<TAggregationPtr>() : aggsIter->second;
+ const auto& funcs = (funcsIter == FuncOverWindow_.end()) ? TVector<TNodePtr>() : funcsIter->second;
auto frames = Y();
TString frameType;
@@ -914,7 +914,7 @@ bool ISource::DoInit(TContext& ctx, ISource* src) {
}
bool ISource::InitFilters(TContext& ctx) {
- for (auto& filter: Filters) {
+ for (auto& filter: Filters_) {
if (!filter->Init(ctx, this)) {
return false;
}
@@ -953,7 +953,7 @@ void ISource::FillSortParts(const TVector<TSortSpecificationPtr>& orderBy, TNode
sortDirection = Q(sortDirection);
expr = Q(exprList);
}
- sortKeySelector = BuildLambda(Pos, Y("row"), expr);
+ sortKeySelector = BuildLambda(Pos_, Y("row"), expr);
}
TNodePtr ISource::BuildSortSpec(const TVector<TSortSpecificationPtr>& orderBy, const TString& label, bool traits, bool assume) {
@@ -971,12 +971,12 @@ TNodePtr ISource::BuildSortSpec(const TVector<TSortSpecificationPtr>& orderBy, c
}
bool ISource::HasMatchRecognize() const {
- return static_cast<bool>(MatchRecognizeBuilder);
+ return static_cast<bool>(MatchRecognizeBuilder_);
}
TNodePtr ISource::BuildMatchRecognize(TContext& ctx, TString&& inputTable){
YQL_ENSURE(HasMatchRecognize());
- return MatchRecognizeBuilder->Build(ctx, std::move(inputTable), this);
+ return MatchRecognizeBuilder_->Build(ctx, std::move(inputTable), this);
};
IJoin::IJoin(TPosition pos)
diff --git a/yql/essentials/sql/v1/source.h b/yql/essentials/sql/v1/source.h
index 3048b2d5847..ac69ed2eaf3 100644
--- a/yql/essentials/sql/v1/source.h
+++ b/yql/essentials/sql/v1/source.h
@@ -128,29 +128,29 @@ namespace NSQLTranslationV1 {
TNodePtr BuildWindowFrame(const TFrameSpecification& spec, bool isCompact);
- THashSet<TString> ExprAliases;
- THashSet<TString> FlattenByAliases;
- THashMap<TString, TString> GroupByColumnAliases;
- TVector<TNodePtr> Filters;
- bool CompactGroupBy = false;
- TString GroupBySuffix;
- TSet<TString> GroupKeys;
- TVector<TString> OrderedGroupKeys;
- std::array<TVector<TNodePtr>, static_cast<unsigned>(EExprSeat::Max)> NamedExprs;
- TVector<TAggregationPtr> Aggregations;
- TMap<TString, TVector<TAggregationPtr>> AggregationOverWindow;
- TMap<TString, TVector<TNodePtr>> FuncOverWindow;
- TWinSpecs WinSpecs;
- TLegacyHoppingWindowSpecPtr LegacyHoppingWindowSpec;
- TNodePtr SessionWindow;
- TNodePtr HoppingWindow;
- TVector<TSourcePtr> UsedSources;
- TString FlattenMode;
- bool FlattenColumns = false;
- THashMap<TString, ui32> GenIndexes;
- TVector<TString> TmpWindowColumns;
- TNodePtr SamplingRate;
- TMatchRecognizeBuilderPtr MatchRecognizeBuilder;
+ THashSet<TString> ExprAliases_;
+ THashSet<TString> FlattenByAliases_;
+ THashMap<TString, TString> GroupByColumnAliases_;
+ TVector<TNodePtr> Filters_;
+ bool CompactGroupBy_ = false;
+ TString GroupBySuffix_;
+ TSet<TString> GroupKeys_;
+ TVector<TString> OrderedGroupKeys_;
+ std::array<TVector<TNodePtr>, static_cast<unsigned>(EExprSeat::Max)> NamedExprs_;
+ TVector<TAggregationPtr> Aggregations_;
+ TMap<TString, TVector<TAggregationPtr>> AggregationOverWindow_;
+ TMap<TString, TVector<TNodePtr>> FuncOverWindow_;
+ TWinSpecs WinSpecs_;
+ TLegacyHoppingWindowSpecPtr LegacyHoppingWindowSpec_;
+ TNodePtr SessionWindow_;
+ TNodePtr HoppingWindow_;
+ TVector<TSourcePtr> UsedSources_;
+ TString FlattenMode_;
+ bool FlattenColumns_ = false;
+ THashMap<TString, ui32> GenIndexes_;
+ TVector<TString> TmpWindowColumns_;
+ TNodePtr SamplingRate_;
+ TMatchRecognizeBuilderPtr MatchRecognizeBuilder_;
};
template<>
@@ -202,10 +202,10 @@ namespace NSQLTranslationV1 {
TNodePtr DoClone() const override;
TString GetOpName() const override;
- TVector<TNodePtr> Args;
- TSourcePtr FakeSource;
- TNodePtr Node;
- bool Valid;
+ TVector<TNodePtr> Args_;
+ TSourcePtr FakeSource_;
+ TNodePtr Node_;
+ bool Valid_;
};
class THoppingWindow final : public INode {
@@ -224,10 +224,10 @@ namespace NSQLTranslationV1 {
TString GetOpName() const override;
TNodePtr ProcessIntervalParam(const TNodePtr& val) const;
- TVector<TNodePtr> Args;
- TSourcePtr FakeSource;
- TNodePtr Node;
- bool Valid;
+ TVector<TNodePtr> Args_;
+ TSourcePtr FakeSource_;
+ TNodePtr Node_;
+ bool Valid_;
};
diff --git a/yql/essentials/sql/v1/sql_call_expr.cpp b/yql/essentials/sql/v1/sql_call_expr.cpp
index 1eb4edd10a1..996c21759ec 100644
--- a/yql/essentials/sql/v1/sql_call_expr.cpp
+++ b/yql/essentials/sql/v1/sql_call_expr.cpp
@@ -17,12 +17,12 @@ static bool ValidateForCounters(const TString& input) {
}
TNodePtr TSqlCallExpr::BuildUdf(bool forReduce) {
- auto result = Node ? Node : BuildCallable(Pos, Module, Func, Args, forReduce);
- if (to_lower(Module) == "tensorflow" && Func == "RunBatch") {
- if (Args.size() > 2) {
- Args.erase(Args.begin() + 2);
+ auto result = Node_ ? Node_ : BuildCallable(Pos_, Module_, Func_, Args_, forReduce);
+ if (to_lower(Module_) == "tensorflow" && Func_ == "RunBatch") {
+ if (Args_.size() > 2) {
+ Args_.erase(Args_.begin() + 2);
} else {
- Ctx.Error(Pos) << "Excepted >= 3 arguments, but got: " << Args.size();
+ Ctx_.Error(Pos_) << "Excepted >= 3 arguments, but got: " << Args_.size();
return nullptr;
}
}
@@ -33,86 +33,86 @@ TNodePtr TSqlCallExpr::BuildCall() {
TVector<TNodePtr> args;
bool warnOnYqlNameSpace = true;
- TUdfNode* udf_node = Node ? Node->GetUdfNode() : nullptr;
+ TUdfNode* udf_node = Node_ ? Node_->GetUdfNode() : nullptr;
if (udf_node) {
- if (!udf_node->DoInit(Ctx, nullptr)) {
+ if (!udf_node->DoInit(Ctx_, nullptr)) {
return nullptr;
}
- TNodePtr positional_args = BuildTuple(Pos, PositionalArgs);
+ TNodePtr positional_args = BuildTuple(Pos_, PositionalArgs_);
TNodePtr positional = positional_args->Y("TypeOf", positional_args);
- TNodePtr named_args = BuildStructure(Pos, NamedArgs);
+ TNodePtr named_args = BuildStructure(Pos_, NamedArgs_);
TNodePtr named = named_args->Y("TypeOf", named_args);
- TNodePtr custom_user_type = new TCallNodeImpl(Pos, "TupleType", {positional, named, udf_node->GetExternalTypes()});
+ TNodePtr custom_user_type = new TCallNodeImpl(Pos_, "TupleType", {positional, named, udf_node->GetExternalTypes()});
TNodePtr options = udf_node->BuildOptions();
if (udf_node->IsScript()) {
- auto udf = BuildScriptUdf(Pos, udf_node->GetModule(), udf_node->GetFunction(), udf_node->GetScriptArgs(), options);
+ auto udf = BuildScriptUdf(Pos_, udf_node->GetModule(), udf_node->GetFunction(), udf_node->GetScriptArgs(), options);
TVector<TNodePtr> applyArgs;
- applyArgs.push_back(new TAstAtomNodeImpl(Pos, !NamedArgs.empty() ? "NamedApply" : "Apply", TNodeFlags::Default));
+ applyArgs.push_back(new TAstAtomNodeImpl(Pos_, !NamedArgs_.empty() ? "NamedApply" : "Apply", TNodeFlags::Default));
applyArgs.push_back(udf);
- if (!NamedArgs.empty()) {
- applyArgs.push_back(BuildTuple(Pos, PositionalArgs));
- applyArgs.push_back(BuildStructure(Pos, NamedArgs));
+ if (!NamedArgs_.empty()) {
+ applyArgs.push_back(BuildTuple(Pos_, PositionalArgs_));
+ applyArgs.push_back(BuildStructure(Pos_, NamedArgs_));
} else {
- applyArgs.insert(applyArgs.end(), PositionalArgs.begin(), PositionalArgs.end());
+ applyArgs.insert(applyArgs.end(), PositionalArgs_.begin(), PositionalArgs_.end());
}
- return new TAstListNodeImpl(Pos, applyArgs);
+ return new TAstListNodeImpl(Pos_, applyArgs);
}
- return BuildSqlCall(Ctx, Pos, udf_node->GetModule(), udf_node->GetFunction(),
+ return BuildSqlCall(Ctx_, Pos_, udf_node->GetModule(), udf_node->GetFunction(),
args, positional_args, named_args, custom_user_type,
udf_node->GetTypeConfig(), udf_node->GetRunConfig(), options);
}
- if (Node && (!Node->FuncName() || Node->IsScript())) {
- Module = "YQL";
- Func = NamedArgs.empty() ? "Apply" : "NamedApply";
+ if (Node_ && (!Node_->FuncName() || Node_->IsScript())) {
+ Module_ = "YQL";
+ Func_ = NamedArgs_.empty() ? "Apply" : "NamedApply";
warnOnYqlNameSpace = false;
- args.push_back(Node);
+ args.push_back(Node_);
}
- if (Node && Node->FuncName() && !Node->IsScript()) {
- Module = Node->ModuleName() ? *Node->ModuleName() : "YQL";
- Func = *Node->FuncName();
+ if (Node_ && Node_->FuncName() && !Node_->IsScript()) {
+ Module_ = Node_->ModuleName() ? *Node_->ModuleName() : "YQL";
+ Func_ = *Node_->FuncName();
}
- bool mustUseNamed = !NamedArgs.empty();
+ bool mustUseNamed = !NamedArgs_.empty();
if (mustUseNamed) {
- if (Node && (!Node->FuncName() || Node->IsScript())) {
+ if (Node_ && (!Node_->FuncName() || Node_->IsScript())) {
mustUseNamed = false;
}
- args.emplace_back(BuildTuple(Pos, PositionalArgs));
- args.emplace_back(BuildStructure(Pos, NamedArgs));
- } else if (IsExternalCall) {
- Func = "SqlExternalFunction";
- if (Args.size() < 2 || Args.size() > 3) {
- Ctx.Error(Pos) << "EXTERNAL FUNCTION requires from 2 to 3 arguments, but got: " << Args.size();
+ args.emplace_back(BuildTuple(Pos_, PositionalArgs_));
+ args.emplace_back(BuildStructure(Pos_, NamedArgs_));
+ } else if (IsExternalCall_) {
+ Func_ = "SqlExternalFunction";
+ if (Args_.size() < 2 || Args_.size() > 3) {
+ Ctx_.Error(Pos_) << "EXTERNAL FUNCTION requires from 2 to 3 arguments, but got: " << Args_.size();
return nullptr;
}
- if (Args.size() == 3) {
- args.insert(args.end(), Args.begin(), Args.end() - 1);
- Args.erase(Args.begin(), Args.end() - 1);
+ if (Args_.size() == 3) {
+ args.insert(args.end(), Args_.begin(), Args_.end() - 1);
+ Args_.erase(Args_.begin(), Args_.end() - 1);
} else {
- args.insert(args.end(), Args.begin(), Args.end());
- Args.erase(Args.begin(), Args.end());
+ args.insert(args.end(), Args_.begin(), Args_.end());
+ Args_.erase(Args_.begin(), Args_.end());
}
- auto configNode = new TExternalFunctionConfig(Pos, CallConfig);
- auto configList = new TAstListNodeImpl(Pos, { new TAstAtomNodeImpl(Pos, "quote", 0), configNode });
+ auto configNode = new TExternalFunctionConfig(Pos_, CallConfig_);
+ auto configList = new TAstListNodeImpl(Pos_, { new TAstAtomNodeImpl(Pos_, "quote", 0), configNode });
args.push_back(configList);
} else {
- args.insert(args.end(), Args.begin(), Args.end());
+ args.insert(args.end(), Args_.begin(), Args_.end());
}
- auto result = BuildBuiltinFunc(Ctx, Pos, Func, args, Module, AggMode, &mustUseNamed, warnOnYqlNameSpace);
+ auto result = BuildBuiltinFunc(Ctx_, Pos_, Func_, args, Module_, AggMode_, &mustUseNamed, warnOnYqlNameSpace);
if (mustUseNamed) {
- Error() << "Named args are used for call, but unsupported by function: " << Func;
+ Error() << "Named args are used for call, but unsupported by function: " << Func_;
return nullptr;
}
- if (WindowName) {
- result = BuildCalcOverWindow(Pos, WindowName, result);
+ if (WindowName_) {
+ result = BuildCalcOverWindow(Pos_, WindowName_, result);
}
return result;
@@ -122,39 +122,39 @@ bool TSqlCallExpr::Init(const TRule_value_constructor& node) {
switch (node.Alt_case()) {
case TRule_value_constructor::kAltValueConstructor1: {
auto& ctor = node.GetAlt_value_constructor1();
- Func = "Variant";
- TSqlExpression expr(Ctx, Mode);
- if (!Expr(expr, Args, ctor.GetRule_expr3())) {
+ Func_ = "Variant";
+ TSqlExpression expr(Ctx_, Mode_);
+ if (!Expr(expr, Args_, ctor.GetRule_expr3())) {
return false;
}
- if (!Expr(expr, Args, ctor.GetRule_expr5())) {
+ if (!Expr(expr, Args_, ctor.GetRule_expr5())) {
return false;
}
- if (!Expr(expr, Args, ctor.GetRule_expr7())) {
+ if (!Expr(expr, Args_, ctor.GetRule_expr7())) {
return false;
}
break;
}
case TRule_value_constructor::kAltValueConstructor2: {
auto& ctor = node.GetAlt_value_constructor2();
- Func = "Enum";
- TSqlExpression expr(Ctx, Mode);
- if (!Expr(expr, Args, ctor.GetRule_expr3())) {
+ Func_ = "Enum";
+ TSqlExpression expr(Ctx_, Mode_);
+ if (!Expr(expr, Args_, ctor.GetRule_expr3())) {
return false;
}
- if (!Expr(expr, Args, ctor.GetRule_expr5())) {
+ if (!Expr(expr, Args_, ctor.GetRule_expr5())) {
return false;
}
break;
}
case TRule_value_constructor::kAltValueConstructor3: {
auto& ctor = node.GetAlt_value_constructor3();
- Func = "Callable";
- TSqlExpression expr(Ctx, Mode);
- if (!Expr(expr, Args, ctor.GetRule_expr3())) {
+ Func_ = "Callable";
+ TSqlExpression expr(Ctx_, Mode_);
+ if (!Expr(expr, Args_, ctor.GetRule_expr3())) {
return false;
}
- if (!Expr(expr, Args, ctor.GetRule_expr5())) {
+ if (!Expr(expr, Args_, ctor.GetRule_expr5())) {
return false;
}
break;
@@ -162,7 +162,7 @@ bool TSqlCallExpr::Init(const TRule_value_constructor& node) {
case TRule_value_constructor::ALT_NOT_SET:
Y_ABORT("You should change implementation according to grammar changes");
}
- PositionalArgs = Args;
+ PositionalArgs_ = Args_;
return true;
}
@@ -170,8 +170,8 @@ bool TSqlCallExpr::ExtractCallParam(const TRule_external_call_param& node) {
TString paramName = Id(node.GetRule_an_id1(), *this);
paramName = to_lower(paramName);
- if (CallConfig.contains(paramName)) {
- Ctx.Error() << "WITH " << to_upper(paramName).Quote()
+ if (CallConfig_.contains(paramName)) {
+ Ctx_.Error() << "WITH " << to_upper(paramName).Quote()
<< " clause should be specified only once";
return false;
}
@@ -179,24 +179,24 @@ bool TSqlCallExpr::ExtractCallParam(const TRule_external_call_param& node) {
const bool optimizeForParam = paramName == "optimize_for";
const auto columnRefState = optimizeForParam ? EColumnRefState::AsStringLiteral : EColumnRefState::Deny;
- TColumnRefScope scope(Ctx, columnRefState);
+ TColumnRefScope scope(Ctx_, columnRefState);
if (optimizeForParam) {
scope.SetNoColumnErrContext("in external call params");
}
- TSqlExpression expression(Ctx, Mode);
+ TSqlExpression expression(Ctx_, Mode_);
auto value = expression.Build(node.GetRule_expr3());
if (value && optimizeForParam) {
TDeferredAtom atom;
- MakeTableFromExpression(Ctx.Pos(), Ctx, value, atom);
- value = new TCallNodeImpl(Ctx.Pos(), "String", { atom.Build() });
+ MakeTableFromExpression(Ctx_.Pos(), Ctx_, value, atom);
+ value = new TCallNodeImpl(Ctx_.Pos(), "String", { atom.Build() });
}
if (!value) {
return false;
}
- CallConfig[paramName] = value;
+ CallConfig_[paramName] = value;
return true;
}
@@ -215,12 +215,12 @@ bool TSqlCallExpr::Init(const TRule_using_call_expr& node) {
switch (block.Alt_case()) {
case TRule_using_call_expr::TBlock1::kAlt1: {
auto& subblock = block.GetAlt1();
- Module = Id(subblock.GetRule_an_id_or_type1(), *this);
- Func = Id(subblock.GetRule_an_id_or_type3(), *this);
+ Module_ = Id(subblock.GetRule_an_id_or_type1(), *this);
+ Func_ = Id(subblock.GetRule_an_id_or_type3(), *this);
break;
}
case TRule_using_call_expr::TBlock1::kAlt2: {
- Func = Id(block.GetAlt2().GetRule_an_id_expr1(), *this);
+ Func_ = Id(block.GetAlt2().GetRule_an_id_expr1(), *this);
break;
}
case TRule_using_call_expr::TBlock1::kAlt3: {
@@ -228,32 +228,32 @@ bool TSqlCallExpr::Init(const TRule_using_call_expr& node) {
if (!NamedNodeImpl(block.GetAlt3().GetRule_bind_parameter1(), bindName, *this)) {
return false;
}
- Node = GetNamedNode(bindName);
- if (!Node) {
+ Node_ = GetNamedNode(bindName);
+ if (!Node_) {
return false;
}
break;
}
case TRule_using_call_expr::TBlock1::kAlt4: {
- IsExternalCall = true;
+ IsExternalCall_ = true;
break;
}
case TRule_using_call_expr::TBlock1::ALT_NOT_SET:
Y_ABORT("You should change implementation according to grammar changes");
}
- YQL_ENSURE(!DistinctAllowed);
- UsingCallExpr = true;
- TColumnRefScope scope(Ctx, EColumnRefState::Allow);
+ YQL_ENSURE(!DistinctAllowed_);
+ UsingCallExpr_ = true;
+ TColumnRefScope scope(Ctx_, EColumnRefState::Allow);
return Init(node.GetRule_invoke_expr2());
}
void TSqlCallExpr::InitName(const TString& name) {
- Module = "";
- Func = name;
+ Module_ = "";
+ Func_ = name;
}
void TSqlCallExpr::InitExpr(const TNodePtr& expr) {
- Node = expr;
+ Node_ = expr;
}
bool TSqlCallExpr::FillArg(const TString& module, const TString& func, size_t& idx, const TRule_named_expr& node) {
@@ -262,12 +262,12 @@ bool TSqlCallExpr::FillArg(const TString& module, const TString& func, size_t& i
TMaybe<EColumnRefState> status;
// TODO: support named args
if (!isNamed) {
- status = GetFunctionArgColumnStatus(Ctx, module, func, idx);
+ status = GetFunctionArgColumnStatus(Ctx_, module, func, idx);
}
TNodePtr expr;
if (status) {
- TColumnRefScope scope(Ctx, *status, /* isTopLevel = */ false);
+ TColumnRefScope scope(Ctx_, *status, /* isTopLevel = */ false);
expr = NamedExpr(node);
} else {
expr = NamedExpr(node);
@@ -277,7 +277,7 @@ bool TSqlCallExpr::FillArg(const TString& module, const TString& func, size_t& i
return false;
}
- Args.emplace_back(std::move(expr));
+ Args_.emplace_back(std::move(expr));
if (!isNamed) {
++idx;
}
@@ -285,11 +285,11 @@ bool TSqlCallExpr::FillArg(const TString& module, const TString& func, size_t& i
}
bool TSqlCallExpr::FillArgs(const TRule_named_expr_list& node) {
- TString module = Module;
- TString func = Func;
- if (Node && Node->FuncName() && !Node->IsScript()) {
- module = Node->ModuleName() ? *Node->ModuleName() : "YQL";
- func = *Node->FuncName();
+ TString module = Module_;
+ TString func = Func_;
+ if (Node_ && Node_->FuncName() && !Node_->IsScript()) {
+ module = Node_->ModuleName() ? *Node_->ModuleName() : "YQL";
+ func = *Node_->FuncName();
}
size_t idx = 0;
@@ -311,36 +311,36 @@ bool TSqlCallExpr::Init(const TRule_invoke_expr& node) {
// invoke_expr_tail:
// (null_treatment | filter_clause)? (OVER window_name_or_specification)?
// ;
- Pos = Ctx.Pos();
+ Pos_ = Ctx_.Pos();
if (node.HasBlock2()) {
switch (node.GetBlock2().Alt_case()) {
case TRule_invoke_expr::TBlock2::kAlt1: {
const auto& alt = node.GetBlock2().GetAlt1();
TPosition distinctPos;
if (IsDistinctOptSet(alt.GetRule_opt_set_quantifier1(), distinctPos)) {
- if (!DistinctAllowed) {
- if (UsingCallExpr) {
- Ctx.Error(distinctPos) << "DISTINCT can not be used in PROCESS/REDUCE";
+ if (!DistinctAllowed_) {
+ if (UsingCallExpr_) {
+ Ctx_.Error(distinctPos) << "DISTINCT can not be used in PROCESS/REDUCE";
} else {
- Ctx.Error(distinctPos) << "DISTINCT can only be used in aggregation functions";
+ Ctx_.Error(distinctPos) << "DISTINCT can only be used in aggregation functions";
}
return false;
}
- YQL_ENSURE(AggMode == EAggregateMode::Normal);
- AggMode = EAggregateMode::Distinct;
- Ctx.IncrementMonCounter("sql_features", "DistinctInCallExpr");
+ YQL_ENSURE(AggMode_ == EAggregateMode::Normal);
+ AggMode_ = EAggregateMode::Distinct;
+ Ctx_.IncrementMonCounter("sql_features", "DistinctInCallExpr");
}
if (!FillArgs(alt.GetRule_named_expr_list2())) {
return false;
}
- for (const auto& arg : Args) {
+ for (const auto& arg : Args_) {
if (arg->GetLabel()) {
- NamedArgs.push_back(arg);
+ NamedArgs_.push_back(arg);
}
else {
- PositionalArgs.push_back(arg);
- if (!NamedArgs.empty()) {
- Ctx.Error(arg->GetPos()) << "Unnamed arguments can not follow after named one";
+ PositionalArgs_.push_back(arg);
+ if (!NamedArgs_.empty()) {
+ Ctx_.Error(arg->GetPos()) << "Unnamed arguments can not follow after named one";
return false;
}
}
@@ -348,10 +348,10 @@ bool TSqlCallExpr::Init(const TRule_invoke_expr& node) {
break;
}
case TRule_invoke_expr::TBlock2::kAlt2:
- if (IsExternalCall) {
- Ctx.Error() << "You should set EXTERNAL FUNCTION type. Example: EXTERNAL FUNCTION('YANDEX-CLOUD', ...)";
+ if (IsExternalCall_) {
+ Ctx_.Error() << "You should set EXTERNAL FUNCTION type. Example: EXTERNAL FUNCTION('YANDEX-CLOUD', ...)";
} else {
- Args.push_back(new TAsteriskNode(Pos));
+ Args_.push_back(new TAsteriskNode(Pos_));
}
break;
case TRule_invoke_expr::TBlock2::ALT_NOT_SET:
@@ -362,15 +362,15 @@ bool TSqlCallExpr::Init(const TRule_invoke_expr& node) {
const auto& tail = node.GetRule_invoke_expr_tail4();
if (tail.HasBlock1()) {
- if (IsExternalCall) {
- Ctx.Error() << "Additional clause after EXTERNAL FUNCTION(...) is not supported";
+ if (IsExternalCall_) {
+ Ctx_.Error() << "Additional clause after EXTERNAL FUNCTION(...) is not supported";
return false;
}
switch (tail.GetBlock1().Alt_case()) {
case TRule_invoke_expr_tail::TBlock1::kAlt1: {
if (!tail.HasBlock2()) {
- Ctx.Error() << "RESPECT/IGNORE NULLS can only be used with window functions";
+ Ctx_.Error() << "RESPECT/IGNORE NULLS can only be used with window functions";
return false;
}
const auto& alt = tail.GetBlock1().GetAlt1();
@@ -380,7 +380,7 @@ bool TSqlCallExpr::Init(const TRule_invoke_expr& node) {
break;
}
case TRule_invoke_expr_tail::TBlock1::kAlt2: {
- Ctx.Error() << "FILTER clause is not supported yet";
+ Ctx_.Error() << "FILTER clause is not supported yet";
return false;
}
case TRule_invoke_expr_tail::TBlock1::ALT_NOT_SET:
@@ -389,11 +389,11 @@ bool TSqlCallExpr::Init(const TRule_invoke_expr& node) {
}
if (tail.HasBlock2()) {
- if (Ctx.DistinctOverWindow) {
- AggMode == EAggregateMode::Distinct ? SetOverWindowDistinct() : SetOverWindow();
+ if (Ctx_.DistinctOverWindow) {
+ AggMode_ == EAggregateMode::Distinct ? SetOverWindowDistinct() : SetOverWindow();
} else {
- if (AggMode == EAggregateMode::Distinct) {
- Ctx.Error() << "DISTINCT is not yet supported in window functions";
+ if (AggMode_ == EAggregateMode::Distinct) {
+ Ctx_.Error() << "DISTINCT is not yet supported in window functions";
return false;
}
SetOverWindow();
@@ -401,13 +401,13 @@ bool TSqlCallExpr::Init(const TRule_invoke_expr& node) {
auto winRule = tail.GetBlock2().GetRule_window_name_or_specification2();
switch (winRule.Alt_case()) {
case TRule_window_name_or_specification::kAltWindowNameOrSpecification1: {
- WindowName = Id(winRule.GetAlt_window_name_or_specification1().GetRule_window_name1().GetRule_an_id_window1(), *this);
+ WindowName_ = Id(winRule.GetAlt_window_name_or_specification1().GetRule_window_name1().GetRule_an_id_window1(), *this);
break;
}
case TRule_window_name_or_specification::kAltWindowNameOrSpecification2: {
- if (!Ctx.WinSpecsScopes) {
- auto pos = Ctx.TokenPosition(tail.GetBlock2().GetToken1());
- Ctx.Error(pos) << "Window and aggregation functions are not allowed in this context";
+ if (!Ctx_.WinSpecsScopes) {
+ auto pos = Ctx_.TokenPosition(tail.GetBlock2().GetToken1());
+ Ctx_.Error(pos) << "Window and aggregation functions are not allowed in this context";
return false;
}
@@ -417,38 +417,38 @@ bool TSqlCallExpr::Init(const TRule_invoke_expr& node) {
return false;
}
- WindowName = Ctx.MakeName("_yql_anonymous_window");
- TWinSpecs& specs = Ctx.WinSpecsScopes.back();
- YQL_ENSURE(!specs.contains(WindowName));
- specs[WindowName] = spec;
+ WindowName_ = Ctx_.MakeName("_yql_anonymous_window");
+ TWinSpecs& specs = Ctx_.WinSpecsScopes.back();
+ YQL_ENSURE(!specs.contains(WindowName_));
+ specs[WindowName_] = spec;
break;
}
case TRule_window_name_or_specification::ALT_NOT_SET:
Y_ABORT("You should change implementation according to grammar changes");
}
- Ctx.IncrementMonCounter("sql_features", "WindowFunctionOver");
+ Ctx_.IncrementMonCounter("sql_features", "WindowFunctionOver");
}
return true;
}
void TSqlCallExpr::IncCounters() {
- if (Node) {
- Ctx.IncrementMonCounter("sql_features", "NamedNodeUseApply");
- } else if (!Module.empty()) {
- if (ValidateForCounters(Module)) {
- Ctx.IncrementMonCounter("udf_modules", Module);
- Ctx.IncrementMonCounter("sql_features", "CallUdf");
- if (ValidateForCounters(Func)) {
- auto scriptType = NKikimr::NMiniKQL::ScriptTypeFromStr(Module);
+ if (Node_) {
+ Ctx_.IncrementMonCounter("sql_features", "NamedNodeUseApply");
+ } else if (!Module_.empty()) {
+ if (ValidateForCounters(Module_)) {
+ Ctx_.IncrementMonCounter("udf_modules", Module_);
+ Ctx_.IncrementMonCounter("sql_features", "CallUdf");
+ if (ValidateForCounters(Func_)) {
+ auto scriptType = NKikimr::NMiniKQL::ScriptTypeFromStr(Module_);
if (scriptType == NKikimr::NMiniKQL::EScriptType::Unknown) {
- Ctx.IncrementMonCounter("udf_functions", Module + "." + Func);
+ Ctx_.IncrementMonCounter("udf_functions", Module_ + "." + Func_);
}
}
}
- } else if (ValidateForCounters(Func)) {
- Ctx.IncrementMonCounter("sql_builtins", Func);
- Ctx.IncrementMonCounter("sql_features", "CallBuiltin");
+ } else if (ValidateForCounters(Func_)) {
+ Ctx_.IncrementMonCounter("sql_builtins", Func_);
+ Ctx_.IncrementMonCounter("sql_features", "CallBuiltin");
}
}
diff --git a/yql/essentials/sql/v1/sql_call_expr.h b/yql/essentials/sql/v1/sql_call_expr.h
index f01ceabadfa..a3b9bb7010d 100644
--- a/yql/essentials/sql/v1/sql_call_expr.h
+++ b/yql/essentials/sql/v1/sql_call_expr.h
@@ -14,22 +14,22 @@ public:
}
TSqlCallExpr(const TSqlCallExpr& call, const TVector<TNodePtr>& args)
- : TSqlTranslation(call.Ctx, call.Mode)
- , Pos(call.Pos)
- , Func(call.Func)
- , Module(call.Module)
- , Node(call.Node)
- , Args(args)
- , AggMode(call.AggMode)
- , DistinctAllowed(call.DistinctAllowed)
- , UsingCallExpr(call.UsingCallExpr)
- , IsExternalCall(call.IsExternalCall)
- , CallConfig(call.CallConfig)
+ : TSqlTranslation(call.Ctx_, call.Mode_)
+ , Pos_(call.Pos_)
+ , Func_(call.Func_)
+ , Module_(call.Module_)
+ , Node_(call.Node_)
+ , Args_(args)
+ , AggMode_(call.AggMode_)
+ , DistinctAllowed_(call.DistinctAllowed_)
+ , UsingCallExpr_(call.UsingCallExpr_)
+ , IsExternalCall_(call.IsExternalCall_)
+ , CallConfig_(call.CallConfig_)
{
}
void AllowDistinct() {
- DistinctAllowed = true;
+ DistinctAllowed_ = true;
}
void InitName(const TString& name);
@@ -46,29 +46,29 @@ public:
TNodePtr BuildCall();
TPosition GetPos() const {
- return Pos;
+ return Pos_;
}
const TVector<TNodePtr>& GetArgs() const {
- return Args;
+ return Args_;
}
void SetOverWindow() {
- YQL_ENSURE(AggMode == EAggregateMode::Normal);
- AggMode = EAggregateMode::OverWindow;
+ YQL_ENSURE(AggMode_ == EAggregateMode::Normal);
+ AggMode_ = EAggregateMode::OverWindow;
}
void SetOverWindowDistinct() {
- YQL_ENSURE(AggMode == EAggregateMode::Distinct);
- AggMode = EAggregateMode::OverWindowDistinct;
+ YQL_ENSURE(AggMode_ == EAggregateMode::Distinct);
+ AggMode_ = EAggregateMode::OverWindowDistinct;
}
void SetIgnoreNulls() {
- Func += "_IgnoreNulls";
+ Func_ += "_IgnoreNulls";
}
bool IsExternal() {
- return IsExternalCall;
+ return IsExternalCall_;
}
private:
@@ -77,19 +77,19 @@ private:
bool FillArgs(const TRule_named_expr_list& node);
private:
- TPosition Pos;
- TString Func;
- TString Module;
- TNodePtr Node;
- TVector<TNodePtr> Args;
- TVector<TNodePtr> PositionalArgs;
- TVector<TNodePtr> NamedArgs;
- EAggregateMode AggMode = EAggregateMode::Normal;
- TString WindowName;
- bool DistinctAllowed = false;
- bool UsingCallExpr = false;
- bool IsExternalCall = false;
- TFunctionConfig CallConfig;
+ TPosition Pos_;
+ TString Func_;
+ TString Module_;
+ TNodePtr Node_;
+ TVector<TNodePtr> Args_;
+ TVector<TNodePtr> PositionalArgs_;
+ TVector<TNodePtr> NamedArgs_;
+ EAggregateMode AggMode_ = EAggregateMode::Normal;
+ TString WindowName_;
+ bool DistinctAllowed_ = false;
+ bool UsingCallExpr_ = false;
+ bool IsExternalCall_ = false;
+ TFunctionConfig CallConfig_;
};
} // namespace NSQLTranslationV1
diff --git a/yql/essentials/sql/v1/sql_expression.cpp b/yql/essentials/sql/v1/sql_expression.cpp
index f13d110248b..e973b6f60d1 100644
--- a/yql/essentials/sql/v1/sql_expression.cpp
+++ b/yql/essentials/sql/v1/sql_expression.cpp
@@ -81,12 +81,12 @@ TNodePtr TSqlExpression::SubExpr(const TRule_neq_subexpr& node, const TTrailingQ
// // trailing QUESTIONS are used in optional simple types (String?) and optional lambda args: ($x, $y?) -> ($x)
// ((double_question neq_subexpr) => double_question neq_subexpr | QUESTION+)?;
YQL_ENSURE(tailExternal.Count == 0);
- MaybeUnnamedSmartParenOnTop = MaybeUnnamedSmartParenOnTop && !node.HasBlock3();
+ MaybeUnnamedSmartParenOnTop_ = MaybeUnnamedSmartParenOnTop_ && !node.HasBlock3();
TTrailingQuestions tail;
if (node.HasBlock3() && node.GetBlock3().Alt_case() == TRule_neq_subexpr::TBlock3::kAlt2) {
auto& questions = node.GetBlock3().GetAlt2();
tail.Count = questions.GetBlock1().size();
- tail.Pos = Ctx.TokenPosition(questions.GetBlock1().begin()->GetToken1());
+ tail.Pos = Ctx_.TokenPosition(questions.GetBlock1().begin()->GetToken1());
YQL_ENSURE(tail.Count > 0);
}
@@ -98,14 +98,14 @@ TNodePtr TSqlExpression::SubExpr(const TRule_neq_subexpr& node, const TTrailingQ
if (node.HasBlock3()) {
auto& block = node.GetBlock3();
if (block.Alt_case() == TRule_neq_subexpr::TBlock3::kAlt1) {
- TSqlExpression altExpr(Ctx, Mode);
+ TSqlExpression altExpr(Ctx_, Mode_);
auto altResult = SubExpr(block.GetAlt1().GetRule_neq_subexpr2(), {});
if (!altResult) {
return {};
}
const TVector<TNodePtr> args({result, altResult});
Token(block.GetAlt1().GetRule_double_question1().GetToken1());
- result = BuildBuiltinFunc(Ctx, Ctx.Pos(), "Coalesce", args);
+ result = BuildBuiltinFunc(Ctx_, Ctx_.Pos(), "Coalesce", args);
}
}
return result;
@@ -417,29 +417,29 @@ TMaybe<TExprOrIdent> TSqlExpression::LiteralExpr(const TRule_literal_value& node
TExprOrIdent result;
switch (node.Alt_case()) {
case TRule_literal_value::kAltLiteralValue1: {
- result.Expr = LiteralNumber(Ctx, node.GetAlt_literal_value1().GetRule_integer1());
+ result.Expr = LiteralNumber(Ctx_, node.GetAlt_literal_value1().GetRule_integer1());
break;
}
case TRule_literal_value::kAltLiteralValue2: {
- result.Expr = LiteralReal(Ctx, node.GetAlt_literal_value2().GetRule_real1());
+ result.Expr = LiteralReal(Ctx_, node.GetAlt_literal_value2().GetRule_real1());
break;
}
case TRule_literal_value::kAltLiteralValue3: {
const TString value(Token(node.GetAlt_literal_value3().GetToken1()));
- return BuildLiteralTypedSmartStringOrId(Ctx, value);
+ return BuildLiteralTypedSmartStringOrId(Ctx_, value);
}
case TRule_literal_value::kAltLiteralValue5: {
Token(node.GetAlt_literal_value5().GetToken1());
- result.Expr = BuildLiteralNull(Ctx.Pos());
+ result.Expr = BuildLiteralNull(Ctx_.Pos());
break;
}
case TRule_literal_value::kAltLiteralValue9: {
const TString value(to_lower(Token(node.GetAlt_literal_value9().GetRule_bool_value1().GetToken1())));
- result.Expr = BuildLiteralBool(Ctx.Pos(), FromString<bool>(value));
+ result.Expr = BuildLiteralBool(Ctx_.Pos(), FromString<bool>(value));
break;
}
case TRule_literal_value::kAltLiteralValue10: {
- result.Expr = BuildEmptyAction(Ctx.Pos());
+ result.Expr = BuildEmptyAction(Ctx_.Pos());
break;
}
case TRule_literal_value::kAltLiteralValue4:
@@ -464,11 +464,11 @@ TNodePtr TSqlExpression::UnaryExpr(const TUnarySubExprType& node, const TTrailin
UnexpectedQuestionToken(tail);
return {};
} else {
- MaybeUnnamedSmartParenOnTop = false;
+ MaybeUnnamedSmartParenOnTop_ = false;
return JsonApiExpr(node.GetAlt_unary_subexpr2().GetRule_json_api_expr1());
}
} else {
- MaybeUnnamedSmartParenOnTop = false;
+ MaybeUnnamedSmartParenOnTop_ = false;
if (node.Alt_case() == TRule_in_unary_subexpr::kAltInUnarySubexpr1) {
return UnaryCasualExpr(node.GetAlt_in_unary_subexpr1().GetRule_in_unary_casual_subexpr1(), tail);
} else if (tail.Count) {
@@ -485,9 +485,9 @@ TNodePtr TSqlExpression::JsonPathSpecification(const TRule_jsonpath_spec& node)
jsonpath_spec: STRING_VALUE;
*/
TString value = Token(node.GetToken1());
- TPosition pos = Ctx.Pos();
+ TPosition pos = Ctx_.Pos();
- auto parsed = StringContent(Ctx, pos, value);
+ auto parsed = StringContent(Ctx_, pos, value);
if (!parsed) {
return nullptr;
}
@@ -507,8 +507,8 @@ TNodePtr TSqlExpression::JsonInputArg(const TRule_json_common_args& node) {
*/
TNodePtr jsonExpr = Build(node.GetRule_expr1());
if (!jsonExpr || jsonExpr->IsNull()) {
- jsonExpr = new TCallNodeImpl(Ctx.Pos(), "Nothing", {
- new TCallNodeImpl(Ctx.Pos(), "OptionalType", {BuildDataType(Ctx.Pos(), "Json")})
+ jsonExpr = new TCallNodeImpl(Ctx_.Pos(), "Nothing", {
+ new TCallNodeImpl(Ctx_.Pos(), "OptionalType", {BuildDataType(Ctx_.Pos(), "Json")})
});
}
@@ -521,7 +521,7 @@ void TSqlExpression::AddJsonVariable(const TRule_json_variable& node, TVector<TN
*/
TNodePtr expr;
TString rawName;
- TPosition namePos = Ctx.Pos();
+ TPosition namePos = Ctx_.Pos();
ui32 nameFlags = 0;
expr = Build(node.GetRule_expr1());
@@ -534,7 +534,7 @@ void TSqlExpression::AddJsonVariable(const TRule_json_variable& node, TVector<TN
case TRule_json_variable_name::kAltJsonVariableName2: {
const auto& token = nameRule.GetAlt_json_variable_name2().GetToken1();
namePos = GetPos(token);
- auto parsed = StringContentOrIdContent(Ctx, namePos, token.GetValue());
+ auto parsed = StringContentOrIdContent(Ctx_, namePos, token.GetValue());
if (!parsed) {
return;
}
@@ -565,7 +565,7 @@ TNodePtr TSqlExpression::JsonVariables(const TRule_json_common_args& node) {
json_common_args: expr COMMA jsonpath_spec (PASSING json_variables)?;
*/
TVector<TNodePtr> variables;
- TPosition pos = Ctx.Pos();
+ TPosition pos = Ctx_.Pos();
if (node.HasBlock4()) {
const auto& block = node.GetBlock4();
pos = GetPos(block.GetToken1());
@@ -616,8 +616,8 @@ void TSqlExpression::AddJsonValueCaseHandlers(const TRule_json_value& node, TVec
json_case_handler*
*/
if (node.Block5Size() > 2) {
- Ctx.Error() << "Only 1 ON EMPTY and/or 1 ON ERROR clause is expected";
- Ctx.IncrementMonCounter("sql_errors", "JsonValueTooManyHandleClauses");
+ Ctx_.Error() << "Only 1 ON EMPTY and/or 1 ON ERROR clause is expected";
+ Ctx_.IncrementMonCounter("sql_errors", "JsonValueTooManyHandleClauses");
return;
}
@@ -630,20 +630,20 @@ void TSqlExpression::AddJsonValueCaseHandlers(const TRule_json_value& node, TVec
const bool isEmptyClause = to_lower(block.GetToken3().GetValue()) == "empty";
if (isEmptyClause && onEmpty != nullptr) {
- Ctx.Error() << "Only 1 ON EMPTY clause is expected";
- Ctx.IncrementMonCounter("sql_errors", "JsonValueMultipleOnEmptyClauses");
+ Ctx_.Error() << "Only 1 ON EMPTY clause is expected";
+ Ctx_.IncrementMonCounter("sql_errors", "JsonValueMultipleOnEmptyClauses");
return;
}
if (!isEmptyClause && onError != nullptr) {
- Ctx.Error() << "Only 1 ON ERROR clause is expected";
- Ctx.IncrementMonCounter("sql_errors", "JsonValueMultipleOnErrorClauses");
+ Ctx_.Error() << "Only 1 ON ERROR clause is expected";
+ Ctx_.IncrementMonCounter("sql_errors", "JsonValueMultipleOnErrorClauses");
return;
}
if (isEmptyClause && onError != nullptr) {
- Ctx.Error() << "ON EMPTY clause must be before ON ERROR clause";
- Ctx.IncrementMonCounter("sql_errors", "JsonValueOnEmptyAfterOnError");
+ Ctx_.Error() << "ON EMPTY clause must be before ON ERROR clause";
+ Ctx_.IncrementMonCounter("sql_errors", "JsonValueOnEmptyAfterOnError");
return;
}
@@ -660,16 +660,16 @@ void TSqlExpression::AddJsonValueCaseHandlers(const TRule_json_value& node, TVec
}
if (onEmpty == nullptr) {
- onEmpty = new TCallNodeImpl(Ctx.Pos(), "Null", {});
+ onEmpty = new TCallNodeImpl(Ctx_.Pos(), "Null", {});
}
if (onError == nullptr) {
- onError = new TCallNodeImpl(Ctx.Pos(), "Null", {});
+ onError = new TCallNodeImpl(Ctx_.Pos(), "Null", {});
}
- children.push_back(BuildQuotedAtom(Ctx.Pos(), ToString(onEmptyMode), TNodeFlags::Default));
+ children.push_back(BuildQuotedAtom(Ctx_.Pos(), ToString(onEmptyMode), TNodeFlags::Default));
children.push_back(onEmpty);
- children.push_back(BuildQuotedAtom(Ctx.Pos(), ToString(onErrorMode), TNodeFlags::Default));
+ children.push_back(BuildQuotedAtom(Ctx_.Pos(), ToString(onErrorMode), TNodeFlags::Default));
children.push_back(onError);
}
@@ -708,7 +708,7 @@ void TSqlExpression::AddJsonExistsHandler(const TRule_json_exists& node, TVector
};
if (!node.HasBlock4()) {
- children.push_back(buildJustBool(Ctx.Pos(), false));
+ children.push_back(buildJustBool(Ctx_.Pos(), false));
return;
}
@@ -811,24 +811,24 @@ TNodePtr TSqlExpression::JsonQueryExpr(const TRule_json_query& node) {
};
const auto wrapMode = JsonQueryWrapper(node);
- addChild(Ctx.Pos(), ToString(wrapMode));
+ addChild(Ctx_.Pos(), ToString(wrapMode));
auto onEmpty = EJsonQueryHandler::Null;
if (node.HasBlock5()) {
if (wrapMode != EJsonQueryWrap::NoWrap) {
- Ctx.Error() << "ON EMPTY is prohibited because WRAPPER clause is specified";
- Ctx.IncrementMonCounter("sql_errors", "JsonQueryOnEmptyWithWrapper");
+ Ctx_.Error() << "ON EMPTY is prohibited because WRAPPER clause is specified";
+ Ctx_.IncrementMonCounter("sql_errors", "JsonQueryOnEmptyWithWrapper");
return nullptr;
}
onEmpty = JsonQueryHandler(node.GetBlock5().GetRule_json_query_handler1());
}
- addChild(Ctx.Pos(), ToString(onEmpty));
+ addChild(Ctx_.Pos(), ToString(onEmpty));
auto onError = EJsonQueryHandler::Null;
if (node.HasBlock6()) {
onError = JsonQueryHandler(node.GetBlock6().GetRule_json_query_handler1());
}
- addChild(Ctx.Pos(), ToString(onError));
+ addChild(Ctx_.Pos(), ToString(onError));
return new TCallNodeImpl(GetPos(node.GetToken1()), "JsonQuery", children);
}
@@ -837,7 +837,7 @@ TNodePtr TSqlExpression::JsonApiExpr(const TRule_json_api_expr& node) {
/*
json_api_expr: json_value | json_exists | json_query;
*/
- TPosition pos = Ctx.Pos();
+ TPosition pos = Ctx_.Pos();
TNodePtr result = nullptr;
switch (node.GetAltCase()) {
case TRule_json_api_expr::kAltJsonApiExpr1: {
@@ -878,7 +878,7 @@ TNodePtr TSqlExpression::RowPatternVarAccess(TString var, const TRule_unary_sube
switch(idOrType.GetAltCase()) {
case TRule_id_or_type::kAltIdOrType1: {
const auto column = Id(idOrType.GetAlt_id_or_type1().GetRule_id1(), *this);
- return BuildMatchRecognizeColumnAccess(Ctx.Pos(), std::move(var), std::move(column));
+ return BuildMatchRecognizeColumnAccess(Ctx_.Pos(), std::move(var), std::move(column));
}
case TRule_id_or_type::kAltIdOrType2:
break;
@@ -909,14 +909,14 @@ TNodePtr TSqlExpression::UnaryCasualExpr(const TUnaryCasualExprRule& node, const
const auto& suffix = node.GetRule_unary_subexpr_suffix2();
const bool suffixIsEmpty = suffix.GetBlock1().empty() && !suffix.HasBlock2();
- MaybeUnnamedSmartParenOnTop = MaybeUnnamedSmartParenOnTop && suffixIsEmpty;
+ MaybeUnnamedSmartParenOnTop_ = MaybeUnnamedSmartParenOnTop_ && suffixIsEmpty;
TString name;
TNodePtr expr;
bool typePossible = false;
auto& block = node.GetBlock1();
switch (block.Alt_case()) {
case TUnaryCasualExprRule::TBlock1::kAlt1: {
- MaybeUnnamedSmartParenOnTop = false;
+ MaybeUnnamedSmartParenOnTop_ = false;
auto& alt = block.GetAlt1();
if constexpr (std::is_same_v<TUnaryCasualExprRule, TRule_unary_casual_subexpr>) {
name = Id(alt.GetRule_id_expr1(), *this);
@@ -933,12 +933,12 @@ TNodePtr TSqlExpression::UnaryCasualExpr(const TUnaryCasualExprRule& node, const
if constexpr (std::is_same_v<TUnaryCasualExprRule, TRule_unary_casual_subexpr>) {
exprOrId = AtomExpr(alt.GetRule_atom_expr1(), suffixIsEmpty ? tail : TTrailingQuestions{});
} else {
- MaybeUnnamedSmartParenOnTop = false;
+ MaybeUnnamedSmartParenOnTop_ = false;
exprOrId = InAtomExpr(alt.GetRule_in_atom_expr1(), suffixIsEmpty ? tail : TTrailingQuestions{});
}
if (!exprOrId) {
- Ctx.IncrementMonCounter("sql_errors", "BadAtomExpr");
+ Ctx_.IncrementMonCounter("sql_errors", "BadAtomExpr");
return nullptr;
}
if (!exprOrId->Expr) {
@@ -977,12 +977,12 @@ TNodePtr TSqlExpression::UnaryCasualExpr(const TUnaryCasualExprRule& node, const
// In case of MATCH_RECOGNIZE lambdas
// X.Y is treated as Var.Column access
if (isColumnRef && (
- EColumnRefState::MatchRecognizeMeasures == Ctx.GetColumnReferenceState() ||
- EColumnRefState::MatchRecognizeDefine == Ctx.GetColumnReferenceState() ||
- EColumnRefState::MatchRecognizeDefineAggregate == Ctx.GetColumnReferenceState()
+ EColumnRefState::MatchRecognizeMeasures == Ctx_.GetColumnReferenceState() ||
+ EColumnRefState::MatchRecognizeDefine == Ctx_.GetColumnReferenceState() ||
+ EColumnRefState::MatchRecognizeDefineAggregate == Ctx_.GetColumnReferenceState()
)) {
if (suffix.GetBlock1().size() != 1) {
- Ctx.Error() << "Expected Var.Column, but got chain of " << suffix.GetBlock1().size() << " column accesses";
+ Ctx_.Error() << "Expected Var.Column, but got chain of " << suffix.GetBlock1().size() << " column accesses";
return nullptr;
}
return RowPatternVarAccess(std::move(name), b.GetAlt3().GetBlock2());
@@ -1003,14 +1003,14 @@ TNodePtr TSqlExpression::UnaryCasualExpr(const TUnaryCasualExprRule& node, const
if (!isColumnRef) {
lastExpr = expr;
} else {
- const bool flexibleTypes = Ctx.FlexibleTypes;
+ const bool flexibleTypes = Ctx_.FlexibleTypes;
bool columnOrType = false;
- auto columnRefsState = Ctx.GetColumnReferenceState();
+ auto columnRefsState = Ctx_.GetColumnReferenceState();
bool explicitPgType = columnRefsState == EColumnRefState::AsPgType;
if (explicitPgType && typePossible && suffixIsEmpty) {
- auto pgType = BuildSimpleType(Ctx, Ctx.Pos(), name, false);
+ auto pgType = BuildSimpleType(Ctx_, Ctx_.Pos(), name, false);
if (pgType && tail.Count) {
- Ctx.Error() << "Optional types are not supported in this context";
+ Ctx_.Error() << "Optional types are not supported in this context";
return {};
}
return pgType;
@@ -1018,7 +1018,7 @@ TNodePtr TSqlExpression::UnaryCasualExpr(const TUnaryCasualExprRule& node, const
if (auto simpleType = LookupSimpleType(name, flexibleTypes, false); simpleType && typePossible && suffixIsEmpty) {
if (tail.Count > 0 || columnRefsState == EColumnRefState::Deny || !flexibleTypes) {
// a type
- return AddOptionals(BuildSimpleType(Ctx, Ctx.Pos(), name, false), tail.Count);
+ return AddOptionals(BuildSimpleType(Ctx_, Ctx_.Pos(), name, false), tail.Count);
}
// type or column: ambiguity will be resolved on type annotation stage
columnOrType = columnRefsState == EColumnRefState::Allow;
@@ -1027,15 +1027,15 @@ TNodePtr TSqlExpression::UnaryCasualExpr(const TUnaryCasualExprRule& node, const
UnexpectedQuestionToken(tail);
return {};
}
- if (!Ctx.CheckColumnReference(Ctx.Pos(), name)) {
+ if (!Ctx_.CheckColumnReference(Ctx_.Pos(), name)) {
return nullptr;
}
- ids.push_back(columnOrType ? BuildColumnOrType(Ctx.Pos()) : BuildColumn(Ctx.Pos()));
+ ids.push_back(columnOrType ? BuildColumnOrType(Ctx_.Pos()) : BuildColumn(Ctx_.Pos()));
ids.push_back(name);
}
- TPosition pos(Ctx.Pos());
+ TPosition pos(Ctx_.Pos());
for (auto& _b : suffix.GetBlock1()) {
auto& b = _b.GetBlock1();
switch (b.Alt_case()) {
@@ -1043,7 +1043,7 @@ TNodePtr TSqlExpression::UnaryCasualExpr(const TUnaryCasualExprRule& node, const
// key_expr
auto keyExpr = KeyExpr(b.GetAlt1().GetRule_key_expr1());
if (!keyExpr) {
- Ctx.IncrementMonCounter("sql_errors", "BadKeyExpr");
+ Ctx_.IncrementMonCounter("sql_errors", "BadKeyExpr");
return nullptr;
}
@@ -1060,7 +1060,7 @@ TNodePtr TSqlExpression::UnaryCasualExpr(const TUnaryCasualExprRule& node, const
}
case TRule_unary_subexpr_suffix::TBlock1::TBlock1::kAlt2: {
// invoke_expr - cannot be a column, function name
- TSqlCallExpr call(Ctx, Mode);
+ TSqlCallExpr call(Ctx_, Mode_);
if (isFirstElem && !name.empty()) {
call.AllowDistinct();
call.InitName(name);
@@ -1140,7 +1140,7 @@ TNodePtr TSqlExpression::UnaryCasualExpr(const TUnaryCasualExprRule& node, const
}
if (suffix.HasBlock2()) {
- Ctx.IncrementMonCounter("sql_errors", "CollateUnarySubexpr");
+ Ctx_.IncrementMonCounter("sql_errors", "CollateUnarySubexpr");
Error() << "unary_subexpr: COLLATE is not implemented yet";
}
@@ -1152,22 +1152,22 @@ TNodePtr TSqlExpression::BindParameterRule(const TRule_bind_parameter& rule, con
if (!NamedNodeImpl(rule, namedArg, *this)) {
return {};
}
- if (SmartParenthesisMode == ESmartParenthesis::SqlLambdaParams) {
- Ctx.IncrementMonCounter("sql_features", "LambdaArgument");
+ if (SmartParenthesisMode_ == ESmartParenthesis::SqlLambdaParams) {
+ Ctx_.IncrementMonCounter("sql_features", "LambdaArgument");
if (tail.Count > 1) {
- Ctx.Error(tail.Pos) << "Expecting at most one '?' token here (for optional lambda parameters), but got " << tail.Count;
+ Ctx_.Error(tail.Pos) << "Expecting at most one '?' token here (for optional lambda parameters), but got " << tail.Count;
return {};
}
- return BuildAtom(Ctx.Pos(), namedArg, NYql::TNodeFlags::ArbitraryContent, tail.Count != 0);
+ return BuildAtom(Ctx_.Pos(), namedArg, NYql::TNodeFlags::ArbitraryContent, tail.Count != 0);
}
if (tail.Count) {
UnexpectedQuestionToken(tail);
return {};
}
- Ctx.IncrementMonCounter("sql_features", "NamedNodeUseAtom");
+ Ctx_.IncrementMonCounter("sql_features", "NamedNodeUseAtom");
auto ret = GetNamedNode(namedArg);
if (ret) {
- ret->SetRefPos(Ctx.Pos());
+ ret->SetRefPos(Ctx_.Pos());
}
return ret;
@@ -1180,12 +1180,12 @@ TNodePtr TSqlExpression::LambdaRule(const TRule_lambda& rule) {
return SmartParenthesis(alt.GetRule_smart_parenthesis1());
}
- MaybeUnnamedSmartParenOnTop = false;
+ MaybeUnnamedSmartParenOnTop_ = false;
TNodePtr parenthesis;
{
// we allow column reference here to postpone error and report it with better description in SqlLambdaParams
- TColumnRefScope scope(Ctx, EColumnRefState::Allow);
- TSqlExpression expr(Ctx, Mode);
+ TColumnRefScope scope(Ctx_, EColumnRefState::Allow);
+ TSqlExpression expr(Ctx_, Mode_);
expr.SetSmartParenthesisMode(ESmartParenthesis::SqlLambdaParams);
parenthesis = expr.SmartParenthesis(alt.GetRule_smart_parenthesis1());
}
@@ -1200,18 +1200,18 @@ TNodePtr TSqlExpression::LambdaRule(const TRule_lambda& rule) {
}
auto bodyBlock = alt.GetBlock2();
Token(bodyBlock.GetToken1());
- TPosition pos(Ctx.Pos());
+ TPosition pos(Ctx_.Pos());
TVector<TNodePtr> exprSeq;
for (auto& arg: args) {
arg.Name = PushNamedAtom(arg.Pos, arg.Name);
}
bool ret = false;
- TColumnRefScope scope(Ctx, EColumnRefState::Deny);
+ TColumnRefScope scope(Ctx_, EColumnRefState::Deny);
scope.SetNoColumnErrContext("in lambda function");
if (bodyBlock.GetBlock2().HasAlt1()) {
- ret = SqlLambdaExprBody(Ctx, bodyBlock.GetBlock2().GetAlt1().GetRule_expr2(), exprSeq);
+ ret = SqlLambdaExprBody(Ctx_, bodyBlock.GetBlock2().GetAlt1().GetRule_expr2(), exprSeq);
} else {
- ret = SqlLambdaExprBody(Ctx, bodyBlock.GetBlock2().GetAlt2().GetRule_lambda_body2(), exprSeq);
+ ret = SqlLambdaExprBody(Ctx_, bodyBlock.GetBlock2().GetAlt2().GetRule_lambda_body2(), exprSeq);
}
TVector<TString> argNames;
@@ -1235,11 +1235,11 @@ TNodePtr TSqlExpression::LambdaRule(const TRule_lambda& rule) {
}
TNodePtr TSqlExpression::CastRule(const TRule_cast_expr& rule) {
- Ctx.IncrementMonCounter("sql_features", "Cast");
+ Ctx_.IncrementMonCounter("sql_features", "Cast");
const auto& alt = rule;
Token(alt.GetToken1());
- TPosition pos(Ctx.Pos());
- TSqlExpression expr(Ctx, Mode);
+ TPosition pos(Ctx_.Pos());
+ TSqlExpression expr(Ctx_, Mode_);
auto exprNode = expr.Build(rule.GetRule_expr3());
if (!exprNode) {
return {};
@@ -1252,11 +1252,11 @@ TNodePtr TSqlExpression::CastRule(const TRule_cast_expr& rule) {
}
TNodePtr TSqlExpression::BitCastRule(const TRule_bitcast_expr& rule) {
- Ctx.IncrementMonCounter("sql_features", "BitCast");
+ Ctx_.IncrementMonCounter("sql_features", "BitCast");
const auto& alt = rule;
Token(alt.GetToken1());
- TPosition pos(Ctx.Pos());
- TSqlExpression expr(Ctx, Mode);
+ TPosition pos(Ctx_.Pos());
+ TSqlExpression expr(Ctx_, Mode_);
auto exprNode = expr.Build(rule.GetRule_expr3());
if (!exprNode) {
return {};
@@ -1269,7 +1269,7 @@ TNodePtr TSqlExpression::BitCastRule(const TRule_bitcast_expr& rule) {
}
TNodePtr TSqlExpression::ExistsRule(const TRule_exists_expr& rule) {
- Ctx.IncrementMonCounter("sql_features", "Exists");
+ Ctx_.IncrementMonCounter("sql_features", "Exists");
TPosition pos;
TSourcePtr source;
@@ -1277,13 +1277,13 @@ TNodePtr TSqlExpression::ExistsRule(const TRule_exists_expr& rule) {
switch (rule.GetBlock3().Alt_case()) {
case TRule_exists_expr::TBlock3::kAlt1: {
const auto& alt = rule.GetBlock3().GetAlt1().GetRule_select_stmt1();
- TSqlSelect select(Ctx, Mode);
+ TSqlSelect select(Ctx_, Mode_);
source = select.Build(alt, pos);
break;
}
case TRule_exists_expr::TBlock3::kAlt2: {
const auto& alt = rule.GetBlock3().GetAlt2().GetRule_values_stmt1();
- TSqlValues values(Ctx, Mode);
+ TSqlValues values(Ctx_, Mode_);
source = values.Build(alt, pos);
break;
}
@@ -1292,34 +1292,34 @@ TNodePtr TSqlExpression::ExistsRule(const TRule_exists_expr& rule) {
}
if (!source) {
- Ctx.IncrementMonCounter("sql_errors", "BadSource");
+ Ctx_.IncrementMonCounter("sql_errors", "BadSource");
return nullptr;
}
const bool checkExist = true;
- auto select = BuildSourceNode(Ctx.Pos(), source, checkExist, Ctx.Settings.EmitReadsForExists);
- return BuildBuiltinFunc(Ctx, Ctx.Pos(), "ListHasItems", {select});
+ auto select = BuildSourceNode(Ctx_.Pos(), source, checkExist, Ctx_.Settings.EmitReadsForExists);
+ return BuildBuiltinFunc(Ctx_, Ctx_.Pos(), "ListHasItems", {select});
}
TNodePtr TSqlExpression::CaseRule(const TRule_case_expr& rule) {
// case_expr: CASE expr? when_expr+ (ELSE expr)? END;
// when_expr: WHEN expr THEN expr;
- Ctx.IncrementMonCounter("sql_features", "Case");
+ Ctx_.IncrementMonCounter("sql_features", "Case");
const auto& alt = rule;
Token(alt.GetToken1());
TNodePtr elseExpr;
if (alt.HasBlock4()) {
Token(alt.GetBlock4().GetToken1());
- TSqlExpression expr(Ctx, Mode);
+ TSqlExpression expr(Ctx_, Mode_);
elseExpr = expr.Build(alt.GetBlock4().GetRule_expr2());
} else {
- Ctx.IncrementMonCounter("sql_errors", "ElseIsRequired");
+ Ctx_.IncrementMonCounter("sql_errors", "ElseIsRequired");
Error() << "ELSE is required";
return {};
}
TNodePtr caseExpr;
if (alt.HasBlock2()) {
- TSqlExpression expr(Ctx, Mode);
+ TSqlExpression expr(Ctx_, Mode_);
caseExpr = expr.Build(alt.GetBlock2().GetRule_expr1());
if (!caseExpr) {
return {};
@@ -1331,23 +1331,23 @@ TNodePtr TSqlExpression::CaseRule(const TRule_case_expr& rule) {
branches.emplace_back();
const auto& block = alt.GetBlock3(i).GetRule_when_expr1();
Token(block.GetToken1());
- TSqlExpression condExpr(Ctx, Mode);
+ TSqlExpression condExpr(Ctx_, Mode_);
branches.back().Pred = condExpr.Build(block.GetRule_expr2());
if (caseExpr) {
- branches.back().Pred = BuildBinaryOp(Ctx, Ctx.Pos(), "==", caseExpr->Clone(), branches.back().Pred);
+ branches.back().Pred = BuildBinaryOp(Ctx_, Ctx_.Pos(), "==", caseExpr->Clone(), branches.back().Pred);
}
if (!branches.back().Pred) {
return {};
}
Token(block.GetToken3());
- TSqlExpression thenExpr(Ctx, Mode);
+ TSqlExpression thenExpr(Ctx_, Mode_);
branches.back().Value = thenExpr.Build(block.GetRule_expr4());
if (!branches.back().Value) {
return {};
}
}
auto final = ReduceCaseBranches(branches.begin(), branches.end());
- return BuildBuiltinFunc(Ctx, Ctx.Pos(), "If", { final.Pred, final.Value, elseExpr });
+ return BuildBuiltinFunc(Ctx_, Ctx_.Pos(), "If", { final.Pred, final.Value, elseExpr });
}
TMaybe<TExprOrIdent> TSqlExpression::AtomExpr(const TRule_atom_expr& node, const TTrailingQuestions& tail) {
@@ -1369,11 +1369,11 @@ TMaybe<TExprOrIdent> TSqlExpression::AtomExpr(const TRule_atom_expr& node, const
UnexpectedQuestionToken(tail);
return {};
}
- MaybeUnnamedSmartParenOnTop = MaybeUnnamedSmartParenOnTop && (node.Alt_case() == TRule_atom_expr::kAltAtomExpr3);
+ MaybeUnnamedSmartParenOnTop_ = MaybeUnnamedSmartParenOnTop_ && (node.Alt_case() == TRule_atom_expr::kAltAtomExpr3);
TExprOrIdent result;
switch (node.Alt_case()) {
case TRule_atom_expr::kAltAtomExpr1:
- Ctx.IncrementMonCounter("sql_features", "LiteralExpr");
+ Ctx_.IncrementMonCounter("sql_features", "LiteralExpr");
return LiteralExpr(node.GetAlt_atom_expr1().GetRule_literal_value1());
case TRule_atom_expr::kAltAtomExpr2:
result.Expr = BindParameterRule(node.GetAlt_atom_expr2().GetRule_bind_parameter1(), tail);
@@ -1393,7 +1393,7 @@ TMaybe<TExprOrIdent> TSqlExpression::AtomExpr(const TRule_atom_expr& node, const
case TRule_atom_expr::kAltAtomExpr7: {
const auto& alt = node.GetAlt_atom_expr7();
TString module(Id(alt.GetRule_an_id_or_type1(), *this));
- TPosition pos(Ctx.Pos());
+ TPosition pos(Ctx_.Pos());
TString name;
switch (alt.GetBlock3().Alt_case()) {
case TRule_atom_expr::TAlt7::TBlock3::kAlt1:
@@ -1401,9 +1401,9 @@ TMaybe<TExprOrIdent> TSqlExpression::AtomExpr(const TRule_atom_expr& node, const
break;
case TRule_atom_expr::TAlt7::TBlock3::kAlt2: {
name = Token(alt.GetBlock3().GetAlt2().GetToken1());
- if (Ctx.AnsiQuotedIdentifiers && name.StartsWith('"')) {
+ if (Ctx_.AnsiQuotedIdentifiers && name.StartsWith('"')) {
// same as previous case
- name = IdContentFromString(Ctx, name);
+ name = IdContentFromString(Ctx_, name);
} else {
module = "@" + module;
}
@@ -1462,7 +1462,7 @@ TMaybe<TExprOrIdent> TSqlExpression::InAtomExpr(const TRule_in_atom_expr& node,
TExprOrIdent result;
switch (node.Alt_case()) {
case TRule_in_atom_expr::kAltInAtomExpr1:
- Ctx.IncrementMonCounter("sql_features", "LiteralExpr");
+ Ctx_.IncrementMonCounter("sql_features", "LiteralExpr");
return LiteralExpr(node.GetAlt_in_atom_expr1().GetRule_literal_value1());
case TRule_in_atom_expr::kAltInAtomExpr2:
result.Expr = BindParameterRule(node.GetAlt_in_atom_expr2().GetRule_bind_parameter1(), tail);
@@ -1479,7 +1479,7 @@ TMaybe<TExprOrIdent> TSqlExpression::InAtomExpr(const TRule_in_atom_expr& node,
case TRule_in_atom_expr::kAltInAtomExpr6: {
const auto& alt = node.GetAlt_in_atom_expr6();
TString module(Id(alt.GetRule_an_id_or_type1(), *this));
- TPosition pos(Ctx.Pos());
+ TPosition pos(Ctx_.Pos());
TString name;
switch (alt.GetBlock3().Alt_case()) {
case TRule_in_atom_expr::TAlt6::TBlock3::kAlt1:
@@ -1487,9 +1487,9 @@ TMaybe<TExprOrIdent> TSqlExpression::InAtomExpr(const TRule_in_atom_expr& node,
break;
case TRule_in_atom_expr::TAlt6::TBlock3::kAlt2: {
name = Token(alt.GetBlock3().GetAlt2().GetToken1());
- if (Ctx.AnsiQuotedIdentifiers && name.StartsWith('"')) {
+ if (Ctx_.AnsiQuotedIdentifiers && name.StartsWith('"')) {
// same as previous case
- name = IdContentFromString(Ctx, name);
+ name = IdContentFromString(Ctx_, name);
} else {
module = "@" + module;
}
@@ -1504,19 +1504,19 @@ TMaybe<TExprOrIdent> TSqlExpression::InAtomExpr(const TRule_in_atom_expr& node,
case TRule_in_atom_expr::kAltInAtomExpr7: {
Token(node.GetAlt_in_atom_expr7().GetToken1());
// reset column reference scope (select will reenable it where needed)
- TColumnRefScope scope(Ctx, EColumnRefState::Deny);
- TSqlSelect select(Ctx, Mode);
+ TColumnRefScope scope(Ctx_, EColumnRefState::Deny);
+ TSqlSelect select(Ctx_, Mode_);
TPosition pos;
auto source = select.Build(node.GetAlt_in_atom_expr7().GetRule_select_stmt2(), pos);
if (!source) {
- Ctx.IncrementMonCounter("sql_errors", "BadSource");
+ Ctx_.IncrementMonCounter("sql_errors", "BadSource");
return {};
}
- Ctx.IncrementMonCounter("sql_features", "InSubquery");
- const auto alias = Ctx.MakeName("subquerynode");
- const auto ref = Ctx.MakeName("subquery");
- auto& blocks = Ctx.GetCurrentBlocks();
- blocks.push_back(BuildSubquery(std::move(source), alias, Mode == NSQLTranslation::ESqlMode::SUBQUERY, -1, Ctx.Scoped));
+ Ctx_.IncrementMonCounter("sql_features", "InSubquery");
+ const auto alias = Ctx_.MakeName("subquerynode");
+ const auto ref = Ctx_.MakeName("subquery");
+ auto& blocks = Ctx_.GetCurrentBlocks();
+ blocks.push_back(BuildSubquery(std::move(source), alias, Mode_ == NSQLTranslation::ESqlMode::SUBQUERY, -1, Ctx_.Scoped));
blocks.back()->SetLabel(ref);
result.Expr = BuildSubqueryRef(blocks.back(), ref, -1);
break;
@@ -1552,25 +1552,25 @@ bool TSqlExpression::SqlLambdaParams(const TNodePtr& node, TVector<TSymbolNameWi
auto errMsg = TStringBuf("Invalid lambda arguments syntax. Lambda arguments should start with '$' as named value.");
auto tupleNodePtr = node->GetTupleNode();;
if (!tupleNodePtr) {
- Ctx.Error(node->GetPos()) << errMsg;
+ Ctx_.Error(node->GetPos()) << errMsg;
return false;
}
THashSet<TString> dupArgsChecker;
for (const auto& argPtr: tupleNodePtr->Elements()) {
auto contentPtr = argPtr->GetAtomContent();
if (!contentPtr || !contentPtr->StartsWith("$")) {
- Ctx.Error(argPtr->GetPos()) << errMsg;
+ Ctx_.Error(argPtr->GetPos()) << errMsg;
return false;
}
if (argPtr->IsOptionalArg()) {
++optionalArgumentsCount;
} else if (optionalArgumentsCount > 0) {
- Ctx.Error(argPtr->GetPos()) << "Non-optional argument can not follow optional one";
+ Ctx_.Error(argPtr->GetPos()) << "Non-optional argument can not follow optional one";
return false;
}
if (!IsAnonymousName(*contentPtr) && !dupArgsChecker.insert(*contentPtr).second) {
- Ctx.Error(argPtr->GetPos()) << "Duplicate lambda argument parametr: '" << *contentPtr << "'.";
+ Ctx_.Error(argPtr->GetPos()) << "Duplicate lambda argument parametr: '" << *contentPtr << "'.";
return false;
}
args.push_back(TSymbolNameWithPos{*contentPtr, argPtr->GetPos()});
@@ -1659,29 +1659,29 @@ TNodePtr TSqlExpression::SubExpr(const TRule_con_subexpr& node, const TTrailingQ
case TRule_con_subexpr::kAltConSubexpr1:
return UnaryExpr(node.GetAlt_con_subexpr1().GetRule_unary_subexpr1(), tail);
case TRule_con_subexpr::kAltConSubexpr2: {
- MaybeUnnamedSmartParenOnTop = false;
- Ctx.IncrementMonCounter("sql_features", "UnaryOperation");
+ MaybeUnnamedSmartParenOnTop_ = false;
+ Ctx_.IncrementMonCounter("sql_features", "UnaryOperation");
TString opName;
auto token = node.GetAlt_con_subexpr2().GetRule_unary_op1().GetToken1();
Token(token);
- TPosition pos(Ctx.Pos());
+ TPosition pos(Ctx_.Pos());
auto tokenId = token.GetId();
- if (IS_TOKEN(Ctx.Settings.Antlr4Parser, tokenId, NOT)) {
+ if (IS_TOKEN(Ctx_.Settings.Antlr4Parser, tokenId, NOT)) {
opName = "Not";
- } else if (IS_TOKEN(Ctx.Settings.Antlr4Parser, tokenId, PLUS)) {
+ } else if (IS_TOKEN(Ctx_.Settings.Antlr4Parser, tokenId, PLUS)) {
opName = "Plus";
- } else if (IS_TOKEN(Ctx.Settings.Antlr4Parser, tokenId, MINUS)) {
- opName = Ctx.Scoped->PragmaCheckedOps ? "CheckedMinus" : "Minus";
- } else if (IS_TOKEN(Ctx.Settings.Antlr4Parser, tokenId, TILDA)) {
+ } else if (IS_TOKEN(Ctx_.Settings.Antlr4Parser, tokenId, MINUS)) {
+ opName = Ctx_.Scoped->PragmaCheckedOps ? "CheckedMinus" : "Minus";
+ } else if (IS_TOKEN(Ctx_.Settings.Antlr4Parser, tokenId, TILDA)) {
opName = "BitNot";
} else {
- Ctx.IncrementMonCounter("sql_errors", "UnsupportedUnaryOperation");
+ Ctx_.IncrementMonCounter("sql_errors", "UnsupportedUnaryOperation");
Error() << "Unsupported unary operation: " << token.GetValue();
return nullptr;
}
- Ctx.IncrementMonCounter("sql_unary_operations", opName);
+ Ctx_.IncrementMonCounter("sql_unary_operations", opName);
auto expr = UnaryExpr(node.GetAlt_con_subexpr2().GetRule_unary_subexpr2(), tail);
- return expr ? expr->ApplyUnaryOp(Ctx, pos, opName) : expr;
+ return expr ? expr->ApplyUnaryOp(Ctx_, pos, opName) : expr;
}
case TRule_con_subexpr::ALT_NOT_SET:
Y_ABORT("You should change implementation according to grammar changes");
@@ -1691,12 +1691,12 @@ TNodePtr TSqlExpression::SubExpr(const TRule_con_subexpr& node, const TTrailingQ
TNodePtr TSqlExpression::SubExpr(const TRule_xor_subexpr& node, const TTrailingQuestions& tail) {
// xor_subexpr: eq_subexpr cond_expr?;
- MaybeUnnamedSmartParenOnTop = MaybeUnnamedSmartParenOnTop && !node.HasBlock2();
+ MaybeUnnamedSmartParenOnTop_ = MaybeUnnamedSmartParenOnTop_ && !node.HasBlock2();
TNodePtr res(SubExpr(node.GetRule_eq_subexpr1(), node.HasBlock2() ? TTrailingQuestions{} : tail));
if (!res) {
return {};
}
- TPosition pos(Ctx.Pos());
+ TPosition pos(Ctx_.Pos());
if (node.HasBlock2()) {
auto cond = node.GetBlock2().GetRule_cond_expr1();
switch (cond.Alt_case()) {
@@ -1712,7 +1712,7 @@ TNodePtr TSqlExpression::SubExpr(const TRule_xor_subexpr& node, const TTrailingQ
if (opName == "like" || opName == "ilike") {
const TString* escapeLiteral = nullptr;
TNodePtr escapeNode;
- const auto& escaper = BuildUdf(Ctx, pos, "Re2", "PatternFromLike", {});
+ const auto& escaper = BuildUdf(Ctx_, pos, "Re2", "PatternFromLike", {});
TVector<TNodePtr> escaperArgs({ escaper, pattern });
if (matchOp.HasBlock4()) {
@@ -1724,35 +1724,35 @@ TNodePtr TSqlExpression::SubExpr(const TRule_xor_subexpr& node, const TTrailingQ
escapeLiteral = escapeExpr->GetLiteral("String");
escapeNode = escapeExpr;
if (escapeLiteral) {
- Ctx.IncrementMonCounter("sql_features", "LikeEscape");
+ Ctx_.IncrementMonCounter("sql_features", "LikeEscape");
if (escapeLiteral->size() != 1) {
- Ctx.IncrementMonCounter("sql_errors", "LikeMultiCharEscape");
+ Ctx_.IncrementMonCounter("sql_errors", "LikeMultiCharEscape");
Error() << "ESCAPE clause requires single character argument";
return nullptr;
}
if (escapeLiteral[0] == "%" || escapeLiteral[0] == "_" || escapeLiteral[0] == "\\") {
- Ctx.IncrementMonCounter("sql_errors", "LikeUnsupportedEscapeChar");
+ Ctx_.IncrementMonCounter("sql_errors", "LikeUnsupportedEscapeChar");
Error() << "'%', '_' and '\\' are currently not supported in ESCAPE clause, ";
Error() << "please choose any other character";
return nullptr;
}
if (!IsAscii(escapeLiteral->front())) {
- Ctx.IncrementMonCounter("sql_errors", "LikeUnsupportedEscapeChar");
+ Ctx_.IncrementMonCounter("sql_errors", "LikeUnsupportedEscapeChar");
Error() << "Non-ASCII symbols are not supported in ESCAPE clause, ";
Error() << "please choose ASCII character";
return nullptr;
}
escaperArgs.push_back(BuildLiteralRawString(pos, *escapeLiteral));
} else {
- Ctx.IncrementMonCounter("sql_errors", "LikeNotLiteralEscape");
+ Ctx_.IncrementMonCounter("sql_errors", "LikeNotLiteralEscape");
Error() << "ESCAPE clause requires String literal argument";
return nullptr;
}
}
- auto re2options = BuildUdf(Ctx, pos, "Re2", "Options", {});
+ auto re2options = BuildUdf(Ctx_, pos, "Re2", "Options", {});
if (opName == "ilike") {
- Ctx.IncrementMonCounter("sql_features", "CaseInsensitiveLike");
+ Ctx_.IncrementMonCounter("sql_features", "CaseInsensitiveLike");
}
auto csModeLiteral = BuildLiteralBool(pos, opName != "ilike");
csModeLiteral->SetLabel("CaseSensitive");
@@ -1763,7 +1763,7 @@ TNodePtr TSqlExpression::SubExpr(const TRule_xor_subexpr& node, const TTrailingQ
auto list = new TAstListNodeImpl(pos, { escapedPattern, optionsApply });
auto runConfig = new TAstListNodeImpl(pos, { new TAstAtomNodeImpl(pos, "quote", 0), list });
- const TNodePtr matcher = new TCallNodeImpl(pos, "AssumeStrict", { BuildUdf(Ctx, pos, "Re2", "Match", { runConfig }) });
+ const TNodePtr matcher = new TCallNodeImpl(pos, "AssumeStrict", { BuildUdf(Ctx_, pos, "Re2", "Match", { runConfig }) });
isMatch = new TCallNodeImpl(pos, "Apply", { matcher, res });
bool isUtf8 = false;
@@ -1798,12 +1798,12 @@ TNodePtr TSqlExpression::SubExpr(const TRule_xor_subexpr& node, const TTrailingQ
}
if (inEscape) {
- Ctx.IncrementMonCounter("sql_errors", "LikeEscapeSymbolEnd");
+ Ctx_.IncrementMonCounter("sql_errors", "LikeEscapeSymbolEnd");
Error() << "LIKE pattern should not end with escape symbol";
return nullptr;
}
- if ((opName == "like") || mayIgnoreCase || Ctx.OptimizeSimpleIlike) {
+ if ((opName == "like") || mayIgnoreCase || Ctx_.OptimizeSimpleIlike) {
// TODO: expand LIKE in optimizers - we can analyze argument types there
const bool useIgnoreCaseOp = (opName == "ilike") && !mayIgnoreCase;
const auto& equalOp = useIgnoreCaseOp ? "EqualsIgnoreCase" : "==";
@@ -1816,37 +1816,37 @@ TNodePtr TSqlExpression::SubExpr(const TRule_xor_subexpr& node, const TTrailingQ
if (components.size() == 1 && first.IsSimple) {
// no '%'s and '_'s in pattern
YQL_ENSURE(first.Prefix == first.Suffix);
- isMatch = BuildBinaryOp(Ctx, pos, equalOp, res, BuildLiteralRawString(pos, first.Suffix, isUtf8));
+ isMatch = BuildBinaryOp(Ctx_, pos, equalOp, res, BuildLiteralRawString(pos, first.Suffix, isUtf8));
} else if (!first.Prefix.empty()) {
const TString& prefix = first.Prefix;
TNodePtr prefixMatch;
- if (Ctx.EmitStartsWith) {
- prefixMatch = BuildBinaryOp(Ctx, pos, startsWithOp, res, BuildLiteralRawString(pos, prefix, isUtf8));
+ if (Ctx_.EmitStartsWith) {
+ prefixMatch = BuildBinaryOp(Ctx_, pos, startsWithOp, res, BuildLiteralRawString(pos, prefix, isUtf8));
} else {
- prefixMatch = BuildBinaryOp(Ctx, pos, ">=", res, BuildLiteralRawString(pos, prefix, isUtf8));
+ prefixMatch = BuildBinaryOp(Ctx_, pos, ">=", res, BuildLiteralRawString(pos, prefix, isUtf8));
auto upperBound = isUtf8 ? NextValidUtf8(prefix) : NextLexicographicString(prefix);
if (upperBound) {
prefixMatch = BuildBinaryOp(
- Ctx,
+ Ctx_,
pos,
"And",
prefixMatch,
- BuildBinaryOp(Ctx, pos, "<", res, BuildLiteralRawString(pos, TString(*upperBound), isUtf8))
+ BuildBinaryOp(Ctx_, pos, "<", res, BuildLiteralRawString(pos, TString(*upperBound), isUtf8))
);
}
}
- if (Ctx.AnsiLike && first.IsSimple && components.size() == 2 && components.back().IsSimple) {
+ if (Ctx_.AnsiLike && first.IsSimple && components.size() == 2 && components.back().IsSimple) {
const TString& suffix = components.back().Suffix;
// 'prefix%suffix'
if (suffix.empty()) {
isMatch = prefixMatch;
} else {
// len(str) >= len(prefix) + len(suffix) && StartsWith(str, prefix) && EndsWith(str, suffix)
- TNodePtr sizePred = BuildBinaryOp(Ctx, pos, ">=",
+ TNodePtr sizePred = BuildBinaryOp(Ctx_, pos, ">=",
TNodePtr(new TCallNodeImpl(pos, "Size", { res })),
TNodePtr(new TLiteralNumberNode<ui32>(pos, "Uint32", ToString(prefix.size() + suffix.size()))));
- TNodePtr suffixMatch = BuildBinaryOp(Ctx, pos, endsWithOp, res, BuildLiteralRawString(pos, suffix, isUtf8));
+ TNodePtr suffixMatch = BuildBinaryOp(Ctx_, pos, endsWithOp, res, BuildLiteralRawString(pos, suffix, isUtf8));
isMatch = new TCallNodeImpl(pos, "And", {
sizePred,
prefixMatch,
@@ -1854,57 +1854,57 @@ TNodePtr TSqlExpression::SubExpr(const TRule_xor_subexpr& node, const TTrailingQ
});
}
} else {
- isMatch = BuildBinaryOp(Ctx, pos, "And", prefixMatch, isMatch);
+ isMatch = BuildBinaryOp(Ctx_, pos, "And", prefixMatch, isMatch);
}
- } else if (Ctx.AnsiLike && AllOf(components, [](const auto& comp) { return comp.IsSimple; })) {
+ } else if (Ctx_.AnsiLike && AllOf(components, [](const auto& comp) { return comp.IsSimple; })) {
YQL_ENSURE(first.Prefix.empty());
if (components.size() == 3 && components.back().Prefix.empty()) {
// '%foo%'
YQL_ENSURE(!components[1].Prefix.empty());
- isMatch = BuildBinaryOp(Ctx, pos, containsOp, res, BuildLiteralRawString(pos, components[1].Prefix, isUtf8));
+ isMatch = BuildBinaryOp(Ctx_, pos, containsOp, res, BuildLiteralRawString(pos, components[1].Prefix, isUtf8));
} else if (components.size() == 2) {
// '%foo'
- isMatch = BuildBinaryOp(Ctx, pos, endsWithOp, res, BuildLiteralRawString(pos, components[1].Prefix, isUtf8));
+ isMatch = BuildBinaryOp(Ctx_, pos, endsWithOp, res, BuildLiteralRawString(pos, components[1].Prefix, isUtf8));
}
- } else if (Ctx.AnsiLike && !components.back().Suffix.empty()) {
+ } else if (Ctx_.AnsiLike && !components.back().Suffix.empty()) {
const TString& suffix = components.back().Suffix;
- TNodePtr suffixMatch = BuildBinaryOp(Ctx, pos, endsWithOp, res, BuildLiteralRawString(pos, suffix, isUtf8));
- isMatch = BuildBinaryOp(Ctx, pos, "And", suffixMatch, isMatch);
+ TNodePtr suffixMatch = BuildBinaryOp(Ctx_, pos, endsWithOp, res, BuildLiteralRawString(pos, suffix, isUtf8));
+ isMatch = BuildBinaryOp(Ctx_, pos, "And", suffixMatch, isMatch);
}
// TODO: more StringContains/StartsWith/EndsWith cases?
}
}
- Ctx.IncrementMonCounter("sql_features", notMatch ? "NotLike" : "Like");
+ Ctx_.IncrementMonCounter("sql_features", notMatch ? "NotLike" : "Like");
} else if (opName == "regexp" || opName == "rlike" || opName == "match") {
if (matchOp.HasBlock4()) {
- Ctx.IncrementMonCounter("sql_errors", "RegexpEscape");
+ Ctx_.IncrementMonCounter("sql_errors", "RegexpEscape");
TString opNameUpper(opName);
opNameUpper.to_upper();
Error() << opName << " and ESCAPE clauses should not be used together";
return nullptr;
}
- if (!Ctx.PragmaRegexUseRe2) {
- Ctx.Warning(pos, TIssuesIds::CORE_LEGACY_REGEX_ENGINE) << "Legacy regex engine works incorrectly with unicode. Use PRAGMA RegexUseRe2='true';";
+ if (!Ctx_.PragmaRegexUseRe2) {
+ Ctx_.Warning(pos, TIssuesIds::CORE_LEGACY_REGEX_ENGINE) << "Legacy regex engine works incorrectly with unicode. Use PRAGMA RegexUseRe2='true';";
}
- const auto& matcher = Ctx.PragmaRegexUseRe2 ?
- BuildUdf(Ctx, pos, "Re2", opName == "match" ? "Match" : "Grep", {BuildTuple(pos, {pattern, BuildLiteralNull(pos)})}):
- BuildUdf(Ctx, pos, "Pcre", opName == "match" ? "BacktrackingMatch" : "BacktrackingGrep", { pattern });
+ const auto& matcher = Ctx_.PragmaRegexUseRe2 ?
+ BuildUdf(Ctx_, pos, "Re2", opName == "match" ? "Match" : "Grep", {BuildTuple(pos, {pattern, BuildLiteralNull(pos)})}):
+ BuildUdf(Ctx_, pos, "Pcre", opName == "match" ? "BacktrackingMatch" : "BacktrackingGrep", { pattern });
isMatch = new TCallNodeImpl(pos, "Apply", { matcher, res });
if (opName != "match") {
- Ctx.IncrementMonCounter("sql_features", notMatch ? "NotRegexp" : "Regexp");
+ Ctx_.IncrementMonCounter("sql_features", notMatch ? "NotRegexp" : "Regexp");
} else {
- Ctx.IncrementMonCounter("sql_features", notMatch ? "NotMatch" : "Match");
+ Ctx_.IncrementMonCounter("sql_features", notMatch ? "NotMatch" : "Match");
}
} else {
- Ctx.IncrementMonCounter("sql_errors", "UnknownMatchOp");
+ Ctx_.IncrementMonCounter("sql_errors", "UnknownMatchOp");
AltNotImplemented("match_op", cond);
return nullptr;
}
- return (notMatch && isMatch) ? isMatch->ApplyUnaryOp(Ctx, pos, "Not") : isMatch;
+ return (notMatch && isMatch) ? isMatch->ApplyUnaryOp(Ctx_, pos, "Not") : isMatch;
}
case TRule_cond_expr::kAltCondExpr2: {
// | NOT? IN COMPACT? in_expr
@@ -1913,19 +1913,19 @@ TNodePtr TSqlExpression::SubExpr(const TRule_xor_subexpr& node, const TTrailingQ
auto hints = BuildTuple(pos, {});
bool isCompact = altInExpr.HasBlock3();
if (!isCompact) {
- auto sqlHints = Ctx.PullHintForToken(Ctx.TokenPosition(altInExpr.GetToken2()));
+ auto sqlHints = Ctx_.PullHintForToken(Ctx_.TokenPosition(altInExpr.GetToken2()));
isCompact = AnyOf(sqlHints, [](const NSQLTranslation::TSQLHint& hint) { return to_lower(hint.Name) == "compact"; });
}
if (isCompact) {
- Ctx.IncrementMonCounter("sql_features", "IsCompactHint");
+ Ctx_.IncrementMonCounter("sql_features", "IsCompactHint");
auto sizeHint = BuildTuple(pos, { BuildQuotedAtom(pos, "isCompact", NYql::TNodeFlags::Default) });
hints = BuildTuple(pos, { sizeHint });
}
- TSqlExpression inSubexpr(Ctx, Mode);
+ TSqlExpression inSubexpr(Ctx_, Mode_);
auto inRight = inSubexpr.SqlInExpr(altInExpr.GetRule_in_expr4(), tail);
- auto isIn = BuildBuiltinFunc(Ctx, pos, "In", {res, inRight, hints});
- Ctx.IncrementMonCounter("sql_features", notIn ? "NotIn" : "In");
- return (notIn && isIn) ? isIn->ApplyUnaryOp(Ctx, pos, "Not") : isIn;
+ auto isIn = BuildBuiltinFunc(Ctx_, pos, "In", {res, inRight, hints});
+ Ctx_.IncrementMonCounter("sql_features", notIn ? "NotIn" : "In");
+ return (notIn && isIn) ? isIn->ApplyUnaryOp(Ctx_, pos, "Not") : isIn;
}
case TRule_cond_expr::kAltCondExpr3: {
if (tail.Count) {
@@ -1941,16 +1941,16 @@ TNodePtr TSqlExpression::SubExpr(const TRule_xor_subexpr& node, const TTrailingQ
if (altCase == TRule_cond_expr::TAlt3::TBlock1::kAlt4 &&
!cond.GetAlt_cond_expr3().GetBlock1().GetAlt4().HasBlock1())
{
- Ctx.Warning(Ctx.Pos(), TIssuesIds::YQL_MISSING_IS_BEFORE_NOT_NULL) << "Missing IS keyword before NOT NULL";
+ Ctx_.Warning(Ctx_.Pos(), TIssuesIds::YQL_MISSING_IS_BEFORE_NOT_NULL) << "Missing IS keyword before NOT NULL";
}
auto isNull = BuildIsNullOp(pos, res);
- Ctx.IncrementMonCounter("sql_features", notNoll ? "NotNull" : "Null");
- return (notNoll && isNull) ? isNull->ApplyUnaryOp(Ctx, pos, "Not") : isNull;
+ Ctx_.IncrementMonCounter("sql_features", notNoll ? "NotNull" : "Null");
+ return (notNoll && isNull) ? isNull->ApplyUnaryOp(Ctx_, pos, "Not") : isNull;
}
case TRule_cond_expr::kAltCondExpr4: {
auto alt = cond.GetAlt_cond_expr4();
- const bool symmetric = alt.HasBlock3() && IS_TOKEN(Ctx.Settings.Antlr4Parser, alt.GetBlock3().GetToken1().GetId(), SYMMETRIC);
+ const bool symmetric = alt.HasBlock3() && IS_TOKEN(Ctx_.Settings.Antlr4Parser, alt.GetBlock3().GetToken1().GetId(), SYMMETRIC);
const bool negation = alt.HasBlock1();
TNodePtr left = SubExpr(alt.GetRule_eq_subexpr4(), {});
TNodePtr right = SubExpr(alt.GetRule_eq_subexpr6(), tail);
@@ -1962,7 +1962,7 @@ TNodePtr TSqlExpression::SubExpr(const TRule_xor_subexpr& node, const TTrailingQ
const bool oneArgNull = left->IsNull() || right->IsNull();
if (res->IsNull() || bothArgNull || (symmetric && oneArgNull)) {
- Ctx.Warning(pos, TIssuesIds::YQL_OPERATION_WILL_RETURN_NULL)
+ Ctx_.Warning(pos, TIssuesIds::YQL_OPERATION_WILL_RETURN_NULL)
<< "BETWEEN operation will return NULL here";
}
@@ -1985,7 +1985,7 @@ TNodePtr TSqlExpression::SubExpr(const TRule_xor_subexpr& node, const TTrailingQ
};
if (symmetric) {
- Ctx.IncrementMonCounter("sql_features", negation? "NotBetweenSymmetric" : "BetweenSymmetric");
+ Ctx_.IncrementMonCounter("sql_features", negation? "NotBetweenSymmetric" : "BetweenSymmetric");
return BuildBinaryOpRaw(
pos,
negation? "And" : "Or",
@@ -1993,7 +1993,7 @@ TNodePtr TSqlExpression::SubExpr(const TRule_xor_subexpr& node, const TTrailingQ
buildSubexpr(right, left)
);
} else {
- Ctx.IncrementMonCounter("sql_features", negation? "NotBetween" : "Between");
+ Ctx_.IncrementMonCounter("sql_features", negation? "NotBetween" : "Between");
return buildSubexpr(left, right);
}
}
@@ -2003,7 +2003,7 @@ TNodePtr TSqlExpression::SubExpr(const TRule_xor_subexpr& node, const TTrailingQ
return BinOpList(node.GetRule_eq_subexpr1(), getNode, alt.GetBlock1().begin(), alt.GetBlock1().end(), tail);
}
case TRule_cond_expr::ALT_NOT_SET:
- Ctx.IncrementMonCounter("sql_errors", "UnknownConditionExpr");
+ Ctx_.IncrementMonCounter("sql_errors", "UnknownConditionExpr");
AltNotImplemented("cond_expr", cond);
return nullptr;
}
@@ -2012,16 +2012,16 @@ TNodePtr TSqlExpression::SubExpr(const TRule_xor_subexpr& node, const TTrailingQ
}
TNodePtr TSqlExpression::BinOperList(const TString& opName, TVector<TNodePtr>::const_iterator begin, TVector<TNodePtr>::const_iterator end) const {
- TPosition pos(Ctx.Pos());
+ TPosition pos(Ctx_.Pos());
const size_t opCount = end - begin;
Y_DEBUG_ABORT_UNLESS(opCount >= 2);
if (opCount == 2) {
- return BuildBinaryOp(Ctx, pos, opName, *begin, *(begin+1));
+ return BuildBinaryOp(Ctx_, pos, opName, *begin, *(begin+1));
} if (opCount == 3) {
- return BuildBinaryOp(Ctx, pos, opName, BuildBinaryOp(Ctx, pos, opName, *begin, *(begin+1)), *(begin+2));
+ return BuildBinaryOp(Ctx_, pos, opName, BuildBinaryOp(Ctx_, pos, opName, *begin, *(begin+1)), *(begin+2));
} else {
auto mid = begin + opCount / 2;
- return BuildBinaryOp(Ctx, pos, opName, BinOperList(opName, begin, mid), BinOperList(opName, mid, end));
+ return BuildBinaryOp(Ctx_, pos, opName, BinOperList(opName, begin, mid), BinOperList(opName, mid, end));
}
}
@@ -2043,8 +2043,8 @@ TSqlExpression::TCaseBranch TSqlExpression::ReduceCaseBranches(TVector<TCaseBran
}
TCaseBranch result;
- result.Pred = new TCallNodeImpl(Ctx.Pos(), "Or", CloneContainer(preds));
- result.Value = BuildBuiltinFunc(Ctx, Ctx.Pos(), "If", { left.Pred, left.Value, right.Value });
+ result.Pred = new TCallNodeImpl(Ctx_.Pos(), "Or", CloneContainer(preds));
+ result.Value = BuildBuiltinFunc(Ctx_, Ctx_.Pos(), "If", { left.Pred, left.Value, right.Value });
return result;
}
@@ -2054,8 +2054,8 @@ TNodePtr TSqlExpression::BinOper(const TString& opName, const TNode& node, TGetN
return SubExpr(node, tail);
}
// can't have top level smart_parenthesis node if any binary operation is present
- MaybeUnnamedSmartParenOnTop = false;
- Ctx.IncrementMonCounter("sql_binary_operations", opName);
+ MaybeUnnamedSmartParenOnTop_ = false;
+ Ctx_.IncrementMonCounter("sql_binary_operations", opName);
const size_t listSize = end - begin;
TVector<TNodePtr> nodes;
nodes.reserve(1 + listSize);
@@ -2068,53 +2068,53 @@ TNodePtr TSqlExpression::BinOper(const TString& opName, const TNode& node, TGetN
template <typename TNode, typename TGetNode, typename TIter>
TNodePtr TSqlExpression::BinOpList(const TNode& node, TGetNode getNode, TIter begin, TIter end, const TTrailingQuestions& tail) {
- MaybeUnnamedSmartParenOnTop = MaybeUnnamedSmartParenOnTop && (begin == end);
+ MaybeUnnamedSmartParenOnTop_ = MaybeUnnamedSmartParenOnTop_ && (begin == end);
TNodePtr partialResult = SubExpr(node, (begin == end) ? tail : TTrailingQuestions{});
while (begin != end) {
- Ctx.IncrementMonCounter("sql_features", "BinaryOperation");
+ Ctx_.IncrementMonCounter("sql_features", "BinaryOperation");
Token(begin->GetToken1());
- TPosition pos(Ctx.Pos());
+ TPosition pos(Ctx_.Pos());
TString opName;
auto tokenId = begin->GetToken1().GetId();
- if (IS_TOKEN(Ctx.Settings.Antlr4Parser, tokenId, LESS)) {
+ if (IS_TOKEN(Ctx_.Settings.Antlr4Parser, tokenId, LESS)) {
opName = "<";
- Ctx.IncrementMonCounter("sql_binary_operations", "Less");
- } else if (IS_TOKEN(Ctx.Settings.Antlr4Parser, tokenId, LESS_OR_EQ)) {
+ Ctx_.IncrementMonCounter("sql_binary_operations", "Less");
+ } else if (IS_TOKEN(Ctx_.Settings.Antlr4Parser, tokenId, LESS_OR_EQ)) {
opName = "<=";
- Ctx.IncrementMonCounter("sql_binary_operations", "LessOrEq");
- } else if (IS_TOKEN(Ctx.Settings.Antlr4Parser, tokenId, GREATER)) {
+ Ctx_.IncrementMonCounter("sql_binary_operations", "LessOrEq");
+ } else if (IS_TOKEN(Ctx_.Settings.Antlr4Parser, tokenId, GREATER)) {
opName = ">";
- Ctx.IncrementMonCounter("sql_binary_operations", "Greater");
- } else if (IS_TOKEN(Ctx.Settings.Antlr4Parser, tokenId, GREATER_OR_EQ)) {
+ Ctx_.IncrementMonCounter("sql_binary_operations", "Greater");
+ } else if (IS_TOKEN(Ctx_.Settings.Antlr4Parser, tokenId, GREATER_OR_EQ)) {
opName = ">=";
- Ctx.IncrementMonCounter("sql_binary_operations", "GreaterOrEq");
- } else if (IS_TOKEN(Ctx.Settings.Antlr4Parser, tokenId, PLUS)) {
- opName = Ctx.Scoped->PragmaCheckedOps ? "CheckedAdd" : "+MayWarn";
- Ctx.IncrementMonCounter("sql_binary_operations", "Plus");
- } else if (IS_TOKEN(Ctx.Settings.Antlr4Parser, tokenId, MINUS)) {
- opName = Ctx.Scoped->PragmaCheckedOps ? "CheckedSub" : "-MayWarn";
- Ctx.IncrementMonCounter("sql_binary_operations", "Minus");
- } else if (IS_TOKEN(Ctx.Settings.Antlr4Parser, tokenId, ASTERISK)) {
- opName = Ctx.Scoped->PragmaCheckedOps ? "CheckedMul" : "*MayWarn";
- Ctx.IncrementMonCounter("sql_binary_operations", "Multiply");
- } else if (IS_TOKEN(Ctx.Settings.Antlr4Parser, tokenId, SLASH)) {
+ Ctx_.IncrementMonCounter("sql_binary_operations", "GreaterOrEq");
+ } else if (IS_TOKEN(Ctx_.Settings.Antlr4Parser, tokenId, PLUS)) {
+ opName = Ctx_.Scoped->PragmaCheckedOps ? "CheckedAdd" : "+MayWarn";
+ Ctx_.IncrementMonCounter("sql_binary_operations", "Plus");
+ } else if (IS_TOKEN(Ctx_.Settings.Antlr4Parser, tokenId, MINUS)) {
+ opName = Ctx_.Scoped->PragmaCheckedOps ? "CheckedSub" : "-MayWarn";
+ Ctx_.IncrementMonCounter("sql_binary_operations", "Minus");
+ } else if (IS_TOKEN(Ctx_.Settings.Antlr4Parser, tokenId, ASTERISK)) {
+ opName = Ctx_.Scoped->PragmaCheckedOps ? "CheckedMul" : "*MayWarn";
+ Ctx_.IncrementMonCounter("sql_binary_operations", "Multiply");
+ } else if (IS_TOKEN(Ctx_.Settings.Antlr4Parser, tokenId, SLASH)) {
opName = "/MayWarn";
- Ctx.IncrementMonCounter("sql_binary_operations", "Divide");
- if (!Ctx.Scoped->PragmaClassicDivision && partialResult) {
+ Ctx_.IncrementMonCounter("sql_binary_operations", "Divide");
+ if (!Ctx_.Scoped->PragmaClassicDivision && partialResult) {
partialResult = new TCallNodeImpl(pos, "SafeCast", {std::move(partialResult), BuildDataType(pos, "Double")});
- } else if (Ctx.Scoped->PragmaCheckedOps) {
+ } else if (Ctx_.Scoped->PragmaCheckedOps) {
opName = "CheckedDiv";
}
- } else if (IS_TOKEN(Ctx.Settings.Antlr4Parser, tokenId, PERCENT)) {
- opName = Ctx.Scoped->PragmaCheckedOps ? "CheckedMod" : "%MayWarn";
- Ctx.IncrementMonCounter("sql_binary_operations", "Mod");
+ } else if (IS_TOKEN(Ctx_.Settings.Antlr4Parser, tokenId, PERCENT)) {
+ opName = Ctx_.Scoped->PragmaCheckedOps ? "CheckedMod" : "%MayWarn";
+ Ctx_.IncrementMonCounter("sql_binary_operations", "Mod");
} else {
- Ctx.IncrementMonCounter("sql_errors", "UnsupportedBinaryOperation");
+ Ctx_.IncrementMonCounter("sql_errors", "UnsupportedBinaryOperation");
Error() << "Unsupported binary operation token: " << tokenId;
return nullptr;
}
- partialResult = BuildBinaryOp(Ctx, pos, opName, partialResult, SubExpr(getNode(*begin), (begin + 1 == end) ? tail : TTrailingQuestions{}));
+ partialResult = BuildBinaryOp(Ctx_, pos, opName, partialResult, SubExpr(getNode(*begin), (begin + 1 == end) ? tail : TTrailingQuestions{}));
++begin;
}
@@ -2123,82 +2123,82 @@ TNodePtr TSqlExpression::BinOpList(const TNode& node, TGetNode getNode, TIter be
template <typename TGetNode, typename TIter>
TNodePtr TSqlExpression::BinOpList(const TRule_bit_subexpr& node, TGetNode getNode, TIter begin, TIter end, const TTrailingQuestions& tail) {
- MaybeUnnamedSmartParenOnTop = MaybeUnnamedSmartParenOnTop && (begin == end);
+ MaybeUnnamedSmartParenOnTop_ = MaybeUnnamedSmartParenOnTop_ && (begin == end);
TNodePtr partialResult = SubExpr(node, (begin == end) ? tail : TTrailingQuestions{});
while (begin != end) {
- Ctx.IncrementMonCounter("sql_features", "BinaryOperation");
+ Ctx_.IncrementMonCounter("sql_features", "BinaryOperation");
TString opName;
switch (begin->GetBlock1().Alt_case()) {
case TRule_neq_subexpr_TBlock2_TBlock1::kAlt1: {
Token(begin->GetBlock1().GetAlt1().GetToken1());
auto tokenId = begin->GetBlock1().GetAlt1().GetToken1().GetId();
- if (!IS_TOKEN(Ctx.Settings.Antlr4Parser, tokenId, SHIFT_LEFT)) {
+ if (!IS_TOKEN(Ctx_.Settings.Antlr4Parser, tokenId, SHIFT_LEFT)) {
Error() << "Unsupported binary operation token: " << tokenId;
return {};
}
opName = "ShiftLeft";
- Ctx.IncrementMonCounter("sql_binary_operations", "ShiftLeft");
+ Ctx_.IncrementMonCounter("sql_binary_operations", "ShiftLeft");
break;
}
case TRule_neq_subexpr_TBlock2_TBlock1::kAlt2: {
opName = "ShiftRight";
- Ctx.IncrementMonCounter("sql_binary_operations", "ShiftRight");
+ Ctx_.IncrementMonCounter("sql_binary_operations", "ShiftRight");
break;
}
case TRule_neq_subexpr_TBlock2_TBlock1::kAlt3: {
Token(begin->GetBlock1().GetAlt3().GetToken1());
auto tokenId = begin->GetBlock1().GetAlt3().GetToken1().GetId();
- if (!IS_TOKEN(Ctx.Settings.Antlr4Parser, tokenId, ROT_LEFT)) {
+ if (!IS_TOKEN(Ctx_.Settings.Antlr4Parser, tokenId, ROT_LEFT)) {
Error() << "Unsupported binary operation token: " << tokenId;
return {};
}
opName = "RotLeft";
- Ctx.IncrementMonCounter("sql_binary_operations", "RotLeft");
+ Ctx_.IncrementMonCounter("sql_binary_operations", "RotLeft");
break;
}
case TRule_neq_subexpr_TBlock2_TBlock1::kAlt4: {
opName = "RotRight";
- Ctx.IncrementMonCounter("sql_binary_operations", "RotRight");
+ Ctx_.IncrementMonCounter("sql_binary_operations", "RotRight");
break;
}
case TRule_neq_subexpr_TBlock2_TBlock1::kAlt5: {
Token(begin->GetBlock1().GetAlt5().GetToken1());
auto tokenId = begin->GetBlock1().GetAlt5().GetToken1().GetId();
- if (!IS_TOKEN(Ctx.Settings.Antlr4Parser, tokenId, AMPERSAND)) {
+ if (!IS_TOKEN(Ctx_.Settings.Antlr4Parser, tokenId, AMPERSAND)) {
Error() << "Unsupported binary operation token: " << tokenId;
return {};
}
opName = "BitAnd";
- Ctx.IncrementMonCounter("sql_binary_operations", "BitAnd");
+ Ctx_.IncrementMonCounter("sql_binary_operations", "BitAnd");
break;
}
case TRule_neq_subexpr_TBlock2_TBlock1::kAlt6: {
Token(begin->GetBlock1().GetAlt6().GetToken1());
auto tokenId = begin->GetBlock1().GetAlt6().GetToken1().GetId();
- if (!IS_TOKEN(Ctx.Settings.Antlr4Parser, tokenId, PIPE)) {
+ if (!IS_TOKEN(Ctx_.Settings.Antlr4Parser, tokenId, PIPE)) {
Error() << "Unsupported binary operation token: " << tokenId;
return {};
}
opName = "BitOr";
- Ctx.IncrementMonCounter("sql_binary_operations", "BitOr");
+ Ctx_.IncrementMonCounter("sql_binary_operations", "BitOr");
break;
}
case TRule_neq_subexpr_TBlock2_TBlock1::kAlt7: {
Token(begin->GetBlock1().GetAlt7().GetToken1());
auto tokenId = begin->GetBlock1().GetAlt7().GetToken1().GetId();
- if (!IS_TOKEN(Ctx.Settings.Antlr4Parser, tokenId, CARET)) {
+ if (!IS_TOKEN(Ctx_.Settings.Antlr4Parser, tokenId, CARET)) {
Error() << "Unsupported binary operation token: " << tokenId;
return {};
}
opName = "BitXor";
- Ctx.IncrementMonCounter("sql_binary_operations", "BitXor");
+ Ctx_.IncrementMonCounter("sql_binary_operations", "BitXor");
break;
}
case TRule_neq_subexpr_TBlock2_TBlock1::ALT_NOT_SET:
Y_ABORT("You should change implementation according to grammar changes");
}
- partialResult = BuildBinaryOp(Ctx, Ctx.Pos(), opName, partialResult, SubExpr(getNode(*begin), (begin + 1 == end) ? tail : TTrailingQuestions{}));
+ partialResult = BuildBinaryOp(Ctx_, Ctx_.Pos(), opName, partialResult, SubExpr(getNode(*begin), (begin + 1 == end) ? tail : TTrailingQuestions{}));
++begin;
}
@@ -2207,67 +2207,67 @@ TNodePtr TSqlExpression::BinOpList(const TRule_bit_subexpr& node, TGetNode getNo
template <typename TGetNode, typename TIter>
TNodePtr TSqlExpression::BinOpList(const TRule_eq_subexpr& node, TGetNode getNode, TIter begin, TIter end, const TTrailingQuestions& tail) {
- MaybeUnnamedSmartParenOnTop = MaybeUnnamedSmartParenOnTop && (begin == end);
+ MaybeUnnamedSmartParenOnTop_ = MaybeUnnamedSmartParenOnTop_ && (begin == end);
TNodePtr partialResult = SubExpr(node, (begin == end) ? tail : TTrailingQuestions{});
while (begin != end) {
- Ctx.IncrementMonCounter("sql_features", "BinaryOperation");
+ Ctx_.IncrementMonCounter("sql_features", "BinaryOperation");
TString opName;
switch (begin->GetBlock1().Alt_case()) {
case TRule_cond_expr::TAlt5::TBlock1::TBlock1::kAlt1: {
Token(begin->GetBlock1().GetAlt1().GetToken1());
auto tokenId = begin->GetBlock1().GetAlt1().GetToken1().GetId();
- if (!IS_TOKEN(Ctx.Settings.Antlr4Parser, tokenId, EQUALS)) {
+ if (!IS_TOKEN(Ctx_.Settings.Antlr4Parser, tokenId, EQUALS)) {
Error() << "Unsupported binary operation token: " << tokenId;
return {};
}
- Ctx.IncrementMonCounter("sql_binary_operations", "Equals");
+ Ctx_.IncrementMonCounter("sql_binary_operations", "Equals");
opName = "==";
break;
}
case TRule_cond_expr::TAlt5::TBlock1::TBlock1::kAlt2: {
Token(begin->GetBlock1().GetAlt2().GetToken1());
auto tokenId = begin->GetBlock1().GetAlt2().GetToken1().GetId();
- if (!IS_TOKEN(Ctx.Settings.Antlr4Parser, tokenId, EQUALS2)) {
+ if (!IS_TOKEN(Ctx_.Settings.Antlr4Parser, tokenId, EQUALS2)) {
Error() << "Unsupported binary operation token: " << tokenId;
return {};
}
- Ctx.IncrementMonCounter("sql_binary_operations", "Equals2");
+ Ctx_.IncrementMonCounter("sql_binary_operations", "Equals2");
opName = "==";
break;
}
case TRule_cond_expr::TAlt5::TBlock1::TBlock1::kAlt3: {
Token(begin->GetBlock1().GetAlt3().GetToken1());
auto tokenId = begin->GetBlock1().GetAlt3().GetToken1().GetId();
- if (!IS_TOKEN(Ctx.Settings.Antlr4Parser, tokenId, NOT_EQUALS)) {
+ if (!IS_TOKEN(Ctx_.Settings.Antlr4Parser, tokenId, NOT_EQUALS)) {
Error() << "Unsupported binary operation token: " << tokenId;
return {};
}
- Ctx.IncrementMonCounter("sql_binary_operations", "NotEquals");
+ Ctx_.IncrementMonCounter("sql_binary_operations", "NotEquals");
opName = "!=";
break;
}
case TRule_cond_expr::TAlt5::TBlock1::TBlock1::kAlt4: {
Token(begin->GetBlock1().GetAlt4().GetToken1());
auto tokenId = begin->GetBlock1().GetAlt4().GetToken1().GetId();
- if (!IS_TOKEN(Ctx.Settings.Antlr4Parser, tokenId, NOT_EQUALS2)) {
+ if (!IS_TOKEN(Ctx_.Settings.Antlr4Parser, tokenId, NOT_EQUALS2)) {
Error() << "Unsupported binary operation token: " << tokenId;
return {};
}
- Ctx.IncrementMonCounter("sql_binary_operations", "NotEquals2");
+ Ctx_.IncrementMonCounter("sql_binary_operations", "NotEquals2");
opName = "!=";
break;
}
case TRule_cond_expr::TAlt5::TBlock1::TBlock1::kAlt5: {
Token(begin->GetBlock1().GetAlt5().GetRule_distinct_from_op1().GetToken1());
opName = begin->GetBlock1().GetAlt5().GetRule_distinct_from_op1().HasBlock2() ? "IsNotDistinctFrom" : "IsDistinctFrom";
- Ctx.IncrementMonCounter("sql_binary_operations", opName);
+ Ctx_.IncrementMonCounter("sql_binary_operations", opName);
break;
}
case TRule_cond_expr::TAlt5::TBlock1::TBlock1::ALT_NOT_SET:
Y_ABORT("You should change implementation according to grammar changes");
}
- partialResult = BuildBinaryOp(Ctx, Ctx.Pos(), opName, partialResult, SubExpr(getNode(*begin), (begin + 1 == end) ? tail : TTrailingQuestions{}));
+ partialResult = BuildBinaryOp(Ctx_, Ctx_.Pos(), opName, partialResult, SubExpr(getNode(*begin), (begin + 1 == end) ? tail : TTrailingQuestions{}));
++begin;
}
@@ -2275,7 +2275,7 @@ TNodePtr TSqlExpression::BinOpList(const TRule_eq_subexpr& node, TGetNode getNod
}
TNodePtr TSqlExpression::SqlInExpr(const TRule_in_expr& node, const TTrailingQuestions& tail) {
- TSqlExpression expr(Ctx, Mode);
+ TSqlExpression expr(Ctx_, Mode_);
expr.SetSmartParenthesisMode(TSqlExpression::ESmartParenthesis::InStatement);
auto result = expr.UnaryExpr(node.GetRule_in_unary_subexpr1(), tail);
return result;
@@ -2284,11 +2284,11 @@ TNodePtr TSqlExpression::SqlInExpr(const TRule_in_expr& node, const TTrailingQue
TNodePtr TSqlExpression::SmartParenthesis(const TRule_smart_parenthesis& node) {
TVector<TNodePtr> exprs;
Token(node.GetToken1());
- const TPosition pos(Ctx.Pos());
+ const TPosition pos(Ctx_.Pos());
const bool isTuple = node.HasBlock3();
- bool expectTuple = SmartParenthesisMode == ESmartParenthesis::InStatement;
+ bool expectTuple = SmartParenthesisMode_ == ESmartParenthesis::InStatement;
EExpr mode = EExpr::Regular;
- if (SmartParenthesisMode == ESmartParenthesis::SqlLambdaParams) {
+ if (SmartParenthesisMode_ == ESmartParenthesis::SqlLambdaParams) {
mode = EExpr::SqlLambdaParams;
expectTuple = true;
}
@@ -2296,7 +2296,7 @@ TNodePtr TSqlExpression::SmartParenthesis(const TRule_smart_parenthesis& node) {
return {};
}
- bool topLevelGroupBy = MaybeUnnamedSmartParenOnTop && SmartParenthesisMode == ESmartParenthesis::GroupBy;
+ bool topLevelGroupBy = MaybeUnnamedSmartParenOnTop_ && SmartParenthesisMode_ == ESmartParenthesis::GroupBy;
bool hasAliases = false;
bool hasUnnamed = false;
@@ -2307,8 +2307,8 @@ TNodePtr TSqlExpression::SmartParenthesis(const TRule_smart_parenthesis& node) {
hasUnnamed = true;
}
if (hasAliases && hasUnnamed && !topLevelGroupBy) {
- Ctx.IncrementMonCounter("sql_errors", "AnonymousStructMembers");
- Ctx.Error(pos) << "Structure does not allow anonymous members";
+ Ctx_.IncrementMonCounter("sql_errors", "AnonymousStructMembers");
+ Ctx_.Error(pos) << "Structure does not allow anonymous members";
return nullptr;
}
}
@@ -2317,15 +2317,15 @@ TNodePtr TSqlExpression::SmartParenthesis(const TRule_smart_parenthesis& node) {
}
if (topLevelGroupBy) {
if (isTuple) {
- Ctx.IncrementMonCounter("sql_errors", "SimpleTupleInGroupBy");
+ Ctx_.IncrementMonCounter("sql_errors", "SimpleTupleInGroupBy");
Token(node.GetBlock3().GetToken1());
- Ctx.Error() << "Unexpected trailing comma in grouping elements list";
+ Ctx_.Error() << "Unexpected trailing comma in grouping elements list";
return nullptr;
}
- Ctx.IncrementMonCounter("sql_features", "ListOfNamedNode");
+ Ctx_.IncrementMonCounter("sql_features", "ListOfNamedNode");
return BuildListOfNamedNodes(pos, std::move(exprs));
}
- Ctx.IncrementMonCounter("sql_features", hasUnnamed ? "SimpleTuple" : "SimpleStruct");
+ Ctx_.IncrementMonCounter("sql_features", hasUnnamed ? "SimpleTuple" : "SimpleStruct");
return (hasUnnamed || expectTuple || exprs.size() == 0) ? BuildTuple(pos, exprs) : BuildStructure(pos, exprs);
}
diff --git a/yql/essentials/sql/v1/sql_expression.h b/yql/essentials/sql/v1/sql_expression.h
index adcf44b11b6..794f5c5db3f 100644
--- a/yql/essentials/sql/v1/sql_expression.h
+++ b/yql/essentials/sql/v1/sql_expression.h
@@ -25,11 +25,11 @@ public:
TNodePtr Build(const TRule_lambda_or_parameter& node);
void SetSmartParenthesisMode(ESmartParenthesis mode) {
- SmartParenthesisMode = mode;
+ SmartParenthesisMode_ = mode;
}
void MarkAsNamed() {
- MaybeUnnamedSmartParenOnTop = false;
+ MaybeUnnamedSmartParenOnTop_ = false;
}
TMaybe<TExprOrIdent> LiteralExpr(const TRule_literal_value& node);
@@ -77,7 +77,7 @@ private:
bool SqlLambdaExprBody(TContext& ctx, const TRule_expr& node, TVector<TNodePtr>& exprSeq);
TNodePtr KeyExpr(const TRule_key_expr& node) {
- TSqlExpression expr(Ctx, Mode);
+ TSqlExpression expr(Ctx_, Mode_);
return expr.Build(node.GetRule_expr2());
}
@@ -124,15 +124,15 @@ private:
void UnexpectedQuestionToken(const TTrailingQuestions& tail) {
YQL_ENSURE(tail.Count > 0);
- Ctx.Error(tail.Pos) << "Unexpected token '?' at the end of expression";
+ Ctx_.Error(tail.Pos) << "Unexpected token '?' at the end of expression";
}
TNodePtr SmartParenthesis(const TRule_smart_parenthesis& node);
- ESmartParenthesis SmartParenthesisMode = ESmartParenthesis::Default;
- bool MaybeUnnamedSmartParenOnTop = true;
+ ESmartParenthesis SmartParenthesisMode_ = ESmartParenthesis::Default;
+ bool MaybeUnnamedSmartParenOnTop_ = true;
- THashMap<TString, TNodePtr> ExprShortcuts;
+ THashMap<TString, TNodePtr> ExprShortcuts_;
};
bool ChangefeedSettingsEntry(const TRule_changefeed_settings_entry& node, TSqlExpression& ctx, TChangefeedSettings& settings, bool alter);
diff --git a/yql/essentials/sql/v1/sql_group_by.cpp b/yql/essentials/sql/v1/sql_group_by.cpp
index 46ae8ee52a8..348ce2471b8 100644
--- a/yql/essentials/sql/v1/sql_group_by.cpp
+++ b/yql/essentials/sql/v1/sql_group_by.cpp
@@ -11,19 +11,19 @@ const TString TGroupByClause::AutogenerateNamePrefix = "group";
bool TGroupByClause::Build(const TRule_group_by_clause& node) {
// group_by_clause: GROUP COMPACT? BY opt_set_quantifier grouping_element_list (WITH an_id)?;
- if (Ctx.CompactGroupBy.Defined()) {
- CompactGroupBy = *Ctx.CompactGroupBy;
+ if (Ctx_.CompactGroupBy.Defined()) {
+ CompactGroupBy_ = *Ctx_.CompactGroupBy;
} else {
- CompactGroupBy = node.HasBlock2();
- if (!CompactGroupBy) {
- auto hints = Ctx.PullHintForToken(Ctx.TokenPosition(node.GetToken1()));
- CompactGroupBy = AnyOf(hints, [](const NSQLTranslation::TSQLHint& hint) { return to_lower(hint.Name) == "compact"; });
+ CompactGroupBy_ = node.HasBlock2();
+ if (!CompactGroupBy_) {
+ auto hints = Ctx_.PullHintForToken(Ctx_.TokenPosition(node.GetToken1()));
+ CompactGroupBy_ = AnyOf(hints, [](const NSQLTranslation::TSQLHint& hint) { return to_lower(hint.Name) == "compact"; });
}
}
TPosition distinctPos;
if (IsDistinctOptSet(node.GetRule_opt_set_quantifier4(), distinctPos)) {
- Ctx.Error(distinctPos) << "DISTINCT is not supported in GROUP BY clause yet!";
- Ctx.IncrementMonCounter("sql_errors", "DistinctInGroupByNotSupported");
+ Ctx_.Error(distinctPos) << "DISTINCT is not supported in GROUP BY clause yet!";
+ Ctx_.IncrementMonCounter("sql_errors", "DistinctInGroupByNotSupported");
return false;
}
if (!ParseList(node.GetRule_grouping_element_list5(), EGroupByFeatures::Ordinary)) {
@@ -32,28 +32,28 @@ bool TGroupByClause::Build(const TRule_group_by_clause& node) {
if (node.HasBlock6()) {
TString mode = Id(node.GetBlock6().GetRule_an_id2(), *this);
- TMaybe<TIssue> normalizeError = NormalizeName(Ctx.Pos(), mode);
+ TMaybe<TIssue> normalizeError = NormalizeName(Ctx_.Pos(), mode);
if (!normalizeError.Empty()) {
Error() << normalizeError->GetMessage();
- Ctx.IncrementMonCounter("sql_errors", "NormalizeGroupByModeError");
+ Ctx_.IncrementMonCounter("sql_errors", "NormalizeGroupByModeError");
return false;
}
if (mode == "combine") {
- Suffix = "Combine";
+ Suffix_ = "Combine";
} else if (mode == "combinestate") {
- Suffix = "CombineState";
+ Suffix_ = "CombineState";
} else if (mode == "mergestate") {
- Suffix = "MergeState";
+ Suffix_ = "MergeState";
} else if (mode == "finalize") {
- Suffix = "Finalize";
+ Suffix_ = "Finalize";
} else if (mode == "mergefinalize") {
- Suffix = "MergeFinalize";
+ Suffix_ = "MergeFinalize";
} else if (mode == "mergemanyfinalize") {
- Suffix = "MergeManyFinalize";
+ Suffix_ = "MergeManyFinalize";
} else {
- Ctx.Error() << "Unsupported group by mode: " << mode;
- Ctx.IncrementMonCounter("sql_errors", "GroupByModeUnknown");
+ Ctx_.Error() << "Unsupported group by mode: " << mode;
+ Ctx_.IncrementMonCounter("sql_errors", "GroupByModeUnknown");
return false;
}
}
@@ -77,46 +77,46 @@ bool TGroupByClause::ParseList(const TRule_grouping_element_list& groupingListNo
}
void TGroupByClause::SetFeatures(const TString& field) const {
- Ctx.IncrementMonCounter(field, "GroupBy");
+ Ctx_.IncrementMonCounter(field, "GroupBy");
const auto& features = Features();
if (features.Test(EGroupByFeatures::Ordinary)) {
- Ctx.IncrementMonCounter(field, "GroupByOrdinary");
+ Ctx_.IncrementMonCounter(field, "GroupByOrdinary");
}
if (features.Test(EGroupByFeatures::Expression)) {
- Ctx.IncrementMonCounter(field, "GroupByExpression");
+ Ctx_.IncrementMonCounter(field, "GroupByExpression");
}
if (features.Test(EGroupByFeatures::Rollup)) {
- Ctx.IncrementMonCounter(field, "GroupByRollup");
+ Ctx_.IncrementMonCounter(field, "GroupByRollup");
}
if (features.Test(EGroupByFeatures::Cube)) {
- Ctx.IncrementMonCounter(field, "GroupByCube");
+ Ctx_.IncrementMonCounter(field, "GroupByCube");
}
if (features.Test(EGroupByFeatures::GroupingSet)) {
- Ctx.IncrementMonCounter(field, "GroupByGroupingSet");
+ Ctx_.IncrementMonCounter(field, "GroupByGroupingSet");
}
if (features.Test(EGroupByFeatures::Empty)) {
- Ctx.IncrementMonCounter(field, "GroupByEmpty");
+ Ctx_.IncrementMonCounter(field, "GroupByEmpty");
}
}
TVector<TNodePtr>& TGroupByClause::Content() {
- return GroupBySet;
+ return GroupBySet_;
}
TMap<TString, TNodePtr>& TGroupByClause::Aliases() {
- return GroupSetContext->NodeAliases;
+ return GroupSetContext_->NodeAliases;
}
TLegacyHoppingWindowSpecPtr TGroupByClause::GetLegacyHoppingWindow() const {
- return LegacyHoppingWindowSpec;
+ return LegacyHoppingWindowSpec_;
}
bool TGroupByClause::IsCompactGroupBy() const {
- return CompactGroupBy;
+ return CompactGroupBy_;
}
TString TGroupByClause::GetSuffix() const {
- return Suffix;
+ return Suffix_;
}
TMaybe<TVector<TNodePtr>> TGroupByClause::MultiplyGroupingSets(const TVector<TNodePtr>& lhs, const TVector<TNodePtr>& rhs) const {
@@ -125,7 +125,7 @@ TMaybe<TVector<TNodePtr>> TGroupByClause::MultiplyGroupingSets(const TVector<TNo
auto leftPtr = leftNode->ContentListPtr();
if (!leftPtr) {
// TODO: shouldn't happen
- Ctx.Error() << "Unable to multiply grouping sets";
+ Ctx_.Error() << "Unable to multiply grouping sets";
return {};
}
for (const auto& rightNode: rhs) {
@@ -133,34 +133,34 @@ TMaybe<TVector<TNodePtr>> TGroupByClause::MultiplyGroupingSets(const TVector<TNo
auto rightPtr = rightNode->ContentListPtr();
if (!rightPtr) {
// TODO: shouldn't happen
- Ctx.Error() << "Unable to multiply grouping sets";
+ Ctx_.Error() << "Unable to multiply grouping sets";
return {};
}
mulItem.insert(mulItem.end(), rightPtr->begin(), rightPtr->end());
- content.push_back(BuildListOfNamedNodes(Ctx.Pos(), std::move(mulItem)));
+ content.push_back(BuildListOfNamedNodes(Ctx_.Pos(), std::move(mulItem)));
}
}
return content;
}
bool TGroupByClause::ResolveGroupByAndGrouping() {
- auto listPos = std::find_if(GroupBySet.begin(), GroupBySet.end(), [](const TNodePtr& node) {
+ auto listPos = std::find_if(GroupBySet_.begin(), GroupBySet_.end(), [](const TNodePtr& node) {
return node->ContentListPtr();
});
- if (listPos == GroupBySet.end()) {
+ if (listPos == GroupBySet_.end()) {
return true;
}
auto curContent = *(*listPos)->ContentListPtr();
- if (listPos != GroupBySet.begin()) {
- TVector<TNodePtr> emulate(GroupBySet.begin(), listPos);
- TVector<TNodePtr> emulateContent(1, BuildListOfNamedNodes(Ctx.Pos(), std::move(emulate)));
+ if (listPos != GroupBySet_.begin()) {
+ TVector<TNodePtr> emulate(GroupBySet_.begin(), listPos);
+ TVector<TNodePtr> emulateContent(1, BuildListOfNamedNodes(Ctx_.Pos(), std::move(emulate)));
auto mult = MultiplyGroupingSets(emulateContent, curContent);
if (!mult) {
return false;
}
curContent = *mult;
}
- for (++listPos; listPos != GroupBySet.end(); ++listPos) {
+ for (++listPos; listPos != GroupBySet_.end(); ++listPos) {
auto newElem = (*listPos)->ContentListPtr();
if (newElem) {
auto mult = MultiplyGroupingSets(curContent, *newElem);
@@ -170,7 +170,7 @@ bool TGroupByClause::ResolveGroupByAndGrouping() {
curContent = *mult;
} else {
TVector<TNodePtr> emulate(1, *listPos);
- TVector<TNodePtr> emulateContent(1, BuildListOfNamedNodes(Ctx.Pos(), std::move(emulate)));
+ TVector<TNodePtr> emulateContent(1, BuildListOfNamedNodes(Ctx_.Pos(), std::move(emulate)));
auto mult = MultiplyGroupingSets(curContent, emulateContent);
if (!mult) {
return false;
@@ -178,8 +178,8 @@ bool TGroupByClause::ResolveGroupByAndGrouping() {
curContent = *mult;
}
}
- TVector<TNodePtr> result(1, BuildListOfNamedNodes(Ctx.Pos(), std::move(curContent)));
- std::swap(result, GroupBySet);
+ TVector<TNodePtr> result(1, BuildListOfNamedNodes(Ctx_.Pos(), std::move(curContent)));
+ std::swap(result, GroupBySet_);
return true;
}
@@ -194,7 +194,7 @@ bool TGroupByClause::GroupingElement(const TRule_grouping_element& node, EGroupB
Features().Set(EGroupByFeatures::Ordinary);
break;
case TRule_grouping_element::kAltGroupingElement2: {
- TGroupByClause subClause(Ctx, Mode, GroupSetContext);
+ TGroupByClause subClause(Ctx_, Mode_, GroupSetContext_);
if (!subClause.OrdinaryGroupingSetList(node.GetAlt_grouping_element2().GetRule_rollup_list1().GetRule_ordinary_grouping_set_list3(),
EGroupByFeatures::Rollup))
{
@@ -204,24 +204,24 @@ bool TGroupByClause::GroupingElement(const TRule_grouping_element& node, EGroupB
TVector<TNodePtr> collection;
for (auto limit = content.end(), begin = content.begin(); limit != begin; --limit) {
TVector<TNodePtr> grouping(begin, limit);
- collection.push_back(BuildListOfNamedNodes(Ctx.Pos(), std::move(grouping)));
+ collection.push_back(BuildListOfNamedNodes(Ctx_.Pos(), std::move(grouping)));
}
- collection.push_back(BuildListOfNamedNodes(Ctx.Pos(), std::move(emptyContent)));
- GroupBySet.push_back(BuildListOfNamedNodes(Ctx.Pos(), std::move(collection)));
- Ctx.IncrementMonCounter("sql_features", TStringBuilder() << "GroupByRollup" << content.size());
+ collection.push_back(BuildListOfNamedNodes(Ctx_.Pos(), std::move(emptyContent)));
+ GroupBySet_.push_back(BuildListOfNamedNodes(Ctx_.Pos(), std::move(collection)));
+ Ctx_.IncrementMonCounter("sql_features", TStringBuilder() << "GroupByRollup" << content.size());
Features().Set(EGroupByFeatures::Rollup);
break;
}
case TRule_grouping_element::kAltGroupingElement3: {
- TGroupByClause subClause(Ctx, Mode, GroupSetContext);
+ TGroupByClause subClause(Ctx_, Mode_, GroupSetContext_);
if (!subClause.OrdinaryGroupingSetList(node.GetAlt_grouping_element3().GetRule_cube_list1().GetRule_ordinary_grouping_set_list3(),
EGroupByFeatures::Cube))
{
return false;
}
auto& content = subClause.Content();
- if (content.size() > Ctx.PragmaGroupByCubeLimit) {
- Ctx.Error() << "GROUP BY CUBE is allowed only for " << Ctx.PragmaGroupByCubeLimit << " columns, but you use " << content.size();
+ if (content.size() > Ctx_.PragmaGroupByCubeLimit) {
+ Ctx_.Error() << "GROUP BY CUBE is allowed only for " << Ctx_.PragmaGroupByCubeLimit << " columns, but you use " << content.size();
return false;
}
TVector<TNodePtr> collection;
@@ -232,17 +232,17 @@ bool TGroupByClause::GroupingElement(const TRule_grouping_element& node, EGroupB
grouping.push_back(content[content.size() - index - 1]);
}
}
- collection.push_back(BuildListOfNamedNodes(Ctx.Pos(), std::move(grouping)));
+ collection.push_back(BuildListOfNamedNodes(Ctx_.Pos(), std::move(grouping)));
}
- collection.push_back(BuildListOfNamedNodes(Ctx.Pos(), std::move(emptyContent)));
- GroupBySet.push_back(BuildListOfNamedNodes(Ctx.Pos(), std::move(collection)));
- Ctx.IncrementMonCounter("sql_features", TStringBuilder() << "GroupByCube" << content.size());
+ collection.push_back(BuildListOfNamedNodes(Ctx_.Pos(), std::move(emptyContent)));
+ GroupBySet_.push_back(BuildListOfNamedNodes(Ctx_.Pos(), std::move(collection)));
+ Ctx_.IncrementMonCounter("sql_features", TStringBuilder() << "GroupByCube" << content.size());
Features().Set(EGroupByFeatures::Cube);
break;
}
case TRule_grouping_element::kAltGroupingElement4: {
auto listNode = node.GetAlt_grouping_element4().GetRule_grouping_sets_specification1().GetRule_grouping_element_list4();
- TGroupByClause subClause(Ctx, Mode, GroupSetContext);
+ TGroupByClause subClause(Ctx_, Mode_, GroupSetContext_);
if (!subClause.ParseList(listNode, EGroupByFeatures::GroupingSet)) {
return false;
}
@@ -261,10 +261,10 @@ bool TGroupByClause::GroupingElement(const TRule_grouping_element& node, EGroupB
}
} else {
TVector<TNodePtr> elemList(1, std::move(elem));
- collection.push_back(BuildListOfNamedNodes(Ctx.Pos(), std::move(elemList)));
+ collection.push_back(BuildListOfNamedNodes(Ctx_.Pos(), std::move(elemList)));
}
}
- GroupBySet.push_back(BuildListOfNamedNodes(Ctx.Pos(), std::move(collection)));
+ GroupBySet_.push_back(BuildListOfNamedNodes(Ctx_.Pos(), std::move(collection)));
Features().Set(EGroupByFeatures::GroupingSet);
break;
}
@@ -294,7 +294,7 @@ void TGroupByClause::FeedCollection(const TNodePtr& elem, TVector<TNodePtr>& col
bool TGroupByClause::OrdinaryGroupingSet(const TRule_ordinary_grouping_set& node, EGroupByFeatures featureContext) {
TNodePtr namedExprNode;
{
- TColumnRefScope scope(Ctx, EColumnRefState::Allow);
+ TColumnRefScope scope(Ctx_, EColumnRefState::Allow);
namedExprNode = NamedExpr(node.GetRule_named_expr1(), EExpr::GroupBy);
}
if (!namedExprNode) {
@@ -304,8 +304,8 @@ bool TGroupByClause::OrdinaryGroupingSet(const TRule_ordinary_grouping_set& node
auto contentPtr = namedExprNode->ContentListPtr();
if (contentPtr) {
if (nodeLabel && (contentPtr->size() != 1 || contentPtr->front()->GetLabel())) {
- Ctx.Error() << "Unable to use aliases for list of named expressions";
- Ctx.IncrementMonCounter("sql_errors", "GroupByAliasForListOfExpressions");
+ Ctx_.Error() << "Unable to use aliases for list of named expressions";
+ Ctx_.IncrementMonCounter("sql_errors", "GroupByAliasForListOfExpressions");
return false;
}
for (auto& content: *contentPtr) {
@@ -345,7 +345,7 @@ bool TGroupByClause::OrdinaryGroupingSet(const TRule_ordinary_grouping_set& node
namedExprNode = BuildColumn(namedExprNode->GetPos(), nodeLabel);
}
}
- GroupBySet.emplace_back(std::move(namedExprNode));
+ GroupBySet_.emplace_back(std::move(namedExprNode));
return true;
}
@@ -362,21 +362,21 @@ bool TGroupByClause::OrdinaryGroupingSetList(const TRule_ordinary_grouping_set_l
}
bool TGroupByClause::HoppingWindow(const TRule_hopping_window_specification& node) {
- if (LegacyHoppingWindowSpec) {
- Ctx.Error() << "Duplicate hopping window specification.";
+ if (LegacyHoppingWindowSpec_) {
+ Ctx_.Error() << "Duplicate hopping window specification.";
return false;
}
- LegacyHoppingWindowSpec = new TLegacyHoppingWindowSpec;
+ LegacyHoppingWindowSpec_ = new TLegacyHoppingWindowSpec;
{
- TColumnRefScope scope(Ctx, EColumnRefState::Allow);
- TSqlExpression expr(Ctx, Mode);
- LegacyHoppingWindowSpec->TimeExtractor = expr.Build(node.GetRule_expr3());
- if (!LegacyHoppingWindowSpec->TimeExtractor) {
+ TColumnRefScope scope(Ctx_, EColumnRefState::Allow);
+ TSqlExpression expr(Ctx_, Mode_);
+ LegacyHoppingWindowSpec_->TimeExtractor = expr.Build(node.GetRule_expr3());
+ if (!LegacyHoppingWindowSpec_->TimeExtractor) {
return false;
}
}
auto processIntervalParam = [&] (const TRule_expr& rule) -> TNodePtr {
- TSqlExpression expr(Ctx, Mode);
+ TSqlExpression expr(Ctx_, Mode_);
auto node = expr.Build(rule);
if (!node) {
return nullptr;
@@ -384,45 +384,45 @@ bool TGroupByClause::HoppingWindow(const TRule_hopping_window_specification& nod
auto literal = node->GetLiteral("String");
if (!literal) {
- return new TAstListNodeImpl(Ctx.Pos(), {
- new TAstAtomNodeImpl(Ctx.Pos(), "EvaluateExpr", TNodeFlags::Default),
+ return new TAstListNodeImpl(Ctx_.Pos(), {
+ new TAstAtomNodeImpl(Ctx_.Pos(), "EvaluateExpr", TNodeFlags::Default),
node
});
}
const auto out = NKikimr::NMiniKQL::ValueFromString(NKikimr::NUdf::EDataSlot::Interval, *literal);
if (!out) {
- Ctx.Error(node->GetPos()) << "Expected interval in ISO 8601 format";
+ Ctx_.Error(node->GetPos()) << "Expected interval in ISO 8601 format";
return nullptr;
}
if ('T' == literal->back()) {
- Ctx.Error(node->GetPos()) << "Time prefix 'T' at end of interval constant. The designator 'T' shall be absent if all of the time components are absent.";
+ Ctx_.Error(node->GetPos()) << "Time prefix 'T' at end of interval constant. The designator 'T' shall be absent if all of the time components are absent.";
return nullptr;
}
- return new TAstListNodeImpl(Ctx.Pos(), {
- new TAstAtomNodeImpl(Ctx.Pos(), "Interval", TNodeFlags::Default),
- new TAstListNodeImpl(Ctx.Pos(), {
- new TAstAtomNodeImpl(Ctx.Pos(), "quote", TNodeFlags::Default),
- new TAstAtomNodeImpl(Ctx.Pos(), ToString(out.Get<i64>()), TNodeFlags::Default)
+ return new TAstListNodeImpl(Ctx_.Pos(), {
+ new TAstAtomNodeImpl(Ctx_.Pos(), "Interval", TNodeFlags::Default),
+ new TAstListNodeImpl(Ctx_.Pos(), {
+ new TAstAtomNodeImpl(Ctx_.Pos(), "quote", TNodeFlags::Default),
+ new TAstAtomNodeImpl(Ctx_.Pos(), ToString(out.Get<i64>()), TNodeFlags::Default)
})
});
};
- LegacyHoppingWindowSpec->Hop = processIntervalParam(node.GetRule_expr5());
- if (!LegacyHoppingWindowSpec->Hop) {
+ LegacyHoppingWindowSpec_->Hop = processIntervalParam(node.GetRule_expr5());
+ if (!LegacyHoppingWindowSpec_->Hop) {
return false;
}
- LegacyHoppingWindowSpec->Interval = processIntervalParam(node.GetRule_expr7());
- if (!LegacyHoppingWindowSpec->Interval) {
+ LegacyHoppingWindowSpec_->Interval = processIntervalParam(node.GetRule_expr7());
+ if (!LegacyHoppingWindowSpec_->Interval) {
return false;
}
- LegacyHoppingWindowSpec->Delay = processIntervalParam(node.GetRule_expr9());
- if (!LegacyHoppingWindowSpec->Delay) {
+ LegacyHoppingWindowSpec_->Delay = processIntervalParam(node.GetRule_expr9());
+ if (!LegacyHoppingWindowSpec_->Delay) {
return false;
}
- LegacyHoppingWindowSpec->DataWatermarks = Ctx.PragmaDataWatermarks;
+ LegacyHoppingWindowSpec_->DataWatermarks = Ctx_.PragmaDataWatermarks;
return true;
}
@@ -445,23 +445,23 @@ bool TGroupByClause::AllowUnnamed(TPosition pos, EGroupByFeatures featureContext
YQL_ENSURE(false, "Unknown feature");
}
- Ctx.Error(pos) << "Unnamed expressions are not supported in " << feature << ". Please use '<expr> AS <name>'.";
- Ctx.IncrementMonCounter("sql_errors", "GroupBySetNoAliasOrColumn");
+ Ctx_.Error(pos) << "Unnamed expressions are not supported in " << feature << ". Please use '<expr> AS <name>'.";
+ Ctx_.IncrementMonCounter("sql_errors", "GroupBySetNoAliasOrColumn");
return false;
}
TGroupByClause::TGroupingSetFeatures& TGroupByClause::Features() {
- return GroupSetContext->GroupFeatures;
+ return GroupSetContext_->GroupFeatures;
}
const TGroupByClause::TGroupingSetFeatures& TGroupByClause::Features() const {
- return GroupSetContext->GroupFeatures;
+ return GroupSetContext_->GroupFeatures;
}
bool TGroupByClause::AddAlias(const TString& label, const TNodePtr& node) {
if (Aliases().contains(label)) {
- Ctx.Error() << "Duplicated aliases not allowed";
- Ctx.IncrementMonCounter("sql_errors", "GroupByDuplicateAliases");
+ Ctx_.Error() << "Duplicated aliases not allowed";
+ Ctx_.IncrementMonCounter("sql_errors", "GroupByDuplicateAliases");
return false;
}
Aliases().emplace(label, node);
@@ -469,7 +469,7 @@ bool TGroupByClause::AddAlias(const TString& label, const TNodePtr& node) {
}
TString TGroupByClause::GenerateGroupByExprName() {
- return TStringBuilder() << AutogenerateNamePrefix << GroupSetContext->UnnamedCount++;
+ return TStringBuilder() << AutogenerateNamePrefix << GroupSetContext_->UnnamedCount++;
}
} // namespace NSQLTranslationV1
diff --git a/yql/essentials/sql/v1/sql_group_by.h b/yql/essentials/sql/v1/sql_group_by.h
index 83e602596c6..4eda3447d32 100644
--- a/yql/essentials/sql/v1/sql_group_by.h
+++ b/yql/essentials/sql/v1/sql_group_by.h
@@ -31,8 +31,8 @@ class TGroupByClause: public TSqlTranslation {
public:
TGroupByClause(TContext& ctx, NSQLTranslation::ESqlMode mode, TGroupByClauseCtx::TPtr groupSetContext = {})
: TSqlTranslation(ctx, mode)
- , GroupSetContext(groupSetContext ? groupSetContext : TGroupByClauseCtx::TPtr(new TGroupByClauseCtx()))
- , CompactGroupBy(false)
+ , GroupSetContext_(groupSetContext ? groupSetContext : TGroupByClauseCtx::TPtr(new TGroupByClauseCtx()))
+ , CompactGroupBy_(false)
{}
bool Build(const TRule_group_by_clause& node);
@@ -62,12 +62,12 @@ private:
TString GenerateGroupByExprName();
bool IsAutogenerated(const TString* name) const;
- TVector<TNodePtr> GroupBySet;
- TGroupByClauseCtx::TPtr GroupSetContext;
- TLegacyHoppingWindowSpecPtr LegacyHoppingWindowSpec; // stream queries
+ TVector<TNodePtr> GroupBySet_;
+ TGroupByClauseCtx::TPtr GroupSetContext_;
+ TLegacyHoppingWindowSpecPtr LegacyHoppingWindowSpec_; // stream queries
static const TString AutogenerateNamePrefix;
- bool CompactGroupBy;
- TString Suffix;
+ bool CompactGroupBy_;
+ TString Suffix_;
};
} // namespace NSQLTranslationV1
diff --git a/yql/essentials/sql/v1/sql_into_tables.cpp b/yql/essentials/sql/v1/sql_into_tables.cpp
index ff7dd271cd3..c4b4fd0c21a 100644
--- a/yql/essentials/sql/v1/sql_into_tables.cpp
+++ b/yql/essentials/sql/v1/sql_into_tables.cpp
@@ -79,15 +79,15 @@ TNodePtr TSqlIntoTable::Build(const TRule_into_table_stmt& node) {
modeStrings.push_back("Into");
userModeStrings.push_back("INTO");
- SqlIntoModeStr = JoinRange("", modeStrings.begin(), modeStrings.end());
- SqlIntoUserModeStr = JoinRange(" ", userModeStrings.begin(), userModeStrings.end());
+ SqlIntoModeStr_ = JoinRange("", modeStrings.begin(), modeStrings.end());
+ SqlIntoUserModeStr_ = JoinRange(" ", userModeStrings.begin(), userModeStrings.end());
const auto& intoTableRef = node.GetRule_into_simple_table_ref3();
const auto& tableRef = intoTableRef.GetRule_simple_table_ref1();
const auto& tableRefCore = tableRef.GetRule_simple_table_ref_core1();
- auto service = Ctx.Scoped->CurrService;
- auto cluster = Ctx.Scoped->CurrCluster;
+ auto service = Ctx_.Scoped->CurrService;
+ auto cluster = Ctx_.Scoped->CurrCluster;
std::pair<bool, TDeferredAtom> nameOrAt;
bool isBinding = false;
switch (tableRefCore.Alt_case()) {
@@ -103,12 +103,12 @@ TNodePtr TSqlIntoTable::Build(const TRule_into_table_stmt& node) {
}
if (!isBinding && cluster.Empty()) {
- Ctx.Error() << "No cluster name given and no default cluster is selected";
+ Ctx_.Error() << "No cluster name given and no default cluster is selected";
return nullptr;
}
auto id = Id(tableRefCore.GetAlt_simple_table_ref_core1().GetRule_object_ref1().GetRule_id_or_at2(), *this);
- nameOrAt = std::make_pair(id.first, TDeferredAtom(Ctx.Pos(), id.second));
+ nameOrAt = std::make_pair(id.first, TDeferredAtom(Ctx_.Pos(), id.second));
break;
}
case TRule_simple_table_ref_core::AltCase::kAltSimpleTableRefCore2: {
@@ -122,14 +122,14 @@ TNodePtr TSqlIntoTable::Build(const TRule_into_table_stmt& node) {
return nullptr;
}
- named->SetRefPos(Ctx.Pos());
+ named->SetRefPos(Ctx_.Pos());
if (cluster.Empty()) {
- Ctx.Error() << "No cluster name given and no default cluster is selected";
+ Ctx_.Error() << "No cluster name given and no default cluster is selected";
return nullptr;
}
TDeferredAtom table;
- MakeTableFromExpression(Ctx.Pos(), Ctx, named, table);
+ MakeTableFromExpression(Ctx_.Pos(), Ctx_, named, table);
nameOrAt = std::make_pair(at, table);
break;
}
@@ -142,7 +142,7 @@ TNodePtr TSqlIntoTable::Build(const TRule_into_table_stmt& node) {
if (tableRef.HasBlock2()) {
auto hints = TableHintsImpl(tableRef.GetBlock2().GetRule_table_hints1(), service);
if (!hints) {
- Ctx.Error() << "Failed to parse table hints";
+ Ctx_.Error() << "Failed to parse table hints";
return nullptr;
}
for (const auto& hint : *hints) {
@@ -157,7 +157,7 @@ TNodePtr TSqlIntoTable::Build(const TRule_into_table_stmt& node) {
TVector<TString> eraseColumns;
if (intoTableRef.HasBlock2()) {
if (service != StatProviderName && service != UnknownProviderName) {
- Ctx.Error() << "ERASE BY is unsupported for " << service;
+ Ctx_.Error() << "ERASE BY is unsupported for " << service;
return nullptr;
}
@@ -167,19 +167,19 @@ TNodePtr TSqlIntoTable::Build(const TRule_into_table_stmt& node) {
}
if (withTruncate) {
- if (SqlIntoModeStr != "InsertInto") {
- Error() << "Unable " << SqlIntoUserModeStr << " with truncate mode";
+ if (SqlIntoModeStr_ != "InsertInto") {
+ Error() << "Unable " << SqlIntoUserModeStr_ << " with truncate mode";
return nullptr;
}
- SqlIntoModeStr += "WithTruncate";
- SqlIntoUserModeStr += " ... WITH TRUNCATE";
+ SqlIntoModeStr_ += "WithTruncate";
+ SqlIntoUserModeStr_ += " ... WITH TRUNCATE";
}
- const auto iterMode = str2Mode.find(SqlIntoModeStr);
- YQL_ENSURE(iterMode != str2Mode.end(), "Invalid sql write mode string: " << SqlIntoModeStr);
+ const auto iterMode = str2Mode.find(SqlIntoModeStr_);
+ YQL_ENSURE(iterMode != str2Mode.end(), "Invalid sql write mode string: " << SqlIntoModeStr_);
const auto SqlIntoMode = iterMode->second;
- TPosition pos(Ctx.Pos());
- TTableRef table(Ctx.MakeName("table"), service, cluster, nullptr);
+ TPosition pos(Ctx_.Pos());
+ TTableRef table(Ctx_.MakeName("table"), service, cluster, nullptr);
if (isBinding) {
const TString* binding = nameOrAt.second.GetLiteral();
YQL_ENSURE(binding);
@@ -191,16 +191,16 @@ TNodePtr TSqlIntoTable::Build(const TRule_into_table_stmt& node) {
table.Keys = BuildTableKey(pos, service, cluster, nameOrAt.second, {nameOrAt.first ? "@" : ""});
}
- Ctx.IncrementMonCounter("sql_insert_clusters", table.Cluster.GetLiteral() ? *table.Cluster.GetLiteral() : "unknown");
+ Ctx_.IncrementMonCounter("sql_insert_clusters", table.Cluster.GetLiteral() ? *table.Cluster.GetLiteral() : "unknown");
- auto values = TSqlIntoValues(Ctx, Mode).Build(node.GetRule_into_values_source4(), SqlIntoUserModeStr);
+ auto values = TSqlIntoValues(Ctx_, Mode_).Build(node.GetRule_into_values_source4(), SqlIntoUserModeStr_);
if (!values) {
return nullptr;
}
if (!ValidateServiceName(node, table, SqlIntoMode, GetPos(modeTokens[0]))) {
return nullptr;
}
- Ctx.IncrementMonCounter("sql_features", SqlIntoModeStr);
+ Ctx_.IncrementMonCounter("sql_features", SqlIntoModeStr_);
auto options = BuildIntoTableOptions(pos, eraseColumns, tableHints);
@@ -208,7 +208,7 @@ TNodePtr TSqlIntoTable::Build(const TRule_into_table_stmt& node) {
options = options->L(options, ReturningList(node.GetBlock5().GetRule_returning_columns_list1()));
}
- return BuildWriteColumns(pos, Ctx.Scoped, table,
+ return BuildWriteColumns(pos, Ctx_.Scoped, table,
ToWriteColumnsMode(SqlIntoMode), std::move(values),
options);
}
@@ -232,34 +232,34 @@ bool TSqlIntoTable::ValidateServiceName(const TRule_into_table_stmt& node, const
mode == ESQLWriteColumnMode::InsertOrRevertInto ||
mode == ESQLWriteColumnMode::UpsertInto && !isStat)
{
- Ctx.Error(pos) << SqlIntoUserModeStr << " is not supported for " << serviceName << " tables";
- Ctx.IncrementMonCounter("sql_errors", TStringBuilder() << SqlIntoUserModeStr << "UnsupportedFor" << serviceName);
+ Ctx_.Error(pos) << SqlIntoUserModeStr_ << " is not supported for " << serviceName << " tables";
+ Ctx_.IncrementMonCounter("sql_errors", TStringBuilder() << SqlIntoUserModeStr_ << "UnsupportedFor" << serviceName);
return false;
}
}
if (isMapReduce) {
if (mode == ESQLWriteColumnMode::ReplaceInto) {
- Ctx.Error(pos) << "Meaning of REPLACE INTO has been changed, now you should use INSERT INTO <table> WITH TRUNCATE ... for " << serviceName;
- Ctx.IncrementMonCounter("sql_errors", "ReplaceIntoConflictUsage");
+ Ctx_.Error(pos) << "Meaning of REPLACE INTO has been changed, now you should use INSERT INTO <table> WITH TRUNCATE ... for " << serviceName;
+ Ctx_.IncrementMonCounter("sql_errors", "ReplaceIntoConflictUsage");
return false;
}
} else if (isKikimr) {
if (mode == ESQLWriteColumnMode::InsertIntoWithTruncate) {
- Ctx.Error(pos) << "INSERT INTO WITH TRUNCATE is not supported for " << serviceName << " tables";
- Ctx.IncrementMonCounter("sql_errors", TStringBuilder() << SqlIntoUserModeStr << "UnsupportedFor" << serviceName);
+ Ctx_.Error(pos) << "INSERT INTO WITH TRUNCATE is not supported for " << serviceName << " tables";
+ Ctx_.IncrementMonCounter("sql_errors", TStringBuilder() << SqlIntoUserModeStr_ << "UnsupportedFor" << serviceName);
return false;
}
} else if (isRtmr) {
if (mode != ESQLWriteColumnMode::InsertInto) {
- Ctx.Error(pos) << SqlIntoUserModeStr << " is unsupported for " << serviceName;
- Ctx.IncrementMonCounter("sql_errors", TStringBuilder() << SqlIntoUserModeStr << "UnsupportedFor" << serviceName);
+ Ctx_.Error(pos) << SqlIntoUserModeStr_ << " is unsupported for " << serviceName;
+ Ctx_.IncrementMonCounter("sql_errors", TStringBuilder() << SqlIntoUserModeStr_ << "UnsupportedFor" << serviceName);
return false;
}
} else if (isStat) {
if (mode != ESQLWriteColumnMode::UpsertInto) {
- Ctx.Error(pos) << SqlIntoUserModeStr << " is unsupported for " << serviceName;
- Ctx.IncrementMonCounter("sql_errors", TStringBuilder() << SqlIntoUserModeStr << "UnsupportedFor" << serviceName);
+ Ctx_.Error(pos) << SqlIntoUserModeStr_ << " is unsupported for " << serviceName;
+ Ctx_.IncrementMonCounter("sql_errors", TStringBuilder() << SqlIntoUserModeStr_ << "UnsupportedFor" << serviceName);
return false;
}
}
diff --git a/yql/essentials/sql/v1/sql_into_tables.h b/yql/essentials/sql/v1/sql_into_tables.h
index c66bcfab958..03cfc9d994d 100644
--- a/yql/essentials/sql/v1/sql_into_tables.h
+++ b/yql/essentials/sql/v1/sql_into_tables.h
@@ -22,8 +22,8 @@ private:
bool ValidateServiceName(const TRule_into_table_stmt& node, const TTableRef& table, ESQLWriteColumnMode mode,
const TPosition& pos);
- TString SqlIntoModeStr;
- TString SqlIntoUserModeStr;
+ TString SqlIntoModeStr_;
+ TString SqlIntoUserModeStr_;
};
} // namespace NSQLTranslationV1
diff --git a/yql/essentials/sql/v1/sql_match_recognize.cpp b/yql/essentials/sql/v1/sql_match_recognize.cpp
index 6fcd56f4d6e..9591b468ac5 100644
--- a/yql/essentials/sql/v1/sql_match_recognize.cpp
+++ b/yql/essentials/sql/v1/sql_match_recognize.cpp
@@ -11,8 +11,8 @@ TSqlMatchRecognizeClause::TSqlMatchRecognizeClause(TContext& ctx, NSQLTranslatio
TMatchRecognizeBuilderPtr TSqlMatchRecognizeClause::CreateBuilder(const NSQLv1Generated::TRule_row_pattern_recognition_clause &matchRecognizeClause) {
auto pos = GetPos(matchRecognizeClause.GetToken1());
- if (!Ctx.FeatureR010) {
- Ctx.Error(pos, TIssuesIds::CORE) << "Unexpected MATCH_RECOGNIZE";
+ if (!Ctx_.FeatureR010) {
+ Ctx_.Error(pos, TIssuesIds::CORE) << "Unexpected MATCH_RECOGNIZE";
return {};
}
@@ -52,12 +52,12 @@ TMatchRecognizeBuilderPtr TSqlMatchRecognizeClause::CreateBuilder(const NSQLv1Ge
if (commonSyntax.HasBlock2()) {
const auto& initialOrSeek = commonSyntax.GetBlock2().GetRule_row_pattern_initial_or_seek1();
- Ctx.Error(GetPos(initialOrSeek.GetToken1())) << "InitialOrSeek subclause is not allowed in FROM clause";
+ Ctx_.Error(GetPos(initialOrSeek.GetToken1())) << "InitialOrSeek subclause is not allowed in FROM clause";
return {};
}
- PatternVarNames.clear();
- PatternVars = BuildList(pos);
+ PatternVarNames_.clear();
+ PatternVars_ = BuildList(pos);
auto pattern = ParsePattern(pos, commonSyntax.GetRule_row_pattern5(), 0, true);
if (!pattern) {
return {};
@@ -85,8 +85,8 @@ TMatchRecognizeBuilderPtr TSqlMatchRecognizeClause::CreateBuilder(const NSQLv1Ge
auto definitions = ParseDefinitions(commonSyntax.GetRule_row_pattern_definition_list9());
for (const auto& [callable, name]: definitions) {
- if (!PatternVarNames.contains(name)) {
- Ctx.Error(callable->GetPos()) << "ROW PATTERN VARIABLE " << name << " is defined, but not mentioned in the PATTERN";
+ if (!PatternVarNames_.contains(name)) {
+ Ctx_.Error(callable->GetPos()) << "ROW PATTERN VARIABLE " << name << " is defined, but not mentioned in the PATTERN";
return {};
}
}
@@ -100,7 +100,7 @@ TMatchRecognizeBuilderPtr TSqlMatchRecognizeClause::CreateBuilder(const NSQLv1Ge
std::move(rowsPerMatch),
std::move(skipTo),
std::move(pattern),
- std::move(PatternVars),
+ std::move(PatternVars_),
std::move(*subset),
std::move(definitions)
);
@@ -113,7 +113,7 @@ std::tuple<TNodePtr, TNodePtr> TSqlMatchRecognizeClause::ParsePartitionBy(TPosit
if (!node) {
return {partitionKeySelector, partitionColumns};
}
- TColumnRefScope scope(Ctx, EColumnRefState::Allow);
+ TColumnRefScope scope(Ctx_, EColumnRefState::Allow);
TVector<TNodePtr> partitionExprs;
if (!NamedExprList(node->GetRule_named_expr_list4(), partitionExprs)) {
return {partitionKeySelector, partitionColumns};
@@ -146,8 +146,8 @@ TMaybe<TVector<TSortSpecificationPtr>> TSqlMatchRecognizeClause::ParseOrderBy(co
}
TNamedFunction TSqlMatchRecognizeClause::ParseOneMeasure(const TRule_row_pattern_measure_definition& node) {
- TColumnRefScope scope(Ctx, EColumnRefState::MatchRecognizeMeasures);
- auto callable = TSqlExpression(Ctx, Mode).Build(node.GetRule_expr1());
+ TColumnRefScope scope(Ctx_, EColumnRefState::MatchRecognizeMeasures);
+ auto callable = TSqlExpression(Ctx_, Mode_).Build(node.GetRule_expr1());
auto measureName = Id(node.GetRule_an_id3(), *this);
// Each measure must be a lambda, that accepts 2 args:
// - List<InputTableColumns + _yql_Classifier, _yql_MatchNumber>
@@ -213,8 +213,8 @@ TNodePtr TSqlMatchRecognizeClause::ParseAfterMatchSkipTo(TPosition pos, const TR
const auto& identifier = skipTo.GetRule_row_pattern_skip_to_variable_name4().GetRule_row_pattern_variable_name1().GetRule_identifier1();
auto var = identifier.GetToken1().GetValue();
varPos = GetPos(identifier.GetToken1());
- if (!PatternVarNames.contains(var)) {
- Ctx.Error(varPos) << "Unknown pattern variable in AFTER MATCH SKIP TO FIRST";
+ if (!PatternVarNames_.contains(var)) {
+ Ctx_.Error(varPos) << "Unknown pattern variable in AFTER MATCH SKIP TO FIRST";
return {};
}
return NYql::NMatchRecognize::TAfterMatchSkipTo{NYql::NMatchRecognize::EAfterMatchSkipTo::ToFirst, std::move(var)};
@@ -225,8 +225,8 @@ TNodePtr TSqlMatchRecognizeClause::ParseAfterMatchSkipTo(TPosition pos, const TR
const auto& identifier = skipTo.GetRule_row_pattern_skip_to_variable_name4().GetRule_row_pattern_variable_name1().GetRule_identifier1();
auto var = identifier.GetToken1().GetValue();
varPos = GetPos(identifier.GetToken1());
- if (!PatternVarNames.contains(var)) {
- Ctx.Error(varPos) << "Unknown pattern variable in AFTER MATCH SKIP TO LAST";
+ if (!PatternVarNames_.contains(var)) {
+ Ctx_.Error(varPos) << "Unknown pattern variable in AFTER MATCH SKIP TO LAST";
return {};
}
return NYql::NMatchRecognize::TAfterMatchSkipTo{NYql::NMatchRecognize::EAfterMatchSkipTo::ToLast, std::move(var)};
@@ -237,8 +237,8 @@ TNodePtr TSqlMatchRecognizeClause::ParseAfterMatchSkipTo(TPosition pos, const TR
const auto& identifier = skipTo.GetRule_row_pattern_skip_to_variable_name3().GetRule_row_pattern_variable_name1().GetRule_identifier1();
auto var = identifier.GetToken1().GetValue();
varPos = GetPos(identifier.GetToken1());
- if (!PatternVarNames.contains(var)) {
- Ctx.Error(varPos) << "Unknown pattern variable in AFTER MATCH SKIP TO";
+ if (!PatternVarNames_.contains(var)) {
+ Ctx_.Error(varPos) << "Unknown pattern variable in AFTER MATCH SKIP TO";
return {};
}
return NYql::NMatchRecognize::TAfterMatchSkipTo{NYql::NMatchRecognize::EAfterMatchSkipTo::To, std::move(var)};
@@ -264,7 +264,7 @@ TNodePtr TSqlMatchRecognizeClause::BuildPatternFactor(TPosition pos, TNodePtr pr
TNodePtr TSqlMatchRecognizeClause::ParsePatternFactor(TPosition pos, const TRule_row_pattern_factor& node, size_t nestingLevel, bool output) {
if (nestingLevel > MaxPatternNesting) {
- Ctx.Error(pos) << "To big nesting level in the pattern";
+ Ctx_.Error(pos) << "To big nesting level in the pattern";
return {};
}
auto primary = [&]() -> TNodePtr {
@@ -275,8 +275,8 @@ TNodePtr TSqlMatchRecognizeClause::ParsePatternFactor(TPosition pos, const TRule
const auto& identifier = primary.GetRule_row_pattern_primary_variable_name1().GetRule_row_pattern_variable_name1().GetRule_identifier1();
const auto varName = Id(identifier, *this);
const auto var = BuildQuotedAtom(GetPos(identifier.GetToken1()), varName);
- if (PatternVarNames.insert(varName).second) {
- PatternVars->Add(var);
+ if (PatternVarNames_.insert(varName).second) {
+ PatternVars_->Add(var);
}
return var;
}
@@ -285,8 +285,8 @@ TNodePtr TSqlMatchRecognizeClause::ParsePatternFactor(TPosition pos, const TRule
const auto& token = primary.GetToken1();
const auto varName = token.GetValue();
const auto var = BuildQuotedAtom(GetPos(token), varName);
- if (PatternVarNames.insert(varName).second) {
- PatternVars->Add(var);
+ if (PatternVarNames_.insert(varName).second) {
+ PatternVars_->Add(var);
}
return var;
}
@@ -295,8 +295,8 @@ TNodePtr TSqlMatchRecognizeClause::ParsePatternFactor(TPosition pos, const TRule
const auto& token = primary.GetToken1();
const auto varName = token.GetValue();
const auto var = BuildQuotedAtom(GetPos(token), varName);
- if (PatternVarNames.insert(varName).second) {
- PatternVars->Add(var);
+ if (PatternVarNames_.insert(varName).second) {
+ PatternVars_->Add(var);
}
return var;
}
@@ -318,7 +318,7 @@ TNodePtr TSqlMatchRecognizeClause::ParsePatternFactor(TPosition pos, const TRule
items.push_back(ParsePattern(pos, p.GetRule_row_pattern2(), nestingLevel + 1, output));
}
if (items.size() > MaxPermutedItems) {
- Ctx.Error(GetPos(primary.GetRule_row_pattern_permute1().GetToken1())) << "Too many items in permute";
+ Ctx_.Error(GetPos(primary.GetRule_row_pattern_permute1().GetToken1())) << "Too many items in permute";
return {};
}
std::vector<size_t> indexes(items.size());
@@ -439,16 +439,16 @@ TMaybe<TNodePtr> TSqlMatchRecognizeClause::ParseSubset(TPosition pos, const TRul
}
pos = GetPos(node->GetToken1());
// TODO https://st.yandex-team.ru/YQL-16225
- Ctx.Error(pos) << "SUBSET is not implemented yet";
+ Ctx_.Error(pos) << "SUBSET is not implemented yet";
return {};
}
TNamedFunction TSqlMatchRecognizeClause::ParseOneDefinition(const TRule_row_pattern_definition& node) {
const auto& identifier = node.GetRule_row_pattern_definition_variable_name1().GetRule_row_pattern_variable_name1().GetRule_identifier1();
auto defineName = Id(identifier, *this);
- TColumnRefScope scope(Ctx, EColumnRefState::MatchRecognizeDefine, true, defineName);
+ TColumnRefScope scope(Ctx_, EColumnRefState::MatchRecognizeDefine, true, defineName);
const auto& searchCondition = node.GetRule_row_pattern_definition_search_condition3().GetRule_search_condition1().GetRule_expr1();
- auto callable = TSqlExpression(Ctx, Mode).Build(searchCondition);
+ auto callable = TSqlExpression(Ctx_, Mode_).Build(searchCondition);
// Each define must be a predicate lambda, that accepts 3 args:
// - List<input table rows>
// - A struct that maps row pattern variables to ranges in the queue
diff --git a/yql/essentials/sql/v1/sql_match_recognize.h b/yql/essentials/sql/v1/sql_match_recognize.h
index 928ed35b5db..0a0382c6213 100644
--- a/yql/essentials/sql/v1/sql_match_recognize.h
+++ b/yql/essentials/sql/v1/sql_match_recognize.h
@@ -31,8 +31,8 @@ private:
TVector<TNamedFunction> ParseDefinitions(const TRule_row_pattern_definition_list& node);
private:
- THashSet<TString> PatternVarNames;
- TNodePtr PatternVars;
+ THashSet<TString> PatternVarNames_;
+ TNodePtr PatternVars_;
};
} // namespace NSQLTranslationV1
diff --git a/yql/essentials/sql/v1/sql_query.cpp b/yql/essentials/sql/v1/sql_query.cpp
index d852fee277f..d77500463d5 100644
--- a/yql/essentials/sql/v1/sql_query.cpp
+++ b/yql/essentials/sql/v1/sql_query.cpp
@@ -220,13 +220,13 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
TString humanStatementName;
ParseStatementName(core, internalStatementName, humanStatementName);
const auto& altCase = core.Alt_case();
- if (Mode == NSQLTranslation::ESqlMode::LIMITED_VIEW && (altCase >= TRule_sql_stmt_core::kAltSqlStmtCore4 &&
+ if (Mode_ == NSQLTranslation::ESqlMode::LIMITED_VIEW && (altCase >= TRule_sql_stmt_core::kAltSqlStmtCore4 &&
altCase != TRule_sql_stmt_core::kAltSqlStmtCore13 && altCase != TRule_sql_stmt_core::kAltSqlStmtCore18)) {
Error() << humanStatementName << " statement is not supported in limited views";
return false;
}
- if (Mode == NSQLTranslation::ESqlMode::SUBQUERY && (altCase >= TRule_sql_stmt_core::kAltSqlStmtCore4 &&
+ if (Mode_ == NSQLTranslation::ESqlMode::SUBQUERY && (altCase >= TRule_sql_stmt_core::kAltSqlStmtCore4 &&
altCase != TRule_sql_stmt_core::kAltSqlStmtCore13 && altCase != TRule_sql_stmt_core::kAltSqlStmtCore6 &&
altCase != TRule_sql_stmt_core::kAltSqlStmtCore18)) {
Error() << humanStatementName << " statement is not supported in subqueries";
@@ -234,7 +234,7 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
}
if (NeedUseForAllStatements(altCase)) {
- Ctx.ForAllStatementsParts.push_back(statementNumber);
+ Ctx_.ForAllStatementsParts.push_back(statementNumber);
}
switch (altCase) {
@@ -250,25 +250,25 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
break;
}
case TRule_sql_stmt_core::kAltSqlStmtCore2: {
- if (Ctx.ParallelModeCount > 0) {
+ if (Ctx_.ParallelModeCount > 0) {
Error() << humanStatementName << " statement is not supported in parallel mode";
return false;
}
- Ctx.BodyPart();
- TSqlSelect select(Ctx, Mode);
+ Ctx_.BodyPart();
+ TSqlSelect select(Ctx_, Mode_);
TPosition pos;
auto source = select.Build(core.GetAlt_sql_stmt_core2().GetRule_select_stmt1(), pos);
if (!source) {
return false;
}
blocks.emplace_back(BuildSelectResult(pos, std::move(source),
- Mode != NSQLTranslation::ESqlMode::LIMITED_VIEW && Mode != NSQLTranslation::ESqlMode::SUBQUERY, Mode == NSQLTranslation::ESqlMode::SUBQUERY,
- Ctx.Scoped));
+ Mode_ != NSQLTranslation::ESqlMode::LIMITED_VIEW && Mode_ != NSQLTranslation::ESqlMode::SUBQUERY, Mode_ == NSQLTranslation::ESqlMode::SUBQUERY,
+ Ctx_.Scoped));
break;
}
case TRule_sql_stmt_core::kAltSqlStmtCore3: {
- Ctx.BodyPart();
+ Ctx_.BodyPart();
TVector<TSymbolNameWithPos> names;
auto nodeExpr = NamedNode(core.GetAlt_sql_stmt_core3().GetRule_named_nodes_stmt1(), names);
if (!nodeExpr) {
@@ -276,21 +276,21 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
}
TVector<TNodePtr> nodes;
auto subquery = nodeExpr->GetSource();
- if (subquery && Mode == NSQLTranslation::ESqlMode::LIBRARY && Ctx.ScopeLevel == 0) {
+ if (subquery && Mode_ == NSQLTranslation::ESqlMode::LIBRARY && Ctx_.ScopeLevel == 0) {
for (size_t i = 0; i < names.size(); ++i) {
nodes.push_back(BuildInvalidSubqueryRef(subquery->GetPos()));
}
} else if (subquery) {
- const auto alias = Ctx.MakeName("subquerynode");
- const auto ref = Ctx.MakeName("subquery");
+ const auto alias = Ctx_.MakeName("subquerynode");
+ const auto ref = Ctx_.MakeName("subquery");
blocks.push_back(BuildSubquery(subquery, alias,
- Mode == NSQLTranslation::ESqlMode::SUBQUERY, names.size() == 1 ? -1 : names.size(), Ctx.Scoped));
+ Mode_ == NSQLTranslation::ESqlMode::SUBQUERY, names.size() == 1 ? -1 : names.size(), Ctx_.Scoped));
blocks.back()->SetLabel(ref);
for (size_t i = 0; i < names.size(); ++i) {
nodes.push_back(BuildSubqueryRef(blocks.back(), ref, names.size() == 1 ? -1 : i));
}
- } else if (!Ctx.CompactNamedExprs || nodeExpr->GetUdfNode()) {
+ } else if (!Ctx_.CompactNamedExprs || nodeExpr->GetUdfNode()) {
// Unlike other nodes, TUdfNode is not an independent node, but more like a set of parameters which should be
// applied on UDF call site. For example, TUdfNode can not be Translate()d
// So we can't add it to blocks and use reference, instead we store the TUdfNode itself as named node
@@ -304,7 +304,7 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
nodes.push_back(std::move(nodeExpr));
}
} else {
- const auto ref = Ctx.MakeName("namedexprnode");
+ const auto ref = Ctx_.MakeName("namedexprnode");
blocks.push_back(BuildNamedExpr(names.size() > 1 ? BuildTupleResult(nodeExpr, names.size()) : nodeExpr));
blocks.back()->SetLabel(ref);
for (size_t i = 0; i < names.size(); ++i) {
@@ -318,15 +318,15 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
break;
}
case TRule_sql_stmt_core::kAltSqlStmtCore4: {
- Ctx.BodyPart();
+ Ctx_.BodyPart();
const auto& rule = core.GetAlt_sql_stmt_core4().GetRule_create_table_stmt1();
bool replaceIfExists = false;
if (rule.HasBlock2()) { // OR REPLACE
replaceIfExists = true;
Y_DEBUG_ABORT_UNLESS(
- (IS_TOKEN(Ctx.Settings.Antlr4Parser, rule.GetBlock2().GetToken1().GetId(), OR) &&
- IS_TOKEN(Ctx.Settings.Antlr4Parser, rule.GetBlock2().GetToken2().GetId(), REPLACE))
+ (IS_TOKEN(Ctx_.Settings.Antlr4Parser, rule.GetBlock2().GetToken1().GetId(), OR) &&
+ IS_TOKEN(Ctx_.Settings.Antlr4Parser, rule.GetBlock2().GetToken2().GetId(), REPLACE))
);
}
@@ -335,7 +335,7 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
ETableType tableType = ETableType::Table;
bool temporary = false;
if (block.HasAlt2() &&
- IS_TOKEN(Ctx.Settings.Antlr4Parser, block.GetAlt2().GetToken1().GetId(), TABLESTORE)
+ IS_TOKEN(Ctx_.Settings.Antlr4Parser, block.GetAlt2().GetToken1().GetId(), TABLESTORE)
) {
tableType = ETableType::TableStore;
if (isCreateTableAs) {
@@ -344,7 +344,7 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
return false;
}
} else if (block.HasAlt3() &&
- IS_TOKEN(Ctx.Settings.Antlr4Parser, block.GetAlt3().GetToken1().GetId(), EXTERNAL)
+ IS_TOKEN(Ctx_.Settings.Antlr4Parser, block.GetAlt3().GetToken1().GetId(), EXTERNAL)
) {
tableType = ETableType::ExternalTable;
if (isCreateTableAs) {
@@ -352,8 +352,8 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
<< "CREATE TABLE AS is not supported for EXTERNAL TABLE";
return false;
}
- } else if (block.HasAlt4() && IS_TOKEN(Ctx.Settings.Antlr4Parser, block.GetAlt4().GetToken1().GetId(), TEMP) ||
- block.HasAlt5() && IS_TOKEN(Ctx.Settings.Antlr4Parser, block.GetAlt5().GetToken1().GetId(), TEMPORARY)) {
+ } else if (block.HasAlt4() && IS_TOKEN(Ctx_.Settings.Antlr4Parser, block.GetAlt4().GetToken1().GetId(), TEMP) ||
+ block.HasAlt5() && IS_TOKEN(Ctx_.Settings.Antlr4Parser, block.GetAlt5().GetToken1().GetId(), TEMPORARY)) {
temporary = true;
}
@@ -361,9 +361,9 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
if (rule.HasBlock4()) { // IF NOT EXISTS
existingOk = true;
Y_DEBUG_ABORT_UNLESS(
- IS_TOKEN(Ctx.Settings.Antlr4Parser, rule.GetBlock4().GetToken1().GetId(), IF) &&
- IS_TOKEN(Ctx.Settings.Antlr4Parser, rule.GetBlock4().GetToken2().GetId(), NOT) &&
- IS_TOKEN(Ctx.Settings.Antlr4Parser, rule.GetBlock4().GetToken3().GetId(), EXISTS)
+ IS_TOKEN(Ctx_.Settings.Antlr4Parser, rule.GetBlock4().GetToken1().GetId(), IF) &&
+ IS_TOKEN(Ctx_.Settings.Antlr4Parser, rule.GetBlock4().GetToken2().GetId(), NOT) &&
+ IS_TOKEN(Ctx_.Settings.Antlr4Parser, rule.GetBlock4().GetToken3().GetId(), EXISTS)
);
}
@@ -421,7 +421,7 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
TSourcePtr tableSource = nullptr;
if (isCreateTableAs) {
- tableSource = TSqlAsValues(Ctx, Mode).Build(rule.GetBlock15().GetRule_table_as_source1().GetRule_values_source2(), "CreateTableAs");
+ tableSource = TSqlAsValues(Ctx_, Mode_).Build(rule.GetBlock15().GetRule_table_as_source1().GetRule_values_source2(), "CreateTableAs");
if (!tableSource) {
return false;
}
@@ -431,11 +431,11 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
return false;
}
- AddStatementToBlocks(blocks, BuildCreateTable(Ctx.Pos(), tr, existingOk, replaceIfExists, params, std::move(tableSource), Ctx.Scoped));
+ AddStatementToBlocks(blocks, BuildCreateTable(Ctx_.Pos(), tr, existingOk, replaceIfExists, params, std::move(tableSource), Ctx_.Scoped));
break;
}
case TRule_sql_stmt_core::kAltSqlStmtCore5: {
- Ctx.BodyPart();
+ Ctx_.BodyPart();
const auto& rule = core.GetAlt_sql_stmt_core5().GetRule_drop_table_stmt1();
const auto& block = rule.GetBlock2();
ETableType tableType = ETableType::Table;
@@ -450,8 +450,8 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
if (rule.HasBlock3()) { // IF EXISTS
missingOk = true;
Y_DEBUG_ABORT_UNLESS(
- IS_TOKEN(Ctx.Settings.Antlr4Parser, rule.GetBlock3().GetToken1().GetId(), IF) &&
- IS_TOKEN(Ctx.Settings.Antlr4Parser, rule.GetBlock3().GetToken2().GetId(), EXISTS)
+ IS_TOKEN(Ctx_.Settings.Antlr4Parser, rule.GetBlock3().GetToken1().GetId(), IF) &&
+ IS_TOKEN(Ctx_.Settings.Antlr4Parser, rule.GetBlock3().GetToken2().GetId(), EXISTS)
);
}
@@ -460,21 +460,21 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
return false;
}
- AddStatementToBlocks(blocks, BuildDropTable(Ctx.Pos(), tr, missingOk, tableType, Ctx.Scoped));
+ AddStatementToBlocks(blocks, BuildDropTable(Ctx_.Pos(), tr, missingOk, tableType, Ctx_.Scoped));
break;
}
case TRule_sql_stmt_core::kAltSqlStmtCore6: {
const auto& rule = core.GetAlt_sql_stmt_core6().GetRule_use_stmt1();
Token(rule.GetToken1());
- if (!ClusterExpr(rule.GetRule_cluster_expr2(), true, Ctx.Scoped->CurrService, Ctx.Scoped->CurrCluster)) {
+ if (!ClusterExpr(rule.GetRule_cluster_expr2(), true, Ctx_.Scoped->CurrService, Ctx_.Scoped->CurrCluster)) {
return false;
}
break;
}
case TRule_sql_stmt_core::kAltSqlStmtCore7: {
- Ctx.BodyPart();
- TSqlIntoTable intoTable(Ctx, Mode);
+ Ctx_.BodyPart();
+ TSqlIntoTable intoTable(Ctx_, Mode_);
TNodePtr block(intoTable.Build(core.GetAlt_sql_stmt_core7().GetRule_into_table_stmt1()));
if (!block) {
return false;
@@ -483,19 +483,19 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
break;
}
case TRule_sql_stmt_core::kAltSqlStmtCore8: {
- if (Ctx.ParallelModeCount > 0) {
+ if (Ctx_.ParallelModeCount > 0) {
Error() << humanStatementName << " statement is not supported in parallel mode";
return false;
}
- Ctx.BodyPart();
+ Ctx_.BodyPart();
const auto& rule = core.GetAlt_sql_stmt_core8().GetRule_commit_stmt1();
Token(rule.GetToken1());
- blocks.emplace_back(BuildCommitClusters(Ctx.Pos()));
+ blocks.emplace_back(BuildCommitClusters(Ctx_.Pos()));
break;
}
case TRule_sql_stmt_core::kAltSqlStmtCore9: {
- Ctx.BodyPart();
+ Ctx_.BodyPart();
auto updateNode = Build(core.GetAlt_sql_stmt_core9().GetRule_update_stmt1());
if (!updateNode) {
return false;
@@ -504,7 +504,7 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
break;
}
case TRule_sql_stmt_core::kAltSqlStmtCore10: {
- Ctx.BodyPart();
+ Ctx_.BodyPart();
auto deleteNode = Build(core.GetAlt_sql_stmt_core10().GetRule_delete_stmt1());
if (!deleteNode) {
return false;
@@ -513,15 +513,15 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
break;
}
case TRule_sql_stmt_core::kAltSqlStmtCore11: {
- if (Ctx.ParallelModeCount > 0) {
+ if (Ctx_.ParallelModeCount > 0) {
Error() << humanStatementName << " statement is not supported in parallel mode";
return false;
}
- Ctx.BodyPart();
+ Ctx_.BodyPart();
const auto& rule = core.GetAlt_sql_stmt_core11().GetRule_rollback_stmt1();
Token(rule.GetToken1());
- blocks.emplace_back(BuildRollbackClusters(Ctx.Pos()));
+ blocks.emplace_back(BuildRollbackClusters(Ctx_.Pos()));
break;
}
case TRule_sql_stmt_core::kAltSqlStmtCore12:
@@ -540,9 +540,9 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
}
break;
case TRule_sql_stmt_core::kAltSqlStmtCore15: {
- Ctx.BodyPart();
+ Ctx_.BodyPart();
const auto& rule = core.GetAlt_sql_stmt_core15().GetRule_alter_table_stmt1();
- const bool isTablestore = IS_TOKEN(Ctx.Settings.Antlr4Parser, rule.GetToken2().GetId(), TABLESTORE);
+ const bool isTablestore = IS_TOKEN(Ctx_.Settings.Antlr4Parser, rule.GetToken2().GetId(), TABLESTORE);
TTableRef tr;
if (!SimpleTableRefImpl(rule.GetRule_simple_table_ref3(), tr)) {
return false;
@@ -562,12 +562,12 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
}
}
- AddStatementToBlocks(blocks, BuildAlterTable(Ctx.Pos(), tr, params, Ctx.Scoped));
+ AddStatementToBlocks(blocks, BuildAlterTable(Ctx_.Pos(), tr, params, Ctx_.Scoped));
break;
}
case TRule_sql_stmt_core::kAltSqlStmtCore16: {
// alter_external_table_stmt: ALTER EXTERNAL TABLE simple_table_ref alter_external_table_action (COMMA alter_external_table_action)*
- Ctx.BodyPart();
+ Ctx_.BodyPart();
const auto& rule = core.GetAlt_sql_stmt_core16().GetRule_alter_external_table_stmt1();
TTableRef tr;
if (!SimpleTableRefImpl(rule.GetRule_simple_table_ref4(), tr)) {
@@ -586,11 +586,11 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
}
}
- AddStatementToBlocks(blocks, BuildAlterTable(Ctx.Pos(), tr, params, Ctx.Scoped));
+ AddStatementToBlocks(blocks, BuildAlterTable(Ctx_.Pos(), tr, params, Ctx_.Scoped));
break;
}
case TRule_sql_stmt_core::kAltSqlStmtCore17: {
- Ctx.BodyPart();
+ Ctx_.BodyPart();
auto node = DoStatement(core.GetAlt_sql_stmt_core17().GetRule_do_stmt1(), false);
if (!node) {
return false;
@@ -600,18 +600,18 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
break;
}
case TRule_sql_stmt_core::kAltSqlStmtCore18: {
- Ctx.BodyPart();
+ Ctx_.BodyPart();
TNodePtr lambda;
TSymbolNameWithPos nameAndPos;
const auto& stmt = core.GetAlt_sql_stmt_core18().GetRule_define_action_or_subquery_stmt1();
- const TString kind = to_lower(Ctx.Token(stmt.GetToken2()));
+ const TString kind = to_lower(Ctx_.Token(stmt.GetToken2()));
YQL_ENSURE(kind == "action" || kind == "subquery");
if (!DefineActionOrSubqueryStatement(stmt, nameAndPos, lambda)) {
return false;
}
- if (Ctx.CompactNamedExprs) {
- const auto ref = Ctx.MakeName("named" + kind + "node");
+ if (Ctx_.CompactNamedExprs) {
+ const auto ref = Ctx_.MakeName("named" + kind + "node");
blocks.push_back(BuildNamedExpr(lambda));
blocks.back()->SetLabel(ref);
lambda = BuildNamedExprReference(blocks.back(), ref, {});
@@ -621,7 +621,7 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
break;
}
case TRule_sql_stmt_core::kAltSqlStmtCore19: {
- Ctx.BodyPart();
+ Ctx_.BodyPart();
auto node = IfStatement(core.GetAlt_sql_stmt_core19().GetRule_if_stmt1());
if (!node) {
return false;
@@ -631,7 +631,7 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
break;
}
case TRule_sql_stmt_core::kAltSqlStmtCore20: {
- Ctx.BodyPart();
+ Ctx_.BodyPart();
auto node = ForStatement(core.GetAlt_sql_stmt_core20().GetRule_for_stmt1());
if (!node) {
return false;
@@ -641,33 +641,33 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
break;
}
case TRule_sql_stmt_core::kAltSqlStmtCore21: {
- if (Ctx.ParallelModeCount > 0) {
+ if (Ctx_.ParallelModeCount > 0) {
Error() << humanStatementName << " statement is not supported in parallel mode";
return false;
}
- Ctx.BodyPart();
- TSqlValues values(Ctx, Mode);
+ Ctx_.BodyPart();
+ TSqlValues values(Ctx_, Mode_);
TPosition pos;
auto source = values.Build(core.GetAlt_sql_stmt_core21().GetRule_values_stmt1(), pos, {}, TPosition());
if (!source) {
return false;
}
blocks.emplace_back(BuildSelectResult(pos, std::move(source),
- Mode != NSQLTranslation::ESqlMode::LIMITED_VIEW && Mode != NSQLTranslation::ESqlMode::SUBQUERY, Mode == NSQLTranslation::ESqlMode::SUBQUERY,
- Ctx.Scoped));
+ Mode_ != NSQLTranslation::ESqlMode::LIMITED_VIEW && Mode_ != NSQLTranslation::ESqlMode::SUBQUERY, Mode_ == NSQLTranslation::ESqlMode::SUBQUERY,
+ Ctx_.Scoped));
break;
}
case TRule_sql_stmt_core::kAltSqlStmtCore22: {
// create_user_stmt: CREATE USER role_name (user_option)*;
- Ctx.BodyPart();
+ Ctx_.BodyPart();
auto& node = core.GetAlt_sql_stmt_core22().GetRule_create_user_stmt1();
- Ctx.Token(node.GetToken1());
- const TPosition pos = Ctx.Pos();
+ Ctx_.Token(node.GetToken1());
+ const TPosition pos = Ctx_.Pos();
- TString service = Ctx.Scoped->CurrService;
- TDeferredAtom cluster = Ctx.Scoped->CurrCluster;
+ TString service = Ctx_.Scoped->CurrService;
+ TDeferredAtom cluster = Ctx_.Scoped->CurrCluster;
if (cluster.Empty()) {
Error() << "USE statement is missing - no default cluster is selected";
return false;
@@ -694,19 +694,19 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
return false;
}
- AddStatementToBlocks(blocks, BuildControlUser(pos, service, cluster, roleName, createUserParams, Ctx.Scoped, isCreateUser));
+ AddStatementToBlocks(blocks, BuildControlUser(pos, service, cluster, roleName, createUserParams, Ctx_.Scoped, isCreateUser));
break;
}
case TRule_sql_stmt_core::kAltSqlStmtCore23: {
// alter_user_stmt: ALTER USER role_name (WITH? user_option+ | RENAME TO role_name);
- Ctx.BodyPart();
+ Ctx_.BodyPart();
auto& node = core.GetAlt_sql_stmt_core23().GetRule_alter_user_stmt1();
- Ctx.Token(node.GetToken1());
- const TPosition pos = Ctx.Pos();
+ Ctx_.Token(node.GetToken1());
+ const TPosition pos = Ctx_.Pos();
- TString service = Ctx.Scoped->CurrService;
- TDeferredAtom cluster = Ctx.Scoped->CurrCluster;
+ TString service = Ctx_.Scoped->CurrService;
+ TDeferredAtom cluster = Ctx_.Scoped->CurrCluster;
if (cluster.Empty()) {
Error() << "USE statement is missing - no default cluster is selected";
return false;
@@ -736,7 +736,7 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
if (!UserParameters(opts, alterUserParams, isCreateUser)) {
return false;
}
- stmt = BuildControlUser(pos, service, cluster, roleName, alterUserParams, Ctx.Scoped, isCreateUser);
+ stmt = BuildControlUser(pos, service, cluster, roleName, alterUserParams, Ctx_.Scoped, isCreateUser);
break;
}
case TRule_alter_user_stmt_TBlock4::kAlt2: {
@@ -745,7 +745,7 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
if (!RoleNameClause(node.GetBlock4().GetAlt2().GetRule_role_name3(), tgtRoleName, allowSystemRoles)) {
return false;
}
- stmt = BuildRenameUser(pos, service, cluster, roleName, tgtRoleName, Ctx.Scoped);
+ stmt = BuildRenameUser(pos, service, cluster, roleName, tgtRoleName, Ctx_.Scoped);
break;
}
case TRule_alter_user_stmt_TBlock4::ALT_NOT_SET:
@@ -757,14 +757,14 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
}
case TRule_sql_stmt_core::kAltSqlStmtCore24: {
// create_group_stmt: CREATE GROUP role_name (WITH USER role_name (COMMA role_name)* COMMA?)?;
- Ctx.BodyPart();
+ Ctx_.BodyPart();
auto& node = core.GetAlt_sql_stmt_core24().GetRule_create_group_stmt1();
- Ctx.Token(node.GetToken1());
- const TPosition pos = Ctx.Pos();
+ Ctx_.Token(node.GetToken1());
+ const TPosition pos = Ctx_.Pos();
- TString service = Ctx.Scoped->CurrService;
- TDeferredAtom cluster = Ctx.Scoped->CurrCluster;
+ TString service = Ctx_.Scoped->CurrService;
+ TDeferredAtom cluster = Ctx_.Scoped->CurrCluster;
if (cluster.Empty()) {
Error() << "USE statement is missing - no default cluster is selected";
return false;
@@ -794,19 +794,19 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
}
}
- AddStatementToBlocks(blocks, BuildCreateGroup(pos, service, cluster, roleName, createGroupParams, Ctx.Scoped));
+ AddStatementToBlocks(blocks, BuildCreateGroup(pos, service, cluster, roleName, createGroupParams, Ctx_.Scoped));
break;
}
case TRule_sql_stmt_core::kAltSqlStmtCore25: {
// alter_group_stmt: ALTER GROUP role_name ((ADD|DROP) USER role_name (COMMA role_name)* COMMA? | RENAME TO role_name);
- Ctx.BodyPart();
+ Ctx_.BodyPart();
auto& node = core.GetAlt_sql_stmt_core25().GetRule_alter_group_stmt1();
- Ctx.Token(node.GetToken1());
- const TPosition pos = Ctx.Pos();
+ Ctx_.Token(node.GetToken1());
+ const TPosition pos = Ctx_.Pos();
- TString service = Ctx.Scoped->CurrService;
- TDeferredAtom cluster = Ctx.Scoped->CurrCluster;
+ TString service = Ctx_.Scoped->CurrService;
+ TDeferredAtom cluster = Ctx_.Scoped->CurrCluster;
if (cluster.Empty()) {
Error() << "USE statement is missing - no default cluster is selected";
return false;
@@ -824,7 +824,7 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
switch (node.GetBlock4().Alt_case()) {
case TRule_alter_group_stmt_TBlock4::kAlt1: {
auto& addDropNode = node.GetBlock4().GetAlt1();
- const bool isDrop = IS_TOKEN(Ctx.Settings.Antlr4Parser, addDropNode.GetToken1().GetId(), DROP);
+ const bool isDrop = IS_TOKEN(Ctx_.Settings.Antlr4Parser, addDropNode.GetToken1().GetId(), DROP);
TVector<TDeferredAtom> roles;
bool allowSystemRoles = false;
roles.emplace_back();
@@ -839,7 +839,7 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
}
}
- stmt = BuildAlterGroup(pos, service, cluster, roleName, roles, isDrop, Ctx.Scoped);
+ stmt = BuildAlterGroup(pos, service, cluster, roleName, roles, isDrop, Ctx_.Scoped);
break;
}
case TRule_alter_group_stmt_TBlock4::kAlt2: {
@@ -848,7 +848,7 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
if (!RoleNameClause(node.GetBlock4().GetAlt2().GetRule_role_name3(), tgtRoleName, allowSystemRoles)) {
return false;
}
- stmt = BuildRenameGroup(pos, service, cluster, roleName, tgtRoleName, Ctx.Scoped);
+ stmt = BuildRenameGroup(pos, service, cluster, roleName, tgtRoleName, Ctx_.Scoped);
break;
}
case TRule_alter_group_stmt_TBlock4::ALT_NOT_SET:
@@ -860,26 +860,26 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
}
case TRule_sql_stmt_core::kAltSqlStmtCore26: {
// drop_role_stmt: DROP (USER|GROUP) (IF EXISTS)? role_name (COMMA role_name)* COMMA?;
- Ctx.BodyPart();
+ Ctx_.BodyPart();
auto& node = core.GetAlt_sql_stmt_core26().GetRule_drop_role_stmt1();
- Ctx.Token(node.GetToken1());
- const TPosition pos = Ctx.Pos();
+ Ctx_.Token(node.GetToken1());
+ const TPosition pos = Ctx_.Pos();
- TString service = Ctx.Scoped->CurrService;
- TDeferredAtom cluster = Ctx.Scoped->CurrCluster;
+ TString service = Ctx_.Scoped->CurrService;
+ TDeferredAtom cluster = Ctx_.Scoped->CurrCluster;
if (cluster.Empty()) {
Error() << "USE statement is missing - no default cluster is selected";
return false;
}
- const bool isUser = IS_TOKEN(Ctx.Settings.Antlr4Parser, node.GetToken2().GetId(), USER);
+ const bool isUser = IS_TOKEN(Ctx_.Settings.Antlr4Parser, node.GetToken2().GetId(), USER);
bool missingOk = false;
if (node.HasBlock3()) { // IF EXISTS
missingOk = true;
Y_DEBUG_ABORT_UNLESS(
- IS_TOKEN(Ctx.Settings.Antlr4Parser, node.GetBlock3().GetToken1().GetId(), IF) &&
- IS_TOKEN(Ctx.Settings.Antlr4Parser, node.GetBlock3().GetToken2().GetId(), EXISTS)
+ IS_TOKEN(Ctx_.Settings.Antlr4Parser, node.GetBlock3().GetToken1().GetId(), IF) &&
+ IS_TOKEN(Ctx_.Settings.Antlr4Parser, node.GetBlock3().GetToken2().GetId(), EXISTS)
);
}
@@ -897,13 +897,13 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
}
}
- AddStatementToBlocks(blocks, BuildDropRoles(pos, service, cluster, roles, isUser, missingOk, Ctx.Scoped));
+ AddStatementToBlocks(blocks, BuildDropRoles(pos, service, cluster, roles, isUser, missingOk, Ctx_.Scoped));
break;
}
case TRule_sql_stmt_core::kAltSqlStmtCore27: {
// create_object_stmt: CREATE OBJECT (IF NOT EXISTS)? name (TYPE type [WITH k=v,...]);
auto& node = core.GetAlt_sql_stmt_core27().GetRule_create_object_stmt1();
- TObjectOperatorContext context(Ctx.Scoped);
+ TObjectOperatorContext context(Ctx_.Scoped);
if (node.GetRule_object_ref4().HasBlock1()) {
if (!ClusterExpr(node.GetRule_object_ref4().GetBlock1().GetRule_cluster_expr1(),
false, context.ServiceId, context.Cluster)) {
@@ -915,9 +915,9 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
if (node.HasBlock3()) { // IF NOT EXISTS
existingOk = true;
Y_DEBUG_ABORT_UNLESS(
- IS_TOKEN(Ctx.Settings.Antlr4Parser, node.GetBlock3().GetToken1().GetId(), IF) &&
- IS_TOKEN(Ctx.Settings.Antlr4Parser, node.GetBlock3().GetToken2().GetId(), NOT) &&
- IS_TOKEN(Ctx.Settings.Antlr4Parser, node.GetBlock3().GetToken3().GetId(), EXISTS)
+ IS_TOKEN(Ctx_.Settings.Antlr4Parser, node.GetBlock3().GetToken1().GetId(), IF) &&
+ IS_TOKEN(Ctx_.Settings.Antlr4Parser, node.GetBlock3().GetToken2().GetId(), NOT) &&
+ IS_TOKEN(Ctx_.Settings.Antlr4Parser, node.GetBlock3().GetToken3().GetId(), EXISTS)
);
}
@@ -930,13 +930,13 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
}
}
- AddStatementToBlocks(blocks, BuildCreateObjectOperation(Ctx.Pos(), objectId, typeId, existingOk, false, std::move(kv), context));
+ AddStatementToBlocks(blocks, BuildCreateObjectOperation(Ctx_.Pos(), objectId, typeId, existingOk, false, std::move(kv), context));
break;
}
case TRule_sql_stmt_core::kAltSqlStmtCore28: {
// alter_object_stmt: ALTER OBJECT name (TYPE type [SET k=v,...]);
auto& node = core.GetAlt_sql_stmt_core28().GetRule_alter_object_stmt1();
- TObjectOperatorContext context(Ctx.Scoped);
+ TObjectOperatorContext context(Ctx_.Scoped);
if (node.GetRule_object_ref3().HasBlock1()) {
if (!ClusterExpr(node.GetRule_object_ref3().GetBlock1().GetRule_cluster_expr1(),
false, context.ServiceId, context.Cluster)) {
@@ -951,13 +951,13 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
return false;
}
- AddStatementToBlocks(blocks, BuildAlterObjectOperation(Ctx.Pos(), objectId, typeId, std::move(kv), std::set<TString>(), context));
+ AddStatementToBlocks(blocks, BuildAlterObjectOperation(Ctx_.Pos(), objectId, typeId, std::move(kv), std::set<TString>(), context));
break;
}
case TRule_sql_stmt_core::kAltSqlStmtCore29: {
// drop_object_stmt: DROP OBJECT (IF EXISTS)? name (TYPE type [WITH k=v,...]);
auto& node = core.GetAlt_sql_stmt_core29().GetRule_drop_object_stmt1();
- TObjectOperatorContext context(Ctx.Scoped);
+ TObjectOperatorContext context(Ctx_.Scoped);
if (node.GetRule_object_ref4().HasBlock1()) {
if (!ClusterExpr(node.GetRule_object_ref4().GetBlock1().GetRule_cluster_expr1(),
false, context.ServiceId, context.Cluster)) {
@@ -969,8 +969,8 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
if (node.HasBlock3()) { // IF EXISTS
missingOk = true;
Y_DEBUG_ABORT_UNLESS(
- IS_TOKEN(Ctx.Settings.Antlr4Parser, node.GetBlock3().GetToken1().GetId(), IF) &&
- IS_TOKEN(Ctx.Settings.Antlr4Parser, node.GetBlock3().GetToken2().GetId(), EXISTS)
+ IS_TOKEN(Ctx_.Settings.Antlr4Parser, node.GetBlock3().GetToken1().GetId(), IF) &&
+ IS_TOKEN(Ctx_.Settings.Antlr4Parser, node.GetBlock3().GetToken2().GetId(), EXISTS)
);
}
@@ -983,13 +983,13 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
}
}
- AddStatementToBlocks(blocks, BuildDropObjectOperation(Ctx.Pos(), objectId, typeId, missingOk, std::move(kv), context));
+ AddStatementToBlocks(blocks, BuildDropObjectOperation(Ctx_.Pos(), objectId, typeId, missingOk, std::move(kv), context));
break;
}
case TRule_sql_stmt_core::kAltSqlStmtCore30: {
// create_external_data_source_stmt: CREATE (OR REPLACE)? EXTERNAL DATA SOURCE (IF NOT EXISTS)? name WITH (k=v,...);
auto& node = core.GetAlt_sql_stmt_core30().GetRule_create_external_data_source_stmt1();
- TObjectOperatorContext context(Ctx.Scoped);
+ TObjectOperatorContext context(Ctx_.Scoped);
if (node.GetRule_object_ref7().HasBlock1()) {
if (!ClusterExpr(node.GetRule_object_ref7().GetBlock1().GetRule_cluster_expr1(),
false, context.ServiceId, context.Cluster)) {
@@ -1001,8 +1001,8 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
if (node.HasBlock2()) { // OR REPLACE
replaceIfExists = true;
Y_DEBUG_ABORT_UNLESS(
- IS_TOKEN(Ctx.Settings.Antlr4Parser, node.GetBlock2().GetToken1().GetId(), OR) &&
- IS_TOKEN(Ctx.Settings.Antlr4Parser, node.GetBlock2().GetToken2().GetId(), REPLACE)
+ IS_TOKEN(Ctx_.Settings.Antlr4Parser, node.GetBlock2().GetToken1().GetId(), OR) &&
+ IS_TOKEN(Ctx_.Settings.Antlr4Parser, node.GetBlock2().GetToken2().GetId(), REPLACE)
);
}
@@ -1010,9 +1010,9 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
if (node.HasBlock6()) { // IF NOT EXISTS
existingOk = true;
Y_DEBUG_ABORT_UNLESS(
- IS_TOKEN(Ctx.Settings.Antlr4Parser, node.GetBlock6().GetToken1().GetId(), IF) &&
- IS_TOKEN(Ctx.Settings.Antlr4Parser, node.GetBlock6().GetToken2().GetId(), NOT) &&
- IS_TOKEN(Ctx.Settings.Antlr4Parser, node.GetBlock6().GetToken3().GetId(), EXISTS)
+ IS_TOKEN(Ctx_.Settings.Antlr4Parser, node.GetBlock6().GetToken1().GetId(), IF) &&
+ IS_TOKEN(Ctx_.Settings.Antlr4Parser, node.GetBlock6().GetToken2().GetId(), NOT) &&
+ IS_TOKEN(Ctx_.Settings.Antlr4Parser, node.GetBlock6().GetToken3().GetId(), EXISTS)
);
}
@@ -1022,14 +1022,14 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
return false;
}
- AddStatementToBlocks(blocks, BuildCreateObjectOperation(Ctx.Pos(), BuildTablePath(Ctx.GetPrefixPath(context.ServiceId, context.Cluster), objectId), "EXTERNAL_DATA_SOURCE", existingOk, replaceIfExists, std::move(kv), context));
+ AddStatementToBlocks(blocks, BuildCreateObjectOperation(Ctx_.Pos(), BuildTablePath(Ctx_.GetPrefixPath(context.ServiceId, context.Cluster), objectId), "EXTERNAL_DATA_SOURCE", existingOk, replaceIfExists, std::move(kv), context));
break;
}
case TRule_sql_stmt_core::kAltSqlStmtCore31: {
// alter_external_data_source_stmt: ALTER EXTERNAL DATA SOURCE object_ref alter_external_data_source_action (COMMA alter_external_data_source_action)*
- Ctx.BodyPart();
+ Ctx_.BodyPart();
const auto& node = core.GetAlt_sql_stmt_core31().GetRule_alter_external_data_source_stmt1();
- TObjectOperatorContext context(Ctx.Scoped);
+ TObjectOperatorContext context(Ctx_.Scoped);
if (node.GetRule_object_ref5().HasBlock1()) {
if (!ClusterExpr(node.GetRule_object_ref5().GetBlock1().GetRule_cluster_expr1(),
false, context.ServiceId, context.Cluster)) {
@@ -1050,13 +1050,13 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
}
}
- AddStatementToBlocks(blocks, BuildAlterObjectOperation(Ctx.Pos(), objectId, "EXTERNAL_DATA_SOURCE", std::move(kv), std::move(toReset), context));
+ AddStatementToBlocks(blocks, BuildAlterObjectOperation(Ctx_.Pos(), objectId, "EXTERNAL_DATA_SOURCE", std::move(kv), std::move(toReset), context));
break;
}
case TRule_sql_stmt_core::kAltSqlStmtCore32: {
// drop_external_data_source_stmt: DROP EXTERNAL DATA SOURCE (IF EXISTS)? name;
auto& node = core.GetAlt_sql_stmt_core32().GetRule_drop_external_data_source_stmt1();
- TObjectOperatorContext context(Ctx.Scoped);
+ TObjectOperatorContext context(Ctx_.Scoped);
if (node.GetRule_object_ref6().HasBlock1()) {
if (!ClusterExpr(node.GetRule_object_ref6().GetBlock1().GetRule_cluster_expr1(),
false, context.ServiceId, context.Cluster)) {
@@ -1068,19 +1068,19 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
if (node.HasBlock5()) { // IF EXISTS
missingOk = true;
Y_DEBUG_ABORT_UNLESS(
- IS_TOKEN(Ctx.Settings.Antlr4Parser, node.GetBlock5().GetToken1().GetId(), IF) &&
- IS_TOKEN(Ctx.Settings.Antlr4Parser, node.GetBlock5().GetToken2().GetId(), EXISTS)
+ IS_TOKEN(Ctx_.Settings.Antlr4Parser, node.GetBlock5().GetToken1().GetId(), IF) &&
+ IS_TOKEN(Ctx_.Settings.Antlr4Parser, node.GetBlock5().GetToken2().GetId(), EXISTS)
);
}
const TString& objectId = Id(node.GetRule_object_ref6().GetRule_id_or_at2(), *this).second;
- AddStatementToBlocks(blocks, BuildDropObjectOperation(Ctx.Pos(), BuildTablePath(Ctx.GetPrefixPath(context.ServiceId, context.Cluster), objectId), "EXTERNAL_DATA_SOURCE", missingOk, {}, context));
+ AddStatementToBlocks(blocks, BuildDropObjectOperation(Ctx_.Pos(), BuildTablePath(Ctx_.GetPrefixPath(context.ServiceId, context.Cluster), objectId), "EXTERNAL_DATA_SOURCE", missingOk, {}, context));
break;
}
case TRule_sql_stmt_core::kAltSqlStmtCore33: {
// create_replication_stmt: CREATE ASYNC REPLICATION
auto& node = core.GetAlt_sql_stmt_core33().GetRule_create_replication_stmt1();
- TObjectOperatorContext context(Ctx.Scoped);
+ TObjectOperatorContext context(Ctx_.Scoped);
if (node.GetRule_object_ref4().HasBlock1()) {
const auto& cluster = node.GetRule_object_ref4().GetBlock1().GetRule_cluster_expr1();
if (!ClusterExpr(cluster, false, context.ServiceId, context.Cluster)) {
@@ -1088,7 +1088,7 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
}
}
- auto prefixPath = Ctx.GetPrefixPath(context.ServiceId, context.Cluster);
+ auto prefixPath = Ctx_.GetPrefixPath(context.ServiceId, context.Cluster);
std::vector<std::pair<TString, TString>> targets;
if (!AsyncReplicationTarget(targets, prefixPath, node.GetRule_replication_target6(), *this)) {
@@ -1101,20 +1101,20 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
}
std::map<TString, TNodePtr> settings;
- TSqlExpression expr(Ctx, Mode);
+ TSqlExpression expr(Ctx_, Mode_);
if (!AsyncReplicationSettings(settings, node.GetRule_replication_settings10(), expr, true)) {
return false;
}
const TString id = Id(node.GetRule_object_ref4().GetRule_id_or_at2(), *this).second;
- AddStatementToBlocks(blocks, BuildCreateAsyncReplication(Ctx.Pos(), BuildTablePath(prefixPath, id),
+ AddStatementToBlocks(blocks, BuildCreateAsyncReplication(Ctx_.Pos(), BuildTablePath(prefixPath, id),
std::move(targets), std::move(settings), context));
break;
}
case TRule_sql_stmt_core::kAltSqlStmtCore34: {
// drop_replication_stmt: DROP ASYNC REPLICATION
auto& node = core.GetAlt_sql_stmt_core34().GetRule_drop_replication_stmt1();
- TObjectOperatorContext context(Ctx.Scoped);
+ TObjectOperatorContext context(Ctx_.Scoped);
if (node.GetRule_object_ref4().HasBlock1()) {
const auto& cluster = node.GetRule_object_ref4().GetBlock1().GetRule_cluster_expr1();
if (!ClusterExpr(cluster, false, context.ServiceId, context.Cluster)) {
@@ -1123,13 +1123,13 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
}
const TString id = Id(node.GetRule_object_ref4().GetRule_id_or_at2(), *this).second;
- AddStatementToBlocks(blocks, BuildDropAsyncReplication(Ctx.Pos(),
- BuildTablePath(Ctx.GetPrefixPath(context.ServiceId, context.Cluster), id),
+ AddStatementToBlocks(blocks, BuildDropAsyncReplication(Ctx_.Pos(),
+ BuildTablePath(Ctx_.GetPrefixPath(context.ServiceId, context.Cluster), id),
node.HasBlock5(), context));
break;
}
case TRule_sql_stmt_core::kAltSqlStmtCore35: {
- Ctx.BodyPart();
+ Ctx_.BodyPart();
// create_topic_stmt: CREATE TOPIC (IF NOT EXISTS)? topic1 (CONSUMER ...)? [WITH (opt1 = val1, ...]?
auto& rule = core.GetAlt_sql_stmt_core35().GetRule_create_topic_stmt1();
TTopicRef tr;
@@ -1162,14 +1162,14 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
CreateTopicSettings(topic_settings_node, params.TopicSettings);
}
- AddStatementToBlocks(blocks, BuildCreateTopic(Ctx.Pos(), tr, params, Ctx.Scoped));
+ AddStatementToBlocks(blocks, BuildCreateTopic(Ctx_.Pos(), tr, params, Ctx_.Scoped));
break;
}
case TRule_sql_stmt_core::kAltSqlStmtCore36: {
// alter_topic_stmt: ALTER TOPIC topic_ref alter_topic_action (COMMA alter_topic_action)*;
// alter_topic_stmt: ALTER TOPIC IF EXISTS topic_ref alter_topic_action (COMMA alter_topic_action)*;
- Ctx.BodyPart();
+ Ctx_.BodyPart();
auto& rule = core.GetAlt_sql_stmt_core36().GetRule_alter_topic_stmt1();
TTopicRef tr;
bool missingOk = false;
@@ -1193,12 +1193,12 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
}
}
- AddStatementToBlocks(blocks, BuildAlterTopic(Ctx.Pos(), tr, params, Ctx.Scoped));
+ AddStatementToBlocks(blocks, BuildAlterTopic(Ctx_.Pos(), tr, params, Ctx_.Scoped));
break;
}
case TRule_sql_stmt_core::kAltSqlStmtCore37: {
// drop_topic_stmt: DROP TOPIC (IF EXISTS)? topic_ref;
- Ctx.BodyPart();
+ Ctx_.BodyPart();
const auto& rule = core.GetAlt_sql_stmt_core37().GetRule_drop_topic_stmt1();
TDropTopicParameters params;
@@ -1212,19 +1212,19 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
if (!TopicRefImpl(rule.GetRule_topic_ref4(), tr)) {
return false;
}
- AddStatementToBlocks(blocks, BuildDropTopic(Ctx.Pos(), tr, params, Ctx.Scoped));
+ AddStatementToBlocks(blocks, BuildDropTopic(Ctx_.Pos(), tr, params, Ctx_.Scoped));
break;
}
case TRule_sql_stmt_core::kAltSqlStmtCore38: {
// GRANT permission_name_target ON an_id_schema (COMMA an_id_schema)* TO role_name (COMMA role_name)* COMMA? (WITH GRANT OPTION)?;
- Ctx.BodyPart();
+ Ctx_.BodyPart();
auto& node = core.GetAlt_sql_stmt_core38().GetRule_grant_permissions_stmt1();
- Ctx.Token(node.GetToken1());
- const TPosition pos = Ctx.Pos();
+ Ctx_.Token(node.GetToken1());
+ const TPosition pos = Ctx_.Pos();
- TString service = Ctx.Scoped->CurrService;
- TDeferredAtom cluster = Ctx.Scoped->CurrCluster;
+ TString service = Ctx_.Scoped->CurrService;
+ TDeferredAtom cluster = Ctx_.Scoped->CurrCluster;
if (cluster.Empty()) {
Error() << "USE statement is missing - no default cluster is selected";
return false;
@@ -1236,9 +1236,9 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
}
TVector<TDeferredAtom> schemaPaths;
- schemaPaths.emplace_back(Ctx.Pos(), Id(node.GetRule_an_id_schema4(), *this));
+ schemaPaths.emplace_back(Ctx_.Pos(), Id(node.GetRule_an_id_schema4(), *this));
for (const auto& item : node.GetBlock5()) {
- schemaPaths.emplace_back(Ctx.Pos(), Id(item.GetRule_an_id_schema2(), *this));
+ schemaPaths.emplace_back(Ctx_.Pos(), Id(item.GetRule_an_id_schema2(), *this));
}
TVector<TDeferredAtom> roleNames;
@@ -1254,20 +1254,20 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
}
}
- AddStatementToBlocks(blocks, BuildGrantPermissions(pos, service, cluster, permissions, schemaPaths, roleNames, Ctx.Scoped));
+ AddStatementToBlocks(blocks, BuildGrantPermissions(pos, service, cluster, permissions, schemaPaths, roleNames, Ctx_.Scoped));
break;
}
case TRule_sql_stmt_core::kAltSqlStmtCore39:
{
// REVOKE (GRANT OPTION FOR)? permission_name_target ON an_id_schema (COMMA an_id_schema)* FROM role_name (COMMA role_name)*;
- Ctx.BodyPart();
+ Ctx_.BodyPart();
auto& node = core.GetAlt_sql_stmt_core39().GetRule_revoke_permissions_stmt1();
- Ctx.Token(node.GetToken1());
- const TPosition pos = Ctx.Pos();
+ Ctx_.Token(node.GetToken1());
+ const TPosition pos = Ctx_.Pos();
- TString service = Ctx.Scoped->CurrService;
- TDeferredAtom cluster = Ctx.Scoped->CurrCluster;
+ TString service = Ctx_.Scoped->CurrService;
+ TDeferredAtom cluster = Ctx_.Scoped->CurrCluster;
if (cluster.Empty()) {
Error() << "USE statement is missing - no default cluster is selected";
return false;
@@ -1279,9 +1279,9 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
}
TVector<TDeferredAtom> schemaPaths;
- schemaPaths.emplace_back(Ctx.Pos(), Id(node.GetRule_an_id_schema5(), *this));
+ schemaPaths.emplace_back(Ctx_.Pos(), Id(node.GetRule_an_id_schema5(), *this));
for (const auto& item : node.GetBlock6()) {
- schemaPaths.emplace_back(Ctx.Pos(), Id(item.GetRule_an_id_schema2(), *this));
+ schemaPaths.emplace_back(Ctx_.Pos(), Id(item.GetRule_an_id_schema2(), *this));
}
TVector<TDeferredAtom> roleNames;
@@ -1297,14 +1297,14 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
}
}
- AddStatementToBlocks(blocks, BuildRevokePermissions(pos, service, cluster, permissions, schemaPaths, roleNames, Ctx.Scoped));
+ AddStatementToBlocks(blocks, BuildRevokePermissions(pos, service, cluster, permissions, schemaPaths, roleNames, Ctx_.Scoped));
break;
}
case TRule_sql_stmt_core::kAltSqlStmtCore40:
{
// ALTER TABLESTORE object_ref alter_table_store_action (COMMA alter_table_store_action)*;
auto& node = core.GetAlt_sql_stmt_core40().GetRule_alter_table_store_stmt1();
- TObjectOperatorContext context(Ctx.Scoped);
+ TObjectOperatorContext context(Ctx_.Scoped);
if (node.GetRule_object_ref3().HasBlock1()) {
if (!ClusterExpr(node.GetRule_object_ref3().GetBlock1().GetRule_cluster_expr1(),
@@ -1320,14 +1320,14 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
return false;
}
- AddStatementToBlocks(blocks, BuildAlterObjectOperation(Ctx.Pos(), objectId, typeId, std::move(kv), std::set<TString>(), context));
+ AddStatementToBlocks(blocks, BuildAlterObjectOperation(Ctx_.Pos(), objectId, typeId, std::move(kv), std::set<TString>(), context));
break;
}
case TRule_sql_stmt_core::kAltSqlStmtCore41:
{
// create_object_stmt: UPSERT OBJECT name (TYPE type [WITH k=v,...]);
auto& node = core.GetAlt_sql_stmt_core41().GetRule_upsert_object_stmt1();
- TObjectOperatorContext context(Ctx.Scoped);
+ TObjectOperatorContext context(Ctx_.Scoped);
if (node.GetRule_object_ref3().HasBlock1()) {
if (!ClusterExpr(node.GetRule_object_ref3().GetBlock1().GetRule_cluster_expr1(),
false, context.ServiceId, context.Cluster)) {
@@ -1344,13 +1344,13 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
}
}
- AddStatementToBlocks(blocks, BuildUpsertObjectOperation(Ctx.Pos(), objectId, typeId, std::move(kv), context));
+ AddStatementToBlocks(blocks, BuildUpsertObjectOperation(Ctx_.Pos(), objectId, typeId, std::move(kv), context));
break;
}
case TRule_sql_stmt_core::kAltSqlStmtCore42: {
// create_view_stmt: CREATE VIEW (IF NOT EXISTS)? name (WITH (k = v, ...))? AS select_stmt;
auto& node = core.GetAlt_sql_stmt_core42().GetRule_create_view_stmt1();
- TObjectOperatorContext context(Ctx.Scoped);
+ TObjectOperatorContext context(Ctx_.Scoped);
if (node.GetRule_object_ref4().HasBlock1()) {
if (!ClusterExpr(node.GetRule_object_ref4().GetBlock1().GetRule_cluster_expr1(),
false,
@@ -1375,8 +1375,8 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
const TString objectId = Id(node.GetRule_object_ref4().GetRule_id_or_at2(), *this).second;
constexpr const char* TypeId = "VIEW";
AddStatementToBlocks(blocks,
- BuildCreateObjectOperation(Ctx.Pos(),
- BuildTablePath(Ctx.GetPrefixPath(context.ServiceId, context.Cluster), objectId),
+ BuildCreateObjectOperation(Ctx_.Pos(),
+ BuildTablePath(Ctx_.GetPrefixPath(context.ServiceId, context.Cluster), objectId),
TypeId,
existingOk,
false,
@@ -1387,7 +1387,7 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
case TRule_sql_stmt_core::kAltSqlStmtCore43: {
// drop_view_stmt: DROP VIEW (IF EXISTS)? name;
auto& node = core.GetAlt_sql_stmt_core43().GetRule_drop_view_stmt1();
- TObjectOperatorContext context(Ctx.Scoped);
+ TObjectOperatorContext context(Ctx_.Scoped);
if (node.GetRule_object_ref4().HasBlock1()) {
if (!ClusterExpr(node.GetRule_object_ref4().GetBlock1().GetRule_cluster_expr1(),
false,
@@ -1402,8 +1402,8 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
const TString objectId = Id(node.GetRule_object_ref4().GetRule_id_or_at2(), *this).second;
constexpr const char* TypeId = "VIEW";
AddStatementToBlocks(blocks,
- BuildDropObjectOperation(Ctx.Pos(),
- BuildTablePath(Ctx.GetPrefixPath(context.ServiceId, context.Cluster), objectId),
+ BuildDropObjectOperation(Ctx_.Pos(),
+ BuildTablePath(Ctx_.GetPrefixPath(context.ServiceId, context.Cluster), objectId),
TypeId,
missingOk,
{},
@@ -1413,7 +1413,7 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
case TRule_sql_stmt_core::kAltSqlStmtCore44: {
// alter_replication_stmt: ALTER ASYNC REPLICATION
auto& node = core.GetAlt_sql_stmt_core44().GetRule_alter_replication_stmt1();
- TObjectOperatorContext context(Ctx.Scoped);
+ TObjectOperatorContext context(Ctx_.Scoped);
if (node.GetRule_object_ref4().HasBlock1()) {
const auto& cluster = node.GetRule_object_ref4().GetBlock1().GetRule_cluster_expr1();
if (!ClusterExpr(cluster, false, context.ServiceId, context.Cluster)) {
@@ -1422,7 +1422,7 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
}
std::map<TString, TNodePtr> settings;
- TSqlExpression expr(Ctx, Mode);
+ TSqlExpression expr(Ctx_, Mode_);
if (!AsyncReplicationAlterAction(settings, node.GetRule_alter_replication_action5(), expr)) {
return false;
}
@@ -1433,15 +1433,15 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
}
const TString id = Id(node.GetRule_object_ref4().GetRule_id_or_at2(), *this).second;
- AddStatementToBlocks(blocks, BuildAlterAsyncReplication(Ctx.Pos(),
- BuildTablePath(Ctx.GetPrefixPath(context.ServiceId, context.Cluster), id),
+ AddStatementToBlocks(blocks, BuildAlterAsyncReplication(Ctx_.Pos(),
+ BuildTablePath(Ctx_.GetPrefixPath(context.ServiceId, context.Cluster), id),
std::move(settings), context));
break;
}
case TRule_sql_stmt_core::kAltSqlStmtCore45: {
// create_resource_pool_stmt: CREATE RESOURCE POOL name WITH (k=v,...);
auto& node = core.GetAlt_sql_stmt_core45().GetRule_create_resource_pool_stmt1();
- TObjectOperatorContext context(Ctx.Scoped);
+ TObjectOperatorContext context(Ctx_.Scoped);
if (node.GetRule_object_ref4().HasBlock1()) {
if (!ClusterExpr(node.GetRule_object_ref4().GetBlock1().GetRule_cluster_expr1(),
false, context.ServiceId, context.Cluster)) {
@@ -1455,14 +1455,14 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
return false;
}
- AddStatementToBlocks(blocks, BuildCreateObjectOperation(Ctx.Pos(), objectId, "RESOURCE_POOL", false, false, std::move(kv), context));
+ AddStatementToBlocks(blocks, BuildCreateObjectOperation(Ctx_.Pos(), objectId, "RESOURCE_POOL", false, false, std::move(kv), context));
break;
}
case TRule_sql_stmt_core::kAltSqlStmtCore46: {
// alter_resource_pool_stmt: ALTER RESOURCE POOL object_ref alter_resource_pool_action (COMMA alter_external_data_source_action)*
- Ctx.BodyPart();
+ Ctx_.BodyPart();
const auto& node = core.GetAlt_sql_stmt_core46().GetRule_alter_resource_pool_stmt1();
- TObjectOperatorContext context(Ctx.Scoped);
+ TObjectOperatorContext context(Ctx_.Scoped);
if (node.GetRule_object_ref4().HasBlock1()) {
if (!ClusterExpr(node.GetRule_object_ref4().GetBlock1().GetRule_cluster_expr1(),
false, context.ServiceId, context.Cluster)) {
@@ -1483,13 +1483,13 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
}
}
- AddStatementToBlocks(blocks, BuildAlterObjectOperation(Ctx.Pos(), objectId, "RESOURCE_POOL", std::move(kv), std::move(toReset), context));
+ AddStatementToBlocks(blocks, BuildAlterObjectOperation(Ctx_.Pos(), objectId, "RESOURCE_POOL", std::move(kv), std::move(toReset), context));
break;
}
case TRule_sql_stmt_core::kAltSqlStmtCore47: {
// drop_resource_pool_stmt: DROP RESOURCE POOL name;
auto& node = core.GetAlt_sql_stmt_core47().GetRule_drop_resource_pool_stmt1();
- TObjectOperatorContext context(Ctx.Scoped);
+ TObjectOperatorContext context(Ctx_.Scoped);
if (node.GetRule_object_ref4().HasBlock1()) {
if (!ClusterExpr(node.GetRule_object_ref4().GetBlock1().GetRule_cluster_expr1(),
false, context.ServiceId, context.Cluster)) {
@@ -1498,13 +1498,13 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
}
const TString& objectId = Id(node.GetRule_object_ref4().GetRule_id_or_at2(), *this).second;
- AddStatementToBlocks(blocks, BuildDropObjectOperation(Ctx.Pos(), objectId, "RESOURCE_POOL", false, {}, context));
+ AddStatementToBlocks(blocks, BuildDropObjectOperation(Ctx_.Pos(), objectId, "RESOURCE_POOL", false, {}, context));
break;
}
case TRule_sql_stmt_core::kAltSqlStmtCore48: {
// create_backup_collection_stmt: CREATE BACKUP COLLECTION name WITH (k=v,...);
auto& node = core.GetAlt_sql_stmt_core48().GetRule_create_backup_collection_stmt1();
- TObjectOperatorContext context(Ctx.Scoped);
+ TObjectOperatorContext context(Ctx_.Scoped);
if (node.GetRule_backup_collection2().GetRule_object_ref3().HasBlock1()) {
if (!ClusterExpr(node.GetRule_backup_collection2().GetRule_object_ref3().GetBlock1().GetRule_cluster_expr1(),
false,
@@ -1540,8 +1540,8 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
const TString& objectId = Id(node.GetRule_backup_collection2().GetRule_object_ref3().GetRule_id_or_at2(), *this).second;
AddStatementToBlocks(blocks,
- BuildCreateBackupCollection(Ctx.Pos(),
- TString(Ctx.GetPrefixPath(context.ServiceId, context.Cluster)),
+ BuildCreateBackupCollection(Ctx_.Pos(),
+ TString(Ctx_.GetPrefixPath(context.ServiceId, context.Cluster)),
objectId,
TCreateBackupCollectionParameters {
.Settings = std::move(kv),
@@ -1555,7 +1555,7 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
case TRule_sql_stmt_core::kAltSqlStmtCore49: {
// alter_backup_collection_stmt: ALTER BACKUP COLLECTION name alter_backup_collection_action (COMMA alter_backup_collection_action)*;
auto& node = core.GetAlt_sql_stmt_core49().GetRule_alter_backup_collection_stmt1();
- TObjectOperatorContext context(Ctx.Scoped);
+ TObjectOperatorContext context(Ctx_.Scoped);
if (node.GetRule_backup_collection2().GetRule_object_ref3().HasBlock1()) {
if (!ClusterExpr(node.GetRule_backup_collection2().GetRule_object_ref3().GetBlock1().GetRule_cluster_expr1(),
false,
@@ -1603,8 +1603,8 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
const TString& objectId = Id(node.GetRule_backup_collection2().GetRule_object_ref3().GetRule_id_or_at2(), *this).second;
AddStatementToBlocks(blocks,
- BuildAlterBackupCollection(Ctx.Pos(),
- TString(Ctx.GetPrefixPath(context.ServiceId, context.Cluster)),
+ BuildAlterBackupCollection(Ctx_.Pos(),
+ TString(Ctx_.GetPrefixPath(context.ServiceId, context.Cluster)),
objectId,
TAlterBackupCollectionParameters {
.Settings = std::move(kv),
@@ -1620,7 +1620,7 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
case TRule_sql_stmt_core::kAltSqlStmtCore50: {
// drop_backup_collection_stmt: DROP BACKUP COLLECTION name;
auto& node = core.GetAlt_sql_stmt_core50().GetRule_drop_backup_collection_stmt1();
- TObjectOperatorContext context(Ctx.Scoped);
+ TObjectOperatorContext context(Ctx_.Scoped);
if (node.GetRule_backup_collection2().GetRule_object_ref3().HasBlock1()) {
if (!ClusterExpr(node.GetRule_backup_collection2().GetRule_object_ref3().GetBlock1().GetRule_cluster_expr1(),
false,
@@ -1632,8 +1632,8 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
const TString& objectId = Id(node.GetRule_backup_collection2().GetRule_object_ref3().GetRule_id_or_at2(), *this).second;
AddStatementToBlocks(blocks,
- BuildDropBackupCollection(Ctx.Pos(),
- TString(Ctx.GetPrefixPath(context.ServiceId, context.Cluster)),
+ BuildDropBackupCollection(Ctx_.Pos(),
+ TString(Ctx_.GetPrefixPath(context.ServiceId, context.Cluster)),
objectId,
TDropBackupCollectionParameters {
.MissingOk = false,
@@ -1643,7 +1643,7 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
}
case TRule_sql_stmt_core::kAltSqlStmtCore51: {
// analyze_stmt: ANALYZE table_ref
- Ctx.BodyPart();
+ Ctx_.BodyPart();
const auto& rule = core.GetAlt_sql_stmt_core51().GetRule_analyze_stmt1();
if (!rule.GetRule_analyze_table_list2().GetBlock2().empty()) {
@@ -1671,13 +1671,13 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
}
auto params = TAnalyzeParams{.Table = std::make_shared<TTableRef>(tr), .Columns = std::move(columns)};
- AddStatementToBlocks(blocks, BuildAnalyze(Ctx.Pos(), tr.Service, tr.Cluster, params, Ctx.Scoped));
+ AddStatementToBlocks(blocks, BuildAnalyze(Ctx_.Pos(), tr.Service, tr.Cluster, params, Ctx_.Scoped));
break;
}
case TRule_sql_stmt_core::kAltSqlStmtCore52: {
// create_resource_pool_classifier_stmt: CREATE RESOURCE POOL CLASSIFIER name WITH (k=v,...);
auto& node = core.GetAlt_sql_stmt_core52().GetRule_create_resource_pool_classifier_stmt1();
- TObjectOperatorContext context(Ctx.Scoped);
+ TObjectOperatorContext context(Ctx_.Scoped);
if (node.GetRule_object_ref5().HasBlock1()) {
if (!ClusterExpr(node.GetRule_object_ref5().GetBlock1().GetRule_cluster_expr1(),
false, context.ServiceId, context.Cluster)) {
@@ -1691,14 +1691,14 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
return false;
}
- AddStatementToBlocks(blocks, BuildCreateObjectOperation(Ctx.Pos(), objectId, "RESOURCE_POOL_CLASSIFIER", false, false, std::move(kv), context));
+ AddStatementToBlocks(blocks, BuildCreateObjectOperation(Ctx_.Pos(), objectId, "RESOURCE_POOL_CLASSIFIER", false, false, std::move(kv), context));
break;
}
case TRule_sql_stmt_core::kAltSqlStmtCore53: {
// alter_resource_pool_classifier_stmt: ALTER RESOURCE POOL CLASSIFIER object_ref alter_resource_pool_classifier_action (COMMA alter_resource_pool_classifier_action)*
- Ctx.BodyPart();
+ Ctx_.BodyPart();
const auto& node = core.GetAlt_sql_stmt_core53().GetRule_alter_resource_pool_classifier_stmt1();
- TObjectOperatorContext context(Ctx.Scoped);
+ TObjectOperatorContext context(Ctx_.Scoped);
if (node.GetRule_object_ref5().HasBlock1()) {
if (!ClusterExpr(node.GetRule_object_ref5().GetBlock1().GetRule_cluster_expr1(),
false, context.ServiceId, context.Cluster)) {
@@ -1719,13 +1719,13 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
}
}
- AddStatementToBlocks(blocks, BuildAlterObjectOperation(Ctx.Pos(), objectId, "RESOURCE_POOL_CLASSIFIER", std::move(kv), std::move(toReset), context));
+ AddStatementToBlocks(blocks, BuildAlterObjectOperation(Ctx_.Pos(), objectId, "RESOURCE_POOL_CLASSIFIER", std::move(kv), std::move(toReset), context));
break;
}
case TRule_sql_stmt_core::kAltSqlStmtCore54: {
// drop_resource_pool_classifier_stmt: DROP RESOURCE POOL CLASSIFIER name;
auto& node = core.GetAlt_sql_stmt_core54().GetRule_drop_resource_pool_classifier_stmt1();
- TObjectOperatorContext context(Ctx.Scoped);
+ TObjectOperatorContext context(Ctx_.Scoped);
if (node.GetRule_object_ref5().HasBlock1()) {
if (!ClusterExpr(node.GetRule_object_ref5().GetBlock1().GetRule_cluster_expr1(),
false, context.ServiceId, context.Cluster)) {
@@ -1734,13 +1734,13 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
}
const TString& objectId = Id(node.GetRule_object_ref5().GetRule_id_or_at2(), *this).second;
- AddStatementToBlocks(blocks, BuildDropObjectOperation(Ctx.Pos(), objectId, "RESOURCE_POOL_CLASSIFIER", false, {}, context));
+ AddStatementToBlocks(blocks, BuildDropObjectOperation(Ctx_.Pos(), objectId, "RESOURCE_POOL_CLASSIFIER", false, {}, context));
break;
}
case TRule_sql_stmt_core::kAltSqlStmtCore55: {
// backup_stmt: BACKUP object_ref (INCREMENTAL)?;
auto& node = core.GetAlt_sql_stmt_core55().GetRule_backup_stmt1();
- TObjectOperatorContext context(Ctx.Scoped);
+ TObjectOperatorContext context(Ctx_.Scoped);
if (node.GetRule_object_ref2().HasBlock1()) {
if (!ClusterExpr(node.GetRule_object_ref2().GetBlock1().GetRule_cluster_expr1(),
false, context.ServiceId, context.Cluster)) {
@@ -1753,8 +1753,8 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
const TString& objectId = Id(node.GetRule_object_ref2().GetRule_id_or_at2(), *this).second;
AddStatementToBlocks(blocks,
BuildBackup(
- Ctx.Pos(),
- TString(Ctx.GetPrefixPath(context.ServiceId, context.Cluster)),
+ Ctx_.Pos(),
+ TString(Ctx_.GetPrefixPath(context.ServiceId, context.Cluster)),
objectId,
TBackupParameters{
.Incremental = incremental,
@@ -1765,7 +1765,7 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
case TRule_sql_stmt_core::kAltSqlStmtCore56: {
// restore_stmt: RESTORE object_ref (AT STRING_VALUE)?;
auto& node = core.GetAlt_sql_stmt_core56().GetRule_restore_stmt1();
- TObjectOperatorContext context(Ctx.Scoped);
+ TObjectOperatorContext context(Ctx_.Scoped);
if (node.GetRule_object_ref2().HasBlock1()) {
if (!ClusterExpr(node.GetRule_object_ref2().GetBlock1().GetRule_cluster_expr1(),
false, context.ServiceId, context.Cluster)) {
@@ -1775,8 +1775,8 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
TString at;
if (node.HasBlock3()) {
- const TString stringValue = Ctx.Token(node.GetBlock3().GetToken2());
- const auto unescaped = StringContent(Ctx, Ctx.Pos(), stringValue);
+ const TString stringValue = Ctx_.Token(node.GetBlock3().GetToken2());
+ const auto unescaped = StringContent(Ctx_, Ctx_.Pos(), stringValue);
if (!unescaped) {
return false;
}
@@ -1786,8 +1786,8 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
const TString& objectId = Id(node.GetRule_object_ref2().GetRule_id_or_at2(), *this).second;
AddStatementToBlocks(blocks,
BuildRestore(
- Ctx.Pos(),
- TString(Ctx.GetPrefixPath(context.ServiceId, context.Cluster)),
+ Ctx_.Pos(),
+ TString(Ctx_.GetPrefixPath(context.ServiceId, context.Cluster)),
objectId,
TRestoreParameters{
.At = at,
@@ -1797,19 +1797,19 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
}
case TRule_sql_stmt_core::kAltSqlStmtCore57: {
// alter_sequence_stmt: ALTER SEQUENCE (IF EXISTS)? object_ref alter_sequence_action (COMMA alter_sequence_action)*;
- Ctx.BodyPart();
+ Ctx_.BodyPart();
auto& node = core.GetAlt_sql_stmt_core57().GetRule_alter_sequence_stmt1();
- Ctx.Token(node.GetToken1());
- const TPosition pos = Ctx.Pos();
+ Ctx_.Token(node.GetToken1());
+ const TPosition pos = Ctx_.Pos();
- TString service = Ctx.Scoped->CurrService;
- TDeferredAtom cluster = Ctx.Scoped->CurrCluster;
+ TString service = Ctx_.Scoped->CurrService;
+ TDeferredAtom cluster = Ctx_.Scoped->CurrCluster;
if (cluster.Empty()) {
Error() << "USE statement is missing - no default cluster is selected";
return false;
}
- TObjectOperatorContext context(Ctx.Scoped);
+ TObjectOperatorContext context(Ctx_.Scoped);
if (node.GetRule_object_ref4().HasBlock1()) {
if (!ClusterExpr(node.GetRule_object_ref4().GetBlock1().GetRule_cluster_expr1(),
@@ -1825,8 +1825,8 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
if (node.HasBlock3()) { // IF EXISTS
params.MissingOk = true;
Y_DEBUG_ABORT_UNLESS(
- IS_TOKEN(Ctx.Settings.Antlr4Parser, node.GetBlock3().GetToken1().GetId(), IF) &&
- IS_TOKEN(Ctx.Settings.Antlr4Parser, node.GetBlock3().GetToken2().GetId(), EXISTS)
+ IS_TOKEN(Ctx_.Settings.Antlr4Parser, node.GetBlock3().GetToken1().GetId(), IF) &&
+ IS_TOKEN(Ctx_.Settings.Antlr4Parser, node.GetBlock3().GetToken2().GetId(), EXISTS)
);
}
@@ -1836,14 +1836,14 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
}
}
- AddStatementToBlocks(blocks, BuildAlterSequence(pos, service, cluster, id, params, Ctx.Scoped));
+ AddStatementToBlocks(blocks, BuildAlterSequence(pos, service, cluster, id, params, Ctx_.Scoped));
break;
}
case TRule_sql_stmt_core::kAltSqlStmtCore58: {
// create_transfer_stmt: CREATE TRANSFER
auto& node = core.GetAlt_sql_stmt_core58().GetRule_create_transfer_stmt1();
- TObjectOperatorContext context(Ctx.Scoped);
+ TObjectOperatorContext context(Ctx_.Scoped);
if (node.GetRule_object_ref3().HasBlock1()) {
const auto& cluster = node.GetRule_object_ref3().GetBlock1().GetRule_cluster_expr1();
if (!ClusterExpr(cluster, false, context.ServiceId, context.Cluster)) {
@@ -1851,10 +1851,10 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
}
}
- auto prefixPath = Ctx.GetPrefixPath(context.ServiceId, context.Cluster);
+ auto prefixPath = Ctx_.GetPrefixPath(context.ServiceId, context.Cluster);
std::map<TString, TNodePtr> settings;
- TSqlExpression expr(Ctx, Mode);
+ TSqlExpression expr(Ctx_, Mode_);
if (!TransferSettings(settings, node.GetRule_transfer_settings11(), expr, true)) {
return false;
}
@@ -1869,14 +1869,14 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
}
}
- AddStatementToBlocks(blocks, BuildCreateTransfer(Ctx.Pos(), BuildTablePath(prefixPath, id),
+ AddStatementToBlocks(blocks, BuildCreateTransfer(Ctx_.Pos(), BuildTablePath(prefixPath, id),
std::move(source), std::move(target), std::move(transformLambda), std::move(settings), context));
break;
}
case TRule_sql_stmt_core::kAltSqlStmtCore59: {
// alter_transfer_stmt: ALTER TRANSFER
auto& node = core.GetAlt_sql_stmt_core59().GetRule_alter_transfer_stmt1();
- TObjectOperatorContext context(Ctx.Scoped);
+ TObjectOperatorContext context(Ctx_.Scoped);
if (node.GetRule_object_ref3().HasBlock1()) {
const auto& cluster = node.GetRule_object_ref3().GetBlock1().GetRule_cluster_expr1();
if (!ClusterExpr(cluster, false, context.ServiceId, context.Cluster)) {
@@ -1886,7 +1886,7 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
std::map<TString, TNodePtr> settings;
std::optional<TString> transformLambda;
- TSqlExpression expr(Ctx, Mode);
+ TSqlExpression expr(Ctx_, Mode_);
auto transferAlterAction = [&](std::optional<TString>& transformLambda, const TRule_alter_transfer_action& in)
{
@@ -1914,15 +1914,15 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
}
const TString id = Id(node.GetRule_object_ref3().GetRule_id_or_at2(), *this).second;
- AddStatementToBlocks(blocks, BuildAlterTransfer(Ctx.Pos(),
- BuildTablePath(Ctx.GetPrefixPath(context.ServiceId, context.Cluster), id),
+ AddStatementToBlocks(blocks, BuildAlterTransfer(Ctx_.Pos(),
+ BuildTablePath(Ctx_.GetPrefixPath(context.ServiceId, context.Cluster), id),
std::move(transformLambda), std::move(settings), context));
break;
}
case TRule_sql_stmt_core::kAltSqlStmtCore60: {
// drop_transfer_stmt: DROP TRANSFER
auto& node = core.GetAlt_sql_stmt_core60().GetRule_drop_transfer_stmt1();
- TObjectOperatorContext context(Ctx.Scoped);
+ TObjectOperatorContext context(Ctx_.Scoped);
if (node.GetRule_object_ref3().HasBlock1()) {
const auto& cluster = node.GetRule_object_ref3().GetBlock1().GetRule_cluster_expr1();
if (!ClusterExpr(cluster, false, context.ServiceId, context.Cluster)) {
@@ -1931,8 +1931,8 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
}
const TString id = Id(node.GetRule_object_ref3().GetRule_id_or_at2(), *this).second;
- AddStatementToBlocks(blocks, BuildDropTransfer(Ctx.Pos(),
- BuildTablePath(Ctx.GetPrefixPath(context.ServiceId, context.Cluster), id),
+ AddStatementToBlocks(blocks, BuildDropTransfer(Ctx_.Pos(),
+ BuildTablePath(Ctx_.GetPrefixPath(context.ServiceId, context.Cluster), id),
node.HasBlock4(), context));
break;
}
@@ -1942,7 +1942,7 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
const auto& action = node.GetRule_alter_database_action4();
TAlterDatabaseParameters params;
- params.DbPath = TDeferredAtom(Ctx.Pos(), Id(node.GetRule_an_id_schema3(), *this));
+ params.DbPath = TDeferredAtom(Ctx_.Pos(), Id(node.GetRule_an_id_schema3(), *this));
switch (action.GetAltCase()) {
case TRule_alter_database_action::kAltAlterDatabaseAction1: {
@@ -1971,17 +1971,17 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
return false;
}
- const TPosition pos = Ctx.Pos();
- TString service = Ctx.Scoped->CurrService;
- TDeferredAtom cluster = Ctx.Scoped->CurrCluster;
+ const TPosition pos = Ctx_.Pos();
+ TString service = Ctx_.Scoped->CurrService;
+ TDeferredAtom cluster = Ctx_.Scoped->CurrCluster;
- auto stmt = BuildAlterDatabase(pos, service, cluster, params, Ctx.Scoped);
+ auto stmt = BuildAlterDatabase(pos, service, cluster, params, Ctx_.Scoped);
AddStatementToBlocks(blocks, stmt);
break;
}
case TRule_sql_stmt_core::kAltSqlStmtCore62: {
// show_create_table_stmt: SHOW CREATE (TABLE | VIEW) table_ref
- Ctx.BodyPart();
+ Ctx_.BodyPart();
const auto& rule = core.GetAlt_sql_stmt_core62().GetRule_show_create_table_stmt1();
TTableRef tr;
@@ -1997,29 +1997,29 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
YQL_ENSURE(false, "Unsupported SHOW CREATE statement type: " << typeToken);
}
- AddStatementToBlocks(blocks, BuildShowCreate(Ctx.Pos(), tr, type, Ctx.Scoped));
+ AddStatementToBlocks(blocks, BuildShowCreate(Ctx_.Pos(), tr, type, Ctx_.Scoped));
break;
}
case TRule_sql_stmt_core::ALT_NOT_SET:
- Ctx.IncrementMonCounter("sql_errors", "UnknownStatement" + internalStatementName);
+ Ctx_.IncrementMonCounter("sql_errors", "UnknownStatement" + internalStatementName);
AltNotImplemented("sql_stmt_core", core);
return false;
}
- Ctx.IncrementMonCounter("sql_features", internalStatementName);
- return !Ctx.HasPendingErrors;
+ Ctx_.IncrementMonCounter("sql_features", internalStatementName);
+ return !Ctx_.HasPendingErrors;
}
bool TSqlQuery::DeclareStatement(const TRule_declare_stmt& stmt) {
TNodePtr defaultValue;
if (stmt.HasBlock5()) {
- TSqlExpression sqlExpr(Ctx, Mode);
+ TSqlExpression sqlExpr(Ctx_, Mode_);
auto exprOrId = sqlExpr.LiteralExpr(stmt.GetBlock5().GetRule_literal_value2());
if (!exprOrId) {
return false;
}
if (!exprOrId->Expr) {
- Ctx.Error() << "Identifier is not expected here";
+ Ctx_.Error() << "Identifier is not expected here";
return false;
}
defaultValue = exprOrId->Expr;
@@ -2028,7 +2028,7 @@ bool TSqlQuery::DeclareStatement(const TRule_declare_stmt& stmt) {
Error() << "DEFAULT value not supported yet";
return false;
}
- if (!Ctx.IsParseHeading()) {
+ if (!Ctx_.IsParseHeading()) {
Error() << "DECLARE statement should be in beginning of query, but it's possible to use PRAGMA or USE before it";
return false;
}
@@ -2037,27 +2037,27 @@ bool TSqlQuery::DeclareStatement(const TRule_declare_stmt& stmt) {
if (!NamedNodeImpl(stmt.GetRule_bind_parameter2(), varName, *this)) {
return false;
}
- const auto varPos = Ctx.Pos();
+ const auto varPos = Ctx_.Pos();
const auto typeNode = TypeNode(stmt.GetRule_type_name4());
if (!typeNode) {
return false;
}
if (IsAnonymousName(varName)) {
- Ctx.Error(varPos) << "Can not use anonymous name '" << varName << "' in DECLARE statement";
+ Ctx_.Error(varPos) << "Can not use anonymous name '" << varName << "' in DECLARE statement";
return false;
}
- if (Ctx.IsAlreadyDeclared(varName)) {
- Ctx.Warning(varPos, TIssuesIds::YQL_DUPLICATE_DECLARE) << "Duplicate declaration of '" << varName << "' will be ignored";
+ if (Ctx_.IsAlreadyDeclared(varName)) {
+ Ctx_.Warning(varPos, TIssuesIds::YQL_DUPLICATE_DECLARE) << "Duplicate declaration of '" << varName << "' will be ignored";
} else {
PushNamedAtom(varPos, varName);
- Ctx.DeclareVariable(varName, varPos, typeNode);
+ Ctx_.DeclareVariable(varName, varPos, typeNode);
}
return true;
}
bool TSqlQuery::ExportStatement(const TRule_export_stmt& stmt) {
- if ((!Ctx.Settings.AlwaysAllowExports && Mode != NSQLTranslation::ESqlMode::LIBRARY) || !TopLevel) {
+ if ((!Ctx_.Settings.AlwaysAllowExports && Mode_ != NSQLTranslation::ESqlMode::LIBRARY) || !TopLevel_) {
Error() << "EXPORT statement should be used only in a library on the top level";
return false;
}
@@ -2068,7 +2068,7 @@ bool TSqlQuery::ExportStatement(const TRule_export_stmt& stmt) {
}
for (auto& bindName : bindNames) {
- if (!Ctx.AddExport(bindName.Pos, bindName.Name)) {
+ if (!Ctx_.AddExport(bindName.Pos, bindName.Name)) {
return false;
}
}
@@ -2297,7 +2297,7 @@ bool TSqlQuery::AlterTableAddColumn(const TRule_alter_table_add_column& node, TA
return false;
}
if (columnSchema->Families.size() > 1) {
- Ctx.Error() << "Several column families for a single column are not yet supported";
+ Ctx_.Error() << "Several column families for a single column are not yet supported";
return false;
}
params.AddColumns.push_back(*columnSchema);
@@ -2349,35 +2349,35 @@ bool TSqlQuery::AlterTableAlterFamily(const TRule_alter_table_alter_column_famil
const TRule_family_setting_value& value = node.GetRule_family_setting_value6();
if (to_lower(settingName.Name) == "data") {
if (entry->Data) {
- Ctx.Error() << "Redefinition of 'data' setting for column family '" << name.Name
+ Ctx_.Error() << "Redefinition of 'data' setting for column family '" << name.Name
<< "' in one alter";
return false;
}
- if (!StoreString(value, entry->Data, Ctx)) {
- Ctx.Error() << to_upper(settingName.Name) << " value should be a string literal";
+ if (!StoreString(value, entry->Data, Ctx_)) {
+ Ctx_.Error() << to_upper(settingName.Name) << " value should be a string literal";
return false;
}
} else if (to_lower(settingName.Name) == "compression") {
if (entry->Compression) {
- Ctx.Error() << "Redefinition of 'compression' setting for column family '" << name.Name
+ Ctx_.Error() << "Redefinition of 'compression' setting for column family '" << name.Name
<< "' in one alter";
return false;
}
- if (!StoreString(value, entry->Compression, Ctx)) {
- Ctx.Error() << to_upper(settingName.Name) << " value should be a string literal";
+ if (!StoreString(value, entry->Compression, Ctx_)) {
+ Ctx_.Error() << to_upper(settingName.Name) << " value should be a string literal";
return false;
}
} else if (to_lower(settingName.Name) == "compression_level") {
if (entry->CompressionLevel) {
- Ctx.Error() << "Redefinition of 'compression_level' setting for column family '" << name.Name << "' in one alter";
+ Ctx_.Error() << "Redefinition of 'compression_level' setting for column family '" << name.Name << "' in one alter";
return false;
}
- if (!StoreInt(value, entry->CompressionLevel, Ctx)) {
- Ctx.Error() << to_upper(settingName.Name) << " value should be an integer";
+ if (!StoreInt(value, entry->CompressionLevel, Ctx_)) {
+ Ctx_.Error() << to_upper(settingName.Name) << " value should be an integer";
return false;
}
} else {
- Ctx.Error() << "Unknown table setting: " << settingName.Name;
+ Ctx_.Error() << "Unknown table setting: " << settingName.Name;
return false;
}
return true;
@@ -2507,12 +2507,12 @@ bool TSqlQuery::AlterSequenceAction(const TRule_alter_sequence_action& node, TSe
switch (node.Alt_case()) {
case TRule_alter_sequence_action::kAltAlterSequenceAction1: {
if (params.StartValue) {
- Ctx.Error(Ctx.Pos()) << "Start value defined more than once";
+ Ctx_.Error(Ctx_.Pos()) << "Start value defined more than once";
return false;
}
- auto literalNumber = LiteralNumber(Ctx, node.GetAlt_alter_sequence_action1().GetRule_integer3());
+ auto literalNumber = LiteralNumber(Ctx_, node.GetAlt_alter_sequence_action1().GetRule_integer3());
if (literalNumber) {
- params.StartValue = TDeferredAtom(literalNumber, Ctx);
+ params.StartValue = TDeferredAtom(literalNumber, Ctx_);
} else {
return false;
}
@@ -2520,13 +2520,13 @@ bool TSqlQuery::AlterSequenceAction(const TRule_alter_sequence_action& node, TSe
}
case TRule_alter_sequence_action::kAltAlterSequenceAction2: {
if (params.IsRestart) {
- Ctx.Error(Ctx.Pos()) << "Restart value defined more than once";
+ Ctx_.Error(Ctx_.Pos()) << "Restart value defined more than once";
return false;
}
- auto literalNumber = LiteralNumber(Ctx, node.GetAlt_alter_sequence_action2().GetRule_integer3());
+ auto literalNumber = LiteralNumber(Ctx_, node.GetAlt_alter_sequence_action2().GetRule_integer3());
if (literalNumber) {
params.IsRestart = true;
- params.RestartValue = TDeferredAtom(literalNumber, Ctx);
+ params.RestartValue = TDeferredAtom(literalNumber, Ctx_);
} else {
return false;
}
@@ -2534,7 +2534,7 @@ bool TSqlQuery::AlterSequenceAction(const TRule_alter_sequence_action& node, TSe
}
case TRule_alter_sequence_action::kAltAlterSequenceAction3: {
if (params.IsRestart) {
- Ctx.Error(Ctx.Pos()) << "Restart value defined more than once";
+ Ctx_.Error(Ctx_.Pos()) << "Restart value defined more than once";
return false;
}
params.IsRestart = true;
@@ -2542,12 +2542,12 @@ bool TSqlQuery::AlterSequenceAction(const TRule_alter_sequence_action& node, TSe
}
case TRule_alter_sequence_action::kAltAlterSequenceAction4: {
if (params.Increment) {
- Ctx.Error(Ctx.Pos()) << "Increment defined more than once";
+ Ctx_.Error(Ctx_.Pos()) << "Increment defined more than once";
return false;
}
- auto literalNumber = LiteralNumber(Ctx, node.GetAlt_alter_sequence_action4().GetRule_integer3());
+ auto literalNumber = LiteralNumber(Ctx_, node.GetAlt_alter_sequence_action4().GetRule_integer3());
if (literalNumber) {
- params.Increment = TDeferredAtom(literalNumber, Ctx);
+ params.Increment = TDeferredAtom(literalNumber, Ctx_);
} else {
return false;
}
@@ -2568,7 +2568,7 @@ bool TSqlQuery::AlterTableAlterColumnDropNotNull(const TRule_alter_table_alter_c
}
bool TSqlQuery::AlterTableAddChangefeed(const TRule_alter_table_add_changefeed& node, TAlterTableParameters& params) {
- TSqlExpression expr(Ctx, Mode);
+ TSqlExpression expr(Ctx_, Mode_);
return CreateChangefeed(node.GetRule_changefeed2(), expr, params.AddChangefeeds);
}
@@ -2585,7 +2585,7 @@ bool TSqlQuery::AlterTableAlterChangefeed(const TRule_alter_table_alter_changefe
case TRule_changefeed_alter_settings::kAltChangefeedAlterSettings2: {
// SET
const auto& rule = alter.GetAlt_changefeed_alter_settings2().GetRule_changefeed_settings3();
- TSqlExpression expr(Ctx, Mode);
+ TSqlExpression expr(Ctx_, Mode_);
if (!ChangefeedSettings(rule, expr, params.AlterChangefeeds.back().Settings, true)) {
return false;
}
@@ -2611,10 +2611,10 @@ TNodePtr TSqlQuery::PragmaStatement(const TRule_pragma_stmt& stmt, bool& success
const TString& lowerPrefix = to_lower(prefix);
const TString pragma(Id(stmt.GetRule_an_id3(), *this));
TString normalizedPragma(pragma);
- TMaybe<TIssue> normalizeError = NormalizeName(Ctx.Pos(), normalizedPragma);
+ TMaybe<TIssue> normalizeError = NormalizeName(Ctx_.Pos(), normalizedPragma);
if (!normalizeError.Empty()) {
Error() << normalizeError->GetMessage();
- Ctx.IncrementMonCounter("sql_errors", "NormalizePragmaError");
+ Ctx_.IncrementMonCounter("sql_errors", "NormalizePragmaError");
return {};
}
@@ -2647,17 +2647,17 @@ TNodePtr TSqlQuery::PragmaStatement(const TRule_pragma_stmt& stmt, bool& success
for (auto pragmaValue : pragmaValues) {
if (pragmaValue->HasAlt_pragma_value3()) {
auto value = Token(pragmaValue->GetAlt_pragma_value3().GetToken1());
- auto parsed = StringContentOrIdContent(Ctx, Ctx.Pos(), value);
+ auto parsed = StringContentOrIdContent(Ctx_, Ctx_.Pos(), value);
if (!parsed) {
return {};
}
TString prefix;
if (withFileAlias && (values.size() == 0)) {
- prefix = Ctx.Settings.FileAliasPrefix;
+ prefix = Ctx_.Settings.FileAliasPrefix;
}
- values.push_back(TDeferredAtom(Ctx.Pos(), prefix + parsed->Content));
+ values.push_back(TDeferredAtom(Ctx_.Pos(), prefix + parsed->Content));
}
else if (pragmaValue->HasAlt_pragma_value2()
&& pragmaValue->GetAlt_pragma_value2().GetRule_id1().HasAlt_id2()
@@ -2677,129 +2677,129 @@ TNodePtr TSqlQuery::PragmaStatement(const TRule_pragma_stmt& stmt, bool& success
TString prefix;
if (withFileAlias && (values.size() == 0)) {
- prefix = Ctx.Settings.FileAliasPrefix;
+ prefix = Ctx_.Settings.FileAliasPrefix;
}
TDeferredAtom atom;
- MakeTableFromExpression(Ctx.Pos(), Ctx, namedNode, atom, prefix);
+ MakeTableFromExpression(Ctx_.Pos(), Ctx_, namedNode, atom, prefix);
values.push_back(atom);
} else {
Error() << "Expected string" << (withConfigure ? ", named parameter" : "") << " or 'default' keyword as pragma value for pragma: " << pragma;
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return {};
}
}
if (prefix.empty()) {
- if (!TopLevel && !hasLexicalScope) {
+ if (!TopLevel_ && !hasLexicalScope) {
Error() << "This pragma '" << pragma << "' is not allowed to be used in actions or subqueries";
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return{};
}
if (normalizedPragma == "refselect") {
- Ctx.PragmaRefSelect = true;
- Ctx.IncrementMonCounter("sql_pragma", "RefSelect");
+ Ctx_.PragmaRefSelect = true;
+ Ctx_.IncrementMonCounter("sql_pragma", "RefSelect");
} else if (normalizedPragma == "sampleselect") {
- Ctx.PragmaSampleSelect = true;
- Ctx.IncrementMonCounter("sql_pragma", "SampleSelect");
+ Ctx_.PragmaSampleSelect = true;
+ Ctx_.IncrementMonCounter("sql_pragma", "SampleSelect");
} else if (normalizedPragma == "allowdotinalias") {
- Ctx.PragmaAllowDotInAlias = true;
- Ctx.IncrementMonCounter("sql_pragma", "AllowDotInAlias");
+ Ctx_.PragmaAllowDotInAlias = true;
+ Ctx_.IncrementMonCounter("sql_pragma", "AllowDotInAlias");
} else if (normalizedPragma == "udf") {
if ((values.size() != 1 && values.size() != 2) || pragmaValueDefault) {
Error() << "Expected file alias as pragma value";
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return {};
}
- if (Ctx.Settings.FileAliasPrefix) {
+ if (Ctx_.Settings.FileAliasPrefix) {
if (values.size() == 1) {
- values.emplace_back(TDeferredAtom(Ctx.Pos(), ""));
+ values.emplace_back(TDeferredAtom(Ctx_.Pos(), ""));
}
TString prefix;
- if (!values[1].GetLiteral(prefix, Ctx)) {
+ if (!values[1].GetLiteral(prefix, Ctx_)) {
Error() << "Expected literal UDF module prefix in views";
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return {};
}
- values[1] = TDeferredAtom(Ctx.Pos(), Ctx.Settings.FileAliasPrefix + prefix);
+ values[1] = TDeferredAtom(Ctx_.Pos(), Ctx_.Settings.FileAliasPrefix + prefix);
}
- Ctx.IncrementMonCounter("sql_pragma", "udf");
+ Ctx_.IncrementMonCounter("sql_pragma", "udf");
success = true;
- return BuildPragma(Ctx.Pos(), TString(ConfigProviderName), "ImportUdfs", values, false);
+ return BuildPragma(Ctx_.Pos(), TString(ConfigProviderName), "ImportUdfs", values, false);
} else if (normalizedPragma == "packageversion") {
if (values.size() != 2 || pragmaValueDefault) {
Error() << "Expected package name and version";
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return {};
}
ui32 version = 0;
TString versionString;
TString packageName;
- if (!values[0].GetLiteral(packageName, Ctx) || !values[1].GetLiteral(versionString, Ctx)) {
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ if (!values[0].GetLiteral(packageName, Ctx_) || !values[1].GetLiteral(versionString, Ctx_)) {
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return {};
}
if (!PackageVersionFromString(versionString, version)) {
Error() << "Unable to parse package version, possible values 0, 1, draft, release";
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return {};
}
- Ctx.SetPackageVersion(packageName, version);
- Ctx.IncrementMonCounter("sql_pragma", "PackageVersion");
+ Ctx_.SetPackageVersion(packageName, version);
+ Ctx_.IncrementMonCounter("sql_pragma", "PackageVersion");
success = true;
- return BuildPragma(Ctx.Pos(), TString(ConfigProviderName), "SetPackageVersion", TVector<TDeferredAtom>{ values[0], TDeferredAtom(values[1].Build()->GetPos(), ToString(version)) }, false);
+ return BuildPragma(Ctx_.Pos(), TString(ConfigProviderName), "SetPackageVersion", TVector<TDeferredAtom>{ values[0], TDeferredAtom(values[1].Build()->GetPos(), ToString(version)) }, false);
} else if (normalizedPragma == "file") {
if (values.size() < 2U || values.size() > 3U || pragmaValueDefault) {
Error() << "Expected file alias, url and optional token name as pragma values";
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return {};
}
- Ctx.IncrementMonCounter("sql_pragma", "file");
+ Ctx_.IncrementMonCounter("sql_pragma", "file");
success = true;
- return BuildPragma(Ctx.Pos(), TString(ConfigProviderName), "AddFileByUrl", values, false);
+ return BuildPragma(Ctx_.Pos(), TString(ConfigProviderName), "AddFileByUrl", values, false);
} else if (normalizedPragma == "fileoption") {
if (values.size() < 3U) {
Error() << "Expected file alias, option key and value";
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return {};
}
- Ctx.IncrementMonCounter("sql_pragma", "FileOption");
+ Ctx_.IncrementMonCounter("sql_pragma", "FileOption");
success = true;
- return BuildPragma(Ctx.Pos(), TString(ConfigProviderName), "SetFileOption", values, false);
+ return BuildPragma(Ctx_.Pos(), TString(ConfigProviderName), "SetFileOption", values, false);
} else if (normalizedPragma == "folder") {
if (values.size() < 2U || values.size() > 3U || pragmaValueDefault) {
Error() << "Expected folder alias, url and optional token name as pragma values";
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return {};
}
- Ctx.IncrementMonCounter("sql_pragma", "folder");
+ Ctx_.IncrementMonCounter("sql_pragma", "folder");
success = true;
- return BuildPragma(Ctx.Pos(), TString(ConfigProviderName), "AddFolderByUrl", values, false);
+ return BuildPragma(Ctx_.Pos(), TString(ConfigProviderName), "AddFolderByUrl", values, false);
} else if (normalizedPragma == "library") {
if (values.size() < 1) {
Error() << "Expected non-empty file alias";
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return{};
}
if (values.size() > 3) {
Error() << "Expected file alias and optional url and token name as pragma values";
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return{};
}
TString alias;
- if (!values.front().GetLiteral(alias, Ctx)) {
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ if (!values.front().GetLiteral(alias, Ctx_)) {
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return{};
}
@@ -2809,8 +2809,8 @@ TNodePtr TSqlQuery::PragmaStatement(const TRule_pragma_stmt& stmt, bool& success
auto& first = std::get<1U>(library);
first.emplace();
first->second = values[1].Build()->GetPos();
- if (!values[1].GetLiteral(first->first, Ctx)) {
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ if (!values[1].GetLiteral(first->first, Ctx_)) {
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return{};
}
@@ -2826,25 +2826,25 @@ TNodePtr TSqlQuery::PragmaStatement(const TRule_pragma_stmt& stmt, bool& success
auto& second = std::get<2U>(library);
second.emplace();
second->second = values[2].Build()->GetPos();
- if (!values[2].GetLiteral(second->first, Ctx)) {
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ if (!values[2].GetLiteral(second->first, Ctx_)) {
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return{};
}
}
}
- Ctx.Libraries[alias] = std::move(library);
- Ctx.IncrementMonCounter("sql_pragma", "library");
+ Ctx_.Libraries[alias] = std::move(library);
+ Ctx_.IncrementMonCounter("sql_pragma", "library");
} else if (normalizedPragma == "package") {
if (values.size() < 2U || values.size() > 3U) {
Error() << "Expected package name, url and optional token name as pragma values";
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return {};
}
TString packageName;
- if (!values.front().GetLiteral(packageName, Ctx)) {
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ if (!values.front().GetLiteral(packageName, Ctx_)) {
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return {};
}
@@ -2872,8 +2872,8 @@ TNodePtr TSqlQuery::PragmaStatement(const TRule_pragma_stmt& stmt, bool& success
literalPtr->second = values[index].Build()->GetPos();
- if (!values[index].GetLiteral(literalPtr->first, Ctx)) {
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ if (!values[index].GetLiteral(literalPtr->first, Ctx_)) {
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return false;
}
@@ -2900,135 +2900,135 @@ TNodePtr TSqlQuery::PragmaStatement(const TRule_pragma_stmt& stmt, bool& success
return {};
}
- Ctx.Packages[packageName] = std::move(package);
- Ctx.IncrementMonCounter("sql_pragma", "package");
+ Ctx_.Packages[packageName] = std::move(package);
+ Ctx_.IncrementMonCounter("sql_pragma", "package");
} else if (normalizedPragma == "overridelibrary") {
if (values.size() != 1U) {
Error() << "Expected override library alias as pragma value";
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return {};
}
TString alias;
- if (!values.front().GetLiteral(alias, Ctx)) {
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ if (!values.front().GetLiteral(alias, Ctx_)) {
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return {};
}
TContext::TOverrideLibraryStuff overrideLibrary;
std::get<TPosition>(overrideLibrary) = values.front().Build()->GetPos();
- Ctx.OverrideLibraries[alias] = std::move(overrideLibrary);
- Ctx.IncrementMonCounter("sql_pragma", "overridelibrary");
+ Ctx_.OverrideLibraries[alias] = std::move(overrideLibrary);
+ Ctx_.IncrementMonCounter("sql_pragma", "overridelibrary");
} else if (normalizedPragma == "directread") {
- Ctx.PragmaDirectRead = true;
- Ctx.IncrementMonCounter("sql_pragma", "DirectRead");
+ Ctx_.PragmaDirectRead = true;
+ Ctx_.IncrementMonCounter("sql_pragma", "DirectRead");
} else if (normalizedPragma == "equijoin") {
- Ctx.IncrementMonCounter("sql_pragma", "EquiJoin");
+ Ctx_.IncrementMonCounter("sql_pragma", "EquiJoin");
} else if (normalizedPragma == "autocommit") {
- Ctx.PragmaAutoCommit = true;
- Ctx.IncrementMonCounter("sql_pragma", "AutoCommit");
+ Ctx_.PragmaAutoCommit = true;
+ Ctx_.IncrementMonCounter("sql_pragma", "AutoCommit");
} else if (normalizedPragma == "usetableprefixforeach") {
- Ctx.PragmaUseTablePrefixForEach = true;
- Ctx.IncrementMonCounter("sql_pragma", "UseTablePrefixForEach");
+ Ctx_.PragmaUseTablePrefixForEach = true;
+ Ctx_.IncrementMonCounter("sql_pragma", "UseTablePrefixForEach");
} else if (normalizedPragma == "tablepathprefix") {
TString value;
TMaybe<TString> arg;
if (values.size() == 1 || values.size() == 2) {
- if (!values.front().GetLiteral(value, Ctx)) {
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ if (!values.front().GetLiteral(value, Ctx_)) {
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return {};
}
if (values.size() == 2) {
arg = value;
- if (!values.back().GetLiteral(value, Ctx)) {
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ if (!values.back().GetLiteral(value, Ctx_)) {
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return {};
}
}
- if (!Ctx.SetPathPrefix(value, arg)) {
+ if (!Ctx_.SetPathPrefix(value, arg)) {
return {};
}
} else {
Error() << "Expected path prefix or tuple of (Provider, PathPrefix) or"
<< " (Cluster, PathPrefix) as pragma value";
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return {};
}
- Ctx.IncrementMonCounter("sql_pragma", "PathPrefix");
+ Ctx_.IncrementMonCounter("sql_pragma", "PathPrefix");
} else if (normalizedPragma == "groupbylimit") {
- if (values.size() != 1 || !values[0].GetLiteral() || !TryFromString(*values[0].GetLiteral(), Ctx.PragmaGroupByLimit)) {
+ if (values.size() != 1 || !values[0].GetLiteral() || !TryFromString(*values[0].GetLiteral(), Ctx_.PragmaGroupByLimit)) {
Error() << "Expected unsigned integer literal as a single argument for: " << pragma;
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return {};
}
- Ctx.IncrementMonCounter("sql_pragma", "GroupByLimit");
+ Ctx_.IncrementMonCounter("sql_pragma", "GroupByLimit");
} else if (normalizedPragma == "groupbycubelimit") {
- if (values.size() != 1 || !values[0].GetLiteral() || !TryFromString(*values[0].GetLiteral(), Ctx.PragmaGroupByCubeLimit)) {
+ if (values.size() != 1 || !values[0].GetLiteral() || !TryFromString(*values[0].GetLiteral(), Ctx_.PragmaGroupByCubeLimit)) {
Error() << "Expected unsigned integer literal as a single argument for: " << pragma;
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return {};
}
- Ctx.IncrementMonCounter("sql_pragma", "GroupByCubeLimit");
+ Ctx_.IncrementMonCounter("sql_pragma", "GroupByCubeLimit");
} else if (normalizedPragma == "simplecolumns") {
- Ctx.SimpleColumns = true;
- Ctx.IncrementMonCounter("sql_pragma", "SimpleColumns");
+ Ctx_.SimpleColumns = true;
+ Ctx_.IncrementMonCounter("sql_pragma", "SimpleColumns");
} else if (normalizedPragma == "disablesimplecolumns") {
- Ctx.SimpleColumns = false;
- Ctx.IncrementMonCounter("sql_pragma", "DisableSimpleColumns");
+ Ctx_.SimpleColumns = false;
+ Ctx_.IncrementMonCounter("sql_pragma", "DisableSimpleColumns");
} else if (normalizedPragma == "coalescejoinkeysonqualifiedall") {
- Ctx.CoalesceJoinKeysOnQualifiedAll = true;
- Ctx.IncrementMonCounter("sql_pragma", "CoalesceJoinKeysOnQualifiedAll");
+ Ctx_.CoalesceJoinKeysOnQualifiedAll = true;
+ Ctx_.IncrementMonCounter("sql_pragma", "CoalesceJoinKeysOnQualifiedAll");
} else if (normalizedPragma == "disablecoalescejoinkeysonqualifiedall") {
- Ctx.CoalesceJoinKeysOnQualifiedAll = false;
- Ctx.IncrementMonCounter("sql_pragma", "DisableCoalesceJoinKeysOnQualifiedAll");
+ Ctx_.CoalesceJoinKeysOnQualifiedAll = false;
+ Ctx_.IncrementMonCounter("sql_pragma", "DisableCoalesceJoinKeysOnQualifiedAll");
} else if (normalizedPragma == "resultrowslimit") {
- if (values.size() != 1 || !values[0].GetLiteral() || !TryFromString(*values[0].GetLiteral(), Ctx.ResultRowsLimit)) {
+ if (values.size() != 1 || !values[0].GetLiteral() || !TryFromString(*values[0].GetLiteral(), Ctx_.ResultRowsLimit)) {
Error() << "Expected unsigned integer literal as a single argument for: " << pragma;
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return {};
}
- Ctx.IncrementMonCounter("sql_pragma", "ResultRowsLimit");
+ Ctx_.IncrementMonCounter("sql_pragma", "ResultRowsLimit");
} else if (normalizedPragma == "resultsizelimit") {
- if (values.size() != 1 || !values[0].GetLiteral() || !TryFromString(*values[0].GetLiteral(), Ctx.ResultSizeLimit)) {
+ if (values.size() != 1 || !values[0].GetLiteral() || !TryFromString(*values[0].GetLiteral(), Ctx_.ResultSizeLimit)) {
Error() << "Expected unsigned integer literal as a single argument for: " << pragma;
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return {};
}
- Ctx.IncrementMonCounter("sql_pragma", "ResultSizeLimit");
+ Ctx_.IncrementMonCounter("sql_pragma", "ResultSizeLimit");
} else if (normalizedPragma == "runtimeloglevel") {
if (values.size() != 1 || !values[0].GetLiteral()) {
Error() << "Expected LogLevel as a single argument for: " << pragma;
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return {};
}
auto value = to_title(*values[0].GetLiteral());
if (!NUdf::TryLevelFromString(value)) {
Error() << "Expected LogLevel as a single argument for: " << pragma;
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return {};
}
- Ctx.RuntimeLogLevel = value;
- Ctx.IncrementMonCounter("sql_pragma", "RuntimeLogLevel");
+ Ctx_.RuntimeLogLevel = value;
+ Ctx_.IncrementMonCounter("sql_pragma", "RuntimeLogLevel");
} else if (normalizedPragma == "warning") {
if (values.size() != 2U || values.front().Empty() || values.back().Empty()) {
Error() << "Expected arguments <action>, <issueId> for: " << pragma;
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return {};
}
TString action;
TString codePattern;
- if (!values[0].GetLiteral(action, Ctx) || !values[1].GetLiteral(codePattern, Ctx)) {
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ if (!values[0].GetLiteral(action, Ctx_) || !values[1].GetLiteral(codePattern, Ctx_)) {
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return {};
}
@@ -3040,119 +3040,119 @@ TNodePtr TSqlQuery::PragmaStatement(const TRule_pragma_stmt& stmt, bool& success
break;
case TWarningRule::EParseResult::PARSE_PATTERN_FAIL:
case TWarningRule::EParseResult::PARSE_ACTION_FAIL:
- Ctx.Error() << parseError;
+ Ctx_.Error() << parseError;
return {};
default:
Y_ENSURE(false, "Unknown parse result");
}
- Ctx.WarningPolicy.AddRule(rule);
+ Ctx_.WarningPolicy.AddRule(rule);
if (rule.GetPattern() == "*" && rule.GetAction() == EWarningAction::ERROR) {
// Keep 'unused symbol' warning as warning unless explicitly set to error
- Ctx.SetWarningPolicyFor(TIssuesIds::YQL_UNUSED_SYMBOL, EWarningAction::DEFAULT);
+ Ctx_.SetWarningPolicyFor(TIssuesIds::YQL_UNUSED_SYMBOL, EWarningAction::DEFAULT);
}
- Ctx.IncrementMonCounter("sql_pragma", "warning");
+ Ctx_.IncrementMonCounter("sql_pragma", "warning");
} else if (normalizedPragma == "greetings") {
if (values.size() > 1) {
Error() << "Multiple arguments are not expected for " << pragma;
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return {};
}
if (values.empty()) {
- values.emplace_back(TDeferredAtom(Ctx.Pos(), "Hello, world! And best wishes from the YQL Team!"));
+ values.emplace_back(TDeferredAtom(Ctx_.Pos(), "Hello, world! And best wishes from the YQL Team!"));
}
TString arg;
- if (!values.front().GetLiteral(arg, Ctx)) {
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ if (!values.front().GetLiteral(arg, Ctx_)) {
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return {};
}
- Ctx.Info(Ctx.Pos()) << arg;
+ Ctx_.Info(Ctx_.Pos()) << arg;
} else if (normalizedPragma == "warningmsg") {
if (values.size() != 1 || !values[0].GetLiteral()) {
Error() << "Expected string literal as a single argument for: " << pragma;
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return {};
}
- Ctx.Warning(Ctx.Pos(), TIssuesIds::YQL_PRAGMA_WARNING_MSG) << *values[0].GetLiteral();
+ Ctx_.Warning(Ctx_.Pos(), TIssuesIds::YQL_PRAGMA_WARNING_MSG) << *values[0].GetLiteral();
} else if (normalizedPragma == "errormsg") {
if (values.size() != 1 || !values[0].GetLiteral()) {
Error() << "Expected string literal as a single argument for: " << pragma;
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return {};
}
- Ctx.Error(Ctx.Pos()) << *values[0].GetLiteral();
+ Ctx_.Error(Ctx_.Pos()) << *values[0].GetLiteral();
} else if (normalizedPragma == "classicdivision") {
- if (values.size() != 1 || !values[0].GetLiteral() || !TryFromString(*values[0].GetLiteral(), Ctx.Scoped->PragmaClassicDivision)) {
+ if (values.size() != 1 || !values[0].GetLiteral() || !TryFromString(*values[0].GetLiteral(), Ctx_.Scoped->PragmaClassicDivision)) {
Error() << "Expected boolean literal as a single argument for: " << pragma;
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return {};
}
- Ctx.IncrementMonCounter("sql_pragma", "ClassicDivision");
+ Ctx_.IncrementMonCounter("sql_pragma", "ClassicDivision");
} else if (normalizedPragma == "checkedops") {
- if (values.size() != 1 || !values[0].GetLiteral() || !TryFromString(*values[0].GetLiteral(), Ctx.Scoped->PragmaCheckedOps)) {
+ if (values.size() != 1 || !values[0].GetLiteral() || !TryFromString(*values[0].GetLiteral(), Ctx_.Scoped->PragmaCheckedOps)) {
Error() << "Expected boolean literal as a single argument for: " << pragma;
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return {};
}
- Ctx.IncrementMonCounter("sql_pragma", "CheckedOps");
+ Ctx_.IncrementMonCounter("sql_pragma", "CheckedOps");
} else if (normalizedPragma == "disableunordered") {
- Ctx.Warning(Ctx.Pos(), TIssuesIds::YQL_DEPRECATED_PRAGMA)
+ Ctx_.Warning(Ctx_.Pos(), TIssuesIds::YQL_DEPRECATED_PRAGMA)
<< "Use of deprecated DisableUnordered pragma. It will be dropped soon";
} else if (normalizedPragma == "pullupflatmapoverjoin") {
- Ctx.PragmaPullUpFlatMapOverJoin = true;
- Ctx.IncrementMonCounter("sql_pragma", "PullUpFlatMapOverJoin");
+ Ctx_.PragmaPullUpFlatMapOverJoin = true;
+ Ctx_.IncrementMonCounter("sql_pragma", "PullUpFlatMapOverJoin");
} else if (normalizedPragma == "disablepullupflatmapoverjoin") {
- Ctx.PragmaPullUpFlatMapOverJoin = false;
- Ctx.IncrementMonCounter("sql_pragma", "DisablePullUpFlatMapOverJoin");
+ Ctx_.PragmaPullUpFlatMapOverJoin = false;
+ Ctx_.IncrementMonCounter("sql_pragma", "DisablePullUpFlatMapOverJoin");
} else if (normalizedPragma == "filterpushdownoverjoinoptionalside") {
- Ctx.FilterPushdownOverJoinOptionalSide = true;
- Ctx.IncrementMonCounter("sql_pragma", "FilterPushdownOverJoinOptionalSide");
+ Ctx_.FilterPushdownOverJoinOptionalSide = true;
+ Ctx_.IncrementMonCounter("sql_pragma", "FilterPushdownOverJoinOptionalSide");
} else if (normalizedPragma == "disablefilterpushdownoverjoinoptionalside") {
- Ctx.FilterPushdownOverJoinOptionalSide = false;
- Ctx.IncrementMonCounter("sql_pragma", "DisableFilterPushdownOverJoinOptionalSide");
+ Ctx_.FilterPushdownOverJoinOptionalSide = false;
+ Ctx_.IncrementMonCounter("sql_pragma", "DisableFilterPushdownOverJoinOptionalSide");
} else if (normalizedPragma == "rotatejointree") {
- if (values.size() != 1 || !values[0].GetLiteral() || !TryFromString(*values[0].GetLiteral(), Ctx.RotateJoinTree)) {
+ if (values.size() != 1 || !values[0].GetLiteral() || !TryFromString(*values[0].GetLiteral(), Ctx_.RotateJoinTree)) {
Error() << "Expected boolean literal as a single argument for: " << pragma;
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return {};
}
} else if (normalizedPragma == "allowunnamedcolumns") {
- Ctx.WarnUnnamedColumns = false;
- Ctx.IncrementMonCounter("sql_pragma", "AllowUnnamedColumns");
+ Ctx_.WarnUnnamedColumns = false;
+ Ctx_.IncrementMonCounter("sql_pragma", "AllowUnnamedColumns");
} else if (normalizedPragma == "warnunnamedcolumns") {
- Ctx.WarnUnnamedColumns = true;
- Ctx.IncrementMonCounter("sql_pragma", "WarnUnnamedColumns");
+ Ctx_.WarnUnnamedColumns = true;
+ Ctx_.IncrementMonCounter("sql_pragma", "WarnUnnamedColumns");
} else if (normalizedPragma == "discoverymode") {
- Ctx.DiscoveryMode = true;
- Ctx.IncrementMonCounter("sql_pragma", "DiscoveryMode");
+ Ctx_.DiscoveryMode = true;
+ Ctx_.IncrementMonCounter("sql_pragma", "DiscoveryMode");
} else if (normalizedPragma == "enablesystemcolumns") {
- if (values.size() != 1 || !values[0].GetLiteral() || !TryFromString(*values[0].GetLiteral(), Ctx.EnableSystemColumns)) {
+ if (values.size() != 1 || !values[0].GetLiteral() || !TryFromString(*values[0].GetLiteral(), Ctx_.EnableSystemColumns)) {
Error() << "Expected boolean literal as a single argument for: " << pragma;
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return {};
}
- Ctx.IncrementMonCounter("sql_pragma", "EnableSystemColumns");
+ Ctx_.IncrementMonCounter("sql_pragma", "EnableSystemColumns");
} else if (normalizedPragma == "ansiinforemptyornullableitemscollections") {
- Ctx.AnsiInForEmptyOrNullableItemsCollections = true;
- Ctx.IncrementMonCounter("sql_pragma", "AnsiInForEmptyOrNullableItemsCollections");
+ Ctx_.AnsiInForEmptyOrNullableItemsCollections = true;
+ Ctx_.IncrementMonCounter("sql_pragma", "AnsiInForEmptyOrNullableItemsCollections");
} else if (normalizedPragma == "disableansiinforemptyornullableitemscollections") {
- Ctx.AnsiInForEmptyOrNullableItemsCollections = false;
- Ctx.IncrementMonCounter("sql_pragma", "DisableAnsiInForEmptyOrNullableItemsCollections");
+ Ctx_.AnsiInForEmptyOrNullableItemsCollections = false;
+ Ctx_.IncrementMonCounter("sql_pragma", "DisableAnsiInForEmptyOrNullableItemsCollections");
} else if (normalizedPragma == "dqengine" || normalizedPragma == "blockengine") {
- Ctx.IncrementMonCounter("sql_pragma", "DqEngine");
+ Ctx_.IncrementMonCounter("sql_pragma", "DqEngine");
if (values.size() != 1 || !values[0].GetLiteral()
|| ! (*values[0].GetLiteral() == "disable" || *values[0].GetLiteral() == "auto" || *values[0].GetLiteral() == "force"))
{
Error() << "Expected `disable|auto|force' argument for: " << pragma;
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return {};
}
const bool isDqEngine = normalizedPragma == "dqengine";
- auto& enable = isDqEngine ? Ctx.DqEngineEnable : Ctx.BlockEngineEnable;
- auto& force = isDqEngine ? Ctx.DqEngineForce : Ctx.BlockEngineForce;
+ auto& enable = isDqEngine ? Ctx_.DqEngineEnable : Ctx_.BlockEngineEnable;
+ auto& force = isDqEngine ? Ctx_.DqEngineForce : Ctx_.BlockEngineForce;
if (*values[0].GetLiteral() == "disable") {
enable = false;
force = false;
@@ -3164,274 +3164,274 @@ TNodePtr TSqlQuery::PragmaStatement(const TRule_pragma_stmt& stmt, bool& success
force = false;
}
- if (isDqEngine && Ctx.Engine) {
- if (*Ctx.Engine == "ytflow") {
+ if (isDqEngine && Ctx_.Engine) {
+ if (*Ctx_.Engine == "ytflow") {
if (force) {
Error() << "Expected `disable|auto` argument for: " << pragma << " pragma "
<< "with Engine pragma argument `ytflow`";
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return {};
}
enable = false;
- } else if (*Ctx.Engine == "dq") {
+ } else if (*Ctx_.Engine == "dq") {
force = true;
}
}
} else if (normalizedPragma == "ansirankfornullablekeys") {
- Ctx.AnsiRankForNullableKeys = true;
- Ctx.IncrementMonCounter("sql_pragma", "AnsiRankForNullableKeys");
+ Ctx_.AnsiRankForNullableKeys = true;
+ Ctx_.IncrementMonCounter("sql_pragma", "AnsiRankForNullableKeys");
} else if (normalizedPragma == "disableansirankfornullablekeys") {
- Ctx.AnsiRankForNullableKeys = false;
- Ctx.IncrementMonCounter("sql_pragma", "DisableAnsiRankForNullableKeys");
+ Ctx_.AnsiRankForNullableKeys = false;
+ Ctx_.IncrementMonCounter("sql_pragma", "DisableAnsiRankForNullableKeys");
} else if (normalizedPragma == "ansiorderbylimitinunionall") {
- Ctx.IncrementMonCounter("sql_pragma", "AnsiOrderByLimitInUnionAll");
+ Ctx_.IncrementMonCounter("sql_pragma", "AnsiOrderByLimitInUnionAll");
} else if (normalizedPragma == "disableansiorderbylimitinunionall") {
Error() << "DisableAnsiOrderByLimitInUnionAll pragma is deprecated and no longer supported";
- Ctx.IncrementMonCounter("sql_errors", "DeprecatedPragma");
+ Ctx_.IncrementMonCounter("sql_errors", "DeprecatedPragma");
return {};
} else if (normalizedPragma == "ansioptionalas") {
- Ctx.AnsiOptionalAs = true;
- Ctx.IncrementMonCounter("sql_pragma", "AnsiOptionalAs");
+ Ctx_.AnsiOptionalAs = true;
+ Ctx_.IncrementMonCounter("sql_pragma", "AnsiOptionalAs");
} else if (normalizedPragma == "disableansioptionalas") {
- Ctx.AnsiOptionalAs = false;
- Ctx.IncrementMonCounter("sql_pragma", "DisableAnsiOptionalAs");
+ Ctx_.AnsiOptionalAs = false;
+ Ctx_.IncrementMonCounter("sql_pragma", "DisableAnsiOptionalAs");
} else if (normalizedPragma == "warnonansialiasshadowing") {
- Ctx.WarnOnAnsiAliasShadowing = true;
- Ctx.IncrementMonCounter("sql_pragma", "WarnOnAnsiAliasShadowing");
+ Ctx_.WarnOnAnsiAliasShadowing = true;
+ Ctx_.IncrementMonCounter("sql_pragma", "WarnOnAnsiAliasShadowing");
} else if (normalizedPragma == "disablewarnonansialiasshadowing") {
- Ctx.WarnOnAnsiAliasShadowing = false;
- Ctx.IncrementMonCounter("sql_pragma", "DisableWarnOnAnsiAliasShadowing");
+ Ctx_.WarnOnAnsiAliasShadowing = false;
+ Ctx_.IncrementMonCounter("sql_pragma", "DisableWarnOnAnsiAliasShadowing");
} else if (normalizedPragma == "regexusere2") {
- if (values.size() != 1U || !values.front().GetLiteral() || !TryFromString(*values.front().GetLiteral(), Ctx.PragmaRegexUseRe2)) {
+ if (values.size() != 1U || !values.front().GetLiteral() || !TryFromString(*values.front().GetLiteral(), Ctx_.PragmaRegexUseRe2)) {
Error() << "Expected 'true' or 'false' for: " << pragma;
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return {};
}
- Ctx.IncrementMonCounter("sql_pragma", "RegexUseRe2");
+ Ctx_.IncrementMonCounter("sql_pragma", "RegexUseRe2");
} else if (normalizedPragma == "jsonqueryreturnsjsondocument") {
- Ctx.JsonQueryReturnsJsonDocument = true;
- Ctx.IncrementMonCounter("sql_pragma", "JsonQueryReturnsJsonDocument");
+ Ctx_.JsonQueryReturnsJsonDocument = true;
+ Ctx_.IncrementMonCounter("sql_pragma", "JsonQueryReturnsJsonDocument");
} else if (normalizedPragma == "disablejsonqueryreturnsjsondocument") {
- Ctx.JsonQueryReturnsJsonDocument = false;
- Ctx.IncrementMonCounter("sql_pragma", "DisableJsonQueryReturnsJsonDocument");
+ Ctx_.JsonQueryReturnsJsonDocument = false;
+ Ctx_.IncrementMonCounter("sql_pragma", "DisableJsonQueryReturnsJsonDocument");
} else if (normalizedPragma == "orderedcolumns") {
- Ctx.OrderedColumns = true;
- Ctx.IncrementMonCounter("sql_pragma", "OrderedColumns");
+ Ctx_.OrderedColumns = true;
+ Ctx_.IncrementMonCounter("sql_pragma", "OrderedColumns");
} else if (normalizedPragma == "derivecolumnorder") {
- Ctx.DeriveColumnOrder = true;
- Ctx.IncrementMonCounter("sql_pragma", "DeriveColumnOrder");
+ Ctx_.DeriveColumnOrder = true;
+ Ctx_.IncrementMonCounter("sql_pragma", "DeriveColumnOrder");
} else if (normalizedPragma == "disablederivecolumnorder") {
- Ctx.DeriveColumnOrder = false;
- Ctx.IncrementMonCounter("sql_pragma", "DisableDeriveColumnOrder");
+ Ctx_.DeriveColumnOrder = false;
+ Ctx_.IncrementMonCounter("sql_pragma", "DisableDeriveColumnOrder");
} else if (normalizedPragma == "disableorderedcolumns") {
- Ctx.OrderedColumns = false;
- Ctx.IncrementMonCounter("sql_pragma", "DisableOrderedColumns");
+ Ctx_.OrderedColumns = false;
+ Ctx_.IncrementMonCounter("sql_pragma", "DisableOrderedColumns");
} else if (normalizedPragma == "positionalunionall") {
- Ctx.PositionalUnionAll = true;
+ Ctx_.PositionalUnionAll = true;
// PositionalUnionAll implies OrderedColumns
- Ctx.OrderedColumns = true;
- Ctx.IncrementMonCounter("sql_pragma", "PositionalUnionAll");
+ Ctx_.OrderedColumns = true;
+ Ctx_.IncrementMonCounter("sql_pragma", "PositionalUnionAll");
} else if (normalizedPragma == "pqreadby") {
if (values.size() != 1 || !values[0].GetLiteral()) {
Error() << "Expected string literal as a single argument for: " << pragma;
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return {};
}
// special guard to raise error on situation:
// use cluster1;
// pragma PqReadPqBy="cluster2";
- const TString* currentClusterLiteral = Ctx.Scoped->CurrCluster.GetLiteral();
+ const TString* currentClusterLiteral = Ctx_.Scoped->CurrCluster.GetLiteral();
if (currentClusterLiteral && *values[0].GetLiteral() != "dq" && *currentClusterLiteral != *values[0].GetLiteral()) {
Error() << "Cluster in PqReadPqBy pragma differs from cluster specified in USE statement: " << *values[0].GetLiteral() << " != " << *currentClusterLiteral;
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return {};
}
- Ctx.PqReadByRtmrCluster = *values[0].GetLiteral();
- Ctx.IncrementMonCounter("sql_pragma", "PqReadBy");
+ Ctx_.PqReadByRtmrCluster = *values[0].GetLiteral();
+ Ctx_.IncrementMonCounter("sql_pragma", "PqReadBy");
} else if (normalizedPragma == "bogousstaringroupbyoverjoin") {
- Ctx.BogousStarInGroupByOverJoin = true;
- Ctx.IncrementMonCounter("sql_pragma", "BogousStarInGroupByOverJoin");
+ Ctx_.BogousStarInGroupByOverJoin = true;
+ Ctx_.IncrementMonCounter("sql_pragma", "BogousStarInGroupByOverJoin");
} else if (normalizedPragma == "strictjoinkeytypes") {
- Ctx.Scoped->StrictJoinKeyTypes = true;
- Ctx.IncrementMonCounter("sql_pragma", "StrictJoinKeyTypes");
+ Ctx_.Scoped->StrictJoinKeyTypes = true;
+ Ctx_.IncrementMonCounter("sql_pragma", "StrictJoinKeyTypes");
} else if (normalizedPragma == "disablestrictjoinkeytypes") {
- Ctx.Scoped->StrictJoinKeyTypes = false;
- Ctx.IncrementMonCounter("sql_pragma", "DisableStrictJoinKeyTypes");
+ Ctx_.Scoped->StrictJoinKeyTypes = false;
+ Ctx_.IncrementMonCounter("sql_pragma", "DisableStrictJoinKeyTypes");
} else if (normalizedPragma == "unicodeliterals") {
- Ctx.Scoped->UnicodeLiterals = true;
- Ctx.IncrementMonCounter("sql_pragma", "UnicodeLiterals");
+ Ctx_.Scoped->UnicodeLiterals = true;
+ Ctx_.IncrementMonCounter("sql_pragma", "UnicodeLiterals");
} else if (normalizedPragma == "disableunicodeliterals") {
- Ctx.Scoped->UnicodeLiterals = false;
- Ctx.IncrementMonCounter("sql_pragma", "DisableUnicodeLiterals");
+ Ctx_.Scoped->UnicodeLiterals = false;
+ Ctx_.IncrementMonCounter("sql_pragma", "DisableUnicodeLiterals");
} else if (normalizedPragma == "warnuntypedstringliterals") {
- Ctx.Scoped->WarnUntypedStringLiterals = true;
- Ctx.IncrementMonCounter("sql_pragma", "WarnUntypedStringLiterals");
+ Ctx_.Scoped->WarnUntypedStringLiterals = true;
+ Ctx_.IncrementMonCounter("sql_pragma", "WarnUntypedStringLiterals");
} else if (normalizedPragma == "disablewarnuntypedstringliterals") {
- Ctx.Scoped->WarnUntypedStringLiterals = false;
- Ctx.IncrementMonCounter("sql_pragma", "DisableWarnUntypedStringLiterals");
+ Ctx_.Scoped->WarnUntypedStringLiterals = false;
+ Ctx_.IncrementMonCounter("sql_pragma", "DisableWarnUntypedStringLiterals");
} else if (normalizedPragma == "unorderedsubqueries") {
- Ctx.UnorderedSubqueries = true;
- Ctx.IncrementMonCounter("sql_pragma", "UnorderedSubqueries");
+ Ctx_.UnorderedSubqueries = true;
+ Ctx_.IncrementMonCounter("sql_pragma", "UnorderedSubqueries");
} else if (normalizedPragma == "disableunorderedsubqueries") {
- Ctx.UnorderedSubqueries = false;
- Ctx.IncrementMonCounter("sql_pragma", "DisableUnorderedSubqueries");
+ Ctx_.UnorderedSubqueries = false;
+ Ctx_.IncrementMonCounter("sql_pragma", "DisableUnorderedSubqueries");
} else if (normalizedPragma == "datawatermarks") {
if (values.size() != 1 || !values[0].GetLiteral()
|| ! (*values[0].GetLiteral() == "enable" || *values[0].GetLiteral() == "disable"))
{
Error() << "Expected `enable|disable' argument for: " << pragma;
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return {};
}
if (*values[0].GetLiteral() == "enable") {
- Ctx.PragmaDataWatermarks = true;
+ Ctx_.PragmaDataWatermarks = true;
} else if (*values[0].GetLiteral() == "disable") {
- Ctx.PragmaDataWatermarks = false;
+ Ctx_.PragmaDataWatermarks = false;
}
- Ctx.IncrementMonCounter("sql_pragma", "DataWatermarks");
+ Ctx_.IncrementMonCounter("sql_pragma", "DataWatermarks");
} else if (normalizedPragma == "flexibletypes") {
- Ctx.FlexibleTypes = true;
- Ctx.IncrementMonCounter("sql_pragma", "FlexibleTypes");
+ Ctx_.FlexibleTypes = true;
+ Ctx_.IncrementMonCounter("sql_pragma", "FlexibleTypes");
} else if (normalizedPragma == "disableflexibletypes") {
- Ctx.Warning(Ctx.Pos(), TIssuesIds::YQL_DEPRECATED_PRAGMA)
+ Ctx_.Warning(Ctx_.Pos(), TIssuesIds::YQL_DEPRECATED_PRAGMA)
<< "Deprecated pragma DisableFlexibleTypes - it will be removed soon. "
"Consider submitting bug report if FlexibleTypes doesn't work for you";
- Ctx.FlexibleTypes = false;
- Ctx.IncrementMonCounter("sql_pragma", "DisableFlexibleTypes");
+ Ctx_.FlexibleTypes = false;
+ Ctx_.IncrementMonCounter("sql_pragma", "DisableFlexibleTypes");
} else if (normalizedPragma == "ansicurrentrow") {
- Ctx.AnsiCurrentRow = true;
- Ctx.IncrementMonCounter("sql_pragma", "AnsiCurrentRow");
+ Ctx_.AnsiCurrentRow = true;
+ Ctx_.IncrementMonCounter("sql_pragma", "AnsiCurrentRow");
} else if (normalizedPragma == "disableansicurrentrow") {
- Ctx.AnsiCurrentRow = false;
- Ctx.IncrementMonCounter("sql_pragma", "DisableAnsiCurrentRow");
+ Ctx_.AnsiCurrentRow = false;
+ Ctx_.IncrementMonCounter("sql_pragma", "DisableAnsiCurrentRow");
} else if (normalizedPragma == "emitaggapply") {
- Ctx.EmitAggApply = true;
- Ctx.IncrementMonCounter("sql_pragma", "EmitAggApply");
+ Ctx_.EmitAggApply = true;
+ Ctx_.IncrementMonCounter("sql_pragma", "EmitAggApply");
} else if (normalizedPragma == "disableemitaggapply") {
- Ctx.EmitAggApply = false;
- Ctx.IncrementMonCounter("sql_pragma", "DisableEmitAggApply");
+ Ctx_.EmitAggApply = false;
+ Ctx_.IncrementMonCounter("sql_pragma", "DisableEmitAggApply");
} else if (normalizedPragma == "useblocks") {
- Ctx.UseBlocks = true;
- Ctx.IncrementMonCounter("sql_pragma", "UseBlocks");
+ Ctx_.UseBlocks = true;
+ Ctx_.IncrementMonCounter("sql_pragma", "UseBlocks");
} else if (normalizedPragma == "disableuseblocks") {
- Ctx.UseBlocks = false;
- Ctx.IncrementMonCounter("sql_pragma", "DisableUseBlocks");
+ Ctx_.UseBlocks = false;
+ Ctx_.IncrementMonCounter("sql_pragma", "DisableUseBlocks");
} else if (normalizedPragma == "emittablesource") {
- Ctx.EmitTableSource = true;
- Ctx.IncrementMonCounter("sql_pragma", "EmitTableSource");
+ Ctx_.EmitTableSource = true;
+ Ctx_.IncrementMonCounter("sql_pragma", "EmitTableSource");
} else if (normalizedPragma == "disableemittablesource") {
- Ctx.EmitTableSource = false;
- Ctx.IncrementMonCounter("sql_pragma", "DisableEmitTableSource");
+ Ctx_.EmitTableSource = false;
+ Ctx_.IncrementMonCounter("sql_pragma", "DisableEmitTableSource");
} else if (normalizedPragma == "ansilike") {
- Ctx.AnsiLike = true;
- Ctx.IncrementMonCounter("sql_pragma", "AnsiLike");
+ Ctx_.AnsiLike = true;
+ Ctx_.IncrementMonCounter("sql_pragma", "AnsiLike");
} else if (normalizedPragma == "disableansilike") {
- Ctx.AnsiLike = false;
- Ctx.IncrementMonCounter("sql_pragma", "DisableAnsiLike");
+ Ctx_.AnsiLike = false;
+ Ctx_.IncrementMonCounter("sql_pragma", "DisableAnsiLike");
} else if (normalizedPragma == "unorderedresult") {
- Ctx.UnorderedResult = true;
- Ctx.IncrementMonCounter("sql_pragma", "UnorderedResult");
+ Ctx_.UnorderedResult = true;
+ Ctx_.IncrementMonCounter("sql_pragma", "UnorderedResult");
} else if (normalizedPragma == "disableunorderedresult") {
- Ctx.UnorderedResult = false;
- Ctx.IncrementMonCounter("sql_pragma", "DisableUnorderedResult");
+ Ctx_.UnorderedResult = false;
+ Ctx_.IncrementMonCounter("sql_pragma", "DisableUnorderedResult");
} else if (normalizedPragma == "featurer010") {
if (values.size() == 1 && values[0].GetLiteral()) {
const auto& value = *values[0].GetLiteral();
if ("prototype" == value)
- Ctx.FeatureR010 = true;
+ Ctx_.FeatureR010 = true;
else {
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return {};
}
}
else {
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return {};
}
- Ctx.IncrementMonCounter("sql_pragma", "FeatureR010");
+ Ctx_.IncrementMonCounter("sql_pragma", "FeatureR010");
} else if (normalizedPragma == "compactgroupby") {
- Ctx.CompactGroupBy = true;
- Ctx.IncrementMonCounter("sql_pragma", "CompactGroupBy");
+ Ctx_.CompactGroupBy = true;
+ Ctx_.IncrementMonCounter("sql_pragma", "CompactGroupBy");
} else if (normalizedPragma == "disablecompactgroupby") {
- Ctx.CompactGroupBy = false;
- Ctx.IncrementMonCounter("sql_pragma", "DisableCompactGroupBy");
+ Ctx_.CompactGroupBy = false;
+ Ctx_.IncrementMonCounter("sql_pragma", "DisableCompactGroupBy");
} else if (normalizedPragma == "costbasedoptimizer") {
- Ctx.IncrementMonCounter("sql_pragma", "CostBasedOptimizer");
+ Ctx_.IncrementMonCounter("sql_pragma", "CostBasedOptimizer");
if (values.size() == 1 && values[0].GetLiteral()) {
- Ctx.CostBasedOptimizer = to_lower(*values[0].GetLiteral());
+ Ctx_.CostBasedOptimizer = to_lower(*values[0].GetLiteral());
}
if (values.size() != 1 || !values[0].GetLiteral()
- || ! (Ctx.CostBasedOptimizer == "disable" || Ctx.CostBasedOptimizer == "pg" || Ctx.CostBasedOptimizer == "native"))
+ || ! (Ctx_.CostBasedOptimizer == "disable" || Ctx_.CostBasedOptimizer == "pg" || Ctx_.CostBasedOptimizer == "native"))
{
Error() << "Expected `disable|pg|native' argument for: " << pragma;
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return {};
}
} else if (normalizedPragma == "compactnamedexprs") {
- Ctx.CompactNamedExprs = true;
- Ctx.IncrementMonCounter("sql_pragma", "CompactNamedExprs");
+ Ctx_.CompactNamedExprs = true;
+ Ctx_.IncrementMonCounter("sql_pragma", "CompactNamedExprs");
} else if (normalizedPragma == "disablecompactnamedexprs") {
- Ctx.Warning(Ctx.Pos(), TIssuesIds::YQL_DEPRECATED_PRAGMA)
+ Ctx_.Warning(Ctx_.Pos(), TIssuesIds::YQL_DEPRECATED_PRAGMA)
<< "Deprecated pragma DisableCompactNamedExprs - it will be removed soon. "
"Consider submitting bug report if CompactNamedExprs doesn't work for you";
- Ctx.CompactNamedExprs = false;
- Ctx.IncrementMonCounter("sql_pragma", "DisableCompactNamedExprs");
+ Ctx_.CompactNamedExprs = false;
+ Ctx_.IncrementMonCounter("sql_pragma", "DisableCompactNamedExprs");
} else if (normalizedPragma == "validateunusedexprs") {
- Ctx.ValidateUnusedExprs = true;
- Ctx.IncrementMonCounter("sql_pragma", "ValidateUnusedExprs");
+ Ctx_.ValidateUnusedExprs = true;
+ Ctx_.IncrementMonCounter("sql_pragma", "ValidateUnusedExprs");
} else if (normalizedPragma == "disablevalidateunusedexprs") {
- Ctx.ValidateUnusedExprs = false;
- Ctx.IncrementMonCounter("sql_pragma", "DisableValidateUnusedExprs");
+ Ctx_.ValidateUnusedExprs = false;
+ Ctx_.IncrementMonCounter("sql_pragma", "DisableValidateUnusedExprs");
} else if (normalizedPragma == "ansiimplicitcrossjoin") {
- Ctx.AnsiImplicitCrossJoin = true;
- Ctx.IncrementMonCounter("sql_pragma", "AnsiImplicitCrossJoin");
+ Ctx_.AnsiImplicitCrossJoin = true;
+ Ctx_.IncrementMonCounter("sql_pragma", "AnsiImplicitCrossJoin");
} else if (normalizedPragma == "disableansiimplicitcrossjoin") {
- Ctx.AnsiImplicitCrossJoin = false;
- Ctx.IncrementMonCounter("sql_pragma", "DisableAnsiImplicitCrossJoin");
+ Ctx_.AnsiImplicitCrossJoin = false;
+ Ctx_.IncrementMonCounter("sql_pragma", "DisableAnsiImplicitCrossJoin");
} else if (normalizedPragma == "distinctoverwindow") {
- Ctx.DistinctOverWindow = true;
- Ctx.IncrementMonCounter("sql_pragma", "DistinctOverWindow");
+ Ctx_.DistinctOverWindow = true;
+ Ctx_.IncrementMonCounter("sql_pragma", "DistinctOverWindow");
} else if (normalizedPragma == "disabledistinctoverwindow") {
- Ctx.DistinctOverWindow = false;
- Ctx.IncrementMonCounter("sql_pragma", "DisableDistinctOverWindow");
+ Ctx_.DistinctOverWindow = false;
+ Ctx_.IncrementMonCounter("sql_pragma", "DisableDistinctOverWindow");
} else if (normalizedPragma == "seqmode") {
- Ctx.SeqMode = true;
- Ctx.IncrementMonCounter("sql_pragma", "SeqMode");
+ Ctx_.SeqMode = true;
+ Ctx_.IncrementMonCounter("sql_pragma", "SeqMode");
} else if (normalizedPragma == "disableseqmode") {
- Ctx.SeqMode = false;
- Ctx.IncrementMonCounter("sql_pragma", "DisableSeqMode");
+ Ctx_.SeqMode = false;
+ Ctx_.IncrementMonCounter("sql_pragma", "DisableSeqMode");
} else if (normalizedPragma == "emitunionmerge") {
- Ctx.EmitUnionMerge = true;
- Ctx.IncrementMonCounter("sql_pragma", "EmitUnionMerge");
+ Ctx_.EmitUnionMerge = true;
+ Ctx_.IncrementMonCounter("sql_pragma", "EmitUnionMerge");
} else if (normalizedPragma == "disableemitunionmerge") {
- Ctx.EmitUnionMerge = false;
- Ctx.IncrementMonCounter("sql_pragma", "DisableEmitUnionMerge");
+ Ctx_.EmitUnionMerge = false;
+ Ctx_.IncrementMonCounter("sql_pragma", "DisableEmitUnionMerge");
} else if (normalizedPragma == "distinctoverkeys") {
- Ctx.DistinctOverKeys = true;
- Ctx.IncrementMonCounter("sql_pragma", "DistinctOverKeys");
+ Ctx_.DistinctOverKeys = true;
+ Ctx_.IncrementMonCounter("sql_pragma", "DistinctOverKeys");
} else if (normalizedPragma == "disabledistinctoverkeys") {
- Ctx.DistinctOverKeys = false;
- Ctx.IncrementMonCounter("sql_pragma", "DisableDistinctOverKeys");
+ Ctx_.DistinctOverKeys = false;
+ Ctx_.IncrementMonCounter("sql_pragma", "DisableDistinctOverKeys");
} else if (normalizedPragma == "groupbyexprafterwhere") {
- Ctx.GroupByExprAfterWhere = true;
- Ctx.IncrementMonCounter("sql_pragma", "GroupByExprAfterWhere");
+ Ctx_.GroupByExprAfterWhere = true;
+ Ctx_.IncrementMonCounter("sql_pragma", "GroupByExprAfterWhere");
} else if (normalizedPragma == "disablegroupbyexprafterwhere") {
- Ctx.GroupByExprAfterWhere = false;
- Ctx.IncrementMonCounter("sql_pragma", "DisableGroupByExprAfterWhere");
+ Ctx_.GroupByExprAfterWhere = false;
+ Ctx_.IncrementMonCounter("sql_pragma", "DisableGroupByExprAfterWhere");
} else if (normalizedPragma == "failongroupbyexproverride") {
- Ctx.FailOnGroupByExprOverride = true;
- Ctx.IncrementMonCounter("sql_pragma", "FailOnGroupByExprOverride");
+ Ctx_.FailOnGroupByExprOverride = true;
+ Ctx_.IncrementMonCounter("sql_pragma", "FailOnGroupByExprOverride");
} else if (normalizedPragma == "disablefailongroupbyexproverride") {
- Ctx.FailOnGroupByExprOverride = false;
- Ctx.IncrementMonCounter("sql_pragma", "DisableFailOnGroupByExprOverride");
+ Ctx_.FailOnGroupByExprOverride = false;
+ Ctx_.IncrementMonCounter("sql_pragma", "DisableFailOnGroupByExprOverride");
} else if (normalizedPragma == "engine") {
- Ctx.IncrementMonCounter("sql_pragma", "Engine");
+ Ctx_.IncrementMonCounter("sql_pragma", "Engine");
const TString* literal = values.size() == 1
? values[0].GetLiteral()
@@ -3439,106 +3439,106 @@ TNodePtr TSqlQuery::PragmaStatement(const TRule_pragma_stmt& stmt, bool& success
if (!literal || ! (*literal == "default" || *literal == "dq" || *literal == "ytflow")) {
Error() << "Expected `default|dq|ytflow' argument for: " << pragma;
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return {};
}
if (*literal == "ytflow") {
- if (Ctx.DqEngineForce) {
+ if (Ctx_.DqEngineForce) {
Error() << "Expected `disable|auto` argument for DqEngine pragma "
<< " with " << pragma << " pragma argument `ytflow`";
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return {};
}
- Ctx.DqEngineEnable = false;
+ Ctx_.DqEngineEnable = false;
} else if (*literal == "dq") {
- Ctx.DqEngineEnable = true;
- Ctx.DqEngineForce = true;
+ Ctx_.DqEngineEnable = true;
+ Ctx_.DqEngineForce = true;
}
- Ctx.Engine = *literal;
+ Ctx_.Engine = *literal;
} else if (normalizedPragma == "optimizesimpleilike") {
- Ctx.OptimizeSimpleIlike = true;
- Ctx.IncrementMonCounter("sql_pragma", "OptimizeSimpleILIKE");
+ Ctx_.OptimizeSimpleIlike = true;
+ Ctx_.IncrementMonCounter("sql_pragma", "OptimizeSimpleILIKE");
} else if (normalizedPragma == "disableoptimizesimpleilike") {
- Ctx.OptimizeSimpleIlike = false;
- Ctx.IncrementMonCounter("sql_pragma", "DisableOptimizeSimpleILIKE");
+ Ctx_.OptimizeSimpleIlike = false;
+ Ctx_.IncrementMonCounter("sql_pragma", "DisableOptimizeSimpleILIKE");
} else {
Error() << "Unknown pragma: " << pragma;
- Ctx.IncrementMonCounter("sql_errors", "UnknownPragma");
+ Ctx_.IncrementMonCounter("sql_errors", "UnknownPragma");
return {};
}
} else {
if (lowerPrefix == "yson") {
- if (!TopLevel) {
+ if (!TopLevel_) {
Error() << "This pragma '" << pragma << "' is not allowed to be used in actions";
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return {};
}
if (normalizedPragma == "fast") {
- Ctx.Warning(Ctx.Pos(), TIssuesIds::YQL_DEPRECATED_PRAGMA)
+ Ctx_.Warning(Ctx_.Pos(), TIssuesIds::YQL_DEPRECATED_PRAGMA)
<< "Use of deprecated yson.Fast pragma. It will be dropped soon";
success = true;
return {};
} else if (normalizedPragma == "autoconvert") {
- Ctx.PragmaYsonAutoConvert = true;
+ Ctx_.PragmaYsonAutoConvert = true;
success = true;
return {};
} else if (normalizedPragma == "strict") {
if (values.size() == 0U) {
- Ctx.PragmaYsonStrict = true;
+ Ctx_.PragmaYsonStrict = true;
success = true;
- } else if (values.size() == 1U && values.front().GetLiteral() && TryFromString(*values.front().GetLiteral(), Ctx.PragmaYsonStrict)) {
+ } else if (values.size() == 1U && values.front().GetLiteral() && TryFromString(*values.front().GetLiteral(), Ctx_.PragmaYsonStrict)) {
success = true;
} else {
Error() << "Expected 'true', 'false' or no parameter for: " << pragma;
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
}
return {};
} else if (normalizedPragma == "disablestrict") {
if (values.size() == 0U) {
- Ctx.PragmaYsonStrict = false;
+ Ctx_.PragmaYsonStrict = false;
success = true;
return {};
}
bool pragmaYsonDisableStrict;
if (values.size() == 1U && values.front().GetLiteral() && TryFromString(*values.front().GetLiteral(), pragmaYsonDisableStrict)) {
- Ctx.PragmaYsonStrict = !pragmaYsonDisableStrict;
+ Ctx_.PragmaYsonStrict = !pragmaYsonDisableStrict;
success = true;
} else {
Error() << "Expected 'true', 'false' or no parameter for: " << pragma;
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
}
return {};
} else if (normalizedPragma == "casttostring" || normalizedPragma == "disablecasttostring") {
const bool allow = normalizedPragma == "casttostring";
if (values.size() == 0U) {
- Ctx.YsonCastToString = allow;
+ Ctx_.YsonCastToString = allow;
success = true;
return {};
}
bool pragmaYsonCastToString;
if (values.size() == 1U && values.front().GetLiteral() && TryFromString(*values.front().GetLiteral(), pragmaYsonCastToString)) {
- Ctx.PragmaYsonStrict = allow ? pragmaYsonCastToString : !pragmaYsonCastToString;
+ Ctx_.PragmaYsonStrict = allow ? pragmaYsonCastToString : !pragmaYsonCastToString;
success = true;
} else {
Error() << "Expected 'true', 'false' or no parameter for: " << pragma;
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
}
return {};
} else {
Error() << "Unknown pragma: '" << pragma << "'";
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return {};
}
} else if (std::find(Providers.cbegin(), Providers.cend(), lowerPrefix) == Providers.cend()) {
- if (!Ctx.HasCluster(prefix)) {
+ if (!Ctx_.HasCluster(prefix)) {
Error() << "Unknown pragma prefix: " << prefix << ", please use cluster name or one of provider " <<
JoinRange(", ", Providers.cbegin(), Providers.cend());
- Ctx.IncrementMonCounter("sql_errors", "UnknownPragma");
+ Ctx_.IncrementMonCounter("sql_errors", "UnknownPragma");
return {};
}
}
@@ -3546,20 +3546,20 @@ TNodePtr TSqlQuery::PragmaStatement(const TRule_pragma_stmt& stmt, bool& success
if (normalizedPragma != "flags" && normalizedPragma != "packageversion") {
if (values.size() > 1) {
Error() << "Expected at most one value in the pragma";
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return {};
}
} else {
if (pragmaValueDefault || values.size() < 1) {
Error() << "Expected at least one value in the pragma";
- Ctx.IncrementMonCounter("sql_errors", "BadPragmaValue");
+ Ctx_.IncrementMonCounter("sql_errors", "BadPragmaValue");
return {};
}
}
success = true;
- Ctx.IncrementMonCounter("sql_pragma", pragma);
- return BuildPragma(Ctx.Pos(), lowerPrefix, normalizedPragma, values, pragmaValueDefault);
+ Ctx_.IncrementMonCounter("sql_pragma", pragma);
+ return BuildPragma(Ctx_.Pos(), lowerPrefix, normalizedPragma, values, pragmaValueDefault);
}
success = true;
return {};
@@ -3573,18 +3573,18 @@ TNodePtr TSqlQuery::Build(const TRule_delete_stmt& stmt) {
const bool isKikimr = table.Service == KikimrProviderName;
if (!isKikimr && table.Service != UnknownProviderName) {
- Ctx.Error(GetPos(stmt.GetToken2())) << "DELETE is unsupported for " << table.Service;
+ Ctx_.Error(GetPos(stmt.GetToken2())) << "DELETE is unsupported for " << table.Service;
return nullptr;
}
- TSourcePtr source = BuildTableSource(Ctx.Pos(), table);
+ TSourcePtr source = BuildTableSource(Ctx_.Pos(), table);
const bool isBatch = stmt.HasBlock1();
TNodePtr options = nullptr;
if (stmt.HasBlock6()) {
if (isBatch) {
- Ctx.Error(GetPos(stmt.GetToken2()))
+ Ctx_.Error(GetPos(stmt.GetToken2()))
<< "BATCH DELETE is unsupported with RETURNING";
return nullptr;
}
@@ -3598,30 +3598,30 @@ TNodePtr TSqlQuery::Build(const TRule_delete_stmt& stmt) {
case TRule_delete_stmt_TBlock5::kAlt1: {
const auto& alt = stmt.GetBlock5().GetAlt1();
- TColumnRefScope scope(Ctx, EColumnRefState::Allow);
- TSqlExpression sqlExpr(Ctx, Mode);
+ TColumnRefScope scope(Ctx_, EColumnRefState::Allow);
+ TSqlExpression sqlExpr(Ctx_, Mode_);
auto whereExpr = sqlExpr.Build(alt.GetRule_expr2());
if (!whereExpr) {
return nullptr;
}
- source->AddFilter(Ctx, whereExpr);
+ source->AddFilter(Ctx_, whereExpr);
break;
}
case TRule_delete_stmt_TBlock5::kAlt2: {
const auto& alt = stmt.GetBlock5().GetAlt2();
- auto values = TSqlIntoValues(Ctx, Mode).Build(alt.GetRule_into_values_source2(), "DELETE ON");
+ auto values = TSqlIntoValues(Ctx_, Mode_).Build(alt.GetRule_into_values_source2(), "DELETE ON");
if (!values) {
return nullptr;
}
if (isBatch) {
- Ctx.Error(GetPos(stmt.GetToken2())) << "BATCH DELETE is unsupported with ON";
+ Ctx_.Error(GetPos(stmt.GetToken2())) << "BATCH DELETE is unsupported with ON";
return nullptr;
}
- return BuildWriteColumns(Ctx.Pos(), Ctx.Scoped, table, EWriteColumnMode::DeleteOn, std::move(values), options);
+ return BuildWriteColumns(Ctx_.Pos(), Ctx_.Scoped, table, EWriteColumnMode::DeleteOn, std::move(values), options);
}
case TRule_delete_stmt_TBlock5::ALT_NOT_SET:
@@ -3630,10 +3630,10 @@ TNodePtr TSqlQuery::Build(const TRule_delete_stmt& stmt) {
}
if (isBatch) {
- return BuildBatchDelete(Ctx.Pos(), Ctx.Scoped, table, std::move(source), options);
+ return BuildBatchDelete(Ctx_.Pos(), Ctx_.Scoped, table, std::move(source), options);
}
- return BuildDelete(Ctx.Pos(), Ctx.Scoped, table, std::move(source), options);
+ return BuildDelete(Ctx_.Pos(), Ctx_.Scoped, table, std::move(source), options);
}
TNodePtr TSqlQuery::Build(const TRule_update_stmt& stmt) {
@@ -3645,7 +3645,7 @@ TNodePtr TSqlQuery::Build(const TRule_update_stmt& stmt) {
const bool isKikimr = table.Service == KikimrProviderName;
if (!isKikimr && table.Service != UnknownProviderName) {
- Ctx.Error(GetPos(stmt.GetToken2())) << "UPDATE is unsupported for " << table.Service;
+ Ctx_.Error(GetPos(stmt.GetToken2())) << "UPDATE is unsupported for " << table.Service;
return nullptr;
}
@@ -3654,7 +3654,7 @@ TNodePtr TSqlQuery::Build(const TRule_update_stmt& stmt) {
if (stmt.HasBlock5()) {
if (isBatch) {
- Ctx.Error(GetPos(stmt.GetToken2()))
+ Ctx_.Error(GetPos(stmt.GetToken2()))
<< "BATCH UPDATE is unsupported with RETURNING";
return nullptr;
}
@@ -3667,39 +3667,39 @@ TNodePtr TSqlQuery::Build(const TRule_update_stmt& stmt) {
case TRule_update_stmt_TBlock4::kAlt1: {
const auto& alt = stmt.GetBlock4().GetAlt1();
TSourcePtr values = Build(alt.GetRule_set_clause_choice2());
- auto source = BuildTableSource(Ctx.Pos(), table);
+ auto source = BuildTableSource(Ctx_.Pos(), table);
if (alt.HasBlock3()) {
- TColumnRefScope scope(Ctx, EColumnRefState::Allow);
- TSqlExpression sqlExpr(Ctx, Mode);
+ TColumnRefScope scope(Ctx_, EColumnRefState::Allow);
+ TSqlExpression sqlExpr(Ctx_, Mode_);
auto whereExpr = sqlExpr.Build(alt.GetBlock3().GetRule_expr2());
if (!whereExpr) {
return nullptr;
}
- source->AddFilter(Ctx, whereExpr);
+ source->AddFilter(Ctx_, whereExpr);
}
if (isBatch) {
- return BuildBatchUpdate(Ctx.Pos(), Ctx.Scoped, table, std::move(values), std::move(source), options);
+ return BuildBatchUpdate(Ctx_.Pos(), Ctx_.Scoped, table, std::move(values), std::move(source), options);
}
- return BuildUpdateColumns(Ctx.Pos(), Ctx.Scoped, table, std::move(values), std::move(source), options);
+ return BuildUpdateColumns(Ctx_.Pos(), Ctx_.Scoped, table, std::move(values), std::move(source), options);
}
case TRule_update_stmt_TBlock4::kAlt2: {
const auto& alt = stmt.GetBlock4().GetAlt2();
- auto values = TSqlIntoValues(Ctx, Mode).Build(alt.GetRule_into_values_source2(), "UPDATE ON");
+ auto values = TSqlIntoValues(Ctx_, Mode_).Build(alt.GetRule_into_values_source2(), "UPDATE ON");
if (!values) {
return nullptr;
}
if (isBatch) {
- Ctx.Error(GetPos(stmt.GetToken2())) << "BATCH UPDATE is unsupported with ON";
+ Ctx_.Error(GetPos(stmt.GetToken2())) << "BATCH UPDATE is unsupported with ON";
return nullptr;
}
- return BuildWriteColumns(Ctx.Pos(), Ctx.Scoped, table, EWriteColumnMode::UpdateOn, std::move(values), options);
+ return BuildWriteColumns(Ctx_.Pos(), Ctx_.Scoped, table, EWriteColumnMode::UpdateOn, std::move(values), options);
}
case TRule_update_stmt_TBlock4::ALT_NOT_SET:
@@ -3721,8 +3721,8 @@ TSourcePtr TSqlQuery::Build(const TRule_set_clause_choice& stmt) {
bool TSqlQuery::FillSetClause(const TRule_set_clause& node, TVector<TString>& targetList, TVector<TNodePtr>& values) {
targetList.push_back(ColumnNameAsSingleStr(*this, node.GetRule_set_target1().GetRule_column_name1()));
- TColumnRefScope scope(Ctx, EColumnRefState::Allow);
- TSqlExpression sqlExpr(Ctx, Mode);
+ TColumnRefScope scope(Ctx_, EColumnRefState::Allow);
+ TSqlExpression sqlExpr(Ctx_, Mode_);
if (!Expr(sqlExpr, values, node.GetRule_expr3())) {
return false;
}
@@ -3732,7 +3732,7 @@ bool TSqlQuery::FillSetClause(const TRule_set_clause& node, TVector<TString>& ta
TSourcePtr TSqlQuery::Build(const TRule_set_clause_list& stmt) {
TVector<TString> targetList;
TVector<TNodePtr> values;
- const TPosition pos(Ctx.Pos());
+ const TPosition pos(Ctx_.Pos());
if (!FillSetClause(stmt.GetRule_set_clause1(), targetList, values)) {
return nullptr;
}
@@ -3749,18 +3749,18 @@ TSourcePtr TSqlQuery::Build(const TRule_multiple_column_assignment& stmt) {
TVector<TString> targetList;
FillTargetList(*this, stmt.GetRule_set_target_list1(), targetList);
auto simpleValuesNode = stmt.GetRule_simple_values_source4();
- const TPosition pos(Ctx.Pos());
+ const TPosition pos(Ctx_.Pos());
switch (simpleValuesNode.Alt_case()) {
case TRule_simple_values_source::kAltSimpleValuesSource1: {
TVector<TNodePtr> values;
- TSqlExpression sqlExpr(Ctx, Mode);
+ TSqlExpression sqlExpr(Ctx_, Mode_);
if (!ExprList(sqlExpr, values, simpleValuesNode.GetAlt_simple_values_source1().GetRule_expr_list1())) {
return nullptr;
}
return BuildUpdateValues(pos, targetList, values);
}
case TRule_simple_values_source::kAltSimpleValuesSource2: {
- TSqlSelect select(Ctx, Mode);
+ TSqlSelect select(Ctx_, Mode_);
TPosition selectPos;
auto source = select.Build(simpleValuesNode.GetAlt_simple_values_source2().GetRule_select_stmt1(), selectPos);
if (!source) {
@@ -3769,16 +3769,16 @@ TSourcePtr TSqlQuery::Build(const TRule_multiple_column_assignment& stmt) {
return BuildWriteValues(pos, "UPDATE", targetList, std::move(source));
}
case TRule_simple_values_source::ALT_NOT_SET:
- Ctx.IncrementMonCounter("sql_errors", "UnknownSimpleValuesSourceAlt");
+ Ctx_.IncrementMonCounter("sql_errors", "UnknownSimpleValuesSourceAlt");
AltNotImplemented("simple_values_source", simpleValuesNode);
return nullptr;
}
}
TNodePtr TSqlQuery::Build(const TSQLv1ParserAST& ast) {
- if (Mode == NSQLTranslation::ESqlMode::QUERY) {
+ if (Mode_ == NSQLTranslation::ESqlMode::QUERY) {
// inject externally declared named expressions
- for (auto [name, type] : Ctx.Settings.DeclaredNamedExprs) {
+ for (auto [name, type] : Ctx_.Settings.DeclaredNamedExprs) {
if (name.empty()) {
Error() << "Empty names for externally declared expressions are not allowed";
return nullptr;
@@ -3789,17 +3789,17 @@ TNodePtr TSqlQuery::Build(const TSQLv1ParserAST& ast) {
return nullptr;
}
- auto parsed = ParseType(type, *Ctx.Pool, Ctx.Issues, Ctx.Pos());
+ auto parsed = ParseType(type, *Ctx_.Pool, Ctx_.Issues, Ctx_.Pos());
if (!parsed) {
Error() << "Failed to parse type for externally declared name '" << name << "'";
return nullptr;
}
- TNodePtr typeNode = BuildBuiltinFunc(Ctx, Ctx.Pos(), "ParseType", { BuildLiteralRawString(Ctx.Pos(), type) });
- PushNamedAtom(Ctx.Pos(), varName);
+ TNodePtr typeNode = BuildBuiltinFunc(Ctx_, Ctx_.Pos(), "ParseType", { BuildLiteralRawString(Ctx_.Pos(), type) });
+ PushNamedAtom(Ctx_.Pos(), varName);
// no duplicates are possible at this stage
bool isWeak = true;
- Ctx.DeclareVariable(varName, {}, typeNode, isWeak);
+ Ctx_.DeclareVariable(varName, {}, typeNode, isWeak);
// avoid 'Symbol is not used' warning for externally declared expression
YQL_ENSURE(GetNamedNode(varName));
}
@@ -3807,9 +3807,9 @@ TNodePtr TSqlQuery::Build(const TSQLv1ParserAST& ast) {
const auto& query = ast.GetRule_sql_query();
TVector<TNodePtr> blocks;
- Ctx.PushCurrentBlocks(&blocks);
+ Ctx_.PushCurrentBlocks(&blocks);
Y_DEFER {
- Ctx.PopCurrentBlocks();
+ Ctx_.PopCurrentBlocks();
};
if (query.Alt_case() == TRule_sql_query::kAltSqlQuery1) {
size_t statementNumber = 0;
@@ -3838,25 +3838,25 @@ TNodePtr TSqlQuery::Build(const TSQLv1ParserAST& ast) {
}
}
- if ((Mode == NSQLTranslation::ESqlMode::SUBQUERY || Mode == NSQLTranslation::ESqlMode::LIMITED_VIEW) && (topLevelSelects != 1 || hasTailOps)) {
+ if ((Mode_ == NSQLTranslation::ESqlMode::SUBQUERY || Mode_ == NSQLTranslation::ESqlMode::LIMITED_VIEW) && (topLevelSelects != 1 || hasTailOps)) {
Error() << "Strictly one select/process/reduce statement is expected at the end of "
- << (Mode == NSQLTranslation::ESqlMode::LIMITED_VIEW ? "view" : "subquery");
+ << (Mode_ == NSQLTranslation::ESqlMode::LIMITED_VIEW ? "view" : "subquery");
return nullptr;
}
- if (!Ctx.PragmaAutoCommit && Ctx.Settings.EndOfQueryCommit && IsQueryMode(Mode)) {
- AddStatementToBlocks(blocks, BuildCommitClusters(Ctx.Pos()));
+ if (!Ctx_.PragmaAutoCommit && Ctx_.Settings.EndOfQueryCommit && IsQueryMode(Mode_)) {
+ AddStatementToBlocks(blocks, BuildCommitClusters(Ctx_.Pos()));
}
- auto result = BuildQuery(Ctx.Pos(), blocks, true, Ctx.Scoped, Ctx.SeqMode);
+ auto result = BuildQuery(Ctx_.Pos(), blocks, true, Ctx_.Scoped, Ctx_.SeqMode);
WarnUnusedNodes();
return result;
}
TNodePtr TSqlQuery::Build(const std::vector<::NSQLv1Generated::TRule_sql_stmt_core>& statements) {
- if (Mode == NSQLTranslation::ESqlMode::QUERY) {
+ if (Mode_ == NSQLTranslation::ESqlMode::QUERY) {
// inject externally declared named expressions
- for (auto [name, type] : Ctx.Settings.DeclaredNamedExprs) {
+ for (auto [name, type] : Ctx_.Settings.DeclaredNamedExprs) {
if (name.empty()) {
Error() << "Empty names for externally declared expressions are not allowed";
return nullptr;
@@ -3867,26 +3867,26 @@ TNodePtr TSqlQuery::Build(const std::vector<::NSQLv1Generated::TRule_sql_stmt_co
return nullptr;
}
- auto parsed = ParseType(type, *Ctx.Pool, Ctx.Issues, Ctx.Pos());
+ auto parsed = ParseType(type, *Ctx_.Pool, Ctx_.Issues, Ctx_.Pos());
if (!parsed) {
Error() << "Failed to parse type for externally declared name '" << name << "'";
return nullptr;
}
- TNodePtr typeNode = BuildBuiltinFunc(Ctx, Ctx.Pos(), "ParseType", { BuildLiteralRawString(Ctx.Pos(), type) });
- PushNamedAtom(Ctx.Pos(), varName);
+ TNodePtr typeNode = BuildBuiltinFunc(Ctx_, Ctx_.Pos(), "ParseType", { BuildLiteralRawString(Ctx_.Pos(), type) });
+ PushNamedAtom(Ctx_.Pos(), varName);
// no duplicates are possible at this stage
bool isWeak = true;
- Ctx.DeclareVariable(varName, {}, typeNode, isWeak);
+ Ctx_.DeclareVariable(varName, {}, typeNode, isWeak);
// avoid 'Symbol is not used' warning for externally declared expression
YQL_ENSURE(GetNamedNode(varName));
}
}
TVector<TNodePtr> blocks;
- Ctx.PushCurrentBlocks(&blocks);
+ Ctx_.PushCurrentBlocks(&blocks);
Y_DEFER {
- Ctx.PopCurrentBlocks();
+ Ctx_.PopCurrentBlocks();
};
size_t statementNumber = 0;
@@ -3910,17 +3910,17 @@ TNodePtr TSqlQuery::Build(const std::vector<::NSQLv1Generated::TRule_sql_stmt_co
}
}
- if ((Mode == NSQLTranslation::ESqlMode::SUBQUERY || Mode == NSQLTranslation::ESqlMode::LIMITED_VIEW) && (topLevelSelects != 1 || hasTailOps)) {
+ if ((Mode_ == NSQLTranslation::ESqlMode::SUBQUERY || Mode_ == NSQLTranslation::ESqlMode::LIMITED_VIEW) && (topLevelSelects != 1 || hasTailOps)) {
Error() << "Strictly one select/process/reduce statement is expected at the end of "
- << (Mode == NSQLTranslation::ESqlMode::LIMITED_VIEW ? "view" : "subquery");
+ << (Mode_ == NSQLTranslation::ESqlMode::LIMITED_VIEW ? "view" : "subquery");
return nullptr;
}
- if (!Ctx.PragmaAutoCommit && Ctx.Settings.EndOfQueryCommit && IsQueryMode(Mode)) {
- AddStatementToBlocks(blocks, BuildCommitClusters(Ctx.Pos()));
+ if (!Ctx_.PragmaAutoCommit && Ctx_.Settings.EndOfQueryCommit && IsQueryMode(Mode_)) {
+ AddStatementToBlocks(blocks, BuildCommitClusters(Ctx_.Pos()));
}
- auto result = BuildQuery(Ctx.Pos(), blocks, true, Ctx.Scoped, Ctx.SeqMode);
+ auto result = BuildQuery(Ctx_.Pos(), blocks, true, Ctx_.Scoped, Ctx_.SeqMode);
return result;
}
namespace {
@@ -3972,10 +3972,10 @@ bool TSqlQuery::ParseTableStoreFeatures(std::map<TString, TDeferredAtom> & resul
case TRule_alter_table_store_action::kAltAlterTableStoreAction1: {
// ADD COLUMN
const auto& addRule = actions.GetAlt_alter_table_store_action1().GetRule_alter_table_add_column1();
- if (!BuildColumnFeatures(result, addRule.GetRule_column_schema3(), Ctx.Pos(), *this)) {
+ if (!BuildColumnFeatures(result, addRule.GetRule_column_schema3(), Ctx_.Pos(), *this)) {
return false;
}
- result["ACTION"] = TDeferredAtom(Ctx.Pos(), "NEW_COLUMN");
+ result["ACTION"] = TDeferredAtom(Ctx_.Pos(), "NEW_COLUMN");
break;
}
case TRule_alter_table_store_action::kAltAlterTableStoreAction2: {
@@ -3985,8 +3985,8 @@ bool TSqlQuery::ParseTableStoreFeatures(std::map<TString, TDeferredAtom> & resul
if (!columnName) {
return false;
}
- result["NAME"] = TDeferredAtom(Ctx.Pos(), columnName);
- result["ACTION"] = TDeferredAtom(Ctx.Pos(), "DROP_COLUMN");
+ result["NAME"] = TDeferredAtom(Ctx_.Pos(), columnName);
+ result["ACTION"] = TDeferredAtom(Ctx_.Pos(), "DROP_COLUMN");
break;
}
case TRule_alter_table_store_action::ALT_NOT_SET:
diff --git a/yql/essentials/sql/v1/sql_query.h b/yql/essentials/sql/v1/sql_query.h
index 450451525b7..9428e3397bc 100644
--- a/yql/essentials/sql/v1/sql_query.h
+++ b/yql/essentials/sql/v1/sql_query.h
@@ -13,7 +13,7 @@ class TSqlQuery: public TSqlTranslation {
public:
TSqlQuery(TContext& ctx, NSQLTranslation::ESqlMode mode, bool topLevel)
: TSqlTranslation(ctx, mode)
- , TopLevel(topLevel)
+ , TopLevel_(topLevel)
{
}
@@ -62,7 +62,7 @@ private:
humanStatementName.clear();
const auto& descr = AltDescription(node);
TVector<TString> parts;
- if (!Ctx.Settings.Antlr4Parser) {
+ if (!Ctx_.Settings.Antlr4Parser) {
const auto pos = descr.find(": ");
Y_DEBUG_ABORT_UNLESS(pos != TString::npos);
Split(TString(descr.begin() + pos + 2, descr.end()), "_", parts);
@@ -81,7 +81,7 @@ private:
}
}
- const bool TopLevel;
+ const bool TopLevel_;
};
void EnumeratePragmas(std::function<void(std::string_view)> callback);
diff --git a/yql/essentials/sql/v1/sql_select.cpp b/yql/essentials/sql/v1/sql_select.cpp
index 8e11721c84f..04a8b1e38af 100644
--- a/yql/essentials/sql/v1/sql_select.cpp
+++ b/yql/essentials/sql/v1/sql_select.cpp
@@ -69,26 +69,26 @@ bool TSqlSelect::JoinOp(ISource* join, const TRule_join_source::TBlock3& block,
switch (node.Alt_case()) {
case TRule_join_op::kAltJoinOp1: {
joinOp = "Cross";
- if (!Ctx.AnsiImplicitCrossJoin) {
+ if (!Ctx_.AnsiImplicitCrossJoin) {
Error() << "Cartesian product of tables is disabled. Please use "
"explicit CROSS JOIN or enable it via PRAGMA AnsiImplicitCrossJoin";
return false;
}
auto alt = node.GetAlt_join_op1();
- if (!CollectJoinLinkSettings(Ctx.TokenPosition(alt.GetToken1()), linkSettings, Ctx)) {
+ if (!CollectJoinLinkSettings(Ctx_.TokenPosition(alt.GetToken1()), linkSettings, Ctx_)) {
return false;
}
- Ctx.IncrementMonCounter("sql_join_operations", "CartesianProduct");
+ Ctx_.IncrementMonCounter("sql_join_operations", "CartesianProduct");
break;
}
case TRule_join_op::kAltJoinOp2: {
auto alt = node.GetAlt_join_op2();
if (alt.HasBlock1()) {
- Ctx.IncrementMonCounter("sql_join_operations", "Natural");
+ Ctx_.IncrementMonCounter("sql_join_operations", "Natural");
Error() << "Natural join is not implemented yet";
return false;
}
- if (!CollectJoinLinkSettings(Ctx.TokenPosition(alt.GetToken3()), linkSettings, Ctx)) {
+ if (!CollectJoinLinkSettings(Ctx_.TokenPosition(alt.GetToken3()), linkSettings, Ctx_)) {
return false;
}
switch (alt.GetBlock2().Alt_case()) {
@@ -120,7 +120,7 @@ bool TSqlSelect::JoinOp(ISource* join, const TRule_join_source::TBlock3& block,
joinOp = Token(block.GetAlt4().GetToken1());
break;
case TRule_join_op_TAlt2_TBlock2_TAlt1_TBlock1::ALT_NOT_SET:
- Ctx.IncrementMonCounter("sql_errors", "UnknownJoinOperation");
+ Ctx_.IncrementMonCounter("sql_errors", "UnknownJoinOperation");
AltNotImplemented("join_op", node);
return false;
}
@@ -132,7 +132,7 @@ bool TSqlSelect::JoinOp(ISource* join, const TRule_join_source::TBlock3& block,
Token(alt.GetBlock2().GetAlt1().GetBlock2().GetToken1());
Error() << "Invalid join type: " << normalizedOp << (normalizedOp.empty() ? "" : " ") << "OUTER JOIN. "
<< "OUTER keyword is optional and can only be used after LEFT, RIGHT or FULL";
- Ctx.IncrementMonCounter("sql_errors", "BadJoinType");
+ Ctx_.IncrementMonCounter("sql_errors", "BadJoinType");
return false;
}
}
@@ -144,22 +144,22 @@ bool TSqlSelect::JoinOp(ISource* join, const TRule_join_source::TBlock3& block,
joinOp = Token(alt.GetBlock2().GetAlt3().GetToken1());
break;
case TRule_join_op::TAlt2::TBlock2::ALT_NOT_SET:
- Ctx.IncrementMonCounter("sql_errors", "UnknownJoinOperation");
+ Ctx_.IncrementMonCounter("sql_errors", "UnknownJoinOperation");
AltNotImplemented("join_op", node);
return false;
}
- Ctx.IncrementMonCounter("sql_features", "Join");
- Ctx.IncrementMonCounter("sql_join_operations", joinOp);
+ Ctx_.IncrementMonCounter("sql_features", "Join");
+ Ctx_.IncrementMonCounter("sql_join_operations", joinOp);
break;
}
case TRule_join_op::ALT_NOT_SET:
- Ctx.IncrementMonCounter("sql_errors", "UnknownJoinOperation2");
+ Ctx_.IncrementMonCounter("sql_errors", "UnknownJoinOperation2");
AltNotImplemented("join_op", node);
return false;
}
joinOp = NormalizeJoinOp(joinOp);
if (linkSettings.Strategy != TJoinLinkSettings::EStrategy::Default && joinOp == "Cross") {
- Ctx.Warning(Ctx.Pos(), TIssuesIds::YQL_UNUSED_HINT) << "Non-default join strategy will not be used for CROSS JOIN";
+ Ctx_.Warning(Ctx_.Pos(), TIssuesIds::YQL_UNUSED_HINT) << "Non-default join strategy will not be used for CROSS JOIN";
linkSettings.Strategy = TJoinLinkSettings::EStrategy::Default;
}
@@ -167,27 +167,27 @@ bool TSqlSelect::JoinOp(ISource* join, const TRule_join_source::TBlock3& block,
if (block.HasBlock4()) {
if (joinOp == "Cross") {
Error() << "Cross join should not have ON or USING expression";
- Ctx.IncrementMonCounter("sql_errors", "BadJoinExpr");
+ Ctx_.IncrementMonCounter("sql_errors", "BadJoinExpr");
return false;
}
joinKeyExpr = JoinExpr(join, block.GetBlock4().GetRule_join_constraint1());
if (!joinKeyExpr) {
- Ctx.IncrementMonCounter("sql_errors", "BadJoinExpr");
+ Ctx_.IncrementMonCounter("sql_errors", "BadJoinExpr");
return false;
}
}
else {
if (joinOp != "Cross") {
Error() << "Expected ON or USING expression";
- Ctx.IncrementMonCounter("sql_errors", "BadJoinExpr");
+ Ctx_.IncrementMonCounter("sql_errors", "BadJoinExpr");
return false;
}
}
if (joinOp == "Cross" && anyPos) {
- Ctx.Error(*anyPos) << "ANY should not be used with Cross JOIN";
- Ctx.IncrementMonCounter("sql_errors", "BadJoinAny");
+ Ctx_.Error(*anyPos) << "ANY should not be used with Cross JOIN";
+ Ctx_.IncrementMonCounter("sql_errors", "BadJoinAny");
return false;
}
@@ -202,24 +202,24 @@ TNodePtr TSqlSelect::JoinExpr(ISource* join, const TRule_join_constraint& node)
case TRule_join_constraint::kAltJoinConstraint1: {
auto& alt = node.GetAlt_join_constraint1();
Token(alt.GetToken1());
- TColumnRefScope scope(Ctx, EColumnRefState::Allow);
- TSqlExpression expr(Ctx, Mode);
+ TColumnRefScope scope(Ctx_, EColumnRefState::Allow);
+ TSqlExpression expr(Ctx_, Mode_);
return expr.Build(alt.GetRule_expr2());
}
case TRule_join_constraint::kAltJoinConstraint2: {
auto& alt = node.GetAlt_join_constraint2();
Token(alt.GetToken1());
- TPosition pos(Ctx.Pos());
+ TPosition pos(Ctx_.Pos());
TVector<TDeferredAtom> names;
if (!PureColumnOrNamedListStr(alt.GetRule_pure_column_or_named_list2(), *this, names)) {
return nullptr;
}
Y_DEBUG_ABORT_UNLESS(join->GetJoin());
- return join->GetJoin()->BuildJoinKeys(Ctx, names);
+ return join->GetJoin()->BuildJoinKeys(Ctx_, names);
}
case TRule_join_constraint::ALT_NOT_SET:
- Ctx.IncrementMonCounter("sql_errors", "UnknownJoinConstraint");
+ Ctx_.IncrementMonCounter("sql_errors", "UnknownJoinConstraint");
AltNotImplemented("join_constraint", node);
break;
}
@@ -259,7 +259,7 @@ bool TSqlSelect::FlattenByArg(const TString& sourceLabel, TVector<TNodePtr>& fla
} else {
// select * from T as s flatten by x.y as z
if (!column->GetLabel()) {
- Ctx.Error(column->GetPos()) << "Unnamed expression after FLATTEN BY is not allowed";
+ Ctx_.Error(column->GetPos()) << "Unnamed expression after FLATTEN BY is not allowed";
return false;
}
flattenByColumns.emplace_back(BuildColumn(column->GetPos(), column->GetLabel()));
@@ -276,8 +276,8 @@ bool TSqlSelect::FlattenByArg(const TString& sourceLabel, TVector<TNodePtr>& fla
break;
}
case TRule_flatten_by_arg::kAltFlattenByArg2: {
- TColumnRefScope scope(Ctx, EColumnRefState::Allow);
- if (!NamedExprList(node.GetAlt_flatten_by_arg2().GetRule_named_expr_list2(), namedExprs) || Ctx.HasPendingErrors) {
+ TColumnRefScope scope(Ctx_, EColumnRefState::Allow);
+ if (!NamedExprList(node.GetAlt_flatten_by_arg2().GetRule_named_expr_list2(), namedExprs) || Ctx_.HasPendingErrors) {
return false;
}
for (auto& namedExprNode : namedExprs) {
@@ -292,7 +292,7 @@ bool TSqlSelect::FlattenByArg(const TString& sourceLabel, TVector<TNodePtr>& fla
} else {
auto nodeLabel = namedExprNode->GetLabel();
if (!nodeLabel) {
- Ctx.Error(namedExprNode->GetPos()) << "Unnamed expression after FLATTEN BY is not allowed";
+ Ctx_.Error(namedExprNode->GetPos()) << "Unnamed expression after FLATTEN BY is not allowed";
return false;
}
flattenByColumns.emplace_back(BuildColumn(namedExprNode->GetPos(), nodeLabel));
@@ -302,7 +302,7 @@ bool TSqlSelect::FlattenByArg(const TString& sourceLabel, TVector<TNodePtr>& fla
break;
}
case TRule_flatten_by_arg::ALT_NOT_SET:
- Ctx.IncrementMonCounter("sql_errors", "UnknownFlattenByArg");
+ Ctx_.IncrementMonCounter("sql_errors", "UnknownFlattenByArg");
AltNotImplemented("flatten_by_arg", node);
return false;
}
@@ -330,12 +330,12 @@ TSourcePtr TSqlSelect::FlattenSource(const TRule_flatten_source& node) {
return nullptr;
}
- Ctx.IncrementMonCounter("sql_features", "FlattenByColumns");
- if (!source->AddExpressions(Ctx, flattenByColumns, EExprSeat::FlattenBy)) {
+ Ctx_.IncrementMonCounter("sql_features", "FlattenByColumns");
+ if (!source->AddExpressions(Ctx_, flattenByColumns, EExprSeat::FlattenBy)) {
return nullptr;
}
- if (!source->AddExpressions(Ctx, flattenByExprs, EExprSeat::FlattenByExpr)) {
+ if (!source->AddExpressions(Ctx_, flattenByExprs, EExprSeat::FlattenByExpr)) {
return nullptr;
}
@@ -343,13 +343,13 @@ TSourcePtr TSqlSelect::FlattenSource(const TRule_flatten_source& node) {
break;
}
case TRule_flatten_source::TBlock2::TBlock2::kAlt2: {
- Ctx.IncrementMonCounter("sql_features", "FlattenColumns");
+ Ctx_.IncrementMonCounter("sql_features", "FlattenColumns");
source->MarkFlattenColumns();
break;
}
case TRule_flatten_source::TBlock2::TBlock2::ALT_NOT_SET:
- Ctx.IncrementMonCounter("sql_errors", "UnknownOrdinaryNamedColumn");
+ Ctx_.IncrementMonCounter("sql_errors", "UnknownOrdinaryNamedColumn");
AltNotImplemented("flatten_source", flatten2);
}
}
@@ -369,27 +369,27 @@ TSourcePtr TSqlSelect::JoinSource(const TRule_join_source& node) {
}
if (node.Block3Size()) {
- TPosition pos(Ctx.Pos());
+ TPosition pos(Ctx_.Pos());
TVector<TSourcePtr> sources;
TVector<TMaybe<TPosition>> anyPositions;
TVector<bool> anyFlags;
sources.emplace_back(std::move(source));
- anyPositions.emplace_back(node.HasBlock1() ? Ctx.TokenPosition(node.GetBlock1().GetToken1()) : TMaybe<TPosition>());
+ anyPositions.emplace_back(node.HasBlock1() ? Ctx_.TokenPosition(node.GetBlock1().GetToken1()) : TMaybe<TPosition>());
anyFlags.push_back(bool(anyPositions.back()));
for (auto& block: node.GetBlock3()) {
sources.emplace_back(FlattenSource(block.GetRule_flatten_source3()));
if (!sources.back()) {
- Ctx.IncrementMonCounter("sql_errors", "NoJoinWith");
+ Ctx_.IncrementMonCounter("sql_errors", "NoJoinWith");
return nullptr;
}
- anyPositions.emplace_back(block.HasBlock2() ? Ctx.TokenPosition(block.GetBlock2().GetToken1()) : TMaybe<TPosition>());
+ anyPositions.emplace_back(block.HasBlock2() ? Ctx_.TokenPosition(block.GetBlock2().GetToken1()) : TMaybe<TPosition>());
anyFlags.push_back(bool(anyPositions.back()));
}
- source = BuildEquiJoin(pos, std::move(sources), std::move(anyFlags), Ctx.Scoped->StrictJoinKeyTypes);
+ source = BuildEquiJoin(pos, std::move(sources), std::move(anyFlags), Ctx_.Scoped->StrictJoinKeyTypes);
size_t idx = 1;
for (auto& block: node.GetBlock3()) {
YQL_ENSURE(idx < anyPositions.size());
@@ -397,7 +397,7 @@ TSourcePtr TSqlSelect::JoinSource(const TRule_join_source& node) {
TMaybe<TPosition> rightAny = anyPositions[idx];
if (!JoinOp(source.Get(), block, leftAny ? leftAny : rightAny)) {
- Ctx.IncrementMonCounter("sql_errors", "NoJoinOp");
+ Ctx_.IncrementMonCounter("sql_errors", "NoJoinOp");
return nullptr;
}
++idx;
@@ -418,17 +418,17 @@ bool TSqlSelect::SelectTerm(TVector<TNodePtr>& terms, const TRule_result_column&
Token(alt.GetToken2());
auto idAsteriskQualify = OptIdPrefixAsStr(alt.GetRule_opt_id_prefix1(), *this);
- Ctx.IncrementMonCounter("sql_features", idAsteriskQualify ? "QualifyAsterisk" : "Asterisk");
- terms.push_back(BuildColumn(Ctx.Pos(), "*", idAsteriskQualify));
+ Ctx_.IncrementMonCounter("sql_features", idAsteriskQualify ? "QualifyAsterisk" : "Asterisk");
+ terms.push_back(BuildColumn(Ctx_.Pos(), "*", idAsteriskQualify));
break;
}
case TRule_result_column::kAltResultColumn2: {
auto alt = node.GetAlt_result_column2();
- TColumnRefScope scope(Ctx, EColumnRefState::Allow);
- TSqlExpression expr(Ctx, Mode);
+ TColumnRefScope scope(Ctx_, EColumnRefState::Allow);
+ TSqlExpression expr(Ctx_, Mode_);
TNodePtr term(expr.Build(alt.GetRule_expr1()));
if (!term) {
- Ctx.IncrementMonCounter("sql_errors", "NoTerm");
+ Ctx_.IncrementMonCounter("sql_errors", "NoTerm");
return false;
}
if (alt.HasBlock2()) {
@@ -440,9 +440,9 @@ bool TSqlSelect::SelectTerm(TVector<TNodePtr>& terms, const TRule_result_column&
break;
case TRule_result_column_TAlt2_TBlock2::kAlt2:
label = Id(alt.GetBlock2().GetAlt2().GetRule_an_id_as_compat1(), *this);
- if (!Ctx.AnsiOptionalAs) {
+ if (!Ctx_.AnsiOptionalAs) {
// AS is mandatory
- Ctx.Error() << "Expecting mandatory AS here. Did you miss comma? Please add PRAGMA AnsiOptionalAs; for ANSI compatibility";
+ Ctx_.Error() << "Expecting mandatory AS here. Did you miss comma? Please add PRAGMA AnsiOptionalAs; for ANSI compatibility";
return false;
}
implicitLabel = true;
@@ -450,14 +450,14 @@ bool TSqlSelect::SelectTerm(TVector<TNodePtr>& terms, const TRule_result_column&
case TRule_result_column_TAlt2_TBlock2::ALT_NOT_SET:
Y_ABORT("You should change implementation according to grammar changes");
}
- term->SetLabel(label, Ctx.Pos());
+ term->SetLabel(label, Ctx_.Pos());
term->MarkImplicitLabel(implicitLabel);
}
terms.push_back(term);
break;
}
case TRule_result_column::ALT_NOT_SET:
- Ctx.IncrementMonCounter("sql_errors", "UnknownResultColumn");
+ Ctx_.IncrementMonCounter("sql_errors", "UnknownResultColumn");
AltNotImplemented("result_column", node);
return false;
}
@@ -469,23 +469,23 @@ bool TSqlSelect::ValidateSelectColumns(const TVector<TNodePtr>& terms) {
TSet<TString> asteriskSources;
for (const auto& term: terms) {
const auto& label = term->GetLabel();
- if (!Ctx.PragmaAllowDotInAlias && label.find('.') != TString::npos) {
- Ctx.Error(term->GetPos()) << "Unable to use '.' in column name. Invalid column name: " << label;
+ if (!Ctx_.PragmaAllowDotInAlias && label.find('.') != TString::npos) {
+ Ctx_.Error(term->GetPos()) << "Unable to use '.' in column name. Invalid column name: " << label;
return false;
}
if (!label.empty()) {
if (!labels.insert(label).second) {
- Ctx.Error(term->GetPos()) << "Unable to use duplicate column names. Collision in name: " << label;
+ Ctx_.Error(term->GetPos()) << "Unable to use duplicate column names. Collision in name: " << label;
return false;
}
}
if (term->IsAsterisk()) {
const auto& source = *term->GetSourceName();
if (source.empty() && terms.ysize() > 1) {
- Ctx.Error(term->GetPos()) << "Unable to use plain '*' with other projection items. Please use qualified asterisk instead: '<table>.*' (<table> can be either table name or table alias).";
+ Ctx_.Error(term->GetPos()) << "Unable to use plain '*' with other projection items. Please use qualified asterisk instead: '<table>.*' (<table> can be either table name or table alias).";
return false;
} else if (!asteriskSources.insert(source).second) {
- Ctx.Error(term->GetPos()) << "Unable to use twice same quialified asterisk. Invalid source: " << source;
+ Ctx_.Error(term->GetPos()) << "Unable to use twice same quialified asterisk. Invalid source: " << source;
return false;
}
} else if (label.empty()) {
@@ -494,7 +494,7 @@ bool TSqlSelect::ValidateSelectColumns(const TVector<TNodePtr>& terms) {
const auto& source = *term->GetSourceName();
const auto usedName = source.empty() ? *column : source + '.' + *column;
if (!labels.insert(usedName).second) {
- Ctx.Error(term->GetPos()) << "Unable to use duplicate column names. Collision in name: " << usedName;
+ Ctx_.Error(term->GetPos()) << "Unable to use duplicate column names. Collision in name: " << usedName;
return false;
}
}
@@ -526,30 +526,30 @@ TSourcePtr TSqlSelect::SingleSource(const TRule_single_source& node, const TVect
return table.Source;
}
- TPosition pos(Ctx.Pos());
- Ctx.IncrementMonCounter("sql_select_clusters", table.Cluster.GetLiteral() ? *table.Cluster.GetLiteral() : "unknown");
+ TPosition pos(Ctx_.Pos());
+ Ctx_.IncrementMonCounter("sql_select_clusters", table.Cluster.GetLiteral() ? *table.Cluster.GetLiteral() : "unknown");
return BuildTableSource(pos, table);
}
}
case TRule_single_source::kAltSingleSource2: {
const auto& alt = node.GetAlt_single_source2();
Token(alt.GetToken1());
- TSqlSelect innerSelect(Ctx, Mode);
+ TSqlSelect innerSelect(Ctx_, Mode_);
TPosition pos;
auto source = innerSelect.Build(alt.GetRule_select_stmt2(), pos);
if (!source) {
return nullptr;
}
- return BuildInnerSource(pos, BuildSourceNode(pos, std::move(source)), Ctx.Scoped->CurrService, Ctx.Scoped->CurrCluster);
+ return BuildInnerSource(pos, BuildSourceNode(pos, std::move(source)), Ctx_.Scoped->CurrService, Ctx_.Scoped->CurrCluster);
}
case TRule_single_source::kAltSingleSource3: {
const auto& alt = node.GetAlt_single_source3();
TPosition pos;
- return TSqlValues(Ctx, Mode).Build(alt.GetRule_values_stmt2(), pos, derivedColumns, derivedColumnsPos);
+ return TSqlValues(Ctx_, Mode_).Build(alt.GetRule_values_stmt2(), pos, derivedColumns, derivedColumnsPos);
}
case TRule_single_source::ALT_NOT_SET:
AltNotImplemented("single_source", node);
- Ctx.IncrementMonCounter("sql_errors", "UnknownSingleSource");
+ Ctx_.IncrementMonCounter("sql_errors", "UnknownSingleSource");
return nullptr;
}
}
@@ -561,7 +561,7 @@ TSourcePtr TSqlSelect::NamedSingleSource(const TRule_named_single_source& node,
if (node.HasBlock3() && node.GetBlock3().HasBlock2()) {
const auto& columns = node.GetBlock3().GetBlock2().GetRule_pure_column_list1();
Token(columns.GetToken1());
- derivedColumnsPos = Ctx.Pos();
+ derivedColumnsPos = Ctx_.Pos();
if (node.GetRule_single_source1().Alt_case() != TRule_single_source::kAltSingleSource3) {
Error() << "Derived column list is only supported for VALUES";
@@ -579,10 +579,10 @@ TSourcePtr TSqlSelect::NamedSingleSource(const TRule_named_single_source& node,
if (node.HasBlock4()) {
//CAN/CSA-ISO/IEC 9075-2:18 7.6 <table reference>
//4) TF shall not simply contain both a <sample clause> and a <row pattern recognition clause and name>.
- Ctx.Error() << "Source shall not simply contain both a sample clause and a row pattern recognition clause";
+ Ctx_.Error() << "Source shall not simply contain both a sample clause and a row pattern recognition clause";
return {};
}
- auto matchRecognizeClause = TSqlMatchRecognizeClause(Ctx, Mode);
+ auto matchRecognizeClause = TSqlMatchRecognizeClause(Ctx_, Mode_);
auto matchRecognize = matchRecognizeClause.CreateBuilder(node.GetBlock2().GetRule_row_pattern_recognition_clause1());
singleSource->SetMatchRecognize(matchRecognize);
}
@@ -594,9 +594,9 @@ TSourcePtr TSqlSelect::NamedSingleSource(const TRule_named_single_source& node,
break;
case TRule_named_single_source_TBlock3_TBlock1::kAlt2:
label = Id(node.GetBlock3().GetBlock1().GetAlt2().GetRule_an_id_as_compat1(), *this);
- if (!Ctx.AnsiOptionalAs) {
+ if (!Ctx_.AnsiOptionalAs) {
// AS is mandatory
- Ctx.Error() << "Expecting mandatory AS here. Did you miss comma? Please add PRAGMA AnsiOptionalAs; for ANSI compatibility";
+ Ctx_.Error() << "Expecting mandatory AS here. Did you miss comma? Please add PRAGMA AnsiOptionalAs; for ANSI compatibility";
return {};
}
break;
@@ -608,7 +608,7 @@ TSourcePtr TSqlSelect::NamedSingleSource(const TRule_named_single_source& node,
if (node.HasBlock4()) {
ESampleClause sampleClause;
ESampleMode mode;
- TSqlExpression expr(Ctx, Mode);
+ TSqlExpression expr(Ctx_, Mode_);
TNodePtr samplingRateNode;
TNodePtr samplingSeedNode;
const auto& sampleBlock = node.GetBlock4();
@@ -624,7 +624,7 @@ TSourcePtr TSqlSelect::NamedSingleSource(const TRule_named_single_source& node,
return nullptr;
}
pos = GetPos(sampleBlock.GetAlt1().GetRule_sample_clause1().GetToken1());
- Ctx.IncrementMonCounter("sql_features", "SampleClause");
+ Ctx_.IncrementMonCounter("sql_features", "SampleClause");
}
break;
case TRule_named_single_source::TBlock4::kAlt2:
@@ -638,8 +638,8 @@ TSourcePtr TSqlSelect::NamedSingleSource(const TRule_named_single_source& node,
} else if (token == "bernoulli") {
mode = ESampleMode::Bernoulli;
} else {
- Ctx.Error(GetPos(modeToken)) << "Unsupported sampling mode: " << token;
- Ctx.IncrementMonCounter("sql_errors", "UnsupportedSamplingMode");
+ Ctx_.Error(GetPos(modeToken)) << "Unsupported sampling mode: " << token;
+ Ctx_.IncrementMonCounter("sql_errors", "UnsupportedSamplingMode");
return nullptr;
}
const auto& tableSampleExpr = tableSampleClause.GetRule_expr4();
@@ -655,14 +655,14 @@ TSourcePtr TSqlSelect::NamedSingleSource(const TRule_named_single_source& node,
}
}
pos = GetPos(sampleBlock.GetAlt2().GetRule_tablesample_clause1().GetToken1());
- Ctx.IncrementMonCounter("sql_features", "SampleClause");
+ Ctx_.IncrementMonCounter("sql_features", "SampleClause");
}
break;
case TRule_named_single_source::TBlock4::ALT_NOT_SET:
Y_ABORT("SampleClause: does not corresond to grammar changes");
}
- if (!singleSource->SetSamplingOptions(Ctx, pos, sampleClause, mode, samplingRateNode, samplingSeedNode)) {
- Ctx.IncrementMonCounter("sql_errors", "IncorrectSampleClause");
+ if (!singleSource->SetSamplingOptions(Ctx_, pos, sampleClause, mode, samplingRateNode, samplingSeedNode)) {
+ Ctx_.IncrementMonCounter("sql_errors", "IncorrectSampleClause");
return nullptr;
}
}
@@ -674,12 +674,12 @@ bool TSqlSelect::ColumnName(TVector<TNodePtr>& keys, const TRule_column_name& no
const auto columnName = Id(node.GetRule_an_id2(), *this);
if (columnName.empty()) {
// TDOD: Id() should return TMaybe<TString>
- if (!Ctx.HasPendingErrors) {
- Ctx.Error() << "Empty column name is not allowed";
+ if (!Ctx_.HasPendingErrors) {
+ Ctx_.Error() << "Empty column name is not allowed";
}
return false;
}
- keys.push_back(BuildColumn(Ctx.Pos(), columnName, sourceName));
+ keys.push_back(BuildColumn(Ctx_.Pos(), columnName, sourceName));
return true;
}
@@ -701,12 +701,12 @@ bool TSqlSelect::ColumnName(TVector<TNodePtr>& keys, const TRule_without_column_
if (columnName.empty()) {
// TDOD: Id() should return TMaybe<TString>
- if (!Ctx.HasPendingErrors) {
- Ctx.Error() << "Empty column name is not allowed";
+ if (!Ctx_.HasPendingErrors) {
+ Ctx_.Error() << "Empty column name is not allowed";
}
return false;
}
- keys.push_back(BuildColumn(Ctx.Pos(), columnName, sourceName));
+ keys.push_back(BuildColumn(Ctx_.Pos(), columnName, sourceName));
return true;
}
@@ -754,7 +754,7 @@ TSourcePtr TSqlSelect::ProcessCore(const TRule_process_core& node, const TWriteS
// (WHERE expr)? (HAVING expr)? (ASSUME order_by_clause)?)?
Token(node.GetToken1());
- TPosition startPos(Ctx.Pos());
+ TPosition startPos(Ctx_.Pos());
if (!selectPos) {
selectPos = startPos;
@@ -786,24 +786,24 @@ TSourcePtr TSqlSelect::ProcessCore(const TRule_process_core& node, const TWriteS
const auto& block5 = node.GetBlock5();
if (block5.HasBlock5()) {
- TSqlExpression expr(Ctx, Mode);
- TColumnRefScope scope(Ctx, EColumnRefState::Allow);
+ TSqlExpression expr(Ctx_, Mode_);
+ TColumnRefScope scope(Ctx_, EColumnRefState::Allow);
TNodePtr where = expr.Build(block5.GetBlock5().GetRule_expr2());
- if (!where || !source->AddFilter(Ctx, where)) {
+ if (!where || !source->AddFilter(Ctx_, where)) {
return nullptr;
}
- Ctx.IncrementMonCounter("sql_features", "ProcessWhere");
+ Ctx_.IncrementMonCounter("sql_features", "ProcessWhere");
} else {
- Ctx.IncrementMonCounter("sql_features", processStream ? "ProcessStream" : "Process");
+ Ctx_.IncrementMonCounter("sql_features", processStream ? "ProcessStream" : "Process");
}
if (block5.HasBlock6()) {
- Ctx.Error() << "PROCESS does not allow HAVING yet! You may request it on yql@ maillist.";
+ Ctx_.Error() << "PROCESS does not allow HAVING yet! You may request it on yql@ maillist.";
return nullptr;
}
bool listCall = false;
- TSqlCallExpr call(Ctx, Mode);
+ TSqlCallExpr call(Ctx_, Mode_);
bool initRet = call.Init(block5.GetRule_using_call_expr2());
if (initRet) {
call.IncCounters();
@@ -817,7 +817,7 @@ TSourcePtr TSqlSelect::ProcessCore(const TRule_process_core& node, const TWriteS
for (auto& arg: args) {
if (auto placeholder = dynamic_cast<TTableRows*>(arg.Get())) {
if (listCall) {
- Ctx.Error() << "Only one TableRows() argument is allowed.";
+ Ctx_.Error() << "Only one TableRows() argument is allowed.";
return nullptr;
}
listCall = true;
@@ -825,7 +825,7 @@ TSourcePtr TSqlSelect::ProcessCore(const TRule_process_core& node, const TWriteS
}
if (!call.IsExternal() && block5.HasBlock4()) {
- Ctx.Error() << "PROCESS without USING EXTERNAL FUNCTION doesn't allow WITH block";
+ Ctx_.Error() << "PROCESS without USING EXTERNAL FUNCTION doesn't allow WITH block";
return nullptr;
}
@@ -850,7 +850,7 @@ TSourcePtr TSqlSelect::ProcessCore(const TRule_process_core& node, const TWriteS
}
if (call.IsExternal() && block5.HasBlock7()) {
- Ctx.Error() << "PROCESS with USING EXTERNAL FUNCTION doesn't allow ASSUME block";
+ Ctx_.Error() << "PROCESS with USING EXTERNAL FUNCTION doesn't allow ASSUME block";
return nullptr;
}
@@ -859,7 +859,7 @@ TSourcePtr TSqlSelect::ProcessCore(const TRule_process_core& node, const TWriteS
if (!OrderByClause(block5.GetBlock7().GetRule_order_by_clause2(), assumeOrderBy)) {
return nullptr;
}
- Ctx.IncrementMonCounter("sql_features", IsColumnsOnly(assumeOrderBy) ? "AssumeOrderBy" : "AssumeOrderByExpr");
+ Ctx_.IncrementMonCounter("sql_features", IsColumnsOnly(assumeOrderBy) ? "AssumeOrderBy" : "AssumeOrderByExpr");
}
return BuildProcess(startPos, std::move(source), with, finalCall.IsExternal(), std::move(args), listCall, processStream, settings, assumeOrderBy);
@@ -870,7 +870,7 @@ TSourcePtr TSqlSelect::ReduceCore(const TRule_reduce_core& node, const TWriteSet
// ON column_list USING ALL? using_call_expr (AS an_id)?
// (WHERE expr)? (HAVING expr)? (ASSUME order_by_clause)?
Token(node.GetToken1());
- TPosition startPos(Ctx.Pos());
+ TPosition startPos(Ctx_.Pos());
if (!selectPos) {
selectPos = startPos;
}
@@ -904,21 +904,21 @@ TSourcePtr TSqlSelect::ReduceCore(const TRule_reduce_core& node, const TWriteSet
}
if (node.HasBlock11()) {
- TColumnRefScope scope(Ctx, EColumnRefState::Allow);
- TSqlExpression expr(Ctx, Mode);
+ TColumnRefScope scope(Ctx_, EColumnRefState::Allow);
+ TSqlExpression expr(Ctx_, Mode_);
TNodePtr where = expr.Build(node.GetBlock11().GetRule_expr2());
- if (!where || !source->AddFilter(Ctx, where)) {
+ if (!where || !source->AddFilter(Ctx_, where)) {
return nullptr;
}
- Ctx.IncrementMonCounter("sql_features", "ReduceWhere");
+ Ctx_.IncrementMonCounter("sql_features", "ReduceWhere");
} else {
- Ctx.IncrementMonCounter("sql_features", "Reduce");
+ Ctx_.IncrementMonCounter("sql_features", "Reduce");
}
TNodePtr having;
if (node.HasBlock12()) {
- TColumnRefScope scope(Ctx, EColumnRefState::Allow);
- TSqlExpression expr(Ctx, Mode);
+ TColumnRefScope scope(Ctx_, EColumnRefState::Allow);
+ TSqlExpression expr(Ctx_, Mode_);
having = expr.Build(node.GetBlock12().GetRule_expr2());
if (!having) {
return nullptr;
@@ -926,7 +926,7 @@ TSourcePtr TSqlSelect::ReduceCore(const TRule_reduce_core& node, const TWriteSet
}
bool listCall = false;
- TSqlCallExpr call(Ctx, Mode);
+ TSqlCallExpr call(Ctx_, Mode_);
bool initRet = call.Init(node.GetRule_using_call_expr9());
if (initRet) {
call.IncCounters();
@@ -940,7 +940,7 @@ TSourcePtr TSqlSelect::ReduceCore(const TRule_reduce_core& node, const TWriteSet
for (auto& arg: args) {
if (auto placeholder = dynamic_cast<TTableRows*>(arg.Get())) {
if (listCall) {
- Ctx.Error() << "Only one TableRows() argument is allowed.";
+ Ctx_.Error() << "Only one TableRows() argument is allowed.";
return nullptr;
}
listCall = true;
@@ -965,7 +965,7 @@ TSourcePtr TSqlSelect::ReduceCore(const TRule_reduce_core& node, const TWriteSet
if (!OrderByClause(node.GetBlock13().GetRule_order_by_clause2(), assumeOrderBy)) {
return nullptr;
}
- Ctx.IncrementMonCounter("sql_features", IsColumnsOnly(assumeOrderBy) ? "AssumeOrderBy" : "AssumeOrderByExpr");
+ Ctx_.IncrementMonCounter("sql_features", IsColumnsOnly(assumeOrderBy) ? "AssumeOrderBy" : "AssumeOrderByExpr");
}
return BuildReduce(startPos, reduceMode, std::move(source), std::move(orderBy), std::move(keys), std::move(args), udf, having,
@@ -985,12 +985,12 @@ TSourcePtr TSqlSelect::SelectCore(const TRule_select_core& node, const TWriteSet
Token(node.GetToken2());
}
- TPosition startPos(Ctx.Pos());
+ TPosition startPos(Ctx_.Pos());
if (!selectPos) {
- selectPos = Ctx.Pos();
+ selectPos = Ctx_.Pos();
}
- const auto hints = Ctx.PullHintForToken(selectPos);
+ const auto hints = Ctx_.PullHintForToken(selectPos);
TColumnsSets uniqueSets, distinctSets;
for (const auto& hint : hints) {
if (const auto& name = to_lower(hint.Name); name == "unique")
@@ -999,25 +999,25 @@ TSourcePtr TSqlSelect::SelectCore(const TRule_select_core& node, const TWriteSet
uniqueSets.insert_unique(NSorted::TSimpleSet<TString>(hint.Values.cbegin(), hint.Values.cend()));
distinctSets.insert_unique(NSorted::TSimpleSet<TString>(hint.Values.cbegin(), hint.Values.cend()));
} else {
- Ctx.Warning(hint.Pos, TIssuesIds::YQL_UNUSED_HINT) << "Hint " << hint.Name << " will not be used";
+ Ctx_.Warning(hint.Pos, TIssuesIds::YQL_UNUSED_HINT) << "Hint " << hint.Name << " will not be used";
}
}
const bool distinct = IsDistinctOptSet(node.GetRule_opt_set_quantifier4());
if (distinct) {
- Ctx.IncrementMonCounter("sql_features", "DistinctInSelect");
+ Ctx_.IncrementMonCounter("sql_features", "DistinctInSelect");
}
- TSourcePtr source(BuildFakeSource(selectPos, /* missingFrom = */ true, Mode == NSQLTranslation::ESqlMode::SUBQUERY));
+ TSourcePtr source(BuildFakeSource(selectPos, /* missingFrom = */ true, Mode_ == NSQLTranslation::ESqlMode::SUBQUERY));
if (node.HasBlock1() && node.HasBlock9()) {
Token(node.GetBlock9().GetToken1());
- Ctx.IncrementMonCounter("sql_errors", "DoubleFrom");
- Ctx.Error() << "Only one FROM clause is allowed";
+ Ctx_.IncrementMonCounter("sql_errors", "DoubleFrom");
+ Ctx_.Error() << "Only one FROM clause is allowed";
return nullptr;
}
if (node.HasBlock1()) {
source = JoinSource(node.GetBlock1().GetRule_join_source2());
- Ctx.IncrementMonCounter("sql_features", "FromInFront");
+ Ctx_.IncrementMonCounter("sql_features", "FromInFront");
} else if (node.HasBlock9()) {
source = JoinSource(node.GetBlock9().GetRule_join_source2());
}
@@ -1037,22 +1037,22 @@ TSourcePtr TSqlSelect::SelectCore(const TRule_select_core& node, const TWriteSet
if (node.HasBlock10()) {
auto block = node.GetBlock10();
Token(block.GetToken1());
- TPosition pos(Ctx.Pos());
+ TPosition pos(Ctx_.Pos());
TNodePtr where;
{
- TColumnRefScope scope(Ctx, EColumnRefState::Allow);
- TSqlExpression expr(Ctx, Mode);
+ TColumnRefScope scope(Ctx_, EColumnRefState::Allow);
+ TSqlExpression expr(Ctx_, Mode_);
where = expr.Build(block.GetRule_expr2());
}
if (!where) {
- Ctx.IncrementMonCounter("sql_errors", "WhereInvalid");
+ Ctx_.IncrementMonCounter("sql_errors", "WhereInvalid");
return nullptr;
}
- if (!source->AddFilter(Ctx, where)) {
- Ctx.IncrementMonCounter("sql_errors", "WhereNotSupportedBySource");
+ if (!source->AddFilter(Ctx_, where)) {
+ Ctx_.IncrementMonCounter("sql_errors", "WhereNotSupportedBySource");
return nullptr;
}
- Ctx.IncrementMonCounter("sql_features", "Where");
+ Ctx_.IncrementMonCounter("sql_features", "Where");
}
/// \todo merge gtoupByExpr and groupBy in one
@@ -1061,7 +1061,7 @@ TSourcePtr TSqlSelect::SelectCore(const TRule_select_core& node, const TWriteSet
bool compactGroupBy = false;
TString groupBySuffix;
if (node.HasBlock11()) {
- TGroupByClause clause(Ctx, Mode);
+ TGroupByClause clause(Ctx_, Mode_);
if (!clause.Build(node.GetBlock11().GetRule_group_by_clause1())) {
return nullptr;
}
@@ -1078,32 +1078,32 @@ TSourcePtr TSqlSelect::SelectCore(const TRule_select_core& node, const TWriteSet
groupBySuffix = clause.GetSuffix();
if (source->IsStream() && !hasHopping) {
- Ctx.Error() << "Streaming group by query must have a hopping window specification.";
+ Ctx_.Error() << "Streaming group by query must have a hopping window specification.";
return nullptr;
}
}
TNodePtr having;
if (node.HasBlock12()) {
- TSqlExpression expr(Ctx, Mode);
- TColumnRefScope scope(Ctx, EColumnRefState::Allow);
+ TSqlExpression expr(Ctx_, Mode_);
+ TColumnRefScope scope(Ctx_, EColumnRefState::Allow);
having = expr.Build(node.GetBlock12().GetRule_expr2());
if (!having) {
return nullptr;
}
- Ctx.IncrementMonCounter("sql_features", "Having");
+ Ctx_.IncrementMonCounter("sql_features", "Having");
}
TWinSpecs windowSpec;
if (node.HasBlock13()) {
if (source->IsStream()) {
- Ctx.Error() << "WINDOW is not allowed in streaming queries";
+ Ctx_.Error() << "WINDOW is not allowed in streaming queries";
return nullptr;
}
if (!WindowClause(node.GetBlock13().GetRule_window_clause1(), windowSpec)) {
return nullptr;
}
- Ctx.IncrementMonCounter("sql_features", "WindowClause");
+ Ctx_.IncrementMonCounter("sql_features", "WindowClause");
}
bool assumeSorted = false;
@@ -1115,7 +1115,7 @@ TSourcePtr TSqlSelect::SelectCore(const TRule_select_core& node, const TWriteSet
Token(orderBlock.GetRule_order_by_clause2().GetToken1());
if (source->IsStream()) {
- Ctx.Error() << "ORDER BY is not allowed in streaming queries";
+ Ctx_.Error() << "ORDER BY is not allowed in streaming queries";
return nullptr;
}
@@ -1126,7 +1126,7 @@ TSourcePtr TSqlSelect::SelectCore(const TRule_select_core& node, const TWriteSet
if (!OrderByClause(orderBlock.GetRule_order_by_clause2(), orderBy)) {
return nullptr;
}
- Ctx.IncrementMonCounter("sql_features", IsColumnsOnly(orderBy)
+ Ctx_.IncrementMonCounter("sql_features", IsColumnsOnly(orderBy)
? (assumeSorted ? "AssumeOrderBy" : "OrderBy")
: (assumeSorted ? "AssumeOrderByExpr" : "OrderByExpr")
);
@@ -1142,19 +1142,19 @@ TSourcePtr TSqlSelect::SelectCore(const TRule_select_core& node, const TWriteSet
class TScopedWinSpecs {
public:
TScopedWinSpecs(TContext& ctx, TWinSpecs& specs)
- : Ctx(ctx)
+ : Ctx_(ctx)
{
- Ctx.WinSpecsScopes.push_back(std::ref(specs));
+ Ctx_.WinSpecsScopes.push_back(std::ref(specs));
}
~TScopedWinSpecs() {
- Ctx.WinSpecsScopes.pop_back();
+ Ctx_.WinSpecsScopes.pop_back();
}
private:
- TContext& Ctx;
+ TContext& Ctx_;
};
- TScopedWinSpecs scoped(Ctx, windowSpec);
+ TScopedWinSpecs scoped(Ctx_, windowSpec);
if (!SelectTerm(terms, node.GetRule_result_column5())) {
return nullptr;
}
@@ -1168,14 +1168,14 @@ TSourcePtr TSqlSelect::SelectCore(const TRule_select_core& node, const TWriteSet
if (!ValidateSelectColumns(terms)) {
return nullptr;
}
- return BuildSelectCore(Ctx, startPos, std::move(source), groupByExpr, groupBy, compactGroupBy, groupBySuffix, assumeSorted, orderBy, having,
+ return BuildSelectCore(Ctx_, startPos, std::move(source), groupByExpr, groupBy, compactGroupBy, groupBySuffix, assumeSorted, orderBy, having,
std::move(windowSpec), legacyHoppingWindowSpec, std::move(terms), distinct, std::move(without), forceWithout, selectStream, settings, std::move(uniqueSets), std::move(distinctSets));
}
bool TSqlSelect::WindowDefinition(const TRule_window_definition& rule, TWinSpecs& winSpecs) {
const TString windowName = Id(rule.GetRule_new_window_name1().GetRule_window_name1().GetRule_an_id_window1(), *this);
if (winSpecs.contains(windowName)) {
- Ctx.Error() << "Unable to declare window with same name: " << windowName;
+ Ctx_.Error() << "Unable to declare window with same name: " << windowName;
return false;
}
auto windowSpec = WindowSpecification(rule.GetRule_window_specification3().GetRule_window_specification_details2());
@@ -1210,7 +1210,7 @@ bool TSqlSelect::ValidateLimitOrderByWithSelectOp(TMaybe<TSelectKindPlacement> p
}
if (!placement->IsLastInSelectOp) {
- Ctx.Error() << what << " within UNION ALL is only allowed after last subquery";
+ Ctx_.Error() << what << " within UNION ALL is only allowed after last subquery";
return false;
}
return true;
@@ -1227,20 +1227,20 @@ TSqlSelect::TSelectKindResult TSqlSelect::SelectKind(const TRule_select_kind_par
if (!res) {
return {};
}
- TPosition startPos(Ctx.Pos());
+ TPosition startPos(Ctx_.Pos());
/// LIMIT INTEGER block
TNodePtr skipTake;
if (node.HasBlock2()) {
auto block = node.GetBlock2();
Token(block.GetToken1());
- TPosition pos(Ctx.Pos());
+ TPosition pos(Ctx_.Pos());
if (!ValidateLimitOrderByWithSelectOp(placement, "LIMIT")) {
return {};
}
- TSqlExpression takeExpr(Ctx, Mode);
+ TSqlExpression takeExpr(Ctx_, Mode_);
auto take = takeExpr.Build(block.GetRule_expr2());
if (!take) {
return{};
@@ -1248,7 +1248,7 @@ TSqlSelect::TSelectKindResult TSqlSelect::SelectKind(const TRule_select_kind_par
TNodePtr skip;
if (block.HasBlock3()) {
- TSqlExpression skipExpr(Ctx, Mode);
+ TSqlExpression skipExpr(Ctx_, Mode_);
skip = skipExpr.Build(block.GetBlock3().GetRule_expr2());
if (!skip) {
return {};
@@ -1256,9 +1256,9 @@ TSqlSelect::TSelectKindResult TSqlSelect::SelectKind(const TRule_select_kind_par
if (Token(block.GetBlock3().GetToken1()) == ",") {
// LIMIT skip, take
skip.Swap(take);
- Ctx.IncrementMonCounter("sql_features", "LimitSkipTake");
+ Ctx_.IncrementMonCounter("sql_features", "LimitSkipTake");
} else {
- Ctx.IncrementMonCounter("sql_features", "LimitOffset");
+ Ctx_.IncrementMonCounter("sql_features", "LimitOffset");
}
}
@@ -1269,7 +1269,7 @@ TSqlSelect::TSelectKindResult TSqlSelect::SelectKind(const TRule_select_kind_par
res.SelectOpSkipTake = st;
}
- Ctx.IncrementMonCounter("sql_features", "Limit");
+ Ctx_.IncrementMonCounter("sql_features", "Limit");
}
res.Source = BuildSelect(startPos, std::move(res.Source), skipTake);
@@ -1281,18 +1281,18 @@ TSqlSelect::TSelectKindResult TSqlSelect::SelectKind(const TRule_select_kind& no
{
const bool discard = node.HasBlock1();
const bool hasLabel = node.HasBlock3();
- if (hasLabel && (Mode == NSQLTranslation::ESqlMode::LIMITED_VIEW || Mode == NSQLTranslation::ESqlMode::SUBQUERY)) {
- Ctx.Error() << "INTO RESULT is not allowed in current mode";
+ if (hasLabel && (Mode_ == NSQLTranslation::ESqlMode::LIMITED_VIEW || Mode_ == NSQLTranslation::ESqlMode::SUBQUERY)) {
+ Ctx_.Error() << "INTO RESULT is not allowed in current mode";
return {};
}
if (discard && hasLabel) {
- Ctx.Error() << "DISCARD and INTO RESULT cannot be used at the same time";
+ Ctx_.Error() << "DISCARD and INTO RESULT cannot be used at the same time";
return {};
}
if (discard && !selectPos) {
- selectPos = Ctx.TokenPosition(node.GetBlock1().GetToken1());
+ selectPos = Ctx_.TokenPosition(node.GetBlock1().GetToken1());
}
TWriteSettings settings;
@@ -1306,16 +1306,16 @@ TSqlSelect::TSelectKindResult TSqlSelect::SelectKind(const TRule_select_kind& no
if (placement->IsFirstInSelectOp) {
res.Settings.Discard = settings.Discard;
} else if (settings.Discard) {
- auto discardPos = Ctx.TokenPosition(node.GetBlock1().GetToken1());
- Ctx.Error(discardPos) << "DISCARD within UNION ALL is only allowed before first subquery";
+ auto discardPos = Ctx_.TokenPosition(node.GetBlock1().GetToken1());
+ Ctx_.Error(discardPos) << "DISCARD within UNION ALL is only allowed before first subquery";
return {};
}
if (placement->IsLastInSelectOp) {
res.Settings.Label = settings.Label;
} else if (!settings.Label.Empty()) {
- auto labelPos = Ctx.TokenPosition(node.GetBlock3().GetToken1());
- Ctx.Error(labelPos) << "INTO RESULT within UNION ALL is only allowed after last subquery";
+ auto labelPos = Ctx_.TokenPosition(node.GetBlock3().GetToken1());
+ Ctx_.Error(labelPos) << "INTO RESULT within UNION ALL is only allowed after last subquery";
return {};
}
@@ -1393,7 +1393,7 @@ TSourcePtr TSqlSelect::Build(const TRule& node, TPosition pos, TSelectKindResult
if (token == "union") {
// nothing
} else if (token == "intersect" || token == "except") {
- Ctx.Error() << "INTERSECT and EXCEPT are not implemented yet";
+ Ctx_.Error() << "INTERSECT and EXCEPT are not implemented yet";
return nullptr;
} else {
Y_ABORT("You should change implementation according to grammar changes. Invalid token: %s", token.c_str());
@@ -1439,7 +1439,7 @@ TSourcePtr TSqlSelect::Build(const TRule& node, TPosition pos, TSelectKindResult
TVector<TNodePtr> terms;
terms.push_back(BuildColumn(unionPos, "*", ""));
- result = BuildSelectCore(Ctx, unionPos, std::move(result), groupByExpr, groupBy, compactGroupBy, groupBySuffix,
+ result = BuildSelectCore(Ctx_, unionPos, std::move(result), groupByExpr, groupBy, compactGroupBy, groupBySuffix,
assumeOrderBy, orderBy, having, std::move(winSpecs), legacyHoppingWindowSpec, std::move(terms),
distinct, std::move(without), forceWithout, stream, outermostSettings, {}, {});
diff --git a/yql/essentials/sql/v1/sql_translation.cpp b/yql/essentials/sql/v1/sql_translation.cpp
index e96096ccbda..42e03775303 100644
--- a/yql/essentials/sql/v1/sql_translation.cpp
+++ b/yql/essentials/sql/v1/sql_translation.cpp
@@ -70,17 +70,17 @@ bool BuildContextRecreationQuery(TContext& context, TStringBuilder& query) {
// ensures that the parsing mode is restored to the original value
class TModeGuard {
- ESqlMode& Mode;
- ESqlMode OriginalMode;
+ ESqlMode& Mode_;
+ ESqlMode OriginalMode_;
public:
TModeGuard(ESqlMode& mode, ESqlMode newMode)
- : Mode(mode)
- , OriginalMode(std::exchange(mode, newMode))
+ : Mode_(mode)
+ , OriginalMode_(std::exchange(mode, newMode))
{}
~TModeGuard() {
- Mode = OriginalMode;
+ Mode_ = OriginalMode_;
}
};
@@ -663,7 +663,7 @@ bool TSqlTranslation::CreateTableIndex(const TRule_table_index& node, TVector<TI
}
bool sync = true;
if (globalIndex.HasBlock3()) {
- const TString token = to_lower(Ctx.Token(globalIndex.GetBlock3().GetToken1()));
+ const TString token = to_lower(Ctx_.Token(globalIndex.GetBlock3().GetToken1()));
if (token == "sync") {
sync = true;
} else if (token == "async") {
@@ -699,13 +699,13 @@ bool TSqlTranslation::CreateTableIndex(const TRule_table_index& node, TVector<TI
const TString subType = to_upper(IdEx(node.GetRule_table_index_type3().GetBlock2().GetRule_index_subtype2().GetRule_an_id1(), *this).Name) ;
if (subType == "VECTOR_KMEANS_TREE") {
if (indexes.back().Type != TIndexDescription::EType::GlobalSync) {
- Ctx.Error() << subType << " index can only be GLOBAL [SYNC]";
+ Ctx_.Error() << subType << " index can only be GLOBAL [SYNC]";
return false;
}
indexes.back().Type = TIndexDescription::EType::GlobalVectorKmeansTree;
} else {
- Ctx.Error() << subType << " index subtype is not supported";
+ Ctx_.Error() << subType << " index subtype is not supported";
return false;
}
}
@@ -719,7 +719,7 @@ bool TSqlTranslation::CreateTableIndex(const TRule_table_index& node, TVector<TI
if (!CreateIndexSettings(node.GetBlock10().GetRule_with_index_settings1(), index.Type, index.IndexSettings)) {
return false;
}
- if (!vectorSettings.Validate(Ctx)) {
+ if (!vectorSettings.Validate(Ctx_)) {
return false;
}
@@ -815,11 +815,11 @@ bool TSqlTranslation::ParseDatabaseSetting(const TRule_database_setting& in, THa
const auto setting = to_upper(Id(in.GetRule_an_id1(), *this));
if (out.contains(setting)) {
- Ctx.Error() << "Duplicate setting: " << setting;
+ Ctx_.Error() << "Duplicate setting: " << setting;
return false;
}
- auto node = ParseDatabaseSettingValue(Ctx, in.GetRule_database_setting_value3());
+ auto node = ParseDatabaseSettingValue(Ctx_, in.GetRule_database_setting_value3());
if (!node) {
return false;
}
@@ -857,7 +857,7 @@ std::tuple<bool, T, TString> TSqlTranslation::GetIndexSettingValue(const TRule_i
// STRING_VALUE
else if (node.HasAlt_index_setting_value2()) {
const TString stringValue = to_lower(Token(node.GetAlt_index_setting_value2().GetToken1()));
- const auto unescaped = StringContent(Ctx, Ctx.Pos(), stringValue);
+ const auto unescaped = StringContent(Ctx_, Ctx_.Pos(), stringValue);
if (!unescaped) {
return {false, value, stringValue};
}
@@ -876,7 +876,7 @@ std::tuple<bool, ui64, TString> TSqlTranslation::GetIndexSettingValue(const TRul
const TString stringValue = Token(intNode.GetToken1());
ui64 value = 0;
TString suffix;
- if (!ParseNumbers(Ctx, stringValue, value, suffix)) {
+ if (!ParseNumbers(Ctx_, stringValue, value, suffix)) {
return {false, value, stringValue};
}
return {true, value, stringValue};
@@ -904,51 +904,51 @@ bool TSqlTranslation::CreateIndexSettingEntry(const TIdentifier &id,
if (to_lower(id.Name) == "distance") {
const auto [success, value, stringValue] = GetIndexSettingValue<TVectorIndexSettings::EDistance>(node);
if (!success) {
- Ctx.Error() << "Invalid distance: " << stringValue;
+ Ctx_.Error() << "Invalid distance: " << stringValue;
return false;
}
vectorIndexSettings.Distance = value;
} else if (to_lower(id.Name) == "similarity") {
const auto [success, value, stringValue] = GetIndexSettingValue<TVectorIndexSettings::ESimilarity>(node);
if (!success) {
- Ctx.Error() << "Invalid similarity: " << stringValue;
+ Ctx_.Error() << "Invalid similarity: " << stringValue;
return false;
}
vectorIndexSettings.Similarity = value;
} else if (to_lower(id.Name) == "vector_type") {
const auto [success, value, stringValue] = GetIndexSettingValue<TVectorIndexSettings::EVectorType>(node);
if (!success) {
- Ctx.Error() << "Invalid vector_type: " << stringValue;
+ Ctx_.Error() << "Invalid vector_type: " << stringValue;
return false;
}
vectorIndexSettings.VectorType = value;
} else if (to_lower(id.Name) == "vector_dimension") {
const auto [success, value, stringValue] = GetIndexSettingValue<ui64>(node);
if (!success || value > Max<ui32>()) {
- Ctx.Error() << "Invalid vector_dimension: " << stringValue;
+ Ctx_.Error() << "Invalid vector_dimension: " << stringValue;
return false;
}
vectorIndexSettings.VectorDimension = value;
} else if (to_lower(id.Name) == "clusters") {
const auto [success, value, stringValue] = GetIndexSettingValue<ui64>(node);
if (!success || value > Max<ui32>()) {
- Ctx.Error() << "Invalid clusters: " << stringValue;
+ Ctx_.Error() << "Invalid clusters: " << stringValue;
return false;
}
vectorIndexSettings.Clusters = value;
} else if (to_lower(id.Name) == "levels") {
const auto [success, value, stringValue] = GetIndexSettingValue<ui64>(node);
if (!success || value > Max<ui32>()) {
- Ctx.Error() << "Invalid levels: " << stringValue;
+ Ctx_.Error() << "Invalid levels: " << stringValue;
return false;
}
vectorIndexSettings.Levels = value;
} else {
- Ctx.Error() << "Unknown index setting: " << id.Name;
+ Ctx_.Error() << "Unknown index setting: " << id.Name;
return false;
}
} else {
- Ctx.Error() << "Unknown index setting: " << id.Name;
+ Ctx_.Error() << "Unknown index setting: " << id.Name;
return false;
}
return true;
@@ -1014,7 +1014,7 @@ TTableHints GetTableFuncHints(TStringBuf funcName) {
TNodePtr TSqlTranslation::NamedExpr(const TRule_named_expr& node, EExpr exprMode) {
- TSqlExpression expr(Ctx, Mode);
+ TSqlExpression expr(Ctx_, Mode_);
if (exprMode == EExpr::GroupBy) {
expr.SetSmartParenthesisMode(TSqlExpression::ESmartParenthesis::GroupBy);
} else if (exprMode == EExpr::SqlLambdaParams) {
@@ -1025,7 +1025,7 @@ TNodePtr TSqlTranslation::NamedExpr(const TRule_named_expr& node, EExpr exprMode
}
TNodePtr exprNode(expr.Build(node.GetRule_expr1()));
if (!exprNode) {
- Ctx.IncrementMonCounter("sql_errors", "NamedExprInvalid");
+ Ctx_.IncrementMonCounter("sql_errors", "NamedExprInvalid");
return nullptr;
}
if (node.HasBlock2()) {
@@ -1057,13 +1057,13 @@ bool TSqlTranslation::BindList(const TRule_bind_parameter_list& node, TVector<TS
return false;
}
- bindNames.emplace_back(TSymbolNameWithPos{name, Ctx.Pos()});
+ bindNames.emplace_back(TSymbolNameWithPos{name, Ctx_.Pos()});
for (auto& b: node.GetBlock2()) {
if (!NamedNodeImpl(b.GetRule_bind_parameter2(), name, *this)) {
return false;
}
- bindNames.emplace_back(TSymbolNameWithPos{name, Ctx.Pos()});
+ bindNames.emplace_back(TSymbolNameWithPos{name, Ctx_.Pos()});
}
return true;
}
@@ -1081,7 +1081,7 @@ bool TSqlTranslation::ActionOrSubqueryArgs(const TRule_action_or_subquery_args&
if (isOptional) {
optionalArgsCount++;
}
- bindNames.emplace_back(TSymbolNameWithPos{name, Ctx.Pos()});
+ bindNames.emplace_back(TSymbolNameWithPos{name, Ctx_.Pos()});
for (auto& b: node.GetBlock2()) {
if (!NamedNodeImpl(b.GetRule_opt_bind_parameter2(), name, isOptional, *this)) {
@@ -1094,7 +1094,7 @@ bool TSqlTranslation::ActionOrSubqueryArgs(const TRule_action_or_subquery_args&
Context().Error() << "Non-optional argument can not follow optional one";
return false;
}
- bindNames.emplace_back(TSymbolNameWithPos{name, Ctx.Pos()});
+ bindNames.emplace_back(TSymbolNameWithPos{name, Ctx_.Pos()});
}
return true;
}
@@ -1139,12 +1139,12 @@ bool TSqlTranslation::NamedBindParam(const TRule_named_bind_parameter& node, TSy
if (!NamedNodeImpl(node.GetRule_bind_parameter1(), name.Name, *this)) {
return false;
}
- name.Pos = Ctx.Pos();
+ name.Pos = Ctx_.Pos();
if (node.HasBlock2()) {
if (!NamedNodeImpl(node.GetBlock2().GetRule_bind_parameter2(), alias.Name, *this)) {
return false;
}
- alias.Pos = Ctx.Pos();
+ alias.Pos = Ctx_.Pos();
}
return true;
}
@@ -1152,7 +1152,7 @@ bool TSqlTranslation::NamedBindParam(const TRule_named_bind_parameter& node, TSy
TMaybe<TTableArg> TSqlTranslation::TableArgImpl(const TRule_table_arg& node) {
TTableArg ret;
ret.HasAt = node.HasBlock1();
- TColumnRefScope scope(Ctx, EColumnRefState::AsStringLiteral);
+ TColumnRefScope scope(Ctx_, EColumnRefState::AsStringLiteral);
ret.Expr = NamedExpr(node.GetRule_named_expr2());
if (!ret.Expr) {
return Nothing();
@@ -1190,7 +1190,7 @@ bool TSqlTranslation::ClusterExpr(const TRule_cluster_expr& node, bool allowWild
if (service != YtProviderName &&
service != KikimrProviderName &&
service != RtmrProviderName && service != StatProviderName) {
- Ctx.Error() << "Unknown service: " << service;
+ Ctx_.Error() << "Unknown service: " << service;
return false;
}
}
@@ -1205,17 +1205,17 @@ bool TSqlTranslation::ClusterExpr(const TRule_cluster_expr& node, bool allowWild
if (value.GetLiteral()) {
TString clusterName = *value.GetLiteral();
if (allowBinding && to_lower(clusterName) == "bindings") {
- switch (Ctx.Settings.BindingsMode) {
+ switch (Ctx_.Settings.BindingsMode) {
case NSQLTranslation::EBindingsMode::DISABLED:
- Ctx.Error(Ctx.Pos(), TIssuesIds::YQL_DISABLED_BINDINGS) << "Please remove 'bindings.' from your query, the support for this syntax has ended";
- Ctx.IncrementMonCounter("sql_errors", "DisabledBinding");
+ Ctx_.Error(Ctx_.Pos(), TIssuesIds::YQL_DISABLED_BINDINGS) << "Please remove 'bindings.' from your query, the support for this syntax has ended";
+ Ctx_.IncrementMonCounter("sql_errors", "DisabledBinding");
return false;
case NSQLTranslation::EBindingsMode::ENABLED:
isBinding = true;
break;
case NSQLTranslation::EBindingsMode::DROP_WITH_WARNING:
- Ctx.Warning(Ctx.Pos(), TIssuesIds::YQL_DEPRECATED_BINDINGS) << "Please remove 'bindings.' from your query, the support for this syntax will be dropped soon";
- Ctx.IncrementMonCounter("sql_errors", "DeprecatedBinding");
+ Ctx_.Warning(Ctx_.Pos(), TIssuesIds::YQL_DEPRECATED_BINDINGS) << "Please remove 'bindings.' from your query, the support for this syntax will be dropped soon";
+ Ctx_.IncrementMonCounter("sql_errors", "DeprecatedBinding");
[[fallthrough]];
case NSQLTranslation::EBindingsMode::DROP:
service = Context().Scoped->CurrService;
@@ -1226,14 +1226,14 @@ bool TSqlTranslation::ClusterExpr(const TRule_cluster_expr& node, bool allowWild
return true;
}
TString normalizedClusterName;
- auto foundProvider = Ctx.GetClusterProvider(clusterName, normalizedClusterName);
+ auto foundProvider = Ctx_.GetClusterProvider(clusterName, normalizedClusterName);
if (!foundProvider) {
- Ctx.Error() << "Unknown cluster: " << clusterName;
+ Ctx_.Error() << "Unknown cluster: " << clusterName;
return false;
}
if (service && *foundProvider != service) {
- Ctx.Error() << "Mismatch of cluster " << clusterName << " service, expected: "
+ Ctx_.Error() << "Mismatch of cluster " << clusterName << " service, expected: "
<< *foundProvider << ", got: " << service;
return false;
}
@@ -1242,10 +1242,10 @@ bool TSqlTranslation::ClusterExpr(const TRule_cluster_expr& node, bool allowWild
service = *foundProvider;
}
- value = TDeferredAtom(Ctx.Pos(), normalizedClusterName);
+ value = TDeferredAtom(Ctx_.Pos(), normalizedClusterName);
} else {
if (!service) {
- Ctx.Error() << "Cluster service is not set";
+ Ctx_.Error() << "Cluster service is not set";
return false;
}
}
@@ -1255,7 +1255,7 @@ bool TSqlTranslation::ClusterExpr(const TRule_cluster_expr& node, bool allowWild
}
case TRule_cluster_expr::TBlock2::kAlt2: {
if (!allowWildcard) {
- Ctx.Error() << "Cluster wildcards allowed only in USE statement";
+ Ctx_.Error() << "Cluster wildcards allowed only in USE statement";
return false;
}
@@ -1270,15 +1270,15 @@ bool TSqlTranslation::ClusterExpr(const TRule_cluster_expr& node, bool allowWild
bool TSqlTranslation::ApplyTableBinding(const TString& binding, TTableRef& tr, TTableHints& hints) {
NSQLTranslation::TBindingInfo bindingInfo;
if (const auto& error = ExtractBindingInfo(Context().Settings, binding, bindingInfo)) {
- Ctx.Error() << error;
+ Ctx_.Error() << error;
return false;
}
if (bindingInfo.Schema) {
- TNodePtr schema = BuildQuotedAtom(Ctx.Pos(), bindingInfo.Schema);
+ TNodePtr schema = BuildQuotedAtom(Ctx_.Pos(), bindingInfo.Schema);
- TNodePtr type = new TCallNodeImpl(Ctx.Pos(), "SqlTypeFromYson", { schema });
- TNodePtr columns = new TCallNodeImpl(Ctx.Pos(), "SqlColumnOrderFromYson", { schema });
+ TNodePtr type = new TCallNodeImpl(Ctx_.Pos(), "SqlTypeFromYson", { schema });
+ TNodePtr columns = new TCallNodeImpl(Ctx_.Pos(), "SqlColumnOrderFromYson", { schema });
hints["user_schema"] = { type, columns };
}
@@ -1286,16 +1286,16 @@ bool TSqlTranslation::ApplyTableBinding(const TString& binding, TTableRef& tr, T
for (auto& [key, values] : bindingInfo.Attributes) {
TVector<TNodePtr> hintValue;
for (auto& column : values) {
- hintValue.push_back(BuildQuotedAtom(Ctx.Pos(), column));
+ hintValue.push_back(BuildQuotedAtom(Ctx_.Pos(), column));
}
hints[key] = std::move(hintValue);
}
tr.Service = bindingInfo.ClusterType;
- tr.Cluster = TDeferredAtom(Ctx.Pos(), bindingInfo.Cluster);
+ tr.Cluster = TDeferredAtom(Ctx_.Pos(), bindingInfo.Cluster);
const TString view = "";
- tr.Keys = BuildTableKey(Ctx.Pos(), tr.Service, tr.Cluster, TDeferredAtom(Ctx.Pos(), bindingInfo.Path), {view});
+ tr.Keys = BuildTableKey(Ctx_.Pos(), tr.Service, tr.Cluster, TDeferredAtom(Ctx_.Pos(), bindingInfo.Path), {view});
return true;
}
@@ -1306,8 +1306,8 @@ bool TSqlTranslation::TableRefImpl(const TRule_table_ref& node, TTableRef& resul
// (table_key | an_id_expr LPAREN (table_arg (COMMA table_arg)*)? RPAREN |
// bind_parameter (LPAREN expr_list? RPAREN)? (VIEW an_id)?)
// table_hints?;
- if (Mode == NSQLTranslation::ESqlMode::LIMITED_VIEW && node.HasBlock1()) {
- Ctx.Error() << "Cluster should not be used in limited view";
+ if (Mode_ == NSQLTranslation::ESqlMode::LIMITED_VIEW && node.HasBlock1()) {
+ Ctx_.Error() << "Cluster should not be used in limited view";
return false;
}
auto service = Context().Scoped->CurrService;
@@ -1325,7 +1325,7 @@ bool TSqlTranslation::TableRefImpl(const TRule_table_ref& node, TTableRef& resul
TTableRef tr(Context().MakeName("table"), service, cluster, nullptr);
TPosition pos(Context().Pos());
- TTableHints hints = GetContextHints(Ctx);
+ TTableHints hints = GetContextHints(Ctx_);
TTableHints tableHints;
TMaybe<TString> keyFunc;
@@ -1334,7 +1334,7 @@ bool TSqlTranslation::TableRefImpl(const TRule_table_ref& node, TTableRef& resul
switch (block.Alt_case()) {
case TRule_table_ref::TBlock3::kAlt1: {
if (!isBinding && cluster.Empty()) {
- Ctx.Error() << "No cluster name given and no default cluster is selected";
+ Ctx_.Error() << "No cluster name given and no default cluster is selected";
return false;
}
@@ -1344,7 +1344,7 @@ bool TSqlTranslation::TableRefImpl(const TRule_table_ref& node, TTableRef& resul
auto view = pair.second;
if (!view.ViewName.empty()) {
YQL_ENSURE(view != TViewDescription{"@"});
- Ctx.Error() << "VIEW is not supported for table bindings";
+ Ctx_.Error() << "VIEW is not supported for table bindings";
return false;
}
@@ -1358,7 +1358,7 @@ bool TSqlTranslation::TableRefImpl(const TRule_table_ref& node, TTableRef& resul
}
case TRule_table_ref::TBlock3::kAlt2: {
if (cluster.Empty()) {
- Ctx.Error() << "No cluster name given and no default cluster is selected";
+ Ctx_.Error() << "No cluster name given and no default cluster is selected";
return false;
}
@@ -1388,24 +1388,24 @@ bool TSqlTranslation::TableRefImpl(const TRule_table_ref& node, TTableRef& resul
}
case TRule_table_ref::TBlock3::kAlt3: {
auto& alt = block.GetAlt3();
- Ctx.IncrementMonCounter("sql_features", "NamedNodeUseSource");
+ Ctx_.IncrementMonCounter("sql_features", "NamedNodeUseSource");
TString named;
if (!NamedNodeImpl(alt.GetRule_bind_parameter1(), named, *this)) {
return false;
}
if (hasAt) {
if (alt.HasBlock2()) {
- Ctx.Error() << "Subquery must not be used as anonymous table name";
+ Ctx_.Error() << "Subquery must not be used as anonymous table name";
return false;
}
if (alt.HasBlock3()) {
- Ctx.Error() << "View is not supported for anonymous tables";
+ Ctx_.Error() << "View is not supported for anonymous tables";
return false;
}
if (node.HasBlock4()) {
- Ctx.Error() << "Hints are not supported for anonymous tables";
+ Ctx_.Error() << "Hints are not supported for anonymous tables";
return false;
}
@@ -1414,9 +1414,9 @@ bool TSqlTranslation::TableRefImpl(const TRule_table_ref& node, TTableRef& resul
return false;
}
- auto source = TryMakeSourceFromExpression(Ctx.Pos(), Ctx, service, cluster, namedNode, "@");
+ auto source = TryMakeSourceFromExpression(Ctx_.Pos(), Ctx_, service, cluster, namedNode, "@");
if (!source) {
- Ctx.Error() << "Cannot infer cluster and table name";
+ Ctx_.Error() << "Cannot infer cluster and table name";
return false;
}
@@ -1425,47 +1425,47 @@ bool TSqlTranslation::TableRefImpl(const TRule_table_ref& node, TTableRef& resul
}
auto nodePtr = GetNamedNode(named);
if (!nodePtr) {
- Ctx.IncrementMonCounter("sql_errors", "NamedNodeSourceError");
+ Ctx_.IncrementMonCounter("sql_errors", "NamedNodeSourceError");
return false;
}
if (alt.HasBlock2()) {
if (alt.HasBlock3()) {
- Ctx.Error() << "View is not supported for subqueries";
+ Ctx_.Error() << "View is not supported for subqueries";
return false;
}
if (node.HasBlock4()) {
- Ctx.Error() << "Hints are not supported for subqueries";
+ Ctx_.Error() << "Hints are not supported for subqueries";
return false;
}
TVector<TNodePtr> values;
- values.push_back(new TAstAtomNodeImpl(Ctx.Pos(), "Apply", TNodeFlags::Default));
+ values.push_back(new TAstAtomNodeImpl(Ctx_.Pos(), "Apply", TNodeFlags::Default));
values.push_back(nodePtr);
- values.push_back(new TAstAtomNodeImpl(Ctx.Pos(), "world", TNodeFlags::Default));
+ values.push_back(new TAstAtomNodeImpl(Ctx_.Pos(), "world", TNodeFlags::Default));
- TSqlExpression sqlExpr(Ctx, Mode);
+ TSqlExpression sqlExpr(Ctx_, Mode_);
if (alt.GetBlock2().HasBlock2() && !ExprList(sqlExpr, values, alt.GetBlock2().GetBlock2().GetRule_expr_list1())) {
return false;
}
- TNodePtr apply = new TAstListNodeImpl(Ctx.Pos(), std::move(values));
- if (unorderedSubquery && Ctx.UnorderedSubqueries) {
- apply = new TCallNodeImpl(Ctx.Pos(), "UnorderedSubquery", { apply });
+ TNodePtr apply = new TAstListNodeImpl(Ctx_.Pos(), std::move(values));
+ if (unorderedSubquery && Ctx_.UnorderedSubqueries) {
+ apply = new TCallNodeImpl(Ctx_.Pos(), "UnorderedSubquery", { apply });
}
- result.Source = BuildNodeSource(Ctx.Pos(), apply);
+ result.Source = BuildNodeSource(Ctx_.Pos(), apply);
return true;
}
TTableHints hints;
- TTableHints contextHints = GetContextHints(Ctx);
- auto ret = BuildInnerSource(Ctx.Pos(), nodePtr, service, cluster);
+ TTableHints contextHints = GetContextHints(Ctx_);
+ auto ret = BuildInnerSource(Ctx_.Pos(), nodePtr, service, cluster);
if (alt.HasBlock3()) {
auto view = Id(alt.GetBlock3().GetRule_view_name2(), *this);
- Ctx.IncrementMonCounter("sql_features", "View");
+ Ctx_.IncrementMonCounter("sql_features", "View");
bool result = view.PrimaryFlag
- ? ret->SetPrimaryView(Ctx, Ctx.Pos())
- : ret->SetViewName(Ctx, Ctx.Pos(), view.ViewName);
+ ? ret->SetPrimaryView(Ctx_, Ctx_.Pos())
+ : ret->SetViewName(Ctx_, Ctx_.Pos(), view.ViewName);
if (!result) {
return false;
}
@@ -1481,7 +1481,7 @@ bool TSqlTranslation::TableRefImpl(const TRule_table_ref& node, TTableRef& resul
}
if (hints || contextHints) {
- if (!ret->SetTableHints(Ctx, Ctx.Pos(), hints, contextHints)) {
+ if (!ret->SetTableHints(Ctx_, Ctx_.Pos(), hints, contextHints)) {
return false;
}
}
@@ -1498,7 +1498,7 @@ bool TSqlTranslation::TableRefImpl(const TRule_table_ref& node, TTableRef& resul
if (node.HasBlock4()) {
auto tmp = TableHintsImpl(node.GetBlock4().GetRule_table_hints1(), service, keyFunc.GetOrElse(""));
if (!tmp) {
- Ctx.Error() << "Failed to parse table hints";
+ Ctx_.Error() << "Failed to parse table hints";
return false;
}
@@ -1526,17 +1526,17 @@ TMaybe<TSourcePtr> TSqlTranslation::AsTableImpl(const TRule_table_ref& node) {
if (func == "as_table") {
if (node.HasBlock1()) {
- Ctx.Error() << "Cluster shouldn't be specified for AS_TABLE source";
+ Ctx_.Error() << "Cluster shouldn't be specified for AS_TABLE source";
return TMaybe<TSourcePtr>(nullptr);
}
if (!alt.HasBlock3() || !alt.GetBlock3().GetBlock2().empty()) {
- Ctx.Error() << "Expected single argument for AS_TABLE source";
+ Ctx_.Error() << "Expected single argument for AS_TABLE source";
return TMaybe<TSourcePtr>(nullptr);
}
if (node.HasBlock4()) {
- Ctx.Error() << "No hints expected for AS_TABLE source";
+ Ctx_.Error() << "No hints expected for AS_TABLE source";
return TMaybe<TSourcePtr>(nullptr);
}
@@ -1546,11 +1546,11 @@ TMaybe<TSourcePtr> TSqlTranslation::AsTableImpl(const TRule_table_ref& node) {
}
if (arg->Expr->GetSource()) {
- Ctx.Error() << "AS_TABLE shouldn't be used for table sources";
+ Ctx_.Error() << "AS_TABLE shouldn't be used for table sources";
return TMaybe<TSourcePtr>(nullptr);
}
- return BuildNodeSource(Ctx.Pos(), arg->Expr, true, Ctx.EmitTableSource);
+ return BuildNodeSource(Ctx_.Pos(), arg->Expr, true, Ctx_.EmitTableSource);
}
}
@@ -1607,7 +1607,7 @@ TNodePtr TSqlTranslation::SerialTypeNode(const TRule_type_name_or_bind& node) {
return nullptr;
}
- TPosition pos = Ctx.Pos();
+ TPosition pos = Ctx_.Pos();
auto typeNameNode = node.GetAlt_type_name_or_bind1().GetRule_type_name1();
if (typeNameNode.Alt_case() != TRule_type_name::kAltTypeName2) {
@@ -1677,22 +1677,22 @@ bool TSqlTranslation::FillFamilySettingsEntry(const TRule_family_settings_entry&
TIdentifier id = IdEx(settingNode.GetRule_an_id1(), *this);
const TRule_family_setting_value& value = settingNode.GetRule_family_setting_value3();
if (to_lower(id.Name) == "data") {
- if (!StoreString(value, family.Data, Ctx)) {
- Ctx.Error() << to_upper(id.Name) << " value should be a string literal";
+ if (!StoreString(value, family.Data, Ctx_)) {
+ Ctx_.Error() << to_upper(id.Name) << " value should be a string literal";
return false;
}
} else if (to_lower(id.Name) == "compression") {
- if (!StoreString(value, family.Compression, Ctx)) {
- Ctx.Error() << to_upper(id.Name) << " value should be a string literal";
+ if (!StoreString(value, family.Compression, Ctx_)) {
+ Ctx_.Error() << to_upper(id.Name) << " value should be a string literal";
return false;
}
} else if (to_lower(id.Name) == "compression_level") {
- if (!StoreInt(value, family.CompressionLevel, Ctx)) {
- Ctx.Error() << to_upper(id.Name) << " value should be an integer";
+ if (!StoreInt(value, family.CompressionLevel, Ctx_)) {
+ Ctx_.Error() << to_upper(id.Name) << " value should be an integer";
return false;
}
} else {
- Ctx.Error() << "Unknown table setting: " << id.Name;
+ Ctx_.Error() << "Unknown table setting: " << id.Name;
return false;
}
return true;
@@ -1722,7 +1722,7 @@ bool TSqlTranslation::CreateTableEntry(const TRule_create_table_entry& node, TCr
case TRule_create_table_entry::kAltCreateTableEntry1:
{
if (isCreateTableAs) {
- Ctx.Error() << "Column types are not supported for CREATE TABLE AS";
+ Ctx_.Error() << "Column types are not supported for CREATE TABLE AS";
return false;
}
// column_schema
@@ -1731,7 +1731,7 @@ bool TSqlTranslation::CreateTableEntry(const TRule_create_table_entry& node, TCr
return false;
}
if (columnSchema->Families.size() > 1) {
- Ctx.Error() << "Several column families for a single column are not yet supported";
+ Ctx_.Error() << "Several column families for a single column are not yet supported";
return false;
}
params.Columns.push_back(*columnSchema);
@@ -1744,7 +1744,7 @@ bool TSqlTranslation::CreateTableEntry(const TRule_create_table_entry& node, TCr
switch (constraint.Alt_case()) {
case TRule_table_constraint::kAltTableConstraint1: {
if (!params.PkColumns.empty()) {
- Ctx.Error() << "PRIMARY KEY statement must be specified only once";
+ Ctx_.Error() << "PRIMARY KEY statement must be specified only once";
return false;
}
auto& pkConstraint = constraint.GetAlt_table_constraint1();
@@ -1756,7 +1756,7 @@ bool TSqlTranslation::CreateTableEntry(const TRule_create_table_entry& node, TCr
}
case TRule_table_constraint::kAltTableConstraint2: {
if (!params.PartitionByColumns.empty()) {
- Ctx.Error() << "PARTITION BY statement must be specified only once";
+ Ctx_.Error() << "PARTITION BY statement must be specified only once";
return false;
}
auto& pbConstraint = constraint.GetAlt_table_constraint2();
@@ -1768,7 +1768,7 @@ bool TSqlTranslation::CreateTableEntry(const TRule_create_table_entry& node, TCr
}
case TRule_table_constraint::kAltTableConstraint3: {
if (!params.OrderByColumns.empty()) {
- Ctx.Error() << "ORDER BY statement must be specified only once";
+ Ctx_.Error() << "ORDER BY statement must be specified only once";
return false;
}
auto& obConstraint = constraint.GetAlt_table_constraint3();
@@ -1780,13 +1780,13 @@ bool TSqlTranslation::CreateTableEntry(const TRule_create_table_entry& node, TCr
auto& token = spec.GetBlock2().GetToken1();
auto tokenId = token.GetId();
- if (IS_TOKEN(Ctx.Settings.Antlr4Parser, tokenId, ASC)) {
+ if (IS_TOKEN(Ctx_.Settings.Antlr4Parser, tokenId, ASC)) {
return true;
- } else if (IS_TOKEN(Ctx.Settings.Antlr4Parser, tokenId, DESC)) {
+ } else if (IS_TOKEN(Ctx_.Settings.Antlr4Parser, tokenId, DESC)) {
desc = true;
return true;
} else {
- Ctx.Error() << "Unsupported direction token: " << token.GetId();
+ Ctx_.Error() << "Unsupported direction token: " << token.GetId();
return false;
}
};
@@ -1825,7 +1825,7 @@ bool TSqlTranslation::CreateTableEntry(const TRule_create_table_entry& node, TCr
case TRule_create_table_entry::kAltCreateTableEntry4:
{
if (isCreateTableAs) {
- Ctx.Error() << "Column families are not supported for CREATE TABLE AS";
+ Ctx_.Error() << "Column families are not supported for CREATE TABLE AS";
return false;
}
// family_entry
@@ -1841,7 +1841,7 @@ bool TSqlTranslation::CreateTableEntry(const TRule_create_table_entry& node, TCr
{
// changefeed
auto& changefeed = node.GetAlt_create_table_entry5().GetRule_changefeed1();
- TSqlExpression expr(Ctx, Mode);
+ TSqlExpression expr(Ctx_, Mode_);
if (!CreateChangefeed(changefeed, expr, params.Changefeeds)) {
return false;
}
@@ -1850,7 +1850,7 @@ bool TSqlTranslation::CreateTableEntry(const TRule_create_table_entry& node, TCr
case TRule_create_table_entry::kAltCreateTableEntry6:
{
if (!isCreateTableAs) {
- Ctx.Error() << "Column requires a type";
+ Ctx_.Error() << "Column requires a type";
return false;
}
// an_id_schema
@@ -2185,25 +2185,25 @@ bool TSqlTranslation::StoreExternalTableSettingsEntry(const TIdentifier& id, con
YQL_ENSURE(!reset || reset && alter);
if (to_lower(id.Name) == "data_source") {
if (reset) {
- Ctx.Error() << to_upper(id.Name) << " reset is not supported";
+ Ctx_.Error() << to_upper(id.Name) << " reset is not supported";
return false;
}
TDeferredAtom dataSource;
- if (!StoreString(*value, dataSource, Ctx, to_upper(id.Name))) {
+ if (!StoreString(*value, dataSource, Ctx_, to_upper(id.Name))) {
return false;
}
TString service = Context().Scoped->CurrService;
TDeferredAtom cluster = Context().Scoped->CurrCluster;
- TNodePtr root = new TAstListNodeImpl(Ctx.Pos());
- root->Add("String", Ctx.GetPrefixedPath(service, cluster, dataSource));
+ TNodePtr root = new TAstListNodeImpl(Ctx_.Pos());
+ root->Add("String", Ctx_.GetPrefixedPath(service, cluster, dataSource));
settings.DataSourcePath = root;
} else if (to_lower(id.Name) == "location") {
if (reset) {
settings.Location.Reset();
} else {
TNodePtr location;
- if (!StoreString(*value, location, Ctx)) {
- Ctx.Error() << to_upper(id.Name) << " value should be a string literal";
+ if (!StoreString(*value, location, Ctx_)) {
+ Ctx_.Error() << to_upper(id.Name) << " value should be a string literal";
return false;
}
settings.Location.Set(location);
@@ -2214,8 +2214,8 @@ bool TSqlTranslation::StoreExternalTableSettingsEntry(const TIdentifier& id, con
setting.Reset(id);
} else {
TNodePtr node;
- if (!StoreString(*value, node, Ctx)) {
- Ctx.Error() << to_upper(id.Name) << " value should be a string literal";
+ if (!StoreString(*value, node, Ctx_)) {
+ Ctx_.Error() << to_upper(id.Name) << " value should be a string literal";
return false;
}
setting.Set(std::pair<TIdentifier, TNodePtr>{id, std::move(node)});
@@ -2227,7 +2227,7 @@ bool TSqlTranslation::StoreExternalTableSettingsEntry(const TIdentifier& id, con
bool TSqlTranslation::ValidateTableSettings(const TTableSettings& settings) {
if (settings.PartitionCount) {
if (!settings.StoreType || to_lower(settings.StoreType->Name) != "column") {
- Ctx.Error() << " PARTITION_COUNT can be used only with STORE=COLUMN";
+ Ctx_.Error() << " PARTITION_COUNT can be used only with STORE=COLUMN";
return false;
}
}
@@ -2241,111 +2241,111 @@ bool TSqlTranslation::StoreTableSettingsEntry(const TIdentifier& id, const TRule
YQL_ENSURE(!reset || reset && alter);
if (to_lower(id.Name) == "compaction_policy") {
if (reset) {
- Ctx.Error() << to_upper(id.Name) << " reset is not supported";
+ Ctx_.Error() << to_upper(id.Name) << " reset is not supported";
return false;
}
- if (!StoreString(*value, settings.CompactionPolicy, Ctx)) {
- Ctx.Error() << to_upper(id.Name) << " value should be a string literal";
+ if (!StoreString(*value, settings.CompactionPolicy, Ctx_)) {
+ Ctx_.Error() << to_upper(id.Name) << " value should be a string literal";
return false;
}
} else if (to_lower(id.Name) == "auto_partitioning_by_size") {
if (reset) {
- Ctx.Error() << to_upper(id.Name) << " reset is not supported";
+ Ctx_.Error() << to_upper(id.Name) << " reset is not supported";
return false;
}
if (!StoreId(*value, settings.AutoPartitioningBySize, *this)) {
- Ctx.Error() << to_upper(id.Name) << " value should be an identifier";
+ Ctx_.Error() << to_upper(id.Name) << " value should be an identifier";
return false;
}
} else if (to_lower(id.Name) == "auto_partitioning_partition_size_mb") {
if (reset) {
- Ctx.Error() << to_upper(id.Name) << " reset is not supported";
+ Ctx_.Error() << to_upper(id.Name) << " reset is not supported";
return false;
}
- if (!StoreInt(*value, settings.PartitionSizeMb, Ctx)) {
- Ctx.Error() << to_upper(id.Name) << " value should be an integer";
+ if (!StoreInt(*value, settings.PartitionSizeMb, Ctx_)) {
+ Ctx_.Error() << to_upper(id.Name) << " value should be an integer";
return false;
}
} else if (to_lower(id.Name) == "auto_partitioning_by_load") {
if (reset) {
- Ctx.Error() << to_upper(id.Name) << " reset is not supported";
+ Ctx_.Error() << to_upper(id.Name) << " reset is not supported";
return false;
}
if (!StoreId(*value, settings.AutoPartitioningByLoad, *this)) {
- Ctx.Error() << to_upper(id.Name) << " value should be an identifier";
+ Ctx_.Error() << to_upper(id.Name) << " value should be an identifier";
return false;
}
} else if (to_lower(id.Name) == "auto_partitioning_min_partitions_count") {
if (reset) {
- Ctx.Error() << to_upper(id.Name) << " reset is not supported";
+ Ctx_.Error() << to_upper(id.Name) << " reset is not supported";
return false;
}
- if (!StoreInt(*value, settings.MinPartitions, Ctx)) {
- Ctx.Error() << to_upper(id.Name) << " value should be an integer";
+ if (!StoreInt(*value, settings.MinPartitions, Ctx_)) {
+ Ctx_.Error() << to_upper(id.Name) << " value should be an integer";
return false;
}
} else if (to_lower(id.Name) == "auto_partitioning_max_partitions_count") {
if (reset) {
- Ctx.Error() << to_upper(id.Name) << " reset is not supported";
+ Ctx_.Error() << to_upper(id.Name) << " reset is not supported";
return false;
}
- if (!StoreInt(*value, settings.MaxPartitions, Ctx)) {
- Ctx.Error() << to_upper(id.Name) << " value should be an integer";
+ if (!StoreInt(*value, settings.MaxPartitions, Ctx_)) {
+ Ctx_.Error() << to_upper(id.Name) << " value should be an integer";
return false;
}
} else if (to_lower(id.Name) == "partition_count") {
if (reset) {
- Ctx.Error() << to_upper(id.Name) << " reset is not supported";
+ Ctx_.Error() << to_upper(id.Name) << " reset is not supported";
return false;
}
- if (!StoreInt(*value, settings.PartitionCount, Ctx)) {
- Ctx.Error() << to_upper(id.Name) << " value should be an integer";
+ if (!StoreInt(*value, settings.PartitionCount, Ctx_)) {
+ Ctx_.Error() << to_upper(id.Name) << " value should be an integer";
return false;
}
} else if (to_lower(id.Name) == "uniform_partitions") {
if (alter) {
- Ctx.Error() << to_upper(id.Name) << " alter is not supported";
+ Ctx_.Error() << to_upper(id.Name) << " alter is not supported";
return false;
}
- if (!StoreInt(*value, settings.UniformPartitions, Ctx)) {
- Ctx.Error() << to_upper(id.Name) << " value should be an integer";
+ if (!StoreInt(*value, settings.UniformPartitions, Ctx_)) {
+ Ctx_.Error() << to_upper(id.Name) << " value should be an integer";
return false;
}
} else if (to_lower(id.Name) == "partition_at_keys") {
if (alter) {
- Ctx.Error() << to_upper(id.Name) << " alter is not supported";
+ Ctx_.Error() << to_upper(id.Name) << " alter is not supported";
return false;
}
- TSqlExpression expr(Ctx, Mode);
- if (!StoreSplitBoundaries(*value, settings.PartitionAtKeys, expr, Ctx)) {
- Ctx.Error() << to_upper(id.Name) << " value should be a list of keys. "
+ TSqlExpression expr(Ctx_, Mode_);
+ if (!StoreSplitBoundaries(*value, settings.PartitionAtKeys, expr, Ctx_)) {
+ Ctx_.Error() << to_upper(id.Name) << " value should be a list of keys. "
<< "Example1: (10, 1000) Example2: ((10), (1000, \"abc\"))";
return false;
}
} else if (to_lower(id.Name) == "key_bloom_filter") {
if (reset) {
- Ctx.Error() << to_upper(id.Name) << " reset is not supported";
+ Ctx_.Error() << to_upper(id.Name) << " reset is not supported";
return false;
}
if (!StoreId(*value, settings.KeyBloomFilter, *this)) {
- Ctx.Error() << to_upper(id.Name) << " value should be an identifier";
+ Ctx_.Error() << to_upper(id.Name) << " value should be an identifier";
return false;
}
} else if (to_lower(id.Name) == "read_replicas_settings") {
if (reset) {
- Ctx.Error() << to_upper(id.Name) << " reset is not supported";
+ Ctx_.Error() << to_upper(id.Name) << " reset is not supported";
return false;
}
- if (!StoreString(*value, settings.ReadReplicasSettings, Ctx)) {
- Ctx.Error() << to_upper(id.Name) << " value should be a string literal";
+ if (!StoreString(*value, settings.ReadReplicasSettings, Ctx_)) {
+ Ctx_.Error() << to_upper(id.Name) << " value should be a string literal";
return false;
}
} else if (to_lower(id.Name) == "ttl") {
if (!reset) {
- TSqlExpression expr(Ctx, Mode);
- if (!StoreTtlSettings(*value, settings.TtlSettings, expr, Ctx, *this)) {
- Ctx.Error() << "Invalid TTL settings";
+ TSqlExpression expr(Ctx_, Mode_);
+ if (!StoreTtlSettings(*value, settings.TtlSettings, expr, Ctx_, *this)) {
+ Ctx_.Error() << "Invalid TTL settings";
return false;
}
} else {
@@ -2354,8 +2354,8 @@ bool TSqlTranslation::StoreTableSettingsEntry(const TIdentifier& id, const TRule
} else if (to_lower(id.Name) == "tiering") {
if (!reset) {
TNodePtr tieringNode;
- if (!StoreString(*value, tieringNode, Ctx)) {
- Ctx.Error() << to_upper(id.Name) << " value should be a string literal";
+ if (!StoreString(*value, tieringNode, Ctx_)) {
+ Ctx_.Error() << to_upper(id.Name) << " value should be a string literal";
return false;
}
settings.Tiering.Set(tieringNode);
@@ -2364,33 +2364,33 @@ bool TSqlTranslation::StoreTableSettingsEntry(const TIdentifier& id, const TRule
}
} else if (to_lower(id.Name) == "store") {
if (reset) {
- Ctx.Error() << to_upper(id.Name) << " reset is not supported";
+ Ctx_.Error() << to_upper(id.Name) << " reset is not supported";
return false;
}
if (!StoreId(*value, settings.StoreType, *this)) {
- Ctx.Error() << to_upper(id.Name) << " value should be an identifier";
+ Ctx_.Error() << to_upper(id.Name) << " value should be an identifier";
return false;
}
} else if (to_lower(id.Name) == "partition_by_hash_function") {
if (reset) {
- Ctx.Error() << to_upper(id.Name) << " reset is not supported";
+ Ctx_.Error() << to_upper(id.Name) << " reset is not supported";
return false;
}
- if (!StoreString(*value, settings.PartitionByHashFunction, Ctx)) {
- Ctx.Error() << to_upper(id.Name) << " value should be a string literal";
+ if (!StoreString(*value, settings.PartitionByHashFunction, Ctx_)) {
+ Ctx_.Error() << to_upper(id.Name) << " value should be a string literal";
return false;
}
} else if (to_lower(id.Name) == "store_external_blobs") {
if (reset) {
- Ctx.Error() << to_upper(id.Name) << " reset is not supported";
+ Ctx_.Error() << to_upper(id.Name) << " reset is not supported";
return false;
}
if (!StoreId(*value, settings.StoreExternalBlobs, *this)) {
- Ctx.Error() << to_upper(id.Name) << " value should be an identifier";
+ Ctx_.Error() << to_upper(id.Name) << " value should be an identifier";
return false;
}
} else {
- Ctx.Error() << "Unknown table setting: " << id.Name;
+ Ctx_.Error() << "Unknown table setting: " << id.Name;
return false;
}
@@ -2490,7 +2490,7 @@ bool TSqlTranslation::CreateConsumerSettings(
const TRule_topic_consumer_settings& node, TTopicConsumerSettings& settings
) {
const auto& firstEntry = node.GetRule_topic_consumer_settings_entry1();
- TSqlExpression expr(Ctx, Mode);
+ TSqlExpression expr(Ctx_, Mode_);
if (!StoreConsumerSettingsEntry(
IdEx(firstEntry.GetRule_an_id1(), *this),
&firstEntry.GetRule_topic_consumer_setting_value3(),
@@ -2540,7 +2540,7 @@ bool TSqlTranslation::AlterTopicConsumerEntry(
//case TRule_alter_topic_alter_consumer_entry::ALT_NOT_SET:
case TRule_alter_topic_alter_consumer_entry::kAltAlterTopicAlterConsumerEntry2: {
auto& resetNode = node.GetAlt_alter_topic_alter_consumer_entry2().GetRule_topic_alter_consumer_reset1();
- TSqlExpression expr(Ctx, Mode);
+ TSqlExpression expr(Ctx_, Mode_);
if (!StoreConsumerSettingsEntry(
IdEx(resetNode.GetRule_an_id3(), *this),
nullptr,
@@ -2561,7 +2561,7 @@ bool TSqlTranslation::AlterTopicConsumerEntry(
return true;
}
default:
- Ctx.Error() << "unknown alter consumer action";
+ Ctx_.Error() << "unknown alter consumer action";
return false;
}
return true;
@@ -2770,7 +2770,7 @@ bool TSqlTranslation::AlterTopicAction(const TRule_alter_topic_action& node, TAl
case TRule_alter_topic_action::kAltAlterTopicAction5: { // reset_settings
auto& resetNode = node.GetAlt_alter_topic_action5().GetRule_alter_topic_reset_settings1();
- TSqlExpression expr(Ctx, Mode);
+ TSqlExpression expr(Ctx_, Mode_);
if (!StoreTopicSettingsEntry(
IdEx(resetNode.GetRule_an_id3(), *this),
nullptr, expr,
@@ -2791,7 +2791,7 @@ bool TSqlTranslation::AlterTopicAction(const TRule_alter_topic_action& node, TAl
return true;
}
default:
- Ctx.Error() << "unknown alter topic action";
+ Ctx_.Error() << "unknown alter topic action";
return false;
}
return true;
@@ -2799,7 +2799,7 @@ bool TSqlTranslation::AlterTopicAction(const TRule_alter_topic_action& node, TAl
bool TSqlTranslation::CreateTopicSettings(const TRule_topic_settings& node, TTopicSettings& settings) {
const auto& firstEntry = node.GetRule_topic_settings_entry1();
- TSqlExpression expr(Ctx, Mode);
+ TSqlExpression expr(Ctx_, Mode_);
if (!StoreTopicSettingsEntry(
IdEx(firstEntry.GetRule_an_id1(), *this),
@@ -2824,13 +2824,13 @@ bool TSqlTranslation::CreateTopicSettings(const TRule_topic_settings& node, TTop
TNodePtr TSqlTranslation::IntegerOrBind(const TRule_integer_or_bind& node) {
switch (node.Alt_case()) {
case TRule_integer_or_bind::kAltIntegerOrBind1: {
- const TString intString = Ctx.Token(node.GetAlt_integer_or_bind1().GetRule_integer1().GetToken1());
+ const TString intString = Ctx_.Token(node.GetAlt_integer_or_bind1().GetRule_integer1().GetToken1());
ui64 value;
TString suffix;
- if (!ParseNumbers(Ctx, intString, value, suffix)) {
+ if (!ParseNumbers(Ctx_, intString, value, suffix)) {
return {};
}
- return BuildQuotedAtom(Ctx.Pos(), ToString(value), TNodeFlags::ArbitraryContent);
+ return BuildQuotedAtom(Ctx_.Pos(), ToString(value), TNodeFlags::ArbitraryContent);
}
case TRule_integer_or_bind::kAltIntegerOrBind2: {
TString bindName;
@@ -2841,7 +2841,7 @@ TNodePtr TSqlTranslation::IntegerOrBind(const TRule_integer_or_bind& node) {
if (!namedNode) {
return {};
}
- auto atom = MakeAtomFromExpression(Ctx.Pos(), Ctx, namedNode);
+ auto atom = MakeAtomFromExpression(Ctx_.Pos(), Ctx_, namedNode);
return atom.Build();
}
case TRule_integer_or_bind::ALT_NOT_SET:
@@ -2853,16 +2853,16 @@ TNodePtr TSqlTranslation::TypeNameTag(const TRule_type_name_tag& node) {
switch (node.Alt_case()) {
case TRule_type_name_tag::kAltTypeNameTag1: {
auto content = Id(node.GetAlt_type_name_tag1().GetRule_id1(), *this);
- auto atom = TDeferredAtom(Ctx.Pos(), content);
+ auto atom = TDeferredAtom(Ctx_.Pos(), content);
return atom.Build();
}
case TRule_type_name_tag::kAltTypeNameTag2: {
auto value = Token(node.GetAlt_type_name_tag2().GetToken1());
- auto parsed = StringContentOrIdContent(Ctx, Ctx.Pos(), value);
+ auto parsed = StringContentOrIdContent(Ctx_, Ctx_.Pos(), value);
if (!parsed) {
return {};
}
- auto atom = TDeferredAtom(Ctx.Pos(), parsed->Content);
+ auto atom = TDeferredAtom(Ctx_.Pos(), parsed->Content);
return atom.Build();
}
case TRule_type_name_tag::kAltTypeNameTag3: {
@@ -2875,7 +2875,7 @@ TNodePtr TSqlTranslation::TypeNameTag(const TRule_type_name_tag& node) {
return {};
}
TDeferredAtom atom;
- MakeTableFromExpression(Ctx.Pos(), Ctx, namedNode, atom);
+ MakeTableFromExpression(Ctx_.Pos(), Ctx_, namedNode, atom);
return atom.Build();
}
case TRule_type_name_tag::ALT_NOT_SET:
@@ -2888,11 +2888,11 @@ TNodePtr TSqlTranslation::TypeSimple(const TRule_type_name_simple& node, bool on
if (origName.empty()) {
return {};
}
- return BuildSimpleType(Ctx, Ctx.Pos(), origName, onlyDataAllowed);
+ return BuildSimpleType(Ctx_, Ctx_.Pos(), origName, onlyDataAllowed);
}
TNodePtr TSqlTranslation::TypeDecimal(const TRule_type_name_decimal& node) {
- auto pos = Ctx.Pos();
+ auto pos = Ctx_.Pos();
auto flags = TNodeFlags::Default;
auto paramOne = IntegerOrBind(node.GetRule_integer_or_bind3());
@@ -2919,7 +2919,7 @@ TNodePtr TSqlTranslation::AddOptionals(const TNodePtr& node, size_t optionalCoun
TMaybe<std::pair<TVector<TNodePtr>, bool>> TSqlTranslation::CallableArgList(const TRule_callable_arg_list& argList, bool namedArgsStarted) {
- auto pos = Ctx.Pos();
+ auto pos = Ctx_.Pos();
auto flags = TNodeFlags::Default;
auto& arg1 = argList.GetRule_callable_arg1();
auto& varArg = arg1.GetRule_variant_arg1();
@@ -2962,7 +2962,7 @@ TMaybe<std::pair<TVector<TNodePtr>, bool>> TSqlTranslation::CallableArgList(cons
items.push_back(tag);
} else {
if (namedArgsStarted) {
- Ctx.Error() << "Expected named argument, previous argument was named";
+ Ctx_.Error() << "Expected named argument, previous argument was named";
return {};
}
items.push_back(BuildQuotedAtom(pos, "", flags));
@@ -3004,7 +3004,7 @@ TNodePtr TSqlTranslation::TypeNode(const TRule_type_name& node) {
}
TNodePtr result;
- TPosition pos = Ctx.Pos();
+ TPosition pos = Ctx_.Pos();
auto& alt = node.GetAlt_type_name2();
auto& block = alt.GetBlock1();
@@ -3043,7 +3043,7 @@ TNodePtr TSqlTranslation::TypeNode(const TRule_type_name_composite& node) {
// | type_name_callable
// ) QUESTION*;
TNodePtr result;
- TPosition pos = Ctx.Pos();
+ TPosition pos = Ctx_.Pos();
auto flags = TNodeFlags::Default;
auto wrapOneParamType = [&] (const TRule_type_name_or_bind& param, const char* type) -> TNodePtr {
@@ -3167,7 +3167,7 @@ TNodePtr TSqlTranslation::TypeNode(const TRule_type_name_composite& node) {
}
if (overStruct) {
if (!arg.GetRule_variant_arg2().HasBlock1()) {
- Ctx.Error() << "Variant over struct and tuple mixture";
+ Ctx_.Error() << "Variant over struct and tuple mixture";
return {};
}
auto tag = TypeNameTag(arg.GetRule_variant_arg2().GetBlock1().GetRule_type_name_tag1());
@@ -3177,7 +3177,7 @@ TNodePtr TSqlTranslation::TypeNode(const TRule_type_name_composite& node) {
items.push_back(makeQuote(new TAstListNodeImpl(pos, { tag, typeNode })));
} else {
if (arg.GetRule_variant_arg2().HasBlock1()) {
- Ctx.Error() << "Variant over struct and tuple mixture";
+ Ctx_.Error() << "Variant over struct and tuple mixture";
return {};
}
items.push_back(typeNode);
@@ -3325,11 +3325,11 @@ TNodePtr TSqlTranslation::TypeNode(const TRule_type_name_composite& node) {
}
TNodePtr TSqlTranslation::ValueConstructorLiteral(const TRule_value_constructor_literal& node) {
- return BuildLiteralSmartString(Ctx, Token(node.GetToken1()));
+ return BuildLiteralSmartString(Ctx_, Token(node.GetToken1()));
}
TNodePtr TSqlTranslation::ValueConstructor(const TRule_value_constructor& node) {
- TSqlCallExpr call(Ctx, Mode);
+ TSqlCallExpr call(Ctx_, Mode_);
if (!call.Init(node)) {
return {};
}
@@ -3338,14 +3338,14 @@ TNodePtr TSqlTranslation::ValueConstructor(const TRule_value_constructor& node)
TNodePtr TSqlTranslation::ListLiteral(const TRule_list_literal& node) {
TVector<TNodePtr> values;
- values.push_back(new TAstAtomNodeImpl(Ctx.Pos(), "AsListMayWarn", TNodeFlags::Default));
+ values.push_back(new TAstAtomNodeImpl(Ctx_.Pos(), "AsListMayWarn", TNodeFlags::Default));
- TSqlExpression sqlExpr(Ctx, Mode);
+ TSqlExpression sqlExpr(Ctx_, Mode_);
if (node.HasBlock2() && !ExprList(sqlExpr, values, node.GetBlock2().GetRule_expr_list1())) {
return nullptr;
}
- return new TAstListNodeImpl(Ctx.Pos(), std::move(values));
+ return new TAstListNodeImpl(Ctx_.Pos(), std::move(values));
}
TNodePtr TSqlTranslation::DictLiteral(const TRule_dict_literal& node) {
@@ -3353,8 +3353,8 @@ TNodePtr TSqlTranslation::DictLiteral(const TRule_dict_literal& node) {
if (node.HasBlock2()) {
const auto& list = node.GetBlock2().GetRule_expr_dict_list1();
const bool isSet = !list.HasBlock2();
- values.push_back(new TAstAtomNodeImpl(Ctx.Pos(), isSet ? "AsSet" : "AsDict", TNodeFlags::Default));
- TSqlExpression sqlExpr(Ctx, Mode);
+ values.push_back(new TAstAtomNodeImpl(Ctx_.Pos(), isSet ? "AsSet" : "AsDict", TNodeFlags::Default));
+ TSqlExpression sqlExpr(Ctx_, Mode_);
if (isSet) {
if (!Expr(sqlExpr, values, list.GetRule_expr1())) {
return nullptr;
@@ -3369,7 +3369,7 @@ TNodePtr TSqlTranslation::DictLiteral(const TRule_dict_literal& node) {
return nullptr;
}
- values.push_back(new TTupleNode(Ctx.Pos(), std::move(tupleItems)));
+ values.push_back(new TTupleNode(Ctx_.Pos(), std::move(tupleItems)));
}
for (auto& b : list.GetBlock3()) {
@@ -3394,27 +3394,27 @@ TNodePtr TSqlTranslation::DictLiteral(const TRule_dict_literal& node) {
return nullptr;
}
- values.push_back(new TTupleNode(Ctx.Pos(), std::move(tupleItems)));
+ values.push_back(new TTupleNode(Ctx_.Pos(), std::move(tupleItems)));
}
}
} else {
- values.push_back(new TAstAtomNodeImpl(Ctx.Pos(), "AsDict", TNodeFlags::Default));
+ values.push_back(new TAstAtomNodeImpl(Ctx_.Pos(), "AsDict", TNodeFlags::Default));
}
- return new TAstListNodeImpl(Ctx.Pos(), std::move(values));
+ return new TAstListNodeImpl(Ctx_.Pos(), std::move(values));
}
bool TSqlTranslation::StructLiteralItem(TVector<TNodePtr>& labels, const TRule_expr& label, TVector<TNodePtr>& values, const TRule_expr& value) {
// label expr
{
- TColumnRefScope scope(Ctx, EColumnRefState::AsStringLiteral, /* topLevel */ false);
- TSqlExpression sqlExpr(Ctx, Mode);
+ TColumnRefScope scope(Ctx_, EColumnRefState::AsStringLiteral, /* topLevel */ false);
+ TSqlExpression sqlExpr(Ctx_, Mode_);
if (!Expr(sqlExpr, labels, label)) {
return false;
}
TDeferredAtom atom;
- MakeTableFromExpression(Ctx.Pos(), Ctx, labels.back(), atom);
+ MakeTableFromExpression(Ctx_.Pos(), Ctx_, labels.back(), atom);
labels.back() = atom.Build();
if (!labels.back()) {
return false;
@@ -3423,7 +3423,7 @@ bool TSqlTranslation::StructLiteralItem(TVector<TNodePtr>& labels, const TRule_e
// value expr
{
- TSqlExpression sqlExpr(Ctx, Mode);
+ TSqlExpression sqlExpr(Ctx_, Mode_);
if (!Expr(sqlExpr, values, value)) {
return false;
}
@@ -3435,7 +3435,7 @@ bool TSqlTranslation::StructLiteralItem(TVector<TNodePtr>& labels, const TRule_e
TNodePtr TSqlTranslation::StructLiteral(const TRule_struct_literal& node) {
TVector<TNodePtr> labels;
TVector<TNodePtr> values;
- TPosition pos = Ctx.TokenPosition(node.GetToken1());
+ TPosition pos = Ctx_.TokenPosition(node.GetToken1());
if (node.HasBlock2()) {
const auto& list = node.GetBlock2().GetRule_expr_struct_list1();
@@ -3518,9 +3518,9 @@ bool TSqlTranslation::TableHintImpl(const TRule_table_hint& rule, TTableHints& h
return false;
}
- auto pos = Ctx.Pos();
+ auto pos = Ctx_.Pos();
if (!altCurrent && !warn) {
- Ctx.Warning(pos, TIssuesIds::YQL_DEPRECATED_POSITIONAL_SCHEMA)
+ Ctx_.Warning(pos, TIssuesIds::YQL_DEPRECATED_POSITIONAL_SCHEMA)
<< "Deprecated syntax for positional schema: please use 'column type' instead of 'type AS column'";
warn = true;
}
@@ -3556,7 +3556,7 @@ bool TSqlTranslation::TableHintImpl(const TRule_table_hint& rule, TTableHints& h
}
}
- TPosition pos = Ctx.TokenPosition(alt.GetToken1());
+ TPosition pos = Ctx_.TokenPosition(alt.GetToken1());
TNodePtr structType = new TCallNodeImpl(pos, "StructType", structTypeItems);
bool shouldEmitLabel = provider != YtProviderName || TCiString(keyFunc) == "object";
if (shouldEmitLabel) {
@@ -3635,7 +3635,7 @@ bool TSqlTranslation::SimpleTableRefCoreImpl(const TRule_simple_table_ref_core&
switch (node.Alt_case()) {
case TRule_simple_table_ref_core::AltCase::kAltSimpleTableRefCore1: {
if (node.GetAlt_simple_table_ref_core1().GetRule_object_ref1().HasBlock1()) {
- if (Mode == NSQLTranslation::ESqlMode::LIMITED_VIEW) {
+ if (Mode_ == NSQLTranslation::ESqlMode::LIMITED_VIEW) {
Error() << "Cluster should not be used in limited view";
return false;
}
@@ -3690,7 +3690,7 @@ bool TSqlTranslation::TopicRefImpl(const TRule_topic_ref& node, TTopicRef& resul
TString service = Context().Scoped->CurrService;
TDeferredAtom cluster = Context().Scoped->CurrCluster;
if (node.HasBlock1()) {
- if (Mode == NSQLTranslation::ESqlMode::LIMITED_VIEW) {
+ if (Mode_ == NSQLTranslation::ESqlMode::LIMITED_VIEW) {
Error() << "Cluster should not be used in limited view";
return false;
}
@@ -3722,7 +3722,7 @@ TNodePtr TSqlTranslation::NamedNode(const TRule_named_nodes_stmt& rule, TVector<
TNodePtr nodeExpr = nullptr;
switch (rule.GetBlock3().Alt_case()) {
case TRule_named_nodes_stmt::TBlock3::kAlt1: {
- TSqlExpression expr(Ctx, Mode);
+ TSqlExpression expr(Ctx_, Mode_);
auto result = expr.Build(rule.GetBlock3().GetAlt1().GetRule_expr1());
return result;
}
@@ -3730,7 +3730,7 @@ TNodePtr TSqlTranslation::NamedNode(const TRule_named_nodes_stmt& rule, TVector<
case TRule_named_nodes_stmt::TBlock3::kAlt2:{
const auto& subselect_rule = rule.GetBlock3().GetAlt2().GetRule_subselect_stmt1();
- TSqlSelect expr(Ctx, Mode);
+ TSqlSelect expr(Ctx_, Mode_);
TPosition pos;
TSourcePtr source = nullptr;
switch (subselect_rule.GetBlock1().Alt_case()) {
@@ -3744,7 +3744,7 @@ TNodePtr TSqlTranslation::NamedNode(const TRule_named_nodes_stmt& rule, TVector<
case TRule_subselect_stmt::TBlock1::ALT_NOT_SET:
AltNotImplemented("subselect_stmt", subselect_rule.GetBlock1());
- Ctx.IncrementMonCounter("sql_errors", "UnknownNamedNode");
+ Ctx_.IncrementMonCounter("sql_errors", "UnknownNamedNode");
return nullptr;
}
@@ -3757,7 +3757,7 @@ TNodePtr TSqlTranslation::NamedNode(const TRule_named_nodes_stmt& rule, TVector<
case TRule_named_nodes_stmt::TBlock3::ALT_NOT_SET:
AltNotImplemented("named_node", rule.GetBlock3());
- Ctx.IncrementMonCounter("sql_errors", "UnknownNamedNode");
+ Ctx_.IncrementMonCounter("sql_errors", "UnknownNamedNode");
return nullptr;
}
}
@@ -3774,7 +3774,7 @@ bool TSqlTranslation::ImportStatement(const TRule_import_stmt& stmt, TVector<TSt
return false;
}
YQL_ENSURE(names.size() == aliases.size());
- const TString moduleAlias = Ctx.AddImport(std::move(modulePath));
+ const TString moduleAlias = Ctx_.AddImport(std::move(modulePath));
if (!moduleAlias) {
return false;
}
@@ -3785,7 +3785,7 @@ bool TSqlTranslation::ImportStatement(const TRule_import_stmt& stmt, TVector<TSt
auto& var = alias.Name ? alias : name;
if (IsAnonymousName(var.Name)) {
- Ctx.Error(var.Pos) << "Can not import anonymous name " << var.Name;
+ Ctx_.Error(var.Pos) << "Can not import anonymous name " << var.Name;
return false;
}
@@ -3805,8 +3805,8 @@ bool TSqlTranslation::ImportStatement(const TRule_import_stmt& stmt, TVector<TSt
bool TSqlTranslation::SortSpecification(const TRule_sort_specification& node, TVector<TSortSpecificationPtr>& sortSpecs) {
bool asc = true;
- TSqlExpression expr(Ctx, Mode);
- TColumnRefScope scope(Ctx, EColumnRefState::Allow);
+ TSqlExpression expr(Ctx_, Mode_);
+ TColumnRefScope scope(Ctx_, EColumnRefState::Allow);
TNodePtr exprNode = expr.Build(node.GetRule_expr1());
if (!exprNode) {
return false;
@@ -3815,18 +3815,18 @@ bool TSqlTranslation::SortSpecification(const TRule_sort_specification& node, TV
const auto& token = node.GetBlock2().GetToken1();
Token(token);
auto tokenId = token.GetId();
- if (IS_TOKEN(Ctx.Settings.Antlr4Parser, tokenId, ASC)) {
- Ctx.IncrementMonCounter("sql_features", "OrderByAsc");
- } else if (IS_TOKEN(Ctx.Settings.Antlr4Parser, tokenId, DESC)) {
+ if (IS_TOKEN(Ctx_.Settings.Antlr4Parser, tokenId, ASC)) {
+ Ctx_.IncrementMonCounter("sql_features", "OrderByAsc");
+ } else if (IS_TOKEN(Ctx_.Settings.Antlr4Parser, tokenId, DESC)) {
asc = false;
- Ctx.IncrementMonCounter("sql_features", "OrderByDesc");
+ Ctx_.IncrementMonCounter("sql_features", "OrderByDesc");
} else {
- Ctx.IncrementMonCounter("sql_errors", "UnknownOrderBy");
+ Ctx_.IncrementMonCounter("sql_errors", "UnknownOrderBy");
Error() << "Unsupported direction token: " << token.GetId();
return false;
}
} else {
- Ctx.IncrementMonCounter("sql_features", "OrderByDefault");
+ Ctx_.IncrementMonCounter("sql_features", "OrderByDefault");
}
sortSpecs.emplace_back(MakeIntrusive<TSortSpecification>(exprNode, asc));
return true;
@@ -3847,12 +3847,12 @@ bool TSqlTranslation::SortSpecificationList(const TRule_sort_specification_list&
bool TSqlTranslation::IsDistinctOptSet(const TRule_opt_set_quantifier& node) const {
TPosition pos;
- return node.HasBlock1() && IS_TOKEN(Ctx.Settings.Antlr4Parser, node.GetBlock1().GetToken1().GetId(), DISTINCT);
+ return node.HasBlock1() && IS_TOKEN(Ctx_.Settings.Antlr4Parser, node.GetBlock1().GetToken1().GetId(), DISTINCT);
}
bool TSqlTranslation::IsDistinctOptSet(const TRule_opt_set_quantifier& node, TPosition& distinctPos) const {
- if (node.HasBlock1() && IS_TOKEN(Ctx.Settings.Antlr4Parser, node.GetBlock1().GetToken1().GetId(), DISTINCT)) {
- distinctPos = Ctx.TokenPosition(node.GetBlock1().GetToken1());
+ if (node.HasBlock1() && IS_TOKEN(Ctx_.Settings.Antlr4Parser, node.GetBlock1().GetToken1().GetId(), DISTINCT)) {
+ distinctPos = Ctx_.TokenPosition(node.GetBlock1().GetToken1());
return true;
}
return false;
@@ -3864,7 +3864,7 @@ bool TSqlTranslation::RoleNameClause(const TRule_role_name& node, TDeferredAtom&
case TRule_role_name::kAltRoleName1:
{
TString name = Id(node.GetAlt_role_name1().GetRule_an_id_or_type1(), *this);
- result = TDeferredAtom(Ctx.Pos(), name);
+ result = TDeferredAtom(Ctx_.Pos(), name);
break;
}
case TRule_role_name::kAltRoleName2:
@@ -3881,7 +3881,7 @@ bool TSqlTranslation::RoleNameClause(const TRule_role_name& node, TDeferredAtom&
if (auto literalName = result.GetLiteral(); literalName && !allowSystemRoles) {
static const THashSet<TStringBuf> systemRoles = { "current_role", "current_user", "session_user" };
if (systemRoles.contains(to_lower(*literalName))) {
- Ctx.Error() << "System role " << to_upper(*literalName) << " can not be used here";
+ Ctx_.Error() << "System role " << to_upper(*literalName) << " can not be used here";
return false;
}
}
@@ -3894,19 +3894,19 @@ bool TSqlTranslation::PasswordParameter(const TRule_password_option& passwordOpt
// password_value: STRING_VALUE | NULL;
const auto& token = passwordOption.GetRule_password_value3().GetToken1();
- TString stringValue(Ctx.Token(token));
+ TString stringValue(Ctx_.Token(token));
if (to_lower(stringValue) == "null") {
result.IsPasswordNull = true;
} else {
- auto password = StringContent(Ctx, Ctx.Pos(), stringValue);
+ auto password = StringContent(Ctx_, Ctx_.Pos(), stringValue);
if (!password) {
Error() << "Password should be enclosed into quotation marks.";
return false;
}
- result.Password = TDeferredAtom(Ctx.Pos(), std::move(password->Content));
+ result.Password = TDeferredAtom(Ctx_.Pos(), std::move(password->Content));
}
result.IsPasswordEncrypted = passwordOption.HasBlock1();
@@ -3918,16 +3918,16 @@ bool TSqlTranslation::HashParameter(const TRule_hash_option& hashOption, TUserPa
// hash_option: HASH STRING_VALUE;
const auto& token = hashOption.GetToken2();
- TString stringValue(Ctx.Token(token));
+ TString stringValue(Ctx_.Token(token));
- auto hash = StringContent(Ctx, Ctx.Pos(), stringValue);
+ auto hash = StringContent(Ctx_, Ctx_.Pos(), stringValue);
if (!hash) {
Error() << "Hash should be enclosed into quotation marks.";
return false;
}
- result.Hash = TDeferredAtom(Ctx.Pos(), std::move(hash->Content));
+ result.Hash = TDeferredAtom(Ctx_.Pos(), std::move(hash->Content));
return true;
}
@@ -3936,9 +3936,9 @@ void TSqlTranslation::LoginParameter(const TRule_login_option& loginOption, std:
// login_option: LOGIN | NOLOGIN;
auto token = loginOption.GetToken1().GetId();
- if (IS_TOKEN(Ctx.Settings.Antlr4Parser, token, LOGIN)) {
+ if (IS_TOKEN(Ctx_.Settings.Antlr4Parser, token, LOGIN)) {
canLogin = true;
- } else if (IS_TOKEN(Ctx.Settings.Antlr4Parser, token, NOLOGIN)) {
+ } else if (IS_TOKEN(Ctx_.Settings.Antlr4Parser, token, NOLOGIN)) {
canLogin = false;
} else {
Y_ABORT("You should change implementation according to grammar changes");
@@ -4043,7 +4043,7 @@ bool TSqlTranslation::PermissionNameClause(const TRule_permission_id& node, TDef
// | CREATE (DIRECTORY | TABLE | QUEUE)?
auto handleOneIdentifier = [&result, this] (const auto& permissionNameKeyword) {
- result = TDeferredAtom(Ctx.Pos(), GetIdentifier(*this, permissionNameKeyword).Name);
+ result = TDeferredAtom(Ctx_.Pos(), GetIdentifier(*this, permissionNameKeyword).Name);
};
auto handleTwoIdentifiers = [&result, this] (const auto& permissionNameKeyword) {
@@ -4052,7 +4052,7 @@ bool TSqlTranslation::PermissionNameClause(const TRule_permission_id& node, TDef
TString identifierName = TIdentifier(TPosition(token1.GetColumn(), token1.GetLine()), Identifier(token1)).Name +
"_" +
TIdentifier(TPosition(token2.GetColumn(), token2.GetLine()), Identifier(token2)).Name;
- result = TDeferredAtom(Ctx.Pos(), identifierName);
+ result = TDeferredAtom(Ctx_.Pos(), identifierName);
};
auto handleOneOrTwoIdentifiers = [&result, this] (const auto& permissionNameKeyword) {
@@ -4060,7 +4060,7 @@ bool TSqlTranslation::PermissionNameClause(const TRule_permission_id& node, TDef
if (permissionNameKeyword.HasBlock2()) {
identifierName += "_" + GetIdentifier(*this, permissionNameKeyword.GetBlock2()).Name;
}
- result = TDeferredAtom(Ctx.Pos(), identifierName);
+ result = TDeferredAtom(Ctx_.Pos(), identifierName);
};
switch (node.GetAltCase()) {
@@ -4152,12 +4152,12 @@ bool TSqlTranslation::PermissionNameClause(const TRule_permission_name& node, TD
}
case TRule_permission_name::kAltPermissionName2:
{
- const TString stringValue(Ctx.Token(node.GetAlt_permission_name2().GetToken1()));
- auto unescaped = StringContent(Ctx, Ctx.Pos(), stringValue);
+ const TString stringValue(Ctx_.Token(node.GetAlt_permission_name2().GetToken1()));
+ auto unescaped = StringContent(Ctx_, Ctx_.Pos(), stringValue);
if (!unescaped) {
return false;
}
- result = TDeferredAtom(Ctx.Pos(), unescaped->Content);
+ result = TDeferredAtom(Ctx_.Pos(), unescaped->Content);
break;
}
case TRule_permission_name::ALT_NOT_SET:
@@ -4186,14 +4186,14 @@ bool TSqlTranslation::PermissionNameClause(const TRule_permission_name_target& n
}
case TRule_permission_name_target::kAltPermissionNameTarget2:
{
- result.emplace_back(Ctx.Pos(), "all_privileges");
+ result.emplace_back(Ctx_.Pos(), "all_privileges");
break;
}
case TRule_permission_name_target::ALT_NOT_SET:
Y_ABORT("You should change implementation according to grammar changes");
}
if (withGrantOption) {
- result.emplace_back(Ctx.Pos(), "grant");
+ result.emplace_back(Ctx_.Pos(), "grant");
}
return true;
}
@@ -4203,16 +4203,16 @@ bool TSqlTranslation::StoreStringSettingsEntry(const TIdentifier& id, const TRul
const TString key = to_lower(id.Name);
if (result.find(key) != result.end()) {
- Ctx.Error() << to_upper(key) << " duplicate keys";
+ Ctx_.Error() << to_upper(key) << " duplicate keys";
return false;
}
switch (value->Alt_case()) {
case TRule_table_setting_value::kAltTableSettingValue2:
- return StoreString(*value, result[key], Ctx, to_upper(key));
+ return StoreString(*value, result[key], Ctx_, to_upper(key));
default:
- Ctx.Error() << to_upper(key) << " value should be a string literal";
+ Ctx_.Error() << to_upper(key) << " value should be a string literal";
return false;
}
@@ -4285,10 +4285,10 @@ bool TSqlTranslation::ParseBackupCollectionSettings(std::map<TString, TDeferredA
bool TSqlTranslation::ParseBackupCollectionTables(TVector<TDeferredAtom>& result, const TRule_table_list& tables) {
const auto& firstEntry = tables.GetRule_an_id_table2();
- result.push_back(TDeferredAtom(Ctx.Pos(), Id(firstEntry, *this)));
+ result.push_back(TDeferredAtom(Ctx_.Pos(), Id(firstEntry, *this)));
for (const auto& block : tables.GetBlock3()) {
const auto& entry = block.GetRule_an_id_table3();
- result.push_back(TDeferredAtom(Ctx.Pos(), Id(entry, *this)));
+ result.push_back(TDeferredAtom(Ctx_.Pos(), Id(entry, *this)));
}
return true;
}
@@ -4311,12 +4311,12 @@ bool TSqlTranslation::ParseBackupCollectionEntry(
}
case TRule_alter_backup_collection_entry::kAltAlterBackupCollectionEntry3: {
auto table = entry.GetAlt_alter_backup_collection_entry3().GetRule_an_id_table3();
- addTables.push_back(TDeferredAtom(Ctx.Pos(), Id(table, *this)));
+ addTables.push_back(TDeferredAtom(Ctx_.Pos(), Id(table, *this)));
return true;
}
case TRule_alter_backup_collection_entry::kAltAlterBackupCollectionEntry4: {
auto table = entry.GetAlt_alter_backup_collection_entry4().GetRule_an_id_table3();
- removeTables.push_back(TDeferredAtom(Ctx.Pos(), Id(table, *this)));
+ removeTables.push_back(TDeferredAtom(Ctx_.Pos(), Id(table, *this)));
return true;
}
case TRule_alter_backup_collection_entry::ALT_NOT_SET:
@@ -4464,7 +4464,7 @@ bool TSqlTranslation::FrameBound(const TRule_window_frame_bound& rule, TFrameBou
auto block = rule.GetAlt_window_frame_bound2().GetBlock1();
switch (block.Alt_case()) {
case TRule_window_frame_bound_TAlt2_TBlock1::kAlt1: {
- TSqlExpression boundExpr(Ctx, Mode);
+ TSqlExpression boundExpr(Ctx_, Mode_);
bound->Bound = boundExpr.Build(block.GetAlt1().GetRule_expr1());
if (!bound->Bound) {
return false;
@@ -4539,7 +4539,7 @@ bool TSqlTranslation::FrameClause(const TRule_window_frame_clause& rule, TFrameS
}
YQL_ENSURE(frameSpec->FrameBegin);
YQL_ENSURE(frameSpec->FrameEnd);
- if (!IsValidFrameSettings(Ctx, *frameSpec, sortSpecSize)) {
+ if (!IsValidFrameSettings(Ctx_, *frameSpec, sortSpecSize)) {
return false;
}
@@ -4564,7 +4564,7 @@ bool TSqlTranslation::FrameClause(const TRule_window_frame_clause& rule, TFrameS
}
if (frameSpec->FrameExclusion != FrameExclNone) {
- Ctx.Error() << "Frame exclusion is not supported yet";
+ Ctx_.Error() << "Frame exclusion is not supported yet";
return false;
}
@@ -4581,7 +4581,7 @@ TWindowSpecificationPtr TSqlTranslation::WindowSpecification(const TRule_window_
*/
TWindowSpecificationPtr winSpecPtr = new TWindowSpecification;
if (rule.HasBlock1()) {
- Ctx.Error() << "Existing window name is not supported in window specification yet!";
+ Ctx_.Error() << "Existing window name is not supported in window specification yet!";
return {};
}
if (rule.HasBlock2()) {
@@ -4591,10 +4591,10 @@ TWindowSpecificationPtr TSqlTranslation::WindowSpecification(const TRule_window_
auto& partitionClause = rule.GetBlock2().GetRule_window_partition_clause1();
winSpecPtr->IsCompact = partitionClause.HasBlock2();
if (!winSpecPtr->IsCompact) {
- auto hints = Ctx.PullHintForToken(Ctx.TokenPosition(partitionClause.GetToken1()));
+ auto hints = Ctx_.PullHintForToken(Ctx_.TokenPosition(partitionClause.GetToken1()));
winSpecPtr->IsCompact = AnyOf(hints, [](const NSQLTranslation::TSQLHint& hint) { return to_lower(hint.Name) == "compact"; });
}
- TColumnRefScope scope(Ctx, EColumnRefState::Allow);
+ TColumnRefScope scope(Ctx_, EColumnRefState::Allow);
if (!NamedExprList(partitionClause.GetRule_named_expr_list4(), winSpecPtr->Partitions)) {
return {};
}
@@ -4624,11 +4624,11 @@ TWindowSpecificationPtr TSqlTranslation::WindowSpecification(const TRule_window_
winSpecPtr->Frame = new TFrameSpecification;
winSpecPtr->Frame->FrameBegin = new TFrameBound;
winSpecPtr->Frame->FrameEnd = new TFrameBound;
- winSpecPtr->Frame->FrameBegin->Pos = winSpecPtr->Frame->FrameEnd->Pos = Ctx.Pos();
+ winSpecPtr->Frame->FrameBegin->Pos = winSpecPtr->Frame->FrameEnd->Pos = Ctx_.Pos();
winSpecPtr->Frame->FrameExclusion = EFrameExclusions::FrameExclNone;
winSpecPtr->Frame->FrameBegin->Settings = EFrameSettings::FramePreceding;
- if (Ctx.AnsiCurrentRow) {
+ if (Ctx_.AnsiCurrentRow) {
// RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
winSpecPtr->Frame->FrameType = EFrameType::FrameByRange;
winSpecPtr->Frame->FrameEnd->Settings = EFrameSettings::FrameCurrentRow;
@@ -4703,74 +4703,74 @@ TNodePtr TSqlTranslation::DoStatement(const TRule_do_stmt& stmt, bool makeLambda
break;
}
case TRule_call_action_TBlock1::kAlt2:
- action = BuildEmptyAction(Ctx.Pos());
+ action = BuildEmptyAction(Ctx_.Pos());
break;
case TRule_call_action_TBlock1::ALT_NOT_SET:
- Ctx.IncrementMonCounter("sql_errors", "UnknownDoStmt");
+ Ctx_.IncrementMonCounter("sql_errors", "UnknownDoStmt");
AltNotImplemented("do_stmt", callAction.GetBlock1());
return nullptr;
}
TVector<TNodePtr> values;
- values.push_back(new TAstAtomNodeImpl(Ctx.Pos(), "Apply", TNodeFlags::Default));
+ values.push_back(new TAstAtomNodeImpl(Ctx_.Pos(), "Apply", TNodeFlags::Default));
values.push_back(action);
- values.push_back(new TAstAtomNodeImpl(Ctx.Pos(), "world", TNodeFlags::Default));
+ values.push_back(new TAstAtomNodeImpl(Ctx_.Pos(), "world", TNodeFlags::Default));
- TSqlExpression sqlExpr(Ctx, Mode);
+ TSqlExpression sqlExpr(Ctx_, Mode_);
if (callAction.HasBlock3() && !ExprList(sqlExpr, values, callAction.GetBlock3().GetRule_expr_list1())) {
return nullptr;
}
- TNodePtr apply = new TAstListNodeImpl(Ctx.Pos(), std::move(values));
+ TNodePtr apply = new TAstListNodeImpl(Ctx_.Pos(), std::move(values));
if (!makeLambda) {
- return BuildDoCall(Ctx.Pos(), apply);
+ return BuildDoCall(Ctx_.Pos(), apply);
}
- TNodePtr params = new TAstListNodeImpl(Ctx.Pos());
+ TNodePtr params = new TAstListNodeImpl(Ctx_.Pos());
params->Add("world");
for (const auto& arg : args) {
- params->Add(new TAstAtomNodeImpl(Ctx.Pos(), arg, TNodeFlags::ArbitraryContent));
+ params->Add(new TAstAtomNodeImpl(Ctx_.Pos(), arg, TNodeFlags::ArbitraryContent));
}
- return BuildDoCall(Ctx.Pos(), BuildLambda(Ctx.Pos(), params, apply));
+ return BuildDoCall(Ctx_.Pos(), BuildLambda(Ctx_.Pos(), params, apply));
}
case TRule_do_stmt_TBlock2::kAlt2: {
const auto& inlineAction = stmt.GetBlock2().GetAlt2().GetRule_inline_action1();
const auto& body = inlineAction.GetRule_define_action_or_subquery_body2();
- auto saveScoped = Ctx.Scoped;
- Ctx.Scoped = MakeIntrusive<TScopedState>();
- Ctx.AllScopes.push_back(Ctx.Scoped);
- *Ctx.Scoped = *saveScoped;
- Ctx.Scoped->Local = TScopedState::TLocal{};
- Ctx.ScopeLevel++;
- TSqlQuery query(Ctx, Ctx.Settings.Mode, false);
+ auto saveScoped = Ctx_.Scoped;
+ Ctx_.Scoped = MakeIntrusive<TScopedState>();
+ Ctx_.AllScopes.push_back(Ctx_.Scoped);
+ *Ctx_.Scoped = *saveScoped;
+ Ctx_.Scoped->Local = TScopedState::TLocal{};
+ Ctx_.ScopeLevel++;
+ TSqlQuery query(Ctx_, Ctx_.Settings.Mode, false);
TBlocks innerBlocks;
const bool hasValidBody = DefineActionOrSubqueryBody(query, innerBlocks, body);
- auto ret = hasValidBody ? BuildQuery(Ctx.Pos(), innerBlocks, false, Ctx.Scoped, Ctx.SeqMode) : nullptr;
+ auto ret = hasValidBody ? BuildQuery(Ctx_.Pos(), innerBlocks, false, Ctx_.Scoped, Ctx_.SeqMode) : nullptr;
WarnUnusedNodes();
- Ctx.ScopeLevel--;
- Ctx.Scoped = saveScoped;
+ Ctx_.ScopeLevel--;
+ Ctx_.Scoped = saveScoped;
if (!ret) {
return {};
}
- TNodePtr blockNode = new TAstListNodeImpl(Ctx.Pos());
+ TNodePtr blockNode = new TAstListNodeImpl(Ctx_.Pos());
blockNode->Add("block");
blockNode->Add(blockNode->Q(ret));
if (!makeLambda) {
return blockNode;
}
- TNodePtr params = new TAstListNodeImpl(Ctx.Pos());
+ TNodePtr params = new TAstListNodeImpl(Ctx_.Pos());
params->Add("world");
for (const auto& arg : args) {
- params->Add(new TAstAtomNodeImpl(Ctx.Pos(), arg, TNodeFlags::ArbitraryContent));
+ params->Add(new TAstAtomNodeImpl(Ctx_.Pos(), arg, TNodeFlags::ArbitraryContent));
}
- return BuildLambda(Ctx.Pos(), params, blockNode);
+ return BuildLambda(Ctx_.Pos(), params, blockNode);
}
case TRule_do_stmt_TBlock2::ALT_NOT_SET:
Y_ABORT("You should change implementation according to grammar changes");
@@ -4779,9 +4779,9 @@ TNodePtr TSqlTranslation::DoStatement(const TRule_do_stmt& stmt, bool makeLambda
bool TSqlTranslation::DefineActionOrSubqueryBody(TSqlQuery& query, TBlocks& blocks, const TRule_define_action_or_subquery_body& body) {
if (body.HasBlock2()) {
- Ctx.PushCurrentBlocks(&blocks);
+ Ctx_.PushCurrentBlocks(&blocks);
Y_DEFER {
- Ctx.PopCurrentBlocks();
+ Ctx_.PopCurrentBlocks();
};
size_t statementNumber = 0;
@@ -4801,9 +4801,9 @@ bool TSqlTranslation::DefineActionOrSubqueryBody(TSqlQuery& query, TBlocks& bloc
}
bool TSqlTranslation::DefineActionOrSubqueryStatement(const TRule_define_action_or_subquery_stmt& stmt, TSymbolNameWithPos& nameAndPos, TNodePtr& lambda) {
- auto kind = Ctx.Token(stmt.GetToken2());
+ auto kind = Ctx_.Token(stmt.GetToken2());
const bool isSubquery = to_lower(kind) == "subquery";
- if (!isSubquery && Mode == NSQLTranslation::ESqlMode::SUBQUERY) {
+ if (!isSubquery && Mode_ == NSQLTranslation::ESqlMode::SUBQUERY) {
Error() << "Definition of actions is not allowed in the subquery";
return false;
}
@@ -4816,7 +4816,7 @@ bool TSqlTranslation::DefineActionOrSubqueryStatement(const TRule_define_action_
Error() << "Can not use anonymous name '" << actionName << "' as " << to_upper(kind) << " name";
return false;
}
- TPosition actionNamePos = Ctx.Pos();
+ TPosition actionNamePos = Ctx_.Pos();
TVector<TSymbolNameWithPos> argNames;
ui32 optionalArgumentsCount = 0;
@@ -4824,23 +4824,23 @@ bool TSqlTranslation::DefineActionOrSubqueryStatement(const TRule_define_action_
return false;
}
- auto saveScoped = Ctx.Scoped;
- Ctx.Scoped = MakeIntrusive<TScopedState>();
- Ctx.AllScopes.push_back(Ctx.Scoped);
- *Ctx.Scoped = *saveScoped;
- Ctx.Scoped->Local = TScopedState::TLocal{};
- Ctx.ScopeLevel++;
+ auto saveScoped = Ctx_.Scoped;
+ Ctx_.Scoped = MakeIntrusive<TScopedState>();
+ Ctx_.AllScopes.push_back(Ctx_.Scoped);
+ *Ctx_.Scoped = *saveScoped;
+ Ctx_.Scoped->Local = TScopedState::TLocal{};
+ Ctx_.ScopeLevel++;
for (auto& arg : argNames) {
arg.Name = PushNamedAtom(arg.Pos, arg.Name);
}
- auto saveMode = Ctx.Settings.Mode;
+ auto saveMode = Ctx_.Settings.Mode;
if (isSubquery) {
- Ctx.Settings.Mode = NSQLTranslation::ESqlMode::SUBQUERY;
+ Ctx_.Settings.Mode = NSQLTranslation::ESqlMode::SUBQUERY;
}
- TSqlQuery query(Ctx, Ctx.Settings.Mode, false);
+ TSqlQuery query(Ctx_, Ctx_.Settings.Mode, false);
TBlocks innerBlocks;
const bool hasValidBody = DefineActionOrSubqueryBody(query, innerBlocks, stmt.GetRule_define_action_or_subquery_body8());
@@ -4863,31 +4863,31 @@ bool TSqlTranslation::DefineActionOrSubqueryStatement(const TRule_define_action_
return false;
}
- auto ret = hasValidBody ? BuildQuery(Ctx.Pos(), innerBlocks, false, Ctx.Scoped, Ctx.SeqMode) : nullptr;
+ auto ret = hasValidBody ? BuildQuery(Ctx_.Pos(), innerBlocks, false, Ctx_.Scoped, Ctx_.SeqMode) : nullptr;
WarnUnusedNodes();
- Ctx.Scoped = saveScoped;
- Ctx.ScopeLevel--;
- Ctx.Settings.Mode = saveMode;
+ Ctx_.Scoped = saveScoped;
+ Ctx_.ScopeLevel--;
+ Ctx_.Settings.Mode = saveMode;
if (!ret) {
return false;
}
- TNodePtr blockNode = new TAstListNodeImpl(Ctx.Pos());
+ TNodePtr blockNode = new TAstListNodeImpl(Ctx_.Pos());
blockNode->Add("block");
blockNode->Add(blockNode->Q(ret));
- TNodePtr params = new TAstListNodeImpl(Ctx.Pos());
+ TNodePtr params = new TAstListNodeImpl(Ctx_.Pos());
params->Add("world");
for (const auto& arg : argNames) {
params->Add(BuildAtom(arg.Pos, arg.Name));
}
- lambda = BuildLambda(Ctx.Pos(), params, blockNode);
+ lambda = BuildLambda(Ctx_.Pos(), params, blockNode);
if (optionalArgumentsCount > 0) {
- lambda = new TCallNodeImpl(Ctx.Pos(), "WithOptionalArgs", {
+ lambda = new TCallNodeImpl(Ctx_.Pos(), "WithOptionalArgs", {
lambda,
- BuildQuotedAtom(Ctx.Pos(), ToString(optionalArgumentsCount), TNodeFlags::Default)
+ BuildQuotedAtom(Ctx_.Pos(), ToString(optionalArgumentsCount), TNodeFlags::Default)
});
}
@@ -4898,7 +4898,7 @@ bool TSqlTranslation::DefineActionOrSubqueryStatement(const TRule_define_action_
TNodePtr TSqlTranslation::IfStatement(const TRule_if_stmt& stmt) {
bool isEvaluate = stmt.HasBlock1();
- TSqlExpression expr(Ctx, Mode);
+ TSqlExpression expr(Ctx_, Mode_);
auto exprNode = expr.Build(stmt.GetRule_expr3());
if (!exprNode) {
return {};
@@ -4917,18 +4917,18 @@ TNodePtr TSqlTranslation::IfStatement(const TRule_if_stmt& stmt) {
}
}
- return BuildWorldIfNode(Ctx.Pos(), exprNode, thenNode, elseNode, isEvaluate);
+ return BuildWorldIfNode(Ctx_.Pos(), exprNode, thenNode, elseNode, isEvaluate);
}
TNodePtr TSqlTranslation::ForStatement(const TRule_for_stmt& stmt) {
bool isEvaluate = stmt.HasBlock1();
bool isParallel = stmt.HasBlock2();
- TSqlExpression expr(Ctx, Mode);
+ TSqlExpression expr(Ctx_, Mode_);
TString itemArgName;
if (!NamedNodeImpl(stmt.GetRule_bind_parameter4(), itemArgName, *this)) {
return {};
}
- TPosition itemArgNamePos = Ctx.Pos();
+ TPosition itemArgNamePos = Ctx_.Pos();
auto exprNode = expr.Build(stmt.GetRule_expr6());
if (!exprNode) {
@@ -4937,12 +4937,12 @@ TNodePtr TSqlTranslation::ForStatement(const TRule_for_stmt& stmt) {
itemArgName = PushNamedAtom(itemArgNamePos, itemArgName);
if (isParallel) {
- ++Ctx.ParallelModeCount;
+ ++Ctx_.ParallelModeCount;
}
auto bodyNode = DoStatement(stmt.GetRule_do_stmt7(), true, { itemArgName });
if (isParallel) {
- --Ctx.ParallelModeCount;
+ --Ctx_.ParallelModeCount;
}
PopNamedNode(itemArgName);
@@ -4958,7 +4958,7 @@ TNodePtr TSqlTranslation::ForStatement(const TRule_for_stmt& stmt) {
}
}
- return BuildWorldForNode(Ctx.Pos(), exprNode, bodyNode, elseNode, isEvaluate, isParallel);
+ return BuildWorldForNode(Ctx_.Pos(), exprNode, bodyNode, elseNode, isEvaluate, isParallel);
}
bool TSqlTranslation::BindParameterClause(const TRule_bind_parameter& node, TDeferredAtom& result) {
@@ -4971,7 +4971,7 @@ bool TSqlTranslation::BindParameterClause(const TRule_bind_parameter& node, TDef
return false;
}
- result = MakeAtomFromExpression(Ctx.Pos(), Ctx, named);
+ result = MakeAtomFromExpression(Ctx_.Pos(), Ctx_, named);
return true;
}
@@ -4981,7 +4981,7 @@ bool TSqlTranslation::ObjectFeatureValueClause(const TRule_object_feature_value&
case TRule_object_feature_value::kAltObjectFeatureValue1:
{
TString name = Id(node.GetAlt_object_feature_value1().GetRule_id_or_type1(), *this);
- result = TDeferredAtom(Ctx.Pos(), name);
+ result = TDeferredAtom(Ctx_.Pos(), name);
break;
}
case TRule_object_feature_value::kAltObjectFeatureValue2:
@@ -4993,18 +4993,18 @@ bool TSqlTranslation::ObjectFeatureValueClause(const TRule_object_feature_value&
}
case TRule_object_feature_value::kAltObjectFeatureValue3:
{
- auto strValue = StringContent(Ctx, Ctx.Pos(), Ctx.Token(node.GetAlt_object_feature_value3().GetToken1()));
+ auto strValue = StringContent(Ctx_, Ctx_.Pos(), Ctx_.Token(node.GetAlt_object_feature_value3().GetToken1()));
if (!strValue) {
- Error() << "Cannot parse string correctly: " << Ctx.Token(node.GetAlt_object_feature_value3().GetToken1());
+ Error() << "Cannot parse string correctly: " << Ctx_.Token(node.GetAlt_object_feature_value3().GetToken1());
return false;
}
- result = TDeferredAtom(Ctx.Pos(), strValue->Content);
+ result = TDeferredAtom(Ctx_.Pos(), strValue->Content);
break;
}
case TRule_object_feature_value::kAltObjectFeatureValue4:
{
- TString value = Ctx.Token(node.GetAlt_object_feature_value4().GetRule_bool_value1().GetToken1());
- result = TDeferredAtom(BuildLiteralBool(Ctx.Pos(), FromString<bool>(value)), Ctx);
+ TString value = Ctx_.Token(node.GetAlt_object_feature_value4().GetRule_bool_value1().GetToken1());
+ result = TDeferredAtom(BuildLiteralBool(Ctx_.Pos(), FromString<bool>(value)), Ctx_);
break;
}
case TRule_object_feature_value::ALT_NOT_SET:
@@ -5055,11 +5055,11 @@ bool TSqlTranslation::StoreDataSourceSettingsEntry(const TIdentifier& id, const
const TString key = to_lower(id.Name);
if (result.find(key) != result.end()) {
- Ctx.Error() << to_upper(key) << " duplicate keys";
+ Ctx_.Error() << to_upper(key) << " duplicate keys";
return false;
}
- if (!StoreString(*value, result[key], Ctx, to_upper(key))) {
+ if (!StoreString(*value, result[key], Ctx_, to_upper(key))) {
return false;
}
@@ -5084,7 +5084,7 @@ bool TSqlTranslation::ParseExternalDataSourceSettings(std::map<TString, TDeferre
}
}
if (result.find("source_type") == result.end()) {
- Ctx.Error() << "SOURCE_TYPE requires key";
+ Ctx_.Error() << "SOURCE_TYPE requires key";
return false;
}
if (!ValidateAuthMethod(result)) {
@@ -5150,23 +5150,23 @@ bool TSqlTranslation::ValidateAuthMethod(const std::map<TString, TDeferredAtom>&
};
auto authMethodIt = result.find("auth_method");
if (authMethodIt == result.end() || authMethodIt->second.GetLiteral() == nullptr) {
- Ctx.Error() << "AUTH_METHOD requires key";
+ Ctx_.Error() << "AUTH_METHOD requires key";
return false;
}
const auto& authMethod = *authMethodIt->second.GetLiteral();
auto it = authMethodFields.find(authMethod);
if (it == authMethodFields.end()) {
- Ctx.Error() << "Unknown AUTH_METHOD = " << authMethod;
+ Ctx_.Error() << "Unknown AUTH_METHOD = " << authMethod;
return false;
}
const auto& currentAuthFields = it->second;
for (const auto& authField: allAuthFields) {
if (currentAuthFields.contains(authField) && !result.contains(TString{authField})) {
- Ctx.Error() << to_upper(TString{authField}) << " requires key";
+ Ctx_.Error() << to_upper(TString{authField}) << " requires key";
return false;
}
if (!currentAuthFields.contains(authField) && result.contains(TString{authField})) {
- Ctx.Error() << to_upper(TString{authField}) << " key is not supported for AUTH_METHOD = " << authMethod;
+ Ctx_.Error() << to_upper(TString{authField}) << " key is not supported for AUTH_METHOD = " << authMethod;
return false;
}
}
@@ -5179,17 +5179,17 @@ bool TSqlTranslation::ValidateExternalTable(const TCreateTableParameters& params
}
if (!params.TableSettings.DataSourcePath) {
- Ctx.Error() << "DATA_SOURCE requires key";
+ Ctx_.Error() << "DATA_SOURCE requires key";
return false;
}
if (!params.TableSettings.Location) {
- Ctx.Error() << "LOCATION requires key";
+ Ctx_.Error() << "LOCATION requires key";
return false;
}
if (params.PkColumns) {
- Ctx.Error() << "PRIMARY KEY is not supported for external table";
+ Ctx_.Error() << "PRIMARY KEY is not supported for external table";
return false;
}
@@ -5201,19 +5201,19 @@ bool TSqlTranslation::ParseViewQuery(
const TRule_select_stmt& query
) {
TStringBuilder queryText;
- if (!BuildContextRecreationQuery(Ctx, queryText)) {
+ if (!BuildContextRecreationQuery(Ctx_, queryText)) {
return false;
}
queryText << CollectTokens(query);
- features["query_text"] = { Ctx.Pos(), queryText };
+ features["query_text"] = { Ctx_.Pos(), queryText };
// The AST is needed solely for the validation of the CREATE VIEW statement.
// The final storage format for the query is a plain text, not an AST.
- const auto viewSelect = BuildViewSelect(query, Ctx);
+ const auto viewSelect = BuildViewSelect(query, Ctx_);
if (!viewSelect) {
return false;
}
- features["query_ast"] = { viewSelect, Ctx };
+ features["query_ast"] = { viewSelect, Ctx_ };
return true;
}
@@ -5299,15 +5299,15 @@ bool TSqlTranslation::ParseTransferLambda(
TString& lambdaText,
const TRule_lambda_or_parameter& lambdaOrParameter) {
- TSqlExpression expr(Ctx, Ctx.Settings.Mode);
+ TSqlExpression expr(Ctx_, Ctx_.Settings.Mode);
auto result = expr.Build(lambdaOrParameter);
if (!result) {
return false;
}
- lambdaText = GetLambdaText(*this, Ctx, lambdaOrParameter);
+ lambdaText = GetLambdaText(*this, Ctx_, lambdaOrParameter);
if (lambdaText.empty()) {
- Ctx.Error() << "Cannot parse lambda correctly";
+ Ctx_.Error() << "Cannot parse lambda correctly";
}
return !lambdaText.empty();
@@ -5321,25 +5321,25 @@ public:
}
void SetStar() {
- ColumnNames.clear();
- Star = true;
+ ColumnNames_.clear();
+ Star_ = true;
}
void AddColumn(const NSQLv1Generated::TRule_an_id & rule, TTranslation& ctx) {
- ColumnNames.push_back(NSQLTranslationV1::Id(rule, ctx));
+ ColumnNames_.push_back(NSQLTranslationV1::Id(rule, ctx));
}
bool DoInit(TContext& ctx, ISource* source) override {
- Node = Y();
- if (Star) {
- Node->Add(Y("ReturningStar"));
+ Node_ = Y();
+ if (Star_) {
+ Node_->Add(Y("ReturningStar"));
} else {
- for (auto&& column : ColumnNames) {
- Node->Add(Y("ReturningListItem", Q(column)));
+ for (auto&& column : ColumnNames_) {
+ Node_->Add(Y("ReturningListItem", Q(column)));
}
}
- Node = Q(Y(Q("returning"), Q(Node)));
- return Node->Init(ctx, source);
+ Node_ = Q(Y(Q("returning"), Q(Node_)));
+ return Node_->Init(ctx, source);
}
TNodePtr DoClone() const override {
@@ -5347,17 +5347,17 @@ public:
}
TAstNode* Translate(TContext& ctx) const override {
- return Node->Translate(ctx);
+ return Node_->Translate(ctx);
}
private:
- TNodePtr Node;
- TVector<TString> ColumnNames;
- bool Star = false;
+ TNodePtr Node_;
+ TVector<TString> ColumnNames_;
+ bool Star_ = false;
};
TNodePtr TSqlTranslation::ReturningList(const ::NSQLv1Generated::TRule_returning_columns_list& columns) {
- auto result = MakeHolder<TReturningListColumns>(Ctx.Pos());
+ auto result = MakeHolder<TReturningListColumns>(Ctx_.Pos());
if (columns.GetBlock2().Alt_case() == TRule_returning_columns_list_TBlock2::AltCase::kAlt1) {
result->SetStar();
@@ -5376,19 +5376,19 @@ bool TSqlTranslation::StoreResourcePoolSettingsEntry(const TIdentifier& id, cons
const TString key = to_lower(id.Name);
if (result.find(key) != result.end()) {
- Ctx.Error() << to_upper(key) << " duplicate keys";
+ Ctx_.Error() << to_upper(key) << " duplicate keys";
return false;
}
switch (value->Alt_case()) {
case TRule_table_setting_value::kAltTableSettingValue2:
- return StoreString(*value, result[key], Ctx, to_upper(key));
+ return StoreString(*value, result[key], Ctx_, to_upper(key));
case TRule_table_setting_value::kAltTableSettingValue3:
- return StoreInt(*value, result[key], Ctx, to_upper(key));
+ return StoreInt(*value, result[key], Ctx_, to_upper(key));
default:
- Ctx.Error() << to_upper(key) << " value should be a string literal or integer";
+ Ctx_.Error() << to_upper(key) << " value should be a string literal or integer";
return false;
}
@@ -5447,19 +5447,19 @@ bool TSqlTranslation::StoreResourcePoolClassifierSettingsEntry(const TIdentifier
const TString key = to_lower(id.Name);
if (result.find(key) != result.end()) {
- Ctx.Error() << to_upper(key) << " duplicate keys";
+ Ctx_.Error() << to_upper(key) << " duplicate keys";
return false;
}
switch (value->Alt_case()) {
case TRule_table_setting_value::kAltTableSettingValue2:
- return StoreString(*value, result[key], Ctx, to_upper(key));
+ return StoreString(*value, result[key], Ctx_, to_upper(key));
case TRule_table_setting_value::kAltTableSettingValue3:
- return StoreInt(*value, result[key], Ctx, to_upper(key));
+ return StoreInt(*value, result[key], Ctx_, to_upper(key));
default:
- Ctx.Error() << to_upper(key) << " value should be a string literal or integer";
+ Ctx_.Error() << to_upper(key) << " value should be a string literal or integer";
return false;
}
diff --git a/yql/essentials/sql/v1/sql_translation.h b/yql/essentials/sql/v1/sql_translation.h
index 99192e4e102..619f4276be8 100644
--- a/yql/essentials/sql/v1/sql_translation.h
+++ b/yql/essentials/sql/v1/sql_translation.h
@@ -123,7 +123,7 @@ class TSqlTranslation: public TTranslation {
protected:
TSqlTranslation(TContext& ctx, NSQLTranslation::ESqlMode mode)
: TTranslation(ctx)
- , Mode(mode)
+ , Mode_(mode)
{
/// \todo remove NSQLTranslation::ESqlMode params
YQL_ENSURE(ctx.Settings.Mode == mode);
@@ -288,7 +288,7 @@ private:
bool ValidateTableSettings(const TTableSettings& settings);
protected:
- NSQLTranslation::ESqlMode Mode;
+ NSQLTranslation::ESqlMode Mode_;
};
TNodePtr LiteralNumber(TContext& ctx, const TRule_integer& node);
diff --git a/yql/essentials/sql/v1/sql_values.cpp b/yql/essentials/sql/v1/sql_values.cpp
index c035489387f..2375fa6ec91 100644
--- a/yql/essentials/sql/v1/sql_values.cpp
+++ b/yql/essentials/sql/v1/sql_values.cpp
@@ -11,7 +11,7 @@ using namespace NSQLv1Generated;
TSourcePtr TSqlValues::Build(const TRule_values_stmt& node, TPosition& valuesPos, const TVector<TString>& derivedColumns, TPosition derivedColumnsPos) {
Token(node.GetToken1());
- valuesPos = Ctx.Pos();
+ valuesPos = Ctx_.Pos();
TVector<TVector<TNodePtr>> rows;
const auto& rowList = node.GetRule_values_source_row_list2();
@@ -22,13 +22,13 @@ TSourcePtr TSqlValues::Build(const TRule_values_stmt& node, TPosition& valuesPos
YQL_ENSURE(!rows.empty());
const size_t columnsCount = rows.back().size();
if (derivedColumns.size() > columnsCount) {
- Ctx.Error(derivedColumnsPos) << "Derived column list size exceeds column count in VALUES";
+ Ctx_.Error(derivedColumnsPos) << "Derived column list size exceeds column count in VALUES";
return nullptr;
}
auto columns = derivedColumns;
- if (Ctx.WarnUnnamedColumns && columns.size() < columnsCount) {
- Ctx.Warning(valuesPos, TIssuesIds::YQL_UNNAMED_COLUMN)
+ if (Ctx_.WarnUnnamedColumns && columns.size() < columnsCount) {
+ Ctx_.Warning(valuesPos, TIssuesIds::YQL_UNNAMED_COLUMN)
<< "Autogenerated column names column" << columns.size() << "...column" << columnsCount - 1 << " will be used here";
}
@@ -80,15 +80,15 @@ bool TSqlValues::BuildRows(const TRule_values_source_row_list& node, TVector<TVe
}
bool TSqlValues::BuildRow(const TRule_values_source_row& inRow, TVector<TNodePtr>& outRow) {
- TSqlExpression sqlExpr(Ctx, Mode);
+ TSqlExpression sqlExpr(Ctx_, Mode_);
return ExprList(sqlExpr, outRow, inRow.GetRule_expr_list2());
}
TSourcePtr TSqlValues::ValuesSource(const TRule_values_source& node, const TVector<TString>& columnsHint,
const TString& operationName)
{
- Ctx.IncrementMonCounter("sql_features", "ValuesSource");
- TPosition pos(Ctx.Pos());
+ Ctx_.IncrementMonCounter("sql_features", "ValuesSource");
+ TPosition pos(Ctx_.Pos());
switch (node.Alt_case()) {
case TRule_values_source::kAltValuesSource1: {
TVector<TVector<TNodePtr>> rows {{}};
@@ -99,7 +99,7 @@ TSourcePtr TSqlValues::ValuesSource(const TRule_values_source& node, const TVect
return BuildWriteValues(pos, operationName, columnsHint, rows);
}
case TRule_values_source::kAltValuesSource2: {
- TSqlSelect select(Ctx, Mode);
+ TSqlSelect select(Ctx_, Mode_);
TPosition selectPos;
auto source = select.Build(node.GetAlt_values_source2().GetRule_select_stmt1(), selectPos);
if (!source) {
@@ -108,7 +108,7 @@ TSourcePtr TSqlValues::ValuesSource(const TRule_values_source& node, const TVect
return BuildWriteValues(pos, "UPDATE", columnsHint, std::move(source));
}
default:
- Ctx.IncrementMonCounter("sql_errors", "UnknownValuesSource");
+ Ctx_.IncrementMonCounter("sql_errors", "UnknownValuesSource");
AltNotImplemented("values_source", node);
return nullptr;
}
@@ -125,7 +125,7 @@ TSourcePtr TSqlIntoValues::Build(const TRule_into_values_source& node, const TSt
return ValuesSource(alt.GetRule_values_source2(), columnsHint, operationName);
}
default:
- Ctx.IncrementMonCounter("sql_errors", "DefaultValuesOrOther");
+ Ctx_.IncrementMonCounter("sql_errors", "DefaultValuesOrOther");
AltNotImplemented("into_values_source", node);
return nullptr;
}
@@ -134,7 +134,7 @@ TSourcePtr TSqlIntoValues::Build(const TRule_into_values_source& node, const TSt
TSourcePtr TSqlAsValues::Build(const TRule_values_source& node, const TString& operationName) {
switch (node.Alt_case()) {
case TRule_values_source::kAltValuesSource1: {
- Ctx.IncrementMonCounter("sql_errors", "UnknownValuesSource");
+ Ctx_.IncrementMonCounter("sql_errors", "UnknownValuesSource");
Error() << "AS VALUES statement is not supported for " << operationName << ".";
return nullptr;
}
@@ -142,7 +142,7 @@ TSourcePtr TSqlAsValues::Build(const TRule_values_source& node, const TString& o
return ValuesSource(node, {}, operationName);
}
default:
- Ctx.IncrementMonCounter("sql_errors", "UnknownValuesSource");
+ Ctx_.IncrementMonCounter("sql_errors", "UnknownValuesSource");
AltNotImplemented("values_source", node);
return nullptr;
}