CREATE TABLE count (i INT); 

The parser should recognize the name of a built-in function as indicating a function call only when parsing what is expected to be an expression. That is, in nonexpression context, function names are permitted as identifiers. 

However, some built-in functions have special parsing or implementation considerations, so the parser uses the following rules by default to distinguish whether their names are being used as function calls or as identifiers in nonexpression context: 

•To use the name as a function call in an expression, there must be no whitespace between the name and the following (  parenthesis character. 

•Conversely, to use the function name as an identifier, it must not be followed immediately by a parenthesis. 

The requirement that function calls be written with no whitespace between the name and the parenthesis applies only to the built-in functions that have special considerations. COUNT  is one such name. The sql/ lex.h  source file lists the names of these special functions for which following whitespace determines their interpretation: names defined by the SYM_FN()  macro in the symbols[]  array. 

The following list names the functions in MySQL 8.0 that are affected by the IGNORE_SPACE  setting and listed as special in the sql/lex.h  source file. You may find it easiest to treat the no-whitespace requirement as applying to all function calls. 

• ADDDATE 

• BIT_AND 

• BIT_OR 

• BIT_XOR 

• CAST 

• COUNT 

• CURDATE 

• CURTIME 

• DATE_ADD 

• DATE_SUB 

• EXTRACT 

• GROUP_CONCAT 

• MAX 

• MID 

• MIN 

• NOW 

• POSITION 

