mirror of
https://github.com/apache/datafusion-sqlparser-rs.git
synced 2025-08-18 05:00:16 +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
|
@ -522,6 +522,7 @@ fn peeking_take_while(
|
|||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::super::dialect::GenericDialect;
|
||||
use super::super::dialect::MsSqlDialect;
|
||||
use super::*;
|
||||
|
||||
#[test]
|
||||
|
@ -782,6 +783,28 @@ mod tests {
|
|||
compare(expected, tokens);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn tokenize_mssql_top() {
|
||||
let sql = "SELECT TOP 5 [bar] FROM foo";
|
||||
let dialect = MsSqlDialect {};
|
||||
let mut tokenizer = Tokenizer::new(&dialect, sql);
|
||||
let tokens = tokenizer.tokenize().unwrap();
|
||||
let expected = vec![
|
||||
Token::make_keyword("SELECT"),
|
||||
Token::Whitespace(Whitespace::Space),
|
||||
Token::make_keyword("TOP"),
|
||||
Token::Whitespace(Whitespace::Space),
|
||||
Token::Number(String::from("5")),
|
||||
Token::Whitespace(Whitespace::Space),
|
||||
Token::make_word("bar", Some('[')),
|
||||
Token::Whitespace(Whitespace::Space),
|
||||
Token::make_keyword("FROM"),
|
||||
Token::Whitespace(Whitespace::Space),
|
||||
Token::make_word("foo", None),
|
||||
];
|
||||
compare(expected, tokens);
|
||||
}
|
||||
|
||||
fn compare(expected: Vec<Token>, actual: Vec<Token>) {
|
||||
//println!("------------------------------");
|
||||
//println!("tokens = {:?}", actual);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue