diff options
Diffstat (limited to 'sql/sql_table.cc')
-rw-r--r-- | sql/sql_table.cc | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/sql/sql_table.cc b/sql/sql_table.cc index 4a0ae550234..69672eebd52 100644 --- a/sql/sql_table.cc +++ b/sql/sql_table.cc @@ -4148,16 +4148,16 @@ mysql_prepare_create_table(THD *thd, HA_CREATE_INFO *create_info, /* Use packed keys for long strings on the first column */ if (!((*db_options) & HA_OPTION_NO_PACK_KEYS) && !((create_info->table_options & HA_OPTION_NO_PACK_KEYS)) && - (key_part_length >= KEY_DEFAULT_PACK_LENGTH && - (sql_field->real_field_type() == MYSQL_TYPE_STRING || - sql_field->real_field_type() == MYSQL_TYPE_VARCHAR || - sql_field->pack_flag & FIELDFLAG_BLOB))&& !is_hash_field_needed) + (key_part_length >= KEY_DEFAULT_PACK_LENGTH && + (sql_field->real_field_type() == MYSQL_TYPE_STRING || + sql_field->real_field_type() == MYSQL_TYPE_VARCHAR || + f_is_blob(sql_field->pack_flag))) && !is_hash_field_needed) { - if ((column_nr == 0 && (sql_field->pack_flag & FIELDFLAG_BLOB)) || + if ((column_nr == 0 && f_is_blob(sql_field->pack_flag)) || sql_field->real_field_type() == MYSQL_TYPE_VARCHAR) - key_info->flags|= HA_BINARY_PACK_KEY | HA_VAR_LENGTH_KEY; - else - key_info->flags|= HA_PACK_KEY; + key_info->flags|= HA_BINARY_PACK_KEY | HA_VAR_LENGTH_KEY; + else + key_info->flags|= HA_PACK_KEY; } /* Check if the key segment is partial, set the key flag accordingly */ if (key_part_length != sql_field->type_handler()-> @@ -11196,7 +11196,8 @@ bool Sql_cmd_create_table_like::execute(THD *thd) LEX *lex= thd->lex; SELECT_LEX *select_lex= lex->first_select_lex(); TABLE_LIST *first_table= select_lex->table_list.first; - DBUG_ASSERT(first_table == lex->query_tables && first_table != 0); + DBUG_ASSERT(first_table == lex->query_tables); + DBUG_ASSERT(first_table != 0); bool link_to_local; TABLE_LIST *create_table= first_table; TABLE_LIST *select_tables= lex->create_last_non_select_table->next_global; |