ramnes opened a new issue, #2050:
URL: https://github.com/apache/datafusion-sqlparser-rs/issues/2050

   When using functions spans, it appears that sometimes the closing 
parenthesis is included, sometimes not.
   
   Consider the following test:
   
   ```rust
       #[test]
       fn test_function_span() {
           let sql = "SELECT database(), 
left(user(),instr(concat(user(),'@'),'@')-1);";
           let r = Parser::parse_sql(&crate::dialect::MySqlDialect {}, 
sql).unwrap();
   
           let query = match &r[0] {
               crate::ast::Statement::Query(q) => q,
               _ => panic!("Expected query"),
           };
   
           let select = match query.body.as_ref() {
               crate::ast::SetExpr::Select(s) => s,
               _ => panic!("Expected select"),
           };
   
           let database_func = match &select.projection[0] {
               
crate::ast::SelectItem::UnnamedExpr(crate::ast::Expr::Function(func)) => func,
               _ => panic!("Expected function expression"),
           };
           let span = database_func.span();
           assert_eq!(span.start, (1, 8).into());
           assert_eq!(span.end, (1, 17).into()); // fails here
   
           let left_func = match &select.projection[1] {
               
crate::ast::SelectItem::UnnamedExpr(crate::ast::Expr::Function(func)) => func,
               _ => panic!("Expected function expression"),
           };
           let span = left_func.span();
           assert_eq!(span.start, (1, 20).into());
           assert_eq!(span.end, (1, 63).into());
       }
   ```
   
   In both cases, we're testing if the closing parenthesis is included in the 
span. The first span test for `database_func` fails:
   
   ```diff
   Diff < left / right > :
   -Location(1,16)
   +Location(1,17)
   ```
   
   If I comment that part, the second pair of span assertions passes correctly.
   
   In other words, it seems that we only include closing parentheses for 
function calls with arguments, but not if there's no argument.
   
   Related: #1548 #1563 #1676


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to