From f3ad7320523e341efeadfa46ef88a224a80d6dfd Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 29 Sep 2005 16:17:45 +0500 Subject: Fix for bug #7977 in sql_mode=ANSI, show create table ignores auto_increment "CHARACTER SET", "COLLATE", and "DEFAULT" are always printed(excepting MODE_MYSQL323 and MODE_MYSQL40) "AUTO_INCREMENT", "ON UPDATE CURRENT_TIMESTAMP" are printed only if NO_FIELD_OPTIONS is not set. mysql-test/r/sql_mode.result: Fix for bug #7977 in sql_mode=ANSI, show create table ignores auto_increment test case mysql-test/t/sql_mode.test: Fix for bug #7977 in sql_mode=ANSI, show create table ignores auto_increment test case --- sql/sql_show.cc | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'sql') diff --git a/sql/sql_show.cc b/sql/sql_show.cc index c3c28535954..e619b148f3a 100644 --- a/sql/sql_show.cc +++ b/sql/sql_show.cc @@ -1299,7 +1299,8 @@ store_create_info(THD *thd, TABLE *table, String *packet) field->sql_type(type); packet->append(type.ptr(), type.length(), system_charset_info); - if (field->has_charset() && !limited_mysql_mode && !foreign_db_mode) + if (field->has_charset() && + !(thd->variables.sql_mode & (MODE_MYSQL323 | MODE_MYSQL40))) { if (field->charset() != table->table_charset) { @@ -1337,7 +1338,7 @@ store_create_info(THD *thd, TABLE *table, String *packet) has_default= (field->type() != FIELD_TYPE_BLOB && field->unireg_check != Field::NEXT_NUMBER && - !((foreign_db_mode || limited_mysql_mode) && + !((thd->variables.sql_mode & (MODE_MYSQL323 | MODE_MYSQL40)) && has_now_default)); if (has_default) @@ -1367,12 +1368,13 @@ store_create_info(THD *thd, TABLE *table, String *packet) packet->append(tmp); } - if (!foreign_db_mode && !limited_mysql_mode && + if (!(thd->variables.sql_mode & MODE_NO_FIELD_OPTIONS) && table->timestamp_field == field && field->unireg_check != Field::TIMESTAMP_DN_FIELD) packet->append(" on update CURRENT_TIMESTAMP",28); - if (field->unireg_check == Field::NEXT_NUMBER && !foreign_db_mode) + if (field->unireg_check == Field::NEXT_NUMBER && + !(thd->variables.sql_mode & MODE_NO_FIELD_OPTIONS)) packet->append(" auto_increment", 15 ); if (field->comment.length) -- cgit v1.2.1