From 807d5198b6a7ea28077658f473d4f7bbc549e1f5 Mon Sep 17 00:00:00 2001 From: Melody Ruch <396921921@qq.com> Date: Sun, 20 Sep 2026 19:11:43 +0800 Subject: [PATCH] test(sqlserver): cover set-op pagination with top-level order by --- crates/dbx-sql/src/query_result_sql.rs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/crates/dbx-sql/src/query_result_sql.rs b/crates/dbx-sql/src/query_result_sql.rs index d16d00e73a..a282ef6923 100644 --- a/crates/dbx-sql/src/query_result_sql.rs +++ b/crates/dbx-sql/src/query_result_sql.rs @@ -2667,6 +2667,22 @@ mod tests { } } + #[test] + fn keeps_top_level_order_by_when_paginating_sqlserver_set_operations() { + let original_sql = "SELECT id FROM a INTERSECT SELECT id FROM b ORDER BY id"; + let result = build_paginated_query_sql(PaginatedQuerySqlOptions { + original_sql: original_sql.to_string(), + database_type: Some(DatabaseType::SqlServer), + limit: 100, + offset: 0, + }); + + assert_eq!( + result.sql.unwrap(), + format!("EXEC sys.sp_executesql N'SET ROWCOUNT 100; {original_sql}'; /*__dbx_result_offset=0__*/") + ); + } + #[test] fn keeps_sqlserver_top_when_set_operator_is_only_inside_subquery() { let result = build_paginated_query_sql(PaginatedQuerySqlOptions {