snowflake: fix rendering of SELECT TOP (#1070)

This commit is contained in:
Joey Hain 2023-12-22 10:43:31 -08:00 committed by GitHub
parent 1baec96685
commit 2950a843c3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 53 additions and 11 deletions

View file

@ -180,7 +180,10 @@ fn parse_mssql_top_paren() {
let sql = "SELECT TOP (5) * FROM foo";
let select = ms_and_generic().verified_only_select(sql);
let top = select.top.unwrap();
assert_eq!(Some(Expr::Value(number("5"))), top.quantity);
assert_eq!(
Some(TopQuantity::Expr(Expr::Value(number("5")))),
top.quantity
);
assert!(!top.percent);
}
@ -189,7 +192,10 @@ fn parse_mssql_top_percent() {
let sql = "SELECT TOP (5) PERCENT * FROM foo";
let select = ms_and_generic().verified_only_select(sql);
let top = select.top.unwrap();
assert_eq!(Some(Expr::Value(number("5"))), top.quantity);
assert_eq!(
Some(TopQuantity::Expr(Expr::Value(number("5")))),
top.quantity
);
assert!(top.percent);
}
@ -198,7 +204,10 @@ fn parse_mssql_top_with_ties() {
let sql = "SELECT TOP (5) WITH TIES * FROM foo";
let select = ms_and_generic().verified_only_select(sql);
let top = select.top.unwrap();
assert_eq!(Some(Expr::Value(number("5"))), top.quantity);
assert_eq!(
Some(TopQuantity::Expr(Expr::Value(number("5")))),
top.quantity
);
assert!(top.with_ties);
}
@ -207,14 +216,17 @@ fn parse_mssql_top_percent_with_ties() {
let sql = "SELECT TOP (10) PERCENT WITH TIES * FROM foo";
let select = ms_and_generic().verified_only_select(sql);
let top = select.top.unwrap();
assert_eq!(Some(Expr::Value(number("10"))), top.quantity);
assert_eq!(
Some(TopQuantity::Expr(Expr::Value(number("10")))),
top.quantity
);
assert!(top.percent);
}
#[test]
fn parse_mssql_top() {
let sql = "SELECT TOP 5 bar, baz FROM foo";
let _ = ms_and_generic().one_statement_parses_to(sql, "SELECT TOP (5) bar, baz FROM foo");
let _ = ms_and_generic().one_statement_parses_to(sql, "SELECT TOP 5 bar, baz FROM foo");
}
#[test]