Bug #367 'mysql.proc does not exist' on CREATE TABLE
Submitted: 4 May 2003 7:10 Modified: 1 Jul 2003 4:19
Reporter: Guilhem Bichot Email Updates:
Status: Not a Bug Impact on me:
None 
Category:MySQL Server Severity:S3 (Non-critical)
Version:5.0 OS:Linux (linux)
Assigned to: Bugs System CPU Architecture:Any

[4 May 2003 7:10] Guilhem Bichot
Description:
Hi,

SLAVE> create table tt (a int);
Query OK, 0 rows affected (0.00 sec)

SLAVE> create table uu(a int);
ERROR 1146: Table 'mysql.proc' doesn't exist

Such a CREATE TABLE without the space between table name and (
used to work in earlier versions (4.0 for example).

Possibly this is not a bug but just a necessary change, I don't know...
(still it will break existing apps).

How to repeat:
create table uu(a int);
[12 Jun 2003 9:07] Per-Erik Martin
This can't be repeated if the system database is properly
installed. The only way it can happen is when using an old
(pre-5.0) system database, or if the mysql.proc table has been
dropped.

It is however a misfeature that this happens if any of the above is
the case, but it's probably not worth the effort to fix this, as the
real reason for the problem is the way functions (and UDFs) are
detected in the lexer. This will have to be reworked for other reasons
anyway.
[29 Jun 2003 14:34] Guilhem Bichot
Feel free to close it again if you think so, but I wanted to add that I did nothing really wrong on my 5.0 installation.
Simply, I have no 'mysql' database, and I run with --skip-grant-tables. Things go fine, except this mysql.proc thing.
Maybe we need a change, or an option, so that mysql.proc is not required (just a suggestion) ??
[1 Jul 2003 4:19] Per-Erik Martin
Alghough this problem ultimately does occur because of a bug, it's not the
primary issue, but merely a side effect that happens when running without
a 'mysql' database. Running without a 'mysql' database will cause other things
to fail as well and is not encouraged.
So I still prefer to close this, and treat the actual bug separately.
(It has to do with the way the lexer looks up UDFs, and therefore stored
functions, which has other, more serious implications.)