mirror of
https://github.com/apache/datafusion-sqlparser-rs.git
synced 2025-08-09 00:38:02 +00:00
Correction on prev_token, the index should decremented
This commit is contained in:
parent
3fe6fa4041
commit
7d27abdfb4
1 changed files with 15 additions and 1 deletions
|
@ -266,7 +266,8 @@ impl Parser {
|
||||||
/// Get the previous token and decrement the token index
|
/// Get the previous token and decrement the token index
|
||||||
pub fn prev_token(&mut self) -> Option<Token> {
|
pub fn prev_token(&mut self) -> Option<Token> {
|
||||||
if self.index > 0 {
|
if self.index > 0 {
|
||||||
Some(self.tokens[self.index - 1].clone())
|
self.index = self.index - 1;
|
||||||
|
Some(self.tokens[self.index].clone())
|
||||||
} else {
|
} else {
|
||||||
None
|
None
|
||||||
}
|
}
|
||||||
|
@ -622,6 +623,19 @@ mod tests {
|
||||||
use super::super::dialect::GenericSqlDialect;
|
use super::super::dialect::GenericSqlDialect;
|
||||||
use super::*;
|
use super::*;
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_prev_index(){
|
||||||
|
let sql: &str = "SELECT version()";
|
||||||
|
let mut tokenizer = Tokenizer::new(&GenericSqlDialect{}, &sql);
|
||||||
|
let tokens = tokenizer.tokenize().expect("error tokenizing");
|
||||||
|
let mut parser = Parser::new(tokens);
|
||||||
|
assert_eq!(parser.prev_token(), None);
|
||||||
|
assert_eq!(parser.next_token(), Some(Token::Keyword("SELECT".into())));
|
||||||
|
assert_eq!(parser.next_token(), Some(Token::Identifier("version".into())));
|
||||||
|
assert_eq!(parser.prev_token(), Some(Token::Identifier("version".into())));
|
||||||
|
assert_eq!(parser.prev_token(), Some(Token::Keyword("SELECT".into())));
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn parse_delete_statement() {
|
fn parse_delete_statement() {
|
||||||
let sql: &str = "DELETE FROM 'table'";
|
let sql: &str = "DELETE FROM 'table'";
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue