From: Ryan W. Maple Date: November 27 2000 3:45am Subject: mysql.db constraints List-Archive: http://lists.mysql.com/internals/155 Message-Id: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Greetings, I recently ran across this problem when using a very long database name. As I understand it, the database name can be as long as you want depending on your platform. I am not sure of the max size of a Linux directory off the top of my head but I know it can be very long. So the proof-of-concept below illustrates my problem. I have a 46-character database name: "this_is_a_really_really_long_table_that_breaks". When I attempt to perform access control, using the mysql.db table, my entry gets truncated down to 32 characters ("this_is_a_really_really_long_tab") since the mysql.db Db field is set to be 32 at most. So I'm assuming this is done for OS's that have a small limit (Windows comes to mind but again, I'm not positive). So my question is: If I alter this size to say, 64 characters... would that break anything internally? I'm assuming that it will not but haven't looked at the source code yet. For the record, I am using 3.22.32 on Linux 2.2.x. Any insight would be appreciated. I can easily tweak this myself but I wanted to make sure that nothing "internal" would break as a result. Cheers, Ryan +-- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --+ Ryan W. Maple "I dunno, I dream in Perl sometimes..." -LW Guardian Digital, Inc. ryan@stripped +-- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --+ - ----- BEGIN PROOF OF CONCEPT ----- mysql> SHOW DATABASES; +------------------------------------------------+ | Database | +------------------------------------------------+ | mysql | | this_is_a_really_really_long_table_that_breaks | +------------------------------------------------+ 5 rows in set (0.00 sec) mysql> SELECT User, Host, DB FROM mysql.db; +------------+-----------+----------------------------------+ | User | Host | DB | +------------+-----------+----------------------------------+ | root | localhost | this_is_a_really_really_long_tab | +------------+-----------+----------------------------------+ 3 rows in set (0.00 sec) mysql> DESCRIBE mysql.db; +-----------------+---------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------------+---------------+------+-----+---------+-------+ | Host | char(60) | | PRI | | | | Db | char(32) | | PRI | | | | User | char(16) | | PRI | | | | Select_priv | enum('N','Y') | | | N | | | Insert_priv | enum('N','Y') | | | N | | | Update_priv | enum('N','Y') | | | N | | | Delete_priv | enum('N','Y') | | | N | | | Create_priv | enum('N','Y') | | | N | | | Drop_priv | enum('N','Y') | | | N | | | Grant_priv | enum('N','Y') | | | N | | | References_priv | enum('N','Y') | | | N | | | Index_priv | enum('N','Y') | | | N | | | Alter_priv | enum('N','Y') | | | N | | +-----------------+---------------+------+-----+---------+-------+ 13 rows in set (0.00 sec) - ----- END PROOF OF CONCEPT ----- -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.4 (GNU/Linux) Comment: For info see http://www.gnupg.org iD8DBQE6IdjsIwAIA9MpKWcRAnrxAKCoGqMiznIQc2kdDci6C+IUdUkFWwCeIg8z UwwHVijhqbzfA25LFRzomZ0= =q+Xx -----END PGP SIGNATURE-----