diff options
| author | vityaman <[email protected]> | 2025-04-28 13:29:56 +0300 |
|---|---|---|
| committer | robot-piglet <[email protected]> | 2025-04-28 13:52:54 +0300 |
| commit | 3dfd8d9b20fe8902588dc35edb24423fbf165917 (patch) | |
| tree | a8b60cdc571429507117e606d3884fe51c5c2be7 /yql/essentials/sql | |
| parent | 120f812d3c6f1733092dd24568525d1663230a67 (diff) | |
YQL-19747 Use TMaybe
Just replaced `std::optional` usages with `TMaybe` to prevent this refactoring noise in future PRs.
---
- Related to `YQL-19747`
- Related to https://github.com/ydb-platform/ydb/issues/9056
---
Pull Request resolved: https://github.com/ytsaurus/ytsaurus/pull/1247
commit_hash:dca8a6849e5ba9cb614d8350996f9423a1dc2373
Diffstat (limited to 'yql/essentials/sql')
5 files changed, 22 insertions, 18 deletions
diff --git a/yql/essentials/sql/v1/complete/name/service/name_service.h b/yql/essentials/sql/v1/complete/name/service/name_service.h index 58cb1485c3b..d71b2518bd0 100644 --- a/yql/essentials/sql/v1/complete/name/service/name_service.h +++ b/yql/essentials/sql/v1/complete/name/service/name_service.h @@ -6,6 +6,7 @@ #include <util/generic/vector.h> #include <util/generic/string.h> +#include <util/generic/maybe.h> namespace NSQLComplete { @@ -51,10 +52,10 @@ namespace NSQLComplete { struct TNameRequest { TVector<TString> Keywords; struct { - std::optional<TPragmaName::TConstraints> Pragma; - std::optional<TTypeName::TConstraints> Type; - std::optional<TFunctionName::TConstraints> Function; - std::optional<THintName::TConstraints> Hint; + TMaybe<TPragmaName::TConstraints> Pragma; + TMaybe<TTypeName::TConstraints> Type; + TMaybe<TFunctionName::TConstraints> Function; + TMaybe<THintName::TConstraints> Hint; } Constraints; TString Prefix = ""; size_t Limit = 128; diff --git a/yql/essentials/sql/v1/complete/syntax/local.cpp b/yql/essentials/sql/v1/complete/syntax/local.cpp index a1e41ee50a2..c434fa28daf 100644 --- a/yql/essentials/sql/v1/complete/syntax/local.cpp +++ b/yql/essentials/sql/v1/complete/syntax/local.cpp @@ -121,10 +121,10 @@ namespace NSQLComplete { return keywords; } - std::optional<TLocalSyntaxContext::TPragma> PragmaMatch( + TMaybe<TLocalSyntaxContext::TPragma> PragmaMatch( const TParsedTokenList& tokens, const TC3Candidates& candidates) { if (!AnyOf(candidates.Rules, RuleAdapted(IsLikelyPragmaStack))) { - return std::nullopt; + return Nothing(); } TLocalSyntaxContext::TPragma pragma; @@ -140,10 +140,10 @@ namespace NSQLComplete { return AnyOf(candidates.Rules, RuleAdapted(IsLikelyTypeStack)); } - std::optional<TLocalSyntaxContext::TFunction> FunctionMatch( + TMaybe<TLocalSyntaxContext::TFunction> FunctionMatch( const TParsedTokenList& tokens, const TC3Candidates& candidates) { if (!AnyOf(candidates.Rules, RuleAdapted(IsLikelyFunctionStack))) { - return std::nullopt; + return Nothing(); } TLocalSyntaxContext::TFunction function; @@ -155,16 +155,16 @@ namespace NSQLComplete { return function; } - std::optional<TLocalSyntaxContext::THint> HintMatch(const TC3Candidates& candidates) { + TMaybe<TLocalSyntaxContext::THint> HintMatch(const TC3Candidates& candidates) { // TODO(YQL-19747): detect local contexts with a single iteration through the candidates.Rules auto rule = FindIf(candidates.Rules, RuleAdapted(IsLikelyHintStack)); if (rule == std::end(candidates.Rules)) { - return std::nullopt; + return Nothing(); } auto stmt = StatementKindOf(rule->ParserCallStack); - if (stmt == std::nullopt) { - return std::nullopt; + if (stmt.Empty()) { + return Nothing(); } return TLocalSyntaxContext::THint{ diff --git a/yql/essentials/sql/v1/complete/syntax/local.h b/yql/essentials/sql/v1/complete/syntax/local.h index 28bd283bab1..d58b62c62cd 100644 --- a/yql/essentials/sql/v1/complete/syntax/local.h +++ b/yql/essentials/sql/v1/complete/syntax/local.h @@ -6,6 +6,7 @@ #include <util/generic/string.h> #include <util/generic/hash.h> +#include <util/generic/maybe.h> namespace NSQLComplete { @@ -25,10 +26,10 @@ namespace NSQLComplete { }; TKeywords Keywords; - std::optional<TPragma> Pragma; + TMaybe<TPragma> Pragma; bool IsTypeName = false; - std::optional<TFunction> Function; - std::optional<THint> Hint; + TMaybe<TFunction> Function; + TMaybe<THint> Hint; }; class ILocalSyntaxAnalysis { diff --git a/yql/essentials/sql/v1/complete/syntax/parser_call_stack.cpp b/yql/essentials/sql/v1/complete/syntax/parser_call_stack.cpp index cdd284b0ad4..938483438b1 100644 --- a/yql/essentials/sql/v1/complete/syntax/parser_call_stack.cpp +++ b/yql/essentials/sql/v1/complete/syntax/parser_call_stack.cpp @@ -101,7 +101,7 @@ namespace NSQLComplete { Contains({RULE(External_call_param), RULE(An_id)}, stack); } - std::optional<EStatementKind> StatementKindOf(const TParserCallStack& stack) { + TMaybe<EStatementKind> StatementKindOf(const TParserCallStack& stack) { for (TRuleId rule : std::ranges::views::reverse(stack)) { if (rule == RULE(Process_core) || rule == RULE(Reduce_core) || rule == RULE(Select_core)) { return EStatementKind::Select; @@ -110,7 +110,7 @@ namespace NSQLComplete { return EStatementKind::Insert; } } - return std::nullopt; + return Nothing(); } std::unordered_set<TRuleId> GetC3PreferredRules() { diff --git a/yql/essentials/sql/v1/complete/syntax/parser_call_stack.h b/yql/essentials/sql/v1/complete/syntax/parser_call_stack.h index 98738728231..d185b72d628 100644 --- a/yql/essentials/sql/v1/complete/syntax/parser_call_stack.h +++ b/yql/essentials/sql/v1/complete/syntax/parser_call_stack.h @@ -3,6 +3,8 @@ #include <yql/essentials/sql/v1/complete/antlr4/defs.h> #include <yql/essentials/sql/v1/complete/core/statement.h> +#include <util/generic/maybe.h> + namespace NSQLComplete { bool IsLikelyPragmaStack(const TParserCallStack& stack); @@ -13,7 +15,7 @@ namespace NSQLComplete { bool IsLikelyHintStack(const TParserCallStack& stack); - std::optional<EStatementKind> StatementKindOf(const TParserCallStack& stack); + TMaybe<EStatementKind> StatementKindOf(const TParserCallStack& stack); std::unordered_set<TRuleId> GetC3PreferredRules(); |
