diff options
Diffstat (limited to 'sql/table.cc')
-rw-r--r-- | sql/table.cc | 27 |
1 files changed, 16 insertions, 11 deletions
diff --git a/sql/table.cc b/sql/table.cc index 8c87dc73d7d..5d2b72f9316 100644 --- a/sql/table.cc +++ b/sql/table.cc @@ -498,11 +498,19 @@ inline bool is_system_table_name(const char *name, uint length) Check if a string contains path elements */ -static inline bool has_disabled_path_chars(const char *str) +static bool has_disabled_path_chars(const char *str) { for (; *str; str++) - if (*str == FN_EXTCHAR || *str == '/' || *str == '\\' || *str == '~' || *str == '@') - return TRUE; + { + switch (*str) { + case FN_EXTCHAR: + case '/': + case '\\': + case '~': + case '@': + return TRUE; + } + } return FALSE; } @@ -2761,7 +2769,7 @@ bool check_table_name(const char *name, uint length, bool check_for_path_chars) int len=my_ismbchar(system_charset_info, name, end); if (len) { - name += len; + name+= len; name_length++; continue; } @@ -3388,7 +3396,7 @@ bool TABLE_LIST::prep_check_option(THD *thd, uint8 check_opt_type) void TABLE_LIST::hide_view_error(THD *thd) { - if (thd->get_internal_handler()) + if (thd->killed || thd->get_internal_handler()) return; /* Hide "Unknown column" or "Unknown function" error */ DBUG_ASSERT(thd->is_error()); @@ -4046,9 +4054,7 @@ Item *create_view_field(THD *thd, TABLE_LIST *view, Item **field_ref, { DBUG_RETURN(field); } - Item *item= new Item_direct_view_ref(&view->view->select_lex.context, - field_ref, view->alias, - name); + Item *item= new Item_direct_view_ref(view, field_ref, name); DBUG_RETURN(item); } @@ -4397,7 +4403,7 @@ void st_table::mark_columns_used_by_index(uint index) MY_BITMAP *bitmap= &tmp_set; DBUG_ENTER("st_table::mark_columns_used_by_index"); - (void) file->extra(HA_EXTRA_KEYREAD); + enable_keyread(); bitmap_clear_all(bitmap); mark_columns_used_by_index_no_reset(index, bitmap); column_bitmaps_set(bitmap, bitmap); @@ -4420,8 +4426,7 @@ void st_table::restore_column_maps_after_mark_index() { DBUG_ENTER("st_table::restore_column_maps_after_mark_index"); - key_read= 0; - (void) file->extra(HA_EXTRA_NO_KEYREAD); + disable_keyread(); default_column_bitmaps(); file->column_bitmaps_signal(); DBUG_VOID_RETURN; |