diff options
| author | vvvv <[email protected]> | 2025-10-10 16:31:33 +0300 |
|---|---|---|
| committer | vvvv <[email protected]> | 2025-10-10 17:08:12 +0300 |
| commit | 98f2ee1a36436bada54371eef656138d98dd40e0 (patch) | |
| tree | 3bb7cf502482258623b4d94721714612bd16c4de | |
| parent | c62509aef170f46a8d9464bafa8b83bc293ebb63 (diff) | |
YQL-20086 invert flag
commit_hash:a6b640bc576263b62884a0b4187ba79c893e13d9
321 files changed, 2768 insertions, 3378 deletions
diff --git a/yql/essentials/ast/serialize/ya.make b/yql/essentials/ast/serialize/ya.make index f071b9d1b9c..25b5116b221 100644 --- a/yql/essentials/ast/serialize/ya.make +++ b/yql/essentials/ast/serialize/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( yql_expr_serialize.cpp ) diff --git a/yql/essentials/ast/ut/ya.make b/yql/essentials/ast/ut/ya.make index 59c4e8669ff..4502c1c05f9 100644 --- a/yql/essentials/ast/ut/ya.make +++ b/yql/essentials/ast/ut/ya.make @@ -1,7 +1,5 @@ UNITTEST_FOR(yql/essentials/ast) -ENABLE(YQL_STYLE_CPP) - FORK_SUBTESTS() SRCS( diff --git a/yql/essentials/ast/ya.make b/yql/essentials/ast/ya.make index 98e4a9a1b26..a0a003cb2eb 100644 --- a/yql/essentials/ast/ya.make +++ b/yql/essentials/ast/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( yql_ast.cpp yql_ast.h diff --git a/yql/essentials/core/arrow_kernels/registry/ut/ya.make b/yql/essentials/core/arrow_kernels/registry/ut/ya.make index 5cea8ed99f8..bbc85f75786 100644 --- a/yql/essentials/core/arrow_kernels/registry/ut/ya.make +++ b/yql/essentials/core/arrow_kernels/registry/ut/ya.make @@ -1,7 +1,5 @@ UNITTEST_FOR(yql/essentials/core/arrow_kernels/registry) -ENABLE(YQL_STYLE_CPP) - PEERDIR( ) diff --git a/yql/essentials/core/arrow_kernels/registry/ya.make b/yql/essentials/core/arrow_kernels/registry/ya.make index 60fc0609863..58f943f3857 100644 --- a/yql/essentials/core/arrow_kernels/registry/ya.make +++ b/yql/essentials/core/arrow_kernels/registry/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( registry.cpp ) diff --git a/yql/essentials/core/arrow_kernels/request/ya.make b/yql/essentials/core/arrow_kernels/request/ya.make index 798032cfca9..ace4fd2a0fa 100644 --- a/yql/essentials/core/arrow_kernels/request/ya.make +++ b/yql/essentials/core/arrow_kernels/request/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( request.cpp ) diff --git a/yql/essentials/core/cbo/simple/ya.make b/yql/essentials/core/cbo/simple/ya.make index ec7c37d1896..116161781cb 100644 --- a/yql/essentials/core/cbo/simple/ya.make +++ b/yql/essentials/core/cbo/simple/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( cbo_simple.cpp ) diff --git a/yql/essentials/core/cbo/ut/ya.make b/yql/essentials/core/cbo/ut/ya.make index 382157d92a6..503d56bf3d8 100644 --- a/yql/essentials/core/cbo/ut/ya.make +++ b/yql/essentials/core/cbo/ut/ya.make @@ -1,7 +1,5 @@ UNITTEST_FOR(yql/essentials/core/cbo) -ENABLE(YQL_STYLE_CPP) - SRCS( cbo_optimizer_ut.cpp ) diff --git a/yql/essentials/core/cbo/ya.make b/yql/essentials/core/cbo/ya.make index 146e6a3743d..c7529ffdb45 100644 --- a/yql/essentials/core/cbo/ya.make +++ b/yql/essentials/core/cbo/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( cbo_optimizer_new.cpp cbo_interesting_orderings.cpp diff --git a/yql/essentials/core/common_opt/ya.make b/yql/essentials/core/common_opt/ya.make index e301b885994..3be11816ccf 100644 --- a/yql/essentials/core/common_opt/ya.make +++ b/yql/essentials/core/common_opt/ya.make @@ -1,5 +1,7 @@ LIBRARY() +ENABLE(SKIP_YQL_STYLE_CPP) + SRCS( yql_co.h yql_co_blocks.cpp diff --git a/yql/essentials/core/credentials/ya.make b/yql/essentials/core/credentials/ya.make index e1c1385b2d9..df1c6dede4d 100644 --- a/yql/essentials/core/credentials/ya.make +++ b/yql/essentials/core/credentials/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( yql_credentials.cpp ) diff --git a/yql/essentials/core/dq_expr_nodes/ya.make b/yql/essentials/core/dq_expr_nodes/ya.make index 190ce26c77e..8e2c1bcc11a 100644 --- a/yql/essentials/core/dq_expr_nodes/ya.make +++ b/yql/essentials/core/dq_expr_nodes/ya.make @@ -1,5 +1,7 @@ LIBRARY() +ENABLE(SKIP_YQL_STYLE_CPP) + SRCS( dq_expr_nodes.h ) diff --git a/yql/essentials/core/dq_integration/transform/ya.make b/yql/essentials/core/dq_integration/transform/ya.make index a5598b14815..192fcf89217 100644 --- a/yql/essentials/core/dq_integration/transform/ya.make +++ b/yql/essentials/core/dq_integration/transform/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( yql_dq_task_transform.cpp ) diff --git a/yql/essentials/core/dq_integration/ya.make b/yql/essentials/core/dq_integration/ya.make index 07786545721..9e1ba48828c 100644 --- a/yql/essentials/core/dq_integration/ya.make +++ b/yql/essentials/core/dq_integration/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( yql_dq_integration.cpp yql_dq_optimization.cpp diff --git a/yql/essentials/core/dqs_expr_nodes/ya.make b/yql/essentials/core/dqs_expr_nodes/ya.make index b4648fa68ec..d5aaa21fb20 100644 --- a/yql/essentials/core/dqs_expr_nodes/ya.make +++ b/yql/essentials/core/dqs_expr_nodes/ya.make @@ -1,5 +1,7 @@ LIBRARY() +ENABLE(SKIP_YQL_STYLE_CPP) + SRCS( dqs_expr_nodes.h ) diff --git a/yql/essentials/core/expr_nodes/ya.make b/yql/essentials/core/expr_nodes/ya.make index 0d366ac3541..2b9ad6a3e10 100644 --- a/yql/essentials/core/expr_nodes/ya.make +++ b/yql/essentials/core/expr_nodes/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( yql_expr_nodes.h yql_expr_nodes.cpp diff --git a/yql/essentials/core/expr_nodes_gen/ya.make b/yql/essentials/core/expr_nodes_gen/ya.make index 2bbc969a207..7780938a0cb 100644 --- a/yql/essentials/core/expr_nodes_gen/ya.make +++ b/yql/essentials/core/expr_nodes_gen/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( yql_expr_nodes_gen.h yql_expr_nodes_gen.cpp diff --git a/yql/essentials/core/extract_predicate/ut/ya.make b/yql/essentials/core/extract_predicate/ut/ya.make index d080a9d2ad4..fbee19eb294 100644 --- a/yql/essentials/core/extract_predicate/ut/ya.make +++ b/yql/essentials/core/extract_predicate/ut/ya.make @@ -1,7 +1,5 @@ UNITTEST_FOR(yql/essentials/core/extract_predicate) -ENABLE(YQL_STYLE_CPP) - SRCS( extract_predicate_ut.cpp ) diff --git a/yql/essentials/core/extract_predicate/ya.make b/yql/essentials/core/extract_predicate/ya.make index e2a65bebc73..3730c087dca 100644 --- a/yql/essentials/core/extract_predicate/ya.make +++ b/yql/essentials/core/extract_predicate/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( extract_predicate_dbg.cpp extract_predicate_dbg.h diff --git a/yql/essentials/core/facade/ya.make b/yql/essentials/core/facade/ya.make index 09364a0482d..7914441c5d1 100644 --- a/yql/essentials/core/facade/ya.make +++ b/yql/essentials/core/facade/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( yql_facade.cpp ) diff --git a/yql/essentials/core/file_storage/defs/ya.make b/yql/essentials/core/file_storage/defs/ya.make index 8ebbb6ec6e3..d0bc48f525b 100644 --- a/yql/essentials/core/file_storage/defs/ya.make +++ b/yql/essentials/core/file_storage/defs/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( downloader.cpp provider.cpp diff --git a/yql/essentials/core/file_storage/download/ya.make b/yql/essentials/core/file_storage/download/ya.make index 2f73f2844ca..feedf1bce5a 100644 --- a/yql/essentials/core/file_storage/download/ya.make +++ b/yql/essentials/core/file_storage/download/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( download_config.cpp download_stream.cpp diff --git a/yql/essentials/core/file_storage/http_download/ya.make b/yql/essentials/core/file_storage/http_download/ya.make index d08ecd667c2..2c3502fc407 100644 --- a/yql/essentials/core/file_storage/http_download/ya.make +++ b/yql/essentials/core/file_storage/http_download/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( http_download.cpp ) diff --git a/yql/essentials/core/file_storage/ut/ya.make b/yql/essentials/core/file_storage/ut/ya.make index 53ca0d6de22..5855dccaae6 100644 --- a/yql/essentials/core/file_storage/ut/ya.make +++ b/yql/essentials/core/file_storage/ut/ya.make @@ -1,7 +1,5 @@ UNITTEST_FOR(yql/essentials/core/file_storage) -ENABLE(YQL_STYLE_CPP) - SRCS( file_storage_ut.cpp sized_cache_ut.cpp diff --git a/yql/essentials/core/file_storage/ya.make b/yql/essentials/core/file_storage/ya.make index 9fe83657db3..0bc16b99d45 100644 --- a/yql/essentials/core/file_storage/ya.make +++ b/yql/essentials/core/file_storage/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( file_storage_decorator.cpp file_storage.cpp diff --git a/yql/essentials/core/histogram/ut/ya.make b/yql/essentials/core/histogram/ut/ya.make index e483229b6eb..17e420ad072 100644 --- a/yql/essentials/core/histogram/ut/ya.make +++ b/yql/essentials/core/histogram/ut/ya.make @@ -1,7 +1,5 @@ UNITTEST_FOR(yql/essentials/core/histogram) -ENABLE(YQL_STYLE_CPP) - SIZE(MEDIUM) SRCS( eq_width_histogram_ut.cpp diff --git a/yql/essentials/core/histogram/ya.make b/yql/essentials/core/histogram/ya.make index 91ff26cc326..bcc309c3798 100644 --- a/yql/essentials/core/histogram/ya.make +++ b/yql/essentials/core/histogram/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( eq_width_histogram.h eq_width_histogram.cpp diff --git a/yql/essentials/core/issue/ut/ya.make b/yql/essentials/core/issue/ut/ya.make index 6ce9e838f3c..738c471dafb 100644 --- a/yql/essentials/core/issue/ut/ya.make +++ b/yql/essentials/core/issue/ut/ya.make @@ -1,7 +1,5 @@ UNITTEST_FOR(yql/essentials/core/issue) -ENABLE(YQL_STYLE_CPP) - FORK_SUBTESTS() SRCS( diff --git a/yql/essentials/core/issue/ya.make b/yql/essentials/core/issue/ya.make index 07a1166cf8d..f4e8f9d6535 100644 --- a/yql/essentials/core/issue/ya.make +++ b/yql/essentials/core/issue/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( yql_issue.cpp ) diff --git a/yql/essentials/core/langver/ya.make b/yql/essentials/core/langver/ya.make index c5912134624..a3cc132af38 100644 --- a/yql/essentials/core/langver/ya.make +++ b/yql/essentials/core/langver/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( yql_core_langver.cpp ) diff --git a/yql/essentials/core/layers/layers.cpp b/yql/essentials/core/layers/layers.cpp index 66ffb9c72f8..9e0d3b3da09 100644 --- a/yql/essentials/core/layers/layers.cpp +++ b/yql/essentials/core/layers/layers.cpp @@ -18,17 +18,18 @@ struct TLogicalInfo { TMaybe<TString> Url; }; -class TLayersRegistry : public ILayersRegistry { +class TLayersRegistry: public ILayersRegistry { public: TLayersRegistry(const THashMap<TString, IRemoteLayerProviderPtr>& remoteProviders, const THashMap<TString, ILayersIntegrationPtr>& integrations) : RemoteProviders_(remoteProviders) , Integrations_(integrations) - {} + { + } TMaybe<TVector<TKey>> ResolveLogicalLayers(const TVector<TLayerOrder>& orders, NYql::TExprContext& ctx) const override { THashMap<TKey, THashSet<TKey>> graph; // first of all let's prepare graph of restrictions - for (auto& order: orders) { + for (auto& order : orders) { for (size_t i = 0; i < order.size(); ++i) { auto& layer = order[i]; auto logicalInfoPtr = LogicalInfoByName_.FindPtr(layer); @@ -92,7 +93,7 @@ public: bool hasErrors = false; std::function<void(const TKey&)> topSort = [&](const TKey& v) { currentVisited.emplace(v); - for (auto& e: graph[v]) { + for (auto& e : graph[v]) { if (currentVisited.contains(e)) { ctx.AddError(NYql::TIssue(TStringBuilder() << "Layers graph contain cycles")); hasErrors = true; @@ -105,7 +106,7 @@ public: currentVisited.erase(v); order.emplace_back(v); }; - for (auto& [v, _]: graph) { + for (auto& [v, _] : graph) { if (!visited.emplace(v).second) { continue; } @@ -115,7 +116,7 @@ public: return {}; } size_t sz = 0; - for (auto& k: order) { + for (auto& k : order) { if (k.Url) { order[sz++] = std::move(k); continue; @@ -150,34 +151,30 @@ public: bool AddLayer(const TString& name, const TMaybe<TString>& parent, const TMaybe<TString>& url, NYql::TExprContext& ctx) override { if (parent && *parent == name) { ctx.AddError(NYql::TIssue( - TStringBuilder() << "Layer's parent can't point to itself" - )); + TStringBuilder() << "Layer's parent can't point to itself")); return false; } if (parent && !LogicalInfoByName_.contains(*parent)) { ctx.AddError(NYql::TIssue( - TStringBuilder() << "Layer " << parent->Quote() << " not found" - )); + TStringBuilder() << "Layer " << parent->Quote() << " not found")); return false; } auto [_, emplaced] = LogicalInfoByName_.emplace(name, TLogicalInfo{ - .Name = name, - .Parent = parent, - .Url = url - }); + .Name = name, + .Parent = parent, + .Url = url}); if (!emplaced) { ctx.AddError(NYql::TIssue( - TStringBuilder() << "Layer " << name.Quote() << " already exists" - )); + TStringBuilder() << "Layer " << name.Quote() << " already exists")); return false; } - for (const auto& [_, integration]: Integrations_) { + for (const auto& [_, integration] : Integrations_) { if (!integration->UpdateLayerCache(TKey(name), - TLayerInfo{.Parent = parent ? TMaybe<TKey>(TKey(*parent)) : TMaybe<TKey>{}}, ctx)) + TLayerInfo{.Parent = parent ? TMaybe<TKey>(TKey(*parent)) : TMaybe<TKey>{}}, ctx)) { return false; } @@ -199,8 +196,7 @@ public: auto providerPtr = RemoteProviders_.FindPtr(schema); if (!providerPtr) { ctx.AddError(NYql::TIssue( - TStringBuilder() << "Unkown layer schema: " << schema.Quote() - )); + TStringBuilder() << "Unkown layer schema: " << schema.Quote())); return false; } @@ -210,7 +206,7 @@ public: while (currentUrl && !InfoByUrl_.contains(*currentUrl->Url)) { try { auto info = provider->GetLayerInfo(parent, *currentUrl->Url).GetValueSync(); - for (const auto& [_, integration]: Integrations_) { + for (const auto& [_, integration] : Integrations_) { if (!integration->UpdateLayerCache(TKey({}, *currentUrl->Url), info, ctx)) { return false; } @@ -227,8 +223,8 @@ public: } void ClearLayers() override { - for (const auto& [name, _]: LogicalInfoByName_) { - for (const auto& [_, integration]: Integrations_) { + for (const auto& [name, _] : LogicalInfoByName_) { + for (const auto& [_, integration] : Integrations_) { integration->RemoveLayerByName(name); } } @@ -239,21 +235,18 @@ public: NJson::TJsonValue val; if (!NJson::ReadJsonTree(json, &val)) { ctx.AddError(NYql::TIssue( - TStringBuilder() << "Layer description must be a valid JSON string" - )); + TStringBuilder() << "Layer description must be a valid JSON string")); return false; } if (!val.Has("name")) { ctx.AddError(NYql::TIssue( - TStringBuilder() << "Layer description must contain name field" - )); + TStringBuilder() << "Layer description must contain name field")); return false; } - for (const auto& [name, _]: val.GetMap()) { + for (const auto& [name, _] : val.GetMap()) { if (name != "name" && name != "parent" && name != "url") { ctx.AddError(NYql::TIssue( - TStringBuilder() << "Layer unsupported attribute: " << name.Quote() - )); + TStringBuilder() << "Layer unsupported attribute: " << name.Quote())); return false; } } @@ -262,16 +255,16 @@ public: val["name"].GetString(), val.Has("parent") ? val["parent"].GetString() : TMaybe<TString>(), val.Has("url") ? val["url"].GetString() : TMaybe<TString>(), - ctx - ); + ctx); } + private: const THashMap<TString, IRemoteLayerProviderPtr> RemoteProviders_; const THashMap<TString, ILayersIntegrationPtr> Integrations_; THashMap<TString, TLayerInfo> InfoByUrl_; THashMap<TString, TLogicalInfo> LogicalInfoByName_; }; -} +} // namespace namespace NYql::NLayers { @@ -298,7 +291,7 @@ TMaybe<TVector<TLocations>> RemoveDuplicates(const TVector<std::pair<TKey, const for (size_t i = 0; i < layers.size(); ++i) { auto& layer = layers[i]; bool exists = false; - for (auto &loc: layer.second->Locations) { + for (auto& loc : layer.second->Locations) { if (loc.System != system || loc.Cluster != cluster) { continue; } @@ -324,7 +317,7 @@ TMaybe<TVector<TLocations>> RemoveDuplicates(const TVector<std::pair<TKey, const if (i && !layers[i].second->Parent) { TStringBuilder err; err << "Found base layer, that differs from another base layer (there are no common paths). Choises ["; - for (auto &loc: layers[i].second->Locations) { + for (auto& loc : layers[i].second->Locations) { if (loc.System != system || loc.Cluster != cluster) { continue; } @@ -337,7 +330,7 @@ TMaybe<TVector<TLocations>> RemoveDuplicates(const TVector<std::pair<TKey, const } result.emplace_back(); } - for (auto &loc: layers[i].second->Locations) { + for (auto& loc : layers[i].second->Locations) { if (loc.System != system || loc.Cluster != cluster) { continue; } @@ -350,4 +343,4 @@ TMaybe<TVector<TLocations>> RemoveDuplicates(const TVector<std::pair<TKey, const ILayersRegistryPtr MakeLayersRegistry(const THashMap<TString, IRemoteLayerProviderPtr>& remoteProviders, const THashMap<TString, ILayersIntegrationPtr>& integrations) { return MakeIntrusive<TLayersRegistry>(remoteProviders, integrations); } -} +} // namespace NYql::NLayers diff --git a/yql/essentials/core/layers/layers.h b/yql/essentials/core/layers/layers.h index 121fb7c2d79..d1e91771459 100644 --- a/yql/essentials/core/layers/layers.h +++ b/yql/essentials/core/layers/layers.h @@ -8,7 +8,7 @@ namespace NYql::NLayers { using TLayerOrder = TVector<TString>; -class ILayersRegistry : public TThrRefBase { +class ILayersRegistry: public TThrRefBase { public: virtual TMaybe<TVector<TKey>> ResolveLogicalLayers(const TVector<TLayerOrder>& orders, TExprContext& ctx) const = 0; virtual TMaybe<TLocations> ResolveLayers(const TVector<TKey>& order, const TString& system, const TString& cluster, TExprContext& ctx) const = 0; @@ -20,9 +20,8 @@ public: }; using ILayersRegistryPtr = TIntrusivePtr<ILayersRegistry>; - // remove duplicates when cluster and system is fixed TMaybe<TVector<TLocations>> RemoveDuplicates(const TVector<std::pair<TKey, const TLayerInfo*>>& layers, TStringBuf system, const TString& cluster, TExprContext& ctx); ILayersRegistryPtr MakeLayersRegistry(const THashMap<TString, IRemoteLayerProviderPtr>& remoteProviders, const THashMap<TString, ILayersIntegrationPtr>& integrations); -} +} // namespace NYql::NLayers diff --git a/yql/essentials/core/layers/layers_fwd.h b/yql/essentials/core/layers/layers_fwd.h index 701dafc7234..fbef115ca06 100644 --- a/yql/essentials/core/layers/layers_fwd.h +++ b/yql/essentials/core/layers/layers_fwd.h @@ -56,7 +56,7 @@ struct TLayerInfo { TString Url; TMaybe<TKey> Parent; }; -} +} // namespace NYql::NLayers template <> struct THash<NYql::NLayers::TKey> { diff --git a/yql/essentials/core/layers/layers_integration.h b/yql/essentials/core/layers/layers_integration.h index 93271d93804..59794886465 100644 --- a/yql/essentials/core/layers/layers_integration.h +++ b/yql/essentials/core/layers/layers_integration.h @@ -6,7 +6,7 @@ namespace NYql::NLayers { -class ILayersIntegration : public TThrRefBase { +class ILayersIntegration: public TThrRefBase { public: virtual TMaybe<TLocations> ResolveLayers(const TVector<TKey>& order, const TString& cluster, NYql::TExprContext& ctx) const = 0; virtual bool UpdateLayerCache(const TKey& key, const TLayerInfo& layer, NYql::TExprContext& ctx) = 0; @@ -16,4 +16,4 @@ public: }; using ILayersIntegrationPtr = TIntrusivePtr<ILayersIntegration>; -} +} // namespace NYql::NLayers diff --git a/yql/essentials/core/layers/layers_ut.cpp b/yql/essentials/core/layers/layers_ut.cpp index 4d9c31bd323..fd5679d162c 100644 --- a/yql/essentials/core/layers/layers_ut.cpp +++ b/yql/essentials/core/layers/layers_ut.cpp @@ -4,7 +4,7 @@ using namespace NYql::NLayers; -class TDummyRemote : public IRemoteLayerProvider { +class TDummyRemote: public IRemoteLayerProvider { public: NThreading::TFuture<TLayerInfo> GetLayerInfo(const TMaybe<TString>& parent, const TString& url) const override { if (parent) { @@ -12,67 +12,54 @@ public: } if (url == "dummy://1") { return NThreading::MakeFuture<TLayerInfo>(TLayerInfo{ - .Locations={ + .Locations = { TLocation{ - .System="yt", - .Cluster="hahn", - .Path="2" - }, + .System = "yt", + .Cluster = "hahn", + .Path = "2"}, TLocation{ - .System="yt", - .Cluster="hahn", - .Path="3" - } - }, - .Parent=TKey({}, "dummy://2") - }); + .System = "yt", + .Cluster = "hahn", + .Path = "3"}}, + .Parent = TKey({}, "dummy://2")}); } if (url == "dummy://2") { return NThreading::MakeFuture<TLayerInfo>(TLayerInfo{ - .Locations={ + .Locations = { TLocation{ - .System="yt", - .Cluster="hahn", - .Path="3" - }, + .System = "yt", + .Cluster = "hahn", + .Path = "3"}, TLocation{ - .System="yt", - .Cluster="hahn", - .Path="4" - } - }, - .Parent=TKey({}, "dummy://3") - }); + .System = "yt", + .Cluster = "hahn", + .Path = "4"}}, + .Parent = TKey({}, "dummy://3")}); } if (url == "dummy://3") { return NThreading::MakeFuture<TLayerInfo>(TLayerInfo{ - .Locations={ + .Locations = { TLocation{ - .System="yt", - .Cluster="hahn", - .Path="1" - }, + .System = "yt", + .Cluster = "hahn", + .Path = "1"}, TLocation{ - .System="yt", - .Cluster="hahn", - .Path="2" - } - } - }); + .System = "yt", + .Cluster = "hahn", + .Path = "2"}}}); } throw yexception() << "???"; } }; -class TDummyIntegration : public ILayersIntegration { +class TDummyIntegration: public ILayersIntegration { public: - TMaybe<TVector<TLocation>> ResolveLayers(const TVector<TKey>& order, const TString& cluster, NYql::TExprContext& ctx) const override { TVector<std::pair<TKey, const TLayerInfo*>> infos; infos.reserve(order.size()); - for (auto &e: order) { + for (auto& e : order) { infos.emplace_back(e, Data_.FindPtr(e)); } auto layers = RemoveDuplicates(infos, "yt", cluster, ctx); @@ -81,7 +68,7 @@ public: } TVector<TLocation> result; result.reserve(layers->size()); - for (auto &e: *layers) { + for (auto& e : *layers) { result.emplace_back(e.front()); } return result; @@ -96,8 +83,7 @@ public: return true; } - void RemoveLayerByName(const TString& ) override { - + void RemoveLayerByName(const TString&) override { } private: @@ -105,63 +91,57 @@ private: }; ILayersRegistryPtr MakeRegistry() { - return MakeLayersRegistry({ - {"dummy", MakeIntrusive<TDummyRemote>()} - }, - { - {"yt", MakeIntrusive<TDummyIntegration>()} - } - ); + return MakeLayersRegistry({{"dummy", MakeIntrusive<TDummyRemote>()}}, + {{"yt", MakeIntrusive<TDummyIntegration>()}}); }; Y_UNIT_TEST_SUITE(TLayers) { - Y_UNIT_TEST(InvariantsTest) { - auto reg = MakeRegistry(); - auto ctx = NYql::TExprContext(); - UNIT_ASSERT(reg->AddLayer("11", {}, {}, ctx)); - UNIT_ASSERT(!reg->AddLayer("11", {}, {}, ctx)); - UNIT_ASSERT(reg->AddLayer("1", {}, {}, ctx)); - - UNIT_ASSERT(reg->AddLayer("Pen", {}, {}, ctx)); - UNIT_ASSERT(reg->AddLayer("ApplePen", "Pen", {}, ctx)); - UNIT_ASSERT(reg->AddLayer("PineappleApplePen", "ApplePen", {}, ctx)); - auto layers = reg->ResolveLogicalLayers({{"Pen", "PineappleApplePen"}}, ctx); - UNIT_ASSERT(layers); - TVector<TString> exp = {"Pen", "ApplePen", "PineappleApplePen"}; - UNIT_ASSERT_EQUAL(layers->size(), exp.size()); - for (size_t i = 0; i < layers->size(); ++i) { - UNIT_ASSERT((*layers)[i].Name); - UNIT_ASSERT_STRINGS_EQUAL(exp[i], *((*layers)[i].Name)); - } - layers = reg->ResolveLogicalLayers({{"PineappleApplePen"}}, ctx); - UNIT_ASSERT(layers); - UNIT_ASSERT_EQUAL(layers->size(), exp.size()); - for (size_t i = 0; i < layers->size(); ++i) { - UNIT_ASSERT((*layers)[i].Name); - UNIT_ASSERT_STRINGS_EQUAL(exp[i], *((*layers)[i].Name)); - } - UNIT_ASSERT(reg->AddLayer("foo", {}, "dummy://1", ctx)); - - layers = reg->ResolveLogicalLayers({{"foo"}}, ctx); - UNIT_ASSERT(layers); - auto resolved = reg->ResolveLayers(*layers, "yt", "hahn", ctx); - UNIT_ASSERT(resolved); - UNIT_ASSERT_EQUAL(resolved->size(), 1); - - UNIT_ASSERT(reg->AddLayer("bar", {}, "dummy://2", ctx)); - - layers = reg->ResolveLogicalLayers({{"bar"}}, ctx); - UNIT_ASSERT(layers); - resolved = reg->ResolveLayers(*layers, "yt", "hahn", ctx); - UNIT_ASSERT(resolved); - UNIT_ASSERT_EQUAL(resolved->size(), 2); - - layers = reg->ResolveLogicalLayers({{"bar", "foo"}}, ctx); - UNIT_ASSERT(layers); - resolved = reg->ResolveLayers(*layers, "yt", "hahn", ctx); - UNIT_ASSERT(resolved); - UNIT_ASSERT_EQUAL(resolved->size(), 1); - +Y_UNIT_TEST(InvariantsTest) { + auto reg = MakeRegistry(); + auto ctx = NYql::TExprContext(); + UNIT_ASSERT(reg->AddLayer("11", {}, {}, ctx)); + UNIT_ASSERT(!reg->AddLayer("11", {}, {}, ctx)); + UNIT_ASSERT(reg->AddLayer("1", {}, {}, ctx)); + + UNIT_ASSERT(reg->AddLayer("Pen", {}, {}, ctx)); + UNIT_ASSERT(reg->AddLayer("ApplePen", "Pen", {}, ctx)); + UNIT_ASSERT(reg->AddLayer("PineappleApplePen", "ApplePen", {}, ctx)); + auto layers = reg->ResolveLogicalLayers({{"Pen", "PineappleApplePen"}}, ctx); + UNIT_ASSERT(layers); + TVector<TString> exp = {"Pen", "ApplePen", "PineappleApplePen"}; + UNIT_ASSERT_EQUAL(layers->size(), exp.size()); + for (size_t i = 0; i < layers->size(); ++i) { + UNIT_ASSERT((*layers)[i].Name); + UNIT_ASSERT_STRINGS_EQUAL(exp[i], *((*layers)[i].Name)); } - + layers = reg->ResolveLogicalLayers({{"PineappleApplePen"}}, ctx); + UNIT_ASSERT(layers); + UNIT_ASSERT_EQUAL(layers->size(), exp.size()); + for (size_t i = 0; i < layers->size(); ++i) { + UNIT_ASSERT((*layers)[i].Name); + UNIT_ASSERT_STRINGS_EQUAL(exp[i], *((*layers)[i].Name)); + } + UNIT_ASSERT(reg->AddLayer("foo", {}, "dummy://1", ctx)); + + layers = reg->ResolveLogicalLayers({{"foo"}}, ctx); + UNIT_ASSERT(layers); + auto resolved = reg->ResolveLayers(*layers, "yt", "hahn", ctx); + UNIT_ASSERT(resolved); + UNIT_ASSERT_EQUAL(resolved->size(), 1); + + UNIT_ASSERT(reg->AddLayer("bar", {}, "dummy://2", ctx)); + + layers = reg->ResolveLogicalLayers({{"bar"}}, ctx); + UNIT_ASSERT(layers); + resolved = reg->ResolveLayers(*layers, "yt", "hahn", ctx); + UNIT_ASSERT(resolved); + UNIT_ASSERT_EQUAL(resolved->size(), 2); + + layers = reg->ResolveLogicalLayers({{"bar", "foo"}}, ctx); + UNIT_ASSERT(layers); + resolved = reg->ResolveLayers(*layers, "yt", "hahn", ctx); + UNIT_ASSERT(resolved); + UNIT_ASSERT_EQUAL(resolved->size(), 1); } + +} // Y_UNIT_TEST_SUITE(TLayers) diff --git a/yql/essentials/core/layers/remote_layer_provider.h b/yql/essentials/core/layers/remote_layer_provider.h index 02cd5820840..2e2928615a2 100644 --- a/yql/essentials/core/layers/remote_layer_provider.h +++ b/yql/essentials/core/layers/remote_layer_provider.h @@ -4,11 +4,11 @@ #include <library/cpp/threading/future/core/future.h> namespace NYql::NLayers { -class IRemoteLayerProvider : public TThrRefBase { +class IRemoteLayerProvider: public TThrRefBase { public: virtual NThreading::TFuture<TLayerInfo> GetLayerInfo(const TMaybe<TString>& parent, const TString& url) const = 0; virtual ~IRemoteLayerProvider() = default; }; using IRemoteLayerProviderPtr = TIntrusivePtr<IRemoteLayerProvider>; -} +} // namespace NYql::NLayers diff --git a/yql/essentials/core/layers/utils.h b/yql/essentials/core/layers/utils.h index 1be5d4fc9d4..acecec5304d 100644 --- a/yql/essentials/core/layers/utils.h +++ b/yql/essentials/core/layers/utils.h @@ -6,4 +6,4 @@ namespace NYql::NLayers { TMaybe<TVector<TLocations>> RemoveDuplicates(const TVector<std::pair<TKey, const TLayerInfo*>>& layers, TStringBuf system, const TString& cluster, TExprContext& ctx); -} +} // namespace NYql::NLayers diff --git a/yql/essentials/core/minsketch/ut/ya.make b/yql/essentials/core/minsketch/ut/ya.make index 2a7aa4e9dd4..d951550facc 100644 --- a/yql/essentials/core/minsketch/ut/ya.make +++ b/yql/essentials/core/minsketch/ut/ya.make @@ -1,7 +1,5 @@ UNITTEST_FOR(yql/essentials/core/minsketch) -ENABLE(YQL_STYLE_CPP) - SIZE(MEDIUM) SRCS( diff --git a/yql/essentials/core/minsketch/ya.make b/yql/essentials/core/minsketch/ya.make index dcf7d34baea..f854fcfa562 100644 --- a/yql/essentials/core/minsketch/ya.make +++ b/yql/essentials/core/minsketch/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( count_min_sketch.h count_min_sketch.cpp diff --git a/yql/essentials/core/peephole_opt/ya.make b/yql/essentials/core/peephole_opt/ya.make index 9d963b25e47..411f167492a 100644 --- a/yql/essentials/core/peephole_opt/ya.make +++ b/yql/essentials/core/peephole_opt/ya.make @@ -1,5 +1,7 @@ LIBRARY() +ENABLE(SKIP_YQL_STYLE_CPP) + SRCS( yql_opt_json_peephole_physical.h yql_opt_json_peephole_physical.cpp diff --git a/yql/essentials/core/pg_ext/ya.make b/yql/essentials/core/pg_ext/ya.make index 487c9b84c8b..78e341ca532 100644 --- a/yql/essentials/core/pg_ext/ya.make +++ b/yql/essentials/core/pg_ext/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( yql_pg_ext.cpp ) diff --git a/yql/essentials/core/pg_settings/ya.make b/yql/essentials/core/pg_settings/ya.make index f87d9df0138..46ea1d0eaad 100644 --- a/yql/essentials/core/pg_settings/ya.make +++ b/yql/essentials/core/pg_settings/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( guc_settings.cpp ) diff --git a/yql/essentials/core/progress_merger/ya.make b/yql/essentials/core/progress_merger/ya.make index 572d6d7a97c..ba5bf32b7c9 100644 --- a/yql/essentials/core/progress_merger/ya.make +++ b/yql/essentials/core/progress_merger/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( progress_merger.h progress_merger.cpp diff --git a/yql/essentials/core/qplayer/storage/file/ut/ya.make b/yql/essentials/core/qplayer/storage/file/ut/ya.make index 9cd0a939311..e97bd625a6a 100644 --- a/yql/essentials/core/qplayer/storage/file/ut/ya.make +++ b/yql/essentials/core/qplayer/storage/file/ut/ya.make @@ -1,7 +1,5 @@ UNITTEST_FOR(yql/essentials/core/qplayer/storage/file) -ENABLE(YQL_STYLE_CPP) - SRCS( yql_qstorage_file_ut.cpp ) diff --git a/yql/essentials/core/qplayer/storage/file/ya.make b/yql/essentials/core/qplayer/storage/file/ya.make index 06979197a70..b0e5371b51d 100644 --- a/yql/essentials/core/qplayer/storage/file/ya.make +++ b/yql/essentials/core/qplayer/storage/file/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( yql_qstorage_file.cpp ) diff --git a/yql/essentials/core/qplayer/storage/interface/ya.make b/yql/essentials/core/qplayer/storage/interface/ya.make index da6d4cca401..4b35b17c954 100644 --- a/yql/essentials/core/qplayer/storage/interface/ya.make +++ b/yql/essentials/core/qplayer/storage/interface/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( yql_qstorage.cpp ) diff --git a/yql/essentials/core/qplayer/storage/memory/ut/ya.make b/yql/essentials/core/qplayer/storage/memory/ut/ya.make index 9be76e2d227..9776c0cafcb 100644 --- a/yql/essentials/core/qplayer/storage/memory/ut/ya.make +++ b/yql/essentials/core/qplayer/storage/memory/ut/ya.make @@ -1,7 +1,5 @@ UNITTEST_FOR(yql/essentials/core/qplayer/storage/memory) -ENABLE(YQL_STYLE_CPP) - SRCS( yql_qstorage_memory_ut.cpp ) diff --git a/yql/essentials/core/qplayer/storage/memory/ya.make b/yql/essentials/core/qplayer/storage/memory/ya.make index 72a3e18a9f2..96869833b1b 100644 --- a/yql/essentials/core/qplayer/storage/memory/ya.make +++ b/yql/essentials/core/qplayer/storage/memory/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( yql_qstorage_memory.cpp ) diff --git a/yql/essentials/core/qplayer/storage/ut_common/ya.make b/yql/essentials/core/qplayer/storage/ut_common/ya.make index 10c29157287..53ce30c8eea 100644 --- a/yql/essentials/core/qplayer/storage/ut_common/ya.make +++ b/yql/essentials/core/qplayer/storage/ut_common/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( yql_qstorage_ut_common.cpp ) diff --git a/yql/essentials/core/qplayer/storage/ydb/ut/ya.make b/yql/essentials/core/qplayer/storage/ydb/ut/ya.make index 6dc68a703ec..70285a5126e 100644 --- a/yql/essentials/core/qplayer/storage/ydb/ut/ya.make +++ b/yql/essentials/core/qplayer/storage/ydb/ut/ya.make @@ -2,8 +2,6 @@ IF (NOT OPENSOURCE) UNITTEST_FOR(yql/essentials/core/qplayer/storage/ydb) -ENABLE(YQL_STYLE_CPP) - SRCS( yql_qstorage_ydb_ut.cpp ) diff --git a/yql/essentials/core/qplayer/storage/ydb/ya.make b/yql/essentials/core/qplayer/storage/ydb/ya.make index 80af7c36319..45e796bf675 100644 --- a/yql/essentials/core/qplayer/storage/ydb/ya.make +++ b/yql/essentials/core/qplayer/storage/ydb/ya.make @@ -2,8 +2,6 @@ IF (NOT OPENSOURCE) LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( yql_qstorage_ydb.cpp ) diff --git a/yql/essentials/core/qplayer/udf_resolver/ya.make b/yql/essentials/core/qplayer/udf_resolver/ya.make index 7aa173177d6..8d0924deff4 100644 --- a/yql/essentials/core/qplayer/udf_resolver/ya.make +++ b/yql/essentials/core/qplayer/udf_resolver/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( yql_qplayer_udf_resolver.cpp ) diff --git a/yql/essentials/core/qplayer/url_lister/ya.make b/yql/essentials/core/qplayer/url_lister/ya.make index b2687b5559c..064d762248d 100644 --- a/yql/essentials/core/qplayer/url_lister/ya.make +++ b/yql/essentials/core/qplayer/url_lister/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( qplayer_url_lister_manager.cpp ) diff --git a/yql/essentials/core/services/mounts/ya.make b/yql/essentials/core/services/mounts/ya.make index b120e55f7a8..9701636fda0 100644 --- a/yql/essentials/core/services/mounts/ya.make +++ b/yql/essentials/core/services/mounts/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( yql_mounts.h yql_mounts.cpp diff --git a/yql/essentials/core/services/ya.make b/yql/essentials/core/services/ya.make index 7fa88f0535e..017ca77aaca 100644 --- a/yql/essentials/core/services/ya.make +++ b/yql/essentials/core/services/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( yql_eval_expr.cpp yql_eval_expr.h diff --git a/yql/essentials/core/sql_types/ut/ya.make b/yql/essentials/core/sql_types/ut/ya.make index 0c9dab63dd6..363e4dc4a44 100644 --- a/yql/essentials/core/sql_types/ut/ya.make +++ b/yql/essentials/core/sql_types/ut/ya.make @@ -1,7 +1,5 @@ UNITTEST_FOR(yql/essentials/core/sql_types) -ENABLE(YQL_STYLE_CPP) - SRCS( match_recognize_ut.cpp normalize_name_ut.cpp diff --git a/yql/essentials/core/sql_types/ya.make b/yql/essentials/core/sql_types/ya.make index 5b18299a186..fae32738bd3 100644 --- a/yql/essentials/core/sql_types/ya.make +++ b/yql/essentials/core/sql_types/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( block.h match_recognize.h diff --git a/yql/essentials/core/type_ann/ya.make b/yql/essentials/core/type_ann/ya.make index 1611e8750fc..02e206b4f86 100644 --- a/yql/essentials/core/type_ann/ya.make +++ b/yql/essentials/core/type_ann/ya.make @@ -1,5 +1,7 @@ LIBRARY() +ENABLE(SKIP_YQL_STYLE_CPP) + SRCS( type_ann_blocks.cpp type_ann_blocks.h diff --git a/yql/essentials/core/url_lister/interface/ya.make b/yql/essentials/core/url_lister/interface/ya.make index 7030a83772f..5489f4e95de 100644 --- a/yql/essentials/core/url_lister/interface/ya.make +++ b/yql/essentials/core/url_lister/interface/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( url_lister.cpp url_lister_manager.cpp diff --git a/yql/essentials/core/url_lister/ya.make b/yql/essentials/core/url_lister/ya.make index 41e2c61defb..de195e841c5 100644 --- a/yql/essentials/core/url_lister/ya.make +++ b/yql/essentials/core/url_lister/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( url_lister_manager.cpp ) diff --git a/yql/essentials/core/url_preprocessing/interface/ya.make b/yql/essentials/core/url_preprocessing/interface/ya.make index eb5b3fec9ad..26c9fe6bc97 100644 --- a/yql/essentials/core/url_preprocessing/interface/ya.make +++ b/yql/essentials/core/url_preprocessing/interface/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( url_preprocessing.cpp ) diff --git a/yql/essentials/core/url_preprocessing/ya.make b/yql/essentials/core/url_preprocessing/ya.make index 06ee9720aa1..fb6bcccae6b 100644 --- a/yql/essentials/core/url_preprocessing/ya.make +++ b/yql/essentials/core/url_preprocessing/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( url_mapper.cpp pattern_group.cpp diff --git a/yql/essentials/core/user_data/ya.make b/yql/essentials/core/user_data/ya.make index 5994216ee76..a73d75bae61 100644 --- a/yql/essentials/core/user_data/ya.make +++ b/yql/essentials/core/user_data/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( yql_user_data.cpp ) diff --git a/yql/essentials/core/ut/ya.make b/yql/essentials/core/ut/ya.make index 210c4320449..fc2cdabcb85 100644 --- a/yql/essentials/core/ut/ya.make +++ b/yql/essentials/core/ut/ya.make @@ -1,7 +1,5 @@ UNITTEST_FOR(yql/essentials/core) -ENABLE(YQL_STYLE_CPP) - SRCS( yql_column_order_ut.cpp yql_default_valid_value_ut.cpp diff --git a/yql/essentials/core/ya.make b/yql/essentials/core/ya.make index c521689d685..e8f622b4942 100644 --- a/yql/essentials/core/ya.make +++ b/yql/essentials/core/ya.make @@ -1,5 +1,7 @@ LIBRARY() +ENABLE(SKIP_YQL_STYLE_CPP) + SRCS( yql_aggregate_expander.cpp yql_callable_transform.cpp diff --git a/yql/essentials/linters.make.inc b/yql/essentials/linters.make.inc index d7695c938e3..b6e2833169c 100644 --- a/yql/essentials/linters.make.inc +++ b/yql/essentials/linters.make.inc @@ -1,3 +1,3 @@ -IF (MODULE_LANG == CPP AND YQL_STYLE_CPP) +IF (MODULE_LANG == CPP AND NOT SKIP_YQL_STYLE_CPP) STYLE_CPP(CONFIG_TYPE .clang-format) ENDIF() diff --git a/yql/essentials/minikql/arrow/ut/ya.make b/yql/essentials/minikql/arrow/ut/ya.make index 1d680afda10..4829437272d 100644 --- a/yql/essentials/minikql/arrow/ut/ya.make +++ b/yql/essentials/minikql/arrow/ut/ya.make @@ -1,7 +1,5 @@ UNITTEST_FOR(yql/essentials/minikql/arrow) -ENABLE(YQL_STYLE_CPP) - TIMEOUT(600) SIZE(MEDIUM) diff --git a/yql/essentials/minikql/arrow/ya.make b/yql/essentials/minikql/arrow/ya.make index 434a2659aa7..a589e0faef4 100644 --- a/yql/essentials/minikql/arrow/ya.make +++ b/yql/essentials/minikql/arrow/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( arrow_util.cpp mkql_functions.cpp diff --git a/yql/essentials/minikql/benchmark/pack_num/ya.make b/yql/essentials/minikql/benchmark/pack_num/ya.make index 5065d961007..d0247fd9db9 100644 --- a/yql/essentials/minikql/benchmark/pack_num/ya.make +++ b/yql/essentials/minikql/benchmark/pack_num/ya.make @@ -1,7 +1,5 @@ Y_BENCHMARK() -ENABLE(YQL_STYLE_CPP) - ALLOCATOR(B) TIMEOUT(1800) diff --git a/yql/essentials/minikql/codegen/llvm16/ut/ya.make b/yql/essentials/minikql/codegen/llvm16/ut/ya.make index 3458f72faa9..da312f14db2 100644 --- a/yql/essentials/minikql/codegen/llvm16/ut/ya.make +++ b/yql/essentials/minikql/codegen/llvm16/ut/ya.make @@ -1,7 +1,5 @@ UNITTEST() -ENABLE(YQL_STYLE_CPP) - PEERDIR( contrib/libs/llvm16/lib/IR contrib/libs/llvm16/lib/ExecutionEngine/MCJIT diff --git a/yql/essentials/minikql/codegen/llvm16/ya.make b/yql/essentials/minikql/codegen/llvm16/ya.make index 9eefb92b93c..1b214397d89 100644 --- a/yql/essentials/minikql/codegen/llvm16/ya.make +++ b/yql/essentials/minikql/codegen/llvm16/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - PEERDIR( contrib/libs/llvm16/lib/IR contrib/libs/llvm16/lib/ExecutionEngine/MCJIT diff --git a/yql/essentials/minikql/codegen/no_llvm/ya.make b/yql/essentials/minikql/codegen/no_llvm/ya.make index ff86eb352e0..b3e3de08d11 100644 --- a/yql/essentials/minikql/codegen/no_llvm/ya.make +++ b/yql/essentials/minikql/codegen/no_llvm/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCDIR( yql/essentials/minikql/codegen ) diff --git a/yql/essentials/minikql/codegen/ut/ya.make.inc b/yql/essentials/minikql/codegen/ut/ya.make.inc index 31acdd93803..c1eacbb2b6e 100644 --- a/yql/essentials/minikql/codegen/ut/ya.make.inc +++ b/yql/essentials/minikql/codegen/ut/ya.make.inc @@ -1,5 +1,3 @@ -ENABLE(YQL_STYLE_CPP) - ADDINCL( ${ARCADIA_BUILD_ROOT}/${MODDIR} ) diff --git a/yql/essentials/minikql/comp_nodes/benchmark/block_coalesce/ya.make b/yql/essentials/minikql/comp_nodes/benchmark/block_coalesce/ya.make index ee860687266..832f401638c 100644 --- a/yql/essentials/minikql/comp_nodes/benchmark/block_coalesce/ya.make +++ b/yql/essentials/minikql/comp_nodes/benchmark/block_coalesce/ya.make @@ -1,7 +1,5 @@ G_BENCHMARK() -ENABLE(YQL_STYLE_CPP) - PEERDIR( yql/essentials/public/udf yql/essentials/public/udf/arrow diff --git a/yql/essentials/minikql/comp_nodes/ut/ya.make.inc b/yql/essentials/minikql/comp_nodes/ut/ya.make.inc index 6dae288eca6..5c1efa12391 100644 --- a/yql/essentials/minikql/comp_nodes/ut/ya.make.inc +++ b/yql/essentials/minikql/comp_nodes/ut/ya.make.inc @@ -1,7 +1,5 @@ FORK_SUBTESTS() -ENABLE(YQL_STYLE_CPP) - SPLIT_FACTOR(60) IF (SANITIZER_TYPE == "address") diff --git a/yql/essentials/minikql/comp_nodes/ya.make.inc b/yql/essentials/minikql/comp_nodes/ya.make.inc index fbf62e130a9..7f91cbcdd16 100644 --- a/yql/essentials/minikql/comp_nodes/ya.make.inc +++ b/yql/essentials/minikql/comp_nodes/ya.make.inc @@ -1,5 +1,3 @@ -ENABLE(YQL_STYLE_CPP) - INCLUDE(${ARCADIA_ROOT}/yql/essentials/minikql/computation/header.ya.make.inc) INCLUDE(${ARCADIA_ROOT}/yql/essentials/minikql/invoke_builtins/header.ya.make.inc) diff --git a/yql/essentials/minikql/computation/ut/ya.make.inc b/yql/essentials/minikql/computation/ut/ya.make.inc index a534036e79a..cccf90fec21 100644 --- a/yql/essentials/minikql/computation/ut/ya.make.inc +++ b/yql/essentials/minikql/computation/ut/ya.make.inc @@ -1,7 +1,5 @@ FORK_SUBTESTS() -ENABLE(YQL_STYLE_CPP) - IF (SANITIZER_TYPE == "thread" OR WITH_VALGRIND) TIMEOUT(1800) SIZE(LARGE) diff --git a/yql/essentials/minikql/computation/ya.make b/yql/essentials/minikql/computation/ya.make index b6f30c06376..12f1e9d0ad1 100644 --- a/yql/essentials/minikql/computation/ya.make +++ b/yql/essentials/minikql/computation/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( mkql_block_builder.cpp mkql_block_impl.cpp diff --git a/yql/essentials/minikql/computation/ya.make.inc b/yql/essentials/minikql/computation/ya.make.inc index b2ddc894290..3110864582c 100644 --- a/yql/essentials/minikql/computation/ya.make.inc +++ b/yql/essentials/minikql/computation/ya.make.inc @@ -1,5 +1,3 @@ -ENABLE(YQL_STYLE_CPP) - INCLUDE(header.ya.make.inc) diff --git a/yql/essentials/minikql/datetime/ya.make b/yql/essentials/minikql/datetime/ya.make index e7e1654b7bc..18613748a94 100644 --- a/yql/essentials/minikql/datetime/ya.make +++ b/yql/essentials/minikql/datetime/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( datetime.cpp ) diff --git a/yql/essentials/minikql/dom/ut/ya.make b/yql/essentials/minikql/dom/ut/ya.make index 63c1fceb1c6..ef268ff5e27 100644 --- a/yql/essentials/minikql/dom/ut/ya.make +++ b/yql/essentials/minikql/dom/ut/ya.make @@ -1,8 +1,6 @@ IF (NOT WINDOWS) UNITTEST_FOR(yql/essentials/minikql/dom) - ENABLE(YQL_STYLE_CPP) - SRCS( yson_ut.cpp json_ut.cpp diff --git a/yql/essentials/minikql/dom/ya.make b/yql/essentials/minikql/dom/ya.make index c6ff4da626f..772eb55dc61 100644 --- a/yql/essentials/minikql/dom/ya.make +++ b/yql/essentials/minikql/dom/ya.make @@ -2,8 +2,6 @@ LIBRARY() YQL_ABI_VERSION(2 28 0) -ENABLE(YQL_STYLE_CPP) - PEERDIR( library/cpp/containers/stack_vector library/cpp/json diff --git a/yql/essentials/minikql/invoke_builtins/ut/ya.make.inc b/yql/essentials/minikql/invoke_builtins/ut/ya.make.inc index 9990713f01e..11db7a49986 100644 --- a/yql/essentials/minikql/invoke_builtins/ut/ya.make.inc +++ b/yql/essentials/minikql/invoke_builtins/ut/ya.make.inc @@ -1,7 +1,5 @@ FORK_SUBTESTS() -ENABLE(YQL_STYLE_CPP) - IF (SANITIZER_TYPE == "thread" OR WITH_VALGRIND) TIMEOUT(1800) SIZE(LARGE) diff --git a/yql/essentials/minikql/invoke_builtins/ya.make.inc b/yql/essentials/minikql/invoke_builtins/ya.make.inc index b631a7268c0..70dac054d03 100644 --- a/yql/essentials/minikql/invoke_builtins/ya.make.inc +++ b/yql/essentials/minikql/invoke_builtins/ya.make.inc @@ -1,5 +1,3 @@ -ENABLE(YQL_STYLE_CPP) - INCLUDE(header.ya.make.inc) SET(ORIG_SRC_DIR yql/essentials/minikql/invoke_builtins) diff --git a/yql/essentials/minikql/jsonpath/benchmark/ya.make b/yql/essentials/minikql/jsonpath/benchmark/ya.make index fb0d60287a9..221a11d40e3 100644 --- a/yql/essentials/minikql/jsonpath/benchmark/ya.make +++ b/yql/essentials/minikql/jsonpath/benchmark/ya.make @@ -1,7 +1,5 @@ Y_BENCHMARK(jsonpath-benchmark) -ENABLE(YQL_STYLE_CPP) - PEERDIR( library/cpp/json yql/essentials/minikql/dom diff --git a/yql/essentials/minikql/jsonpath/parser/ya.make b/yql/essentials/minikql/jsonpath/parser/ya.make index 7c4a450a514..8280ec9d12b 100644 --- a/yql/essentials/minikql/jsonpath/parser/ya.make +++ b/yql/essentials/minikql/jsonpath/parser/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - IF (ARCH_X86_64) CFLAGS( -DYDB_REWRAPPER_LIB_ID=kHyperscan diff --git a/yql/essentials/minikql/jsonpath/rewrapper/hyperscan/ya.make b/yql/essentials/minikql/jsonpath/rewrapper/hyperscan/ya.make index 7fe2f6ee801..4cc999c0646 100644 --- a/yql/essentials/minikql/jsonpath/rewrapper/hyperscan/ya.make +++ b/yql/essentials/minikql/jsonpath/rewrapper/hyperscan/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - PEERDIR( library/cpp/regex/hyperscan yql/essentials/minikql/jsonpath/rewrapper diff --git a/yql/essentials/minikql/jsonpath/rewrapper/re2/ya.make b/yql/essentials/minikql/jsonpath/rewrapper/re2/ya.make index f88b434a42d..5520d19414d 100644 --- a/yql/essentials/minikql/jsonpath/rewrapper/re2/ya.make +++ b/yql/essentials/minikql/jsonpath/rewrapper/re2/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - PEERDIR( contrib/libs/re2 yql/essentials/minikql/jsonpath/rewrapper diff --git a/yql/essentials/minikql/jsonpath/rewrapper/ut/ya.make b/yql/essentials/minikql/jsonpath/rewrapper/ut/ya.make index 0727e1d3377..26f57235a81 100644 --- a/yql/essentials/minikql/jsonpath/rewrapper/ut/ya.make +++ b/yql/essentials/minikql/jsonpath/rewrapper/ut/ya.make @@ -1,7 +1,5 @@ UNITTEST_FOR(yql/essentials/minikql/jsonpath/rewrapper) -ENABLE(YQL_STYLE_CPP) - IF(ARCH_X86_64) SRCS( hyperscan_ut.cpp diff --git a/yql/essentials/minikql/jsonpath/rewrapper/ya.make b/yql/essentials/minikql/jsonpath/rewrapper/ya.make index c9abce898e3..92e7b8e9b9b 100644 --- a/yql/essentials/minikql/jsonpath/rewrapper/ya.make +++ b/yql/essentials/minikql/jsonpath/rewrapper/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - PEERDIR( yql/essentials/minikql/jsonpath/rewrapper/proto ) diff --git a/yql/essentials/minikql/jsonpath/ut/ya.make b/yql/essentials/minikql/jsonpath/ut/ya.make index 0cc51a154d4..aaeef6119eb 100644 --- a/yql/essentials/minikql/jsonpath/ut/ya.make +++ b/yql/essentials/minikql/jsonpath/ut/ya.make @@ -1,7 +1,5 @@ UNITTEST_FOR(yql/essentials/minikql/jsonpath) -ENABLE(YQL_STYLE_CPP) - SRCS( common_ut.cpp examples_ut.cpp diff --git a/yql/essentials/minikql/jsonpath/ya.make b/yql/essentials/minikql/jsonpath/ya.make index 1726ddf29cb..798409e744b 100644 --- a/yql/essentials/minikql/jsonpath/ya.make +++ b/yql/essentials/minikql/jsonpath/ya.make @@ -6,8 +6,6 @@ YQL_ABI_VERSION( 0 ) -ENABLE(YQL_STYLE_CPP) - IF (ARCH_X86_64) PEERDIR( yql/essentials/minikql/jsonpath/rewrapper/hyperscan diff --git a/yql/essentials/minikql/perf/alloc/ya.make b/yql/essentials/minikql/perf/alloc/ya.make index 665cab9925e..6d13270e7e5 100644 --- a/yql/essentials/minikql/perf/alloc/ya.make +++ b/yql/essentials/minikql/perf/alloc/ya.make @@ -1,7 +1,5 @@ PROGRAM() -ENABLE(YQL_STYLE_CPP) - PEERDIR( yql/essentials/minikql yql/essentials/public/udf diff --git a/yql/essentials/minikql/perf/block_groupby/ya.make b/yql/essentials/minikql/perf/block_groupby/ya.make index 4f9bfdaaca6..b68dc9d7422 100644 --- a/yql/essentials/minikql/perf/block_groupby/ya.make +++ b/yql/essentials/minikql/perf/block_groupby/ya.make @@ -1,7 +1,5 @@ PROGRAM() -ENABLE(YQL_STYLE_CPP) - PEERDIR( contrib/libs/apache/arrow yql/essentials/minikql/arrow diff --git a/yql/essentials/minikql/perf/mprefetch/ya.make b/yql/essentials/minikql/perf/mprefetch/ya.make index 480317f3de7..37a0950a434 100644 --- a/yql/essentials/minikql/perf/mprefetch/ya.make +++ b/yql/essentials/minikql/perf/mprefetch/ya.make @@ -1,7 +1,5 @@ PROGRAM() -ENABLE(YQL_STYLE_CPP) - PEERDIR( library/cpp/getopt ) diff --git a/yql/essentials/minikql/perf/mt_param/ya.make b/yql/essentials/minikql/perf/mt_param/ya.make index dd49599f90d..5f4c0faa1b2 100644 --- a/yql/essentials/minikql/perf/mt_param/ya.make +++ b/yql/essentials/minikql/perf/mt_param/ya.make @@ -1,7 +1,5 @@ PROGRAM() -ENABLE(YQL_STYLE_CPP) - PEERDIR( yql/essentials/minikql/comp_nodes/llvm16 yql/essentials/public/udf diff --git a/yql/essentials/minikql/perf/packer/ya.make b/yql/essentials/minikql/perf/packer/ya.make index 5d50689573f..b82c6594449 100644 --- a/yql/essentials/minikql/perf/packer/ya.make +++ b/yql/essentials/minikql/perf/packer/ya.make @@ -1,7 +1,5 @@ PROGRAM() -ENABLE(YQL_STYLE_CPP) - ALLOCATOR(J) PEERDIR( diff --git a/yql/essentials/minikql/perf/param/ya.make b/yql/essentials/minikql/perf/param/ya.make index 0379774cae3..da09fef986c 100644 --- a/yql/essentials/minikql/perf/param/ya.make +++ b/yql/essentials/minikql/perf/param/ya.make @@ -1,7 +1,5 @@ PROGRAM() -ENABLE(YQL_STYLE_CPP) - PEERDIR( yql/essentials/minikql/comp_nodes/llvm16 yql/essentials/public/udf diff --git a/yql/essentials/minikql/perf/presort/ya.make b/yql/essentials/minikql/perf/presort/ya.make index 192b1916124..323f890cefb 100644 --- a/yql/essentials/minikql/perf/presort/ya.make +++ b/yql/essentials/minikql/perf/presort/ya.make @@ -1,7 +1,5 @@ PROGRAM() -ENABLE(YQL_STYLE_CPP) - PEERDIR( library/cpp/presort yql/essentials/minikql/invoke_builtins/llvm16 diff --git a/yql/essentials/minikql/protobuf_udf/ut/ya.make b/yql/essentials/minikql/protobuf_udf/ut/ya.make index 6aff7679b0a..e788d5da8d6 100644 --- a/yql/essentials/minikql/protobuf_udf/ut/ya.make +++ b/yql/essentials/minikql/protobuf_udf/ut/ya.make @@ -2,8 +2,6 @@ IF (NOT OPENSOURCE) UNITTEST_FOR(yql/essentials/minikql/protobuf_udf) -ENABLE(YQL_STYLE_CPP) - SRCS( type_builder_ut.cpp value_builder_ut.cpp diff --git a/yql/essentials/minikql/protobuf_udf/ya.make b/yql/essentials/minikql/protobuf_udf/ya.make index e3e96a2f58a..0a986282481 100644 --- a/yql/essentials/minikql/protobuf_udf/ya.make +++ b/yql/essentials/minikql/protobuf_udf/ya.make @@ -2,8 +2,6 @@ LIBRARY() YQL_ABI_VERSION(2 9 0) -ENABLE(YQL_STYLE_CPP) - SRCS( proto_builder.cpp module.cpp diff --git a/yql/essentials/minikql/sanitizer_ut/ya.make b/yql/essentials/minikql/sanitizer_ut/ya.make index aea1f924292..49697812928 100644 --- a/yql/essentials/minikql/sanitizer_ut/ya.make +++ b/yql/essentials/minikql/sanitizer_ut/ya.make @@ -1,7 +1,5 @@ GTEST() -ENABLE(YQL_STYLE_CPP) - SIZE(MEDIUM) PEERDIR( diff --git a/yql/essentials/minikql/ut/ya.make b/yql/essentials/minikql/ut/ya.make index 47a2174ec68..fa0f14f8d0e 100644 --- a/yql/essentials/minikql/ut/ya.make +++ b/yql/essentials/minikql/ut/ya.make @@ -1,7 +1,5 @@ UNITTEST_FOR(yql/essentials/minikql) -ENABLE(YQL_STYLE_CPP) - FORK_SUBTESTS() IF (SANITIZER_TYPE == "thread" OR WITH_VALGRIND) diff --git a/yql/essentials/minikql/ya.make b/yql/essentials/minikql/ya.make index 6a3f958d387..f611be4b1e6 100644 --- a/yql/essentials/minikql/ya.make +++ b/yql/essentials/minikql/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( aligned_page_pool.cpp aligned_page_pool.h diff --git a/yql/essentials/parser/common/antlr4/ya.make b/yql/essentials/parser/common/antlr4/ya.make index 5468514d977..d74107fe119 100644 --- a/yql/essentials/parser/common/antlr4/ya.make +++ b/yql/essentials/parser/common/antlr4/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - PEERDIR( contrib/libs/antlr4_cpp_runtime yql/essentials/parser/common diff --git a/yql/essentials/parser/common/ya.make b/yql/essentials/parser/common/ya.make index fe825d46d94..290ae7be8b5 100644 --- a/yql/essentials/parser/common/ya.make +++ b/yql/essentials/parser/common/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - PEERDIR( yql/essentials/public/issue yql/essentials/core/issue diff --git a/yql/essentials/parser/lexer_common/ut/ya.make b/yql/essentials/parser/lexer_common/ut/ya.make index 591872e21f1..ab4a9d96ea9 100644 --- a/yql/essentials/parser/lexer_common/ut/ya.make +++ b/yql/essentials/parser/lexer_common/ut/ya.make @@ -1,7 +1,5 @@ UNITTEST_FOR(yql/essentials/parser/lexer_common) -ENABLE(YQL_STYLE_CPP) - PEERDIR( yql/essentials/sql/v1/lexer yql/essentials/sql/v1/lexer/antlr4 diff --git a/yql/essentials/parser/lexer_common/ya.make b/yql/essentials/parser/lexer_common/ya.make index 6434e770444..14573434c47 100644 --- a/yql/essentials/parser/lexer_common/ya.make +++ b/yql/essentials/parser/lexer_common/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - PEERDIR( yql/essentials/public/issue ) diff --git a/yql/essentials/parser/pg_catalog/catalog.cpp b/yql/essentials/parser/pg_catalog/catalog.cpp index 003849e2897..ebdc09126af 100644 --- a/yql/essentials/parser/pg_catalog/catalog.cpp +++ b/yql/essentials/parser/pg_catalog/catalog.cpp @@ -653,17 +653,17 @@ public: const auto typType = value[0]; switch (typType) { - case 'b': - case 'c': - case 'd': - case 'e': - case 'm': - case 'p': - case 'r': - LastType_.TypType = (ETypType)typType; - break; - default: - throw yexception() << "Unknown typtype value: " << typType; + case 'b': + case 'c': + case 'd': + case 'e': + case 'm': + case 'p': + case 'r': + LastType_.TypType = (ETypType)typType; + break; + default: + throw yexception() << "Unknown typtype value: " << typType; } } else if (key == "typcollation") { // hardcode collations for now. There are only three of 'em in .dat file @@ -671,7 +671,7 @@ public: LastType_.TypeCollation = DefaultCollationOid; } else if (value == "C") { LastType_.TypeCollation = C_CollationOid; - } else if (value == "POSIX") { + } else if (value == "POSIX") { LastType_.TypeCollation = PosixCollationOid; } else { throw yexception() << "Unknown typcollation value: " << value; @@ -824,13 +824,13 @@ public: const auto castCtx = value[0]; switch (castCtx) { - case 'i': - case 'a': - case 'e': - LastCast_.CoercionCode = (ECoercionCode)castCtx; - break; - default: - throw yexception() << "Unknown castcontext value: " << castCtx; + case 'i': + case 'a': + case 'e': + LastCast_.CoercionCode = (ECoercionCode)castCtx; + break; + default: + throw yexception() << "Unknown castcontext value: " << castCtx; } } } diff --git a/yql/essentials/parser/pg_catalog/ut/ya.make b/yql/essentials/parser/pg_catalog/ut/ya.make index 264f1bec741..0835e9bbf06 100644 --- a/yql/essentials/parser/pg_catalog/ut/ya.make +++ b/yql/essentials/parser/pg_catalog/ut/ya.make @@ -1,7 +1,5 @@ UNITTEST_FOR(yql/essentials/parser/pg_catalog) -ENABLE(YQL_STYLE_CPP) - SRCS( catalog_ut.cpp catalog_consts_ut.cpp diff --git a/yql/essentials/parser/pg_catalog/ya.make b/yql/essentials/parser/pg_catalog/ya.make index b24d1b47446..955443c5c91 100644 --- a/yql/essentials/parser/pg_catalog/ya.make +++ b/yql/essentials/parser/pg_catalog/ya.make @@ -1,6 +1,7 @@ LIBRARY() -#ENABLE(YQL_STYLE_CPP) need to avoid generated files +# need to avoid generated files +ENABLE(SKIP_YQL_STYLE_CPP) RESOURCE(data/pg_operator.dat pg_operator.dat) RESOURCE(data/pg_proc.dat pg_proc.dat) diff --git a/yql/essentials/parser/pg_wrapper/interface/arrow.h b/yql/essentials/parser/pg_wrapper/interface/arrow.h index f9aead6a553..49840774380 100644 --- a/yql/essentials/parser/pg_wrapper/interface/arrow.h +++ b/yql/essentials/parser/pg_wrapper/interface/arrow.h @@ -8,7 +8,6 @@ #include <arrow/datum.h> - namespace NYql { arrow::Datum MakePgScalar(NKikimr::NMiniKQL::TPgType* type, const NKikimr::NUdf::TUnboxedValuePod& value, arrow::MemoryPool& pool); @@ -19,7 +18,7 @@ TColumnConverter BuildPgColumnConverter(const std::shared_ptr<arrow::DataType>& std::unique_ptr<IYsonComplexTypeReader> BuildPgYsonColumnReader(const NUdf::TPgTypeDescription& desc); std::unique_ptr<IYtColumnConverter> BuildPgTopLevelColumnReader(std::unique_ptr<NKikimr::NUdf::IArrayBuilder>&& builder, const NKikimr::NMiniKQL::TPgType* targetType); -} // NYql +} // namespace NYql namespace NKikimr { namespace NMiniKQL { @@ -27,5 +26,5 @@ namespace NMiniKQL { class IBlockAggregatorFactory; void RegisterPgBlockAggs(THashMap<TString, std::unique_ptr<IBlockAggregatorFactory>>& registry); -} -} +} // namespace NMiniKQL +} // namespace NKikimr diff --git a/yql/essentials/parser/pg_wrapper/interface/codec.h b/yql/essentials/parser/pg_wrapper/interface/codec.h index a3a634be831..9e56d793b93 100644 --- a/yql/essentials/parser/pg_wrapper/interface/codec.h +++ b/yql/essentials/parser/pg_wrapper/interface/codec.h @@ -10,13 +10,13 @@ namespace NMiniKQL { class TPgType; -} // NMiniKQL -} // NKikimr +} // namespace NMiniKQL +} // namespace NKikimr namespace NYql { namespace NResult { class TYsonResultWriter; -} +} // namespace NResult namespace NCommon { @@ -35,7 +35,7 @@ NUdf::TUnboxedValue PgValueFromNativeBinary(const TStringBuf binary, ui32 pgType TString PgValueCoerce(const NUdf::TUnboxedValuePod& value, ui32 pgTypeId, i32 typMod, TMaybe<TString>* error); void WriteYsonValuePg(NResult::TYsonResultWriter& writer, const NUdf::TUnboxedValuePod& value, NKikimr::NMiniKQL::TPgType* type, - const TVector<ui32>* structPositions); + const TVector<ui32>* structPositions); void WriteYsonValueInTableFormatPg(TOutputBuf& buf, NKikimr::NMiniKQL::TPgType* type, const NKikimr::NUdf::TUnboxedValuePod& value, bool topLevel); diff --git a/yql/essentials/parser/pg_wrapper/interface/comp_factory.h b/yql/essentials/parser/pg_wrapper/interface/comp_factory.h index e969c6e1c69..268eb225a82 100644 --- a/yql/essentials/parser/pg_wrapper/interface/comp_factory.h +++ b/yql/essentials/parser/pg_wrapper/interface/comp_factory.h @@ -9,12 +9,13 @@ class IComputationNode; class TCallable; struct TComputationNodeFactoryContext; -} // NMiniKQL -} // NKikimr +} // namespace NMiniKQL +} // namespace NKikimr namespace NYql { -std::function<NKikimr::NMiniKQL::IComputationNode* (NKikimr::NMiniKQL::TCallable&, - const NKikimr::NMiniKQL::TComputationNodeFactoryContext&)> GetPgFactory(); +std::function<NKikimr::NMiniKQL::IComputationNode*(NKikimr::NMiniKQL::TCallable&, + const NKikimr::NMiniKQL::TComputationNodeFactoryContext&)> +GetPgFactory(); -} // NYql +} // namespace NYql diff --git a/yql/essentials/parser/pg_wrapper/interface/config.h b/yql/essentials/parser/pg_wrapper/interface/config.h index 3cf3fcda9fa..cbf4e72778b 100644 --- a/yql/essentials/parser/pg_wrapper/interface/config.h +++ b/yql/essentials/parser/pg_wrapper/interface/config.h @@ -1,3 +1,5 @@ +#pragma once + #include <util/generic/fwd.h> namespace NYql { @@ -5,4 +7,4 @@ namespace NYql { TString GetPostgresServerVersionNum(); TString GetPostgresServerVersionStr(); -} // NYql
\ No newline at end of file +} // namespace NYql diff --git a/yql/essentials/parser/pg_wrapper/interface/interface.cpp b/yql/essentials/parser/pg_wrapper/interface/interface.cpp index 738ed46b19b..a0f4515077c 100644 --- a/yql/essentials/parser/pg_wrapper/interface/interface.cpp +++ b/yql/essentials/parser/pg_wrapper/interface/interface.cpp @@ -12,26 +12,25 @@ namespace NYql { namespace { -std::array<TStringBuf,6> Prefixes = { +std::array<TStringBuf, 6> Prefixes = { "", " ", " ", " ", " ", - " " -}; + " "}; TStringBuf Prefix(int level) { return level < (int)Prefixes.size() - ? Prefixes[level] - : Prefixes.back(); + ? Prefixes[level] + : Prefixes.back(); } void PrettyPrintVar(TStringBuilder& b, const IOptimizer::TInput* input, IOptimizer::TVarId varId) { const auto& [relno, varno] = varId; auto varName = input - ? input->Rels[relno-1].TargetVars[varno-1].Name - : '\0'; + ? input->Rels[relno - 1].TargetVars[varno - 1].Name + : '\0'; if (!varName) { b << "(" << relno << "," << varno << ")"; } else { @@ -52,21 +51,36 @@ void PrettyPrintNode(int level, TStringBuilder& b, const IOptimizer::TOutput& ou TStringBuf prefix = Prefix(level); const auto& node = output.Nodes[id]; switch (node.Mode) { - case IOptimizer::EJoinType::Unknown: b << prefix << " Node\n"; break; - case IOptimizer::EJoinType::Inner: b << prefix << " Inner Join\n"; break; - case IOptimizer::EJoinType::Left: b << prefix << " Left Join\n"; break; - case IOptimizer::EJoinType::Right: b << prefix << " Right Join\n"; break; - default: b << prefix << " Unknown\n"; break; + case IOptimizer::EJoinType::Unknown: + b << prefix << " Node\n"; + break; + case IOptimizer::EJoinType::Inner: + b << prefix << " Inner Join\n"; + break; + case IOptimizer::EJoinType::Left: + b << prefix << " Left Join\n"; + break; + case IOptimizer::EJoinType::Right: + b << prefix << " Right Join\n"; + break; + default: + b << prefix << " Unknown\n"; + break; } switch (node.Strategy) { - case IOptimizer::EJoinStrategy::Hash: b << prefix << " Hash Strategy\n"; break; - case IOptimizer::EJoinStrategy::Loop: b << prefix << " Loop Strategy\n"; break; - default: break; + case IOptimizer::EJoinStrategy::Hash: + b << prefix << " Hash Strategy\n"; + break; + case IOptimizer::EJoinStrategy::Loop: + b << prefix << " Loop Strategy\n"; + break; + default: + break; } if (!node.Rels.empty()) { b << prefix << " Rels: ["; - for (int i = 0; i < (int)node.Rels.size()-1; i++) { + for (int i = 0; i < (int)node.Rels.size() - 1; i++) { b << node.Rels[i] << ","; } b << node.Rels.back(); @@ -85,12 +99,12 @@ void PrettyPrintNode(int level, TStringBuilder& b, const IOptimizer::TOutput& ou if (node.Outer != -1) { b << prefix << " {\n"; - PrettyPrintNode(level+1, b, output, node.Outer); + PrettyPrintNode(level + 1, b, output, node.Outer); b << prefix << " }\n"; } if (node.Inner != -1) { b << prefix << " {\n"; - PrettyPrintNode(level+1, b, output, node.Inner); + PrettyPrintNode(level + 1, b, output, node.Inner); b << prefix << " }\n"; } } @@ -193,7 +207,7 @@ void IOptimizer::TInput::Normalize() { } } EqClasses.clear(); - for (auto& [_, ids]: eqClasses) { + for (auto& [_, ids] : eqClasses) { TEq eqClass; eqClass.Vars.reserve(ids.size()); for (auto id : ids) { @@ -204,4 +218,4 @@ void IOptimizer::TInput::Normalize() { } } -} +} // namespace NYql diff --git a/yql/essentials/parser/pg_wrapper/interface/pack.h b/yql/essentials/parser/pg_wrapper/interface/pack.h index 281f8139c48..72ce9413c9b 100644 --- a/yql/essentials/parser/pg_wrapper/interface/pack.h +++ b/yql/essentials/parser/pg_wrapper/interface/pack.h @@ -13,7 +13,7 @@ class TPgType; class TPagedBuffer; namespace NDetails { class TChunkedInputBuffer; -} +} // namespace NDetails void PGPackImpl(bool stable, const TPgType* type, const NUdf::TUnboxedValuePod& value, TBuffer& buf); void PGPackImpl(bool stable, const TPgType* type, const NUdf::TUnboxedValuePod& value, TPagedBuffer& buf); diff --git a/yql/essentials/parser/pg_wrapper/interface/parser.h b/yql/essentials/parser/pg_wrapper/interface/parser.h index db82da2298d..be866ca0c9b 100644 --- a/yql/essentials/parser/pg_wrapper/interface/parser.h +++ b/yql/essentials/parser/pg_wrapper/interface/parser.h @@ -9,7 +9,7 @@ struct TTranslationSettings; class ITranslator; using TTranslatorPtr = TIntrusivePtr<ITranslator>; -} // NSQLTranslation +} // namespace NSQLTranslation namespace NSQLTranslationPG { @@ -20,4 +20,4 @@ std::unique_ptr<NYql::NPg::ISystemFunctionsParser> CreateSystemFunctionsParser() std::unique_ptr<NYql::NPg::ISqlLanguageParser> CreateSqlLanguageParser(); NSQLTranslation::TTranslatorPtr MakeTranslator(); -} // NSQLTranslationPG +} // namespace NSQLTranslationPG diff --git a/yql/essentials/parser/pg_wrapper/interface/raw_parser.h b/yql/essentials/parser/pg_wrapper/interface/raw_parser.h index b0b47177067..543199d6b50 100644 --- a/yql/essentials/parser/pg_wrapper/interface/raw_parser.h +++ b/yql/essentials/parser/pg_wrapper/interface/raw_parser.h @@ -1,8 +1,8 @@ #pragma once extern "C" { -struct List; -struct Node; + struct List; + struct Node; } #include <yql/essentials/public/issue/yql_issue.h> @@ -22,4 +22,4 @@ TString GetCommandName(Node* node); void PGParse(const TString& input, IPGParseEvents& events); -} +} // namespace NYql diff --git a/yql/essentials/parser/pg_wrapper/interface/type_desc.h b/yql/essentials/parser/pg_wrapper/interface/type_desc.h index f50c3a33e4b..602d4268f75 100644 --- a/yql/essentials/parser/pg_wrapper/interface/type_desc.h +++ b/yql/essentials/parser/pg_wrapper/interface/type_desc.h @@ -15,7 +15,7 @@ const ITypeDesc* TypeDescFromPgTypeName(const TStringBuf name); TString TypeModFromPgTypeName(const TStringBuf name); bool TypeDescIsComparable(const ITypeDesc* typeDesc); -i32 TypeDescGetTypeLen(const ITypeDesc* typeDesc); +i32 TypeDescGetTypeLen(const ITypeDesc* typeDesc); ui32 TypeDescGetStoredSize(const ITypeDesc* typeDesc); bool TypeDescNeedsCoercion(const ITypeDesc* typeDesc); diff --git a/yql/essentials/parser/pg_wrapper/interface/utils.h b/yql/essentials/parser/pg_wrapper/interface/utils.h index c3197f86ad5..648041ea23b 100644 --- a/yql/essentials/parser/pg_wrapper/interface/utils.h +++ b/yql/essentials/parser/pg_wrapper/interface/utils.h @@ -15,6 +15,5 @@ bool ParsePgIntervalModifier(const TString& str, i32& ret); std::unique_ptr<NUdf::IPgBuilder> CreatePgBuilder(); bool HasPgKernel(ui32 procOid); -ui64 HexEncode(const char *src, size_t len, char *dst); -} // NYql - +ui64 HexEncode(const char* src, size_t len, char* dst); +} // namespace NYql diff --git a/yql/essentials/parser/pg_wrapper/ut/arrow_ut.cpp b/yql/essentials/parser/pg_wrapper/ut/arrow_ut.cpp index c896f4963c6..8b60843e43c 100644 --- a/yql/essentials/parser/pg_wrapper/ut/arrow_ut.cpp +++ b/yql/essentials/parser/pg_wrapper/ut/arrow_ut.cpp @@ -15,7 +15,7 @@ extern "C" { namespace { template <bool IsFixedSizeReader> -void checkResult(const char ** expected, auto result, NYql::NUdf::IBlockReader* reader, auto out_fun) { +void checkResult(const char** expected, auto result, NYql::NUdf::IBlockReader* reader, auto out_fun) { const auto& data = result->data(); for (int i = 0; i < data->length; i++) { @@ -32,13 +32,12 @@ void checkResult(const char ** expected, auto result, NYql::NUdf::IBlockReader* } UNIT_ASSERT_VALUES_EQUAL( TString(DatumGetCString(DirectFunctionCall1(out_fun, item))), - expected[i] - ); + expected[i]); } } } -} // namespace { +} // namespace namespace NYql { @@ -63,10 +62,9 @@ Y_UNIT_TEST(TestPgFloatToNumeric) { UNIT_ASSERT_VALUES_EQUAL(value, "-711.56"); } - Y_UNIT_TEST(PgConvertNumericDouble) { TArenaMemoryContext arena; - + arrow::DoubleBuilder builder; ARROW_OK(builder.Append(1.1)); ARROW_OK(builder.Append(31.37)); @@ -78,10 +76,9 @@ Y_UNIT_TEST(PgConvertNumericDouble) { ARROW_OK(builder.Finish(&array)); auto result = PgConvertNumeric<double>(array); - + const char* expected[] = { - "1.1", "31.37", nullptr, "-1.337", "0", "1.234111" - }; + "1.1", "31.37", nullptr, "-1.337", "0", "1.234111"}; NYql::NUdf::TStringBlockReader<arrow::BinaryType, true> reader; checkResult<false>(expected, result, &reader, numeric_out); @@ -96,8 +93,7 @@ Y_UNIT_TEST(PgConvertNumericDecimal128Scale1) { arrow::Decimal128Builder builder(type); const char* expected[] = { - "12345.0", "-12345.0", nullptr - }; + "12345.0", "-12345.0", nullptr}; ARROW_OK(builder.Append(arrow::Decimal128::FromString("12345.0").ValueOrDie())); ARROW_OK(builder.Append(arrow::Decimal128::FromString("-12345.0").ValueOrDie())); @@ -121,8 +117,7 @@ Y_UNIT_TEST(PgConvertNumericDecimal128ScaleNegative) { arrow::Decimal128Builder builder(type); const char* expected[] = { - "12345678000", "-12345678000", nullptr - }; + "12345678000", "-12345678000", nullptr}; ARROW_OK(builder.Append(arrow::Decimal128::FromString("12345678").ValueOrDie())); ARROW_OK(builder.Append(arrow::Decimal128::FromString("-12345678").ValueOrDie())); @@ -146,8 +141,7 @@ Y_UNIT_TEST(PgConvertNumericDecimal128Scale2) { arrow::Decimal128Builder builder(type); const char* expected[] = { - "123.45", "-123.45", nullptr - }; + "123.45", "-123.45", nullptr}; ARROW_OK(builder.Append(arrow::Decimal128::FromString("123.45").ValueOrDie())); ARROW_OK(builder.Append(arrow::Decimal128::FromString("-123.45").ValueOrDie())); @@ -171,8 +165,7 @@ Y_UNIT_TEST(PgConvertNumericDecimal128Scale3) { arrow::Decimal128Builder builder(type); const char* expected[] = { - "0.123", "-0.123", nullptr - }; + "0.123", "-0.123", nullptr}; ARROW_OK(builder.Append(arrow::Decimal128::FromString("0.123").ValueOrDie())); ARROW_OK(builder.Append(arrow::Decimal128::FromString("-0.123").ValueOrDie())); @@ -196,8 +189,7 @@ Y_UNIT_TEST(PgConvertNumericDecimal128Scale4) { arrow::Decimal128Builder builder(type); const char* expected[] = { - "123.4567", "-123.4567", nullptr - }; + "123.4567", "-123.4567", nullptr}; ARROW_OK(builder.Append(arrow::Decimal128::FromString("123.4567").ValueOrDie())); ARROW_OK(builder.Append(arrow::Decimal128::FromString("-123.4567").ValueOrDie())); @@ -221,8 +213,7 @@ Y_UNIT_TEST(PgConvertNumericDecimal128Scale5) { arrow::Decimal128Builder builder(type); const char* expected[] = { - "12.34567", "-12.34567", nullptr - }; + "12.34567", "-12.34567", nullptr}; ARROW_OK(builder.Append(arrow::Decimal128::FromReal(12.34567, precision, scale).ValueOrDie())); ARROW_OK(builder.Append(arrow::Decimal128::FromReal(-12.34567, precision, scale).ValueOrDie())); @@ -248,8 +239,7 @@ Y_UNIT_TEST(PgConvertNumericDecimal128BigScale3) { const char* expected[] = { "36893488147419103.245", "-36893488147419103.245", "46116860184273879.041", "-46116860184273879.041", - nullptr - }; + nullptr}; ARROW_OK(builder.Append(arrow::Decimal128::FromString("36893488147419103.245").ValueOrDie())); ARROW_OK(builder.Append(arrow::Decimal128::FromString("-36893488147419103.245").ValueOrDie())); @@ -275,8 +265,7 @@ Y_UNIT_TEST(PgConvertNumericDecimal128BigScale1) { arrow::Decimal128Builder builder(type); const char* expected[] = { - "3868562622766813359059763.2", "-3868562622766813359059763.2", nullptr - }; + "3868562622766813359059763.2", "-3868562622766813359059763.2", nullptr}; ARROW_OK(builder.Append(arrow::Decimal128::FromString("3868562622766813359059763.2").ValueOrDie())); ARROW_OK(builder.Append(arrow::Decimal128::FromString("-3868562622766813359059763.2").ValueOrDie())); @@ -293,7 +282,7 @@ Y_UNIT_TEST(PgConvertNumericDecimal128BigScale1) { Y_UNIT_TEST(PgConvertNumericInt) { TArenaMemoryContext arena; - + arrow::Int64Builder builder; ARROW_OK(builder.Append(11)); ARROW_OK(builder.Append(3137)); @@ -308,8 +297,7 @@ Y_UNIT_TEST(PgConvertNumericInt) { const auto& data = result->data(); const char* expected[] = { - "11", "3137", nullptr, "-1337", "0" - }; + "11", "3137", nullptr, "-1337", "0"}; NYql::NUdf::TStringBlockReader<arrow::BinaryType, true> reader; checkResult<false>(expected, result, &reader, numeric_out); @@ -338,8 +326,7 @@ Y_UNIT_TEST(PgConvertDate32Date) { UNIT_ASSERT_VALUES_EQUAL(result->length(), 6); const char* expected[] = { - "1998-01-01", nullptr, "2001-01-01", "1998-01-01", "2000-01-02", "2002-01-01" - }; + "1998-01-01", nullptr, "2001-01-01", "1998-01-01", "2000-01-02", "2002-01-01"}; NUdf::TFixedSizeBlockReader<ui64, true> reader; checkResult<true>(expected, result, &reader, date_out); diff --git a/yql/essentials/parser/pg_wrapper/ut/codegen_ut.cpp b/yql/essentials/parser/pg_wrapper/ut/codegen_ut.cpp index 91536d2872c..7a95d485328 100644 --- a/yql/essentials/parser/pg_wrapper/ut/codegen_ut.cpp +++ b/yql/essentials/parser/pg_wrapper/ut/codegen_ut.cpp @@ -27,10 +27,10 @@ using namespace NYql; using namespace NYql::NCodegen; extern "C" { -Y_PRAGMA_DIAGNOSTIC_PUSH -Y_PRAGMA("GCC diagnostic ignored \"-Wreturn-type-c-linkage\"") + Y_PRAGMA_DIAGNOSTIC_PUSH + Y_PRAGMA("GCC diagnostic ignored \"-Wreturn-type-c-linkage\"") #include <yql/essentials/parser/pg_wrapper/pg_kernels_fwd.inc> -Y_PRAGMA_DIAGNOSTIC_POP + Y_PRAGMA_DIAGNOSTIC_POP } enum class EKernelFlavor { @@ -42,11 +42,11 @@ enum class EKernelFlavor { }; Y_UNIT_TEST_SUITE(TPgCodegen) { - void PgFuncImpl(EKernelFlavor flavor, bool constArg, bool fixed) { - const TString& name = fixed ? "date_eq" : "textout"; - ICodegen::TPtr codegen; - TExecFunc execFunc; - switch (flavor) { +void PgFuncImpl(EKernelFlavor flavor, bool constArg, bool fixed) { + const TString& name = fixed ? "date_eq" : "textout"; + ICodegen::TPtr codegen; + TExecFunc execFunc; + switch (flavor) { case EKernelFlavor::Indirect: { if (fixed) { execFunc = MakeIndirectExec<true, true>(&date_eq); @@ -77,7 +77,7 @@ Y_UNIT_TEST_SUITE(TPgCodegen) { codegen->Verify(); codegen->ExportSymbol(func); codegen->Compile(); - //codegen->ShowGeneratedFunctions(&Cerr); + // codegen->ShowGeneratedFunctions(&Cerr); typedef TExecFunc (*TFunc)(); auto funcPtr = (TFunc)codegen->GetPointerToFunction(func); execFunc = funcPtr(); @@ -87,7 +87,7 @@ Y_UNIT_TEST_SUITE(TPgCodegen) { if (fixed) { execFunc = [](arrow::compute::KernelContext* ctx, const arrow::compute::ExecBatch& batch, arrow::Datum* res) { size_t length = batch.values[0].length(); - //NUdf::TFixedSizeArrayBuilder<ui64, true> builder(NKikimr::NMiniKQL::TTypeInfoHelper(), arrow::uint64(), *arrow::default_memory_pool(), length); + // NUdf::TFixedSizeArrayBuilder<ui64, true> builder(NKikimr::NMiniKQL::TTypeInfoHelper(), arrow::uint64(), *arrow::default_memory_pool(), length); NUdf::TTypedBufferBuilder<ui64> dataBuilder(arrow::default_memory_pool()); NUdf::TTypedBufferBuilder<ui8> nullBuilder(arrow::default_memory_pool()); dataBuilder.Reserve(length); @@ -102,8 +102,8 @@ Y_UNIT_TEST_SUITE(TPgCodegen) { const auto& array2 = *batch.values[1].array(); const auto ptr2 = array2.GetValues<ui64>(1); for (size_t i = 0; i < length; ++i) { - //auto x = reader1.GetItem(array1, i).As<ui64>(); - //auto y = reader2.GetItem(array2, i).As<ui64>(); + // auto x = reader1.GetItem(array1, i).As<ui64>(); + // auto y = reader2.GetItem(array2, i).As<ui64>(); auto x = ptr1[i]; auto y = ptr2[i]; out[i] = x == y ? 1 : 0; @@ -123,7 +123,7 @@ Y_UNIT_TEST_SUITE(TPgCodegen) { nulls = NUdf::MakeDenseBitmap(nulls->data(), length, arrow::default_memory_pool()); std::shared_ptr<arrow::Buffer> data = dataBuilder.Finish(); - *res = arrow::ArrayData::Make(arrow::uint64(), length ,{ data, nulls}); + *res = arrow::ArrayData::Make(arrow::uint64(), length, {data, nulls}); return arrow::Status::OK(); }; } else { @@ -151,140 +151,140 @@ Y_UNIT_TEST_SUITE(TPgCodegen) { break; } - } + } - Y_ENSURE(execFunc); - arrow::compute::ExecContext execContent; - arrow::compute::KernelContext kernelCtx(&execContent); - TPgKernelState state; - kernelCtx.SetState(&state); - FmgrInfo finfo; - Zero(state.flinfo); - state.ProcDesc = fixed ? &NPg::LookupProc("date_eq", { 0, 0 }) : &NPg::LookupProc("textout", { 0 }); - fmgr_info(state.ProcDesc->ProcId, &state.flinfo); - state.context = nullptr; - state.resultinfo = nullptr; - state.fncollation = DEFAULT_COLLATION_OID; - state.Name = name; - if (fixed) { - state.TypeLen = 1; - state.IsFixedResult = true; - state.IsFixedArg.push_back(true); - state.IsFixedArg.push_back(true); - } else { - state.TypeLen = -2; - state.IsFixedResult = false; - state.IsFixedArg.push_back(false); - } + Y_ENSURE(execFunc); + arrow::compute::ExecContext execContent; + arrow::compute::KernelContext kernelCtx(&execContent); + TPgKernelState state; + kernelCtx.SetState(&state); + FmgrInfo finfo; + Zero(state.flinfo); + state.ProcDesc = fixed ? &NPg::LookupProc("date_eq", {0, 0}) : &NPg::LookupProc("textout", {0}); + fmgr_info(state.ProcDesc->ProcId, &state.flinfo); + state.context = nullptr; + state.resultinfo = nullptr; + state.fncollation = DEFAULT_COLLATION_OID; + state.Name = name; + if (fixed) { + state.TypeLen = 1; + state.IsFixedResult = true; + state.IsFixedArg.push_back(true); + state.IsFixedArg.push_back(true); + } else { + state.TypeLen = -2; + state.IsFixedResult = false; + state.IsFixedArg.push_back(false); + } #ifdef NDEBUG - const size_t N = 10000; + const size_t N = 10000; #else - const size_t N = 1000; + const size_t N = 1000; #endif - std::vector<arrow::Datum> batchArgs; - if (fixed) { - arrow::UInt64Builder builder; - ARROW_OK(builder.Reserve(N)); - for (size_t i = 0; i < N; ++i) { - builder.UnsafeAppend(i); - } - - std::shared_ptr<arrow::ArrayData> out; - ARROW_OK(builder.FinishInternal(&out)); - arrow::Datum arg1(out), arg2; - if (constArg) { - Cout << "with const arg\n"; - arg2 = NKikimr::NMiniKQL::MakeScalarDatum<ui64>(0); - } else { - arg2 = out; - } + std::vector<arrow::Datum> batchArgs; + if (fixed) { + arrow::UInt64Builder builder; + ARROW_OK(builder.Reserve(N)); + for (size_t i = 0; i < N; ++i) { + builder.UnsafeAppend(i); + } - batchArgs.push_back(arg1); - batchArgs.push_back(arg2); + std::shared_ptr<arrow::ArrayData> out; + ARROW_OK(builder.FinishInternal(&out)); + arrow::Datum arg1(out), arg2; + if (constArg) { + Cout << "with const arg\n"; + arg2 = NKikimr::NMiniKQL::MakeScalarDatum<ui64>(0); } else { - arrow::BinaryBuilder builder; - ARROW_OK(builder.Reserve(N)); - for (size_t i = 0; i < N; ++i) { - std::string s(sizeof(void*) + VARHDRSZ + 500, 'A' + i % 26); - NUdf::ZeroMemoryContext(s.data() + sizeof(void*)); - auto t = (text*)(s.data() + sizeof(void*)); - SET_VARSIZE(t, VARHDRSZ + 500); - ARROW_OK(builder.Append(s)); - } + arg2 = out; + } - std::shared_ptr<arrow::ArrayData> out; - ARROW_OK(builder.FinishInternal(&out)); - arrow::Datum arg1(out); - batchArgs.push_back(arg1); + batchArgs.push_back(arg1); + batchArgs.push_back(arg2); + } else { + arrow::BinaryBuilder builder; + ARROW_OK(builder.Reserve(N)); + for (size_t i = 0; i < N; ++i) { + std::string s(sizeof(void*) + VARHDRSZ + 500, 'A' + i % 26); + NUdf::ZeroMemoryContext(s.data() + sizeof(void*)); + auto t = (text*)(s.data() + sizeof(void*)); + SET_VARSIZE(t, VARHDRSZ + 500); + ARROW_OK(builder.Append(s)); } - arrow::compute::ExecBatch batch(std::move(batchArgs), N); + std::shared_ptr<arrow::ArrayData> out; + ARROW_OK(builder.FinishInternal(&out)); + arrow::Datum arg1(out); + batchArgs.push_back(arg1); + } - { - Cout << "begin...\n"; - TSimpleTimer timer; - for (size_t count = 0; count < (fixed ? 10000 : 1000); ++count) { - arrow::Datum res; - ARROW_OK(execFunc(&kernelCtx, batch, &res)); - Y_ENSURE(res.length() == N); - } + arrow::compute::ExecBatch batch(std::move(batchArgs), N); - Cout << "done, elapsed: " << timer.Get() << "\n"; + { + Cout << "begin...\n"; + TSimpleTimer timer; + for (size_t count = 0; count < (fixed ? 10000 : 1000); ++count) { + arrow::Datum res; + ARROW_OK(execFunc(&kernelCtx, batch, &res)); + Y_ENSURE(res.length() == N); } - } - Y_UNIT_TEST(PgFixedFuncIdeal) { - PgFuncImpl(EKernelFlavor::Ideal, false, true); - PgFuncImpl(EKernelFlavor::Ideal, true, true); + Cout << "done, elapsed: " << timer.Get() << "\n"; } +} - Y_UNIT_TEST(PgFixedFuncDefArg) { - PgFuncImpl(EKernelFlavor::DefArg, false, true); - PgFuncImpl(EKernelFlavor::DefArg, true, true); - } +Y_UNIT_TEST(PgFixedFuncIdeal) { + PgFuncImpl(EKernelFlavor::Ideal, false, true); + PgFuncImpl(EKernelFlavor::Ideal, true, true); +} - Y_UNIT_TEST(PgFixedFuncIndirect) { - PgFuncImpl(EKernelFlavor::Indirect, false, true); - PgFuncImpl(EKernelFlavor::Indirect, true, true); - } +Y_UNIT_TEST(PgFixedFuncDefArg) { + PgFuncImpl(EKernelFlavor::DefArg, false, true); + PgFuncImpl(EKernelFlavor::DefArg, true, true); +} + +Y_UNIT_TEST(PgFixedFuncIndirect) { + PgFuncImpl(EKernelFlavor::Indirect, false, true); + PgFuncImpl(EKernelFlavor::Indirect, true, true); +} #if !defined(USE_SLOW_PG_KERNELS) - Y_UNIT_TEST(PgFixedFuncCpp) { - PgFuncImpl(EKernelFlavor::Cpp, false, true); - PgFuncImpl(EKernelFlavor::Cpp, true, true); - } +Y_UNIT_TEST(PgFixedFuncCpp) { + PgFuncImpl(EKernelFlavor::Cpp, false, true); + PgFuncImpl(EKernelFlavor::Cpp, true, true); +} -#if defined(YQL_USE_PG_BC) - Y_UNIT_TEST(PgFixedFuncBC) { - PgFuncImpl(EKernelFlavor::BitCode, false, true); - PgFuncImpl(EKernelFlavor::BitCode, true, true); - } -#endif + #if defined(YQL_USE_PG_BC) +Y_UNIT_TEST(PgFixedFuncBC) { + PgFuncImpl(EKernelFlavor::BitCode, false, true); + PgFuncImpl(EKernelFlavor::BitCode, true, true); +} + #endif #endif - Y_UNIT_TEST(PgStrFuncIdeal) { - PgFuncImpl(EKernelFlavor::Ideal, false, false); - } +Y_UNIT_TEST(PgStrFuncIdeal) { + PgFuncImpl(EKernelFlavor::Ideal, false, false); +} - Y_UNIT_TEST(PgStrFuncDefArg) { - PgFuncImpl(EKernelFlavor::DefArg, false, false); - } +Y_UNIT_TEST(PgStrFuncDefArg) { + PgFuncImpl(EKernelFlavor::DefArg, false, false); +} - Y_UNIT_TEST(PgStrFuncIndirect) { - PgFuncImpl(EKernelFlavor::Indirect, false, false); - } +Y_UNIT_TEST(PgStrFuncIndirect) { + PgFuncImpl(EKernelFlavor::Indirect, false, false); +} #if !defined(USE_SLOW_PG_KERNELS) - Y_UNIT_TEST(PgStrFuncCpp) { - PgFuncImpl(EKernelFlavor::Cpp, false, false); - } +Y_UNIT_TEST(PgStrFuncCpp) { + PgFuncImpl(EKernelFlavor::Cpp, false, false); +} -#if defined(YQL_USE_PG_BC) - Y_UNIT_TEST(PgStrFuncBC) { - PgFuncImpl(EKernelFlavor::BitCode, false, false); - } -#endif + #if defined(YQL_USE_PG_BC) +Y_UNIT_TEST(PgStrFuncBC) { + PgFuncImpl(EKernelFlavor::BitCode, false, false); +} + #endif #endif -} +} // Y_UNIT_TEST_SUITE(TPgCodegen) diff --git a/yql/essentials/parser/pg_wrapper/ut/error_ut.cpp b/yql/essentials/parser/pg_wrapper/ut/error_ut.cpp index 1f9ade9c955..56708cc9b5d 100644 --- a/yql/essentials/parser/pg_wrapper/ut/error_ut.cpp +++ b/yql/essentials/parser/pg_wrapper/ut/error_ut.cpp @@ -16,35 +16,35 @@ constexpr ui32 IterationsCount = 100000000; #endif Y_UNIT_TEST_SUITE(TErrorTests) { - Y_UNIT_TEST(TestPgTry) { - Cout << "begin...\n"; - TSimpleTimer timer; - volatile ui32 x = 0; - for (ui32 i = 0; i < IterationsCount; ++i) { - PG_TRY(); - { - x += 1; - } - PG_CATCH(); - { - } - PG_END_TRY(); +Y_UNIT_TEST(TestPgTry) { + Cout << "begin...\n"; + TSimpleTimer timer; + volatile ui32 x = 0; + for (ui32 i = 0; i < IterationsCount; ++i) { + PG_TRY(); + { + x += 1; } - - Cout << "done, elapsed: " << timer.Get() << "\n"; + PG_CATCH(); + { + } + PG_END_TRY(); } - Y_UNIT_TEST(TestCppTry) { - Cout << "begin...\n"; - TSimpleTimer timer; - volatile ui32 x = 0; - for (ui32 i = 0; i < IterationsCount; ++i) { - try { - x += 1; - } catch (...) { - } - } + Cout << "done, elapsed: " << timer.Get() << "\n"; +} - Cout << "done, elapsed: " << timer.Get() << "\n"; +Y_UNIT_TEST(TestCppTry) { + Cout << "begin...\n"; + TSimpleTimer timer; + volatile ui32 x = 0; + for (ui32 i = 0; i < IterationsCount; ++i) { + try { + x += 1; + } catch (...) { + } } + + Cout << "done, elapsed: " << timer.Get() << "\n"; } +} // Y_UNIT_TEST_SUITE(TErrorTests) diff --git a/yql/essentials/parser/pg_wrapper/ut/memory_ut.cpp b/yql/essentials/parser/pg_wrapper/ut/memory_ut.cpp index 4afca499a24..8ab1647e9a6 100644 --- a/yql/essentials/parser/pg_wrapper/ut/memory_ut.cpp +++ b/yql/essentials/parser/pg_wrapper/ut/memory_ut.cpp @@ -14,39 +14,39 @@ extern "C" { namespace NYql { Y_UNIT_TEST_SUITE(TPGMemoryTests) { - Y_UNIT_TEST(TestArenaContextBasic) { - TArenaMemoryContext arena; - auto p1 = palloc(123); - auto p2 = palloc(456); - Y_UNUSED(p2); - pfree(p1); - } - - Y_UNIT_TEST(TestMkqlContextBasic) { - NKikimr::NMiniKQL::TScopedAlloc alloc(__LOCATION__); - auto p1 = palloc(123); - auto p2 = palloc(456); - Y_UNUSED(p2); - pfree(p1); - } - - Y_UNIT_TEST(TestArenaContextCleanupChild) { - TArenaMemoryContext arena; - auto tmpContext = AllocSetContextCreate(CurrentMemoryContext, "Tmp", ALLOCSET_SMALL_SIZES); - auto oldcontext = MemoryContextSwitchTo(tmpContext); - auto p1 = palloc(123); - Y_UNUSED(p1); - MemoryContextSwitchTo(oldcontext); - } - - Y_UNIT_TEST(TestMkqlContextCleanupChild) { - NKikimr::NMiniKQL::TScopedAlloc alloc(__LOCATION__); - auto tmpContext = AllocSetContextCreate(CurrentMemoryContext, "Tmp", ALLOCSET_SMALL_SIZES); - auto oldcontext = MemoryContextSwitchTo(tmpContext); - auto p1 = palloc(123); - Y_UNUSED(p1); - MemoryContextSwitchTo(oldcontext); - } +Y_UNIT_TEST(TestArenaContextBasic) { + TArenaMemoryContext arena; + auto p1 = palloc(123); + auto p2 = palloc(456); + Y_UNUSED(p2); + pfree(p1); } +Y_UNIT_TEST(TestMkqlContextBasic) { + NKikimr::NMiniKQL::TScopedAlloc alloc(__LOCATION__); + auto p1 = palloc(123); + auto p2 = palloc(456); + Y_UNUSED(p2); + pfree(p1); } + +Y_UNIT_TEST(TestArenaContextCleanupChild) { + TArenaMemoryContext arena; + auto tmpContext = AllocSetContextCreate(CurrentMemoryContext, "Tmp", ALLOCSET_SMALL_SIZES); + auto oldcontext = MemoryContextSwitchTo(tmpContext); + auto p1 = palloc(123); + Y_UNUSED(p1); + MemoryContextSwitchTo(oldcontext); +} + +Y_UNIT_TEST(TestMkqlContextCleanupChild) { + NKikimr::NMiniKQL::TScopedAlloc alloc(__LOCATION__); + auto tmpContext = AllocSetContextCreate(CurrentMemoryContext, "Tmp", ALLOCSET_SMALL_SIZES); + auto oldcontext = MemoryContextSwitchTo(tmpContext); + auto p1 = palloc(123); + Y_UNUSED(p1); + MemoryContextSwitchTo(oldcontext); +} +} // Y_UNIT_TEST_SUITE(TPGMemoryTests) + +} // namespace NYql diff --git a/yql/essentials/parser/pg_wrapper/ut/pack_ut.cpp b/yql/essentials/parser/pg_wrapper/ut/pack_ut.cpp index 6d18db609a5..3beedd6c230 100644 --- a/yql/essentials/parser/pg_wrapper/ut/pack_ut.cpp +++ b/yql/essentials/parser/pg_wrapper/ut/pack_ut.cpp @@ -12,23 +12,23 @@ namespace NYql { Y_UNIT_TEST_SUITE(TPGPackTests) { - Y_UNIT_TEST(UnknownTypeAsString) { - using namespace NKikimr::NMiniKQL; - TScopedAlloc alloc(__LOCATION__); - TTypeEnvironment env(alloc); - TIntrusivePtr<IFunctionRegistry> functionRegistry(CreateFunctionRegistry(CreateBuiltinRegistry())); - TProgramBuilder pgmBuilder(env, *functionRegistry); - TMemoryUsageInfo memInfo("Memory"); - THolderFactory holderFactory(alloc.Ref(), memInfo, functionRegistry.Get()); +Y_UNIT_TEST(UnknownTypeAsString) { + using namespace NKikimr::NMiniKQL; + TScopedAlloc alloc(__LOCATION__); + TTypeEnvironment env(alloc); + TIntrusivePtr<IFunctionRegistry> functionRegistry(CreateFunctionRegistry(CreateBuiltinRegistry())); + TProgramBuilder pgmBuilder(env, *functionRegistry); + TMemoryUsageInfo memInfo("Memory"); + THolderFactory holderFactory(alloc.Ref(), memInfo, functionRegistry.Get()); - auto pgType = pgmBuilder.NewPgType(0xffffffff); - TValuePacker pgPacker(false, pgType); + auto pgType = pgmBuilder.NewPgType(0xffffffff); + TValuePacker pgPacker(false, pgType); - NUdf::TUnboxedValue s = MakeString(NUdf::TStringRef::Of("foo")); - auto p = pgPacker.Pack(s); - auto u = pgPacker.Unpack(p, holderFactory); - UNIT_ASSERT_VALUES_EQUAL(TStringBuf(u.AsStringRef()), "foo"); - } + NUdf::TUnboxedValue s = MakeString(NUdf::TStringRef::Of("foo")); + auto p = pgPacker.Pack(s); + auto u = pgPacker.Unpack(p, holderFactory); + UNIT_ASSERT_VALUES_EQUAL(TStringBuf(u.AsStringRef()), "foo"); } +} // Y_UNIT_TEST_SUITE(TPGPackTests) -} +} // namespace NYql diff --git a/yql/essentials/parser/pg_wrapper/ut/parser_ut.cpp b/yql/essentials/parser/pg_wrapper/ut/parser_ut.cpp index 7f24550ec0a..55b36f84a49 100644 --- a/yql/essentials/parser/pg_wrapper/ut/parser_ut.cpp +++ b/yql/essentials/parser/pg_wrapper/ut/parser_ut.cpp @@ -6,7 +6,7 @@ using namespace NYql; -class TEvents : public IPGParseEvents { +class TEvents: public IPGParseEvents { public: void OnResult(const List* raw) override { Result = PrintPGTree(raw); @@ -21,114 +21,114 @@ public: }; const TStringBuf ExpectedSelect1 = "({RAWSTMT :stmt {SELECTSTMT :distinctClause <> :intoClause <> :targetList " - "({RESTARGET :name <> :indirection <> :val {A_CONST :val 1 :location 7} :location 7}) :fromClause <> :whereClause " - "<> :groupClause <> :groupDistinct false :havingClause <> :windowClause <> :valuesLists <> :sortClause <>" - " :limitOffset <> :limitCount <> :limitOption 0 :lockingClause <> :withClause <> :op 0 :all false :larg <> :rarg <>}" - " :stmt_location 0 :stmt_len 0})"; + "({RESTARGET :name <> :indirection <> :val {A_CONST :val 1 :location 7} :location 7}) :fromClause <> :whereClause " + "<> :groupClause <> :groupDistinct false :havingClause <> :windowClause <> :valuesLists <> :sortClause <>" + " :limitOffset <> :limitCount <> :limitOption 0 :lockingClause <> :withClause <> :op 0 :all false :larg <> :rarg <>}" + " :stmt_location 0 :stmt_len 0})"; const TString Error1 = "ERROR: syntax error at or near \"SELECT1\"\n"; Y_UNIT_TEST_SUITE(ParseTests) { - Y_UNIT_TEST(TestOk) { +Y_UNIT_TEST(TestOk) { + TEvents events; + PGParse(TString("SELECT 1"), events); + UNIT_ASSERT(events.Result); + UNIT_ASSERT(!events.Issue); + UNIT_ASSERT_NO_DIFF(*events.Result, ExpectedSelect1); +} + +Y_UNIT_TEST(TestFail) { + TEvents events; + PGParse(TString(" \n SELECT1"), events); + UNIT_ASSERT(!events.Result); + UNIT_ASSERT(events.Issue); + auto msg = events.Issue->GetMessage(); + UNIT_ASSERT_NO_DIFF(msg, Error1); + UNIT_ASSERT_VALUES_EQUAL(events.Issue->Position.Row, 2); + UNIT_ASSERT_VALUES_EQUAL(events.Issue->Position.Column, 3); +} + +Y_UNIT_TEST(TestErrorPosUtf8) { + { TEvents events; - PGParse(TString("SELECT 1"), events); - UNIT_ASSERT(events.Result); - UNIT_ASSERT(!events.Issue); - UNIT_ASSERT_NO_DIFF(*events.Result, ExpectedSelect1); + PGParse(TString("/* привет */SELECT1"), events); + UNIT_ASSERT(!events.Result); + UNIT_ASSERT(events.Issue); + auto msg = events.Issue->GetMessage(); + UNIT_ASSERT_VALUES_EQUAL(events.Issue->Position.Row, 1); + UNIT_ASSERT_VALUES_EQUAL(events.Issue->Position.Column, 13); } - Y_UNIT_TEST(TestFail) { + { TEvents events; - PGParse(TString(" \n SELECT1"), events); + PGParse(TString("/* привет */\n\nSELECT1"), events); UNIT_ASSERT(!events.Result); UNIT_ASSERT(events.Issue); auto msg = events.Issue->GetMessage(); UNIT_ASSERT_NO_DIFF(msg, Error1); - UNIT_ASSERT_VALUES_EQUAL(events.Issue->Position.Row, 2); - UNIT_ASSERT_VALUES_EQUAL(events.Issue->Position.Column, 3); - } - - Y_UNIT_TEST(TestErrorPosUtf8) { - { - TEvents events; - PGParse(TString("/* привет */SELECT1"), events); - UNIT_ASSERT(!events.Result); - UNIT_ASSERT(events.Issue); - auto msg = events.Issue->GetMessage(); - UNIT_ASSERT_VALUES_EQUAL(events.Issue->Position.Row, 1); - UNIT_ASSERT_VALUES_EQUAL(events.Issue->Position.Column, 13); - } - - { - TEvents events; - PGParse(TString("/* привет */\n\nSELECT1"), events); - UNIT_ASSERT(!events.Result); - UNIT_ASSERT(events.Issue); - auto msg = events.Issue->GetMessage(); - UNIT_ASSERT_NO_DIFF(msg, Error1); - UNIT_ASSERT_VALUES_EQUAL(events.Issue->Position.Row, 3); - UNIT_ASSERT_VALUES_EQUAL(events.Issue->Position.Column, 1); - } + UNIT_ASSERT_VALUES_EQUAL(events.Issue->Position.Row, 3); + UNIT_ASSERT_VALUES_EQUAL(events.Issue->Position.Column, 1); } } +} // Y_UNIT_TEST_SUITE(ParseTests) const ui32 threadsCount = 10; Y_UNIT_TEST_SUITE(MTParseTests) { - Y_UNIT_TEST(TestOk) { - TVector<THolder<TThread>> threads; - for (ui32 i = 0; i < threadsCount; ++i) { - threads.emplace_back(MakeHolder<TThread>([]() { - ui32 iters = 10000; +Y_UNIT_TEST(TestOk) { + TVector<THolder<TThread>> threads; + for (ui32 i = 0; i < threadsCount; ++i) { + threads.emplace_back(MakeHolder<TThread>([]() { + ui32 iters = 10000; #if defined(_san_enabled_) - iters /= 100; + iters /= 100; #endif - for (ui32 i = 0; i < iters; ++i) { - TEvents events; - PGParse(TString("SELECT 1"), events); - Y_ENSURE(events.Result); - Y_ENSURE(!events.Issue); - Y_ENSURE(*events.Result == ExpectedSelect1); - } - })); - } - - for (ui32 i = 0; i < threadsCount; ++i) { - threads[i]->Start(); - } - - for (ui32 i = 0; i < threadsCount; ++i) { - threads[i]->Join(); - } + for (ui32 i = 0; i < iters; ++i) { + TEvents events; + PGParse(TString("SELECT 1"), events); + Y_ENSURE(events.Result); + Y_ENSURE(!events.Issue); + Y_ENSURE(*events.Result == ExpectedSelect1); + } + })); } - Y_UNIT_TEST(TestFail) { - TVector<THolder<TThread>> threads; - for (ui32 i = 0; i < threadsCount; ++i) { - threads.emplace_back(MakeHolder<TThread>([]() { - ui32 iters = 10000; + for (ui32 i = 0; i < threadsCount; ++i) { + threads[i]->Start(); + } + + for (ui32 i = 0; i < threadsCount; ++i) { + threads[i]->Join(); + } +} + +Y_UNIT_TEST(TestFail) { + TVector<THolder<TThread>> threads; + for (ui32 i = 0; i < threadsCount; ++i) { + threads.emplace_back(MakeHolder<TThread>([]() { + ui32 iters = 10000; #if defined(_san_enabled_) - iters /= 100; + iters /= 100; #endif - for (ui32 i = 0; i < iters; ++i) { - TEvents events; - PGParse(TString(" \n SELECT1"), events); - Y_ENSURE(!events.Result); - Y_ENSURE(events.Issue); - auto msg = events.Issue->GetMessage(); - Y_ENSURE(msg == Error1); - Y_ENSURE(events.Issue->Position.Row == 2); - Y_ENSURE(events.Issue->Position.Column == 3); - } - })); - } - - for (ui32 i = 0; i < threadsCount; ++i) { - threads[i]->Start(); - } - - for (ui32 i = 0; i < threadsCount; ++i) { - threads[i]->Join(); - } + for (ui32 i = 0; i < iters; ++i) { + TEvents events; + PGParse(TString(" \n SELECT1"), events); + Y_ENSURE(!events.Result); + Y_ENSURE(events.Issue); + auto msg = events.Issue->GetMessage(); + Y_ENSURE(msg == Error1); + Y_ENSURE(events.Issue->Position.Row == 2); + Y_ENSURE(events.Issue->Position.Column == 3); + } + })); + } + + for (ui32 i = 0; i < threadsCount; ++i) { + threads[i]->Start(); + } + + for (ui32 i = 0; i < threadsCount; ++i) { + threads[i]->Join(); } } +} // Y_UNIT_TEST_SUITE(MTParseTests) diff --git a/yql/essentials/parser/pg_wrapper/ut/proc_ut.cpp b/yql/essentials/parser/pg_wrapper/ut/proc_ut.cpp index 6ee17c5d7d1..d697ba13026 100644 --- a/yql/essentials/parser/pg_wrapper/ut/proc_ut.cpp +++ b/yql/essentials/parser/pg_wrapper/ut/proc_ut.cpp @@ -16,20 +16,20 @@ extern "C" { namespace NYql { Y_UNIT_TEST_SUITE(TProcTests) { - Y_UNIT_TEST(BuiltinsHasRuntimeFuncs) { - if (NPg::AreAllFunctionsAllowed()) { - return; - } - - NPg::EnumProc([](ui32 oid, const NPg::TProcDesc& desc) { - if (desc.ExtensionIndex == 0 && desc.Kind == NPg::EProcKind::Function && - desc.Lang == NPg::LangInternal) { - FmgrInfo finfo; - UNIT_ASSERT(GetPgFuncAddr(oid, finfo)); - UNIT_ASSERT(finfo.fn_addr); - } - }); +Y_UNIT_TEST(BuiltinsHasRuntimeFuncs) { + if (NPg::AreAllFunctionsAllowed()) { + return; } -} + NPg::EnumProc([](ui32 oid, const NPg::TProcDesc& desc) { + if (desc.ExtensionIndex == 0 && desc.Kind == NPg::EProcKind::Function && + desc.Lang == NPg::LangInternal) { + FmgrInfo finfo; + UNIT_ASSERT(GetPgFuncAddr(oid, finfo)); + UNIT_ASSERT(finfo.fn_addr); + } + }); } +} // Y_UNIT_TEST_SUITE(TProcTests) + +} // namespace NYql diff --git a/yql/essentials/parser/pg_wrapper/ut/sort_ut.cpp b/yql/essentials/parser/pg_wrapper/ut/sort_ut.cpp index 9b32dc1e623..309f541fb58 100644 --- a/yql/essentials/parser/pg_wrapper/ut/sort_ut.cpp +++ b/yql/essentials/parser/pg_wrapper/ut/sort_ut.cpp @@ -24,39 +24,39 @@ namespace { } // namespace Y_UNIT_TEST_SUITE(TMiniKQLPGSortTest) { - Y_UNIT_TEST_LLVM(TestListSort) { - const std::array<TString, 3U> values = {{"2000-01-01","1979-12-12","2010-12-01"}}; - const std::array<TString, 3U> sortedValues = {{"1979-12-12","2000-01-01","2010-12-01"} }; - - TSetup<LLVM> setup(GetTestFactory(GetPgFactory())); - TProgramBuilder& pgmBuilder = *setup.PgmBuilder; - - auto pgDateType = static_cast<TPgType*>(pgmBuilder.NewPgType(NPg::LookupType("date").TypeId)); - auto pgTextType = static_cast<TPgType*>(pgmBuilder.NewPgType(NPg::LookupType("text").TypeId)); - auto utf8Type = pgmBuilder.NewDataType(NUdf::TDataType<NUdf::TUtf8>::Id); - - std::vector<TRuntimeNode> data; - for (const auto& x : values) { - data.push_back(pgmBuilder.PgConst(pgDateType, x)); - } - - const auto list = pgmBuilder.NewList(pgDateType, data); - - const auto pgmReturn = pgmBuilder.Map(pgmBuilder.Sort(list, pgmBuilder.NewDataLiteral<bool>(true), - [&](TRuntimeNode item) { return item; }), - [&](TRuntimeNode item) { - return pgmBuilder.FromPg(pgmBuilder.PgCast(item, pgTextType), utf8Type); - }); - - const auto graph = setup.BuildGraph(pgmReturn); - const auto& result = graph->GetValue(); - - UNIT_ASSERT_VALUES_EQUAL(result.GetListLength(), sortedValues.size()); - for (ui32 i = 0; i < sortedValues.size(); ++i) { - auto elem = result.GetElement(i); - UNIT_ASSERT_VALUES_EQUAL(TStringBuf(elem.AsStringRef()), sortedValues[i]); - } +Y_UNIT_TEST_LLVM(TestListSort) { + const std::array<TString, 3U> values = {{"2000-01-01", "1979-12-12", "2010-12-01"}}; + const std::array<TString, 3U> sortedValues = {{"1979-12-12", "2000-01-01", "2010-12-01"}}; + + TSetup<LLVM> setup(GetTestFactory(GetPgFactory())); + TProgramBuilder& pgmBuilder = *setup.PgmBuilder; + + auto pgDateType = static_cast<TPgType*>(pgmBuilder.NewPgType(NPg::LookupType("date").TypeId)); + auto pgTextType = static_cast<TPgType*>(pgmBuilder.NewPgType(NPg::LookupType("text").TypeId)); + auto utf8Type = pgmBuilder.NewDataType(NUdf::TDataType<NUdf::TUtf8>::Id); + + std::vector<TRuntimeNode> data; + for (const auto& x : values) { + data.push_back(pgmBuilder.PgConst(pgDateType, x)); + } + + const auto list = pgmBuilder.NewList(pgDateType, data); + + const auto pgmReturn = pgmBuilder.Map(pgmBuilder.Sort(list, pgmBuilder.NewDataLiteral<bool>(true), + [&](TRuntimeNode item) { return item; }), + [&](TRuntimeNode item) { + return pgmBuilder.FromPg(pgmBuilder.PgCast(item, pgTextType), utf8Type); + }); + + const auto graph = setup.BuildGraph(pgmReturn); + const auto& result = graph->GetValue(); + + UNIT_ASSERT_VALUES_EQUAL(result.GetListLength(), sortedValues.size()); + for (ui32 i = 0; i < sortedValues.size(); ++i) { + auto elem = result.GetElement(i); + UNIT_ASSERT_VALUES_EQUAL(TStringBuf(elem.AsStringRef()), sortedValues[i]); } } -} // NMiniKQL -} // NKikimr +} // Y_UNIT_TEST_SUITE(TMiniKQLPGSortTest) +} // namespace NMiniKQL +} // namespace NKikimr diff --git a/yql/essentials/parser/pg_wrapper/ut/type_cache_ut.cpp b/yql/essentials/parser/pg_wrapper/ut/type_cache_ut.cpp index 7325f7c9c75..35bf67e00bb 100644 --- a/yql/essentials/parser/pg_wrapper/ut/type_cache_ut.cpp +++ b/yql/essentials/parser/pg_wrapper/ut/type_cache_ut.cpp @@ -23,178 +23,178 @@ extern "C" { using namespace ::NYql; Y_UNIT_TEST_SUITE(TLookupTypeCacheTests) { - // Defined in pg_type.dat - constexpr ui32 INT4_TYPEID = 23; - constexpr ui32 ANYARRAY_TYPEID = 2277; +// Defined in pg_type.dat +constexpr ui32 INT4_TYPEID = 23; +constexpr ui32 ANYARRAY_TYPEID = 2277; - TypeCacheEntry* cacheEntry = nullptr; +TypeCacheEntry* cacheEntry = nullptr; - // We initialize a basic minimally initialized PG cache entry - // The tests then fill in various parts of it - Y_TEST_HOOK_BEFORE_RUN(InitTest) { - pg_thread_init(); +// We initialize a basic minimally initialized PG cache entry +// The tests then fill in various parts of it +Y_TEST_HOOK_BEFORE_RUN(InitTest) { + pg_thread_init(); - cacheEntry = lookup_type_cache(INT4_TYPEID, 0); - } + cacheEntry = lookup_type_cache(INT4_TYPEID, 0); +} - Y_UNIT_TEST(TestEqOpr) { - auto cacheEntry = lookup_type_cache(INT4_TYPEID, TYPECACHE_EQ_OPR | TYPECACHE_EQ_OPR_FINFO); +Y_UNIT_TEST(TestEqOpr) { + auto cacheEntry = lookup_type_cache(INT4_TYPEID, TYPECACHE_EQ_OPR | TYPECACHE_EQ_OPR_FINFO); - UNIT_ASSERT(cacheEntry); + UNIT_ASSERT(cacheEntry); - UNIT_ASSERT(cacheEntry->btree_opf != InvalidOid); - UNIT_ASSERT(cacheEntry->btree_opintype == INT4_TYPEID); + UNIT_ASSERT(cacheEntry->btree_opf != InvalidOid); + UNIT_ASSERT(cacheEntry->btree_opintype == INT4_TYPEID); - UNIT_ASSERT(cacheEntry->eq_opr != InvalidOid); - UNIT_ASSERT(cacheEntry->eq_opr_finfo.fn_addr); + UNIT_ASSERT(cacheEntry->eq_opr != InvalidOid); + UNIT_ASSERT(cacheEntry->eq_opr_finfo.fn_addr); - UNIT_ASSERT(cacheEntry->flags & (TCFLAGS_CHECKED_BTREE_OPCLASS | TCFLAGS_CHECKED_EQ_OPR)); - } + UNIT_ASSERT(cacheEntry->flags & (TCFLAGS_CHECKED_BTREE_OPCLASS | TCFLAGS_CHECKED_EQ_OPR)); +} - Y_UNIT_TEST(TestEqOprArray) { - auto cacheEntry = lookup_type_cache(ANYARRAY_TYPEID, TYPECACHE_EQ_OPR | TYPECACHE_EQ_OPR_FINFO); +Y_UNIT_TEST(TestEqOprArray) { + auto cacheEntry = lookup_type_cache(ANYARRAY_TYPEID, TYPECACHE_EQ_OPR | TYPECACHE_EQ_OPR_FINFO); - UNIT_ASSERT(cacheEntry); + UNIT_ASSERT(cacheEntry); - UNIT_ASSERT(cacheEntry->btree_opf != InvalidOid); - UNIT_ASSERT(cacheEntry->btree_opintype == ANYARRAY_TYPEID); + UNIT_ASSERT(cacheEntry->btree_opf != InvalidOid); + UNIT_ASSERT(cacheEntry->btree_opintype == ANYARRAY_TYPEID); - UNIT_ASSERT(cacheEntry->eq_opr == InvalidOid); - UNIT_ASSERT(cacheEntry->eq_opr_finfo.fn_addr == nullptr); + UNIT_ASSERT(cacheEntry->eq_opr == InvalidOid); + UNIT_ASSERT(cacheEntry->eq_opr_finfo.fn_addr == nullptr); - UNIT_ASSERT(cacheEntry->flags & (TCFLAGS_CHECKED_BTREE_OPCLASS | TCFLAGS_CHECKED_EQ_OPR)); - } + UNIT_ASSERT(cacheEntry->flags & (TCFLAGS_CHECKED_BTREE_OPCLASS | TCFLAGS_CHECKED_EQ_OPR)); +} - Y_UNIT_TEST(TestLtOpr) { - auto cacheEntry = lookup_type_cache(INT4_TYPEID, TYPECACHE_LT_OPR); +Y_UNIT_TEST(TestLtOpr) { + auto cacheEntry = lookup_type_cache(INT4_TYPEID, TYPECACHE_LT_OPR); - UNIT_ASSERT(cacheEntry); + UNIT_ASSERT(cacheEntry); - UNIT_ASSERT(cacheEntry->btree_opf != InvalidOid); - UNIT_ASSERT(cacheEntry->btree_opintype == INT4_TYPEID); + UNIT_ASSERT(cacheEntry->btree_opf != InvalidOid); + UNIT_ASSERT(cacheEntry->btree_opintype == INT4_TYPEID); - UNIT_ASSERT(cacheEntry->lt_opr != InvalidOid); + UNIT_ASSERT(cacheEntry->lt_opr != InvalidOid); - UNIT_ASSERT(cacheEntry->flags & (TCFLAGS_CHECKED_BTREE_OPCLASS | TCFLAGS_CHECKED_LT_OPR)); - } + UNIT_ASSERT(cacheEntry->flags & (TCFLAGS_CHECKED_BTREE_OPCLASS | TCFLAGS_CHECKED_LT_OPR)); +} - Y_UNIT_TEST(TestLtOprArray) { - auto cacheEntry = lookup_type_cache(ANYARRAY_TYPEID, TYPECACHE_LT_OPR); +Y_UNIT_TEST(TestLtOprArray) { + auto cacheEntry = lookup_type_cache(ANYARRAY_TYPEID, TYPECACHE_LT_OPR); - UNIT_ASSERT(cacheEntry); + UNIT_ASSERT(cacheEntry); - UNIT_ASSERT(cacheEntry->btree_opf != InvalidOid); - UNIT_ASSERT(cacheEntry->btree_opintype == ANYARRAY_TYPEID); + UNIT_ASSERT(cacheEntry->btree_opf != InvalidOid); + UNIT_ASSERT(cacheEntry->btree_opintype == ANYARRAY_TYPEID); - UNIT_ASSERT(cacheEntry->lt_opr == InvalidOid); + UNIT_ASSERT(cacheEntry->lt_opr == InvalidOid); - UNIT_ASSERT(cacheEntry->flags & (TCFLAGS_CHECKED_BTREE_OPCLASS | TCFLAGS_CHECKED_LT_OPR)); - } + UNIT_ASSERT(cacheEntry->flags & (TCFLAGS_CHECKED_BTREE_OPCLASS | TCFLAGS_CHECKED_LT_OPR)); +} - Y_UNIT_TEST(TestGtOpr) { - auto cacheEntry = lookup_type_cache(INT4_TYPEID, TYPECACHE_GT_OPR); +Y_UNIT_TEST(TestGtOpr) { + auto cacheEntry = lookup_type_cache(INT4_TYPEID, TYPECACHE_GT_OPR); - UNIT_ASSERT(cacheEntry); + UNIT_ASSERT(cacheEntry); - UNIT_ASSERT(cacheEntry->btree_opf != InvalidOid); - UNIT_ASSERT(cacheEntry->btree_opintype == INT4_TYPEID); + UNIT_ASSERT(cacheEntry->btree_opf != InvalidOid); + UNIT_ASSERT(cacheEntry->btree_opintype == INT4_TYPEID); - UNIT_ASSERT(cacheEntry->gt_opr != InvalidOid); + UNIT_ASSERT(cacheEntry->gt_opr != InvalidOid); - UNIT_ASSERT(cacheEntry->flags & (TCFLAGS_CHECKED_BTREE_OPCLASS | TCFLAGS_CHECKED_GT_OPR)); - } + UNIT_ASSERT(cacheEntry->flags & (TCFLAGS_CHECKED_BTREE_OPCLASS | TCFLAGS_CHECKED_GT_OPR)); +} - Y_UNIT_TEST(TestGtOprArray) { - auto cacheEntry = lookup_type_cache(ANYARRAY_TYPEID, TYPECACHE_GT_OPR); +Y_UNIT_TEST(TestGtOprArray) { + auto cacheEntry = lookup_type_cache(ANYARRAY_TYPEID, TYPECACHE_GT_OPR); - UNIT_ASSERT(cacheEntry); + UNIT_ASSERT(cacheEntry); - UNIT_ASSERT(cacheEntry->btree_opf != InvalidOid); - UNIT_ASSERT(cacheEntry->btree_opintype == ANYARRAY_TYPEID); + UNIT_ASSERT(cacheEntry->btree_opf != InvalidOid); + UNIT_ASSERT(cacheEntry->btree_opintype == ANYARRAY_TYPEID); - UNIT_ASSERT(cacheEntry->gt_opr == InvalidOid); + UNIT_ASSERT(cacheEntry->gt_opr == InvalidOid); - UNIT_ASSERT(cacheEntry->flags & (TCFLAGS_CHECKED_BTREE_OPCLASS | TCFLAGS_CHECKED_GT_OPR)); - } + UNIT_ASSERT(cacheEntry->flags & (TCFLAGS_CHECKED_BTREE_OPCLASS | TCFLAGS_CHECKED_GT_OPR)); +} - Y_UNIT_TEST(TestCmpProc) { - auto cacheEntry = lookup_type_cache(INT4_TYPEID, TYPECACHE_CMP_PROC | TYPECACHE_CMP_PROC_FINFO); +Y_UNIT_TEST(TestCmpProc) { + auto cacheEntry = lookup_type_cache(INT4_TYPEID, TYPECACHE_CMP_PROC | TYPECACHE_CMP_PROC_FINFO); - UNIT_ASSERT(cacheEntry); + UNIT_ASSERT(cacheEntry); - UNIT_ASSERT(cacheEntry->btree_opf != InvalidOid); - UNIT_ASSERT(cacheEntry->btree_opintype == INT4_TYPEID); + UNIT_ASSERT(cacheEntry->btree_opf != InvalidOid); + UNIT_ASSERT(cacheEntry->btree_opintype == INT4_TYPEID); - UNIT_ASSERT(cacheEntry->cmp_proc != InvalidOid); - UNIT_ASSERT(cacheEntry->cmp_proc_finfo.fn_addr); + UNIT_ASSERT(cacheEntry->cmp_proc != InvalidOid); + UNIT_ASSERT(cacheEntry->cmp_proc_finfo.fn_addr); - UNIT_ASSERT(cacheEntry->flags & (TCFLAGS_CHECKED_BTREE_OPCLASS | TCFLAGS_CHECKED_CMP_PROC)); - } + UNIT_ASSERT(cacheEntry->flags & (TCFLAGS_CHECKED_BTREE_OPCLASS | TCFLAGS_CHECKED_CMP_PROC)); +} - Y_UNIT_TEST(TestCmpProcArray) { - auto cacheEntry = lookup_type_cache(ANYARRAY_TYPEID, TYPECACHE_CMP_PROC | TYPECACHE_CMP_PROC_FINFO); +Y_UNIT_TEST(TestCmpProcArray) { + auto cacheEntry = lookup_type_cache(ANYARRAY_TYPEID, TYPECACHE_CMP_PROC | TYPECACHE_CMP_PROC_FINFO); - UNIT_ASSERT(cacheEntry); + UNIT_ASSERT(cacheEntry); - UNIT_ASSERT(cacheEntry->btree_opf != InvalidOid); - UNIT_ASSERT(cacheEntry->btree_opintype == ANYARRAY_TYPEID); + UNIT_ASSERT(cacheEntry->btree_opf != InvalidOid); + UNIT_ASSERT(cacheEntry->btree_opintype == ANYARRAY_TYPEID); - UNIT_ASSERT(cacheEntry->cmp_proc == InvalidOid); + UNIT_ASSERT(cacheEntry->cmp_proc == InvalidOid); - UNIT_ASSERT(cacheEntry->flags & (TCFLAGS_CHECKED_BTREE_OPCLASS | TCFLAGS_CHECKED_CMP_PROC)); - } + UNIT_ASSERT(cacheEntry->flags & (TCFLAGS_CHECKED_BTREE_OPCLASS | TCFLAGS_CHECKED_CMP_PROC)); +} - Y_UNIT_TEST(TestHashProc) { - auto cacheEntry = lookup_type_cache(INT4_TYPEID, TYPECACHE_HASH_PROC | TYPECACHE_HASH_PROC_FINFO); +Y_UNIT_TEST(TestHashProc) { + auto cacheEntry = lookup_type_cache(INT4_TYPEID, TYPECACHE_HASH_PROC | TYPECACHE_HASH_PROC_FINFO); - UNIT_ASSERT(cacheEntry); + UNIT_ASSERT(cacheEntry); - UNIT_ASSERT(cacheEntry->hash_opf != InvalidOid); - UNIT_ASSERT(cacheEntry->hash_opintype == INT4_TYPEID); + UNIT_ASSERT(cacheEntry->hash_opf != InvalidOid); + UNIT_ASSERT(cacheEntry->hash_opintype == INT4_TYPEID); - UNIT_ASSERT(cacheEntry->hash_proc != InvalidOid); - UNIT_ASSERT(cacheEntry->hash_proc_finfo.fn_addr); + UNIT_ASSERT(cacheEntry->hash_proc != InvalidOid); + UNIT_ASSERT(cacheEntry->hash_proc_finfo.fn_addr); - UNIT_ASSERT(cacheEntry->flags & (TCFLAGS_CHECKED_HASH_OPCLASS | TCFLAGS_CHECKED_HASH_PROC)); - } + UNIT_ASSERT(cacheEntry->flags & (TCFLAGS_CHECKED_HASH_OPCLASS | TCFLAGS_CHECKED_HASH_PROC)); +} - Y_UNIT_TEST(TestHashProcArray) { - auto cacheEntry = lookup_type_cache(ANYARRAY_TYPEID, TYPECACHE_HASH_PROC | TYPECACHE_HASH_PROC_FINFO); +Y_UNIT_TEST(TestHashProcArray) { + auto cacheEntry = lookup_type_cache(ANYARRAY_TYPEID, TYPECACHE_HASH_PROC | TYPECACHE_HASH_PROC_FINFO); - UNIT_ASSERT(cacheEntry); + UNIT_ASSERT(cacheEntry); - UNIT_ASSERT(cacheEntry->hash_opf != InvalidOid); - UNIT_ASSERT(cacheEntry->hash_opintype == ANYARRAY_TYPEID); + UNIT_ASSERT(cacheEntry->hash_opf != InvalidOid); + UNIT_ASSERT(cacheEntry->hash_opintype == ANYARRAY_TYPEID); - UNIT_ASSERT(cacheEntry->hash_proc == InvalidOid); + UNIT_ASSERT(cacheEntry->hash_proc == InvalidOid); - UNIT_ASSERT(cacheEntry->flags & (TCFLAGS_CHECKED_HASH_OPCLASS | TCFLAGS_CHECKED_HASH_PROC)); - } + UNIT_ASSERT(cacheEntry->flags & (TCFLAGS_CHECKED_HASH_OPCLASS | TCFLAGS_CHECKED_HASH_PROC)); +} - Y_UNIT_TEST(TestHashExtendedProc) { - auto cacheEntry = lookup_type_cache(INT4_TYPEID, TYPECACHE_HASH_EXTENDED_PROC | TYPECACHE_HASH_EXTENDED_PROC_FINFO); +Y_UNIT_TEST(TestHashExtendedProc) { + auto cacheEntry = lookup_type_cache(INT4_TYPEID, TYPECACHE_HASH_EXTENDED_PROC | TYPECACHE_HASH_EXTENDED_PROC_FINFO); - UNIT_ASSERT(cacheEntry); + UNIT_ASSERT(cacheEntry); - UNIT_ASSERT(cacheEntry->hash_opf != InvalidOid); - UNIT_ASSERT(cacheEntry->hash_opintype == INT4_TYPEID); + UNIT_ASSERT(cacheEntry->hash_opf != InvalidOid); + UNIT_ASSERT(cacheEntry->hash_opintype == INT4_TYPEID); - UNIT_ASSERT(cacheEntry->hash_extended_proc != InvalidOid); - UNIT_ASSERT(cacheEntry->hash_extended_proc_finfo.fn_addr); + UNIT_ASSERT(cacheEntry->hash_extended_proc != InvalidOid); + UNIT_ASSERT(cacheEntry->hash_extended_proc_finfo.fn_addr); - UNIT_ASSERT(cacheEntry->flags & (TCFLAGS_CHECKED_HASH_OPCLASS | TCFLAGS_CHECKED_HASH_EXTENDED_PROC)); - } + UNIT_ASSERT(cacheEntry->flags & (TCFLAGS_CHECKED_HASH_OPCLASS | TCFLAGS_CHECKED_HASH_EXTENDED_PROC)); +} - Y_UNIT_TEST(TestHashExtendedProcArray) { - auto cacheEntry = lookup_type_cache(ANYARRAY_TYPEID, TYPECACHE_HASH_EXTENDED_PROC | TYPECACHE_HASH_EXTENDED_PROC_FINFO); +Y_UNIT_TEST(TestHashExtendedProcArray) { + auto cacheEntry = lookup_type_cache(ANYARRAY_TYPEID, TYPECACHE_HASH_EXTENDED_PROC | TYPECACHE_HASH_EXTENDED_PROC_FINFO); - UNIT_ASSERT(cacheEntry); + UNIT_ASSERT(cacheEntry); - UNIT_ASSERT(cacheEntry->hash_opf != InvalidOid); - UNIT_ASSERT(cacheEntry->hash_opintype == ANYARRAY_TYPEID); + UNIT_ASSERT(cacheEntry->hash_opf != InvalidOid); + UNIT_ASSERT(cacheEntry->hash_opintype == ANYARRAY_TYPEID); - UNIT_ASSERT(cacheEntry->hash_extended_proc == InvalidOid); + UNIT_ASSERT(cacheEntry->hash_extended_proc == InvalidOid); - UNIT_ASSERT(cacheEntry->flags & (TCFLAGS_CHECKED_HASH_OPCLASS | TCFLAGS_CHECKED_HASH_EXTENDED_PROC)); - } + UNIT_ASSERT(cacheEntry->flags & (TCFLAGS_CHECKED_HASH_OPCLASS | TCFLAGS_CHECKED_HASH_EXTENDED_PROC)); } +} // Y_UNIT_TEST_SUITE(TLookupTypeCacheTests) diff --git a/yql/essentials/parser/pg_wrapper/ya.make b/yql/essentials/parser/pg_wrapper/ya.make index 05b091312a0..4056e7e6580 100644 --- a/yql/essentials/parser/pg_wrapper/ya.make +++ b/yql/essentials/parser/pg_wrapper/ya.make @@ -1,5 +1,7 @@ LIBRARY() +ENABLE(SKIP_YQL_STYLE_CPP) + PROVIDES( yql_pg_runtime ) diff --git a/yql/essentials/parser/proto_ast/antlr4/ya.make b/yql/essentials/parser/proto_ast/antlr4/ya.make index 22ce23402bc..18c68a249bc 100644 --- a/yql/essentials/parser/proto_ast/antlr4/ya.make +++ b/yql/essentials/parser/proto_ast/antlr4/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - PEERDIR( yql/essentials/parser/common/antlr4 yql/essentials/parser/proto_ast diff --git a/yql/essentials/parser/proto_ast/collect_issues/ya.make b/yql/essentials/parser/proto_ast/collect_issues/ya.make index f7600fb3e1e..e2e6b681dbb 100644 --- a/yql/essentials/parser/proto_ast/collect_issues/ya.make +++ b/yql/essentials/parser/proto_ast/collect_issues/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - PEERDIR( yql/essentials/parser/common ) diff --git a/yql/essentials/parser/proto_ast/ya.make b/yql/essentials/parser/proto_ast/ya.make index 973da2e40ad..95ada246fa9 100644 --- a/yql/essentials/parser/proto_ast/ya.make +++ b/yql/essentials/parser/proto_ast/ya.make @@ -2,8 +2,6 @@ LIBRARY() HEADERS(common.h) -ENABLE(YQL_STYLE_CPP) - PEERDIR( contrib/libs/protobuf yql/essentials/parser/common diff --git a/yql/essentials/providers/common/activation/ya.make b/yql/essentials/providers/common/activation/ya.make index d8fdc223d1f..646bb2f6aa0 100644 --- a/yql/essentials/providers/common/activation/ya.make +++ b/yql/essentials/providers/common/activation/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( yql_activation.cpp ) diff --git a/yql/essentials/providers/common/arrow_resolve/ya.make b/yql/essentials/providers/common/arrow_resolve/ya.make index cfcd3440480..ad1d57a53ef 100644 --- a/yql/essentials/providers/common/arrow_resolve/ya.make +++ b/yql/essentials/providers/common/arrow_resolve/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( yql_simple_arrow_resolver.cpp ) diff --git a/yql/essentials/providers/common/codec/arrow/ya.make b/yql/essentials/providers/common/codec/arrow/ya.make index 72ae87cc507..fbd5cfab23c 100644 --- a/yql/essentials/providers/common/codec/arrow/ya.make +++ b/yql/essentials/providers/common/codec/arrow/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - PEERDIR( contrib/libs/apache/arrow yql/essentials/minikql/arrow diff --git a/yql/essentials/providers/common/codec/ut/ya.make b/yql/essentials/providers/common/codec/ut/ya.make index 2501c8670f7..af5b79a10ff 100644 --- a/yql/essentials/providers/common/codec/ut/ya.make +++ b/yql/essentials/providers/common/codec/ut/ya.make @@ -1,7 +1,5 @@ UNITTEST_FOR(yql/essentials/providers/common/codec) -ENABLE(YQL_STYLE_CPP) - FORK_SUBTESTS() IF (SANITIZER_TYPE OR WITH_VALGRIND) diff --git a/yql/essentials/providers/common/codec/ya.make b/yql/essentials/providers/common/codec/ya.make index 5c73d270749..a55ef22bbf0 100644 --- a/yql/essentials/providers/common/codec/ya.make +++ b/yql/essentials/providers/common/codec/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( yql_codec.cpp yql_codec.h diff --git a/yql/essentials/providers/common/codec/yt_arrow_converter_interface/ya.make b/yql/essentials/providers/common/codec/yt_arrow_converter_interface/ya.make index 4e3be3cceab..de05d309851 100644 --- a/yql/essentials/providers/common/codec/yt_arrow_converter_interface/ya.make +++ b/yql/essentials/providers/common/codec/yt_arrow_converter_interface/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - PEERDIR( contrib/libs/apache/arrow yql/essentials/public/udf diff --git a/yql/essentials/providers/common/comp_nodes/ya.make b/yql/essentials/providers/common/comp_nodes/ya.make index bce6a39e30d..e158d76eecd 100644 --- a/yql/essentials/providers/common/comp_nodes/ya.make +++ b/yql/essentials/providers/common/comp_nodes/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( yql_factory.h yql_factory.cpp diff --git a/yql/essentials/providers/common/config/ya.make b/yql/essentials/providers/common/config/ya.make index 1a642991c65..91e3c42086c 100644 --- a/yql/essentials/providers/common/config/ya.make +++ b/yql/essentials/providers/common/config/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( yql_configuration_transformer.cpp yql_dispatch.cpp diff --git a/yql/essentials/providers/common/dq/ya.make b/yql/essentials/providers/common/dq/ya.make index dfe55a7d9c6..e0ce0e804ac 100644 --- a/yql/essentials/providers/common/dq/ya.make +++ b/yql/essentials/providers/common/dq/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( yql_dq_integration_impl.cpp yql_dq_optimization_impl.cpp diff --git a/yql/essentials/providers/common/gateway/ya.make b/yql/essentials/providers/common/gateway/ya.make index 2fed1eabeeb..0f9343e9fe5 100644 --- a/yql/essentials/providers/common/gateway/ya.make +++ b/yql/essentials/providers/common/gateway/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( yql_provider_gateway.h yql_provider_gateway.cpp diff --git a/yql/essentials/providers/common/gateways_utils/ya.make b/yql/essentials/providers/common/gateways_utils/ya.make index 9c31c7fa200..86585170462 100644 --- a/yql/essentials/providers/common/gateways_utils/ya.make +++ b/yql/essentials/providers/common/gateways_utils/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( gateways_utils.cpp ) diff --git a/yql/essentials/providers/common/metrics/ya.make b/yql/essentials/providers/common/metrics/ya.make index 2016b92da5a..c8c083aa78e 100644 --- a/yql/essentials/providers/common/metrics/ya.make +++ b/yql/essentials/providers/common/metrics/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( metrics_registry.cpp sensors_group.cpp diff --git a/yql/essentials/providers/common/mkql/ya.make b/yql/essentials/providers/common/mkql/ya.make index c4e1063dfc7..fcb8fa8c843 100644 --- a/yql/essentials/providers/common/mkql/ya.make +++ b/yql/essentials/providers/common/mkql/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( yql_provider_mkql.cpp yql_provider_mkql.h diff --git a/yql/essentials/providers/common/mkql_simple_file/ya.make b/yql/essentials/providers/common/mkql_simple_file/ya.make index 5fa7562300d..620e10da05c 100644 --- a/yql/essentials/providers/common/mkql_simple_file/ya.make +++ b/yql/essentials/providers/common/mkql_simple_file/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( mkql_simple_file.cpp ) diff --git a/yql/essentials/providers/common/provider/ya.make b/yql/essentials/providers/common/provider/ya.make index a788e5d4345..dfcf35befe4 100644 --- a/yql/essentials/providers/common/provider/ya.make +++ b/yql/essentials/providers/common/provider/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( yql_data_provider_impl.cpp yql_data_provider_impl.h diff --git a/yql/essentials/providers/common/schema/expr/ya.make b/yql/essentials/providers/common/schema/expr/ya.make index 0283d0c23d7..344b128ba27 100644 --- a/yql/essentials/providers/common/schema/expr/ya.make +++ b/yql/essentials/providers/common/schema/expr/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( yql_expr_schema.cpp ) diff --git a/yql/essentials/providers/common/schema/mkql/ya.make b/yql/essentials/providers/common/schema/mkql/ya.make index 05af5efc50b..5c89f7cc62e 100644 --- a/yql/essentials/providers/common/schema/mkql/ya.make +++ b/yql/essentials/providers/common/schema/mkql/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( yql_mkql_schema.cpp ) diff --git a/yql/essentials/providers/common/schema/parser/ya.make b/yql/essentials/providers/common/schema/parser/ya.make index 04d75d996c1..34da9b75318 100644 --- a/yql/essentials/providers/common/schema/parser/ya.make +++ b/yql/essentials/providers/common/schema/parser/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( yql_type_parser.cpp ) diff --git a/yql/essentials/providers/common/schema/skiff/ya.make b/yql/essentials/providers/common/schema/skiff/ya.make index 452bf33b194..c16fd9bbc25 100644 --- a/yql/essentials/providers/common/schema/skiff/ya.make +++ b/yql/essentials/providers/common/schema/skiff/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( yql_skiff_schema.cpp ) diff --git a/yql/essentials/providers/common/schema/ya.make b/yql/essentials/providers/common/schema/ya.make index 69781c5f679..bc28e303691 100644 --- a/yql/essentials/providers/common/schema/ya.make +++ b/yql/essentials/providers/common/schema/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( yql_schema_utils.cpp ) diff --git a/yql/essentials/providers/common/structured_token/ut/ya.make b/yql/essentials/providers/common/structured_token/ut/ya.make index 8a77a7a4e8b..14086e3863e 100644 --- a/yql/essentials/providers/common/structured_token/ut/ya.make +++ b/yql/essentials/providers/common/structured_token/ut/ya.make @@ -1,7 +1,5 @@ UNITTEST_FOR(yql/essentials/providers/common/structured_token) -ENABLE(YQL_STYLE_CPP) - SRCS( yql_structured_token_ut.cpp yql_token_builder_ut.cpp diff --git a/yql/essentials/providers/common/structured_token/ya.make b/yql/essentials/providers/common/structured_token/ya.make index 6d8be5f5146..b50b49137bc 100644 --- a/yql/essentials/providers/common/structured_token/ya.make +++ b/yql/essentials/providers/common/structured_token/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( yql_structured_token.cpp yql_structured_token.h diff --git a/yql/essentials/providers/common/transform/ya.make b/yql/essentials/providers/common/transform/ya.make index 512c4f1492c..1eda9eaf2f5 100644 --- a/yql/essentials/providers/common/transform/ya.make +++ b/yql/essentials/providers/common/transform/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( yql_exec.cpp yql_lazy_init.cpp diff --git a/yql/essentials/providers/common/udf_resolve/ya.make b/yql/essentials/providers/common/udf_resolve/ya.make index ea801d6f998..fec4639561f 100644 --- a/yql/essentials/providers/common/udf_resolve/ya.make +++ b/yql/essentials/providers/common/udf_resolve/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( yql_files_box.cpp yql_files_box.h diff --git a/yql/essentials/providers/config/ya.make b/yql/essentials/providers/config/ya.make index 3bd0f8d51a3..84262cb65e1 100644 --- a/yql/essentials/providers/config/ya.make +++ b/yql/essentials/providers/config/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( yql_config_provider.cpp yql_config_provider.h diff --git a/yql/essentials/providers/pg/expr_nodes/ya.make b/yql/essentials/providers/pg/expr_nodes/ya.make index aa6c117151c..8dc66321594 100644 --- a/yql/essentials/providers/pg/expr_nodes/ya.make +++ b/yql/essentials/providers/pg/expr_nodes/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( yql_pg_expr_nodes.cpp ) diff --git a/yql/essentials/providers/pg/provider/ya.make b/yql/essentials/providers/pg/provider/ya.make index 48a4ffb1004..6c0f6c0d035 100644 --- a/yql/essentials/providers/pg/provider/ya.make +++ b/yql/essentials/providers/pg/provider/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( yql_pg_datasink.cpp yql_pg_datasink_execution.cpp diff --git a/yql/essentials/providers/pure/ut/ya.make b/yql/essentials/providers/pure/ut/ya.make index 3bb9421851e..4ab8e939626 100644 --- a/yql/essentials/providers/pure/ut/ya.make +++ b/yql/essentials/providers/pure/ut/ya.make @@ -1,7 +1,5 @@ UNITTEST_FOR(yql/essentials/providers/pure) -ENABLE(YQL_STYLE_CPP) - SIZE(MEDIUM) SRCS( diff --git a/yql/essentials/providers/pure/ya.make b/yql/essentials/providers/pure/ya.make index a49e4c8a927..d7bbf0e5abc 100644 --- a/yql/essentials/providers/pure/ya.make +++ b/yql/essentials/providers/pure/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( yql_pure_provider.cpp yql_pure_provider.h diff --git a/yql/essentials/providers/result/expr_nodes/ya.make b/yql/essentials/providers/result/expr_nodes/ya.make index bdc845d8584..ca3a6bf63fb 100644 --- a/yql/essentials/providers/result/expr_nodes/ya.make +++ b/yql/essentials/providers/result/expr_nodes/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( yql_res_expr_nodes.cpp ) diff --git a/yql/essentials/providers/result/provider/ya.make b/yql/essentials/providers/result/provider/ya.make index 30eb53a7e98..908aaa25f75 100644 --- a/yql/essentials/providers/result/provider/ya.make +++ b/yql/essentials/providers/result/provider/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( yql_result_provider.cpp yql_result_provider.h diff --git a/yql/essentials/public/decimal/ut/ya.make b/yql/essentials/public/decimal/ut/ya.make index 1197400f3f4..aad0eb010ba 100644 --- a/yql/essentials/public/decimal/ut/ya.make +++ b/yql/essentials/public/decimal/ut/ya.make @@ -1,7 +1,5 @@ UNITTEST_FOR(yql/essentials/public/decimal) -ENABLE(YQL_STYLE_CPP) - SRCS(yql_decimal_ut.cpp yql_wide_int_ut.cpp) END() diff --git a/yql/essentials/public/decimal/ya.make b/yql/essentials/public/decimal/ya.make index a014a579fb4..a9c23995b33 100644 --- a/yql/essentials/public/decimal/ya.make +++ b/yql/essentials/public/decimal/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( yql_decimal.h yql_decimal.cpp diff --git a/yql/essentials/public/fastcheck/ut/ya.make b/yql/essentials/public/fastcheck/ut/ya.make index 244dffd1249..91a2c5c9b40 100644 --- a/yql/essentials/public/fastcheck/ut/ya.make +++ b/yql/essentials/public/fastcheck/ut/ya.make @@ -1,7 +1,5 @@ UNITTEST_FOR(yql/essentials/public/fastcheck) -ENABLE(YQL_STYLE_CPP) - SRCS( fastcheck_ut.cpp linter_ut.cpp diff --git a/yql/essentials/public/fastcheck/ya.make b/yql/essentials/public/fastcheck/ya.make index 01999ded3bd..2b374581d43 100644 --- a/yql/essentials/public/fastcheck/ya.make +++ b/yql/essentials/public/fastcheck/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( check_runner.cpp fastcheck.cpp diff --git a/yql/essentials/public/issue/ut/ya.make b/yql/essentials/public/issue/ut/ya.make index 28bebef5d25..46f35941bcb 100644 --- a/yql/essentials/public/issue/ut/ya.make +++ b/yql/essentials/public/issue/ut/ya.make @@ -1,7 +1,5 @@ UNITTEST_FOR(yql/essentials/public/issue) -ENABLE(YQL_STYLE_CPP) - FORK_SUBTESTS() SRCS( diff --git a/yql/essentials/public/issue/ya.make b/yql/essentials/public/issue/ya.make index 5d91d21a7f7..f376c8bcda7 100644 --- a/yql/essentials/public/issue/ya.make +++ b/yql/essentials/public/issue/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( yql_issue.cpp yql_issue_message.cpp diff --git a/yql/essentials/public/langver/ut/ya.make b/yql/essentials/public/langver/ut/ya.make index 092ac834a94..ab179a9c34a 100644 --- a/yql/essentials/public/langver/ut/ya.make +++ b/yql/essentials/public/langver/ut/ya.make @@ -1,7 +1,5 @@ UNITTEST_FOR(yql/essentials/public/langver) -ENABLE(YQL_STYLE_CPP) - SRCS( yql_langver_ut.cpp ) diff --git a/yql/essentials/public/langver/ya.make b/yql/essentials/public/langver/ya.make index 77a7b1116c1..b00ca55b9c0 100644 --- a/yql/essentials/public/langver/ya.make +++ b/yql/essentials/public/langver/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( yql_langver.cpp ) diff --git a/yql/essentials/public/purecalc/common/ya.make.inc b/yql/essentials/public/purecalc/common/ya.make.inc index d5c4292d9b7..8aaf8e7c3f7 100644 --- a/yql/essentials/public/purecalc/common/ya.make.inc +++ b/yql/essentials/public/purecalc/common/ya.make.inc @@ -1,5 +1,3 @@ -ENABLE(YQL_STYLE_CPP) - SRCDIR( yql/essentials/public/purecalc/common ) diff --git a/yql/essentials/public/purecalc/examples/protobuf/ya.make b/yql/essentials/public/purecalc/examples/protobuf/ya.make index 9589ce28ccf..c50a3c4af25 100644 --- a/yql/essentials/public/purecalc/examples/protobuf/ya.make +++ b/yql/essentials/public/purecalc/examples/protobuf/ya.make @@ -1,7 +1,5 @@ PROGRAM() -ENABLE(YQL_STYLE_CPP) - SRCS( main.proto main.cpp diff --git a/yql/essentials/public/purecalc/examples/protobuf_pull_list/ya.make b/yql/essentials/public/purecalc/examples/protobuf_pull_list/ya.make index 9eceb2893a9..a102f5fb2ca 100644 --- a/yql/essentials/public/purecalc/examples/protobuf_pull_list/ya.make +++ b/yql/essentials/public/purecalc/examples/protobuf_pull_list/ya.make @@ -1,7 +1,5 @@ PROGRAM() -ENABLE(YQL_STYLE_CPP) - SRCS( main.proto main.cpp diff --git a/yql/essentials/public/purecalc/helpers/protobuf/ya.make b/yql/essentials/public/purecalc/helpers/protobuf/ya.make index 5e1b006bf92..11300baba84 100644 --- a/yql/essentials/public/purecalc/helpers/protobuf/ya.make +++ b/yql/essentials/public/purecalc/helpers/protobuf/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( schema_from_proto.cpp ) diff --git a/yql/essentials/public/purecalc/helpers/stream/ya.make b/yql/essentials/public/purecalc/helpers/stream/ya.make index c6aa839b803..f40bb9af559 100644 --- a/yql/essentials/public/purecalc/helpers/stream/ya.make +++ b/yql/essentials/public/purecalc/helpers/stream/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( stream_from_vector.cpp ) diff --git a/yql/essentials/public/purecalc/io_specs/arrow/ut/ya.make b/yql/essentials/public/purecalc/io_specs/arrow/ut/ya.make index 6e50cdd16d1..ad7eb5881f5 100644 --- a/yql/essentials/public/purecalc/io_specs/arrow/ut/ya.make +++ b/yql/essentials/public/purecalc/io_specs/arrow/ut/ya.make @@ -1,7 +1,5 @@ UNITTEST() -ENABLE(YQL_STYLE_CPP) - SIZE(MEDIUM) TIMEOUT(300) diff --git a/yql/essentials/public/purecalc/io_specs/arrow/ya.make.inc b/yql/essentials/public/purecalc/io_specs/arrow/ya.make.inc index ef958d3a24a..37ff3be849e 100644 --- a/yql/essentials/public/purecalc/io_specs/arrow/ya.make.inc +++ b/yql/essentials/public/purecalc/io_specs/arrow/ya.make.inc @@ -1,5 +1,3 @@ -ENABLE(YQL_STYLE_CPP) - SRCDIR( yql/essentials/public/purecalc/io_specs/arrow ) diff --git a/yql/essentials/public/purecalc/io_specs/protobuf/ut/ya.make b/yql/essentials/public/purecalc/io_specs/protobuf/ut/ya.make index 69e36132340..2519816d02e 100644 --- a/yql/essentials/public/purecalc/io_specs/protobuf/ut/ya.make +++ b/yql/essentials/public/purecalc/io_specs/protobuf/ut/ya.make @@ -2,8 +2,6 @@ IF (NOT SANITIZER_TYPE) UNITTEST() -ENABLE(YQL_STYLE_CPP) - PEERDIR( library/cpp/protobuf/util yql/essentials/public/udf/service/exception_policy diff --git a/yql/essentials/public/purecalc/io_specs/protobuf/ya.make b/yql/essentials/public/purecalc/io_specs/protobuf/ya.make index 600bf9df61d..b9441ceecf4 100644 --- a/yql/essentials/public/purecalc/io_specs/protobuf/ya.make +++ b/yql/essentials/public/purecalc/io_specs/protobuf/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - PEERDIR( yql/essentials/public/purecalc/common yql/essentials/public/purecalc/io_specs/protobuf_raw diff --git a/yql/essentials/public/purecalc/io_specs/protobuf_raw/ya.make b/yql/essentials/public/purecalc/io_specs/protobuf_raw/ya.make index 7b917148e2e..db3fab7e7a5 100644 --- a/yql/essentials/public/purecalc/io_specs/protobuf_raw/ya.make +++ b/yql/essentials/public/purecalc/io_specs/protobuf_raw/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - PEERDIR( yql/essentials/public/purecalc/common yql/essentials/public/purecalc/helpers/protobuf diff --git a/yql/essentials/public/purecalc/no_llvm/ya.make b/yql/essentials/public/purecalc/no_llvm/ya.make index 84a73440c5c..1cff51e09eb 100644 --- a/yql/essentials/public/purecalc/no_llvm/ya.make +++ b/yql/essentials/public/purecalc/no_llvm/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - ADDINCL( yql/essentials/public/purecalc ) diff --git a/yql/essentials/public/purecalc/ut/lib/ya.make b/yql/essentials/public/purecalc/ut/lib/ya.make index bff80e2cb97..36134a2940b 100644 --- a/yql/essentials/public/purecalc/ut/lib/ya.make +++ b/yql/essentials/public/purecalc/ut/lib/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - PEERDIR( contrib/libs/apache/arrow library/cpp/yson diff --git a/yql/essentials/public/purecalc/ut/ya.make b/yql/essentials/public/purecalc/ut/ya.make index a9fbe4dd9ab..2f4882c1291 100644 --- a/yql/essentials/public/purecalc/ut/ya.make +++ b/yql/essentials/public/purecalc/ut/ya.make @@ -1,7 +1,5 @@ UNITTEST() -ENABLE(YQL_STYLE_CPP) - SRCS( empty_stream.h fake_spec.cpp diff --git a/yql/essentials/public/purecalc/ya.make b/yql/essentials/public/purecalc/ya.make index 0d820f08348..e7f3ff8818f 100644 --- a/yql/essentials/public/purecalc/ya.make +++ b/yql/essentials/public/purecalc/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( purecalc.cpp ) diff --git a/yql/essentials/public/result_format/ut/ya.make b/yql/essentials/public/result_format/ut/ya.make index 22655955c78..6230085e7dc 100644 --- a/yql/essentials/public/result_format/ut/ya.make +++ b/yql/essentials/public/result_format/ut/ya.make @@ -1,7 +1,5 @@ UNITTEST_FOR(yql/essentials/public/result_format) -ENABLE(YQL_STYLE_CPP) - SRCS( yql_result_format_response_ut.cpp yql_result_format_type_ut.cpp diff --git a/yql/essentials/public/result_format/ya.make b/yql/essentials/public/result_format/ya.make index 1dfc2382739..3181d30365b 100644 --- a/yql/essentials/public/result_format/ya.make +++ b/yql/essentials/public/result_format/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( yql_result_format_response.cpp yql_result_format_type.cpp diff --git a/yql/essentials/public/sql_format/ya.make b/yql/essentials/public/sql_format/ya.make index fdd164a3c6b..d775025e54e 100644 --- a/yql/essentials/public/sql_format/ya.make +++ b/yql/essentials/public/sql_format/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( sql_format.cpp ) diff --git a/yql/essentials/public/udf/arrow/ut/ya.make b/yql/essentials/public/udf/arrow/ut/ya.make index 4f3e9e00b77..037deb20fc8 100644 --- a/yql/essentials/public/udf/arrow/ut/ya.make +++ b/yql/essentials/public/udf/arrow/ut/ya.make @@ -1,7 +1,5 @@ UNITTEST() -ENABLE(YQL_STYLE_CPP) - SRCS( array_builder_ut.cpp bit_util_ut.cpp diff --git a/yql/essentials/public/udf/arrow/ya.make b/yql/essentials/public/udf/arrow/ya.make index 88554de462d..3928b638522 100644 --- a/yql/essentials/public/udf/arrow/ya.make +++ b/yql/essentials/public/udf/arrow/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( args_dechunker.cpp udf_arrow_helpers.cpp diff --git a/yql/essentials/public/udf/service/exception_policy/ya.make b/yql/essentials/public/udf/service/exception_policy/ya.make index 720fc9bd574..b985d2d0f13 100644 --- a/yql/essentials/public/udf/service/exception_policy/ya.make +++ b/yql/essentials/public/udf/service/exception_policy/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - PROVIDES(YqlServicePolicy) SRCS( diff --git a/yql/essentials/public/udf/service/stub/ya.make b/yql/essentials/public/udf/service/stub/ya.make index 2c3248ff47d..94ebed75673 100644 --- a/yql/essentials/public/udf/service/stub/ya.make +++ b/yql/essentials/public/udf/service/stub/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - PROVIDES(YqlServicePolicy) SRCS( diff --git a/yql/essentials/public/udf/service/terminate_policy/ya.make b/yql/essentials/public/udf/service/terminate_policy/ya.make index 720fc9bd574..b985d2d0f13 100644 --- a/yql/essentials/public/udf/service/terminate_policy/ya.make +++ b/yql/essentials/public/udf/service/terminate_policy/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - PROVIDES(YqlServicePolicy) SRCS( diff --git a/yql/essentials/public/udf/support/ya.make b/yql/essentials/public/udf/support/ya.make index 6a1c75234d9..02c4197666d 100644 --- a/yql/essentials/public/udf/support/ya.make +++ b/yql/essentials/public/udf/support/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( udf_support.cpp ) diff --git a/yql/essentials/public/udf/ut/ya.make b/yql/essentials/public/udf/ut/ya.make index e7fd58890c7..f4aa2a5a4e4 100644 --- a/yql/essentials/public/udf/ut/ya.make +++ b/yql/essentials/public/udf/ut/ya.make @@ -1,7 +1,5 @@ UNITTEST_FOR(yql/essentials/public/udf) -ENABLE(YQL_STYLE_CPP) - SRCS( udf_counter_ut.cpp udf_value_ut.cpp diff --git a/yql/essentials/public/udf/ya.make b/yql/essentials/public/udf/ya.make index 439e5e7eb18..b6ae76163d2 100644 --- a/yql/essentials/public/udf/ya.make +++ b/yql/essentials/public/udf/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( udf_allocator.cpp udf_allocator.h diff --git a/yql/essentials/sql/cluster_mapping.cpp b/yql/essentials/sql/cluster_mapping.cpp index fb2a5100b5b..65659f9baf4 100644 --- a/yql/essentials/sql/cluster_mapping.cpp +++ b/yql/essentials/sql/cluster_mapping.cpp @@ -31,4 +31,4 @@ TMaybe<TString> TClusterMapping::GetClusterProvider(const TString& cluster, TStr } return Nothing(); } -} +} // namespace NSQLTranslation diff --git a/yql/essentials/sql/cluster_mapping.h b/yql/essentials/sql/cluster_mapping.h index bf943253642..84a356a7e36 100644 --- a/yql/essentials/sql/cluster_mapping.h +++ b/yql/essentials/sql/cluster_mapping.h @@ -13,4 +13,4 @@ private: THashMap<TString, TString> CaseSensitiveClusters_; THashMap<TString, TString> CaseInsensitiveClusters_; }; -} +} // namespace NSQLTranslation diff --git a/yql/essentials/sql/pg/optimizer.cpp b/yql/essentials/sql/pg/optimizer.cpp index 6ce6fd0fa30..55948d6a360 100644 --- a/yql/essentials/sql/pg/optimizer.cpp +++ b/yql/essentials/sql/pg/optimizer.cpp @@ -10,26 +10,26 @@ #include <util/generic/scope.h> #ifdef _WIN32 -#define __restrict + #define __restrict #endif #define TypeName PG_TypeName // NOLINT(readability-identifier-naming) -#define SortBy PG_SortBy // NOLINT(readability-identifier-naming) +#define SortBy PG_SortBy // NOLINT(readability-identifier-naming) #undef SIZEOF_SIZE_T extern "C" { -Y_PRAGMA_DIAGNOSTIC_PUSH + Y_PRAGMA_DIAGNOSTIC_PUSH #ifdef _win_ -Y_PRAGMA("GCC diagnostic ignored \"-Wshift-count-overflow\"") + Y_PRAGMA("GCC diagnostic ignored \"-Wshift-count-overflow\"") #endif -Y_PRAGMA("GCC diagnostic ignored \"-Wunused-parameter\"") + Y_PRAGMA("GCC diagnostic ignored \"-Wunused-parameter\"") #include "postgres.h" #include "miscadmin.h" #include "optimizer/paths.h" #include "nodes/print.h" #include "utils/selfuncs.h" #include "utils/palloc.h" -Y_PRAGMA_DIAGNOSTIC_POP + Y_PRAGMA_DIAGNOSTIC_POP } #undef Min @@ -42,10 +42,10 @@ namespace NYql { namespace { bool RelationStatsHook( - PlannerInfo *root, - RangeTblEntry *rte, + PlannerInfo* root, + RangeTblEntry* rte, AttrNumber attnum, - VariableStatData *vardata) + VariableStatData* vardata) { Y_UNUSED(root); Y_UNUSED(rte); @@ -58,11 +58,11 @@ bool RelationStatsHook( Var* MakeVar(int relno, int varno) { Var* v = makeNode(Var); - v->varno = relno; // table number + v->varno = relno; // table number v->varattno = varno; // column number in table // ? - v->vartype = 25; // ? + v->vartype = 25; // ? v->vartypmod = -1; // ? v->varcollid = 0; v->varnosyn = v->varno; @@ -84,8 +84,8 @@ RelOptInfo* MakeRelOptInfo(const IOptimizer::TRel& r, int relno) { PathTarget* t = makeNode(PathTarget); int maxattno = 0; for (int i = 0; i < (int)r.TargetVars.size(); i++) { - t->exprs = lappend(t->exprs, MakeVar(relno, i+1)); - maxattno = i+1; + t->exprs = lappend(t->exprs, MakeVar(relno, i + 1)); + maxattno = i + 1; } t->width = 8; @@ -103,7 +103,7 @@ RelOptInfo* MakeRelOptInfo(const IOptimizer::TRel& r, int relno) { rel->pathlist = list_make1(p); rel->cheapest_total_path = p; rel->relids = bms_add_member(nullptr, rel->relid); - rel->attr_needed = (Relids*)palloc0((1+maxattno)*sizeof(Relids)); + rel->attr_needed = (Relids*)palloc0((1 + maxattno) * sizeof(Relids)); return rel; } @@ -127,7 +127,8 @@ TPgOptimizer::TPgOptimizer( } TPgOptimizer::~TPgOptimizer() -{ } +{ +} TPgOptimizer::TOutput TPgOptimizer::JoinSearch() { @@ -145,8 +146,8 @@ TPgOptimizer::TOutput TPgOptimizer::JoinSearch() Var* TPgOptimizer::MakeVar(TVarId varId) { auto*& var = Vars_[varId]; return var - ? var - : (var = ::NYql::MakeVar(std::get<0>(varId), std::get<1>(varId))); + ? var + : (var = ::NYql::MakeVar(std::get<0>(varId), std::get<1>(varId))); } EquivalenceClass* TPgOptimizer::MakeEqClass(int i) { @@ -216,21 +217,21 @@ int TPgOptimizer::MakeOutputJoin(TOutput& output, Path* path) { JoinPath* jpath = (JoinPath*)path; switch (jpath->jointype) { - case JOIN_INNER: - node.Mode = EJoinType::Inner; - break; - case JOIN_LEFT: - node.Mode = EJoinType::Left; - break; - case JOIN_RIGHT: - node.Mode = EJoinType::Right; - break; - default: - YQL_ENSURE(false, "Unsupported join type"); - break; + case JOIN_INNER: + node.Mode = EJoinType::Inner; + break; + case JOIN_LEFT: + node.Mode = EJoinType::Left; + break; + case JOIN_RIGHT: + node.Mode = EJoinType::Right; + break; + default: + YQL_ENSURE(false, "Unsupported join type"); + break; } - YQL_ENSURE(list_length(jpath->joinrestrictinfo) >= 1, "Unsupported joinrestrictinfo len"); + YQL_ENSURE(list_length(jpath->joinrestrictinfo) >= 1, "Unsupported joinrestrictinfo len"); for (int i = 0; i < list_length(jpath->joinrestrictinfo); i++) { RestrictInfo* rinfo = (RestrictInfo*)jpath->joinrestrictinfo->elements[i].ptr_value; @@ -309,7 +310,7 @@ void TPgOptimizer::MakeLeftOrRightRestrictions(std::vector<RestrictInfo*>& dst, RelOptInfo* TPgOptimizer::JoinSearchInternal() { RestrictInfos_.clear(); - RestrictInfos_.resize(Input_.Rels.size()+1); + RestrictInfos_.resize(Input_.Rels.size() + 1); LeftRestriction_.clear(); LeftRestriction_.reserve(Input_.Left.size()); MakeLeftOrRightRestrictions(LeftRestriction_, Input_.Left); @@ -337,13 +338,11 @@ RelOptInfo* TPgOptimizer::JoinSearchInternal() { memset(&root, 0, sizeof(root)); root.type = T_PlannerInfo; root.query_level = 1; - root.simple_rel_array_size = rels->length+1; + root.simple_rel_array_size = rels->length + 1; root.simple_rel_array = (RelOptInfo**)palloc0( - root.simple_rel_array_size - * sizeof(RelOptInfo*)); + root.simple_rel_array_size * sizeof(RelOptInfo*)); root.simple_rte_array = (RangeTblEntry**)palloc0( - root.simple_rel_array_size * sizeof(RangeTblEntry*) - ); + root.simple_rel_array_size * sizeof(RangeTblEntry*)); for (int i = 0; i <= rels->length; i++) { root.simple_rte_array[i] = makeNode(RangeTblEntry); root.simple_rte_array[i]->rtekind = RTE_RELATION; @@ -389,7 +388,7 @@ RelOptInfo* TPgOptimizer::JoinSearchInternal() { for (int i = 0; i < rels->length; i++) { auto* r = (RelOptInfo*)rels->elements[i].ptr_value; - root.simple_rel_array[i+1] = r; + root.simple_rel_array[i + 1] = r; } for (int eqId = 0; eqId < (int)Input_.EqClasses.size(); eqId++) { @@ -401,7 +400,7 @@ RelOptInfo* TPgOptimizer::JoinSearchInternal() { } for (int i = 0; i < rels->length; i++) { - root.simple_rel_array[i+1]->has_eclass_joins = bms_num_members(root.simple_rel_array[i+1]->eclass_indexes) > 1; + root.simple_rel_array[i + 1]->has_eclass_joins = bms_num_members(root.simple_rel_array[i + 1]->eclass_indexes) > 1; } root.ec_merging_done = 1; @@ -412,8 +411,7 @@ RelOptInfo* TPgOptimizer::JoinSearchInternal() { return result; } -struct TPgOptimizerImpl -{ +struct TPgOptimizerImpl { TPgOptimizerImpl( const std::shared_ptr<TJoinOptimizerNode>& root, TExprContext& ctx, @@ -421,7 +419,8 @@ struct TPgOptimizerImpl : Root(root) , Ctx(ctx) , Log(log) - { } + { + } std::shared_ptr<TJoinOptimizerNode> Do() { CollectRels(Root); @@ -474,8 +473,8 @@ struct TPgOptimizerImpl int GetVarId(int relId, TStringBuf column) { int varId = 0; - auto maybeVarId = VarIds[relId-1].find(column); - if (maybeVarId != VarIds[relId-1].end()) { + auto maybeVarId = VarIds[relId - 1].find(column); + if (maybeVarId != VarIds[relId - 1].end()) { varId = maybeVarId->second; } else { varId = Rels[relId - 1].TargetVars.size() + 1; @@ -487,11 +486,11 @@ struct TPgOptimizerImpl } void ExtractVars( - std::vector<std::tuple<int,int,TStringBuf,TStringBuf>>& leftVars, - std::vector<std::tuple<int,int,TStringBuf,TStringBuf>>& rightVars, + std::vector<std::tuple<int, int, TStringBuf, TStringBuf>>& leftVars, + std::vector<std::tuple<int, int, TStringBuf, TStringBuf>>& rightVars, const std::shared_ptr<TJoinOptimizerNode>& op) { - for (size_t i=0; i<op->LeftJoinKeys.size(); i++ ) { + for (size_t i = 0; i < op->LeftJoinKeys.size(); i++) { auto& ltable = op->LeftJoinKeys[i].RelName; auto& lcol = op->LeftJoinKeys[i].AttributeName; auto& rtable = op->RightJoinKeys[i].RelName; @@ -531,7 +530,8 @@ struct TPgOptimizerImpl auto& [lrelId, lvarId, ltable, lcolumn] = leftVars[i]; auto& [rrelId, rvarId, rtable, rcolumn] = rightVars[i]; - IOptimizer::TEq eqClass; eqClass.Vars.reserve(2); + IOptimizer::TEq eqClass; + eqClass.Vars.reserve(2); eqClass.Vars.emplace_back(std::make_tuple(lrelId, lvarId)); eqClass.Vars.emplace_back(std::make_tuple(rrelId, rvarId)); @@ -543,18 +543,18 @@ struct TPgOptimizerImpl } bool OnOp(const std::shared_ptr<TJoinOptimizerNode>& op) { -#define CHECK(A, B) \ - if (Y_UNLIKELY(!(A))) { \ - TIssues issues; \ - issues.AddIssue(TIssue(B).SetCode(0, NYql::TSeverityIds::S_INFO)); \ - Ctx.IssueManager.AddIssues(issues); \ - return false; \ - } +#define CHECK(A, B) \ + if (Y_UNLIKELY(!(A))) { \ + TIssues issues; \ + issues.AddIssue(TIssue(B).SetCode(0, NYql::TSeverityIds::S_INFO)); \ + Ctx.IssueManager.AddIssues(issues); \ + return false; \ + } if (op->JoinType == InnerJoin) { // relId, varId, table, column - std::vector<std::tuple<int,int,TStringBuf,TStringBuf>> leftVars; - std::vector<std::tuple<int,int,TStringBuf,TStringBuf>> rightVars; + std::vector<std::tuple<int, int, TStringBuf, TStringBuf>> leftVars; + std::vector<std::tuple<int, int, TStringBuf, TStringBuf>> rightVars; ExtractVars(leftVars, rightVars, op); @@ -564,7 +564,7 @@ struct TPgOptimizerImpl } else if (op->JoinType == LeftJoin || op->JoinType == RightJoin) { CHECK(op->LeftJoinKeys.size() == 1 && op->RightJoinKeys.size() == 1, "Only 1 var per join supported"); - std::vector<std::tuple<int,int,TStringBuf,TStringBuf>> leftVars, rightVars; + std::vector<std::tuple<int, int, TStringBuf, TStringBuf>> leftVars, rightVars; ExtractVars(leftVars, rightVars, op); IOptimizer::TEq leftEqClass = MakeEqClass(leftVars); @@ -593,9 +593,7 @@ struct TPgOptimizerImpl { if (node->Kind == JoinNodeType) { auto op = std::static_pointer_cast<TJoinOptimizerNode>(node); - return OnOp(op) - && CollectOps(op->LeftArg) - && CollectOps(op->RightArg); + return OnOp(op) && CollectOps(op->LeftArg) && CollectOps(op->RightArg); } return true; } @@ -616,20 +614,23 @@ struct TPgOptimizerImpl const auto* node = &Result.Nodes[nodeId]; if (node->Outer == -1 && node->Inner == -1) { YQL_ENSURE(node->Rels.size() == 1); - auto leaf = Leafs[node->Rels[0]-1]; + auto leaf = Leafs[node->Rels[0] - 1]; return leaf; } else if (node->Outer != -1 && node->Inner != -1) { EJoinKind joinKind; switch (node->Mode) { - case IOptimizer::EJoinType::Inner: - joinKind = InnerJoin; break; - case IOptimizer::EJoinType::Left: - joinKind = LeftJoin; break; - case IOptimizer::EJoinType::Right: - joinKind = RightJoin; break; - default: - YQL_ENSURE(false, "Unsupported join type"); - break; + case IOptimizer::EJoinType::Inner: + joinKind = InnerJoin; + break; + case IOptimizer::EJoinType::Left: + joinKind = LeftJoin; + break; + case IOptimizer::EJoinType::Right: + joinKind = RightJoin; + break; + default: + YQL_ENSURE(false, "Unsupported join type"); + break; }; auto left = Convert(node->Outer); @@ -657,8 +658,7 @@ struct TPgOptimizerImpl joinKind, EJoinAlgoType::MapJoin, false, - false - ); + false); } else { YQL_ENSURE(false, "Wrong CBO node"); } @@ -684,19 +684,18 @@ struct TPgOptimizerImpl IOptimizer::TOutput Result; }; -class TPgOptimizerNew: public IOptimizerNew -{ +class TPgOptimizerNew: public IOptimizerNew { public: TPgOptimizerNew(IProviderContext& pctx, TExprContext& ctx, const std::function<void(const TString&)>& log) : IOptimizerNew(pctx) , Ctx_(ctx) , Log_(log) - { } + { + } std::shared_ptr<TJoinOptimizerNode> JoinSearch( const std::shared_ptr<TJoinOptimizerNode>& joinTree, - const TOptimizerHints& hints = {}) override - { + const TOptimizerHints& hints = {}) override { Y_UNUSED(hints); return TPgOptimizerImpl(joinTree, Ctx_, Log_).Do(); } @@ -716,4 +715,4 @@ IOptimizerNew* MakePgOptimizerNew(IProviderContext& pctx, TExprContext& ctx, con return new TPgOptimizerNew(pctx, ctx, log); } -} // namespace NYql { +} // namespace NYql diff --git a/yql/essentials/sql/pg/optimizer.h b/yql/essentials/sql/pg/optimizer.h index b7a874bcda3..a4ca6ba965d 100644 --- a/yql/essentials/sql/pg/optimizer.h +++ b/yql/essentials/sql/pg/optimizer.h @@ -44,4 +44,3 @@ RelOptInfo* MakeRelOptInfo(const IOptimizer::TRel& r, int relno); List* MakeRelOptInfoList(const IOptimizer::TInput& input); } // namespace NYql - diff --git a/yql/essentials/sql/pg/optimizer_impl_ut.cpp b/yql/essentials/sql/pg/optimizer_impl_ut.cpp index 43828ad912a..bd1f4497b4a 100644 --- a/yql/essentials/sql/pg/optimizer_impl_ut.cpp +++ b/yql/essentials/sql/pg/optimizer_impl_ut.cpp @@ -12,11 +12,11 @@ extern "C" { } #ifdef _WIN32 -#define __restrict + #define __restrict #endif #define TypeName PG_TypeName // NOLINT(readability-identifier-naming) -#define SortBy PG_SortBy // NOLINT(readability-identifier-naming) +#define SortBy PG_SortBy // NOLINT(readability-identifier-naming) #undef SIZEOF_SIZE_T extern "C" { @@ -55,16 +55,13 @@ Y_UNIT_TEST(MakeRelOptInfo) { UNIT_ASSERT(r1); UNIT_ASSERT_EQUAL(r1->reltarget->exprs->length, 1); UNIT_ASSERT_EQUAL( - ((Var*)r1->reltarget->exprs->elements[0].ptr_value)->varattno, 1 - ); + ((Var*)r1->reltarget->exprs->elements[0].ptr_value)->varattno, 1); UNIT_ASSERT_EQUAL(r1->pathlist->length, 1); UNIT_ASSERT_EQUAL( - ((Path*)r1->pathlist->elements[0].ptr_value)->rows, 10 - ); + ((Path*)r1->pathlist->elements[0].ptr_value)->rows, 10); UNIT_ASSERT_EQUAL( - ((Path*)r1->pathlist->elements[0].ptr_value)->total_cost, 100 - ); + ((Path*)r1->pathlist->elements[0].ptr_value)->total_cost, 100); IOptimizer::TRel rel2 = {100, 99, {{}, {}}}; auto* r2 = MakeRelOptInfo(rel2, 2); @@ -82,10 +79,10 @@ Y_UNIT_TEST(MakeRelOptInfoList) { TArenaMemoryContext ctx; IOptimizer::TRel rel1 = {10, 100, {{}}}; IOptimizer::TRel rel2 = {100, 99, {{}}}; - IOptimizer::TInput input = {.Rels={rel1, rel2}}; + IOptimizer::TInput input = {.Rels = {rel1, rel2}}; auto* l = MakeRelOptInfoList(input); UNIT_ASSERT(l); UNIT_ASSERT_EQUAL(l->length, 2); } -} // PgOptimizerImpl +} // Y_UNIT_TEST_SUITE(PgOptimizerImpl) diff --git a/yql/essentials/sql/pg/optimizer_ut.cpp b/yql/essentials/sql/pg/optimizer_ut.cpp index 6b27c031851..cfe9e1312d6 100644 --- a/yql/essentials/sql/pg/optimizer_ut.cpp +++ b/yql/essentials/sql/pg/optimizer_ut.cpp @@ -18,11 +18,10 @@ Y_TEST_HOOK_BEFORE_RUN(InitTest) { Y_UNIT_TEST(PgJoinSearch2Rels) { IOptimizer::TRel rel1 = {100000, 1000000, {{'a'}}}; IOptimizer::TRel rel2 = {1000000, 9000009, {{'b'}}}; - IOptimizer::TInput input = {.Rels={rel1, rel2}}; + IOptimizer::TInput input = {.Rels = {rel1, rel2}}; - input.EqClasses.emplace_back(IOptimizer::TEq { - {{1, 1}, {2, 1}} - }); + input.EqClasses.emplace_back(IOptimizer::TEq{ + {{1, 1}, {2, 1}}}); auto log = [](const TString& str) { Cerr << str << "\n"; @@ -56,19 +55,15 @@ Y_UNIT_TEST(PgJoinSearch2Rels) { Y_UNIT_TEST(PgJoinSearch2RelsLeft) { IOptimizer::TRel rel1 = {100000, 1000000, {{'a'}}}; IOptimizer::TRel rel2 = {1000000, 9000009, {{'b'}}}; - IOptimizer::TInput input = {.Rels={rel1, rel2}}; - - input.EqClasses.emplace_back(IOptimizer::TEq { - {{1, 1}} - }); - input.EqClasses.emplace_back(IOptimizer::TEq { - {{2, 1}} - }); + IOptimizer::TInput input = {.Rels = {rel1, rel2}}; + + input.EqClasses.emplace_back(IOptimizer::TEq{ + {{1, 1}}}); + input.EqClasses.emplace_back(IOptimizer::TEq{ + {{2, 1}}}); input.Left.emplace_back( - IOptimizer::TEq { - {{1, 1}, {2, 1}} - } - ); + IOptimizer::TEq{ + {{1, 1}, {2, 1}}}); auto log = [](const TString& str) { Cerr << str << "\n"; @@ -102,19 +97,15 @@ Y_UNIT_TEST(PgJoinSearch2RelsLeft) { Y_UNIT_TEST(PgJoinSearch2RelsRight) { IOptimizer::TRel rel1 = {100000, 1000000, {{'a'}}}; IOptimizer::TRel rel2 = {1000000, 9000009, {{'b'}}}; - IOptimizer::TInput input = {.Rels={rel1, rel2}}; - - input.EqClasses.emplace_back(IOptimizer::TEq { - {{1, 1}} - }); - input.EqClasses.emplace_back(IOptimizer::TEq { - {{2, 1}} - }); + IOptimizer::TInput input = {.Rels = {rel1, rel2}}; + + input.EqClasses.emplace_back(IOptimizer::TEq{ + {{1, 1}}}); + input.EqClasses.emplace_back(IOptimizer::TEq{ + {{2, 1}}}); input.Right.emplace_back( - IOptimizer::TEq { - {{1, 1}, {2, 1}} - } - ); + IOptimizer::TEq{ + {{1, 1}, {2, 1}}}); auto log = [](const TString& str) { Cerr << str << "\n"; @@ -149,11 +140,10 @@ Y_UNIT_TEST(PgJoinSearch3Rels) { IOptimizer::TRel rel1 = {100000, 1000000, {{'a'}}}; IOptimizer::TRel rel2 = {1000000, 9000009, {{'b'}}}; IOptimizer::TRel rel3 = {10000, 9009, {{'c'}}}; - IOptimizer::TInput input = {.Rels={rel1, rel2, rel3}}; + IOptimizer::TInput input = {.Rels = {rel1, rel2, rel3}}; - input.EqClasses.emplace_back(IOptimizer::TEq { - {{1, 1}, {2, 1}, {3, 1}} - }); + input.EqClasses.emplace_back(IOptimizer::TEq{ + {{1, 1}, {2, 1}, {3, 1}}}); auto log = [](const TString& str) { Cerr << str << "\n"; diff --git a/yql/essentials/sql/pg/pg_sql.cpp b/yql/essentials/sql/pg/pg_sql.cpp index 534c6b95104..3d2b994439b 100644 --- a/yql/essentials/sql/pg/pg_sql.cpp +++ b/yql/essentials/sql/pg/pg_sql.cpp @@ -1,11 +1,11 @@ #include "../../parser/pg_wrapper/pg_compat.h" #ifdef _WIN32 -#define __restrict + #define __restrict #endif #define TypeName PG_TypeName // NOLINT(readability-identifier-naming) -#define SortBy PG_SortBy // NOLINT(readability-identifier-naming) +#define SortBy PG_SortBy // NOLINT(readability-identifier-naming) #undef SIZEOF_SIZE_T extern "C" { #include "postgres.h" @@ -51,15 +51,15 @@ extern "C" { #include <util/generic/stack.h> #include <util/generic/hash_set.h> -constexpr auto PREPARED_PARAM_PREFIX = "$p"; -constexpr auto AUTO_PARAM_PREFIX = "a"; +constexpr auto PREPARED_PARAM_PREFIX = "$p"; +constexpr auto AUTO_PARAM_PREFIX = "a"; constexpr auto DEFAULT_PARAM_TYPE = "unknown"; namespace NSQLTranslationPG { using namespace NYql; -static const THashSet<TString> SystemColumns = { "tableoid", "xmin", "cmin", "xmax", "cmax", "ctid" }; +static const THashSet<TString> SystemColumns = {"tableoid", "xmin", "cmin", "xmax", "cmax", "ctid"}; template <typename T> const T* CastNode(const void* nodeptr, int tag) { @@ -131,25 +131,25 @@ bool ValueAsString(const ValUnion& val, bool isNull, TString& ret) { } switch (NodeTag(val)) { - case T_Boolean: { - ret = BoolVal(val) ? "t" : "f"; - return true; - } - case T_Integer: { - ret = ToString(IntVal(val)); - return true; - } - case T_Float: { - ret = StrFloatVal(val); - return true; - } - case T_String: - case T_BitString: { - ret = StrVal(val); - return true; - } - default: - return false; + case T_Boolean: { + ret = BoolVal(val) ? "t" : "f"; + return true; + } + case T_Integer: { + ret = ToString(IntVal(val)); + return true; + } + case T_Float: { + ret = StrFloatVal(val); + return true; + } + case T_String: + case T_BitString: { + ret = StrVal(val); + return true; + } + default: + return false; } } @@ -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)); @@ -241,7 +241,7 @@ struct TPgConst { return "bit"; case TPgConst::EType::nil: return "unknown"; - } + } } EType Type; @@ -290,7 +290,7 @@ TMaybe<TPgConst> GetValueNType(const A_Const* value) { } } -class TConverter : public IPGParseEvents { +class TConverter: public IPGParseEvents { friend class TLocationGuard; private: @@ -356,8 +356,8 @@ public: }; TConverter(TVector<TAstParseResult>& astParseResults, const NSQLTranslation::TTranslationSettings& settings, - const TString& query, TVector<TStmtParseInfo>* stmtParseInfo, bool perStatementResult, - TMaybe<ui32> sqlProcArgsCount) + const TString& query, TVector<TStmtParseInfo>* stmtParseInfo, bool perStatementResult, + TMaybe<ui32> sqlProcArgsCount) : AstParseResults_(astParseResults) , Settings_(settings) , DqEngineEnabled_(Settings_.DqDefaultAuto->Allow()) @@ -384,7 +384,7 @@ public: BlockEngineEnabled_ = true; } else if (flag == "BlockEngineForce") { BlockEngineForce_ = true; - } if (flag == "UnorderedResult") { + } else if (flag == "UnorderedResult") { UnorderedResult_ = true; } } @@ -411,7 +411,6 @@ public: typeOid != UNKNOWNOID ? NPg::LookupType(typeOid).Name : DEFAULT_PARAM_TYPE; State_.ParamNameToPgTypeName[paramName] = typeName; } - } void OnResult(const List* raw) { @@ -440,7 +439,7 @@ public: 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, - QA("OrderedColumns")))); + QA("OrderedColumns")))); } TAstNode* ParseResult(const List* raw, const TMaybe<ui32> statementId = Nothing()) { @@ -473,7 +472,7 @@ public: if (Settings_.EndOfQueryCommit && Settings_.Mode != NSQLTranslation::ESqlMode::LIMITED_VIEW) { State_.Statements.push_back(L(A("let"), A("world"), L(A("CommitAll!"), - A("world")))); + A("world")))); } AddVariableDeclarations(); @@ -484,21 +483,21 @@ public: if (DqEngineEnabled_) { State_.Statements[dqEnginePgmPos] = L(A("let"), A("world"), L(A(TString(NYql::ConfigureName)), A("world"), configSource, - QA("DqEngine"), QA(DqEngineForce_ ? "force" : "auto"))); + QA("DqEngine"), QA(DqEngineForce_ ? "force" : "auto"))); } else { 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))); + QA("CostBasedOptimizer"), QA(State_.CostBasedOptimizer))); } else { 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"))); + QA("BlockEngine"), QA(BlockEngineForce_ ? "force" : "auto"))); } else { State_.Statements.erase(State_.Statements.begin() + blockEnginePgmPos); } @@ -524,33 +523,32 @@ public: (*StmtParseInfo_)[StatementId_].CommandTagName = GetCommandName(node); } switch (NodeTag(node)) { - case T_SelectStmt: - return ParseSelectStmt(CAST_NODE(SelectStmt, node), {.Inner = false}) != nullptr; - case T_InsertStmt: - return ParseInsertStmt(CAST_NODE(InsertStmt, node)) != nullptr; - case T_UpdateStmt: - return ParseUpdateStmt(CAST_NODE(UpdateStmt, node)) != nullptr; - case T_ViewStmt: - return ParseViewStmt(CAST_NODE(ViewStmt, node)) != nullptr; - case T_CreateStmt: - return ParseCreateStmt(CAST_NODE(CreateStmt, node)) != nullptr; - case T_DropStmt: - return ParseDropStmt(CAST_NODE(DropStmt, node)) != nullptr; - case T_VariableSetStmt: - { + case T_SelectStmt: + return ParseSelectStmt(CAST_NODE(SelectStmt, node), {.Inner = false}) != nullptr; + case T_InsertStmt: + return ParseInsertStmt(CAST_NODE(InsertStmt, node)) != nullptr; + case T_UpdateStmt: + return ParseUpdateStmt(CAST_NODE(UpdateStmt, node)) != nullptr; + case T_ViewStmt: + return ParseViewStmt(CAST_NODE(ViewStmt, node)) != nullptr; + case T_CreateStmt: + return ParseCreateStmt(CAST_NODE(CreateStmt, node)) != nullptr; + case T_DropStmt: + return ParseDropStmt(CAST_NODE(DropStmt, node)) != nullptr; + case T_VariableSetStmt: { // YQL-16284 const char* node_name = CAST_NODE(VariableSetStmt, node)->name; const char* skip_statements[] = { - "extra_float_digits", // jdbc - "application_name", // jdbc - "statement_timeout", // pg_dump - "lock_timeout", // pg_dump - "idle_in_transaction_session_timeout", // pg_dump - "client_encoding", // pg_dump - "standard_conforming_strings", // pg_dump - "check_function_bodies", // pg_dump - "xmloption", // pg_dump - "client_min_messages", // pg_dump + "extra_float_digits", // jdbc + "application_name", // jdbc + "statement_timeout", // pg_dump + "lock_timeout", // pg_dump + "idle_in_transaction_session_timeout", // pg_dump + "client_encoding", // pg_dump + "standard_conforming_strings", // pg_dump + "check_function_bodies", // pg_dump + "xmloption", // pg_dump + "client_min_messages", // pg_dump "row_security", // pg_dump "escape_string_warning", // zabbix "bytea_output", // zabbix @@ -559,32 +557,32 @@ public: NULL, }; - for (int i = 0; skip_statements[i] != NULL; i++){ - const char *skip_name = skip_statements[i]; - if (stricmp(node_name, skip_name) == 0){ + for (int i = 0; skip_statements[i] != NULL; i++) { + const char* skip_name = skip_statements[i]; + if (stricmp(node_name, skip_name) == 0) { return true; } }; }; - return ParseVariableSetStmt(CAST_NODE(VariableSetStmt, node)) != nullptr; - case T_DeleteStmt: - return ParseDeleteStmt(CAST_NODE(DeleteStmt, node)) != nullptr; - case T_VariableShowStmt: - return ParseVariableShowStmt(CAST_NODE(VariableShowStmt, node)) != nullptr; - case T_TransactionStmt: - return ParseTransactionStmt(CAST_NODE(TransactionStmt, node)); - case T_IndexStmt: - return ParseIndexStmt(CAST_NODE(IndexStmt, node)) != nullptr; - case T_CreateSeqStmt: - return ParseCreateSeqStmt(CAST_NODE(CreateSeqStmt, node)) != nullptr; - case T_AlterSeqStmt: - return ParseAlterSeqStmt(CAST_NODE(AlterSeqStmt, node)) != nullptr; - case T_AlterTableStmt: - return ParseAlterTableStmt(CAST_NODE(AlterTableStmt, node)) != nullptr; - default: - NodeNotImplemented(value, node); - return false; + return ParseVariableSetStmt(CAST_NODE(VariableSetStmt, node)) != nullptr; + case T_DeleteStmt: + return ParseDeleteStmt(CAST_NODE(DeleteStmt, node)) != nullptr; + case T_VariableShowStmt: + return ParseVariableShowStmt(CAST_NODE(VariableShowStmt, node)) != nullptr; + case T_TransactionStmt: + return ParseTransactionStmt(CAST_NODE(TransactionStmt, node)); + case T_IndexStmt: + return ParseIndexStmt(CAST_NODE(IndexStmt, node)) != nullptr; + case T_CreateSeqStmt: + return ParseCreateSeqStmt(CAST_NODE(CreateSeqStmt, node)) != nullptr; + case T_AlterSeqStmt: + return ParseAlterSeqStmt(CAST_NODE(AlterSeqStmt, node)) != nullptr; + case T_AlterTableStmt: + return ParseAlterTableStmt(CAST_NODE(AlterTableStmt, node)) != nullptr; + default: + NodeNotImplemented(value, node); + return false; } } @@ -645,7 +643,7 @@ public: } TVector<TPgConst::EType> columnTypes; - for (auto& maybeColumnType: maybeColumnTypes) { + for (auto& maybeColumnType : maybeColumnTypes) { if (maybeColumnType.Empty()) { YQL_CLOG(INFO, Default) << "Failed to auto parametrize: can't infer PgType for column"; return {}; @@ -691,7 +689,7 @@ public: auto& data = type.FinishType(); data.BeginList(); size_t cols = columnTypes.size(); - for (size_t idx = 0; idx < values.size(); idx += cols){ + for (size_t idx = 0; idx < values.size(); idx += cols) { data.BeforeItem(); data.BeginTuple(); for (size_t delta = 0; delta < cols; ++delta) { @@ -858,8 +856,7 @@ public: [[nodiscard]] TAstNode* ParseSelectStmt( const SelectStmt* value, - const TSelectStmtSettings& selectSettings - ) { + const TSelectStmtSettings& selectSettings) { if (Settings_.Mode == NSQLTranslation::ESqlMode::LIMITED_VIEW) { if (HasSelectInLimitedView_) { AddError("Expected exactly one SELECT in LIMITED_VIEW mode"); @@ -886,7 +883,7 @@ public: } TTraverseSelectStack traverseSelectStack; - traverseSelectStack.push({ value, false }); + traverseSelectStack.push({value, false}); TVector<const SelectStmt*> setItems; TVector<TAstNode*> setOpsNodes; @@ -905,21 +902,24 @@ public: } if (!top.second) { - traverseSelectStack.push({ top.first->rarg, false }); - traverseSelectStack.push({ top.first->larg, false }); + traverseSelectStack.push({top.first->rarg, false}); + traverseSelectStack.push({top.first->larg, false}); top.second = true; } else { TString op; switch (top.first->op) { - case SETOP_UNION: - op = "union"; break; - case SETOP_INTERSECT: - op = "intersect"; break; - case SETOP_EXCEPT: - op = "except"; break; - default: - AddError(TStringBuilder() << "SetOperation unsupported value: " << (int)top.first->op); - return nullptr; + case SETOP_UNION: + op = "union"; + break; + case SETOP_INTERSECT: + op = "intersect"; + break; + case SETOP_EXCEPT: + op = "except"; + break; + default: + AddError(TStringBuilder() << "SetOperation unsupported value: " << (int)top.first->op); + return nullptr; } if (top.first->all) { @@ -980,7 +980,6 @@ public: return nullptr; } - auto lambda = L(A("lambda"), QL(), expr); distinctOnItems.push_back(L(A("PgGroup"), L(A("Void")), lambda)); } @@ -1006,7 +1005,7 @@ public: joinOps.push_back(QL(QL(QA("push")))); } else { TTraverseNodeStack traverseNodeStack; - traverseNodeStack.push({ node, false }); + traverseNodeStack.push({node, false}); TVector<TAstNode*> oneJoinGroup; while (!traverseNodeStack.empty()) { @@ -1038,23 +1037,27 @@ public: } if (!top.second) { - traverseNodeStack.push({ join->rarg, false }); - traverseNodeStack.push({ join->larg, false }); + traverseNodeStack.push({join->rarg, false}); + traverseNodeStack.push({join->larg, false}); top.second = true; } else { TString op; switch (join->jointype) { - case JOIN_INNER: - op = join->quals ? "inner" : "cross"; break; - case JOIN_LEFT: - op = "left"; break; - case JOIN_FULL: - op = "full"; break; - case JOIN_RIGHT: - op = "right"; break; - default: - AddError(TStringBuilder() << "jointype unsupported value: " << (int)join->jointype); - return nullptr; + case JOIN_INNER: + op = join->quals ? "inner" : "cross"; + break; + case JOIN_LEFT: + op = "left"; + break; + case JOIN_FULL: + op = "full"; + break; + case JOIN_RIGHT: + op = "right"; + break; + default: + AddError(TStringBuilder() << "jointype unsupported value: " << (int)join->jointype); + return nullptr; } if (ListLength(join->usingClause) > 0) { @@ -1082,7 +1085,6 @@ public: } oneJoinGroup.push_back(QL(QA(op), QA("using"), QVL(fields))); } else { - if (op != "cross" && !join->quals) { AddError("join_expr: expected quals for non-cross join"); return nullptr; @@ -1222,7 +1224,7 @@ public: res.emplace_back(CreatePgStarResultItem()); i++; } - bool maybeSelectWithJustSetConfig = !selectSettings.Inner && !sort && windowItems.empty() && !having && !groupBy && !whereFilter && !x->distinctClause && ListLength(x->targetList) == 1; + bool maybeSelectWithJustSetConfig = !selectSettings.Inner && !sort && windowItems.empty() && !having && !groupBy && !whereFilter && !x->distinctClause && ListLength(x->targetList) == 1; if (maybeSelectWithJustSetConfig) { auto node = ListNodeNth(x->targetList, 0); if (NodeTag(node) != T_ResTarget) { @@ -1410,9 +1412,9 @@ public: 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))); + A("world"), A("result_sink"), L(A("Key")), A("output"), resOptions))); State_.Statements.push_back(L(A("let"), A("world"), L(A("Commit!"), - A("world"), A("result_sink")))); + A("world"), A("result_sink")))); return State_.Statements.back(); } @@ -1466,10 +1468,8 @@ public: return false; } - view.Source = ParseSelectStmt(CAST_NODE(SelectStmt, value->ctequery), { - .Inner = true, - .Recursive = recursive ? &view : nullptr - }); + view.Source = ParseSelectStmt(CAST_NODE(SelectStmt, value->ctequery), {.Inner = true, + .Recursive = recursive ? &view : nullptr}); if (!view.Source) { return false; @@ -1544,7 +1544,7 @@ public: [[nodiscard]] std::optional<TVector<TAstNode*>> ParseReturningList(const List* returningList) { - TVector <TAstNode*> list; + TVector<TAstNode*> list; if (ListLength(returningList) == 0) { return {}; } @@ -1582,7 +1582,7 @@ public: return nullptr; } - TVector <TAstNode*> returningList; + TVector<TAstNode*> returningList; if (value->returningList) { auto list = ParseReturningList(value->returningList); if (list.has_value()) { @@ -1602,7 +1602,7 @@ public: return nullptr; } - TVector <TAstNode*> targetColumns; + TVector<TAstNode*> targetColumns; if (value->cols) { for (int i = 0; i < ListLength(value->cols); i++) { auto node = ListNodeNth(value->cols, i); @@ -1620,17 +1620,15 @@ public: } const auto select = (value->selectStmt) - ? ParseSelectStmt( - CAST_NODE(SelectStmt, value->selectStmt), - { - .Inner = true, - .TargetColumns = targetColumns, - .AllowEmptyResSet = false, - .EmitPgStar = false, - .FillTargetColumns = true, - .UnknownsAllowed = true - }) - : L(A("Void")); + ? ParseSelectStmt( + CAST_NODE(SelectStmt, value->selectStmt), + {.Inner = true, + .TargetColumns = targetColumns, + .AllowEmptyResSet = false, + .EmitPgStar = false, + .FillTargetColumns = true, + .UnknownsAllowed = true}) + : L(A("Void")); if (!select) { return nullptr; } @@ -1646,9 +1644,7 @@ public: sink, key, select, - writeOptions - ) - )); + writeOptions))); return State_.Statements.back(); } @@ -1656,7 +1652,7 @@ public: [[nodiscard]] TAstNode* ParseUpdateStmt(const UpdateStmt* value) { const auto fromClause = value->fromClause ? value->fromClause : ListMake1(value->relation).get(); - SelectStmt selectStmt { + SelectStmt selectStmt{ .type = T_SelectStmt, .targetList = value->targetList, .fromClause = fromClause, @@ -1665,14 +1661,11 @@ public: }; const auto select = ParseSelectStmt( &selectStmt, - { - .Inner = true, - .AllowEmptyResSet = true, - .EmitPgStar = true, - .FillTargetColumns = false, - .UnknownsAllowed = true - } - ); + {.Inner = true, + .AllowEmptyResSet = true, + .EmitPgStar = true, + .FillTargetColumns = false, + .UnknownsAllowed = true}); if (!select) { return nullptr; } @@ -1699,22 +1692,20 @@ public: options.push_back(QL(QA("returning"), QVL(returningList.data(), returningList.size()))); } const auto writeUpdate = L(A("block"), QL( - L(A("let"), A("update_select"), select), - L(A("let"), A("sink"), sink), - L(A("let"), A("key"), key), - L(A("return"), L( - A("Write!"), - A("world"), - A("sink"), - A("key"), - L(A("Void")), - QVL(options.data(), options.size()))) - )); + L(A("let"), A("update_select"), select), + L(A("let"), A("sink"), sink), + L(A("let"), A("key"), key), + L(A("return"), L( + A("Write!"), + A("world"), + A("sink"), + A("key"), + L(A("Void")), + QVL(options.data(), options.size()))))); State_.Statements.push_back(L( A("let"), A("world"), - writeUpdate - )); + writeUpdate)); return State_.Statements.back(); } @@ -1768,8 +1759,7 @@ public: return nullptr; } - - view.Source = ParseSelectStmt(CAST_NODE(SelectStmt, value->query), { .Inner = true }); + view.Source = ParseSelectStmt(CAST_NODE(SelectStmt, value->query), {.Inner = true}); if (!view.Source) { return nullptr; } @@ -1786,7 +1776,6 @@ public: #pragma region CreateTable private: - struct TColumnInfo { TString Name; TString Type; @@ -1841,8 +1830,9 @@ private: } bool FillPrimaryKeyColumns(TCreateTableCtx& ctx, const Constraint* pk) { - if (!CheckConstraintSupported(pk)) + if (!CheckConstraintSupported(pk)) { return false; + } for (int i = 0; i < ListLength(pk->keys); ++i) { auto node = ListNodeNth(pk->keys, i); @@ -1863,8 +1853,9 @@ private: } bool FillUniqueConstraint(TCreateTableCtx& ctx, const Constraint* constr) { - if (!CheckConstraintSupported(constr)) + if (!CheckConstraintSupported(constr)) { return false; + } const auto length = ListLength(constr->keys); std::vector<TAstNode*> uniq; @@ -1888,7 +1879,7 @@ private: } const TString& FindColumnTypeAlias(const TString& colType, bool& isTypeSerial) { - const static std::unordered_map<TString, TString> aliasMap { + const static std::unordered_map<TString, TString> aliasMap{ {"smallserial", "int2"}, {"serial2", "int2"}, {"serial", "int4"}, @@ -1915,7 +1906,7 @@ private: if (node->constraints) { for (int i = 0; i < ListLength(node->constraints); ++i) { auto constraintNode = - CAST_NODE(Constraint, ListNodeNth(node->constraints, i)); + CAST_NODE(Constraint, ListNodeNth(node->constraints, i)); switch (constraintNode->contype) { case CONSTR_NOTNULL: @@ -1954,8 +1945,8 @@ private: } // for now we pass just the last part of the type name - auto colTypeVal = StrVal( ListNodeNth(node->typeName->names, - ListLength(node->typeName->names) - 1)); + auto colTypeVal = StrVal(ListNodeNth(node->typeName->names, + ListLength(node->typeName->names) - 1)); cinfo.Type = FindColumnTypeAlias(colTypeVal, cinfo.Serial); auto [it, inserted] = ctx.ColumnsSet.emplace(node->colname, cinfo); @@ -1986,8 +1977,8 @@ private: } } break; - // TODO: support table-level not null constraints like: - // CHECK (col1 is not null [OR col2 is not null]) + // TODO: support table-level not null constraints like: + // CHECK (col1 is not null [OR col2 is not null]) default: AddError("table constraint not supported"); @@ -1999,7 +1990,7 @@ private: TAstNode* BuildColumnsOptions(TCreateTableCtx& ctx) { std::vector<TAstNode*> columns; - for(const auto& name: ctx.ColumnOrder) { + for (const auto& name : ctx.ColumnOrder) { auto it = ctx.ColumnsSet.find(name); Y_ENSURE(it != ctx.ColumnsSet.end()); @@ -2036,10 +2027,10 @@ private: for (auto& uniq : ctx.UniqConstr) { auto columns = QVL(uniq.data(), uniq.size()); options.push_back(QL(QA("index"), QL( - QL(QA("indexName")), - QL(QA("indexType"), QA("syncGlobalUnique")), - QL(QA("dataColumns"), QL()), - QL(QA("indexColumns"), columns)))); + QL(QA("indexName")), + QL(QA("indexType"), QA("syncGlobalUnique")), + QL(QA("dataColumns"), QL()), + QL(QA("indexColumns"), columns)))); } if (ctx.IsTemporary) { options.push_back(QL(QA("temporary"))); @@ -2051,8 +2042,8 @@ private: std::vector<TAstNode*> options; const auto insertMode = (ProviderToInsertModeMap.contains(Provider_)) - ? ProviderToInsertModeMap.at(Provider_) - : "append"; + ? ProviderToInsertModeMap.at(Provider_) + : "append"; options.push_back(QL(QA("mode"), QA(insertMode))); if (!returningList.empty()) { @@ -2111,7 +2102,7 @@ public: return nullptr; } - TCreateTableCtx ctx {}; + TCreateTableCtx ctx{}; if (value->if_not_exists) { ctx.IfNotExists = true; @@ -2159,9 +2150,9 @@ public: } State_.Statements.push_back( - L(A("let"), A("world"), - L(A("Write!"), A("world"), sink, key, L(A("Void")), - BuildCreateTableOptions(ctx)))); + L(A("let"), A("world"), + L(A("Write!"), A("world"), sink, key, L(A("Void")), + BuildCreateTableOptions(ctx)))); return State_.Statements.back(); } @@ -2242,8 +2233,7 @@ public: clusterName, tableName, /* isSink */ true, - /* isScheme */ true - ); + /* isScheme */ true); if (sink == nullptr) { return nullptr; } @@ -2259,10 +2249,7 @@ public: key, L(A("Void")), QL( - QL(QA("mode"), QA(mode)) - ) - ) - )); + QL(QA("mode"), QA(mode)))))); } return State_.Statements.back(); @@ -2285,8 +2272,7 @@ public: /* catalogName */ "", clusterName, indexName, - "pgIndex" - ); + "pgIndex"); TString missingOk = (value->missing_ok) ? "true" : "false"; State_.Statements.push_back(L( @@ -2300,10 +2286,7 @@ public: L(A("Void")), QL( QL(QA("mode"), QA("dropIndex")), - QL(QA("ifExists"), QA(missingOk)) - ) - ) - )); + QL(QA("ifExists"), QA(missingOk)))))); } return State_.Statements.back(); @@ -2326,8 +2309,7 @@ public: /* catalogName */ "", clusterName, indexName, - "pgSequence" - ); + "pgSequence"); TString mode = (value->missing_ok) ? "drop_if_exists" : "drop"; State_.Statements.push_back(L( @@ -2340,10 +2322,7 @@ public: key, L(A("Void")), QL( - QL(QA("mode"), QA(mode)) - ) - ) - )); + QL(QA("mode"), QA(mode)))))); } return State_.Statements.back(); @@ -2411,7 +2390,7 @@ public: } 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, - QA(TString(rawStr == "true" ? "" : "Disable") + TString((name == "useblocks") ? "UseBlocks" : "PgEmitAggApply"))))); + QA(TString(rawStr == "true" ? "" : "Disable") + TString((name == "useblocks") ? "UseBlocks" : "PgEmitAggApply"))))); } } else { AddError(TStringBuilder() << "VariableSetStmt, expected string literal for " << value->name << " option"); @@ -2429,7 +2408,7 @@ public: auto str = to_lower(TString(rawStr)); const bool isDqEngine = name == "dqengine"; auto& enable = isDqEngine ? DqEngineEnabled_ : BlockEngineEnabled_; - auto& force = isDqEngine ? DqEngineForce_ : BlockEngineForce_; + auto& force = isDqEngine ? DqEngineForce_ : BlockEngineForce_; if (str == "auto") { enable = true; force = false; @@ -2475,7 +2454,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, - QA("Attr"), QAX(name.substr(dotPos + 1)), QAX(rawStr)))); + QA("Attr"), QAX(name.substr(dotPos + 1)), QAX(rawStr)))); } else { AddError(TStringBuilder() << "VariableSetStmt, expected string literal for " << value->name << " option"); return nullptr; @@ -2542,7 +2521,7 @@ public: AddError("using is not supported"); return nullptr; } - TVector <TAstNode*> returningList; + TVector<TAstNode*> returningList; if (value->returningList) { auto list = ParseReturningList(value->returningList); if (list.has_value()) { @@ -2621,9 +2600,7 @@ public: sink, key, L(A("Void")), - QVL(options.data(), options.size()) - ) - )); + QVL(options.data(), options.size())))); return State_.Statements.back(); } @@ -2634,17 +2611,17 @@ public: if (varName == "server_version_num") { return GetPostgresServerVersionNum(); } - if (varName == "standard_conforming_strings"){ + if (varName == "standard_conforming_strings") { return "on"; } - if (varName == "search_path"){ + if (varName == "search_path") { auto searchPath = Settings_.GUCSettings->Get("search_path"); return searchPath ? *searchPath : "public"; } - if (varName == "default_transaction_read_only"){ + if (varName == "default_transaction_read_only") { return "off"; // mediawiki } - if (varName == "transaction_isolation"){ + if (varName == "transaction_isolation") { return "serializable"; } return {}; @@ -2669,7 +2646,6 @@ public: return columns; } - [[nodiscard]] TAstNode* ParseVariableShowStmt(const VariableShowStmt* value) { const auto varName = to_lower(TString(value->name)); @@ -2698,38 +2674,38 @@ public: const auto resOptions = BuildResultOptions(true); State_.Statements.push_back(L(A("let"), A("world"), L(A("Write!"), - A("world"), A("result_sink"), L(A("Key")), A("output"), resOptions))); + A("world"), A("result_sink"), L(A("Key")), A("output"), resOptions))); State_.Statements.push_back(L(A("let"), A("world"), L(A("Commit!"), - A("world"), A("result_sink")))); + A("world"), A("result_sink")))); return State_.Statements.back(); } [[nodiscard]] bool ParseTransactionStmt(const TransactionStmt* value) { switch (value->kind) { - case TRANS_STMT_BEGIN: - case TRANS_STMT_START: - case TRANS_STMT_SAVEPOINT: - case TRANS_STMT_RELEASE: - case TRANS_STMT_ROLLBACK_TO: - return true; - case TRANS_STMT_COMMIT: - State_.Statements.push_back(L(A("let"), A("world"), L(A("CommitAll!"), - A("world")))); - if (Settings_.GUCSettings) { - Settings_.GUCSettings->Commit(); - } - return true; - case TRANS_STMT_ROLLBACK: - 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(); - } - return true; - default: - AddError(TStringBuilder() << "TransactionStmt: kind is not supported: " << (int)value->kind); - return false; + case TRANS_STMT_BEGIN: + case TRANS_STMT_START: + case TRANS_STMT_SAVEPOINT: + case TRANS_STMT_RELEASE: + case TRANS_STMT_ROLLBACK_TO: + return true; + case TRANS_STMT_COMMIT: + State_.Statements.push_back(L(A("let"), A("world"), L(A("CommitAll!"), + A("world")))); + if (Settings_.GUCSettings) { + Settings_.GUCSettings->Commit(); + } + return true; + case TRANS_STMT_ROLLBACK: + 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(); + } + return true; + default: + AddError(TStringBuilder() << "TransactionStmt: kind is not supported: " << (int)value->kind); + return false; } } @@ -2761,12 +2737,14 @@ public: } auto columns = ParseIndexElements(value->indexParams); - if (!columns) + if (!columns) { return nullptr; + } auto coverColumns = ParseIndexElements(value->indexIncludingParams); - if (!coverColumns) + if (!coverColumns) { return nullptr; + } const auto [sink, key] = ParseWriteRangeVar(value->relation, true); if (!sink || !key) { @@ -2802,17 +2780,13 @@ public: L(A("Void")), QL( QL(QA("mode"), QA("alter")), - QL(QA("actions"), QL(QL(QA("addIndex"), QVL(desc.data(), desc.size())))) - ) - ) - )); + QL(QA("actions"), QL(QL(QA("addIndex"), QVL(desc.data(), desc.size())))))))); return State_.Statements.back(); } [[nodiscard]] TAstNode* ParseCreateSeqStmt(const CreateSeqStmt* value) { - std::vector<TAstNode*> options; TString mode = (value->if_not_exists) ? "create_if_not_exists" : "create"; @@ -2822,8 +2796,7 @@ public: value->sequence->catalogname, value->sequence->schemaname, value->sequence->relname, - "pgSequence" - ); + "pgSequence"); if (!sink || !key) { return nullptr; @@ -2865,7 +2838,7 @@ public: const auto* typeName = CAST_NODE_EXT(PG_TypeName, T_TypeName, defElem->arg); if (ListLength(typeName->names) > 0) { options.emplace_back(QL(QAX(nameElem), - QAX(StrVal(ListNodeNth(typeName->names, ListLength(typeName->names) - 1))))); + QAX(StrVal(ListNodeNth(typeName->names, ListLength(typeName->names) - 1))))); } break; } @@ -2891,16 +2864,15 @@ public: } State_.Statements.push_back( - L(A("let"), A("world"), - L(A("Write!"), A("world"), sink, key, L(A("Void")), - QVL(options.data(), options.size())))); + L(A("let"), A("world"), + L(A("Write!"), A("world"), sink, key, L(A("Void")), + QVL(options.data(), options.size())))); return State_.Statements.back(); } [[nodiscard]] TAstNode* ParseAlterSeqStmt(const AlterSeqStmt* value) { - std::vector<TAstNode*> options; TString mode = (value->missing_ok) ? "alter_if_exists" : "alter"; @@ -2910,8 +2882,7 @@ public: value->sequence->catalogname, value->sequence->schemaname, value->sequence->relname, - "pgSequence" - ); + "pgSequence"); if (!sink || !key) { return nullptr; @@ -2939,7 +2910,7 @@ public: const auto* typeName = CAST_NODE_EXT(PG_TypeName, T_TypeName, defElem->arg); if (ListLength(typeName->names) > 0) { options.emplace_back(QL(QAX(nameElem), - QAX(StrVal(ListNodeNth(typeName->names, ListLength(typeName->names) - 1))))); + QAX(StrVal(ListNodeNth(typeName->names, ListLength(typeName->names) - 1))))); } break; } @@ -2965,9 +2936,9 @@ public: } State_.Statements.push_back( - L(A("let"), A("world"), - L(A("Write!"), A("world"), sink, key, L(A("Void")), - QVL(options.data(), options.size())))); + L(A("let"), A("world"), + L(A("Write!"), A("world"), sink, key, L(A("Void")), + QVL(options.data(), options.size())))); return State_.Statements.back(); } @@ -3052,33 +3023,31 @@ public: } } - std::vector<TAstNode*> actions { QL(QA("alterColumns"), QVL(alterColumns.data(), alterColumns.size())) }; + std::vector<TAstNode*> actions{QL(QA("alterColumns"), QVL(alterColumns.data(), alterColumns.size()))}; options.push_back( QL(QA("actions"), - QVL(actions.data(), actions.size()) - ) - ); + QVL(actions.data(), actions.size()))); State_.Statements.push_back( - L(A("let"), A("world"), - L(A("Write!"), A("world"), sink, key, L(A("Void")), - QVL(options.data(), options.size())))); + L(A("let"), A("world"), + L(A("Write!"), A("world"), sink, key, L(A("Void")), + QVL(options.data(), options.size())))); return State_.Statements.back(); } TMaybe<TFromDesc> ParseFromClause(const Node* node) { switch (NodeTag(node)) { - case T_RangeVar: - return ParseRangeVar(CAST_NODE(RangeVar, node)); - case T_RangeSubselect: - return ParseRangeSubselect(CAST_NODE(RangeSubselect, node)); - case T_RangeFunction: - return ParseRangeFunction(CAST_NODE(RangeFunction, node)); - default: - NodeNotImplementedImpl<SelectStmt>(node); - return {}; + case T_RangeVar: + return ParseRangeVar(CAST_NODE(RangeVar, node)); + case T_RangeSubselect: + return ParseRangeSubselect(CAST_NODE(RangeSubselect, node)); + case T_RangeFunction: + return ParseRangeFunction(CAST_NODE(RangeFunction, node)); + default: + NodeNotImplementedImpl<SelectStmt>(node); + return {}; } } @@ -3127,7 +3096,7 @@ public: } if (schemaname == "public") { - return Settings_.DefaultCluster;; + return Settings_.DefaultCluster; } if (schemaname == "" && Settings_.GUCSettings) { auto search_path = Settings_.GUCSettings->Get("search_path"); @@ -3141,64 +3110,61 @@ public: TAstNode* BuildClusterSinkOrSourceExpression( bool isSink, const TStringBuf schemaname) { - TString usedCluster(schemaname); - auto p = Settings_.ClusterMapping.FindPtr(usedCluster); - if (!p) { - usedCluster = to_lower(usedCluster); - p = Settings_.ClusterMapping.FindPtr(usedCluster); - } - - if (!p) { - AddError(TStringBuilder() << "Unknown cluster: " << schemaname); - return nullptr; - } + TString usedCluster(schemaname); + auto p = Settings_.ClusterMapping.FindPtr(usedCluster); + if (!p) { + usedCluster = to_lower(usedCluster); + p = Settings_.ClusterMapping.FindPtr(usedCluster); + } + + if (!p) { + AddError(TStringBuilder() << "Unknown cluster: " << schemaname); + return nullptr; + } - return L(isSink ? A("DataSink") : A("DataSource"), QAX(*p), QAX(usedCluster)); + return L(isSink ? A("DataSink") : A("DataSource"), QAX(*p), QAX(usedCluster)); } TAstNode* BuildTableKeyExpression(const TStringBuf relname, - const TStringBuf cluster, bool isScheme = false - ) { + const TStringBuf cluster, bool isScheme = false) { auto lowerCluster = to_lower(TString(cluster)); bool noPrefix = (lowerCluster == "pg_catalog" || lowerCluster == "information_schema"); 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))))); + L(A("String"), QAX(std::move(tableName))))); } TReadWriteKeyExprs ParseQualifiedRelationName(const TStringBuf catalogname, const TStringBuf schemaname, const TStringBuf relname, bool isSink, bool isScheme) { - if (!catalogname.empty()) { - AddError("catalogname is not supported"); - return {}; - } - if (relname.empty()) { - AddError("relname should be specified"); - return {}; - } + if (!catalogname.empty()) { + AddError("catalogname is not supported"); + return {}; + } + if (relname.empty()) { + AddError("relname should be specified"); + return {}; + } - const auto cluster = ResolveCluster(schemaname, TString(relname)); - const auto sinkOrSource = BuildClusterSinkOrSourceExpression(isSink, cluster); - const auto key = BuildTableKeyExpression(relname, cluster, isScheme); - return {sinkOrSource, key}; + const auto cluster = ResolveCluster(schemaname, TString(relname)); + const auto sinkOrSource = BuildClusterSinkOrSourceExpression(isSink, cluster); + const auto key = BuildTableKeyExpression(relname, cluster, isScheme); + return {sinkOrSource, key}; } - TAstNode* BuildPgObjectExpression(const TStringBuf objectName, const TStringBuf objectType) { bool noPrefix = (objectType == "pgIndex"); 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)) - )); + L(A("String"), QA(objectType)))); } TReadWriteKeyExprs ParseQualifiedPgObjectName(const TStringBuf catalogname, - const TStringBuf schemaname, - const TStringBuf objectName, - const TStringBuf pgObjectType) { + const TStringBuf schemaname, + const TStringBuf objectName, + const TStringBuf pgObjectType) { if (!catalogname.empty()) { AddError("catalogname is not supported"); return {}; @@ -3214,16 +3180,16 @@ public: return {sinkOrSource, key}; } - TReadWriteKeyExprs ParseWriteRangeVar(const RangeVar *value, + TReadWriteKeyExprs ParseWriteRangeVar(const RangeVar* value, bool isScheme = false) { - if (value->alias) { - AddError("alias is not supported"); - return {}; - } + if (value->alias) { + AddError("alias is not supported"); + return {}; + } - return ParseQualifiedRelationName(value->catalogname, value->schemaname, - value->relname, - /* isSink */ true, isScheme); + return ParseQualifiedRelationName(value->catalogname, value->schemaname, + value->relname, + /* isSink */ true, isScheme); } TMaybe<TFromDesc> ParseRangeVar(const RangeVar* value) { @@ -3261,25 +3227,25 @@ public: } if (view) { - return TFromDesc{view->Source, alias, colnames.empty() ? view->ColNames : colnames, false }; + return TFromDesc{view->Source, alias, colnames.empty() ? view->ColNames : colnames, false}; } TString schemaname = value->schemaname; if (!StrCompare(value->schemaname, "bindings")) { bool isBinding = false; switch (Settings_.BindingsMode) { - case NSQLTranslation::EBindingsMode::DISABLED: - AddError("Please remove 'bindings.' from your query, the support for this syntax has ended"); - return {}; - case NSQLTranslation::EBindingsMode::ENABLED: - isBinding = true; - break; - case NSQLTranslation::EBindingsMode::DROP_WITH_WARNING: - 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; - break; + case NSQLTranslation::EBindingsMode::DISABLED: + AddError("Please remove 'bindings.' from your query, the support for this syntax has ended"); + return {}; + case NSQLTranslation::EBindingsMode::ENABLED: + isBinding = true; + break; + case NSQLTranslation::EBindingsMode::DROP_WITH_WARNING: + 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; + break; } if (isBinding) { @@ -3287,11 +3253,10 @@ public: if (!s) { return {}; } - return TFromDesc{ s, alias, colnames, true }; + return TFromDesc{s, alias, colnames, true}; } } - const auto [source, key] = ParseQualifiedRelationName( value->catalogname, schemaname, value->relname, /* isSink */ false, @@ -3299,26 +3264,22 @@ public: if (source == nullptr || key == nullptr) { return {}; } - const auto readExpr = this->SqlProcArgsCount_ ? - L(A("Cons!"), - A("world"), - L( - A("PgTableContent"), - QA("pg_catalog"), - QAX(value->relname), - L(A("Void")), - QL() - ) - ) : - L( - A("Read!"), - A("world"), - source, - key, - L(A("Void")), - QL() - ); - return TFromDesc { + const auto readExpr = this->SqlProcArgsCount_ ? L(A("Cons!"), + A("world"), + L( + A("PgTableContent"), + QA("pg_catalog"), + QAX(value->relname), + L(A("Void")), + QL())) + : L( + A("Read!"), + A("world"), + source, + key, + L(A("Void")), + QL()); + return TFromDesc{ readExpr, alias, colnames, @@ -3357,25 +3318,20 @@ public: auto source = L(A("DataSource"), QAX(bindingInfo.ClusterType), QAX(bindingInfo.Cluster)); return L( - A("Read!"), - A("world"), - source, - L( - A("MrTableConcat"), - L( - A("Key"), - QL( + A("Read!"), + A("world"), + source, + L( + A("MrTableConcat"), + L( + A("Key"), + QL( QA("table"), L( - A("String"), - QAX(bindingInfo.Path) - ) - ) - ) - ), - L(A("Void")), - QVL(hints.data(), hints.size()) - ); + A("String"), + QAX(bindingInfo.Path))))), + L(A("Void")), + QVL(hints.data(), hints.size())); } TMaybe<TFromDesc> ParseRangeFunction(const RangeFunction* value) { @@ -3440,7 +3396,7 @@ public: return {}; } - return TFromDesc{ func, alias, colnames, injectRead }; + return TFromDesc{func, alias, colnames, injectRead}; } TMaybe<TFromDesc> ParseRangeSubselect(const RangeSubselect* value) { @@ -3470,7 +3426,7 @@ public: return {}; } - return TFromDesc{ ParseSelectStmt(CAST_NODE(SelectStmt, value->subquery), { .Inner = true }), alias, colnames, false }; + return TFromDesc{ParseSelectStmt(CAST_NODE(SelectStmt, value->subquery), {.Inner = true}), alias, colnames, false}; } TAstNode* ParseNullTestExpr(const NullTest* value, const TExprSettings& settings) { @@ -3517,7 +3473,6 @@ public: result.Pred = VL(&preds[0], preds.size()); result.Value = L(A("If"), left.Pred, left.Value, right.Value); return result; - } TAstNode* ParseCaseExpr(const CaseExpr* value, const TExprSettings& settings) { @@ -3542,15 +3497,14 @@ public: } whenExpr = L(A("Coalesce"), - L(A("FromPg"), whenExpr), - L(A("Bool"), QA("false")) - ); + L(A("FromPg"), whenExpr), + L(A("Bool"), QA("false"))); auto whenResult = ParseExpr(Expr2Node(whenNode->result), settings); if (!whenResult) { return nullptr; } - branches.emplace_back(TCaseBranch{ .Pred = whenExpr,.Value = whenResult }); + branches.emplace_back(TCaseBranch{.Pred = whenExpr, .Value = whenResult}); } TAstNode* defaultResult = nullptr; if (value->defresult) { @@ -3594,49 +3548,45 @@ public: TAstNode* ParseSQLValueFunction(const SQLValueFunction* value) { AT_LOCATION(value); switch (value->op) { - case SVFOP_CURRENT_DATE: - return L(A("PgCast"), - L(A("PgCall"), QA("now"), QL()), - L(A("PgType"), QA("date")) - ); - case SVFOP_CURRENT_TIME: - return L(A("PgCast"), - L(A("PgCall"), QA("now"), QL()), - L(A("PgType"), QA("timetz")) - ); - case SVFOP_CURRENT_TIME_N: - return L(A("PgCast"), - L(A("PgCall"), QA("now"), QL()), - L(A("PgType"), QA("timetz")), - L(A("PgConst"), QA(ToString(value->typmod)), L(A("PgType"), QA("int4"))) - ); - case SVFOP_CURRENT_TIMESTAMP: - return L(A("PgCall"), QA("now"), QL()); - case SVFOP_CURRENT_TIMESTAMP_N: - return L(A("PgCast"), - L(A("PgCall"), QA("now"), QL()), - L(A("PgType"), QA("timestamptz")), - L(A("PgConst"), QA(ToString(value->typmod)), L(A("PgType"), QA("int4"))) - ); - case SVFOP_CURRENT_USER: - case SVFOP_CURRENT_ROLE: - case SVFOP_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"); - } - - return L(A("PgConst"), QA(database ? *database : "postgres"), L(A("PgType"), QA("name"))); - } - case SVFOP_CURRENT_SCHEMA: - return GetCurrentSchema(); - default: - AddError(TStringBuilder() << "Usupported SQLValueFunction: " << (int)value->op); - return nullptr; + case SVFOP_CURRENT_DATE: + return L(A("PgCast"), + L(A("PgCall"), QA("now"), QL()), + L(A("PgType"), QA("date"))); + case SVFOP_CURRENT_TIME: + return L(A("PgCast"), + L(A("PgCall"), QA("now"), QL()), + L(A("PgType"), QA("timetz"))); + case SVFOP_CURRENT_TIME_N: + return L(A("PgCast"), + L(A("PgCall"), QA("now"), QL()), + L(A("PgType"), QA("timetz")), + L(A("PgConst"), QA(ToString(value->typmod)), L(A("PgType"), QA("int4")))); + case SVFOP_CURRENT_TIMESTAMP: + return L(A("PgCall"), QA("now"), QL()); + case SVFOP_CURRENT_TIMESTAMP_N: + return L(A("PgCast"), + L(A("PgCall"), QA("now"), QL()), + L(A("PgType"), QA("timestamptz")), + L(A("PgConst"), QA(ToString(value->typmod)), L(A("PgType"), QA("int4")))); + case SVFOP_CURRENT_USER: + case SVFOP_CURRENT_ROLE: + case SVFOP_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"); + } + + return L(A("PgConst"), QA(database ? *database : "postgres"), L(A("PgType"), QA("name"))); + } + case SVFOP_CURRENT_SCHEMA: + return GetCurrentSchema(); + default: + AddError(TStringBuilder() << "Usupported SQLValueFunction: " << (int)value->op); + return nullptr; } } @@ -3709,55 +3659,55 @@ public: TAstNode* ParseExpr(const Node* node, const TExprSettings& settings) { switch (NodeTag(node)) { - case T_A_Const: { - return ParseAConst(CAST_NODE(A_Const, node), settings); - } - case T_A_Expr: { - return ParseAExpr(CAST_NODE(A_Expr, node), settings); - } - case T_CaseExpr: { - return ParseCaseExpr(CAST_NODE(CaseExpr, node), settings); - } - case T_ColumnRef: { - return ParseColumnRef(CAST_NODE(ColumnRef, node), settings); - } - case T_TypeCast: { - return ParseTypeCast(CAST_NODE(TypeCast, node), settings); - } - case T_BoolExpr: { - return ParseBoolExpr(CAST_NODE(BoolExpr, node), settings); - } - case T_NullTest: { - return ParseNullTestExpr(CAST_NODE(NullTest, node), settings); - } - case T_FuncCall: { - bool injectRead; - return ParseFuncCall(CAST_NODE(FuncCall, node), settings, false, injectRead); - } - case T_A_ArrayExpr: { - return ParseAArrayExpr(CAST_NODE(A_ArrayExpr, node), settings); - } - case T_SubLink: { - return ParseSubLinkExpr(CAST_NODE(SubLink, node), settings); - } - case T_CoalesceExpr: { - return ParseCoalesceExpr(CAST_NODE(CoalesceExpr, node), settings); - } - case T_GroupingFunc: { - return ParseGroupingFunc(CAST_NODE(GroupingFunc, node)); - } - case T_ParamRef: { - return ParseParamRefExpr(CAST_NODE(ParamRef, node)); - } - case T_SQLValueFunction: { - return ParseSQLValueFunction(CAST_NODE(SQLValueFunction, node)); - } - case T_BooleanTest: { - return ParseBooleanTest(CAST_NODE(BooleanTest, node), settings); - } - default: - NodeNotImplemented(node); - return nullptr; + case T_A_Const: { + return ParseAConst(CAST_NODE(A_Const, node), settings); + } + case T_A_Expr: { + return ParseAExpr(CAST_NODE(A_Expr, node), settings); + } + case T_CaseExpr: { + return ParseCaseExpr(CAST_NODE(CaseExpr, node), settings); + } + case T_ColumnRef: { + return ParseColumnRef(CAST_NODE(ColumnRef, node), settings); + } + case T_TypeCast: { + return ParseTypeCast(CAST_NODE(TypeCast, node), settings); + } + case T_BoolExpr: { + return ParseBoolExpr(CAST_NODE(BoolExpr, node), settings); + } + case T_NullTest: { + return ParseNullTestExpr(CAST_NODE(NullTest, node), settings); + } + case T_FuncCall: { + bool injectRead; + return ParseFuncCall(CAST_NODE(FuncCall, node), settings, false, injectRead); + } + case T_A_ArrayExpr: { + return ParseAArrayExpr(CAST_NODE(A_ArrayExpr, node), settings); + } + case T_SubLink: { + return ParseSubLinkExpr(CAST_NODE(SubLink, node), settings); + } + case T_CoalesceExpr: { + return ParseCoalesceExpr(CAST_NODE(CoalesceExpr, node), settings); + } + case T_GroupingFunc: { + return ParseGroupingFunc(CAST_NODE(GroupingFunc, node)); + } + case T_ParamRef: { + return ParseParamRefExpr(CAST_NODE(ParamRef, node)); + } + case T_SQLValueFunction: { + return ParseSQLValueFunction(CAST_NODE(SQLValueFunction, node)); + } + case T_BooleanTest: { + return ParseBooleanTest(CAST_NODE(BooleanTest, node), settings); + } + default: + NodeNotImplemented(node); + return nullptr; } } @@ -3779,8 +3729,8 @@ public: } TAstNode* pgTypeNode = !value->isnull - ? L(A("PgType"), QA(TPgConst::ToString(valueNType->Type))) - : L(A("PgType"), QA("unknown")); + ? L(A("PgType"), QA(TPgConst::ToString(valueNType->Type))) + : L(A("PgType"), QA("unknown")); if (Settings_.AutoParametrizeEnabled && settings.AutoParametrizeEnabled) { return AutoParametrizeConst(std::move(valueNType.GetRef()), pgTypeNode); @@ -3862,18 +3812,18 @@ public: AT_LOCATION(value); TString mode; switch (value->kind) { - case GROUPING_SET_ROLLUP: - mode = "rollup"; - break; - case GROUPING_SET_CUBE: - mode = "cube"; - break; - case GROUPING_SET_SETS: - mode = "sets"; - break; - default: - AddError(TStringBuilder() << "Unexpected grouping set kind: " << (int)value->kind); - return nullptr; + case GROUPING_SET_ROLLUP: + mode = "rollup"; + break; + case GROUPING_SET_CUBE: + mode = "cube"; + break; + case GROUPING_SET_SETS: + mode = "sets"; + break; + default: + AddError(TStringBuilder() << "Unexpected grouping set kind: " << (int)value->kind); + return nullptr; } auto innerSettings = settings; @@ -3938,7 +3888,6 @@ public: return VL(args.data(), args.size()); } - TAstNode* ParseSubLinkExpr(const SubLink* value, const TExprSettings& settings) { AT_LOCATION(value); if (!settings.AllowSubLinks) { @@ -3949,26 +3898,26 @@ public: TString linkType; TString operName; switch (value->subLinkType) { - case EXISTS_SUBLINK: - linkType = "exists"; - break; - case ALL_SUBLINK: - linkType = "all"; - operName = "="; - break; - case ANY_SUBLINK: - linkType = "any"; - operName = "="; - break; - case EXPR_SUBLINK: - linkType = "expr"; - break; - case ARRAY_SUBLINK: - linkType = "array"; - break; - default: - AddError(TStringBuilder() << "SublinkExpr: unsupported link type: " << (int)value->subLinkType); - return nullptr; + case EXISTS_SUBLINK: + linkType = "exists"; + break; + case ALL_SUBLINK: + linkType = "all"; + operName = "="; + break; + case ANY_SUBLINK: + linkType = "any"; + operName = "="; + break; + case EXPR_SUBLINK: + linkType = "expr"; + break; + case ARRAY_SUBLINK: + linkType = "array"; + break; + default: + AddError(TStringBuilder() << "SublinkExpr: unsupported link type: " << (int)value->subLinkType); + return nullptr; } if (ListLength(value->operName) > 1) { @@ -4036,7 +3985,7 @@ public: TVector<TAstNode*> concatArgs; concatArgs.push_back(A("MrTableConcat")); for (const auto& s : argStrs) { - concatArgs.push_back(L(A("Key"), QL(QA("table"),L(A("String"), QAX(s))))); + concatArgs.push_back(L(A("Key"), QL(QA("table"), L(A("String"), QAX(s))))); } key = VL(concatArgs); @@ -4050,8 +3999,8 @@ public: concatArgs.push_back(A("MrTableConcat")); for (ui32 i = 0; i < argStrs.size(); i += 2) { concatArgs.push_back(L(A("Key"), - QL(QA("table"),L(A("String"), QAX(argStrs[i]))), - QL(QA("view"),L(A("String"), QAX(argStrs[i + 1]))))); + QL(QA("table"), L(A("String"), QAX(argStrs[i]))), + QL(QA("view"), L(A("String"), QAX(argStrs[i + 1]))))); } key = VL(concatArgs); @@ -4064,22 +4013,21 @@ public: options = QL(QL(QA("ignorenonexisting"))); TAstNode* expr; if (argStrs.size() == 1) { - expr = L(A("Bool"),QA("true")); + expr = L(A("Bool"), QA("true")); } else if (argStrs.size() == 2) { - expr = L(A(">="),A("item"),L(A("String"),QAX(argStrs[1]))); + expr = L(A(">="), A("item"), L(A("String"), QAX(argStrs[1]))); } else { expr = L(A("And"), - L(A(">="),A("item"),L(A("String"),QAX(argStrs[1]))), - L(A("<="),A("item"),L(A("String"),QAX(argStrs[2]))) - ); + L(A(">="), A("item"), L(A("String"), QAX(argStrs[1]))), + L(A("<="), A("item"), L(A("String"), QAX(argStrs[2])))); } auto lambda = L(A("lambda"), QL(A("item")), expr); auto range = L(A("MrTableRange"), QAX(argStrs[0]), lambda, QAX(argStrs.size() < 4 ? "" : argStrs[3])); if (argStrs.size() < 5) { - key = L(A("Key"), QL(QA("table"),range)); + key = L(A("Key"), QL(QA("table"), range)); } else { - key = L(A("Key"), QL(QA("table"),range), QL(QA("view"),L(A("String"), QAX(argStrs[4])))); + key = L(A("Key"), QL(QA("table"), range), QL(QA("view"), L(A("String"), QAX(argStrs[4])))); } } else if (lowerName == "regexp" || lowerName == "like") { if (argStrs.size() < 2 || argStrs.size() > 4) { @@ -4090,23 +4038,23 @@ public: options = QL(QL(QA("ignorenonexisting"))); TAstNode* expr; if (lowerName == "regexp") { - expr = L(A("Apply"),L(A("Udf"),QA("Re2.Grep"), - QL(L(A("String"),QAX(argStrs[1])),L(A("Null")))), - A("item")); + expr = L(A("Apply"), L(A("Udf"), QA("Re2.Grep"), + QL(L(A("String"), QAX(argStrs[1])), L(A("Null")))), + A("item")); } else { - expr = L(A("Apply"),L(A("Udf"),QA("Re2.Match"), - QL(L(A("Apply"), - L(A("Udf"), QA("Re2.PatternFromLike")), - L(A("String"),QAX(argStrs[1]))),L(A("Null")))), - A("item")); + expr = L(A("Apply"), L(A("Udf"), QA("Re2.Match"), + QL(L(A("Apply"), + L(A("Udf"), QA("Re2.PatternFromLike")), + L(A("String"), QAX(argStrs[1]))), L(A("Null")))), + A("item")); } auto lambda = L(A("lambda"), QL(A("item")), expr); auto range = L(A("MrTableRange"), QAX(argStrs[0]), lambda, QAX(argStrs.size() < 3 ? "" : argStrs[2])); if (argStrs.size() < 4) { - key = L(A("Key"), QL(QA("table"),range)); + key = L(A("Key"), QL(QA("table"), range)); } else { - key = L(A("Key"), QL(QA("table"),range), QL(QA("view"),L(A("String"), QAX(argStrs[3])))); + key = L(A("Key"), QL(QA("table"), range), QL(QA("view"), L(A("String"), QAX(argStrs[3])))); } } else { AddError(TStringBuilder() << "Unknown table function: " << name); @@ -4119,8 +4067,7 @@ public: source, key, L(A("Void")), - options - ); + options); } TAstNode* ParseFuncCall(const FuncCall* value, const TExprSettings& settings, bool rangeFunction, bool& injectRead) { @@ -4187,12 +4134,12 @@ public: } // for zabbix https://github.com/ydb-platform/ydb/issues/2904 - if (name == "pg_try_advisory_lock" || name == "pg_try_advisory_lock_shared" || name == "pg_advisory_unlock" || name == "pg_try_advisory_xact_lock" || name == "pg_try_advisory_xact_lock_shared"){ + if (name == "pg_try_advisory_lock" || name == "pg_try_advisory_lock_shared" || name == "pg_advisory_unlock" || name == "pg_try_advisory_xact_lock" || name == "pg_try_advisory_xact_lock_shared") { AddWarning(TIssuesIds::PG_COMPAT, name + " function forced to return OK without waiting and without really lock/unlock"); - return L(A("PgConst"), QA("true"), L(A("PgType"), QA("bool"))); + return L(A("PgConst"), QA("true"), L(A("PgType"), QA("bool"))); } - if (name == "pg_advisory_lock" || name == "pg_advisory_lock_shared" || name == "pg_advisory_unlock_all" || name == "pg_advisory_xact_lock" || name == "pg_advisory_xact_lock_shared"){ + if (name == "pg_advisory_lock" || name == "pg_advisory_lock_shared" || name == "pg_advisory_unlock_all" || name == "pg_advisory_xact_lock" || name == "pg_advisory_xact_lock_shared") { AddWarning(TIssuesIds::PG_COMPAT, name + " function forced to return OK without waiting and without really lock/unlock"); return L(A("Null")); } @@ -4330,16 +4277,17 @@ public: auto arg = value->arg; auto typeName = value->typeName; auto supportedTypeName = typeName->typeOid == 0 && - !typeName->setof && - !typeName->pct_type && - (ListLength(typeName->names) == 2 && - NodeTag(ListNodeNth(typeName->names, 0)) == T_String && - !StrICompare(StrVal(ListNodeNth(typeName->names, 0)), "pg_catalog") || ListLength(typeName->names) == 1) && - NodeTag(ListNodeNth(typeName->names, ListLength(typeName->names) - 1)) == T_String; + !typeName->setof && + !typeName->pct_type && + (ListLength(typeName->names) == 2 && + NodeTag(ListNodeNth(typeName->names, 0)) == T_String && + !StrICompare(StrVal(ListNodeNth(typeName->names, 0)), "pg_catalog") || + ListLength(typeName->names) == 1) && + NodeTag(ListNodeNth(typeName->names, ListLength(typeName->names) - 1)) == T_String; if (NodeTag(arg) == T_A_Const && (NodeTag(CAST_NODE(A_Const, arg)->val) == T_String || - CAST_NODE(A_Const, arg)->isnull) && + CAST_NODE(A_Const, arg)->isnull) && supportedTypeName && typeName->typemod == -1 && ListLength(typeName->typmods) == 0 && @@ -4448,28 +4396,28 @@ public: TAstNode* ParseBoolExpr(const BoolExpr* value, const TExprSettings& settings) { AT_LOCATION(value); switch (value->boolop) { - case AND_EXPR: { - return ParseAndOrExpr(value, settings, "PgAnd"); - } - case OR_EXPR: { - return ParseAndOrExpr(value, settings, "PgOr"); - } - case NOT_EXPR: { - if (ListLength(value->args) != 1) { - AddError("Expected 1 arg for NOT"); - return nullptr; + case AND_EXPR: { + return ParseAndOrExpr(value, settings, "PgAnd"); } - - auto arg = ParseExpr(ListNodeNth(value->args, 0), settings); - if (!arg) { - return nullptr; + case OR_EXPR: { + return ParseAndOrExpr(value, settings, "PgOr"); } + case NOT_EXPR: { + if (ListLength(value->args) != 1) { + AddError("Expected 1 arg for NOT"); + return nullptr; + } - return L(A("PgNot"), arg); - } - default: - AddError(TStringBuilder() << "BoolExprType unsupported value: " << (int)value->boolop); - return nullptr; + auto arg = ParseExpr(ListNodeNth(value->args, 0), settings); + if (!arg) { + return nullptr; + } + + return L(A("PgNot"), arg); + } + default: + AddError(TStringBuilder() << "BoolExprType unsupported value: " << (int)value->boolop); + return nullptr; } } @@ -4706,8 +4654,7 @@ public: } TAstNode* ConvertFrameOffset(const Node* off) { - if (NodeTag(off) == T_A_Const - && NodeTag(CAST_NODE(A_Const, off)->val) == T_Integer) { + if (NodeTag(off) == T_A_Const && NodeTag(CAST_NODE(A_Const, off)->val) == T_Integer) { return L(A("Int32"), QA(ToString(IntVal(CAST_NODE(A_Const, off)->val)))); } else { TExprSettings settings; @@ -4727,32 +4674,32 @@ public: bool asc = true; bool nullsFirst = true; switch (value->sortby_dir) { - case SORTBY_DEFAULT: - case SORTBY_ASC: - if (Settings_.PgSortNulls) { - nullsFirst = false; - } - break; - case SORTBY_DESC: - asc = false; - break; - default: - AddError(TStringBuilder() << "sortby_dir unsupported value: " << (int)value->sortby_dir); - return nullptr; + case SORTBY_DEFAULT: + case SORTBY_ASC: + if (Settings_.PgSortNulls) { + nullsFirst = false; + } + break; + case SORTBY_DESC: + asc = false; + break; + default: + AddError(TStringBuilder() << "sortby_dir unsupported value: " << (int)value->sortby_dir); + return nullptr; } switch (value->sortby_nulls) { - case SORTBY_NULLS_DEFAULT: - break; - case SORTBY_NULLS_FIRST: - nullsFirst = true; - break; - case SORTBY_NULLS_LAST: - nullsFirst = false; - break; - default: - AddError(TStringBuilder() << "sortby_dir unsupported value: " << (int)value->sortby_dir); - return nullptr; + case SORTBY_NULLS_DEFAULT: + break; + case SORTBY_NULLS_FIRST: + nullsFirst = true; + break; + case SORTBY_NULLS_LAST: + nullsFirst = false; + break; + default: + AddError(TStringBuilder() << "sortby_dir unsupported value: " << (int)value->sortby_dir); + return nullptr; } if (ListLength(value->useOp) > 0) { @@ -5061,13 +5008,13 @@ public: TAstNode* ret; switch (kind) { - case AEXPR_BETWEEN: - case AEXPR_BETWEEN_SYM: - ret = L(A(kind == AEXPR_BETWEEN ? "PgBetween" : "PgBetweenSym"), lhs, rbhs, rehs); - break; - default: - AddError(TStringBuilder() << "BETWEEN kind unsupported value: " << (int)value->kind); - return nullptr; + case AEXPR_BETWEEN: + case AEXPR_BETWEEN_SYM: + ret = L(A(kind == AEXPR_BETWEEN ? "PgBetween" : "PgBetweenSym"), lhs, rbhs, rehs); + break; + default: + AddError(TStringBuilder() << "BETWEEN kind unsupported value: " << (int)value->kind); + return nullptr; } if (inverse) { @@ -5080,35 +5027,34 @@ public: TAstNode* ParseAExpr(const A_Expr* value, const TExprSettings& settings) { AT_LOCATION(value); switch (value->kind) { - case AEXPR_OP: - return ParseAExprOp(value, settings); - case AEXPR_LIKE: - case AEXPR_ILIKE: - return ParseAExprLike(value, settings, value->kind == AEXPR_ILIKE); - case AEXPR_IN: - return ParseAExprIn(value, settings); - case AEXPR_BETWEEN: - case AEXPR_NOT_BETWEEN: - case AEXPR_BETWEEN_SYM: - case AEXPR_NOT_BETWEEN_SYM: - return ParseAExprBetween(value, settings); - case AEXPR_OP_ANY: - case AEXPR_OP_ALL: - return ParseAExprOpAnyAll(value, settings, value->kind == AEXPR_OP_ALL); - case AEXPR_NULLIF: - return ParseAExprNullIf(value, settings); - default: - AddError(TStringBuilder() << "A_Expr_Kind unsupported value: " << (int)value->kind); - return nullptr; + case AEXPR_OP: + return ParseAExprOp(value, settings); + case AEXPR_LIKE: + case AEXPR_ILIKE: + return ParseAExprLike(value, settings, value->kind == AEXPR_ILIKE); + case AEXPR_IN: + return ParseAExprIn(value, settings); + case AEXPR_BETWEEN: + case AEXPR_NOT_BETWEEN: + case AEXPR_BETWEEN_SYM: + case AEXPR_NOT_BETWEEN_SYM: + return ParseAExprBetween(value, settings); + case AEXPR_OP_ANY: + case AEXPR_OP_ALL: + return ParseAExprOpAnyAll(value, settings, value->kind == AEXPR_OP_ALL); + case AEXPR_NULLIF: + return ParseAExprNullIf(value, settings); + default: + AddError(TStringBuilder() << "A_Expr_Kind unsupported value: " << (int)value->kind); + return nullptr; } - } void AddVariableDeclarations() { - 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)); - } + 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)); + } } template <typename T> @@ -5184,7 +5130,7 @@ public: } template <typename... TNodes> - TAstNode* E(TAstNode* list, TNodes... nodes) { + TAstNode* E(TAstNode* list, TNodes... nodes) { Y_ABORT_UNLESS(list->IsList()); TVector<TAstNode*> nodes_vec; nodes_vec.reserve(list->GetChildrenCount() + sizeof...(nodes)); @@ -5321,8 +5267,7 @@ private: const THashMap<TStringBuf, TString> TConverter::ProviderToInsertModeMap = { {NYql::KikimrProviderName, "insert_abort"}, - {NYql::YtProviderName, "append"} -}; + {NYql::YtProviderName, "append"}}; NYql::TAstParseResult PGToYql(const TString& query, const NSQLTranslation::TTranslationSettings& settings, TStmtParseInfo* stmtParseInfo) { TVector<NYql::TAstParseResult> results; @@ -5378,7 +5323,7 @@ bool ParseTypeName(const PG_TypeName* typeName, TString& value, bool* setOf = nu } bool ParseCreateFunctionStmtImpl(const CreateFunctionStmt* value, ui32 extensionIndex, - NPg::IExtensionSqlBuilder* builder, NYql::NPg::TProcDesc& desc) { + NPg::IExtensionSqlBuilder* builder, NYql::NPg::TProcDesc& desc) { if (ListLength(value->funcname) != 1) { return false; } @@ -5416,9 +5361,7 @@ bool ParseCreateFunctionStmtImpl(const CreateFunctionStmt* value, ui32 extension } auto extStr = TString(StrVal(ListNodeNth(asList, 0))); - auto srcStr = asListLen > 1 ? - TString(StrVal(ListNodeNth(asList, 1))) : - name; + auto srcStr = asListLen > 1 ? TString(StrVal(ListNodeNth(asList, 1))) : name; Y_ENSURE(extensionIndex == NPg::LookupExtensionByInstallName(extStr)); desc.Src = srcStr; @@ -5431,7 +5374,7 @@ bool ParseCreateFunctionStmtImpl(const CreateFunctionStmt* value, ui32 extension desc.Src = srcStr; } } else if (pass == 0 && defnameStr == "strict") { - desc.IsStrict = BoolVal(node->arg); + desc.IsStrict = BoolVal(node->arg); } else if (pass == 0 && defnameStr == "language") { auto langStr = to_lower(TString(StrVal(node->arg))); if (langStr == "c") { @@ -5533,12 +5476,13 @@ bool ParseCreateFunctionStmtImpl(const CreateFunctionStmt* value, ui32 extension return true; } -class TExtensionHandler : public IPGParseEvents { +class TExtensionHandler: public IPGParseEvents { public: TExtensionHandler(ui32 extensionIndex, NYql::NPg::IExtensionSqlBuilder& builder) : ExtensionIndex_(extensionIndex) , Builder_(builder) - {} + { + } void OnResult(const List* raw) final { for (int i = 0; i < ListLength(raw); ++i) { @@ -5556,34 +5500,34 @@ public: bool ParseRawStmt(const RawStmt* value) { auto node = value->stmt; switch (NodeTag(node)) { - case T_CreateFunctionStmt: - return ParseCreateFunctionStmt(CAST_NODE(CreateFunctionStmt, node)); - case T_DefineStmt: - return ParseDefineStmt(CAST_NODE(DefineStmt, node)); - case T_CreateStmt: - return ParseCreateStmt(CAST_NODE(CreateStmt, node)); - case T_InsertStmt: - return ParseInsertStmt(CAST_NODE(InsertStmt, node)); - case T_CreateCastStmt: - return ParseCreateCastStmt(CAST_NODE(CreateCastStmt, node)); - case T_CreateOpClassStmt: - return ParseCreateOpClassStmt(CAST_NODE(CreateOpClassStmt, node)); - default: - return false; + case T_CreateFunctionStmt: + return ParseCreateFunctionStmt(CAST_NODE(CreateFunctionStmt, node)); + case T_DefineStmt: + return ParseDefineStmt(CAST_NODE(DefineStmt, node)); + case T_CreateStmt: + return ParseCreateStmt(CAST_NODE(CreateStmt, node)); + case T_InsertStmt: + return ParseInsertStmt(CAST_NODE(InsertStmt, node)); + case T_CreateCastStmt: + return ParseCreateCastStmt(CAST_NODE(CreateCastStmt, node)); + case T_CreateOpClassStmt: + return ParseCreateOpClassStmt(CAST_NODE(CreateOpClassStmt, node)); + default: + return false; } } [[nodiscard]] bool ParseDefineStmt(const DefineStmt* value) { switch (value->kind) { - case OBJECT_TYPE: - return ParseDefineType(value); - case OBJECT_OPERATOR: - return ParseDefineOperator(value); - case OBJECT_AGGREGATE: - return ParseDefineAggregate(value); - default: - return false; + case OBJECT_TYPE: + return ParseDefineType(value); + case OBJECT_OPERATOR: + return ParseDefineOperator(value); + case OBJECT_AGGREGATE: + return ParseDefineAggregate(value); + default: + return false; } } @@ -5653,11 +5597,10 @@ public: try { desc.InFuncId = NPg::LookupProc(value, {NPg::LookupType("cstring").TypeId}).ProcId; } catch (const yexception&) { - desc.InFuncId = NPg::LookupProc(value, { - NPg::LookupType("cstring").TypeId, - NPg::LookupType("oid").TypeId, - NPg::LookupType("integer").TypeId - }).ProcId; + desc.InFuncId = NPg::LookupProc(value, {NPg::LookupType("cstring").TypeId, + NPg::LookupType("oid").TypeId, + NPg::LookupType("integer").TypeId}) + .ProcId; } } else if (defnameStr == "output") { if (NodeTag(node->arg) != T_TypeName) { @@ -5694,11 +5637,10 @@ public: try { desc.ReceiveFuncId = NPg::LookupProc(value, {NPg::LookupType("internal").TypeId}).ProcId; } catch (const yexception&) { - desc.ReceiveFuncId = NPg::LookupProc(value, { - NPg::LookupType("internal").TypeId, - NPg::LookupType("oid").TypeId, - NPg::LookupType("integer").TypeId - }).ProcId; + desc.ReceiveFuncId = NPg::LookupProc(value, {NPg::LookupType("internal").TypeId, + NPg::LookupType("oid").TypeId, + NPg::LookupType("integer").TypeId}) + .ProcId; } } else if (defnameStr == "delimiter") { if (NodeTag(node->arg) != T_String) { @@ -5983,22 +5925,22 @@ public: stateWithArgs.insert(stateWithArgs.end(), desc.ArgTypes.begin(), desc.ArgTypes.end()); desc.TransFuncId = NPg::LookupProc(sfunc, stateWithArgs).ProcId; if (!finalfunc.empty()) { - desc.FinalFuncId = NPg::LookupProc(finalfunc, { stype }).ProcId; + desc.FinalFuncId = NPg::LookupProc(finalfunc, {stype}).ProcId; } if (!combinefunc.empty()) { - desc.CombineFuncId = NPg::LookupProc(combinefunc, { stype, stype }).ProcId; + desc.CombineFuncId = NPg::LookupProc(combinefunc, {stype, stype}).ProcId; } if (!serialfunc.empty()) { - const auto& procDesc = NPg::LookupProc(serialfunc, { stype }); + const auto& procDesc = NPg::LookupProc(serialfunc, {stype}); Y_ENSURE(procDesc.ResultType == NPg::LookupType("bytea").TypeId); desc.SerializeFuncId = procDesc.ProcId; } if (!deserialfunc.empty()) { Y_ENSURE(!serialfunc.empty()); - const auto& procDesc = NPg::LookupProc(deserialfunc, { NPg::LookupType("bytea").TypeId, stype }); + const auto& procDesc = NPg::LookupProc(deserialfunc, {NPg::LookupType("bytea").TypeId, stype}); Y_ENSURE(procDesc.ResultType == stype); desc.DeserializeFuncId = procDesc.ProcId; } @@ -6130,17 +6072,17 @@ public: } switch (value->context) { - case COERCION_IMPLICIT: - desc.CoercionCode = NPg::ECoercionCode::Implicit; - break; - case COERCION_ASSIGNMENT: - desc.CoercionCode = NPg::ECoercionCode::Assignment; - break; - case COERCION_EXPLICIT: - desc.CoercionCode = NPg::ECoercionCode::Explicit; - break; - default: - return false; + case COERCION_IMPLICIT: + desc.CoercionCode = NPg::ECoercionCode::Implicit; + break; + case COERCION_ASSIGNMENT: + desc.CoercionCode = NPg::ECoercionCode::Assignment; + break; + case COERCION_EXPLICIT: + desc.CoercionCode = NPg::ECoercionCode::Explicit; + break; + default: + return false; } Builder_.CreateCast(desc); @@ -6214,7 +6156,7 @@ public: amOpDesc.Strategy = node->number; amOpDesc.LeftType = typeId; amOpDesc.RightType = typeId; - amOpDesc.OperId = NPg::LookupOper(funcName, {typeId,typeId}).OperId; + amOpDesc.OperId = NPg::LookupOper(funcName, {typeId, typeId}).OperId; ops.push_back(amOpDesc); } else { NPg::TAmProcDesc amProcDesc; @@ -6252,7 +6194,7 @@ private: NYql::NPg::IExtensionSqlBuilder& Builder_; }; -class TExtensionSqlParser : public NYql::NPg::IExtensionSqlParser { +class TExtensionSqlParser: public NYql::NPg::IExtensionSqlParser { public: void Parse(ui32 extensionIndex, const TVector<TString>& sqls, NYql::NPg::IExtensionSqlBuilder& builder) final { TExtensionHandler handler(extensionIndex, builder); @@ -6264,11 +6206,12 @@ public: } }; -class TSystemFunctionsHandler : public IPGParseEvents { +class TSystemFunctionsHandler: public IPGParseEvents { public: TSystemFunctionsHandler(TVector<NPg::TProcDesc>& procs) : Procs_(procs) - {} + { + } void OnResult(const List* raw) final { for (int i = 0; i < ListLength(raw); ++i) { @@ -6286,10 +6229,10 @@ public: bool ParseRawStmt(const RawStmt* value) { auto node = value->stmt; switch (NodeTag(node)) { - case T_CreateFunctionStmt: - return ParseCreateFunctionStmt(CAST_NODE(CreateFunctionStmt, node)); - default: - return false; + case T_CreateFunctionStmt: + return ParseCreateFunctionStmt(CAST_NODE(CreateFunctionStmt, node)); + default: + return false; } } @@ -6308,7 +6251,7 @@ private: TVector<NPg::TProcDesc>& Procs_; }; -class TSystemFunctionsParser : public NYql::NPg::ISystemFunctionsParser { +class TSystemFunctionsParser: public NYql::NPg::ISystemFunctionsParser { public: void Parse(const TString& sql, TVector<NPg::TProcDesc>& procs) const final { TSystemFunctionsHandler handler(procs); @@ -6316,7 +6259,7 @@ public: } }; -class TSqlLanguageParser : public NYql::NPg::ISqlLanguageParser, public IPGParseEvents { +class TSqlLanguageParser: public NYql::NPg::ISqlLanguageParser, public IPGParseEvents { public: TSqlLanguageParser() { Settings_.ClusterMapping["pg_catalog"] = TString(PgProviderName); @@ -6345,18 +6288,18 @@ public: converter.PrepareStatements(); TAstNode* root = nullptr; switch (NodeTag(stmt)) { - case T_SelectStmt: - root = converter.ParseSelectStmt(CAST_NODE(SelectStmt, stmt), {.Inner = false}); - break; - case T_ReturnStmt: - root = converter.ParseReturnStmt(CAST_NODE(ReturnStmt, stmt)); - break; - default: - return; + case T_SelectStmt: + root = converter.ParseSelectStmt(CAST_NODE(SelectStmt, stmt), {.Inner = false}); + break; + case T_ReturnStmt: + root = converter.ParseReturnStmt(CAST_NODE(ReturnStmt, stmt)); + break; + default: + return; } if (!root) { - //Cerr << "Can't parse SQL for function: " << proc.Name << ", " << results[0].Issues.ToString(); + // Cerr << "Can't parse SQL for function: " << proc.Name << ", " << results[0].Issues.ToString(); return; } @@ -6423,7 +6366,7 @@ std::unique_ptr<NYql::NPg::ISqlLanguageParser> CreateSqlLanguageParser() { return std::make_unique<TSqlLanguageParser>(); } -class TTranslator : public NSQLTranslation::ITranslator { +class TTranslator: public NSQLTranslation::ITranslator { public: NSQLTranslation::ILexer::TPtr MakeLexer(const NSQLTranslation::TTranslationSettings& settings) final { Y_UNUSED(settings); @@ -6431,13 +6374,13 @@ public: } NYql::TAstParseResult TextToAst(const TString& query, const NSQLTranslation::TTranslationSettings& settings, - NYql::TWarningRules* warningRules, NYql::TStmtParseInfo* stmtParseInfo) final { + NYql::TWarningRules* warningRules, NYql::TStmtParseInfo* stmtParseInfo) final { Y_UNUSED(warningRules); return PGToYql(query, settings, stmtParseInfo); } google::protobuf::Message* TextToMessage(const TString& query, const TString& queryName, - NYql::TIssues& issues, size_t maxErrors, const NSQLTranslation::TTranslationSettings& settings) final { + NYql::TIssues& issues, size_t maxErrors, const NSQLTranslation::TTranslationSettings& settings) final { Y_UNUSED(query); Y_UNUSED(queryName); Y_UNUSED(issues); @@ -6447,7 +6390,7 @@ public: } NYql::TAstParseResult TextAndMessageToAst(const TString& query, const google::protobuf::Message& protoAst, - const NSQLTranslation::TSQLHints& hints, const NSQLTranslation::TTranslationSettings& settings) final { + const NSQLTranslation::TSQLHints& hints, const NSQLTranslation::TTranslationSettings& settings) final { Y_UNUSED(query); Y_UNUSED(protoAst); Y_UNUSED(hints); @@ -6456,7 +6399,7 @@ public: } TVector<NYql::TAstParseResult> TextToManyAst(const TString& query, const NSQLTranslation::TTranslationSettings& settings, - NYql::TWarningRules* warningRules, TVector<NYql::TStmtParseInfo>* stmtParseInfo) final { + NYql::TWarningRules* warningRules, TVector<NYql::TStmtParseInfo>* stmtParseInfo) final { Y_UNUSED(warningRules); return PGToYqlStatements(query, settings, stmtParseInfo); } @@ -6466,4 +6409,4 @@ NSQLTranslation::TTranslatorPtr MakeTranslator() { return MakeIntrusive<TTranslator>(); } -} // NSQLTranslationPG +} // namespace NSQLTranslationPG diff --git a/yql/essentials/sql/pg/pg_sql_autoparam_ut.cpp b/yql/essentials/sql/pg/pg_sql_autoparam_ut.cpp index 41819b65993..89d639d0082 100644 --- a/yql/essentials/sql/pg/pg_sql_autoparam_ut.cpp +++ b/yql/essentials/sql/pg/pg_sql_autoparam_ut.cpp @@ -5,232 +5,222 @@ using namespace NSQLTranslation; Y_UNIT_TEST_SUITE(PgSqlParsingAutoparam) { - Y_UNIT_TEST(AutoParamValues_DisabledByDefault) { - auto res = PgSqlToYql("insert into plato.Output values (1,2,3), (1,2,3)"); - UNIT_ASSERT_C(res.Issues.Empty(), "Failed to parse statement, issues: " + res.Issues.ToString()); - auto params = dynamic_cast<TTestAutoParamBuilder*>(res.PgAutoParamValues.Get()); - UNIT_ASSERT_C(!params, "Expected no auto parametrization"); - } +Y_UNIT_TEST(AutoParamValues_DisabledByDefault) { + auto res = PgSqlToYql("insert into plato.Output values (1,2,3), (1,2,3)"); + UNIT_ASSERT_C(res.Issues.Empty(), "Failed to parse statement, issues: " + res.Issues.ToString()); + auto params = dynamic_cast<TTestAutoParamBuilder*>(res.PgAutoParamValues.Get()); + UNIT_ASSERT_C(!params, "Expected no auto parametrization"); +} + +Y_UNIT_TEST(AutoParamValues_NoParametersWithDefaults) { + TTranslationSettings settings; + settings.AutoParametrizeEnabled = true; + settings.AutoParametrizeValuesStmt = true; + auto res = SqlToYqlWithMode( + R"(CREATE TABLE t (a int PRIMARY KEY, b int DEFAULT 0))", + NSQLTranslation::ESqlMode::QUERY, + 10, + {}, + EDebugOutput::None, + false, + settings); + + UNIT_ASSERT_C(res.Issues.Empty(), "Failed to parse statement, issues: " + res.Issues.ToString()); + auto params = dynamic_cast<TTestAutoParamBuilder*>(res.PgAutoParamValues.Get()); + UNIT_ASSERT_C(!params, "Expected no auto parametrization"); +} + +using TUsedParamsGetter = std::function<void(TSet<TString>&, const NYql::TAstNode& node)>; - Y_UNIT_TEST(AutoParamValues_NoParametersWithDefaults) { - TTranslationSettings settings; - settings.AutoParametrizeEnabled = true; - settings.AutoParametrizeValuesStmt = true; - auto res = SqlToYqlWithMode( - R"(CREATE TABLE t (a int PRIMARY KEY, b int DEFAULT 0))", - NSQLTranslation::ESqlMode::QUERY, - 10, - {}, - EDebugOutput::None, - false, - settings); - - UNIT_ASSERT_C(res.Issues.Empty(), "Failed to parse statement, issues: " + res.Issues.ToString()); - auto params = dynamic_cast<TTestAutoParamBuilder*>(res.PgAutoParamValues.Get()); - UNIT_ASSERT_C(!params, "Expected no auto parametrization"); +void GetUsedParamsInValues(TSet<TString>& usedParams, const NYql::TAstNode& node) { + const bool isPgSetItem = + node.IsListOfSize(2) && node.GetChild(0)->IsAtom() && node.GetChild(0)->GetContent() == "PgSetItem"; + if (!isPgSetItem) { + return; } + const auto pgSetItemOptions = node.GetChild(1)->GetChild(1); - using TUsedParamsGetter = std::function<void(TSet<TString>&, const NYql::TAstNode& node)>; + for (const auto* pgOption : pgSetItemOptions->GetChildren()) { + const bool isQuotedList = + pgOption->IsListOfSize(2) && pgOption->GetChild(0)->IsAtom() && pgOption->GetChild(0)->GetContent() == "quote"; + if (!isQuotedList) { + continue; + } - void GetUsedParamsInValues(TSet<TString>& usedParams, const NYql::TAstNode& node) { - const bool isPgSetItem = - node.IsListOfSize(2) && node.GetChild(0)->IsAtom() - && node.GetChild(0)->GetContent() == "PgSetItem"; - if (!isPgSetItem) { - return; + const auto* option = pgOption->GetChild(1); + const auto* optionName = option->GetChild(0); + + const bool isValuesNode = + optionName->IsListOfSize(2) && optionName->GetChild(0)->IsAtom() && optionName->GetChild(0)->GetContent() == "quote" && optionName->GetChild(1)->GetContent() == "values"; + if (!isValuesNode) { + continue; } - const auto pgSetItemOptions = node.GetChild(1)->GetChild(1); - - for (const auto* pgOption : pgSetItemOptions->GetChildren()) { - const bool isQuotedList = - pgOption->IsListOfSize(2) && pgOption->GetChild(0)->IsAtom() - && pgOption->GetChild(0)->GetContent() == "quote"; - if (!isQuotedList) { - continue; - } - - const auto* option = pgOption->GetChild(1); - const auto* optionName = option->GetChild(0); - - const bool isValuesNode = - optionName->IsListOfSize(2) && optionName->GetChild(0)->IsAtom() - && optionName->GetChild(0)->GetContent() == "quote" - && optionName->GetChild(1)->GetContent() == "values"; - if (!isValuesNode) { - continue; - } - const auto values = option->GetChild(2); - if (values->IsAtom()) { - usedParams.insert(TString(values->GetContent())); - } + const auto values = option->GetChild(2); + if (values->IsAtom()) { + usedParams.insert(TString(values->GetContent())); } } +} - void TestAutoParam(const TString& query, const THashMap<TString, TString>& expectedParamNameToValue, const TMap<TString, TString>& expectedParamTypes, TUsedParamsGetter usedParamsGetter) { - TTranslationSettings settings; - settings.AutoParametrizeEnabled = true; - settings.AutoParametrizeValuesStmt = true; - auto res = SqlToYqlWithMode( - query, - NSQLTranslation::ESqlMode::QUERY, - 10, - {}, - EDebugOutput::None, - false, - settings); - UNIT_ASSERT_C(res.Issues.Empty(), "Failed to parse statement, issues: " + res.Issues.ToString()); - auto params = dynamic_cast<TTestAutoParamBuilder*>(res.PgAutoParamValues.Get()); - UNIT_ASSERT_C(params && params->Size() > 0, "Expected auto param values"); - - TSet<TString> declaredParams; - TMap<TString, TString> actualParamTypes; - VisitAstNodes(*res.Root, [&declaredParams, &actualParamTypes] (const NYql::TAstNode& node) { - const bool isDeclareNode = - node.IsList() && node.GetChildrenCount() > 0 - && node.GetChild(0)->IsAtom() - && node.GetChild(0)->GetContent() == "declare"; - if (isDeclareNode) { - UNIT_ASSERT_VALUES_EQUAL(node.GetChildrenCount(), 3); - const auto name = TString(node.GetChild(1)->GetContent()); - declaredParams.insert(name); - actualParamTypes[name] = node.GetChild(2)->ToString(); - } - }); - UNIT_ASSERT_VALUES_EQUAL(expectedParamTypes, actualParamTypes); - - TSet<TString> usedParams; - VisitAstNodes(*res.Root, [&usedParams, &usedParamsGetter] (const auto& node) { return usedParamsGetter(usedParams, node); }); - UNIT_ASSERT_VALUES_EQUAL(declaredParams, usedParams); - - TSet<TString> expectedParams; - for (auto& [expectedParamName, val] : expectedParamNameToValue) { - UNIT_ASSERT_C(params->State.contains(expectedParamName), - "Autoparametrized values do not contain expected param: " << expectedParamName); - - UNIT_ASSERT_STRINGS_EQUAL(val, params->GetParamValue(expectedParamName)); - UNIT_ASSERT_C(declaredParams.contains(expectedParamName), - "Declared params don't contain expected param name: " << expectedParamName); - - expectedParams.insert(expectedParamName); +void TestAutoParam(const TString& query, const THashMap<TString, TString>& expectedParamNameToValue, const TMap<TString, TString>& expectedParamTypes, TUsedParamsGetter usedParamsGetter) { + TTranslationSettings settings; + settings.AutoParametrizeEnabled = true; + settings.AutoParametrizeValuesStmt = true; + auto res = SqlToYqlWithMode( + query, + NSQLTranslation::ESqlMode::QUERY, + 10, + {}, + EDebugOutput::None, + false, + settings); + UNIT_ASSERT_C(res.Issues.Empty(), "Failed to parse statement, issues: " + res.Issues.ToString()); + auto params = dynamic_cast<TTestAutoParamBuilder*>(res.PgAutoParamValues.Get()); + UNIT_ASSERT_C(params && params->Size() > 0, "Expected auto param values"); + + TSet<TString> declaredParams; + TMap<TString, TString> actualParamTypes; + VisitAstNodes(*res.Root, [&declaredParams, &actualParamTypes](const NYql::TAstNode& node) { + const bool isDeclareNode = + node.IsList() && node.GetChildrenCount() > 0 && node.GetChild(0)->IsAtom() && node.GetChild(0)->GetContent() == "declare"; + if (isDeclareNode) { + UNIT_ASSERT_VALUES_EQUAL(node.GetChildrenCount(), 3); + const auto name = TString(node.GetChild(1)->GetContent()); + declaredParams.insert(name); + actualParamTypes[name] = node.GetChild(2)->ToString(); } + }); + UNIT_ASSERT_VALUES_EQUAL(expectedParamTypes, actualParamTypes); - UNIT_ASSERT_VALUES_EQUAL(declaredParams.size(), expectedParams.size()); - } + TSet<TString> usedParams; + VisitAstNodes(*res.Root, [&usedParams, &usedParamsGetter](const auto& node) { return usedParamsGetter(usedParams, node); }); + UNIT_ASSERT_VALUES_EQUAL(declaredParams, usedParams); - Y_UNIT_TEST(AutoParamValues_Int4) { - TString query = R"(insert into plato.Output values (1,2), (3,4), (4,5))"; - TString expectedParam = "[int4,int4:1,2,3,4,4,5]"; - TString type = "(ListType (TupleType (PgType 'int4) (PgType 'int4)))"; - TestAutoParam(query, {{"a0", expectedParam}}, {{"a0", type}}, GetUsedParamsInValues); - } + TSet<TString> expectedParams; + for (auto& [expectedParamName, val] : expectedParamNameToValue) { + UNIT_ASSERT_C(params->State.contains(expectedParamName), + "Autoparametrized values do not contain expected param: " << expectedParamName); + + UNIT_ASSERT_STRINGS_EQUAL(val, params->GetParamValue(expectedParamName)); + UNIT_ASSERT_C(declaredParams.contains(expectedParamName), + "Declared params don't contain expected param name: " << expectedParamName); - Y_UNIT_TEST(AutoParamValues_Int4Text) { - TString query = R"(insert into plato.Output values (1,'2'), (3,'4'))"; - TString expectedParam = "[int4,unknown:1,2,3,4]"; - TString type = "(ListType (TupleType (PgType 'int4) (PgType 'unknown)))"; - TestAutoParam(query, {{"a0", expectedParam}}, {{"a0", type}}, GetUsedParamsInValues); + expectedParams.insert(expectedParamName); } - Y_UNIT_TEST(AutoParamValues_MultipleStmts) { - TString query = R"( + UNIT_ASSERT_VALUES_EQUAL(declaredParams.size(), expectedParams.size()); +} + +Y_UNIT_TEST(AutoParamValues_Int4) { + TString query = R"(insert into plato.Output values (1,2), (3,4), (4,5))"; + TString expectedParam = "[int4,int4:1,2,3,4,4,5]"; + TString type = "(ListType (TupleType (PgType 'int4) (PgType 'int4)))"; + TestAutoParam(query, {{"a0", expectedParam}}, {{"a0", type}}, GetUsedParamsInValues); +} + +Y_UNIT_TEST(AutoParamValues_Int4Text) { + TString query = R"(insert into plato.Output values (1,'2'), (3,'4'))"; + TString expectedParam = "[int4,unknown:1,2,3,4]"; + TString type = "(ListType (TupleType (PgType 'int4) (PgType 'unknown)))"; + TestAutoParam(query, {{"a0", expectedParam}}, {{"a0", type}}, GetUsedParamsInValues); +} + +Y_UNIT_TEST(AutoParamValues_MultipleStmts) { + TString query = R"( insert into plato.Output values (1,'2'), (3,'4'); insert into plato.Output1 values (1.23); )"; - TString expectedParam0 = "[int4,unknown:1,2,3,4]"; - TString expectedParam1 = "[numeric:1.23]"; - TMap<TString, TString> expectedParamTypes { - {"a0", "(ListType (TupleType (PgType 'int4) (PgType 'unknown)))"}, - {"a1", "(ListType (TupleType (PgType 'numeric)))"} - }; - TestAutoParam(query, {{"a0", expectedParam0}, {"a1", expectedParam1}}, expectedParamTypes, GetUsedParamsInValues); - } + TString expectedParam0 = "[int4,unknown:1,2,3,4]"; + TString expectedParam1 = "[numeric:1.23]"; + TMap<TString, TString> expectedParamTypes{ + {"a0", "(ListType (TupleType (PgType 'int4) (PgType 'unknown)))"}, + {"a1", "(ListType (TupleType (PgType 'numeric)))"}}; + TestAutoParam(query, {{"a0", expectedParam0}, {"a1", expectedParam1}}, expectedParamTypes, GetUsedParamsInValues); +} - Y_UNIT_TEST(AutoParamValues_WithNull) { - TString query = R"( +Y_UNIT_TEST(AutoParamValues_WithNull) { + TString query = R"( insert into plato.Output values (null, '2'), (3, '4') )"; - TString expectedParam = "[int4,unknown:#,2,3,4]"; - TString type = "(ListType (TupleType (PgType 'int4) (PgType 'unknown)))"; - TestAutoParam(query, {{"a0", expectedParam}}, {{"a0", type}}, GetUsedParamsInValues); - } + TString expectedParam = "[int4,unknown:#,2,3,4]"; + TString type = "(ListType (TupleType (PgType 'int4) (PgType 'unknown)))"; + TestAutoParam(query, {{"a0", expectedParam}}, {{"a0", type}}, GetUsedParamsInValues); +} - Y_UNIT_TEST(AutoParamValues_NullCol) { - TString query = R"( +Y_UNIT_TEST(AutoParamValues_NullCol) { + TString query = R"( insert into plato.Output values (null,1), (null,1) )"; - TString expectedParam = "[unknown,int4:#,1,#,1]"; - TString type = "(ListType (TupleType (PgType 'unknown) (PgType 'int4)))"; - TestAutoParam(query, {{"a0", expectedParam}}, {{"a0", type}}, GetUsedParamsInValues); - } + TString expectedParam = "[unknown,int4:#,1,#,1]"; + TString type = "(ListType (TupleType (PgType 'unknown) (PgType 'int4)))"; + TestAutoParam(query, {{"a0", expectedParam}}, {{"a0", type}}, GetUsedParamsInValues); +} - Y_UNIT_TEST(AutoParamConsts_Where) { - TString query = R"( +Y_UNIT_TEST(AutoParamConsts_Where) { + TString query = R"( select * from plato.Output where key > 1 )"; - TString expectedParam = "int4:1"; - - // We expect: (PgOp '">" (PgColumnRef '"key") a0) - const TUsedParamsGetter usedInWhereComp = [] (TSet<TString>& usedParams, const NYql::TAstNode& node) { - const auto maybeQuote = MaybeGetQuotedValue(node); - if (!maybeQuote) { - return; - } - const auto quotedVal = maybeQuote.GetRef(); - const bool isWhere = - quotedVal->IsListOfSize(2) && quotedVal->GetChild(1)->IsListOfSize(3) - && quotedVal->GetChild(1)->IsListOfSize(3) - && quotedVal->GetChild(1)->GetChild(0)->IsAtom() - && quotedVal->GetChild(1)->GetChild(0)->GetContent() == "PgWhere"; - - if (!isWhere) { - return; - } - const auto* whereCallable = quotedVal->GetChild(1); - - const auto* whereLambda = whereCallable->GetChild(2); - const auto* pgOp = whereLambda->GetChild(2); - const bool isBinaryOp = pgOp->IsListOfSize(4); - if (!isBinaryOp) { - return; - } - const auto* pgBinOpSecondArg = pgOp->GetChild(3); - usedParams.insert(TString(pgBinOpSecondArg->GetContent())); - }; - TString type = "(PgType 'int4)"; - TestAutoParam(query, {{"a0", expectedParam}}, {{"a0", type}}, usedInWhereComp); - } + TString expectedParam = "int4:1"; + + // We expect: (PgOp '">" (PgColumnRef '"key") a0) + const TUsedParamsGetter usedInWhereComp = [](TSet<TString>& usedParams, const NYql::TAstNode& node) { + const auto maybeQuote = MaybeGetQuotedValue(node); + if (!maybeQuote) { + return; + } + const auto quotedVal = maybeQuote.GetRef(); + const bool isWhere = + quotedVal->IsListOfSize(2) && quotedVal->GetChild(1)->IsListOfSize(3) && quotedVal->GetChild(1)->IsListOfSize(3) && quotedVal->GetChild(1)->GetChild(0)->IsAtom() && quotedVal->GetChild(1)->GetChild(0)->GetContent() == "PgWhere"; + + if (!isWhere) { + return; + } + const auto* whereCallable = quotedVal->GetChild(1); + + const auto* whereLambda = whereCallable->GetChild(2); + const auto* pgOp = whereLambda->GetChild(2); + const bool isBinaryOp = pgOp->IsListOfSize(4); + if (!isBinaryOp) { + return; + } + const auto* pgBinOpSecondArg = pgOp->GetChild(3); + usedParams.insert(TString(pgBinOpSecondArg->GetContent())); + }; + TString type = "(PgType 'int4)"; + TestAutoParam(query, {{"a0", expectedParam}}, {{"a0", type}}, usedInWhereComp); +} - Y_UNIT_TEST(AutoParamConsts_Select) { - TString query = R"( +Y_UNIT_TEST(AutoParamConsts_Select) { + TString query = R"( select 1, 'test', B'10001' )"; - TString expectedParamInt4 = "int4:1"; - TString expectedParamText = "unknown:test"; - TString expectedParamBit = "bit:b10001"; - const TUsedParamsGetter dummyGetter = [] (TSet<TString>& usedParams, const NYql::TAstNode&) { - usedParams = {"a0", "a1", "a2"}; - }; - TMap<TString, TString> expectedParamTypes { - {"a0", "(PgType 'int4)"}, - {"a1", "(PgType 'unknown)"}, - {"a2", "(PgType 'bit)"}, - }; - TestAutoParam(query, { - {"a0", expectedParamInt4}, - {"a1", expectedParamText}, - {"a2", expectedParamBit}, - }, expectedParamTypes, dummyGetter); - } - - Y_UNIT_TEST(AutoParamValues_FailToInferColumnType) { - const auto query = R"(INSERT INTO test VALUES (1), ('2');)"; - TMap<TString, TString> paramToType = {{"a0", "(PgType 'int4)"}, {"a1", "(PgType 'unknown)"}}; - TString expectedParamInt4 = "int4:1"; - TString expectedParamText = "unknown:2"; - const TUsedParamsGetter dummyGetter = [] (TSet<TString>& usedParams, const NYql::TAstNode&) { - usedParams = {"a0", "a1"}; - }; - TestAutoParam(query, {{"a0", expectedParamInt4}, {"a1", expectedParamText}}, paramToType, dummyGetter); - } + TString expectedParamInt4 = "int4:1"; + TString expectedParamText = "unknown:test"; + TString expectedParamBit = "bit:b10001"; + const TUsedParamsGetter dummyGetter = [](TSet<TString>& usedParams, const NYql::TAstNode&) { + usedParams = {"a0", "a1", "a2"}; + }; + TMap<TString, TString> expectedParamTypes{ + {"a0", "(PgType 'int4)"}, + {"a1", "(PgType 'unknown)"}, + {"a2", "(PgType 'bit)"}, + }; + TestAutoParam(query, { + {"a0", expectedParamInt4}, + {"a1", expectedParamText}, + {"a2", expectedParamBit}, + }, expectedParamTypes, dummyGetter); +} +Y_UNIT_TEST(AutoParamValues_FailToInferColumnType) { + const auto query = R"(INSERT INTO test VALUES (1), ('2');)"; + TMap<TString, TString> paramToType = {{"a0", "(PgType 'int4)"}, {"a1", "(PgType 'unknown)"}}; + TString expectedParamInt4 = "int4:1"; + TString expectedParamText = "unknown:2"; + const TUsedParamsGetter dummyGetter = [](TSet<TString>& usedParams, const NYql::TAstNode&) { + usedParams = {"a0", "a1"}; + }; + TestAutoParam(query, {{"a0", expectedParamInt4}, {"a1", expectedParamText}}, paramToType, dummyGetter); } + +} // Y_UNIT_TEST_SUITE(PgSqlParsingAutoparam) diff --git a/yql/essentials/sql/pg/pg_sql_ut.cpp b/yql/essentials/sql/pg/pg_sql_ut.cpp index 6ff55df7761..a89851dd63b 100644 --- a/yql/essentials/sql/pg/pg_sql_ut.cpp +++ b/yql/essentials/sql/pg/pg_sql_ut.cpp @@ -9,63 +9,60 @@ using namespace NSQLTranslation; Y_UNIT_TEST_SUITE(PgSqlParsingOnly) { - Y_UNIT_TEST(Locking) { - auto res = PgSqlToYql("SELECT 1 FROM plato.Input FOR UPDATE"); - UNIT_ASSERT(res.Root); - UNIT_ASSERT_EQUAL(res.Issues.Size(), 1); +Y_UNIT_TEST(Locking) { + auto res = PgSqlToYql("SELECT 1 FROM plato.Input FOR UPDATE"); + UNIT_ASSERT(res.Root); + UNIT_ASSERT_EQUAL(res.Issues.Size(), 1); - auto issue = *(res.Issues.begin()); - UNIT_ASSERT(issue.GetMessage().find("locking") != TString::npos); - } + auto issue = *(res.Issues.begin()); + UNIT_ASSERT(issue.GetMessage().find("locking") != TString::npos); +} - Y_UNIT_TEST(InsertStmt) { - auto res = PgSqlToYql("INSERT INTO plato.Input VALUES (1, 1)"); - UNIT_ASSERT(res.Root); - } +Y_UNIT_TEST(InsertStmt) { + auto res = PgSqlToYql("INSERT INTO plato.Input VALUES (1, 1)"); + UNIT_ASSERT(res.Root); +} - Y_UNIT_TEST(InsertStmt_DefaultValues) { - auto res = PgSqlToYql("INSERT INTO plato.Input DEFAULT VALUES"); - UNIT_ASSERT(res.Root); - - const NYql::TAstNode* writeNode = nullptr; - VisitAstNodes(*res.Root, [&writeNode] (const NYql::TAstNode& node) { - const bool isWriteNode = node.IsList() && node.GetChildrenCount() > 0 - && node.GetChild(0)->IsAtom() && node.GetChild(0)->GetContent() == "Write!"; - if (isWriteNode) { - writeNode = &node; - } - }); - - UNIT_ASSERT(writeNode); - UNIT_ASSERT(writeNode->GetChildrenCount() > 5); - const auto optionsQListNode = writeNode->GetChild(5); - UNIT_ASSERT(optionsQListNode->ToString().Contains("'default_values")); - } +Y_UNIT_TEST(InsertStmt_DefaultValues) { + auto res = PgSqlToYql("INSERT INTO plato.Input DEFAULT VALUES"); + UNIT_ASSERT(res.Root); - Y_UNIT_TEST(InsertStmt_Returning) { - auto res = PgSqlToYql("INSERT INTO plato.Input VALUES (1, 1) RETURNING *"); - UNIT_ASSERT(res.Root); - const NYql::TAstNode* writeNode = nullptr; - VisitAstNodes(*res.Root, [&writeNode] (const NYql::TAstNode& node) { - const bool isWriteNode = node.IsList() && node.GetChildrenCount() > 0 - && node.GetChild(0)->IsAtom() && node.GetChild(0)->GetContent() == "Write!"; - if (isWriteNode) { - writeNode = &node; - } - }); - UNIT_ASSERT(writeNode); - UNIT_ASSERT(writeNode->GetChildrenCount() > 5); - const auto optionsQListNode = writeNode->GetChild(5); - UNIT_ASSERT_STRINGS_EQUAL( - optionsQListNode->ToString(), - R"('('('mode 'append) '('returning '((PgResultItem '"" (Void) (lambda '() (PgStar)))))))" - ); - } + const NYql::TAstNode* writeNode = nullptr; + VisitAstNodes(*res.Root, [&writeNode](const NYql::TAstNode& node) { + const bool isWriteNode = node.IsList() && node.GetChildrenCount() > 0 && node.GetChild(0)->IsAtom() && node.GetChild(0)->GetContent() == "Write!"; + if (isWriteNode) { + writeNode = &node; + } + }); - Y_UNIT_TEST(DeleteStmt) { - auto res = PgSqlToYql("DELETE FROM plato.Input"); - UNIT_ASSERT(res.Root); - TString program = R"( + UNIT_ASSERT(writeNode); + UNIT_ASSERT(writeNode->GetChildrenCount() > 5); + const auto optionsQListNode = writeNode->GetChild(5); + UNIT_ASSERT(optionsQListNode->ToString().Contains("'default_values")); +} + +Y_UNIT_TEST(InsertStmt_Returning) { + auto res = PgSqlToYql("INSERT INTO plato.Input VALUES (1, 1) RETURNING *"); + UNIT_ASSERT(res.Root); + const NYql::TAstNode* writeNode = nullptr; + VisitAstNodes(*res.Root, [&writeNode](const NYql::TAstNode& node) { + const bool isWriteNode = node.IsList() && node.GetChildrenCount() > 0 && node.GetChild(0)->IsAtom() && node.GetChild(0)->GetContent() == "Write!"; + if (isWriteNode) { + writeNode = &node; + } + }); + UNIT_ASSERT(writeNode); + UNIT_ASSERT(writeNode->GetChildrenCount() > 5); + const auto optionsQListNode = writeNode->GetChild(5); + UNIT_ASSERT_STRINGS_EQUAL( + optionsQListNode->ToString(), + R"('('('mode 'append) '('returning '((PgResultItem '"" (Void) (lambda '() (PgStar)))))))"); +} + +Y_UNIT_TEST(DeleteStmt) { + auto res = PgSqlToYql("DELETE FROM plato.Input"); + UNIT_ASSERT(res.Root); + TString program = R"( ( (let world (Configure! world (DataSource 'config) 'OrderedColumns)) (let read0 (Read! world (DataSource '"yt" '"plato") (Key '('table (String '"input"))) (Void) '())) @@ -75,35 +72,33 @@ Y_UNIT_TEST_SUITE(PgSqlParsingOnly) { (return world) ) )"; - const auto expectedAst = NYql::ParseAst(program); - UNIT_ASSERT_STRINGS_EQUAL(res.Root->ToString(), expectedAst.Root->ToString()); - } + const auto expectedAst = NYql::ParseAst(program); + UNIT_ASSERT_STRINGS_EQUAL(res.Root->ToString(), expectedAst.Root->ToString()); +} - Y_UNIT_TEST(DeleteStmt_Returning) { - auto res = PgSqlToYql("DELETE FROM plato.Input RETURNING name, price AS new_price"); - UNIT_ASSERT(res.Root); - const NYql::TAstNode* writeNode = nullptr; - VisitAstNodes(*res.Root, [&writeNode] (const NYql::TAstNode& node) { - const bool isWriteNode = node.IsList() && node.GetChildrenCount() > 0 - && node.GetChild(0)->IsAtom() && node.GetChild(0)->GetContent() == "Write!"; - if (isWriteNode) { - writeNode = &node; - } - }); - UNIT_ASSERT(writeNode); - UNIT_ASSERT(writeNode->GetChildrenCount() > 5); - const auto optionsQListNode = writeNode->GetChild(5); - UNIT_ASSERT_STRINGS_EQUAL( - optionsQListNode->GetChild(1)->GetChild(2)->ToString(), - R"('('returning '((PgResultItem '"name" (Void) (lambda '() (PgColumnRef '"name"))) (PgResultItem '"new_price" (Void) (lambda '() (PgColumnRef '"price"))))))" - ); - } +Y_UNIT_TEST(DeleteStmt_Returning) { + auto res = PgSqlToYql("DELETE FROM plato.Input RETURNING name, price AS new_price"); + UNIT_ASSERT(res.Root); + const NYql::TAstNode* writeNode = nullptr; + VisitAstNodes(*res.Root, [&writeNode](const NYql::TAstNode& node) { + const bool isWriteNode = node.IsList() && node.GetChildrenCount() > 0 && node.GetChild(0)->IsAtom() && node.GetChild(0)->GetContent() == "Write!"; + if (isWriteNode) { + writeNode = &node; + } + }); + UNIT_ASSERT(writeNode); + UNIT_ASSERT(writeNode->GetChildrenCount() > 5); + const auto optionsQListNode = writeNode->GetChild(5); + UNIT_ASSERT_STRINGS_EQUAL( + optionsQListNode->GetChild(1)->GetChild(2)->ToString(), + R"('('returning '((PgResultItem '"name" (Void) (lambda '() (PgColumnRef '"name"))) (PgResultItem '"new_price" (Void) (lambda '() (PgColumnRef '"price"))))))"); +} - Y_UNIT_TEST(CreateTableStmt_Basic) { - auto res = PgSqlToYql("CREATE TABLE t (a int, b text)"); - UNIT_ASSERT(res.Root); +Y_UNIT_TEST(CreateTableStmt_Basic) { + auto res = PgSqlToYql("CREATE TABLE t (a int, b text)"); + UNIT_ASSERT(res.Root); - TString program = R"( + TString program = R"( ( (let world (Configure! world (DataSource 'config) 'OrderedColumns)) (let world (Write! world (DataSink '"kikimr" '"") (Key '('tablescheme (String '"t"))) (Void) '('('mode 'create) '('columns '('('a (PgType 'int4) '('columnConstraints '())) '('b (PgType 'text) '('columnConstraints '()))))))) @@ -111,24 +106,24 @@ Y_UNIT_TEST_SUITE(PgSqlParsingOnly) { (return world) ) )"; - const auto expectedAst = NYql::ParseAst(program); - UNIT_ASSERT_STRINGS_EQUAL(res.Root->ToString(), expectedAst.Root->ToString()); - } + const auto expectedAst = NYql::ParseAst(program); + UNIT_ASSERT_STRINGS_EQUAL(res.Root->ToString(), expectedAst.Root->ToString()); +} - Y_UNIT_TEST(CreateTableStmt_SystemColumns) { - auto res = PgSqlToYql("CREATE TABLE t(XMIN int)"); - UNIT_ASSERT(!res.Root); - UNIT_ASSERT_EQUAL(res.Issues.Size(), 1); +Y_UNIT_TEST(CreateTableStmt_SystemColumns) { + auto res = PgSqlToYql("CREATE TABLE t(XMIN int)"); + UNIT_ASSERT(!res.Root); + UNIT_ASSERT_EQUAL(res.Issues.Size(), 1); - auto issue = *(res.Issues.begin()); - UNIT_ASSERT(issue.GetMessage().find("system column") != TString::npos); - } + auto issue = *(res.Issues.begin()); + UNIT_ASSERT(issue.GetMessage().find("system column") != TString::npos); +} - Y_UNIT_TEST(CreateTableStmt_NotNull) { - auto res = PgSqlToYql("CREATE TABLE t (a int NOT NULL, b text)"); - UNIT_ASSERT(res.Root); +Y_UNIT_TEST(CreateTableStmt_NotNull) { + auto res = PgSqlToYql("CREATE TABLE t (a int NOT NULL, b text)"); + UNIT_ASSERT(res.Root); - TString program = R"( + TString program = R"( ( (let world (Configure! world (DataSource 'config) 'OrderedColumns)) (let world (Write! world (DataSink '"kikimr" '"") (Key '('tablescheme (String '"t"))) (Void) '('('mode 'create) '('columns '('('a (PgType 'int4) '('columnConstraints '('('not_null)))) '('b (PgType 'text) '('columnConstraints '()))))))) @@ -136,15 +131,15 @@ Y_UNIT_TEST_SUITE(PgSqlParsingOnly) { (return world) ) )"; - const auto expectedAst = NYql::ParseAst(program); - UNIT_ASSERT_STRINGS_EQUAL(res.Root->ToString(), expectedAst.Root->ToString()); - } + const auto expectedAst = NYql::ParseAst(program); + UNIT_ASSERT_STRINGS_EQUAL(res.Root->ToString(), expectedAst.Root->ToString()); +} - Y_UNIT_TEST(CreateTableStmt_JustPK) { - auto res = PgSqlToYql("CREATE TABLE t (a int PRIMARY KEY, b text)"); - UNIT_ASSERT(res.Root); +Y_UNIT_TEST(CreateTableStmt_JustPK) { + auto res = PgSqlToYql("CREATE TABLE t (a int PRIMARY KEY, b text)"); + UNIT_ASSERT(res.Root); - TString program = R"( + TString program = R"( ( (let world (Configure! world (DataSource 'config) 'OrderedColumns)) (let world (Write! world (DataSink '"kikimr" '"") (Key '('tablescheme (String '"t"))) (Void) '('('mode 'create) '('columns '('('a (PgType 'int4) '('columnConstraints '('('not_null)))) '('b (PgType 'text) '('columnConstraints '())))) '('primarykey '('a))))) @@ -152,15 +147,15 @@ Y_UNIT_TEST_SUITE(PgSqlParsingOnly) { (return world) ) )"; - const auto expectedAst = NYql::ParseAst(program); - UNIT_ASSERT_STRINGS_EQUAL(res.Root->ToString(), expectedAst.Root->ToString()); - } + const auto expectedAst = NYql::ParseAst(program); + UNIT_ASSERT_STRINGS_EQUAL(res.Root->ToString(), expectedAst.Root->ToString()); +} - Y_UNIT_TEST(CreateTableStmt_Default) { - auto res = PgSqlToYql("CREATE TABLE t (a int PRIMARY KEY, b int DEFAULT 0)"); - UNIT_ASSERT(res.Root); +Y_UNIT_TEST(CreateTableStmt_Default) { + auto res = PgSqlToYql("CREATE TABLE t (a int PRIMARY KEY, b int DEFAULT 0)"); + UNIT_ASSERT(res.Root); - TString program = R"( + TString program = R"( ( (let world (Configure! world (DataSource 'config) 'OrderedColumns)) (let world (Write! world (DataSink '"kikimr" '"") (Key '('tablescheme (String '"t"))) (Void) '('('mode 'create) '('columns '('('a (PgType 'int4) '('columnConstraints '('('not_null)))) '('b (PgType 'int4) '('columnConstraints '('('default (PgConst '0 (PgType 'int4)))))))) '('primarykey '('a))))) @@ -168,15 +163,15 @@ Y_UNIT_TEST_SUITE(PgSqlParsingOnly) { (return world) ) )"; - const auto expectedAst = NYql::ParseAst(program); - UNIT_ASSERT_STRINGS_EQUAL(res.Root->ToString(), expectedAst.Root->ToString()); - } + const auto expectedAst = NYql::ParseAst(program); + UNIT_ASSERT_STRINGS_EQUAL(res.Root->ToString(), expectedAst.Root->ToString()); +} - Y_UNIT_TEST(CreateTableStmt_PKAndNotNull) { - auto res = PgSqlToYql("CREATE TABLE t (a int PRIMARY KEY NOT NULL, b text)"); - UNIT_ASSERT(res.Root); +Y_UNIT_TEST(CreateTableStmt_PKAndNotNull) { + auto res = PgSqlToYql("CREATE TABLE t (a int PRIMARY KEY NOT NULL, b text)"); + UNIT_ASSERT(res.Root); - TString program = R"( + TString program = R"( ( (let world (Configure! world (DataSource 'config) 'OrderedColumns)) (let world (Write! world (DataSink '"kikimr" '"") (Key '('tablescheme (String '"t"))) (Void) '('('mode 'create) '('columns '('('a (PgType 'int4) '('columnConstraints '('('not_null)))) '('b (PgType 'text) '('columnConstraints '())))) '('primarykey '('a))))) @@ -184,15 +179,15 @@ Y_UNIT_TEST_SUITE(PgSqlParsingOnly) { (return world) ) )"; - const auto expectedAst = NYql::ParseAst(program); - UNIT_ASSERT_STRINGS_EQUAL(res.Root->ToString(), expectedAst.Root->ToString()); - } + const auto expectedAst = NYql::ParseAst(program); + UNIT_ASSERT_STRINGS_EQUAL(res.Root->ToString(), expectedAst.Root->ToString()); +} - Y_UNIT_TEST(CreateTableStmt_PKAndOtherNotNull) { - auto res = PgSqlToYql("CREATE TABLE t (a int PRIMARY KEY, b text NOT NULL)"); - UNIT_ASSERT(res.Root); +Y_UNIT_TEST(CreateTableStmt_PKAndOtherNotNull) { + auto res = PgSqlToYql("CREATE TABLE t (a int PRIMARY KEY, b text NOT NULL)"); + UNIT_ASSERT(res.Root); - TString program = R"( + TString program = R"( ( (let world (Configure! world (DataSource 'config) 'OrderedColumns)) (let world (Write! world (DataSink '"kikimr" '"") (Key '('tablescheme (String '"t"))) (Void) '('('mode 'create) '('columns '('('a (PgType 'int4) '('columnConstraints '('('not_null)))) '('b (PgType 'text) '('columnConstraints '('('not_null)))))) '('primarykey '('a))))) @@ -200,15 +195,15 @@ Y_UNIT_TEST_SUITE(PgSqlParsingOnly) { (return world) ) )"; - const auto expectedAst = NYql::ParseAst(program); - UNIT_ASSERT_STRINGS_EQUAL(res.Root->ToString(), expectedAst.Root->ToString()); - } + const auto expectedAst = NYql::ParseAst(program); + UNIT_ASSERT_STRINGS_EQUAL(res.Root->ToString(), expectedAst.Root->ToString()); +} - Y_UNIT_TEST(CreateTableStmt_TableLevelPK) { - auto res = PgSqlToYql("CREATE TABLE t (a int, b text NOT NULL, PRIMARY KEY (a, b))"); - UNIT_ASSERT(res.Root); +Y_UNIT_TEST(CreateTableStmt_TableLevelPK) { + auto res = PgSqlToYql("CREATE TABLE t (a int, b text NOT NULL, PRIMARY KEY (a, b))"); + UNIT_ASSERT(res.Root); - TString program = R"( + TString program = R"( ( (let world (Configure! world (DataSource 'config) 'OrderedColumns)) (let world (Write! world (DataSink '"kikimr" '"") (Key '('tablescheme (String '"t"))) (Void) '('('mode 'create) '('columns '('('a (PgType 'int4) '('columnConstraints '('('not_null)))) '('b (PgType 'text) '('columnConstraints '('('not_null)))))) '('primarykey '('a 'b))))) @@ -216,48 +211,48 @@ Y_UNIT_TEST_SUITE(PgSqlParsingOnly) { (return world) ) )"; - const auto expectedAst = NYql::ParseAst(program); - UNIT_ASSERT_STRINGS_EQUAL(res.Root->ToString(), expectedAst.Root->ToString()); - } + const auto expectedAst = NYql::ParseAst(program); + UNIT_ASSERT_STRINGS_EQUAL(res.Root->ToString(), expectedAst.Root->ToString()); +} - Y_UNIT_TEST(CreateTableStmt_RepeatingColumnNames) { - auto res = PgSqlToYql("CREATE TABLE t (a int, a text)"); - UNIT_ASSERT(!res.Root); - UNIT_ASSERT_EQUAL(res.Issues.Size(), 1); +Y_UNIT_TEST(CreateTableStmt_RepeatingColumnNames) { + auto res = PgSqlToYql("CREATE TABLE t (a int, a text)"); + UNIT_ASSERT(!res.Root); + UNIT_ASSERT_EQUAL(res.Issues.Size(), 1); - auto issue = *(res.Issues.begin()); - UNIT_ASSERT(issue.GetMessage().find("duplicate") != TString::npos); - } + auto issue = *(res.Issues.begin()); + UNIT_ASSERT(issue.GetMessage().find("duplicate") != TString::npos); +} - Y_UNIT_TEST(CreateTableStmt_PKHasColumnsNotBelongingToTable_Fails) { - auto res = PgSqlToYql("CREATE TABLE t (a int, primary key(b))"); - UNIT_ASSERT(!res.Root); - UNIT_ASSERT_EQUAL(res.Issues.Size(), 1); +Y_UNIT_TEST(CreateTableStmt_PKHasColumnsNotBelongingToTable_Fails) { + auto res = PgSqlToYql("CREATE TABLE t (a int, primary key(b))"); + UNIT_ASSERT(!res.Root); + UNIT_ASSERT_EQUAL(res.Issues.Size(), 1); - auto issue = *(res.Issues.begin()); - UNIT_ASSERT(issue.GetMessage().find("PK column does not belong to table") != TString::npos); - } + auto issue = *(res.Issues.begin()); + UNIT_ASSERT(issue.GetMessage().find("PK column does not belong to table") != TString::npos); +} - Y_UNIT_TEST(CreateTableStmt_AliasSerialToIntType) { - auto res = PgSqlToYql("CREATE TABLE t (a SerIAL)"); - UNIT_ASSERT(res.Root); +Y_UNIT_TEST(CreateTableStmt_AliasSerialToIntType) { + auto res = PgSqlToYql("CREATE TABLE t (a SerIAL)"); + UNIT_ASSERT(res.Root); - TString program = R"( + TString program = R"( ( (let world (Configure! world (DataSource 'config) 'OrderedColumns)) (let world (Write! world (DataSink '"kikimr" '"") (Key '('tablescheme (String '"t"))) (Void) '('('mode 'create) '('columns '('('a (PgType 'int4) '('columnConstraints '('('serial))))))))) (let world (CommitAll! world)) (return world)) )"; - const auto expectedAst = NYql::ParseAst(program); - UNIT_ASSERT_STRINGS_EQUAL(res.Root->ToString(), expectedAst.Root->ToString()); - } + const auto expectedAst = NYql::ParseAst(program); + UNIT_ASSERT_STRINGS_EQUAL(res.Root->ToString(), expectedAst.Root->ToString()); +} - Y_UNIT_TEST(CreateTableStmt_Temp) { - auto res = PgSqlToYql("create temp table t ()"); - UNIT_ASSERT(res.Root); +Y_UNIT_TEST(CreateTableStmt_Temp) { + auto res = PgSqlToYql("create temp table t ()"); + UNIT_ASSERT(res.Root); - TString program = R"( + TString program = R"( ( (let world (Configure! world (DataSource 'config) 'OrderedColumns)) (let world (Write! world (DataSink '"kikimr" '"") (Key '('tablescheme (String '"t"))) (Void) '('('mode 'create) '('columns '()) '('temporary)))) @@ -265,16 +260,16 @@ Y_UNIT_TEST_SUITE(PgSqlParsingOnly) { (return world) ) )"; - const auto expectedAst = NYql::ParseAst(program); - UNIT_ASSERT_STRINGS_EQUAL(res.Root->ToString(), expectedAst.Root->ToString()); - } + const auto expectedAst = NYql::ParseAst(program); + UNIT_ASSERT_STRINGS_EQUAL(res.Root->ToString(), expectedAst.Root->ToString()); +} - Y_UNIT_TEST(CreateSeqStmt) { - auto res = PgSqlToYql( - "CREATE TEMP SEQUENCE IF NOT EXISTS seq AS integer START WITH 10 INCREMENT BY 2 NO MINVALUE NO MAXVALUE CACHE 3;"); - UNIT_ASSERT_C(res.Root, res.Issues.ToString()); +Y_UNIT_TEST(CreateSeqStmt) { + auto res = PgSqlToYql( + "CREATE TEMP SEQUENCE IF NOT EXISTS seq AS integer START WITH 10 INCREMENT BY 2 NO MINVALUE NO MAXVALUE CACHE 3;"); + UNIT_ASSERT_C(res.Root, res.Issues.ToString()); - TString program = R"( + TString program = R"( ((let world (Configure! world (DataSource 'config) 'OrderedColumns)) (let world (Write! world (DataSink '"kikimr" '"") (Key '('pgObject (String '"seq") (String 'pgSequence))) (Void) '( @@ -282,28 +277,28 @@ Y_UNIT_TEST_SUITE(PgSqlParsingOnly) { '('"start" '10) '('"increment" '2) '('"cache" '3)))) (let world (CommitAll! world)) (return world)) )"; - const auto expectedAst = NYql::ParseAst(program); - UNIT_ASSERT_STRINGS_EQUAL(res.Root->ToString(), expectedAst.Root->ToString()); - } + const auto expectedAst = NYql::ParseAst(program); + UNIT_ASSERT_STRINGS_EQUAL(res.Root->ToString(), expectedAst.Root->ToString()); +} - Y_UNIT_TEST(DropSequenceStmt) { - auto res = PgSqlToYql("DROP SEQUENCE IF EXISTS seq;"); - UNIT_ASSERT_C(res.Root, res.Issues.ToString()); - TString program = R"( +Y_UNIT_TEST(DropSequenceStmt) { + auto res = PgSqlToYql("DROP SEQUENCE IF EXISTS seq;"); + UNIT_ASSERT_C(res.Root, res.Issues.ToString()); + TString program = R"( ( (let world (Configure! world (DataSource 'config) 'OrderedColumns)) (let world (Write! world (DataSink '"kikimr" '"") (Key '('pgObject (String '"seq") (String 'pgSequence))) (Void) '('('mode 'drop_if_exists)))) (let world (CommitAll! world)) (return world) ) )"; - const auto expectedAst = NYql::ParseAst(program); - UNIT_ASSERT_STRINGS_EQUAL(res.Root->ToString(), expectedAst.Root->ToString()); - } + const auto expectedAst = NYql::ParseAst(program); + UNIT_ASSERT_STRINGS_EQUAL(res.Root->ToString(), expectedAst.Root->ToString()); +} - Y_UNIT_TEST(AlterSequenceStmt) { - auto res = PgSqlToYql("ALTER SEQUENCE IF EXISTS seq AS integer START WITH 10 RESTART WITH 101 INCREMENT BY 2 NO MINVALUE NO MAXVALUE CACHE 3;"); - UNIT_ASSERT_C(res.Root, res.Issues.ToString()); - TString program = R"( +Y_UNIT_TEST(AlterSequenceStmt) { + auto res = PgSqlToYql("ALTER SEQUENCE IF EXISTS seq AS integer START WITH 10 RESTART WITH 101 INCREMENT BY 2 NO MINVALUE NO MAXVALUE CACHE 3;"); + UNIT_ASSERT_C(res.Root, res.Issues.ToString()); + TString program = R"( ( (let world (Configure! world (DataSource 'config) 'OrderedColumns)) (let world (Write! world (DataSink '"kikimr" '"") @@ -312,75 +307,75 @@ Y_UNIT_TEST_SUITE(PgSqlParsingOnly) { (let world (CommitAll! world)) (return world) ) )"; - const auto expectedAst = NYql::ParseAst(program); - UNIT_ASSERT_STRINGS_EQUAL(res.Root->ToString(), expectedAst.Root->ToString()); - } + const auto expectedAst = NYql::ParseAst(program); + UNIT_ASSERT_STRINGS_EQUAL(res.Root->ToString(), expectedAst.Root->ToString()); +} - Y_UNIT_TEST(AlterTableSetDefaultNextvalStmt) { - auto res = PgSqlToYql("ALTER TABLE public.t ALTER COLUMN id SET DEFAULT nextval('seq');"); - UNIT_ASSERT_C(res.Root, res.Issues.ToString()); - TString program = R"( +Y_UNIT_TEST(AlterTableSetDefaultNextvalStmt) { + auto res = PgSqlToYql("ALTER TABLE public.t ALTER COLUMN id SET DEFAULT nextval('seq');"); + UNIT_ASSERT_C(res.Root, res.Issues.ToString()); + TString program = R"( ( - (let world (Configure! world (DataSource 'config) 'OrderedColumns)) - (let world (Write! world (DataSink '"kikimr" '"") - (Key '('tablescheme (String '"t"))) (Void) '('('mode 'alter) '('actions '('('alterColumns '('('"id" '('setDefault '('nextval 'seq)))))))))) + (let world (Configure! world (DataSource 'config) 'OrderedColumns)) + (let world (Write! world (DataSink '"kikimr" '"") + (Key '('tablescheme (String '"t"))) (Void) '('('mode 'alter) '('actions '('('alterColumns '('('"id" '('setDefault '('nextval 'seq)))))))))) (let world (CommitAll! world)) (return world) ) )"; - const auto expectedAst = NYql::ParseAst(program); - UNIT_ASSERT_STRINGS_EQUAL(res.Root->ToString(), expectedAst.Root->ToString()); - } + const auto expectedAst = NYql::ParseAst(program); + UNIT_ASSERT_STRINGS_EQUAL(res.Root->ToString(), expectedAst.Root->ToString()); +} - Y_UNIT_TEST(AlterTableSetDefaultNextvalStmtWithSchemaname) { - auto res = PgSqlToYql("ALTER TABLE public.t ALTER COLUMN id SET DEFAULT nextval('public.seq'::regclass);"); - UNIT_ASSERT_C(res.Root, res.Issues.ToString()); - TString program = R"( +Y_UNIT_TEST(AlterTableSetDefaultNextvalStmtWithSchemaname) { + auto res = PgSqlToYql("ALTER TABLE public.t ALTER COLUMN id SET DEFAULT nextval('public.seq'::regclass);"); + UNIT_ASSERT_C(res.Root, res.Issues.ToString()); + TString program = R"( ( - (let world (Configure! world (DataSource 'config) 'OrderedColumns)) - (let world (Write! world (DataSink '"kikimr" '"") - (Key '('tablescheme (String '"t"))) (Void) '('('mode 'alter) '('actions '('('alterColumns '('('"id" '('setDefault '('nextval 'seq)))))))))) + (let world (Configure! world (DataSource 'config) 'OrderedColumns)) + (let world (Write! world (DataSink '"kikimr" '"") + (Key '('tablescheme (String '"t"))) (Void) '('('mode 'alter) '('actions '('('alterColumns '('('"id" '('setDefault '('nextval 'seq)))))))))) (let world (CommitAll! world)) (return world) ) )"; - const auto expectedAst = NYql::ParseAst(program); - UNIT_ASSERT_STRINGS_EQUAL(res.Root->ToString(), expectedAst.Root->ToString()); - } + const auto expectedAst = NYql::ParseAst(program); + UNIT_ASSERT_STRINGS_EQUAL(res.Root->ToString(), expectedAst.Root->ToString()); +} - Y_UNIT_TEST(AlterTableStmtWithCast) { - auto res = PgSqlToYql("ALTER TABLE public.t ALTER COLUMN id SET DEFAULT nextval('seq'::regclass);"); - UNIT_ASSERT_C(res.Root, res.Issues.ToString()); - TString program = R"( +Y_UNIT_TEST(AlterTableStmtWithCast) { + auto res = PgSqlToYql("ALTER TABLE public.t ALTER COLUMN id SET DEFAULT nextval('seq'::regclass);"); + UNIT_ASSERT_C(res.Root, res.Issues.ToString()); + TString program = R"( ( - (let world (Configure! world (DataSource 'config) 'OrderedColumns)) - (let world (Write! world (DataSink '"kikimr" '"") - (Key '('tablescheme (String '"t"))) (Void) '('('mode 'alter) '('actions '('('alterColumns '('('"id" '('setDefault '('nextval 'seq)))))))))) + (let world (Configure! world (DataSource 'config) 'OrderedColumns)) + (let world (Write! world (DataSink '"kikimr" '"") + (Key '('tablescheme (String '"t"))) (Void) '('('mode 'alter) '('actions '('('alterColumns '('('"id" '('setDefault '('nextval 'seq)))))))))) (let world (CommitAll! world)) (return world) ) )"; - const auto expectedAst = NYql::ParseAst(program); - UNIT_ASSERT_STRINGS_EQUAL(res.Root->ToString(), expectedAst.Root->ToString()); - } + const auto expectedAst = NYql::ParseAst(program); + UNIT_ASSERT_STRINGS_EQUAL(res.Root->ToString(), expectedAst.Root->ToString()); +} - Y_UNIT_TEST(AlterTableDropDefaultStmt) { - auto res = PgSqlToYql("ALTER TABLE public.t ALTER COLUMN id DROP DEFAULT;"); - UNIT_ASSERT_C(res.Root, res.Issues.ToString()); - TString program = R"( +Y_UNIT_TEST(AlterTableDropDefaultStmt) { + auto res = PgSqlToYql("ALTER TABLE public.t ALTER COLUMN id DROP DEFAULT;"); + UNIT_ASSERT_C(res.Root, res.Issues.ToString()); + TString program = R"( ( - (let world (Configure! world (DataSource 'config) 'OrderedColumns)) - (let world (Write! world (DataSink '"kikimr" '"") + (let world (Configure! world (DataSource 'config) 'OrderedColumns)) + (let world (Write! world (DataSink '"kikimr" '"") (Key '('tablescheme (String '"t"))) (Void) '('('mode 'alter) '('actions '('('alterColumns '('('"id" '('setDefault '('Null)))))))))) (let world (CommitAll! world)) (return world) ) )"; - const auto expectedAst = NYql::ParseAst(program); - UNIT_ASSERT_STRINGS_EQUAL(res.Root->ToString(), expectedAst.Root->ToString()); - } + const auto expectedAst = NYql::ParseAst(program); + UNIT_ASSERT_STRINGS_EQUAL(res.Root->ToString(), expectedAst.Root->ToString()); +} - Y_UNIT_TEST(VariableShowStmt) { - auto res = PgSqlToYql("Show server_version_num"); - UNIT_ASSERT(res.Root); +Y_UNIT_TEST(VariableShowStmt) { + auto res = PgSqlToYql("Show server_version_num"); + UNIT_ASSERT(res.Root); - TString program = fmt::format(R"( + TString program = fmt::format(R"( ( (let world (Configure! world (DataSource 'config) 'OrderedColumns)) (let output (PgSelect '('('set_items '((PgSetItem '('('result '((PgResultItem '"server_version_num" (Void) (lambda '() (PgConst '"{}" (PgType 'text)))))))))) '('set_ops '('push))))) @@ -391,93 +386,92 @@ Y_UNIT_TEST_SUITE(PgSqlParsingOnly) { (return world) ) )", NYql::GetPostgresServerVersionNum()); - const auto expectedAst = NYql::ParseAst(program); - UNIT_ASSERT_STRINGS_EQUAL(res.Root->ToString(), expectedAst.Root->ToString()); - } + const auto expectedAst = NYql::ParseAst(program); + UNIT_ASSERT_STRINGS_EQUAL(res.Root->ToString(), expectedAst.Root->ToString()); +} - TMap<TString, TString> GetParamNameToPgType(const NYql::TAstNode& root) { - TMap<TString, TString> actualParamToType; - - VisitAstNodes(root, [&actualParamToType] (const NYql::TAstNode& node) { - bool isDeclareNode = - node.IsListOfSize(3) && node.GetChild(0)->IsAtom() - && node.GetChild(0)->GetContent() == "declare"; - if (isDeclareNode) { - const auto varNameNode = node.GetChild(1); - UNIT_ASSERT(varNameNode->IsAtom()); - const auto varName = varNameNode->GetContent(); - - const auto varTypeNode = node.GetChild(2); - UNIT_ASSERT(varTypeNode->IsListOfSize(2)); - UNIT_ASSERT(varTypeNode->GetChild(0)->GetContent() == "PgType"); - actualParamToType[TString(varName)] = varTypeNode->GetChild(1)->ToString(); - } - }); - - return actualParamToType; - } +TMap<TString, TString> GetParamNameToPgType(const NYql::TAstNode& root) { + TMap<TString, TString> actualParamToType; + + VisitAstNodes(root, [&actualParamToType](const NYql::TAstNode& node) { + bool isDeclareNode = + node.IsListOfSize(3) && node.GetChild(0)->IsAtom() && node.GetChild(0)->GetContent() == "declare"; + if (isDeclareNode) { + const auto varNameNode = node.GetChild(1); + UNIT_ASSERT(varNameNode->IsAtom()); + const auto varName = varNameNode->GetContent(); + + const auto varTypeNode = node.GetChild(2); + UNIT_ASSERT(varTypeNode->IsListOfSize(2)); + UNIT_ASSERT(varTypeNode->GetChild(0)->GetContent() == "PgType"); + actualParamToType[TString(varName)] = varTypeNode->GetChild(1)->ToString(); + } + }); - Y_UNIT_TEST(ParamRef_IntAndPoint) { - TTranslationSettings settings; - - settings.PgParameterTypeOids = {NYql::NPg::LookupType("int4").TypeId, NYql::NPg::LookupType("point").TypeId}; - auto res = SqlToYqlWithMode( - R"(select $1 as "x", $2 as "y")", - NSQLTranslation::ESqlMode::QUERY, - 10, - {}, - EDebugOutput::None, - false, - settings); - TMap<TString, TString> expectedParamToType { - {"$p1", "'int4"}, - {"$p2", "'point"}, - }; - UNIT_ASSERT(res.Root); - const auto actualParamToTypes = GetParamNameToPgType(*res.Root); - UNIT_ASSERT(expectedParamToType.size() == actualParamToTypes.size()); - UNIT_ASSERT_EQUAL(expectedParamToType, actualParamToTypes); - } + return actualParamToType; +} - Y_UNIT_TEST(ParamRef_IntUnknownInt) { - TTranslationSettings settings; - settings.PgParameterTypeOids = {NYql::NPg::LookupType("int4").TypeId, NYql::NPg::LookupType("unknown").TypeId, NYql::NPg::LookupType("int4").TypeId}; - auto res = SqlToYqlWithMode( - R"(select $1 as "x", $2 as "y", $3 as "z")", - NSQLTranslation::ESqlMode::QUERY, - 10, - {}, - EDebugOutput::None, - false, - settings); - TMap<TString, TString> expectedParamToType { - {"$p1", "'int4"}, - {"$p2", "'unknown"}, - {"$p3", "'int4"}, - }; - UNIT_ASSERT(res.Root); - const auto actualParamToTypes = GetParamNameToPgType(*res.Root); - UNIT_ASSERT(expectedParamToType.size() == actualParamToTypes.size()); - UNIT_ASSERT_EQUAL(expectedParamToType, actualParamToTypes); - } +Y_UNIT_TEST(ParamRef_IntAndPoint) { + TTranslationSettings settings; + + settings.PgParameterTypeOids = {NYql::NPg::LookupType("int4").TypeId, NYql::NPg::LookupType("point").TypeId}; + auto res = SqlToYqlWithMode( + R"(select $1 as "x", $2 as "y")", + NSQLTranslation::ESqlMode::QUERY, + 10, + {}, + EDebugOutput::None, + false, + settings); + TMap<TString, TString> expectedParamToType{ + {"$p1", "'int4"}, + {"$p2", "'point"}, + }; + UNIT_ASSERT(res.Root); + const auto actualParamToTypes = GetParamNameToPgType(*res.Root); + UNIT_ASSERT(expectedParamToType.size() == actualParamToTypes.size()); + UNIT_ASSERT_EQUAL(expectedParamToType, actualParamToTypes); +} - Y_UNIT_TEST(ParamRef_NoTypeOids) { - TTranslationSettings settings; - settings.PgParameterTypeOids = {}; - auto res = PgSqlToYql(R"(select $1 as "x", $2 as "y", $3 as "z")"); - TMap<TString, TString> expectedParamToType { - {"$p1", "'unknown"}, - {"$p2", "'unknown"}, - {"$p3", "'unknown"}, - }; - UNIT_ASSERT(res.Root); - auto actualParamToTypes = GetParamNameToPgType(*res.Root); - UNIT_ASSERT_VALUES_EQUAL(expectedParamToType, actualParamToTypes); - } +Y_UNIT_TEST(ParamRef_IntUnknownInt) { + TTranslationSettings settings; + settings.PgParameterTypeOids = {NYql::NPg::LookupType("int4").TypeId, NYql::NPg::LookupType("unknown").TypeId, NYql::NPg::LookupType("int4").TypeId}; + auto res = SqlToYqlWithMode( + R"(select $1 as "x", $2 as "y", $3 as "z")", + NSQLTranslation::ESqlMode::QUERY, + 10, + {}, + EDebugOutput::None, + false, + settings); + TMap<TString, TString> expectedParamToType{ + {"$p1", "'int4"}, + {"$p2", "'unknown"}, + {"$p3", "'int4"}, + }; + UNIT_ASSERT(res.Root); + const auto actualParamToTypes = GetParamNameToPgType(*res.Root); + UNIT_ASSERT(expectedParamToType.size() == actualParamToTypes.size()); + UNIT_ASSERT_EQUAL(expectedParamToType, actualParamToTypes); +} - Y_UNIT_TEST(DropTableStmt) { - auto res = PgSqlToYql("drop table plato.Input"); - TString program = R"( +Y_UNIT_TEST(ParamRef_NoTypeOids) { + TTranslationSettings settings; + settings.PgParameterTypeOids = {}; + auto res = PgSqlToYql(R"(select $1 as "x", $2 as "y", $3 as "z")"); + TMap<TString, TString> expectedParamToType{ + {"$p1", "'unknown"}, + {"$p2", "'unknown"}, + {"$p3", "'unknown"}, + }; + UNIT_ASSERT(res.Root); + auto actualParamToTypes = GetParamNameToPgType(*res.Root); + UNIT_ASSERT_VALUES_EQUAL(expectedParamToType, actualParamToTypes); +} + +Y_UNIT_TEST(DropTableStmt) { + auto res = PgSqlToYql("drop table plato.Input"); + TString program = R"( ( (let world (Configure! world (DataSource 'config) 'OrderedColumns)) (let world (Write! world (DataSink '"yt" '"plato") (Key '('tablescheme (String '"input"))) (Void) '('('mode 'drop)))) @@ -485,13 +479,13 @@ Y_UNIT_TEST_SUITE(PgSqlParsingOnly) { (return world) ) )"; - const auto expectedAst = NYql::ParseAst(program); - UNIT_ASSERT_STRINGS_EQUAL(res.Root->ToString(), expectedAst.Root->ToString()); - } + const auto expectedAst = NYql::ParseAst(program); + UNIT_ASSERT_STRINGS_EQUAL(res.Root->ToString(), expectedAst.Root->ToString()); +} - Y_UNIT_TEST(DropTableStmtMultiple) { - auto res = PgSqlToYql("DROP TABLE FakeTable1, FakeTable2"); - TString program = R"( +Y_UNIT_TEST(DropTableStmtMultiple) { + auto res = PgSqlToYql("DROP TABLE FakeTable1, FakeTable2"); + TString program = R"( ( (let world (Configure! world (DataSource 'config) 'OrderedColumns)) (let world (Write! world (DataSink '"kikimr" '"") (Key '('tablescheme (String '"FakeTable1"))) (Void) '('('mode 'drop)))) @@ -500,32 +494,32 @@ Y_UNIT_TEST_SUITE(PgSqlParsingOnly) { (return world) ) )"; - const auto expectedAst = NYql::ParseAst(program); - UNIT_ASSERT_STRINGS_EQUAL(res.Root->ToString(), expectedAst.Root->ToString()); - } + const auto expectedAst = NYql::ParseAst(program); + UNIT_ASSERT_STRINGS_EQUAL(res.Root->ToString(), expectedAst.Root->ToString()); +} - Y_UNIT_TEST(DropTableUnknownClusterStmt) { - auto res = PgSqlToYql("drop table if exists pub.t"); - UNIT_ASSERT(!res.IsOk()); - UNIT_ASSERT_EQUAL(res.Issues.Size(), 1); +Y_UNIT_TEST(DropTableUnknownClusterStmt) { + auto res = PgSqlToYql("drop table if exists pub.t"); + UNIT_ASSERT(!res.IsOk()); + UNIT_ASSERT_EQUAL(res.Issues.Size(), 1); - auto issue = *(res.Issues.begin()); - UNIT_ASSERT_C(issue.GetMessage().find("Unknown cluster: pub") != TString::npos, res.Issues.ToString()); - } + auto issue = *(res.Issues.begin()); + UNIT_ASSERT_C(issue.GetMessage().find("Unknown cluster: pub") != TString::npos, res.Issues.ToString()); +} - Y_UNIT_TEST(PublicSchemeRemove) { - auto res = PgSqlToYql("DROP TABLE IF EXISTS public.t; CREATE TABLE public.t(id INT PRIMARY KEY, foo INT);\ +Y_UNIT_TEST(PublicSchemeRemove) { + auto res = PgSqlToYql("DROP TABLE IF EXISTS public.t; CREATE TABLE public.t(id INT PRIMARY KEY, foo INT);\ INSERT INTO public.t VALUES(1, 2);\ UPDATE public.t SET foo = 3 WHERE id == 1;\ DELETE FROM public.t WHERE id == 1;\ SELECT COUNT(*) FROM public.t;"); - UNIT_ASSERT(res.IsOk()); - UNIT_ASSERT(res.Root->ToString().find("public") == TString::npos); - } + UNIT_ASSERT(res.IsOk()); + UNIT_ASSERT(res.Root->ToString().find("public") == TString::npos); +} - Y_UNIT_TEST(UpdateStmt) { - auto res = PgSqlToYql("UPDATE plato.Input SET kind = 'test' where kind = 'testtest'"); - TString updateStmtProg = R"( +Y_UNIT_TEST(UpdateStmt) { + auto res = PgSqlToYql("UPDATE plato.Input SET kind = 'test' where kind = 'testtest'"); + TString updateStmtProg = R"( ( (let world (Configure! world (DataSource 'config) 'OrderedColumns)) (let read0 (Read! world (DataSource '"yt" '"plato") (Key '('table (String '"input"))) (Void) '())) @@ -549,125 +543,125 @@ SELECT COUNT(*) FROM public.t;"); (return world) ) )"; - const auto expectedAst = NYql::ParseAst(updateStmtProg); + const auto expectedAst = NYql::ParseAst(updateStmtProg); - UNIT_ASSERT_C(res.Issues.Empty(), "Failed to parse statement, issues: " + res.Issues.ToString()); - UNIT_ASSERT_C(res.Root, "Failed to parse statement, root is nullptr"); - UNIT_ASSERT_STRINGS_EQUAL(res.Root->ToString(), expectedAst.Root->ToString()); - } + UNIT_ASSERT_C(res.Issues.Empty(), "Failed to parse statement, issues: " + res.Issues.ToString()); + UNIT_ASSERT_C(res.Root, "Failed to parse statement, root is nullptr"); + UNIT_ASSERT_STRINGS_EQUAL(res.Root->ToString(), expectedAst.Root->ToString()); +} - Y_UNIT_TEST(BlockEngine) { - auto res = PgSqlToYql("set blockEngine='auto'; select 1;"); - UNIT_ASSERT(res.Root); - UNIT_ASSERT_STRING_CONTAINS(res.Root->ToString(), "(let world (Configure! world (DataSource 'config) 'BlockEngine 'auto))"); +Y_UNIT_TEST(BlockEngine) { + auto res = PgSqlToYql("set blockEngine='auto'; select 1;"); + UNIT_ASSERT(res.Root); + UNIT_ASSERT_STRING_CONTAINS(res.Root->ToString(), "(let world (Configure! world (DataSource 'config) 'BlockEngine 'auto))"); - res = PgSqlToYql("set Blockengine='force'; select 1;"); - UNIT_ASSERT(res.Root); - UNIT_ASSERT_STRING_CONTAINS(res.Root->ToString(), "(let world (Configure! world (DataSource 'config) 'BlockEngine 'force))"); + res = PgSqlToYql("set Blockengine='force'; select 1;"); + UNIT_ASSERT(res.Root); + UNIT_ASSERT_STRING_CONTAINS(res.Root->ToString(), "(let world (Configure! world (DataSource 'config) 'BlockEngine 'force))"); - res = PgSqlToYql("set BlockEngine='disable'; select 1;"); - UNIT_ASSERT(res.Root); - UNIT_ASSERT(!res.Root->ToString().Contains("BlockEngine")); + res = PgSqlToYql("set BlockEngine='disable'; select 1;"); + UNIT_ASSERT(res.Root); + UNIT_ASSERT(!res.Root->ToString().Contains("BlockEngine")); - res = PgSqlToYql("set BlockEngine='foo'; select 1;"); - UNIT_ASSERT(!res.Root); - UNIT_ASSERT_EQUAL(res.Issues.Size(), 1); + res = PgSqlToYql("set BlockEngine='foo'; select 1;"); + UNIT_ASSERT(!res.Root); + UNIT_ASSERT_EQUAL(res.Issues.Size(), 1); - auto issue = *(res.Issues.begin()); - UNIT_ASSERT(issue.GetMessage().Contains("VariableSetStmt, not supported BlockEngine option value: foo")); - } + auto issue = *(res.Issues.begin()); + UNIT_ASSERT(issue.GetMessage().Contains("VariableSetStmt, not supported BlockEngine option value: foo")); +} - Y_UNIT_TEST(SetConfig_SearchPath) { - TTranslationSettings settings; - settings.GUCSettings = std::make_shared<TGUCSettings>(); - settings.ClusterMapping["pg_catalog"] = NYql::PgProviderName; - settings.DefaultCluster = ""; - - auto res = SqlToYqlWithMode( - R"(select set_config('search_path', 'pg_catalog', false);)", - NSQLTranslation::ESqlMode::QUERY, - 10, - {}, - EDebugOutput::ToCerr, - false, - settings); - UNIT_ASSERT_C(res.IsOk(), res.Issues.ToString()); - UNIT_ASSERT(res.Root); - - res = SqlToYqlWithMode( - R"(select oid, +Y_UNIT_TEST(SetConfig_SearchPath) { + TTranslationSettings settings; + settings.GUCSettings = std::make_shared<TGUCSettings>(); + settings.ClusterMapping["pg_catalog"] = NYql::PgProviderName; + settings.DefaultCluster = ""; + + auto res = SqlToYqlWithMode( + R"(select set_config('search_path', 'pg_catalog', false);)", + NSQLTranslation::ESqlMode::QUERY, + 10, + {}, + EDebugOutput::ToCerr, + false, + settings); + UNIT_ASSERT_C(res.IsOk(), res.Issues.ToString()); + UNIT_ASSERT(res.Root); + + res = SqlToYqlWithMode( + R"(select oid, typinput::int4 as typinput, typname, typnamespace, typtype from pg_type)", - NSQLTranslation::ESqlMode::QUERY, - 10, - {}, - EDebugOutput::None, - false, - settings); - UNIT_ASSERT(res.IsOk()); - UNIT_ASSERT(res.Root); - - res = SqlToYqlWithMode( - R"(select oid, + NSQLTranslation::ESqlMode::QUERY, + 10, + {}, + EDebugOutput::None, + false, + settings); + UNIT_ASSERT(res.IsOk()); + UNIT_ASSERT(res.Root); + + res = SqlToYqlWithMode( + R"(select oid, typinput::int4 as typinput, typname, typnamespace, typtype from pg_catalog.pg_type)", - NSQLTranslation::ESqlMode::QUERY, - 10, - {}, - EDebugOutput::None, - false, - settings); - UNIT_ASSERT(res.IsOk()); - UNIT_ASSERT(res.Root); - - res = SqlToYqlWithMode( - R"(select set_config('search_path', 'public', false);)", - NSQLTranslation::ESqlMode::QUERY, - 10, - {}, - EDebugOutput::None, - false, - settings); - UNIT_ASSERT(res.IsOk()); - UNIT_ASSERT(res.Root); - - res = SqlToYqlWithMode( - R"(select * from pg_type;)", - NSQLTranslation::ESqlMode::QUERY, - 10, - {}, - EDebugOutput::None, - false, - settings); - UNIT_ASSERT(res.IsOk()); - UNIT_ASSERT(res.Root); - } + NSQLTranslation::ESqlMode::QUERY, + 10, + {}, + EDebugOutput::None, + false, + settings); + UNIT_ASSERT(res.IsOk()); + UNIT_ASSERT(res.Root); + + res = SqlToYqlWithMode( + R"(select set_config('search_path', 'public', false);)", + NSQLTranslation::ESqlMode::QUERY, + 10, + {}, + EDebugOutput::None, + false, + settings); + UNIT_ASSERT(res.IsOk()); + UNIT_ASSERT(res.Root); + + res = SqlToYqlWithMode( + R"(select * from pg_type;)", + NSQLTranslation::ESqlMode::QUERY, + 10, + {}, + EDebugOutput::None, + false, + settings); + UNIT_ASSERT(res.IsOk()); + UNIT_ASSERT(res.Root); } +} // Y_UNIT_TEST_SUITE(PgSqlParsingOnly) Y_UNIT_TEST_SUITE(PgExtensions) { - using namespace NYql; +using namespace NYql; - Y_UNIT_TEST(Empty) { - NPg::ClearExtensions(); - UNIT_ASSERT_VALUES_EQUAL(NPg::ExportExtensions(), ""); - NPg::ImportExtensions("", true, nullptr); - } +Y_UNIT_TEST(Empty) { + NPg::ClearExtensions(); + UNIT_ASSERT_VALUES_EQUAL(NPg::ExportExtensions(), ""); + NPg::ImportExtensions("", true, nullptr); +} - Y_UNIT_TEST(ProcsAndType) { - NPg::ClearExtensions(); - if (NPg::AreAllFunctionsAllowed()) { - return; - } +Y_UNIT_TEST(ProcsAndType) { + NPg::ClearExtensions(); + if (NPg::AreAllFunctionsAllowed()) { + return; + } - NPg::TExtensionDesc desc; - TTempFileHandle h; - TStringBuf sql = R"( + NPg::TExtensionDesc desc; + TTempFileHandle h; + TStringBuf sql = R"( CREATE OR REPLACE FUNCTION mytype_in(cstring) RETURNS mytype AS '$libdir/MyExt','mytype_in_func' @@ -686,42 +680,42 @@ Y_UNIT_TEST_SUITE(PgExtensions) { ); )"; - h.Write(sql.data(), sql.size()); - desc.Name = "MyExt"; - desc.InstallName = "$libdir/MyExt"; - desc.SqlPaths.push_back(h.Name()); - NPg::RegisterExtensions({desc}, true, *NSQLTranslationPG::CreateExtensionSqlParser(), nullptr); - auto validate = [&]() { - const auto& type = NPg::LookupType("mytype"); - UNIT_ASSERT_VALUES_EQUAL(type.Category, 'U'); - UNIT_ASSERT_VALUES_EQUAL(type.TypeLen, 65); - UNIT_ASSERT_VALUES_EQUAL(type.TypeAlign, 'd'); - const auto& arrType = NPg::LookupType("_mytype"); - UNIT_ASSERT_VALUES_EQUAL(arrType.ElementTypeId, type.TypeId); - const auto& inProc = NPg::LookupProc("mytype_in", { NPg::LookupType("cstring").TypeId }); - UNIT_ASSERT_VALUES_EQUAL(inProc.ArgTypes.size(), 1); - UNIT_ASSERT_VALUES_EQUAL(inProc.Src, "mytype_in_func"); - UNIT_ASSERT(inProc.IsStrict); - const auto& outProc = NPg::LookupProc("mytype_out", { NPg::LookupType("mytype").TypeId }); - UNIT_ASSERT_VALUES_EQUAL(outProc.ArgTypes.size(), 1); - UNIT_ASSERT_VALUES_EQUAL(outProc.Src, "mytype_out_func"); - UNIT_ASSERT(outProc.IsStrict); - UNIT_ASSERT_VALUES_EQUAL(type.InFuncId, inProc.ProcId); - UNIT_ASSERT_VALUES_EQUAL(type.OutFuncId, outProc.ProcId); - }; - - validate(); - auto exported = NPg::ExportExtensions(); - NPg::ClearExtensions(); - NPg::ImportExtensions(exported, true, nullptr); - validate(); - } + h.Write(sql.data(), sql.size()); + desc.Name = "MyExt"; + desc.InstallName = "$libdir/MyExt"; + desc.SqlPaths.push_back(h.Name()); + NPg::RegisterExtensions({desc}, true, *NSQLTranslationPG::CreateExtensionSqlParser(), nullptr); + auto validate = [&]() { + const auto& type = NPg::LookupType("mytype"); + UNIT_ASSERT_VALUES_EQUAL(type.Category, 'U'); + UNIT_ASSERT_VALUES_EQUAL(type.TypeLen, 65); + UNIT_ASSERT_VALUES_EQUAL(type.TypeAlign, 'd'); + const auto& arrType = NPg::LookupType("_mytype"); + UNIT_ASSERT_VALUES_EQUAL(arrType.ElementTypeId, type.TypeId); + const auto& inProc = NPg::LookupProc("mytype_in", {NPg::LookupType("cstring").TypeId}); + UNIT_ASSERT_VALUES_EQUAL(inProc.ArgTypes.size(), 1); + UNIT_ASSERT_VALUES_EQUAL(inProc.Src, "mytype_in_func"); + UNIT_ASSERT(inProc.IsStrict); + const auto& outProc = NPg::LookupProc("mytype_out", {NPg::LookupType("mytype").TypeId}); + UNIT_ASSERT_VALUES_EQUAL(outProc.ArgTypes.size(), 1); + UNIT_ASSERT_VALUES_EQUAL(outProc.Src, "mytype_out_func"); + UNIT_ASSERT(outProc.IsStrict); + UNIT_ASSERT_VALUES_EQUAL(type.InFuncId, inProc.ProcId); + UNIT_ASSERT_VALUES_EQUAL(type.OutFuncId, outProc.ProcId); + }; + + validate(); + auto exported = NPg::ExportExtensions(); + NPg::ClearExtensions(); + NPg::ImportExtensions(exported, true, nullptr); + validate(); +} - Y_UNIT_TEST(InsertValues) { - NPg::ClearExtensions(); - NPg::TExtensionDesc desc; - TTempFileHandle h; - TStringBuf sql = R"( +Y_UNIT_TEST(InsertValues) { + NPg::ClearExtensions(); + NPg::TExtensionDesc desc; + TTempFileHandle h; + TStringBuf sql = R"( CREATE TABLE mytable( foo int4, bar text, @@ -732,41 +726,41 @@ Y_UNIT_TEST_SUITE(PgExtensions) { VALUES ('a', 1, null),('b', null, -3.4); )"; - h.Write(sql.data(), sql.size()); - desc.Name = "MyExt"; - desc.InstallName = "$libdir/MyExt"; - desc.SqlPaths.push_back(h.Name()); - NPg::RegisterExtensions({desc}, true, *NSQLTranslationPG::CreateExtensionSqlParser(), nullptr); - auto validate = [&]() { - const auto& table = NPg::LookupStaticTable({"pg_catalog","mytable"}); - UNIT_ASSERT(table.Kind == NPg::ERelKind::Relation); - size_t remap[2]; - size_t rowStep; - const auto& data = *NPg::ReadTable({"pg_catalog", "mytable"}, {"foo", "bar"}, remap, rowStep); - UNIT_ASSERT_VALUES_EQUAL(rowStep, 3); - UNIT_ASSERT_VALUES_EQUAL(data.size(), 2 * rowStep); - UNIT_ASSERT_VALUES_EQUAL(data[rowStep * 0 + remap[0]], "1"); - UNIT_ASSERT_VALUES_EQUAL(data[rowStep * 0 + remap[1]], "a"); - UNIT_ASSERT(!data[rowStep * 1 + remap[0]].Defined()); - UNIT_ASSERT_VALUES_EQUAL(data[rowStep * 1 + remap[1]], "b"); - }; - - validate(); - auto exported = NPg::ExportExtensions(); - NPg::ClearExtensions(); - NPg::ImportExtensions(exported, true, nullptr); - validate(); - } + h.Write(sql.data(), sql.size()); + desc.Name = "MyExt"; + desc.InstallName = "$libdir/MyExt"; + desc.SqlPaths.push_back(h.Name()); + NPg::RegisterExtensions({desc}, true, *NSQLTranslationPG::CreateExtensionSqlParser(), nullptr); + auto validate = [&]() { + const auto& table = NPg::LookupStaticTable({"pg_catalog", "mytable"}); + UNIT_ASSERT(table.Kind == NPg::ERelKind::Relation); + size_t remap[2]; + size_t rowStep; + const auto& data = *NPg::ReadTable({"pg_catalog", "mytable"}, {"foo", "bar"}, remap, rowStep); + UNIT_ASSERT_VALUES_EQUAL(rowStep, 3); + UNIT_ASSERT_VALUES_EQUAL(data.size(), 2 * rowStep); + UNIT_ASSERT_VALUES_EQUAL(data[rowStep * 0 + remap[0]], "1"); + UNIT_ASSERT_VALUES_EQUAL(data[rowStep * 0 + remap[1]], "a"); + UNIT_ASSERT(!data[rowStep * 1 + remap[0]].Defined()); + UNIT_ASSERT_VALUES_EQUAL(data[rowStep * 1 + remap[1]], "b"); + }; + + validate(); + auto exported = NPg::ExportExtensions(); + NPg::ClearExtensions(); + NPg::ImportExtensions(exported, true, nullptr); + validate(); +} - Y_UNIT_TEST(Casts) { - NPg::ClearExtensions(); - if (NPg::AreAllFunctionsAllowed()) { - return; - } +Y_UNIT_TEST(Casts) { + NPg::ClearExtensions(); + if (NPg::AreAllFunctionsAllowed()) { + return; + } - NPg::TExtensionDesc desc; - TTempFileHandle h; - TStringBuf sql = R"( + NPg::TExtensionDesc desc; + TTempFileHandle h; + TStringBuf sql = R"( CREATE TYPE foo ( alignment = double, internallength = variable @@ -785,39 +779,39 @@ Y_UNIT_TEST_SUITE(PgExtensions) { CREATE CAST (foo AS bar) WITH FUNCTION bar(foo); )"; - h.Write(sql.data(), sql.size()); - desc.Name = "MyExt"; - desc.InstallName = "$libdir/MyExt"; - desc.SqlPaths.push_back(h.Name()); - NPg::RegisterExtensions({desc}, true, *NSQLTranslationPG::CreateExtensionSqlParser(), nullptr); - auto validate = [&]() { - auto sourceId = NPg::LookupType("foo").TypeId; - auto targetId = NPg::LookupType("bar").TypeId; - UNIT_ASSERT(NPg::HasCast(sourceId, targetId)); - const auto& cast = NPg::LookupCast(sourceId, targetId); - UNIT_ASSERT_VALUES_EQUAL(cast.SourceId, sourceId); - UNIT_ASSERT_VALUES_EQUAL(cast.TargetId, targetId); - UNIT_ASSERT_VALUES_EQUAL((ui32)cast.Method, (ui32)NPg::ECastMethod::Function); - UNIT_ASSERT_VALUES_EQUAL(cast.CoercionCode, NPg::ECoercionCode::Explicit); - UNIT_ASSERT_VALUES_EQUAL(cast.FunctionId, NPg::LookupProc("bar",{sourceId}).ProcId); - }; - - validate(); - auto exported = NPg::ExportExtensions(); - NPg::ClearExtensions(); - NPg::ImportExtensions(exported, true, nullptr); - validate(); - } + h.Write(sql.data(), sql.size()); + desc.Name = "MyExt"; + desc.InstallName = "$libdir/MyExt"; + desc.SqlPaths.push_back(h.Name()); + NPg::RegisterExtensions({desc}, true, *NSQLTranslationPG::CreateExtensionSqlParser(), nullptr); + auto validate = [&]() { + auto sourceId = NPg::LookupType("foo").TypeId; + auto targetId = NPg::LookupType("bar").TypeId; + UNIT_ASSERT(NPg::HasCast(sourceId, targetId)); + const auto& cast = NPg::LookupCast(sourceId, targetId); + UNIT_ASSERT_VALUES_EQUAL(cast.SourceId, sourceId); + UNIT_ASSERT_VALUES_EQUAL(cast.TargetId, targetId); + UNIT_ASSERT_VALUES_EQUAL((ui32)cast.Method, (ui32)NPg::ECastMethod::Function); + UNIT_ASSERT_VALUES_EQUAL(cast.CoercionCode, NPg::ECoercionCode::Explicit); + UNIT_ASSERT_VALUES_EQUAL(cast.FunctionId, NPg::LookupProc("bar", {sourceId}).ProcId); + }; + + validate(); + auto exported = NPg::ExportExtensions(); + NPg::ClearExtensions(); + NPg::ImportExtensions(exported, true, nullptr); + validate(); +} - Y_UNIT_TEST(Operators) { - NPg::ClearExtensions(); - if (NPg::AreAllFunctionsAllowed()) { - return; - } +Y_UNIT_TEST(Operators) { + NPg::ClearExtensions(); + if (NPg::AreAllFunctionsAllowed()) { + return; + } - NPg::TExtensionDesc desc; - TTempFileHandle h; - TStringBuf sql = R"( + NPg::TExtensionDesc desc; + TTempFileHandle h; + TStringBuf sql = R"( CREATE TYPE foo ( alignment = double, internallength = variable @@ -864,69 +858,69 @@ Y_UNIT_TEST_SUITE(PgExtensions) { ); )"; - h.Write(sql.data(), sql.size()); - desc.Name = "MyExt"; - desc.InstallName = "$libdir/MyExt"; - desc.SqlPaths.push_back(h.Name()); - NPg::RegisterExtensions({desc}, true, *NSQLTranslationPG::CreateExtensionSqlParser(), nullptr); - auto validate = [&]() { - auto typeId = NPg::LookupType("foo").TypeId; - TVector<ui32> args { typeId, typeId }; - auto lessProcId = NPg::LookupProc("foo_lt", args).ProcId; - auto lessOrEqualProcId = NPg::LookupProc("foo_le", args).ProcId; - auto greaterProcId = NPg::LookupProc("foo_gt", args).ProcId; - auto greaterOrEqualProcId = NPg::LookupProc("foo_ge", args).ProcId; - - const auto& lessOp = NPg::LookupOper("<", args); - const auto& lessOrEqualOp = NPg::LookupOper("<=", args); - const auto& greaterOp = NPg::LookupOper(">", args); - const auto& greaterOrEqualOp = NPg::LookupOper(">=", args); - - UNIT_ASSERT_VALUES_EQUAL(lessOp.Name, "<"); - UNIT_ASSERT_VALUES_EQUAL(lessOp.LeftType, typeId); - UNIT_ASSERT_VALUES_EQUAL(lessOp.RightType, typeId); - UNIT_ASSERT_VALUES_EQUAL(lessOp.ProcId, lessProcId); - UNIT_ASSERT_VALUES_EQUAL(lessOp.ComId, greaterOp.OperId); - UNIT_ASSERT_VALUES_EQUAL(lessOp.NegateId, greaterOrEqualOp.OperId); - - UNIT_ASSERT_VALUES_EQUAL(lessOrEqualOp.Name, "<="); - UNIT_ASSERT_VALUES_EQUAL(lessOrEqualOp.LeftType, typeId); - UNIT_ASSERT_VALUES_EQUAL(lessOrEqualOp.RightType, typeId); - UNIT_ASSERT_VALUES_EQUAL(lessOrEqualOp.ProcId, lessOrEqualProcId); - UNIT_ASSERT_VALUES_EQUAL(lessOrEqualOp.ComId, greaterOrEqualOp.OperId); - UNIT_ASSERT_VALUES_EQUAL(lessOrEqualOp.NegateId, greaterOp.OperId); - - UNIT_ASSERT_VALUES_EQUAL(greaterOp.Name, ">"); - UNIT_ASSERT_VALUES_EQUAL(greaterOp.LeftType, typeId); - UNIT_ASSERT_VALUES_EQUAL(greaterOp.RightType, typeId); - UNIT_ASSERT_VALUES_EQUAL(greaterOp.ProcId, greaterProcId); - UNIT_ASSERT_VALUES_EQUAL(greaterOp.ComId, lessOp.OperId); - UNIT_ASSERT_VALUES_EQUAL(greaterOp.NegateId, lessOrEqualOp.OperId); - - UNIT_ASSERT_VALUES_EQUAL(greaterOrEqualOp.Name, ">="); - UNIT_ASSERT_VALUES_EQUAL(greaterOrEqualOp.LeftType, typeId); - UNIT_ASSERT_VALUES_EQUAL(greaterOrEqualOp.RightType, typeId); - UNIT_ASSERT_VALUES_EQUAL(greaterOrEqualOp.ProcId, greaterOrEqualProcId); - UNIT_ASSERT_VALUES_EQUAL(greaterOrEqualOp.ComId, lessOrEqualOp.OperId); - UNIT_ASSERT_VALUES_EQUAL(greaterOrEqualOp.NegateId, lessOp.OperId); - }; - - validate(); - auto exported = NPg::ExportExtensions(); - NPg::ClearExtensions(); - NPg::ImportExtensions(exported, true, nullptr); - validate(); - } + h.Write(sql.data(), sql.size()); + desc.Name = "MyExt"; + desc.InstallName = "$libdir/MyExt"; + desc.SqlPaths.push_back(h.Name()); + NPg::RegisterExtensions({desc}, true, *NSQLTranslationPG::CreateExtensionSqlParser(), nullptr); + auto validate = [&]() { + auto typeId = NPg::LookupType("foo").TypeId; + TVector<ui32> args{typeId, typeId}; + auto lessProcId = NPg::LookupProc("foo_lt", args).ProcId; + auto lessOrEqualProcId = NPg::LookupProc("foo_le", args).ProcId; + auto greaterProcId = NPg::LookupProc("foo_gt", args).ProcId; + auto greaterOrEqualProcId = NPg::LookupProc("foo_ge", args).ProcId; + + const auto& lessOp = NPg::LookupOper("<", args); + const auto& lessOrEqualOp = NPg::LookupOper("<=", args); + const auto& greaterOp = NPg::LookupOper(">", args); + const auto& greaterOrEqualOp = NPg::LookupOper(">=", args); + + UNIT_ASSERT_VALUES_EQUAL(lessOp.Name, "<"); + UNIT_ASSERT_VALUES_EQUAL(lessOp.LeftType, typeId); + UNIT_ASSERT_VALUES_EQUAL(lessOp.RightType, typeId); + UNIT_ASSERT_VALUES_EQUAL(lessOp.ProcId, lessProcId); + UNIT_ASSERT_VALUES_EQUAL(lessOp.ComId, greaterOp.OperId); + UNIT_ASSERT_VALUES_EQUAL(lessOp.NegateId, greaterOrEqualOp.OperId); + + UNIT_ASSERT_VALUES_EQUAL(lessOrEqualOp.Name, "<="); + UNIT_ASSERT_VALUES_EQUAL(lessOrEqualOp.LeftType, typeId); + UNIT_ASSERT_VALUES_EQUAL(lessOrEqualOp.RightType, typeId); + UNIT_ASSERT_VALUES_EQUAL(lessOrEqualOp.ProcId, lessOrEqualProcId); + UNIT_ASSERT_VALUES_EQUAL(lessOrEqualOp.ComId, greaterOrEqualOp.OperId); + UNIT_ASSERT_VALUES_EQUAL(lessOrEqualOp.NegateId, greaterOp.OperId); + + UNIT_ASSERT_VALUES_EQUAL(greaterOp.Name, ">"); + UNIT_ASSERT_VALUES_EQUAL(greaterOp.LeftType, typeId); + UNIT_ASSERT_VALUES_EQUAL(greaterOp.RightType, typeId); + UNIT_ASSERT_VALUES_EQUAL(greaterOp.ProcId, greaterProcId); + UNIT_ASSERT_VALUES_EQUAL(greaterOp.ComId, lessOp.OperId); + UNIT_ASSERT_VALUES_EQUAL(greaterOp.NegateId, lessOrEqualOp.OperId); + + UNIT_ASSERT_VALUES_EQUAL(greaterOrEqualOp.Name, ">="); + UNIT_ASSERT_VALUES_EQUAL(greaterOrEqualOp.LeftType, typeId); + UNIT_ASSERT_VALUES_EQUAL(greaterOrEqualOp.RightType, typeId); + UNIT_ASSERT_VALUES_EQUAL(greaterOrEqualOp.ProcId, greaterOrEqualProcId); + UNIT_ASSERT_VALUES_EQUAL(greaterOrEqualOp.ComId, lessOrEqualOp.OperId); + UNIT_ASSERT_VALUES_EQUAL(greaterOrEqualOp.NegateId, lessOp.OperId); + }; + + validate(); + auto exported = NPg::ExportExtensions(); + NPg::ClearExtensions(); + NPg::ImportExtensions(exported, true, nullptr); + validate(); +} - Y_UNIT_TEST(Aggregates) { - NPg::ClearExtensions(); - if (NPg::AreAllFunctionsAllowed()) { - return; - } +Y_UNIT_TEST(Aggregates) { + NPg::ClearExtensions(); + if (NPg::AreAllFunctionsAllowed()) { + return; + } - NPg::TExtensionDesc desc; - TTempFileHandle h; - TStringBuf sql = R"( + NPg::TExtensionDesc desc; + TTempFileHandle h; + TStringBuf sql = R"( CREATE TYPE foo ( alignment = double, internallength = variable @@ -967,42 +961,42 @@ Y_UNIT_TEST_SUITE(PgExtensions) { ); )"; - h.Write(sql.data(), sql.size()); - desc.Name = "MyExt"; - desc.InstallName = "$libdir/MyExt"; - desc.SqlPaths.push_back(h.Name()); - NPg::RegisterExtensions({desc}, true, *NSQLTranslationPG::CreateExtensionSqlParser(), nullptr); - auto validate = [&]() { - auto typeId = NPg::LookupType("foo").TypeId; - auto internalTypeId = NPg::LookupType("internal").TypeId; - auto byteaTypeId = NPg::LookupType("bytea").TypeId; - const auto& desc = NPg::LookupAggregation("foo_agg", { typeId }); - UNIT_ASSERT_VALUES_EQUAL(desc.Name, "foo_agg"); - UNIT_ASSERT_VALUES_EQUAL(desc.ArgTypes, TVector<ui32>{typeId}); - UNIT_ASSERT_VALUES_EQUAL(desc.TransTypeId, internalTypeId); - UNIT_ASSERT_VALUES_EQUAL(desc.TransFuncId, NPg::LookupProc("foo_agg_trans", {internalTypeId, typeId}).ProcId); - UNIT_ASSERT_VALUES_EQUAL(desc.FinalFuncId, NPg::LookupProc("foo_agg_final", {internalTypeId}).ProcId); - UNIT_ASSERT_VALUES_EQUAL(desc.SerializeFuncId, NPg::LookupProc("foo_agg_serial", {internalTypeId}).ProcId); - UNIT_ASSERT_VALUES_EQUAL(desc.DeserializeFuncId, NPg::LookupProc("foo_agg_deserial", {byteaTypeId, internalTypeId}).ProcId); - UNIT_ASSERT_VALUES_EQUAL(desc.CombineFuncId, NPg::LookupProc("foo_agg_combine", {internalTypeId, internalTypeId}).ProcId); - }; - - validate(); - auto exported = NPg::ExportExtensions(); - NPg::ClearExtensions(); - NPg::ImportExtensions(exported, true, nullptr); - validate(); - } + h.Write(sql.data(), sql.size()); + desc.Name = "MyExt"; + desc.InstallName = "$libdir/MyExt"; + desc.SqlPaths.push_back(h.Name()); + NPg::RegisterExtensions({desc}, true, *NSQLTranslationPG::CreateExtensionSqlParser(), nullptr); + auto validate = [&]() { + auto typeId = NPg::LookupType("foo").TypeId; + auto internalTypeId = NPg::LookupType("internal").TypeId; + auto byteaTypeId = NPg::LookupType("bytea").TypeId; + const auto& desc = NPg::LookupAggregation("foo_agg", {typeId}); + UNIT_ASSERT_VALUES_EQUAL(desc.Name, "foo_agg"); + UNIT_ASSERT_VALUES_EQUAL(desc.ArgTypes, TVector<ui32>{typeId}); + UNIT_ASSERT_VALUES_EQUAL(desc.TransTypeId, internalTypeId); + UNIT_ASSERT_VALUES_EQUAL(desc.TransFuncId, NPg::LookupProc("foo_agg_trans", {internalTypeId, typeId}).ProcId); + UNIT_ASSERT_VALUES_EQUAL(desc.FinalFuncId, NPg::LookupProc("foo_agg_final", {internalTypeId}).ProcId); + UNIT_ASSERT_VALUES_EQUAL(desc.SerializeFuncId, NPg::LookupProc("foo_agg_serial", {internalTypeId}).ProcId); + UNIT_ASSERT_VALUES_EQUAL(desc.DeserializeFuncId, NPg::LookupProc("foo_agg_deserial", {byteaTypeId, internalTypeId}).ProcId); + UNIT_ASSERT_VALUES_EQUAL(desc.CombineFuncId, NPg::LookupProc("foo_agg_combine", {internalTypeId, internalTypeId}).ProcId); + }; + + validate(); + auto exported = NPg::ExportExtensions(); + NPg::ClearExtensions(); + NPg::ImportExtensions(exported, true, nullptr); + validate(); +} - Y_UNIT_TEST(OpClasses) { - NPg::ClearExtensions(); - if (NPg::AreAllFunctionsAllowed()) { - return; - } +Y_UNIT_TEST(OpClasses) { + NPg::ClearExtensions(); + if (NPg::AreAllFunctionsAllowed()) { + return; + } - NPg::TExtensionDesc desc; - TTempFileHandle h; - TStringBuf sql = R"( + NPg::TExtensionDesc desc; + TTempFileHandle h; + TStringBuf sql = R"( CREATE TYPE foo ( alignment = double, internallength = variable @@ -1082,39 +1076,39 @@ Y_UNIT_TEST_SUITE(PgExtensions) { FUNCTION 1 foo_hash(foo); )"; - h.Write(sql.data(), sql.size()); - desc.Name = "MyExt"; - desc.InstallName = "$libdir/MyExt"; - desc.SqlPaths.push_back(h.Name()); - NPg::RegisterExtensions({desc}, true, *NSQLTranslationPG::CreateExtensionSqlParser(), nullptr); - auto validate = [&]() { - const auto& typeDesc = NPg::LookupType("foo"); - auto typeId = typeDesc.TypeId; - TVector<ui32> args { typeId, typeId }; - UNIT_ASSERT_VALUES_EQUAL(typeDesc.CompareProcId, NPg::LookupProc("foo_cmp", args).ProcId); - UNIT_ASSERT_VALUES_EQUAL(typeDesc.LessProcId, NPg::LookupProc("foo_lt", args).ProcId); - UNIT_ASSERT_VALUES_EQUAL(typeDesc.EqualProcId, NPg::LookupProc("foo_eq", args).ProcId); - UNIT_ASSERT_VALUES_EQUAL(typeDesc.HashProcId, NPg::LookupProc("foo_hash", {typeId}).ProcId); - - const auto& opClassBtree = *NPg::LookupDefaultOpClass(NPg::EOpClassMethod::Btree, typeId); - UNIT_ASSERT_VALUES_EQUAL(opClassBtree.Name, "btree_foo_ops"); - UNIT_ASSERT_VALUES_EQUAL(opClassBtree.Family, "btree/btree_foo_ops"); - UNIT_ASSERT_VALUES_EQUAL(NPg::LookupAmOp(opClassBtree.FamilyId, (ui32)NPg::EBtreeAmStrategy::Less, typeId, typeId).OperId, - NPg::LookupOper("<", args).OperId); - UNIT_ASSERT_VALUES_EQUAL(NPg::LookupAmProc(opClassBtree.FamilyId, (ui32)NPg::EBtreeAmProcNum::Compare, typeId, typeId).ProcId, - NPg::LookupProc("foo_cmp", args).ProcId); - - const auto& opClassHash = *NPg::LookupDefaultOpClass(NPg::EOpClassMethod::Hash, typeId); - UNIT_ASSERT_VALUES_EQUAL(opClassHash.Name, "hash_foo_ops"); - UNIT_ASSERT_VALUES_EQUAL(opClassHash.Family, "hash/hash_foo_ops"); - UNIT_ASSERT_VALUES_EQUAL(NPg::LookupAmProc(opClassHash.FamilyId, (ui32)NPg::EHashAmProcNum::Hash, typeId, typeId).ProcId, - NPg::LookupProc("foo_hash", {typeId}).ProcId); - }; - - validate(); - auto exported = NPg::ExportExtensions(); - NPg::ClearExtensions(); - NPg::ImportExtensions(exported, true, nullptr); - validate(); - } + h.Write(sql.data(), sql.size()); + desc.Name = "MyExt"; + desc.InstallName = "$libdir/MyExt"; + desc.SqlPaths.push_back(h.Name()); + NPg::RegisterExtensions({desc}, true, *NSQLTranslationPG::CreateExtensionSqlParser(), nullptr); + auto validate = [&]() { + const auto& typeDesc = NPg::LookupType("foo"); + auto typeId = typeDesc.TypeId; + TVector<ui32> args{typeId, typeId}; + UNIT_ASSERT_VALUES_EQUAL(typeDesc.CompareProcId, NPg::LookupProc("foo_cmp", args).ProcId); + UNIT_ASSERT_VALUES_EQUAL(typeDesc.LessProcId, NPg::LookupProc("foo_lt", args).ProcId); + UNIT_ASSERT_VALUES_EQUAL(typeDesc.EqualProcId, NPg::LookupProc("foo_eq", args).ProcId); + UNIT_ASSERT_VALUES_EQUAL(typeDesc.HashProcId, NPg::LookupProc("foo_hash", {typeId}).ProcId); + + const auto& opClassBtree = *NPg::LookupDefaultOpClass(NPg::EOpClassMethod::Btree, typeId); + UNIT_ASSERT_VALUES_EQUAL(opClassBtree.Name, "btree_foo_ops"); + UNIT_ASSERT_VALUES_EQUAL(opClassBtree.Family, "btree/btree_foo_ops"); + UNIT_ASSERT_VALUES_EQUAL(NPg::LookupAmOp(opClassBtree.FamilyId, (ui32)NPg::EBtreeAmStrategy::Less, typeId, typeId).OperId, + NPg::LookupOper("<", args).OperId); + UNIT_ASSERT_VALUES_EQUAL(NPg::LookupAmProc(opClassBtree.FamilyId, (ui32)NPg::EBtreeAmProcNum::Compare, typeId, typeId).ProcId, + NPg::LookupProc("foo_cmp", args).ProcId); + + const auto& opClassHash = *NPg::LookupDefaultOpClass(NPg::EOpClassMethod::Hash, typeId); + UNIT_ASSERT_VALUES_EQUAL(opClassHash.Name, "hash_foo_ops"); + UNIT_ASSERT_VALUES_EQUAL(opClassHash.Family, "hash/hash_foo_ops"); + UNIT_ASSERT_VALUES_EQUAL(NPg::LookupAmProc(opClassHash.FamilyId, (ui32)NPg::EHashAmProcNum::Hash, typeId, typeId).ProcId, + NPg::LookupProc("foo_hash", {typeId}).ProcId); + }; + + validate(); + auto exported = NPg::ExportExtensions(); + NPg::ClearExtensions(); + NPg::ImportExtensions(exported, true, nullptr); + validate(); } +} // Y_UNIT_TEST_SUITE(PgExtensions) diff --git a/yql/essentials/sql/pg/ut/util.h b/yql/essentials/sql/pg/ut/util.h index 72739103643..6b75509cf9c 100644 --- a/yql/essentials/sql/pg/ut/util.h +++ b/yql/essentials/sql/pg/ut/util.h @@ -1,3 +1,5 @@ +#pragma once + #include <contrib/libs/fmt/include/fmt/format.h> #include <yql/essentials/ast/yql_expr.h> @@ -22,7 +24,7 @@ inline TString Err2Str(NYql::TAstParseResult& res, EDebugOutput debug = EDebugOu return s.Str(); } -class TTestAutoParamBuilder : public NYql::IAutoParamBuilder { +class TTestAutoParamBuilder: public NYql::IAutoParamBuilder { public: TString GetParamValue(const TString& param) const { auto ptr = State.FindPtr(param); @@ -76,11 +78,12 @@ public: return Type; } - class TTypeProxy : public NYql::IAutoParamTypeBuilder { + class TTypeProxy: public NYql::IAutoParamTypeBuilder { public: TTypeProxy(TTestAutoParamBuilder& owner) : Owner(owner) - {} + { + } void Pg(const TString& name) { Owner.State[Owner.CurrentParam].first.push_back(name); @@ -112,11 +115,12 @@ public: TTestAutoParamBuilder& Owner; }; - class TDataProxy : public NYql::IAutoParamDataBuilder { + class TDataProxy: public NYql::IAutoParamDataBuilder { public: TDataProxy(TTestAutoParamBuilder& owner) : Owner(owner) - {} + { + } void Pg(const TMaybe<TString>& value) final { Owner.State[Owner.CurrentParam].second.push_back(value); @@ -156,10 +160,11 @@ public: TTestAutoParamBuilder() : Type(*this) , Data(*this) - {} + { + } }; -class TTestAutoParamBuilderFactory : public NYql::IAutoParamBuilderFactory { +class TTestAutoParamBuilderFactory: public NYql::IAutoParamBuilderFactory { public: NYql::IAutoParamBuilderPtr MakeBuilder() final { return MakeIntrusive<TTestAutoParamBuilder>(); @@ -167,7 +172,7 @@ public: }; inline NYql::TAstParseResult SqlToYqlWithMode(const TString& query, NSQLTranslation::ESqlMode mode = NSQLTranslation::ESqlMode::QUERY, size_t maxErrors = 10, const TString& provider = {}, - EDebugOutput debug = EDebugOutput::None, bool ansiLexer = false, NSQLTranslation::TTranslationSettings settings = {}) + EDebugOutput debug = EDebugOutput::None, bool ansiLexer = false, NSQLTranslation::TTranslationSettings settings = {}) { google::protobuf::Arena arena; const auto service = provider ? provider : TString(NYql::YtProviderName); @@ -188,8 +193,7 @@ inline NYql::TAstParseResult SqlToYqlWithMode(const TString& query, NSQLTranslat NSQLTranslation::TTranslators translators( nullptr, nullptr, - NSQLTranslationPG::MakeTranslator() - ); + NSQLTranslationPG::MakeTranslator()); auto res = SqlToYql(translators, query, settings); if (debug == EDebugOutput::ToCerr) { @@ -214,11 +218,9 @@ inline void VisitAstNodes(const NYql::TAstNode& root, const TAstNodeVisitFunc& v } } - inline TMaybe<const NYql::TAstNode*> MaybeGetQuotedValue(const NYql::TAstNode& node) { const bool isQuotedList = - node.IsListOfSize(2) && node.GetChild(0)->IsAtom() - && node.GetChild(0)->GetContent() == "quote"; + node.IsListOfSize(2) && node.GetChild(0)->IsAtom() && node.GetChild(0)->GetContent() == "quote"; if (isQuotedList) { return node.GetChild(1); } diff --git a/yql/essentials/sql/pg/utils.cpp b/yql/essentials/sql/pg/utils.cpp index 5a7aff14980..78fa3e85330 100644 --- a/yql/essentials/sql/pg/utils.cpp +++ b/yql/essentials/sql/pg/utils.cpp @@ -7,4 +7,4 @@ TString NormalizeName(TStringBuf name) { return NYql::NormalizeName(name); } -} +} // namespace NSQLTranslationPG diff --git a/yql/essentials/sql/pg/utils.h b/yql/essentials/sql/pg/utils.h index e1c25cdbf75..e4d1b5b572d 100644 --- a/yql/essentials/sql/pg/utils.h +++ b/yql/essentials/sql/pg/utils.h @@ -5,4 +5,4 @@ namespace NSQLTranslationPG { TString NormalizeName(TStringBuf name); -} +} // namespace NSQLTranslationPG diff --git a/yql/essentials/sql/pg_dummy/pg_sql_dummy.cpp b/yql/essentials/sql/pg_dummy/pg_sql_dummy.cpp index 02cafe876b5..6a85a42bda6 100644 --- a/yql/essentials/sql/pg_dummy/pg_sql_dummy.cpp +++ b/yql/essentials/sql/pg_dummy/pg_sql_dummy.cpp @@ -38,7 +38,7 @@ NSQLTranslation::TTranslatorPtr MakeTranslator() { return NSQLTranslation::MakeDummyTranslator("pg"); } -} // NSQLTranslationPG +} // namespace NSQLTranslationPG namespace NYql { namespace NCommon { @@ -88,7 +88,7 @@ TString PgValueCoerce(const NUdf::TUnboxedValuePod& value, ui32 pgTypeId, i32 ty } void WriteYsonValuePg(NResult::TYsonResultWriter& writer, const NUdf::TUnboxedValuePod& value, NKikimr::NMiniKQL::TPgType* type, - const TVector<ui32>* structPositions) { + const TVector<ui32>* structPositions) { Y_UNUSED(writer); Y_UNUSED(value); Y_UNUSED(type); @@ -152,7 +152,7 @@ extern "C" void WriteSkiffPgValue(NKikimr::NMiniKQL::TPgType* type, const NKikim } } // namespace NCommon -} // NYql +} // namespace NYql namespace NKikimr { namespace NMiniKQL { @@ -206,31 +206,31 @@ ui64 PgValueSize(const TPgType* type, const NUdf::TUnboxedValuePod& value) { } void PGPackImpl(bool stable, const TPgType* type, const NUdf::TUnboxedValuePod& value, TBuffer& buf) { - Y_UNUSED(stable); - Y_UNUSED(type); - Y_UNUSED(value); - Y_UNUSED(buf); - throw yexception() << "PG types are not supported"; + Y_UNUSED(stable); + Y_UNUSED(type); + Y_UNUSED(value); + Y_UNUSED(buf); + throw yexception() << "PG types are not supported"; } void PGPackImpl(bool stable, const TPgType* type, const NUdf::TUnboxedValuePod& value, NKikimr::NMiniKQL::TPagedBuffer& buf) { - Y_UNUSED(stable); - Y_UNUSED(type); - Y_UNUSED(value); - Y_UNUSED(buf); - throw yexception() << "PG types are not supported"; + Y_UNUSED(stable); + Y_UNUSED(type); + Y_UNUSED(value); + Y_UNUSED(buf); + throw yexception() << "PG types are not supported"; } NUdf::TUnboxedValue PGUnpackImpl(const TPgType* type, TStringBuf& buf) { - Y_UNUSED(type); - Y_UNUSED(buf); - throw yexception() << "PG types are not supported"; + Y_UNUSED(type); + Y_UNUSED(buf); + throw yexception() << "PG types are not supported"; } NUdf::TUnboxedValue PGUnpackImpl(const TPgType* type, NDetails::TChunkedInputBuffer& buf) { - Y_UNUSED(type); - Y_UNUSED(buf); - throw yexception() << "PG types are not supported"; + Y_UNUSED(type); + Y_UNUSED(buf); + throw yexception() << "PG types are not supported"; } void EncodePresortPGValue(TPgType* type, const NUdf::TUnboxedValue& value, TVector<ui8>& output) { @@ -248,13 +248,13 @@ NUdf::TUnboxedValue DecodePresortPGValue(TPgType* type, TStringBuf& input, TVect } void* PgInitializeContext(const std::string_view& contextType) { - Y_UNUSED(contextType); - return nullptr; + Y_UNUSED(contextType); + return nullptr; } void PgDestroyContext(const std::string_view& contextType, void* ctx) { - Y_UNUSED(contextType); - Y_UNUSED(ctx); + Y_UNUSED(contextType); + Y_UNUSED(ctx); } NUdf::IHash::TPtr MakePgHash(const NMiniKQL::TPgType* type) { @@ -327,7 +327,7 @@ bool ParsePgIntervalModifier(const TString& str, i32& ret) { return false; } -class TPgDummyBuilder : public NUdf::IPgBuilder { +class TPgDummyBuilder: public NUdf::IPgBuilder { public: NUdf::TUnboxedValue ValueFromText(ui32 typeId, const NUdf::TStringRef& value, NUdf::TStringValue& error) const override { Y_UNUSED(typeId); @@ -400,13 +400,13 @@ bool HasPgKernel(ui32 procOid) { return false; } -std::function<NKikimr::NMiniKQL::IComputationNode* (NKikimr::NMiniKQL::TCallable&, - const NKikimr::NMiniKQL::TComputationNodeFactoryContext&)> GetPgFactory() +std::function<NKikimr::NMiniKQL::IComputationNode*(NKikimr::NMiniKQL::TCallable&, + const NKikimr::NMiniKQL::TComputationNodeFactoryContext&)> +GetPgFactory() { - return [] ( - NKikimr::NMiniKQL::TCallable& callable, - const NKikimr::NMiniKQL::TComputationNodeFactoryContext& ctx - ) -> NKikimr::NMiniKQL::IComputationNode* { + return []( + NKikimr::NMiniKQL::TCallable& callable, + const NKikimr::NMiniKQL::TComputationNodeFactoryContext& ctx) -> NKikimr::NMiniKQL::IComputationNode* { Y_UNUSED(callable); Y_UNUSED(ctx); return nullptr; @@ -428,7 +428,7 @@ IOptimizerNew* MakePgOptimizerNew(IProviderContext& pctx, TExprContext& ctx, con ythrow yexception() << "PgJoinSearch does nothing"; } -} // NYql +} // namespace NYql namespace NKikimr::NPg { @@ -549,12 +549,12 @@ TString GetPostgresServerVersionStr() { namespace NYql { namespace NCommon { - std::shared_ptr<void> CreateMemoryArenaContext() { - throw yexception() << "PG types are not supported"; - } +std::shared_ptr<void> CreateMemoryArenaContext() { + throw yexception() << "PG types are not supported"; } +} // namespace NCommon -ui64 HexEncode(const char *src, size_t len, char *dst) { +ui64 HexEncode(const char* src, size_t len, char* dst) { Y_UNUSED(src); Y_UNUSED(len); Y_UNUSED(dst); @@ -566,9 +566,8 @@ std::unique_ptr<IYtColumnConverter> BuildPgTopLevelColumnReader(std::unique_ptr< throw yexception() << "PG types are not supported"; } - std::unique_ptr<IYsonComplexTypeReader> BuildPgYsonColumnReader(const NUdf::TPgTypeDescription& /* desc */) { throw yexception() << "PG types are not supported"; } -} // NYql +} // namespace NYql diff --git a/yql/essentials/sql/settings/partitioning.cpp b/yql/essentials/sql/settings/partitioning.cpp index 2075e51027b..b3fa96a6c39 100644 --- a/yql/essentials/sql/settings/partitioning.cpp +++ b/yql/essentials/sql/settings/partitioning.cpp @@ -35,7 +35,7 @@ TString ParsePartitionedByBinding(const TString& name, const TString& value, TVe return {}; } -} +} // namespace TString ExtractBindingInfo(const TTranslationSettings& settings, const TString& binding, TBindingInfo& result) { auto pit = settings.Bindings.find(binding); @@ -94,4 +94,4 @@ TString ExtractBindingInfo(const TTranslationSettings& settings, const TString& return {}; } -} // namespace NSQLTranslation +} // namespace NSQLTranslation diff --git a/yql/essentials/sql/settings/partitioning.h b/yql/essentials/sql/settings/partitioning.h index 082890ae153..de9258e895f 100644 --- a/yql/essentials/sql/settings/partitioning.h +++ b/yql/essentials/sql/settings/partitioning.h @@ -6,14 +6,14 @@ #include <util/generic/vector.h> namespace NSQLTranslation { - struct TBindingInfo { - TString ClusterType; - TString Cluster; - TString Path; - TString Schema; - TMap<TString, TVector<TString>> Attributes; - }; +struct TBindingInfo { + TString ClusterType; + TString Cluster; + TString Path; + TString Schema; + TMap<TString, TVector<TString>> Attributes; +}; - // returns error message if any - TString ExtractBindingInfo(const TTranslationSettings& settings, const TString& binding, TBindingInfo& result); -} // namespace NSQLTranslation +// returns error message if any +TString ExtractBindingInfo(const TTranslationSettings& settings, const TString& binding, TBindingInfo& result); +} // namespace NSQLTranslation diff --git a/yql/essentials/sql/settings/translation_settings.cpp b/yql/essentials/sql/settings/translation_settings.cpp index af15c8e0c58..be1434d9bb9 100644 --- a/yql/essentials/sql/settings/translation_settings.cpp +++ b/yql/essentials/sql/settings/translation_settings.cpp @@ -9,135 +9,135 @@ #include <util/system/env.h> namespace { - bool InTestEnvironment() { - return GetEnv("YQL_LOCAL_ENVIRONMENT") || GetEnv("YA_TEST_RUNNER"); +bool InTestEnvironment() { + return GetEnv("YQL_LOCAL_ENVIRONMENT") || GetEnv("YA_TEST_RUNNER"); +} + +using namespace NSQLTranslation; +class TAlwaysDiallowPolicy: public ISqlFeaturePolicy { +public: + TAlwaysDiallowPolicy() = default; + bool Allow() const override { + return false; } +}; - using namespace NSQLTranslation; - class TAlwaysDiallowPolicy : public ISqlFeaturePolicy { - public: - TAlwaysDiallowPolicy() = default; - bool Allow() const override { - return false; - } - }; +class TAlwaysAllowPolicy: public ISqlFeaturePolicy { +public: + TAlwaysAllowPolicy() = default; + bool Allow() const override { + return true; + } +}; +} // namespace - class TAlwaysAllowPolicy : public ISqlFeaturePolicy { - public: - TAlwaysAllowPolicy() = default; - bool Allow() const override { - return true; - } - }; +namespace NSQLTranslation { +ISqlFeaturePolicy::TPtr ISqlFeaturePolicy::MakeAlwaysDisallow() { + return new TAlwaysDiallowPolicy; } -namespace NSQLTranslation { - ISqlFeaturePolicy::TPtr ISqlFeaturePolicy::MakeAlwaysDisallow() { - return new TAlwaysDiallowPolicy; - } +ISqlFeaturePolicy::TPtr ISqlFeaturePolicy::MakeAlwaysAllow() { + return new TAlwaysAllowPolicy; +} - ISqlFeaturePolicy::TPtr ISqlFeaturePolicy::MakeAlwaysAllow() { - return new TAlwaysAllowPolicy; - } +ISqlFeaturePolicy::TPtr ISqlFeaturePolicy::Make(bool allow) { + return allow ? MakeAlwaysAllow() : MakeAlwaysDisallow(); +} + +TTranslationSettings::TTranslationSettings() + : ModuleMapping({{"core", "/lib/yql/core.yqls"}}) + , BindingsMode(EBindingsMode::ENABLED) + , Mode(ESqlMode::QUERY) + , MaxErrors(SQL_MAX_PARSER_ERRORS) + , EndOfQueryCommit(true) + , EnableGenericUdfs(true) + , SyntaxVersion(1) + , AnsiLexer(false) + , Antlr4Parser(true) + , PgParser(false) + , InferSyntaxVersion(false) + , V0Behavior(EV0Behavior::Disable) + , V0ForceDisable(InTestEnvironment()) + , PGDisable(false) + , WarnOnV0(true) + , TestAntlr4(false) + , V0WarnAsError(ISqlFeaturePolicy::MakeAlwaysDisallow()) + , DqDefaultAuto(ISqlFeaturePolicy::MakeAlwaysDisallow()) + , BlockDefaultAuto(ISqlFeaturePolicy::MakeAlwaysDisallow()) + , AssumeYdbOnClusterWithSlash(false) +{ +} - ISqlFeaturePolicy::TPtr ISqlFeaturePolicy::Make(bool allow) { - return allow ? MakeAlwaysAllow() : MakeAlwaysDisallow(); +bool ParseTranslationSettings(const TString& query, TTranslationSettings& settings, NYql::TIssues& issues) { + if (!NYql::IsUtf8(query)) { + issues.AddIssue(NYql::YqlIssue(NYql::TPosition(0, 0), NYql::TIssuesIds::DEFAULT_ERROR, "Invalid UTF8 input")); + return false; } - TTranslationSettings::TTranslationSettings() - : ModuleMapping({{"core", "/lib/yql/core.yqls"}}) - , BindingsMode(EBindingsMode::ENABLED) - , Mode(ESqlMode::QUERY) - , MaxErrors(SQL_MAX_PARSER_ERRORS) - , EndOfQueryCommit(true) - , EnableGenericUdfs(true) - , SyntaxVersion(1) - , AnsiLexer(false) - , Antlr4Parser(true) - , PgParser(false) - , InferSyntaxVersion(false) - , V0Behavior(EV0Behavior::Disable) - , V0ForceDisable(InTestEnvironment()) - , PGDisable(false) - , WarnOnV0(true) - , TestAntlr4(false) - , V0WarnAsError(ISqlFeaturePolicy::MakeAlwaysDisallow()) - , DqDefaultAuto(ISqlFeaturePolicy::MakeAlwaysDisallow()) - , BlockDefaultAuto(ISqlFeaturePolicy::MakeAlwaysDisallow()) - , AssumeYdbOnClusterWithSlash(false) - {} - - - bool ParseTranslationSettings(const TString& query, TTranslationSettings& settings, NYql::TIssues& issues) { - if (!NYql::IsUtf8(query)) { - issues.AddIssue(NYql::YqlIssue(NYql::TPosition(0, 0), NYql::TIssuesIds::DEFAULT_ERROR, "Invalid UTF8 input")); - return false; - } + TSplitDelimiters lineDelimiters("\n\r"); + TDelimitersSplit linesSplit(query, lineDelimiters); + auto lineIterator = linesSplit.Iterator(); + auto lineNumber = 0; - TSplitDelimiters lineDelimiters("\n\r"); - TDelimitersSplit linesSplit(query, lineDelimiters); - auto lineIterator = linesSplit.Iterator(); - auto lineNumber = 0; + while (!lineIterator.Eof()) { + const TString& line = lineIterator.NextString(); + ++lineNumber; - while (!lineIterator.Eof()) { - const TString& line = lineIterator.NextString(); - ++lineNumber; + TVector<TStringBuf> parts; + TSetDelimiter<const char> partsDelimiters(" \t"); + Split(line, partsDelimiters, parts); - TVector<TStringBuf> parts; - TSetDelimiter<const char> partsDelimiters(" \t"); - Split(line, partsDelimiters, parts); + if (parts.empty()) { + continue; + } - if (parts.empty()) { - continue; - } + if (!parts[0].StartsWith("--!")) { + break; + } - if (!parts[0].StartsWith("--!")) { - break; - } + if (parts.size() > 1) { + issues.AddIssue(NYql::YqlIssue(NYql::TPosition(0, lineNumber), NYql::TIssuesIds::DEFAULT_ERROR, + "Bad translation settings format")); + return false; + } - if (parts.size() > 1) { - issues.AddIssue(NYql::YqlIssue(NYql::TPosition(0, lineNumber), NYql::TIssuesIds::DEFAULT_ERROR, - "Bad translation settings format")); - return false; - } + auto value = TString(parts[0].SubString(3, TString::npos)); + if (value.empty()) { + continue; + } - auto value = TString(parts[0].SubString(3, TString::npos)); - if (value.empty()) { - continue; - } + if ((value == "syntax_v0" || value == "syntax_v1") && !settings.InferSyntaxVersion) { + issues.AddIssue(NYql::YqlIssue(NYql::TPosition(0, lineNumber), NYql::TIssuesIds::DEFAULT_ERROR, + "Explicit syntax version is not allowed")); + return false; + } - if ((value == "syntax_v0" || value == "syntax_v1") && !settings.InferSyntaxVersion) { + if (value == "syntax_v0") { + if (settings.V0ForceDisable || settings.V0Behavior == NSQLTranslation::EV0Behavior::Disable) { issues.AddIssue(NYql::YqlIssue(NYql::TPosition(0, lineNumber), NYql::TIssuesIds::DEFAULT_ERROR, - "Explicit syntax version is not allowed")); + "V0 syntax is disabled")); return false; } - if (value == "syntax_v0") { - if (settings.V0ForceDisable || settings.V0Behavior == NSQLTranslation::EV0Behavior::Disable) { - issues.AddIssue(NYql::YqlIssue(NYql::TPosition(0, lineNumber), NYql::TIssuesIds::DEFAULT_ERROR, - "V0 syntax is disabled")); - return false; - } - - settings.SyntaxVersion = 0; - } else if (value == "syntax_v1") { - settings.SyntaxVersion = 1; - } else if (value == "ansi_lexer") { - settings.AnsiLexer = true; - } else if (value == "antlr4_parser") { - settings.Antlr4Parser = true; - } else if (value == "antlr3_parser") { - settings.Antlr4Parser = false; - } else if (value == "syntax_pg") { - settings.PgParser = true; - } else { - issues.AddIssue(NYql::YqlIssue(NYql::TPosition(0, lineNumber), NYql::TIssuesIds::DEFAULT_ERROR, - TStringBuilder() << "Unknown SQL translation setting: " << value)); - return false; - } + settings.SyntaxVersion = 0; + } else if (value == "syntax_v1") { + settings.SyntaxVersion = 1; + } else if (value == "ansi_lexer") { + settings.AnsiLexer = true; + } else if (value == "antlr4_parser") { + settings.Antlr4Parser = true; + } else if (value == "antlr3_parser") { + settings.Antlr4Parser = false; + } else if (value == "syntax_pg") { + settings.PgParser = true; + } else { + issues.AddIssue(NYql::YqlIssue(NYql::TPosition(0, lineNumber), NYql::TIssuesIds::DEFAULT_ERROR, + TStringBuilder() << "Unknown SQL translation setting: " << value)); + return false; } - - return true; } -} // namespace NSQLTranslation + return true; +} + +} // namespace NSQLTranslation diff --git a/yql/essentials/sql/settings/translation_settings.h b/yql/essentials/sql/settings/translation_settings.h index 1cbda9394ea..3fd97f110cb 100644 --- a/yql/essentials/sql/settings/translation_settings.h +++ b/yql/essentials/sql/settings/translation_settings.h @@ -10,131 +10,130 @@ #include <util/generic/vector.h> namespace google::protobuf { - class Arena; -} +class Arena; +} // namespace google::protobuf namespace NYql { - class TIssues; - class IAutoParamBuilderFactory; -} +class TIssues; +class IAutoParamBuilderFactory; +} // namespace NYql namespace NSQLTranslation { - constexpr const size_t SQL_MAX_PARSER_ERRORS = 100; - - enum class ESqlMode { - QUERY = 0, - LIMITED_VIEW = 1, - LIBRARY = 2, - SUBQUERY = 3, - DISCOVERY = 4, - }; - - enum class EBindingsMode { - // raise error - DISABLED, - // classic support for bindings - ENABLED, - // bindings.my_binding -> current_cluster.my_binding + raise warning - DROP_WITH_WARNING, - // bindings.my_binding -> current_cluster.my_binding - DROP - }; - - inline bool IsQueryMode(NSQLTranslation::ESqlMode mode) { - return mode == NSQLTranslation::ESqlMode::QUERY || mode == NSQLTranslation::ESqlMode::DISCOVERY; - } - - using TIncrementMonCounterFunction = std::function<void(const TString&, const TString&)>; - - // persisted - enum class EV0Behavior : ui32 { - Silent = 0, - Report, - Disable - }; - - class ISqlFeaturePolicy : public TThrRefBase { - public: - virtual ~ISqlFeaturePolicy() = default; - virtual bool Allow() const = 0; - - using TPtr = TIntrusivePtr<ISqlFeaturePolicy>; - - static TPtr MakeAlwaysDisallow(); - - static TPtr MakeAlwaysAllow(); - - static TPtr Make(bool allow); - }; - - struct TTableBindingSettings { - TString ClusterType; - THashMap<TString, TString> Settings; - }; - - struct TTranslationSettings - { - TTranslationSettings(); - google::protobuf::Arena* Arena = nullptr; - - NYql::TLangVersion LangVer = NYql::MinLangVersion; - NYql::EBackportCompatibleFeaturesMode BackportMode = NYql::EBackportCompatibleFeaturesMode::None; - THashMap<TString, TString> ClusterMapping; - TString PathPrefix; - // keys (cluster name) should be normalized - THashMap<TString, TString> ClusterPathPrefixes; - THashMap<TString, TString> ModuleMapping; - THashSet<TString> Libraries; - THashSet<TString> Flags; - - EBindingsMode BindingsMode; - THashMap<TString, TTableBindingSettings> Bindings; - bool SaveWorldDependencies = false; - - // each (name, type) entry in this map is equivalent to - // DECLARE $name AS type; - // NOTE: DECLARE statement in SQL text overrides entry in DeclaredNamedExprs - TMap<TString, TString> DeclaredNamedExprs; - - ESqlMode Mode; - TString DefaultCluster; - TIncrementMonCounterFunction IncrementCounter; - size_t MaxErrors; - bool EndOfQueryCommit; - TString File; - bool EnableGenericUdfs; - ui16 SyntaxVersion; - bool AnsiLexer; - bool Antlr4Parser; - bool PgParser; - bool InferSyntaxVersion; - EV0Behavior V0Behavior; - bool V0ForceDisable; - bool PGDisable; - bool WarnOnV0; - bool TestAntlr4; - ISqlFeaturePolicy::TPtr V0WarnAsError; - ISqlFeaturePolicy::TPtr DqDefaultAuto; - ISqlFeaturePolicy::TPtr BlockDefaultAuto; - bool AssumeYdbOnClusterWithSlash; - TString DynamicClusterProvider; - TString FileAliasPrefix; - - TVector<ui32> PgParameterTypeOids; - bool AutoParametrizeEnabled = false; - bool AutoParametrizeValuesStmt = false; - - TGUCSettings::TPtr GUCSettings = std::make_shared<TGUCSettings>(); - bool UnicodeLiterals = false; - - TMaybe<TString> ApplicationName; - bool PgSortNulls = false; - NYql::IAutoParamBuilderFactory* AutoParamBuilderFactory = nullptr; - bool EmitReadsForExists = false; - bool AlwaysAllowExports = false; - bool IsReplay = false; - }; - - bool ParseTranslationSettings(const TString& query, NSQLTranslation::TTranslationSettings& settings, NYql::TIssues& issues); - -} // namespace NSQLTranslation +constexpr const size_t SQL_MAX_PARSER_ERRORS = 100; + +enum class ESqlMode { + QUERY = 0, + LIMITED_VIEW = 1, + LIBRARY = 2, + SUBQUERY = 3, + DISCOVERY = 4, +}; + +enum class EBindingsMode { + // raise error + DISABLED, + // classic support for bindings + ENABLED, + // bindings.my_binding -> current_cluster.my_binding + raise warning + DROP_WITH_WARNING, + // bindings.my_binding -> current_cluster.my_binding + DROP +}; + +inline bool IsQueryMode(NSQLTranslation::ESqlMode mode) { + return mode == NSQLTranslation::ESqlMode::QUERY || mode == NSQLTranslation::ESqlMode::DISCOVERY; +} + +using TIncrementMonCounterFunction = std::function<void(const TString&, const TString&)>; + +// persisted +enum class EV0Behavior: ui32 { + Silent = 0, + Report, + Disable +}; + +class ISqlFeaturePolicy: public TThrRefBase { +public: + virtual ~ISqlFeaturePolicy() = default; + virtual bool Allow() const = 0; + + using TPtr = TIntrusivePtr<ISqlFeaturePolicy>; + + static TPtr MakeAlwaysDisallow(); + + static TPtr MakeAlwaysAllow(); + + static TPtr Make(bool allow); +}; + +struct TTableBindingSettings { + TString ClusterType; + THashMap<TString, TString> Settings; +}; + +struct TTranslationSettings { + TTranslationSettings(); + google::protobuf::Arena* Arena = nullptr; + + NYql::TLangVersion LangVer = NYql::MinLangVersion; + NYql::EBackportCompatibleFeaturesMode BackportMode = NYql::EBackportCompatibleFeaturesMode::None; + THashMap<TString, TString> ClusterMapping; + TString PathPrefix; + // keys (cluster name) should be normalized + THashMap<TString, TString> ClusterPathPrefixes; + THashMap<TString, TString> ModuleMapping; + THashSet<TString> Libraries; + THashSet<TString> Flags; + + EBindingsMode BindingsMode; + THashMap<TString, TTableBindingSettings> Bindings; + bool SaveWorldDependencies = false; + + // each (name, type) entry in this map is equivalent to + // DECLARE $name AS type; + // NOTE: DECLARE statement in SQL text overrides entry in DeclaredNamedExprs + TMap<TString, TString> DeclaredNamedExprs; + + ESqlMode Mode; + TString DefaultCluster; + TIncrementMonCounterFunction IncrementCounter; + size_t MaxErrors; + bool EndOfQueryCommit; + TString File; + bool EnableGenericUdfs; + ui16 SyntaxVersion; + bool AnsiLexer; + bool Antlr4Parser; + bool PgParser; + bool InferSyntaxVersion; + EV0Behavior V0Behavior; + bool V0ForceDisable; + bool PGDisable; + bool WarnOnV0; + bool TestAntlr4; + ISqlFeaturePolicy::TPtr V0WarnAsError; + ISqlFeaturePolicy::TPtr DqDefaultAuto; + ISqlFeaturePolicy::TPtr BlockDefaultAuto; + bool AssumeYdbOnClusterWithSlash; + TString DynamicClusterProvider; + TString FileAliasPrefix; + + TVector<ui32> PgParameterTypeOids; + bool AutoParametrizeEnabled = false; + bool AutoParametrizeValuesStmt = false; + + TGUCSettings::TPtr GUCSettings = std::make_shared<TGUCSettings>(); + bool UnicodeLiterals = false; + + TMaybe<TString> ApplicationName; + bool PgSortNulls = false; + NYql::IAutoParamBuilderFactory* AutoParamBuilderFactory = nullptr; + bool EmitReadsForExists = false; + bool AlwaysAllowExports = false; + bool IsReplay = false; +}; + +bool ParseTranslationSettings(const TString& query, NSQLTranslation::TTranslationSettings& settings, NYql::TIssues& issues); + +} // namespace NSQLTranslation diff --git a/yql/essentials/sql/settings/translator.cpp b/yql/essentials/sql/settings/translator.cpp index 92e8c011b89..913db127ad6 100644 --- a/yql/essentials/sql/settings/translator.cpp +++ b/yql/essentials/sql/settings/translator.cpp @@ -4,11 +4,12 @@ namespace NSQLTranslation { namespace { -class TDummyTranslator : public ITranslator { +class TDummyTranslator: public ITranslator { public: TDummyTranslator(const TString& name) : Name_(name) - {} + { + } NSQLTranslation::ILexer::TPtr MakeLexer(const NSQLTranslation::TTranslationSettings& settings) final { Y_UNUSED(settings); @@ -16,7 +17,7 @@ public: } NYql::TAstParseResult TextToAst(const TString& query, const NSQLTranslation::TTranslationSettings& settings, - NYql::TWarningRules* warningRules, NYql::TStmtParseInfo* stmtParseInfo) final { + NYql::TWarningRules* warningRules, NYql::TStmtParseInfo* stmtParseInfo) final { Y_UNUSED(query); Y_UNUSED(settings); Y_UNUSED(warningRules); @@ -25,7 +26,7 @@ public: } google::protobuf::Message* TextToMessage(const TString& query, const TString& queryName, - NYql::TIssues& issues, size_t maxErrors, const TTranslationSettings& settings) final { + NYql::TIssues& issues, size_t maxErrors, const TTranslationSettings& settings) final { Y_UNUSED(query); Y_UNUSED(queryName); Y_UNUSED(issues); @@ -35,7 +36,7 @@ public: } NYql::TAstParseResult TextAndMessageToAst(const TString& query, const google::protobuf::Message& protoAst, - const TSQLHints& hints, const TTranslationSettings& settings) final { + const TSQLHints& hints, const TTranslationSettings& settings) final { Y_UNUSED(query); Y_UNUSED(protoAst); Y_UNUSED(hints); @@ -44,7 +45,7 @@ public: } TVector<NYql::TAstParseResult> TextToManyAst(const TString& query, const TTranslationSettings& settings, - NYql::TWarningRules* warningRules, TVector<NYql::TStmtParseInfo>* stmtParseInfo) final { + NYql::TWarningRules* warningRules, TVector<NYql::TStmtParseInfo>* stmtParseInfo) final { Y_UNUSED(query); Y_UNUSED(settings); Y_UNUSED(warningRules); @@ -61,10 +62,10 @@ private: const TString Name_; }; -} +} // namespace TTranslatorPtr MakeDummyTranslator(const TString& name) { return MakeIntrusive<TDummyTranslator>(name); } -} // namespace NSQLTranslation +} // namespace NSQLTranslation diff --git a/yql/essentials/sql/settings/translator.h b/yql/essentials/sql/settings/translator.h index aa8ef5ac5ee..f637931ca71 100644 --- a/yql/essentials/sql/settings/translator.h +++ b/yql/essentials/sql/settings/translator.h @@ -8,23 +8,23 @@ namespace NSQLTranslation { -class ITranslator : public TThrRefBase { +class ITranslator: public TThrRefBase { public: virtual ~ITranslator() = default; virtual ILexer::TPtr MakeLexer(const TTranslationSettings& settings) = 0; virtual NYql::TAstParseResult TextToAst(const TString& query, const TTranslationSettings& settings, - NYql::TWarningRules* warningRules, NYql::TStmtParseInfo* stmtParseInfo) = 0; + NYql::TWarningRules* warningRules, NYql::TStmtParseInfo* stmtParseInfo) = 0; virtual google::protobuf::Message* TextToMessage(const TString& query, const TString& queryName, - NYql::TIssues& issues, size_t maxErrors, const TTranslationSettings& settings) = 0; + NYql::TIssues& issues, size_t maxErrors, const TTranslationSettings& settings) = 0; virtual NYql::TAstParseResult TextAndMessageToAst(const TString& query, const google::protobuf::Message& protoAst, - const TSQLHints& hints, const TTranslationSettings& settings) = 0; + const TSQLHints& hints, const TTranslationSettings& settings) = 0; virtual TVector<NYql::TAstParseResult> TextToManyAst(const TString& query, const TTranslationSettings& settings, - NYql::TWarningRules* warningRules, TVector<NYql::TStmtParseInfo>* stmtParseInfo) = 0; + NYql::TWarningRules* warningRules, TVector<NYql::TStmtParseInfo>* stmtParseInfo) = 0; }; using TTranslatorPtr = TIntrusivePtr<ITranslator>; TTranslatorPtr MakeDummyTranslator(const TString& name); -} // namespace NSQLTranslation +} // namespace NSQLTranslation diff --git a/yql/essentials/sql/sql.cpp b/yql/essentials/sql/sql.cpp index cf7c91bc844..52bece76135 100644 --- a/yql/essentials/sql/sql.cpp +++ b/yql/essentials/sql/sql.cpp @@ -7,216 +7,217 @@ namespace NSQLTranslation { - NYql::TAstParseResult SqlToYql(const TTranslators& translators, const TString& query, const TTranslationSettings& settings, - NYql::TWarningRules* warningRules, NYql::TStmtParseInfo* stmtParseInfo, TTranslationSettings* effectiveSettings) - { - NYql::TAstParseResult result; - TTranslationSettings parsedSettings(settings); +NYql::TAstParseResult SqlToYql(const TTranslators& translators, const TString& query, const TTranslationSettings& settings, + NYql::TWarningRules* warningRules, NYql::TStmtParseInfo* stmtParseInfo, TTranslationSettings* effectiveSettings) +{ + NYql::TAstParseResult result; + TTranslationSettings parsedSettings(settings); + + if (!ParseTranslationSettings(query, parsedSettings, result.Issues)) { + return result; + } + if (effectiveSettings) { + *effectiveSettings = parsedSettings; + } - if (!ParseTranslationSettings(query, parsedSettings, result.Issues)) { - return result; - } - if (effectiveSettings) { - *effectiveSettings = parsedSettings; - } + google::protobuf::Arena arena; + if (!parsedSettings.Arena) { + parsedSettings.Arena = &arena; + } - google::protobuf::Arena arena; - if (!parsedSettings.Arena) { - parsedSettings.Arena = &arena; - } + if (!parsedSettings.DeclaredNamedExprs.empty() && !parsedSettings.PgParser && parsedSettings.SyntaxVersion != 1) { + result.Issues.AddIssue(NYql::YqlIssue(NYql::TPosition(), NYql::TIssuesIds::DEFAULT_ERROR, + "Externally declared named expressions not supported in V0 syntax")); + return result; + } - if (!parsedSettings.DeclaredNamedExprs.empty() && !parsedSettings.PgParser && parsedSettings.SyntaxVersion != 1) { - result.Issues.AddIssue(NYql::YqlIssue(NYql::TPosition(), NYql::TIssuesIds::DEFAULT_ERROR, - "Externally declared named expressions not supported in V0 syntax")); - return result; - } + if (parsedSettings.PgParser && parsedSettings.PGDisable) { + result.Issues.AddIssue(NYql::YqlIssue(NYql::TPosition(), NYql::TIssuesIds::DEFAULT_ERROR, + "PG syntax is disabled")); + return result; + } - if (parsedSettings.PgParser && parsedSettings.PGDisable) { - result.Issues.AddIssue(NYql::YqlIssue(NYql::TPosition(), NYql::TIssuesIds::DEFAULT_ERROR, - "PG syntax is disabled")); - return result; - } - - if (parsedSettings.PgParser) { - return translators.PG->TextToAst(query, parsedSettings, warningRules, stmtParseInfo); - } - - switch (parsedSettings.SyntaxVersion) { - case 0: - if (settings.V0ForceDisable || parsedSettings.V0Behavior == EV0Behavior::Disable) { - result.Issues.AddIssue(NYql::YqlIssue(NYql::TPosition(), NYql::TIssuesIds::DEFAULT_ERROR, - "V0 syntax is disabled")); - return result; - } - - if (parsedSettings.AnsiLexer) { - result.Issues.AddIssue(NYql::YqlIssue(NYql::TPosition(), NYql::TIssuesIds::DEFAULT_ERROR, - "Ansi lexer is not supported in V0 syntax")); - return result; - } - - return translators.V0->TextToAst(query, parsedSettings, warningRules, nullptr); - case 1: - return translators.V1->TextToAst(query, parsedSettings, warningRules, nullptr); - default: + if (parsedSettings.PgParser) { + return translators.PG->TextToAst(query, parsedSettings, warningRules, stmtParseInfo); + } + + switch (parsedSettings.SyntaxVersion) { + case 0: + if (settings.V0ForceDisable || parsedSettings.V0Behavior == EV0Behavior::Disable) { result.Issues.AddIssue(NYql::YqlIssue(NYql::TPosition(), NYql::TIssuesIds::DEFAULT_ERROR, - TStringBuilder() << "Unknown SQL syntax version: " << parsedSettings.SyntaxVersion)); + "V0 syntax is disabled")); return result; - } + } + + if (parsedSettings.AnsiLexer) { + result.Issues.AddIssue(NYql::YqlIssue(NYql::TPosition(), NYql::TIssuesIds::DEFAULT_ERROR, + "Ansi lexer is not supported in V0 syntax")); + return result; + } + + return translators.V0->TextToAst(query, parsedSettings, warningRules, nullptr); + case 1: + return translators.V1->TextToAst(query, parsedSettings, warningRules, nullptr); + default: + result.Issues.AddIssue(NYql::YqlIssue(NYql::TPosition(), NYql::TIssuesIds::DEFAULT_ERROR, + TStringBuilder() << "Unknown SQL syntax version: " << parsedSettings.SyntaxVersion)); + return result; + } +} + +google::protobuf::Message* SqlAST(const TTranslators& translators, const TString& query, const TString& queryName, NYql::TIssues& issues, + size_t maxErrors, const TTranslationSettings& settings, ui16* actualSyntaxVersion) +{ + TTranslationSettings parsedSettings(settings); + if (!ParseTranslationSettings(query, parsedSettings, issues)) { + return nullptr; } - google::protobuf::Message* SqlAST(const TTranslators& translators, const TString& query, const TString& queryName, NYql::TIssues& issues, - size_t maxErrors, const TTranslationSettings& settings, ui16* actualSyntaxVersion) - { - TTranslationSettings parsedSettings(settings); - if (!ParseTranslationSettings(query, parsedSettings, issues)) { - return nullptr; - } - - if (actualSyntaxVersion) { - *actualSyntaxVersion = parsedSettings.SyntaxVersion; - } - - switch (parsedSettings.SyntaxVersion) { - case 0: - if (settings.V0ForceDisable || settings.V0Behavior == EV0Behavior::Disable) { - issues.AddIssue(NYql::YqlIssue(NYql::TPosition(), NYql::TIssuesIds::DEFAULT_ERROR, - "V0 syntax is disabled")); - return nullptr; - } - - if (parsedSettings.AnsiLexer) { - issues.AddIssue(NYql::YqlIssue(NYql::TPosition(), NYql::TIssuesIds::DEFAULT_ERROR, - "Ansi lexer is not supported in V0 syntax")); - return nullptr; - } - - return translators.V0->TextToMessage(query, queryName, issues, maxErrors, settings); - case 1: - return translators.V1->TextToMessage(query, queryName, issues, maxErrors, parsedSettings); - default: + if (actualSyntaxVersion) { + *actualSyntaxVersion = parsedSettings.SyntaxVersion; + } + + switch (parsedSettings.SyntaxVersion) { + case 0: + if (settings.V0ForceDisable || settings.V0Behavior == EV0Behavior::Disable) { + issues.AddIssue(NYql::YqlIssue(NYql::TPosition(), NYql::TIssuesIds::DEFAULT_ERROR, + "V0 syntax is disabled")); + return nullptr; + } + + if (parsedSettings.AnsiLexer) { issues.AddIssue(NYql::YqlIssue(NYql::TPosition(), NYql::TIssuesIds::DEFAULT_ERROR, - TStringBuilder() << "Unknown SQL syntax version: " << parsedSettings.SyntaxVersion)); + "Ansi lexer is not supported in V0 syntax")); return nullptr; - } + } + + return translators.V0->TextToMessage(query, queryName, issues, maxErrors, settings); + case 1: + return translators.V1->TextToMessage(query, queryName, issues, maxErrors, parsedSettings); + default: + issues.AddIssue(NYql::YqlIssue(NYql::TPosition(), NYql::TIssuesIds::DEFAULT_ERROR, + TStringBuilder() << "Unknown SQL syntax version: " << parsedSettings.SyntaxVersion)); + return nullptr; } +} - ILexer::TPtr SqlLexer(const TTranslators& translators, const TString& query, NYql::TIssues& issues, const TTranslationSettings& settings, ui16* actualSyntaxVersion) - { - TTranslationSettings parsedSettings(settings); - if (!ParseTranslationSettings(query, parsedSettings, issues)) { - return {}; - } - - if (actualSyntaxVersion) { - *actualSyntaxVersion = parsedSettings.SyntaxVersion; - } - - switch (parsedSettings.SyntaxVersion) { - case 0: - if (settings.V0ForceDisable || settings.V0Behavior == EV0Behavior::Disable) { - issues.AddIssue(NYql::YqlIssue(NYql::TPosition(), NYql::TIssuesIds::DEFAULT_ERROR, - "V0 syntax is disabled")); - return {}; - } - - if (parsedSettings.AnsiLexer) { - issues.AddIssue(NYql::YqlIssue(NYql::TPosition(), NYql::TIssuesIds::DEFAULT_ERROR, - "Ansi lexer is not supported in V0 syntax")); - return {}; - } - - return translators.V0->MakeLexer(parsedSettings); - case 1: - return translators.V1->MakeLexer(parsedSettings); - default: +ILexer::TPtr SqlLexer(const TTranslators& translators, const TString& query, NYql::TIssues& issues, const TTranslationSettings& settings, ui16* actualSyntaxVersion) +{ + TTranslationSettings parsedSettings(settings); + if (!ParseTranslationSettings(query, parsedSettings, issues)) { + return {}; + } + + if (actualSyntaxVersion) { + *actualSyntaxVersion = parsedSettings.SyntaxVersion; + } + + switch (parsedSettings.SyntaxVersion) { + case 0: + if (settings.V0ForceDisable || settings.V0Behavior == EV0Behavior::Disable) { issues.AddIssue(NYql::YqlIssue(NYql::TPosition(), NYql::TIssuesIds::DEFAULT_ERROR, - TStringBuilder() << "Unknown SQL syntax version: " << parsedSettings.SyntaxVersion)); + "V0 syntax is disabled")); return {}; - } - } - - NYql::TAstParseResult SqlASTToYql(const TTranslators& translators, const TString& query, - const google::protobuf::Message& protoAst, const TSQLHints& hints, const TTranslationSettings& settings) { - NYql::TAstParseResult result; - switch (settings.SyntaxVersion) { - case 0: - if (settings.V0ForceDisable || settings.V0Behavior == EV0Behavior::Disable) { - result.Issues.AddIssue(NYql::YqlIssue(NYql::TPosition(), NYql::TIssuesIds::DEFAULT_ERROR, - "V0 syntax is disabled")); - return result; - } - - if (settings.AnsiLexer) { - result.Issues.AddIssue(NYql::YqlIssue(NYql::TPosition(), NYql::TIssuesIds::DEFAULT_ERROR, - "Ansi lexer is not supported in V0 syntax")); - return result; - } - - return translators.V0->TextAndMessageToAst(query, protoAst, hints, settings); - case 1: - return translators.V1->TextAndMessageToAst(query, protoAst, hints, settings); - default: - result.Issues.AddIssue(NYql::YqlIssue(NYql::TPosition(), NYql::TIssuesIds::DEFAULT_ERROR, - TStringBuilder() << "Unknown SQL syntax version: " << settings.SyntaxVersion)); - return result; - } - } - - TVector<NYql::TAstParseResult> SqlToAstStatements(const TTranslators& translators, const TString& query, - const TTranslationSettings& settings, NYql::TWarningRules* warningRules, ui16* actualSyntaxVersion, - TVector<NYql::TStmtParseInfo>* stmtParseInfo) - { - TVector<NYql::TAstParseResult> result; - NYql::TIssues issues; - TTranslationSettings parsedSettings(settings); - google::protobuf::Arena arena; - if (!parsedSettings.Arena) { - parsedSettings.Arena = &arena; - } - - if (!ParseTranslationSettings(query, parsedSettings, issues)) { - return {}; - } + } - if (actualSyntaxVersion) { - *actualSyntaxVersion = parsedSettings.SyntaxVersion; - } + if (parsedSettings.AnsiLexer) { + issues.AddIssue(NYql::YqlIssue(NYql::TPosition(), NYql::TIssuesIds::DEFAULT_ERROR, + "Ansi lexer is not supported in V0 syntax")); + return {}; + } - if (!parsedSettings.DeclaredNamedExprs.empty() && !parsedSettings.PgParser && parsedSettings.SyntaxVersion != 1) { + return translators.V0->MakeLexer(parsedSettings); + case 1: + return translators.V1->MakeLexer(parsedSettings); + default: issues.AddIssue(NYql::YqlIssue(NYql::TPosition(), NYql::TIssuesIds::DEFAULT_ERROR, - "Externally declared named expressions not supported in V0 syntax")); + TStringBuilder() << "Unknown SQL syntax version: " << parsedSettings.SyntaxVersion)); return {}; - } + } +} + +NYql::TAstParseResult SqlASTToYql(const TTranslators& translators, const TString& query, + const google::protobuf::Message& protoAst, const TSQLHints& hints, const TTranslationSettings& settings) { + NYql::TAstParseResult result; + switch (settings.SyntaxVersion) { + case 0: + if (settings.V0ForceDisable || settings.V0Behavior == EV0Behavior::Disable) { + result.Issues.AddIssue(NYql::YqlIssue(NYql::TPosition(), NYql::TIssuesIds::DEFAULT_ERROR, + "V0 syntax is disabled")); + return result; + } - if (parsedSettings.PgParser && parsedSettings.PGDisable) { - issues.AddIssue(NYql::YqlIssue(NYql::TPosition(), NYql::TIssuesIds::DEFAULT_ERROR, - "PG syntax is disabled")); + if (settings.AnsiLexer) { + result.Issues.AddIssue(NYql::YqlIssue(NYql::TPosition(), NYql::TIssuesIds::DEFAULT_ERROR, + "Ansi lexer is not supported in V0 syntax")); + return result; + } + + return translators.V0->TextAndMessageToAst(query, protoAst, hints, settings); + case 1: + return translators.V1->TextAndMessageToAst(query, protoAst, hints, settings); + default: + result.Issues.AddIssue(NYql::YqlIssue(NYql::TPosition(), NYql::TIssuesIds::DEFAULT_ERROR, + TStringBuilder() << "Unknown SQL syntax version: " << settings.SyntaxVersion)); return result; - } + } +} + +TVector<NYql::TAstParseResult> SqlToAstStatements(const TTranslators& translators, const TString& query, + const TTranslationSettings& settings, NYql::TWarningRules* warningRules, ui16* actualSyntaxVersion, + TVector<NYql::TStmtParseInfo>* stmtParseInfo) +{ + TVector<NYql::TAstParseResult> result; + NYql::TIssues issues; + TTranslationSettings parsedSettings(settings); + google::protobuf::Arena arena; + if (!parsedSettings.Arena) { + parsedSettings.Arena = &arena; + } - if (parsedSettings.PgParser) { - return translators.PG->TextToManyAst(query, parsedSettings, warningRules, stmtParseInfo); - } + if (!ParseTranslationSettings(query, parsedSettings, issues)) { + return {}; + } - switch (parsedSettings.SyntaxVersion) { - case 0: - issues.AddIssue(NYql::YqlIssue(NYql::TPosition(), NYql::TIssuesIds::DEFAULT_ERROR, - "V0 syntax is disabled")); - return translators.V0->TextToManyAst(query, parsedSettings, warningRules, stmtParseInfo); - case 1: - return translators.V1->TextToManyAst(query, parsedSettings, warningRules, stmtParseInfo); - default: - issues.AddIssue(NYql::YqlIssue(NYql::TPosition(), NYql::TIssuesIds::DEFAULT_ERROR, - TStringBuilder() << "Unknown SQL syntax version: " << parsedSettings.SyntaxVersion)); - return {}; - } + if (actualSyntaxVersion) { + *actualSyntaxVersion = parsedSettings.SyntaxVersion; + } + + if (!parsedSettings.DeclaredNamedExprs.empty() && !parsedSettings.PgParser && parsedSettings.SyntaxVersion != 1) { + issues.AddIssue(NYql::YqlIssue(NYql::TPosition(), NYql::TIssuesIds::DEFAULT_ERROR, + "Externally declared named expressions not supported in V0 syntax")); + return {}; + } + + if (parsedSettings.PgParser && parsedSettings.PGDisable) { + issues.AddIssue(NYql::YqlIssue(NYql::TPosition(), NYql::TIssuesIds::DEFAULT_ERROR, + "PG syntax is disabled")); + return result; + } + + if (parsedSettings.PgParser) { + return translators.PG->TextToManyAst(query, parsedSettings, warningRules, stmtParseInfo); + } + + switch (parsedSettings.SyntaxVersion) { + case 0: + issues.AddIssue(NYql::YqlIssue(NYql::TPosition(), NYql::TIssuesIds::DEFAULT_ERROR, + "V0 syntax is disabled")); + return translators.V0->TextToManyAst(query, parsedSettings, warningRules, stmtParseInfo); + case 1: + return translators.V1->TextToManyAst(query, parsedSettings, warningRules, stmtParseInfo); + default: + issues.AddIssue(NYql::YqlIssue(NYql::TPosition(), NYql::TIssuesIds::DEFAULT_ERROR, + TStringBuilder() << "Unknown SQL syntax version: " << parsedSettings.SyntaxVersion)); + return {}; } +} - TTranslators::TTranslators(TTranslatorPtr v0, TTranslatorPtr v1, TTranslatorPtr pg) - : V0(v0 ? v0 : MakeDummyTranslator("v0")) - , V1(v1 ? v1 : MakeDummyTranslator("v1")) - , PG(pg ? pg : MakeDummyTranslator("pg")) - {} +TTranslators::TTranslators(TTranslatorPtr v0, TTranslatorPtr v1, TTranslatorPtr pg) + : V0(v0 ? v0 : MakeDummyTranslator("v0")) + , V1(v1 ? v1 : MakeDummyTranslator("v1")) + , PG(pg ? pg : MakeDummyTranslator("pg")) +{ +} -} // namespace NSQLTranslation +} // namespace NSQLTranslation diff --git a/yql/essentials/sql/sql.h b/yql/essentials/sql/sql.h index ebeca9629cf..981f94e8293 100644 --- a/yql/essentials/sql/sql.h +++ b/yql/essentials/sql/sql.h @@ -11,25 +11,25 @@ namespace NSQLTranslation { - struct TTranslators { - TTranslatorPtr const V0; - TTranslatorPtr const V1; - TTranslatorPtr const PG; +struct TTranslators { + TTranslatorPtr const V0; + TTranslatorPtr const V1; + TTranslatorPtr const PG; - TTranslators(TTranslatorPtr v0, TTranslatorPtr v1, TTranslatorPtr pg); - }; + TTranslators(TTranslatorPtr v0, TTranslatorPtr v1, TTranslatorPtr pg); +}; - NYql::TAstParseResult SqlToYql(const TTranslators& translators, const TString& query, const TTranslationSettings& settings, - NYql::TWarningRules* warningRules = nullptr, NYql::TStmtParseInfo* stmtParseInfo = nullptr, - TTranslationSettings* effectiveSettings = nullptr); +NYql::TAstParseResult SqlToYql(const TTranslators& translators, const TString& query, const TTranslationSettings& settings, + NYql::TWarningRules* warningRules = nullptr, NYql::TStmtParseInfo* stmtParseInfo = nullptr, + TTranslationSettings* effectiveSettings = nullptr); - google::protobuf::Message* SqlAST(const TTranslators& translators, const TString& query, const TString& queryName, NYql::TIssues& issues, size_t maxErrors, - const TTranslationSettings& settings = {}, ui16* actualSyntaxVersion = nullptr); +google::protobuf::Message* SqlAST(const TTranslators& translators, const TString& query, const TString& queryName, NYql::TIssues& issues, size_t maxErrors, + const TTranslationSettings& settings = {}, ui16* actualSyntaxVersion = nullptr); - ILexer::TPtr SqlLexer(const TTranslators& translators, const TString& query, NYql::TIssues& issues, const TTranslationSettings& settings = {}, ui16* actualSyntaxVersion = nullptr); +ILexer::TPtr SqlLexer(const TTranslators& translators, const TString& query, NYql::TIssues& issues, const TTranslationSettings& settings = {}, ui16* actualSyntaxVersion = nullptr); - NYql::TAstParseResult SqlASTToYql(const TTranslators& translators, const TString& query, const google::protobuf::Message& protoAst, const TSQLHints& hints, const TTranslationSettings& settings); +NYql::TAstParseResult SqlASTToYql(const TTranslators& translators, const TString& query, const google::protobuf::Message& protoAst, const TSQLHints& hints, const TTranslationSettings& settings); - TVector<NYql::TAstParseResult> SqlToAstStatements(const TTranslators& translators, const TString& query, const TTranslationSettings& settings, - NYql::TWarningRules* warningRules = nullptr, ui16* actualSyntaxVersion = nullptr, TVector<NYql::TStmtParseInfo>* stmtParseInfo = nullptr); -} // namespace NSQLTranslation +TVector<NYql::TAstParseResult> SqlToAstStatements(const TTranslators& translators, const TString& query, const TTranslationSettings& settings, + NYql::TWarningRules* warningRules = nullptr, ui16* actualSyntaxVersion = nullptr, TVector<NYql::TStmtParseInfo>* stmtParseInfo = nullptr); +} // namespace NSQLTranslation diff --git a/yql/essentials/sql/v0/lexer/ya.make b/yql/essentials/sql/v0/lexer/ya.make index 70d2b1cfdad..52f6f60648c 100644 --- a/yql/essentials/sql/v0/lexer/ya.make +++ b/yql/essentials/sql/v0/lexer/ya.make @@ -1,5 +1,7 @@ LIBRARY() +ENABLE(SKIP_YQL_STYLE_CPP) + PEERDIR( yql/essentials/core/issue/protos yql/essentials/parser/proto_ast/gen/v0 diff --git a/yql/essentials/sql/v0/ut/ya.make b/yql/essentials/sql/v0/ut/ya.make index 164d3f3e536..e5abc3af1e0 100644 --- a/yql/essentials/sql/v0/ut/ya.make +++ b/yql/essentials/sql/v0/ut/ya.make @@ -1,5 +1,7 @@ UNITTEST_FOR(yql/essentials/sql/v0) +ENABLE(SKIP_YQL_STYLE_CPP) + SRCS( sql_ut.cpp ) diff --git a/yql/essentials/sql/v0/ya.make b/yql/essentials/sql/v0/ya.make index 381f3fa77b1..073efebd9ec 100644 --- a/yql/essentials/sql/v0/ya.make +++ b/yql/essentials/sql/v0/ya.make @@ -1,5 +1,7 @@ LIBRARY() +ENABLE(SKIP_YQL_STYLE_CPP) + PEERDIR( library/cpp/charset/lite library/cpp/enumbitset diff --git a/yql/essentials/sql/v1/complete/ya.make b/yql/essentials/sql/v1/complete/ya.make index 8df41ab8013..b0b5ee4be21 100644 --- a/yql/essentials/sql/v1/complete/ya.make +++ b/yql/essentials/sql/v1/complete/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( configuration.cpp name_mapping.cpp diff --git a/yql/essentials/sql/v1/format/ya.make b/yql/essentials/sql/v1/format/ya.make index 0ee8aed6a85..7893a42c53c 100644 --- a/yql/essentials/sql/v1/format/ya.make +++ b/yql/essentials/sql/v1/format/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( sql_format.cpp ) diff --git a/yql/essentials/sql/v1/highlight/ya.make b/yql/essentials/sql/v1/highlight/ya.make index 79baad0d9e2..103f1908aa0 100644 --- a/yql/essentials/sql/v1/highlight/ya.make +++ b/yql/essentials/sql/v1/highlight/ya.make @@ -1,5 +1,3 @@ -ENABLE(YQL_STYLE_CPP) - LIBRARY() SRCS( diff --git a/yql/essentials/sql/v1/lexer/ya.make b/yql/essentials/sql/v1/lexer/ya.make index d56156f2280..6462ced1991 100644 --- a/yql/essentials/sql/v1/lexer/ya.make +++ b/yql/essentials/sql/v1/lexer/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - PEERDIR( yql/essentials/core/issue/protos yql/essentials/sql/settings diff --git a/yql/essentials/sql/v1/perf/ya.make b/yql/essentials/sql/v1/perf/ya.make index d3a2b8a83aa..dad0eeaee68 100644 --- a/yql/essentials/sql/v1/perf/ya.make +++ b/yql/essentials/sql/v1/perf/ya.make @@ -1,7 +1,5 @@ PROGRAM() -ENABLE(YQL_STYLE_CPP) - SRCS( parse.cpp ) diff --git a/yql/essentials/sql/v1/proto_parser/ya.make b/yql/essentials/sql/v1/proto_parser/ya.make index 256a3091aec..0fbe9f45469 100644 --- a/yql/essentials/sql/v1/proto_parser/ya.make +++ b/yql/essentials/sql/v1/proto_parser/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - PEERDIR( yql/essentials/utils yql/essentials/parser/proto_ast/collect_issues diff --git a/yql/essentials/sql/v1/reflect/ya.make b/yql/essentials/sql/v1/reflect/ya.make index 865257529e8..1843aabf19b 100644 --- a/yql/essentials/sql/v1/reflect/ya.make +++ b/yql/essentials/sql/v1/reflect/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( sql_reflect.cpp ) diff --git a/yql/essentials/sql/v1/ya.make b/yql/essentials/sql/v1/ya.make index b3d0eac4c96..0e89d150bf8 100644 --- a/yql/essentials/sql/v1/ya.make +++ b/yql/essentials/sql/v1/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - PEERDIR( library/cpp/charset/lite library/cpp/enumbitset diff --git a/yql/essentials/tools/arrow_kernels_dump/ya.make b/yql/essentials/tools/arrow_kernels_dump/ya.make index 29659ab6725..95b00f95b25 100644 --- a/yql/essentials/tools/arrow_kernels_dump/ya.make +++ b/yql/essentials/tools/arrow_kernels_dump/ya.make @@ -1,7 +1,5 @@ PROGRAM() -ENABLE(YQL_STYLE_CPP) - SRCS( arrow_kernels_dump.cpp ) diff --git a/yql/essentials/tools/astdiff/ya.make b/yql/essentials/tools/astdiff/ya.make index e7e3e193c1a..2facdcd095a 100644 --- a/yql/essentials/tools/astdiff/ya.make +++ b/yql/essentials/tools/astdiff/ya.make @@ -1,7 +1,5 @@ PROGRAM(astdiff) -ENABLE(YQL_STYLE_CPP) - SRCS( astdiff.cpp ) diff --git a/yql/essentials/tools/langver_dump/ya.make b/yql/essentials/tools/langver_dump/ya.make index 725844ff728..c89ab5ebd56 100644 --- a/yql/essentials/tools/langver_dump/ya.make +++ b/yql/essentials/tools/langver_dump/ya.make @@ -1,7 +1,5 @@ PROGRAM() -ENABLE(YQL_STYLE_CPP) - SRCS( langver_dump.cpp ) diff --git a/yql/essentials/tools/minirun/ya.make b/yql/essentials/tools/minirun/ya.make index 4dad8f00ed3..bb1a62dbb63 100644 --- a/yql/essentials/tools/minirun/ya.make +++ b/yql/essentials/tools/minirun/ya.make @@ -1,7 +1,5 @@ PROGRAM() -ENABLE(YQL_STYLE_CPP) - SUBSCRIBER(g:yql) ALLOCATOR(J) diff --git a/yql/essentials/tools/pg_catalog_dump/ya.make b/yql/essentials/tools/pg_catalog_dump/ya.make index bf170e9f14c..d49789a7614 100644 --- a/yql/essentials/tools/pg_catalog_dump/ya.make +++ b/yql/essentials/tools/pg_catalog_dump/ya.make @@ -1,7 +1,5 @@ PROGRAM(pg_catalog_dump) -ENABLE(YQL_STYLE_CPP) - SRCS( pg_catalog_dump.cpp ) diff --git a/yql/essentials/tools/pgrun/ya.make b/yql/essentials/tools/pgrun/ya.make index a497f5d2e33..b22318c1698 100644 --- a/yql/essentials/tools/pgrun/ya.make +++ b/yql/essentials/tools/pgrun/ya.make @@ -2,8 +2,6 @@ IF (NOT OPENSOURCE) PROGRAM(pgrun) -ENABLE(YQL_STYLE_CPP) - ALLOCATOR(J) SRCS( diff --git a/yql/essentials/tools/purebench/ya.make b/yql/essentials/tools/purebench/ya.make index 5d9e2eb8b2b..dd1d962bcb8 100644 --- a/yql/essentials/tools/purebench/ya.make +++ b/yql/essentials/tools/purebench/ya.make @@ -2,8 +2,6 @@ IF (NOT OPENSOURCE) PROGRAM(purebench) -ENABLE(YQL_STYLE_CPP) - ALLOCATOR(J) SRCS( diff --git a/yql/essentials/tools/sql2yql/ya.make b/yql/essentials/tools/sql2yql/ya.make index 06fdf58b80c..030fe870256 100644 --- a/yql/essentials/tools/sql2yql/ya.make +++ b/yql/essentials/tools/sql2yql/ya.make @@ -2,8 +2,6 @@ IF (NOT EXPORT_CMAKE OR NOT OPENSOURCE OR OPENSOURCE_PROJECT != "yt") PROGRAM(sql2yql) -ENABLE(YQL_STYLE_CPP) - PEERDIR( contrib/libs/antlr3_cpp_runtime library/cpp/getopt diff --git a/yql/essentials/tools/sql_formatter/ya.make b/yql/essentials/tools/sql_formatter/ya.make index 748c9ad2471..558dbe3bd5a 100644 --- a/yql/essentials/tools/sql_formatter/ya.make +++ b/yql/essentials/tools/sql_formatter/ya.make @@ -2,8 +2,6 @@ IF (NOT EXPORT_CMAKE OR NOT OPENSOURCE OR OPENSOURCE_PROJECT != "yt") PROGRAM() -ENABLE(YQL_STYLE_CPP) - PEERDIR( library/cpp/getopt contrib/libs/protobuf diff --git a/yql/essentials/tools/sql_functions_dump/ya.make b/yql/essentials/tools/sql_functions_dump/ya.make index 5467c07bbfc..73dda185476 100644 --- a/yql/essentials/tools/sql_functions_dump/ya.make +++ b/yql/essentials/tools/sql_functions_dump/ya.make @@ -1,7 +1,5 @@ PROGRAM() -ENABLE(YQL_STYLE_CPP) - SRCS( sql_functions_dump.cpp ) diff --git a/yql/essentials/tools/types_dump/ya.make b/yql/essentials/tools/types_dump/ya.make index c59a3c43143..5bea1a09d80 100644 --- a/yql/essentials/tools/types_dump/ya.make +++ b/yql/essentials/tools/types_dump/ya.make @@ -1,7 +1,5 @@ PROGRAM() -ENABLE(YQL_STYLE_CPP) - SRCS( types_dump.cpp ) diff --git a/yql/essentials/tools/udf_dep_stub/ya.make b/yql/essentials/tools/udf_dep_stub/ya.make index 69bb3f8f45c..abe778ed121 100644 --- a/yql/essentials/tools/udf_dep_stub/ya.make +++ b/yql/essentials/tools/udf_dep_stub/ya.make @@ -1,7 +1,5 @@ DLL(yql_udf_dep_stub) -ENABLE(YQL_STYLE_CPP) - SRCS( main.cpp ) diff --git a/yql/essentials/tools/udf_probe/ya.make b/yql/essentials/tools/udf_probe/ya.make index 4df603700bc..d6cbedec450 100644 --- a/yql/essentials/tools/udf_probe/ya.make +++ b/yql/essentials/tools/udf_probe/ya.make @@ -1,7 +1,5 @@ PROGRAM() -ENABLE(YQL_STYLE_CPP) - SRCS( udf_probe.cpp ) diff --git a/yql/essentials/tools/udf_resolver/ya.make b/yql/essentials/tools/udf_resolver/ya.make index 4cc31ea96bd..2dff7abf78f 100644 --- a/yql/essentials/tools/udf_resolver/ya.make +++ b/yql/essentials/tools/udf_resolver/ya.make @@ -1,7 +1,5 @@ PROGRAM() -ENABLE(YQL_STYLE_CPP) - SRCS( udf_resolver.cpp discover.cpp diff --git a/yql/essentials/tools/yql_complete/ya.make b/yql/essentials/tools/yql_complete/ya.make index 7a620d58514..07c7b7cffdc 100644 --- a/yql/essentials/tools/yql_complete/ya.make +++ b/yql/essentials/tools/yql_complete/ya.make @@ -2,8 +2,6 @@ IF (NOT EXPORT_CMAKE OR NOT OPENSOURCE OR OPENSOURCE_PROJECT != "yt") PROGRAM() -ENABLE(YQL_STYLE_CPP) - PEERDIR( library/cpp/getopt library/cpp/iterator diff --git a/yql/essentials/tools/yql_facade_run/ya.make b/yql/essentials/tools/yql_facade_run/ya.make index 1cf8a196d38..67804ded36e 100644 --- a/yql/essentials/tools/yql_facade_run/ya.make +++ b/yql/essentials/tools/yql_facade_run/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( yql_facade_run.cpp ) diff --git a/yql/essentials/tools/yql_highlight/ya.make b/yql/essentials/tools/yql_highlight/ya.make index 4f50a969445..15a0fd5ab01 100644 --- a/yql/essentials/tools/yql_highlight/ya.make +++ b/yql/essentials/tools/yql_highlight/ya.make @@ -1,8 +1,6 @@ IF (NOT EXPORT_CMAKE OR NOT OPENSOURCE OR OPENSOURCE_PROJECT != "yt") PROGRAM() - ENABLE(YQL_STYLE_CPP) - PEERDIR( library/cpp/getopt library/cpp/json diff --git a/yql/essentials/tools/yql_linter/ya.make b/yql/essentials/tools/yql_linter/ya.make index 8f8ae6ca7cf..ac6cd7013ce 100644 --- a/yql/essentials/tools/yql_linter/ya.make +++ b/yql/essentials/tools/yql_linter/ya.make @@ -2,8 +2,6 @@ IF (NOT EXPORT_CMAKE OR NOT OPENSOURCE OR OPENSOURCE_PROJECT != "yt") PROGRAM() -ENABLE(YQL_STYLE_CPP) - PEERDIR( library/cpp/getopt yql/essentials/public/fastcheck diff --git a/yql/essentials/types/binary_json/ut/ya.make b/yql/essentials/types/binary_json/ut/ya.make index 8c5ce8701df..49ef9c24a04 100644 --- a/yql/essentials/types/binary_json/ut/ya.make +++ b/yql/essentials/types/binary_json/ut/ya.make @@ -1,7 +1,5 @@ UNITTEST_FOR(yql/essentials/types/binary_json) -ENABLE(YQL_STYLE_CPP) - SRCS( container_ut.cpp identity_ut.cpp diff --git a/yql/essentials/types/binary_json/ut_benchmark/ya.make b/yql/essentials/types/binary_json/ut_benchmark/ya.make index 17060e862aa..b4b94af4ecd 100644 --- a/yql/essentials/types/binary_json/ut_benchmark/ya.make +++ b/yql/essentials/types/binary_json/ut_benchmark/ya.make @@ -1,7 +1,5 @@ G_BENCHMARK() -ENABLE(YQL_STYLE_CPP) - TAG(ya:fat) SIZE(LARGE) TIMEOUT(600) diff --git a/yql/essentials/types/dynumber/ut/ya.make b/yql/essentials/types/dynumber/ut/ya.make index 196ee912d53..b632325e5b4 100644 --- a/yql/essentials/types/dynumber/ut/ya.make +++ b/yql/essentials/types/dynumber/ut/ya.make @@ -1,7 +1,5 @@ UNITTEST_FOR(yql/essentials/types/dynumber) -ENABLE(YQL_STYLE_CPP) - SRCS( dynumber_ut.cpp ) diff --git a/yql/essentials/types/dynumber/ya.make b/yql/essentials/types/dynumber/ya.make index f58b6173376..5d372e0c314 100644 --- a/yql/essentials/types/dynumber/ya.make +++ b/yql/essentials/types/dynumber/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - PEERDIR( library/cpp/containers/stack_vector ) diff --git a/yql/essentials/types/uuid/ya.make b/yql/essentials/types/uuid/ya.make index 1103b8e83d4..15cd576d234 100644 --- a/yql/essentials/types/uuid/ya.make +++ b/yql/essentials/types/uuid/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( uuid.cpp ) diff --git a/yql/essentials/udfs/common/compress_base/lib/ya.make b/yql/essentials/udfs/common/compress_base/lib/ya.make index 0d03f21c597..ca606d244a0 100644 --- a/yql/essentials/udfs/common/compress_base/lib/ya.make +++ b/yql/essentials/udfs/common/compress_base/lib/ya.make @@ -6,8 +6,6 @@ YQL_ABI_VERSION( 0 ) -ENABLE(YQL_STYLE_CPP) - SRCS( compress_base_udf.cpp ) diff --git a/yql/essentials/udfs/common/compress_base/ya.make b/yql/essentials/udfs/common/compress_base/ya.make index 93861b3d98b..4859a4e53cd 100644 --- a/yql/essentials/udfs/common/compress_base/ya.make +++ b/yql/essentials/udfs/common/compress_base/ya.make @@ -6,8 +6,6 @@ YQL_ABI_VERSION( 0 ) -ENABLE(YQL_STYLE_CPP) - SRCS( compress_udf.cpp ) diff --git a/yql/essentials/udfs/common/datetime2/ya.make b/yql/essentials/udfs/common/datetime2/ya.make index ca50b15e73f..0e0425d68c4 100644 --- a/yql/essentials/udfs/common/datetime2/ya.make +++ b/yql/essentials/udfs/common/datetime2/ya.make @@ -4,7 +4,7 @@ YQL_UDF_CONTRIB(datetime2_udf) 43 0 ) - ENABLE(YQL_STYLE_CPP) + SRCS( datetime_udf.cpp ) diff --git a/yql/essentials/udfs/common/digest/ya.make b/yql/essentials/udfs/common/digest/ya.make index 9daa7f25318..565e77a3013 100644 --- a/yql/essentials/udfs/common/digest/ya.make +++ b/yql/essentials/udfs/common/digest/ya.make @@ -6,8 +6,6 @@ YQL_UDF_CONTRIB(digest_udf) 0 ) - ENABLE(YQL_STYLE_CPP) - SRCS( digest_udf.cpp ) diff --git a/yql/essentials/udfs/common/file/ya.make b/yql/essentials/udfs/common/file/ya.make index 9a4f1863132..250f0722d8e 100644 --- a/yql/essentials/udfs/common/file/ya.make +++ b/yql/essentials/udfs/common/file/ya.make @@ -6,8 +6,6 @@ YQL_ABI_VERSION( 0 ) -ENABLE(YQL_STYLE_CPP) - SRCS( file_udf.cpp ) diff --git a/yql/essentials/udfs/common/histogram/ya.make b/yql/essentials/udfs/common/histogram/ya.make index 659a3ba4406..7f777cddea4 100644 --- a/yql/essentials/udfs/common/histogram/ya.make +++ b/yql/essentials/udfs/common/histogram/ya.make @@ -6,8 +6,6 @@ YQL_UDF_CONTRIB(histogram_udf) 0 ) - ENABLE(YQL_STYLE_CPP) - SRCS( histogram_udf.cpp ) diff --git a/yql/essentials/udfs/common/hyperloglog/ya.make b/yql/essentials/udfs/common/hyperloglog/ya.make index 4c295580a9f..979024891c2 100644 --- a/yql/essentials/udfs/common/hyperloglog/ya.make +++ b/yql/essentials/udfs/common/hyperloglog/ya.make @@ -6,8 +6,6 @@ YQL_UDF_CONTRIB(hyperloglog_udf) 0 ) - ENABLE(YQL_STYLE_CPP) - SRCS( hyperloglog_udf.cpp ) diff --git a/yql/essentials/udfs/common/hyperscan/ya.make b/yql/essentials/udfs/common/hyperscan/ya.make index 574458d246a..009d2a2792f 100644 --- a/yql/essentials/udfs/common/hyperscan/ya.make +++ b/yql/essentials/udfs/common/hyperscan/ya.make @@ -14,8 +14,6 @@ YQL_UDF_CONTRIB(hyperscan_udf) 0 ) - ENABLE(YQL_STYLE_CPP) - SRCS( hyperscan_udf.cpp ) diff --git a/yql/essentials/udfs/common/ip_base/lib/ya.make b/yql/essentials/udfs/common/ip_base/lib/ya.make index 3587d2b6192..ab9b2bce8e2 100644 --- a/yql/essentials/udfs/common/ip_base/lib/ya.make +++ b/yql/essentials/udfs/common/ip_base/lib/ya.make @@ -6,8 +6,6 @@ YQL_ABI_VERSION( 0 ) -ENABLE(YQL_STYLE_CPP) - SRCS( ip_base_udf.cpp ) diff --git a/yql/essentials/udfs/common/ip_base/ya.make b/yql/essentials/udfs/common/ip_base/ya.make index 86c40dd2698..0a2859c0af2 100644 --- a/yql/essentials/udfs/common/ip_base/ya.make +++ b/yql/essentials/udfs/common/ip_base/ya.make @@ -6,8 +6,6 @@ YQL_UDF_CONTRIB(ip_udf) 0 ) - ENABLE(YQL_STYLE_CPP) - SRCS( ip_base.cpp ) diff --git a/yql/essentials/udfs/common/json/ya.make b/yql/essentials/udfs/common/json/ya.make index d45fe60e5f0..689714e306b 100644 --- a/yql/essentials/udfs/common/json/ya.make +++ b/yql/essentials/udfs/common/json/ya.make @@ -6,8 +6,6 @@ YQL_UDF_CONTRIB(json_udf) 0 ) - ENABLE(YQL_STYLE_CPP) - SRCS( json_udf.cpp ) diff --git a/yql/essentials/udfs/common/json2/ya.make b/yql/essentials/udfs/common/json2/ya.make index fa5e47018ce..5a0c14cfe2d 100644 --- a/yql/essentials/udfs/common/json2/ya.make +++ b/yql/essentials/udfs/common/json2/ya.make @@ -6,8 +6,6 @@ YQL_UDF_CONTRIB(json2_udf) 0 ) - ENABLE(YQL_STYLE_CPP) - SRCS( json2_udf.cpp ) diff --git a/yql/essentials/udfs/common/math/lib/ut/ya.make b/yql/essentials/udfs/common/math/lib/ut/ya.make index 2461b36ab3d..c1efcde3b47 100644 --- a/yql/essentials/udfs/common/math/lib/ut/ya.make +++ b/yql/essentials/udfs/common/math/lib/ut/ya.make @@ -2,8 +2,6 @@ IF (OS_LINUX) IF (NOT WITH_VALGRIND) UNITTEST_FOR(yql/essentials/udfs/common/math/lib) - ENABLE(YQL_STYLE_CPP) - SRCS( round_ut.cpp ) diff --git a/yql/essentials/udfs/common/math/lib/ya.make b/yql/essentials/udfs/common/math/lib/ya.make index 3c0faeb996a..54b882a8438 100644 --- a/yql/essentials/udfs/common/math/lib/ya.make +++ b/yql/essentials/udfs/common/math/lib/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( erfinv.cpp ) diff --git a/yql/essentials/udfs/common/math/ya.make b/yql/essentials/udfs/common/math/ya.make index b4dbbc6afd2..dfb5fa7c994 100644 --- a/yql/essentials/udfs/common/math/ya.make +++ b/yql/essentials/udfs/common/math/ya.make @@ -6,8 +6,6 @@ YQL_UDF_CONTRIB(math_udf) 0 ) - ENABLE(YQL_STYLE_CPP) - SRCS( math_udf.cpp ) diff --git a/yql/essentials/udfs/common/pire/ya.make b/yql/essentials/udfs/common/pire/ya.make index 21aef728426..010f5a19159 100644 --- a/yql/essentials/udfs/common/pire/ya.make +++ b/yql/essentials/udfs/common/pire/ya.make @@ -6,8 +6,6 @@ YQL_UDF_CONTRIB(pire_udf) 0 ) - ENABLE(YQL_STYLE_CPP) - SRCS( pire_udf.cpp ) diff --git a/yql/essentials/udfs/common/protobuf/ya.make b/yql/essentials/udfs/common/protobuf/ya.make index 007a5266671..714ad77137f 100644 --- a/yql/essentials/udfs/common/protobuf/ya.make +++ b/yql/essentials/udfs/common/protobuf/ya.make @@ -6,8 +6,6 @@ YQL_ABI_VERSION( 0 ) -ENABLE(YQL_STYLE_CPP) - SRCS( protobuf_udf.cpp ) diff --git a/yql/essentials/udfs/common/python/bindings/ya.make b/yql/essentials/udfs/common/python/bindings/ya.make index 1e5eb4cd0b0..f122de06daf 100644 --- a/yql/essentials/udfs/common/python/bindings/ya.make +++ b/yql/essentials/udfs/common/python/bindings/ya.make @@ -2,8 +2,6 @@ PY23_NATIVE_LIBRARY() YQL_ABI_VERSION(2 44 0) -ENABLE(YQL_STYLE_CPP) - SRCS( py_callable.cpp py_cast.cpp diff --git a/yql/essentials/udfs/common/python/bindings/ya.make.test.inc b/yql/essentials/udfs/common/python/bindings/ya.make.test.inc index 036c72bc147..67803ad18f4 100644 --- a/yql/essentials/udfs/common/python/bindings/ya.make.test.inc +++ b/yql/essentials/udfs/common/python/bindings/ya.make.test.inc @@ -1,5 +1,3 @@ -ENABLE(YQL_STYLE_CPP) - SRCS( py_callable_ut.cpp py_cast_ut.cpp diff --git a/yql/essentials/udfs/common/python/main_py3/ya.make b/yql/essentials/udfs/common/python/main_py3/ya.make index 1b2dc5b61bd..7bbb4d0f304 100644 --- a/yql/essentials/udfs/common/python/main_py3/ya.make +++ b/yql/essentials/udfs/common/python/main_py3/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - USE_PYTHON3() ADDINCL( diff --git a/yql/essentials/udfs/common/python/python_udf/ya.make b/yql/essentials/udfs/common/python/python_udf/ya.make index 41f4514dfd0..4617a997110 100644 --- a/yql/essentials/udfs/common/python/python_udf/ya.make +++ b/yql/essentials/udfs/common/python/python_udf/ya.make @@ -2,8 +2,6 @@ PY23_NATIVE_LIBRARY() YQL_ABI_VERSION(2 44 0) -ENABLE(YQL_STYLE_CPP) - SRCS( python_udf.cpp ) diff --git a/yql/essentials/udfs/common/re2/ya.make b/yql/essentials/udfs/common/re2/ya.make index 895f75bd6cc..a6973064d07 100644 --- a/yql/essentials/udfs/common/re2/ya.make +++ b/yql/essentials/udfs/common/re2/ya.make @@ -6,8 +6,6 @@ YQL_UDF_CONTRIB(re2_udf) 0 ) - ENABLE(YQL_STYLE_CPP) - SRCS( re2_udf.cpp ) diff --git a/yql/essentials/udfs/common/set/ya.make b/yql/essentials/udfs/common/set/ya.make index 21a51dba968..40c65dde04b 100644 --- a/yql/essentials/udfs/common/set/ya.make +++ b/yql/essentials/udfs/common/set/ya.make @@ -6,8 +6,6 @@ YQL_UDF_CONTRIB(set_udf) 0 ) - ENABLE(YQL_STYLE_CPP) - SRCS( set_udf.cpp ) diff --git a/yql/essentials/udfs/common/stat/static/ya.make b/yql/essentials/udfs/common/stat/static/ya.make index 892e8a34e93..f3cc7842eea 100644 --- a/yql/essentials/udfs/common/stat/static/ya.make +++ b/yql/essentials/udfs/common/stat/static/ya.make @@ -6,8 +6,6 @@ YQL_ABI_VERSION( 0 ) -ENABLE(YQL_STYLE_CPP) - SRCS( static_udf.cpp stat_udf.h diff --git a/yql/essentials/udfs/common/stat/ut/ya.make b/yql/essentials/udfs/common/stat/ut/ya.make index 1ab9bbb1432..fdce51cbdfb 100644 --- a/yql/essentials/udfs/common/stat/ut/ya.make +++ b/yql/essentials/udfs/common/stat/ut/ya.make @@ -1,7 +1,5 @@ UNITTEST_FOR(yql/essentials/udfs/common/stat/static) -ENABLE(YQL_STYLE_CPP) - SRCS( ../stat_udf_ut.cpp ) diff --git a/yql/essentials/udfs/common/stat/ya.make b/yql/essentials/udfs/common/stat/ya.make index 8d7535044aa..dae97548910 100644 --- a/yql/essentials/udfs/common/stat/ya.make +++ b/yql/essentials/udfs/common/stat/ya.make @@ -6,8 +6,6 @@ YQL_UDF_CONTRIB(stat_udf) 0 ) - ENABLE(YQL_STYLE_CPP) - SRCS( stat_udf.cpp ) diff --git a/yql/essentials/udfs/common/streaming/ya.make b/yql/essentials/udfs/common/streaming/ya.make index 320490adcd2..9b080a7f86f 100644 --- a/yql/essentials/udfs/common/streaming/ya.make +++ b/yql/essentials/udfs/common/streaming/ya.make @@ -6,8 +6,6 @@ YQL_ABI_VERSION( 0 ) -ENABLE(YQL_STYLE_CPP) - SRCS( streaming_udf.cpp ) diff --git a/yql/essentials/udfs/common/string/ya.make b/yql/essentials/udfs/common/string/ya.make index 1f8c6d4926d..cfea8c71d15 100644 --- a/yql/essentials/udfs/common/string/ya.make +++ b/yql/essentials/udfs/common/string/ya.make @@ -6,8 +6,6 @@ YQL_UDF_CONTRIB(string_udf) 0 ) - ENABLE(YQL_STYLE_CPP) - SRCS( string_udf.cpp ) diff --git a/yql/essentials/udfs/common/top/ya.make b/yql/essentials/udfs/common/top/ya.make index f0818f2b34d..2b4439e0577 100644 --- a/yql/essentials/udfs/common/top/ya.make +++ b/yql/essentials/udfs/common/top/ya.make @@ -6,8 +6,6 @@ YQL_UDF_CONTRIB(top_udf) 0 ) - ENABLE(YQL_STYLE_CPP) - SRCS( top_udf.cpp ) diff --git a/yql/essentials/udfs/common/topfreq/static/ya.make b/yql/essentials/udfs/common/topfreq/static/ya.make index 94379d474a9..95838f33c49 100644 --- a/yql/essentials/udfs/common/topfreq/static/ya.make +++ b/yql/essentials/udfs/common/topfreq/static/ya.make @@ -6,8 +6,6 @@ YQL_ABI_VERSION( 0 ) -ENABLE(YQL_STYLE_CPP) - SRCS( static_udf.cpp topfreq.cpp diff --git a/yql/essentials/udfs/common/topfreq/ut/ya.make b/yql/essentials/udfs/common/topfreq/ut/ya.make index 3d0b1b859a8..142aea4ebfd 100644 --- a/yql/essentials/udfs/common/topfreq/ut/ya.make +++ b/yql/essentials/udfs/common/topfreq/ut/ya.make @@ -1,7 +1,5 @@ UNITTEST_FOR(yql/essentials/udfs/common/topfreq/static) -ENABLE(YQL_STYLE_CPP) - SRCS( ../topfreq_udf_ut.cpp ) diff --git a/yql/essentials/udfs/common/topfreq/ya.make b/yql/essentials/udfs/common/topfreq/ya.make index 3871d8f13ad..2c91204fed6 100644 --- a/yql/essentials/udfs/common/topfreq/ya.make +++ b/yql/essentials/udfs/common/topfreq/ya.make @@ -5,8 +5,6 @@ YQL_UDF_CONTRIB(topfreq_udf) 28 0 ) - - ENABLE(YQL_STYLE_CPP) SRCS( topfreq_udf.cpp diff --git a/yql/essentials/udfs/common/unicode_base/lib/ya.make b/yql/essentials/udfs/common/unicode_base/lib/ya.make index 7ca562aef02..2fda0829667 100644 --- a/yql/essentials/udfs/common/unicode_base/lib/ya.make +++ b/yql/essentials/udfs/common/unicode_base/lib/ya.make @@ -6,8 +6,6 @@ YQL_ABI_VERSION( 0 ) -ENABLE(YQL_STYLE_CPP) - SRCS( unicode_base_udf.cpp ) diff --git a/yql/essentials/udfs/common/unicode_base/ya.make b/yql/essentials/udfs/common/unicode_base/ya.make index 0540c0593b5..271fdd46c7f 100644 --- a/yql/essentials/udfs/common/unicode_base/ya.make +++ b/yql/essentials/udfs/common/unicode_base/ya.make @@ -6,8 +6,6 @@ YQL_UDF_CONTRIB(unicode_udf) 0 ) - ENABLE(YQL_STYLE_CPP) - SRCS( unicode_base.cpp ) diff --git a/yql/essentials/udfs/common/url_base/lib/ya.make b/yql/essentials/udfs/common/url_base/lib/ya.make index 51a55865bd4..9887842303b 100644 --- a/yql/essentials/udfs/common/url_base/lib/ya.make +++ b/yql/essentials/udfs/common/url_base/lib/ya.make @@ -6,8 +6,6 @@ YQL_ABI_VERSION( 0 ) -ENABLE(YQL_STYLE_CPP) - SRCS( url_base_udf.cpp url_parse.cpp diff --git a/yql/essentials/udfs/common/url_base/ya.make b/yql/essentials/udfs/common/url_base/ya.make index 79c7c9bead6..dc1a65054c3 100644 --- a/yql/essentials/udfs/common/url_base/ya.make +++ b/yql/essentials/udfs/common/url_base/ya.make @@ -6,8 +6,6 @@ YQL_UDF_CONTRIB(url_udf) 0 ) - ENABLE(YQL_STYLE_CPP) - SRCS( url_base.cpp ) diff --git a/yql/essentials/udfs/common/vector/ya.make b/yql/essentials/udfs/common/vector/ya.make index 342065cbaff..a1403f62a61 100644 --- a/yql/essentials/udfs/common/vector/ya.make +++ b/yql/essentials/udfs/common/vector/ya.make @@ -6,8 +6,6 @@ YQL_ABI_VERSION( 0 ) -ENABLE(YQL_STYLE_CPP) - SRCS( vector_udf.cpp ) diff --git a/yql/essentials/udfs/common/yson2/ya.make b/yql/essentials/udfs/common/yson2/ya.make index cfcb7334c29..b2e66fdaf2a 100644 --- a/yql/essentials/udfs/common/yson2/ya.make +++ b/yql/essentials/udfs/common/yson2/ya.make @@ -6,8 +6,6 @@ YQL_UDF_CONTRIB(yson2_udf) 0 ) - ENABLE(YQL_STYLE_CPP) - SRCS( yson2_udf.cpp ) diff --git a/yql/essentials/udfs/examples/callables/ya.make b/yql/essentials/udfs/examples/callables/ya.make index 67b6cecbb68..63e19657996 100644 --- a/yql/essentials/udfs/examples/callables/ya.make +++ b/yql/essentials/udfs/examples/callables/ya.make @@ -1,8 +1,6 @@ YQL_UDF_CONTRIB(callables_udf) YQL_ABI_VERSION(2 38 0) -ENABLE(YQL_STYLE_CPP) - SRCS( callables_udf.cpp ) diff --git a/yql/essentials/udfs/examples/dicts/ya.make b/yql/essentials/udfs/examples/dicts/ya.make index f7a7ff40c85..4dd62e36e9d 100644 --- a/yql/essentials/udfs/examples/dicts/ya.make +++ b/yql/essentials/udfs/examples/dicts/ya.make @@ -1,8 +1,6 @@ YQL_UDF_CONTRIB(dicts_udf) YQL_ABI_VERSION(2 9 0) -ENABLE(YQL_STYLE_CPP) - SRCS( dicts_udf.cpp ) diff --git a/yql/essentials/udfs/examples/dummylog/ya.make b/yql/essentials/udfs/examples/dummylog/ya.make index 2a74a5767e9..d1acd15945b 100644 --- a/yql/essentials/udfs/examples/dummylog/ya.make +++ b/yql/essentials/udfs/examples/dummylog/ya.make @@ -1,8 +1,6 @@ YQL_UDF_CONTRIB(dummylog) YQL_ABI_VERSION(2 9 0) -ENABLE(YQL_STYLE_CPP) - SRCS( dummylog_udf.cpp ) diff --git a/yql/essentials/udfs/examples/linear/ya.make b/yql/essentials/udfs/examples/linear/ya.make index fb38acaf8f6..961bc48b82e 100644 --- a/yql/essentials/udfs/examples/linear/ya.make +++ b/yql/essentials/udfs/examples/linear/ya.make @@ -1,8 +1,6 @@ YQL_UDF(linear_udf) YQL_ABI_VERSION(2 44 0) -ENABLE(YQL_STYLE_CPP) - SRCS( linear_udf.cpp ) diff --git a/yql/essentials/udfs/examples/lists/ya.make b/yql/essentials/udfs/examples/lists/ya.make index dac2ee92dd9..3fa002c7800 100644 --- a/yql/essentials/udfs/examples/lists/ya.make +++ b/yql/essentials/udfs/examples/lists/ya.make @@ -1,8 +1,6 @@ YQL_UDF_CONTRIB(lists_udf) YQL_ABI_VERSION(2 9 0) -ENABLE(YQL_STYLE_CPP) - SRCS( lists_udf.cpp ) diff --git a/yql/essentials/udfs/examples/structs/ya.make b/yql/essentials/udfs/examples/structs/ya.make index 00dacb1545a..2339cf0b272 100644 --- a/yql/essentials/udfs/examples/structs/ya.make +++ b/yql/essentials/udfs/examples/structs/ya.make @@ -1,8 +1,6 @@ YQL_UDF_CONTRIB(structs_udf) YQL_ABI_VERSION(2 9 0) -ENABLE(YQL_STYLE_CPP) - SRCS( structs_udf.cpp ) diff --git a/yql/essentials/udfs/examples/tagged/ya.make b/yql/essentials/udfs/examples/tagged/ya.make index 7209cbfbe56..2afb4f4d42e 100644 --- a/yql/essentials/udfs/examples/tagged/ya.make +++ b/yql/essentials/udfs/examples/tagged/ya.make @@ -1,8 +1,6 @@ YQL_UDF_CONTRIB(tagged_udf) YQL_ABI_VERSION(2 21 0) -ENABLE(YQL_STYLE_CPP) - SRCS( tagged_udf.cpp ) diff --git a/yql/essentials/udfs/examples/type_inspection/ya.make b/yql/essentials/udfs/examples/type_inspection/ya.make index bbe8e26e0ae..7ce6c1b26dc 100644 --- a/yql/essentials/udfs/examples/type_inspection/ya.make +++ b/yql/essentials/udfs/examples/type_inspection/ya.make @@ -1,8 +1,6 @@ YQL_UDF_CONTRIB(type_inspection_udf) YQL_ABI_VERSION(2 9 0) -ENABLE(YQL_STYLE_CPP) - SRCS( type_inspection_udf.cpp ) diff --git a/yql/essentials/udfs/language/yql/ya.make b/yql/essentials/udfs/language/yql/ya.make index b9e673a7538..e0c16d6f5da 100644 --- a/yql/essentials/udfs/language/yql/ya.make +++ b/yql/essentials/udfs/language/yql/ya.make @@ -8,8 +8,6 @@ YQL_ABI_VERSION( 0 ) -ENABLE(YQL_STYLE_CPP) - SUBSCRIBER(g:yql) SRCS( diff --git a/yql/essentials/udfs/logs/dsv/ya.make b/yql/essentials/udfs/logs/dsv/ya.make index 54b7f5c6d0c..34e29294233 100644 --- a/yql/essentials/udfs/logs/dsv/ya.make +++ b/yql/essentials/udfs/logs/dsv/ya.make @@ -6,8 +6,6 @@ YQL_ABI_VERSION( 0 ) -ENABLE(YQL_STYLE_CPP) - PEERDIR( library/cpp/deprecated/split ) diff --git a/yql/essentials/udfs/test/simple/ya.make b/yql/essentials/udfs/test/simple/ya.make index 5bef9c94891..1d045c9ef98 100644 --- a/yql/essentials/udfs/test/simple/ya.make +++ b/yql/essentials/udfs/test/simple/ya.make @@ -1,8 +1,6 @@ YQL_UDF_CONTRIB(simple_udf) YQL_ABI_VERSION(2 42 0) -ENABLE(YQL_STYLE_CPP) - SRCS( simple_udf.cpp ) diff --git a/yql/essentials/udfs/test/test_import/ya.make b/yql/essentials/udfs/test/test_import/ya.make index f6ccf6c65f2..1adb06149f1 100644 --- a/yql/essentials/udfs/test/test_import/ya.make +++ b/yql/essentials/udfs/test/test_import/ya.make @@ -1,8 +1,6 @@ YQL_UDF_CONTRIB(test_import_udf) YQL_ABI_VERSION(2 9 0) -ENABLE(YQL_STYLE_CPP) - SRCS( test_import_udf.cpp ) diff --git a/yql/essentials/utils/backtrace/ut/ya.make b/yql/essentials/utils/backtrace/ut/ya.make index f81359303ce..429f7b4752d 100644 --- a/yql/essentials/utils/backtrace/ut/ya.make +++ b/yql/essentials/utils/backtrace/ut/ya.make @@ -1,7 +1,5 @@ UNITTEST_FOR(yql/essentials/utils/backtrace) -ENABLE(YQL_STYLE_CPP) - IF (OS_LINUX AND ARCH_X86_64) SRCS( backtrace_ut.cpp diff --git a/yql/essentials/utils/backtrace/ya.make b/yql/essentials/utils/backtrace/ya.make index c9457e772b7..4c55dd4674b 100644 --- a/yql/essentials/utils/backtrace/ya.make +++ b/yql/essentials/utils/backtrace/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( backtrace.cpp backtrace_lib.cpp diff --git a/yql/essentials/utils/docs/ut/ya.make b/yql/essentials/utils/docs/ut/ya.make index 72c013d9e29..3afe8f60aa8 100644 --- a/yql/essentials/utils/docs/ut/ya.make +++ b/yql/essentials/utils/docs/ut/ya.make @@ -1,7 +1,5 @@ UNITTEST_FOR(yql/essentials/utils/docs) -ENABLE(YQL_STYLE_CPP) - SRCS( markdown_ut.cpp page_ut.cpp diff --git a/yql/essentials/utils/docs/ya.make b/yql/essentials/utils/docs/ya.make index 40cc3862c93..6f828c1434b 100644 --- a/yql/essentials/utils/docs/ya.make +++ b/yql/essentials/utils/docs/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( link_page.cpp link.cpp diff --git a/yql/essentials/utils/failure_injector/ut/ya.make b/yql/essentials/utils/failure_injector/ut/ya.make index 2b9138f378c..579a4662872 100644 --- a/yql/essentials/utils/failure_injector/ut/ya.make +++ b/yql/essentials/utils/failure_injector/ut/ya.make @@ -1,8 +1,6 @@ IF (OS_LINUX OR OS_DARWIN) UNITTEST_FOR(yql/essentials/utils/failure_injector) - ENABLE(YQL_STYLE_CPP) - SIZE(SMALL) SRCS( diff --git a/yql/essentials/utils/failure_injector/ya.make b/yql/essentials/utils/failure_injector/ya.make index a7f969d4b67..e10dfdaecba 100644 --- a/yql/essentials/utils/failure_injector/ya.make +++ b/yql/essentials/utils/failure_injector/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( failure_injector.cpp ) diff --git a/yql/essentials/utils/fetch/ya.make b/yql/essentials/utils/fetch/ya.make index 337496a541d..71b7d54d501 100644 --- a/yql/essentials/utils/fetch/ya.make +++ b/yql/essentials/utils/fetch/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( fetch.cpp ) diff --git a/yql/essentials/utils/log/ut/ya.make b/yql/essentials/utils/log/ut/ya.make index 3732c3f1ebc..a78d4e0601b 100644 --- a/yql/essentials/utils/log/ut/ya.make +++ b/yql/essentials/utils/log/ut/ya.make @@ -1,7 +1,5 @@ UNITTEST_FOR(yql/essentials/utils/log) -ENABLE(YQL_STYLE_CPP) - SRCS( log_parser.cpp log_ut.cpp diff --git a/yql/essentials/utils/log/ya.make b/yql/essentials/utils/log/ya.make index 2a0d3dc3a4a..540b524c5eb 100644 --- a/yql/essentials/utils/log/ya.make +++ b/yql/essentials/utils/log/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( context.cpp format.cpp diff --git a/yql/essentials/utils/memory_profiling/ya.make b/yql/essentials/utils/memory_profiling/ya.make index 2b74947d5b8..3e728ecbb83 100644 --- a/yql/essentials/utils/memory_profiling/ya.make +++ b/yql/essentials/utils/memory_profiling/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - IF (PROFILE_MEMORY_ALLOCATIONS) CFLAGS(GLOBAL -DPROFILE_MEMORY_ALLOCATIONS) CFLAGS(GLOBAL -DALLOW_DEFAULT_ALLOCATOR) diff --git a/yql/essentials/utils/network/ya.make b/yql/essentials/utils/network/ya.make index b123808aa48..282e1502b3c 100644 --- a/yql/essentials/utils/network/ya.make +++ b/yql/essentials/utils/network/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( bind_in_range.cpp bind_in_range.h diff --git a/yql/essentials/utils/oom_helper/ya.make b/yql/essentials/utils/oom_helper/ya.make index bc8dfa4d1d3..6049debee44 100644 --- a/yql/essentials/utils/oom_helper/ya.make +++ b/yql/essentials/utils/oom_helper/ya.make @@ -1,5 +1,4 @@ IF (OS_LINUX) - ENABLE(YQL_STYLE_CPP) LIBRARY(oom_helper) SRCS(inject.cpp) END() diff --git a/yql/essentials/utils/signals/ya.make b/yql/essentials/utils/signals/ya.make index 8d69ae7c088..9a2ab2d0204 100644 --- a/yql/essentials/utils/signals/ya.make +++ b/yql/essentials/utils/signals/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( signals.cpp signals.h diff --git a/yql/essentials/utils/sys/ya.make b/yql/essentials/utils/sys/ya.make index b1d6f8be96c..698aeb8ba8c 100644 --- a/yql/essentials/utils/sys/ya.make +++ b/yql/essentials/utils/sys/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( become_user.h become_user_dummy.cpp diff --git a/yql/essentials/utils/test_http_server/ya.make b/yql/essentials/utils/test_http_server/ya.make index 9f4b1b02d0b..41c6710c5f9 100644 --- a/yql/essentials/utils/test_http_server/ya.make +++ b/yql/essentials/utils/test_http_server/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( test_http_server.cpp ) diff --git a/yql/essentials/utils/threading/ya.make b/yql/essentials/utils/threading/ya.make index c68c12323ea..d1cd6291a70 100644 --- a/yql/essentials/utils/threading/ya.make +++ b/yql/essentials/utils/threading/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( async_queue.cpp ) diff --git a/yql/essentials/utils/ut/ya.make b/yql/essentials/utils/ut/ya.make index 8bc04c8be60..30639f4c11f 100644 --- a/yql/essentials/utils/ut/ya.make +++ b/yql/essentials/utils/ut/ya.make @@ -1,7 +1,5 @@ UNITTEST_FOR(yql/essentials/utils) -ENABLE(YQL_STYLE_CPP) - SRCS( checkpoint_map_ut.cpp fp_bits_ut.cpp diff --git a/yql/essentials/utils/ya.make b/yql/essentials/utils/ya.make index 4c42d50206a..1797655ae68 100644 --- a/yql/essentials/utils/ya.make +++ b/yql/essentials/utils/ya.make @@ -1,7 +1,5 @@ LIBRARY() -ENABLE(YQL_STYLE_CPP) - SRCS( cast.h checkpoint_map.cpp |
