• unknown's avatar
    Bug#21462 (Stored procedures with no arguments require parenthesis) · fd68a068
    unknown authored
    The syntax of the CALL statement, to invoke a stored procedure, has been
    changed to make the use of parenthesis optional in the argument list.
    With this change, "CALL p;" is equivalent to "CALL p();".
    
    While the SQL spec does not explicitely mandate this syntax, supporting it
    is needed for practical reasons, for integration with JDBC / ODBC connectors.
    
    Also, warnings in the sql/sql_yacc.yy file, which were not reported by Bison 2.1
    but are now reported by Bison 2.2, have been fixed.
    
    The warning found were:
    bison -y -p MYSQL  -d --debug --verbose sql_yacc.yy
    sql_yacc.yy:653.9-18: warning: symbol UNLOCK_SYM redeclared
    sql_yacc.yy:656.9-17: warning: symbol UNTIL_SYM redeclared
    sql_yacc.yy:658.9-18: warning: symbol UPDATE_SYM redeclared
    sql_yacc.yy:5169.11-5174.11: warning: unused value: $2
    sql_yacc.yy:5208.11-5220.11: warning: unused value: $5
    sql_yacc.yy:5221.11-5234.11: warning: unused value: $5
    conflicts: 249 shift/reduce
    
    "unused value: $2" correspond to the $$=$1 assignment in the 1st {} block
    in table_ref -> join_table {} {},
    which does not procude a result ($$) for the rule but an intermediate $2
    value for the action instead.
    "unused value: $5" are similar, with $$ assignments in {} actions blocks
    which are not for the final reduce.
    
    
    mysql-test/r/sp.result:
      New test case for Bug#21462
    mysql-test/t/sp.test:
      New test case for Bug#21462
    sql/sql_yacc.yy:
      "CALL p;" syntax for calling a stored procedure
      Fixed bison 2.2 warnings.
    fd68a068
sql_yacc.yy 240 KB