mirror of
https://github.com/apache/datafusion-sqlparser-rs.git
synced 2025-10-09 21:42:05 +00:00
Add support for MSSQL's SELECT TOP N syntax (#150)
Add support for MSSQL SELECT TOP (N) [PERCENT] [WITH TIES] syntax.
This commit is contained in:
parent
4cdd6e2f84
commit
172ba42001
7 changed files with 126 additions and 10 deletions
|
@ -68,6 +68,48 @@ fn parse_mssql_apply_join() {
|
|||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
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!(!top.percent);
|
||||
}
|
||||
|
||||
#[test]
|
||||
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!(top.percent);
|
||||
}
|
||||
|
||||
#[test]
|
||||
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!(top.with_ties);
|
||||
}
|
||||
|
||||
#[test]
|
||||
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!(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");
|
||||
}
|
||||
|
||||
fn ms() -> TestedDialects {
|
||||
TestedDialects {
|
||||
dialects: vec![Box::new(MsSqlDialect {})],
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue