Function Name Parsing and Resolution • SESSION_USER • STD • STDDEV • STDDEV_POP • STDDEV_SAMP • SUBDATE • SUBSTR • SUBSTRING • SUM • SYSDATE • SYSTEM_USER • TRIM • VARIANCE • VAR_POP • VAR_SAMP For functions not listed as special in  sql/lex.h , whitespace does not matter. They are interpreted as function calls only when used in expression context and may be used freely as identifiers otherwise.  ASCII is one such name. However, for these nonaffected function names, interpretation may vary in expression context:  func_name  ()  is interpreted as a built-in function if there is one with the given name; if not, func_name  ()  is interpreted as a loadable function or stored function if one exists with that name. The  IGNORE_SPACE  SQL mode can be used to modify how the parser treats function names that are whitespace-sensitive: •With  IGNORE_SPACE  disabled, the parser interprets the name as a function call when there is no whitespace between the name and the following parenthesis. This occurs even when the function name is used in nonexpression context: mysql>  CREATE TABLE count(i INT); ERROR 1064 (42000): You have an error in your SQL syntax ... near ’count(i INT)’ CREATE TABLE count (i INT); CREATE TABLE ‘count‘(i INT); CREATE TABLE ‘count‘ (i INT); To eliminate the error and cause the name to be treated as an identifier, either use whitespace following the name or write it as a quoted identifier (or both): SELECT COUNT(*) FROM mytable; SELECT COUNT (*) FROM mytable; •With  IGNORE_SPACE  enabled, the parser loosens the requirement that there be no whitespace between the function name and the following parenthesis. This provides more flexibility in writing function calls. For example, either of the following function calls are legal: 1878