diff options
author | vvvv <[email protected]> | 2025-02-21 21:51:34 +0300 |
---|---|---|
committer | vvvv <[email protected]> | 2025-02-21 22:33:18 +0300 |
commit | a3da80a1d278964b44086f8b500ed09bad0f165f (patch) | |
tree | 368b6985119a89ba99279100dbb8adf7f4bda951 /yql/essentials/sql/v1/sql_select.cpp | |
parent | 005b8a9fd31e325164fdaad9ccde51222d9dc1c7 (diff) |
YQL-19129 soft WITHOUT
commit_hash:563aebc32ae87bc18e5e3e38babc034e5e89e2c1
Diffstat (limited to 'yql/essentials/sql/v1/sql_select.cpp')
-rw-r--r-- | yql/essentials/sql/v1/sql_select.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/yql/essentials/sql/v1/sql_select.cpp b/yql/essentials/sql/v1/sql_select.cpp index c27aa8f126a..52dd399a990 100644 --- a/yql/essentials/sql/v1/sql_select.cpp +++ b/yql/essentials/sql/v1/sql_select.cpp @@ -1027,8 +1027,10 @@ TSourcePtr TSqlSelect::SelectCore(const TRule_select_core& node, const TWriteSet const bool selectStream = node.HasBlock3(); TVector<TNodePtr> without; + bool forceWithout = false; if (node.HasBlock8()) { - if (!ColumnList(without, node.GetBlock8().GetRule_without_column_list2())) { + forceWithout = node.GetBlock8().HasBlock2(); + if (!ColumnList(without, node.GetBlock8().GetRule_without_column_list3())) { return nullptr; } } @@ -1167,7 +1169,7 @@ TSourcePtr TSqlSelect::SelectCore(const TRule_select_core& node, const TWriteSet return nullptr; } return BuildSelectCore(Ctx, startPos, std::move(source), groupByExpr, groupBy, compactGroupBy, groupBySuffix, assumeSorted, orderBy, having, - std::move(windowSpec), legacyHoppingWindowSpec, std::move(terms), distinct, std::move(without), selectStream, settings, std::move(uniqueSets), std::move(distinctSets)); + std::move(windowSpec), legacyHoppingWindowSpec, std::move(terms), distinct, std::move(without), forceWithout, selectStream, settings, std::move(uniqueSets), std::move(distinctSets)); } bool TSqlSelect::WindowDefinition(const TRule_window_definition& rule, TWinSpecs& winSpecs) { @@ -1421,6 +1423,7 @@ TSourcePtr TSqlSelect::Build(const TRule& node, TPosition pos, TSelectKindResult TLegacyHoppingWindowSpecPtr legacyHoppingWindowSpec; bool distinct = false; TVector<TNodePtr> without; + bool forceWithout = false; bool stream = false; TVector<TNodePtr> terms; @@ -1428,7 +1431,7 @@ TSourcePtr TSqlSelect::Build(const TRule& node, TPosition pos, TSelectKindResult result = BuildSelectCore(Ctx, unionPos, std::move(result), groupByExpr, groupBy, compactGroupBy, groupBySuffix, assumeOrderBy, orderBy, having, std::move(winSpecs), legacyHoppingWindowSpec, std::move(terms), - distinct, std::move(without), stream, outermostSettings, {}, {}); + distinct, std::move(without), forceWithout, stream, outermostSettings, {}, {}); result = BuildSelect(unionPos, std::move(result), skipTake); } else if (skipTake) { |