summaryrefslogtreecommitdiffstats
path: root/yql/essentials/sql/v1/sql_select.cpp
diff options
context:
space:
mode:
authorvitya-smirnov <[email protected]>2025-08-11 17:06:05 +0300
committervitya-smirnov <[email protected]>2025-08-11 17:20:05 +0300
commit4c07961e6209762036c1cade4af1309db4b33225 (patch)
treef8539dd120fe60a1d1eb6af361fb3dbcd85bc138 /yql/essentials/sql/v1/sql_select.cpp
parent729f753bcbd9c9ea7bb243309eea9227bd394fca (diff)
YQL-20280: Warn on ASSUME ORDER BY usage after UNION
commit_hash:a9c400c784ed04924390abb11509664e6576a3b7
Diffstat (limited to 'yql/essentials/sql/v1/sql_select.cpp')
-rw-r--r--yql/essentials/sql/v1/sql_select.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/yql/essentials/sql/v1/sql_select.cpp b/yql/essentials/sql/v1/sql_select.cpp
index b2ae4916924..a846dff5483 100644
--- a/yql/essentials/sql/v1/sql_select.cpp
+++ b/yql/essentials/sql/v1/sql_select.cpp
@@ -1392,6 +1392,16 @@ TSourcePtr TSqlSelect::BuildStmt(const TRule& node, TPosition& pos) {
.Label = extra.Last.Settings.Label,
};
+ if (assumeOrderBy) {
+ YQL_ENSURE(!orderBy.empty());
+
+ Ctx_.Warning(orderBy[0]->OrderExpr->GetPos(), TIssuesIds::WARNING)
+ << "ASSUME ORDER BY is used, "
+ << "but UNION, INTERSECT and EXCEPT "
+ << "operators have no ordering guarantees, "
+ << "therefore consider using ORDER BY";
+ }
+
if (orderBy) {
TVector<TNodePtr> groupByExpr;
TVector<TNodePtr> groupBy;