1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-29 05:21:33 +03:00

Hack to ensure that CHAR's created in 5.0 are not converted to VARCHAR even if the row type is dynamic

(For 4.1 tables old 'VARCHAR' fields are converted to true VARCHAR in the next ALTER TABLE)

This ensures that one can use MySQL 5.0 privilege tables with MySQL 4.1


mysql-test/r/information_schema.result:
  Update results (for .frm version number change)
mysql-test/r/ndb_autodiscover.result:
  Update results (for .frm version number change)
mysql-test/r/ps_1general.result:
  Update results (for .frm version number change)
mysql-test/r/show_check.result:
  Update results (for .frm version number change)
mysql-test/r/view.result:
  Update results (for .frm version number change)
scripts/fill_func_tables.sh:
  Ensure that no privilege tables that is used in 4.1 uses VARCHAR
scripts/mysql_create_system_tables.sh:
  Ensure that no privilege tables that is used in 4.1 uses VARCHAR
scripts/mysql_fix_privilege_tables.sh:
  Fixed bug that made it impossible to run the script from the mysql source dist
scripts/mysql_fix_privilege_tables.sql:
  Ensure that no privilege tables that is used in 4.1 uses VARCHAR
sql/sql_table.cc:
  Only set create_info->varchar if we are using the new VARCHAR field
sql/table.cc:
  Hack to ensure that CHAR's created in 5.0 are not converted to VARCHAR even if the row type is dynamic
  (For 4.1 tables old 'VARCHAR' fields are converted to true VARCHAR in the next ALTER TABLE)
This commit is contained in:
unknown
2005-03-22 15:48:06 +02:00
parent 3e13c80a20
commit a99cb51c9d
11 changed files with 87 additions and 51 deletions

View File

@ -613,7 +613,7 @@ int prepare_create_field(create_field *sql_field,
Prepares the table and key structures for table creation.
NOTES
sets create_info->varchar if the table has a varchar or blob.
sets create_info->varchar if the table has a varchar
RETURN VALUES
0 ok
@ -862,12 +862,7 @@ int mysql_prepare_table(THD *thd, HA_CREATE_INFO *create_info,
&timestamps, &timestamps_with_niladic,
file->table_flags()))
DBUG_RETURN(-1);
if (sql_field->sql_type == FIELD_TYPE_BLOB ||
sql_field->sql_type == FIELD_TYPE_MEDIUM_BLOB ||
sql_field->sql_type == FIELD_TYPE_TINY_BLOB ||
sql_field->sql_type == FIELD_TYPE_LONG_BLOB ||
sql_field->sql_type == FIELD_TYPE_GEOMETRY ||
sql_field->sql_type == MYSQL_TYPE_VARCHAR)
if (sql_field->sql_type == MYSQL_TYPE_VARCHAR)
create_info->varchar= 1;
sql_field->offset= pos;
if (MTYP_TYPENR(sql_field->unireg_check) == Field::NEXT_NUMBER)