diff options
Diffstat (limited to 'sql')
63 files changed, 675 insertions, 561 deletions
diff --git a/sql/client_settings.h b/sql/client_settings.h index efae3f18a8b..b357e52ec9d 100644 --- a/sql/client_settings.h +++ b/sql/client_settings.h @@ -31,3 +31,4 @@ #define mysql_rpl_probe(mysql) 0 #undef HAVE_SMEM #undef _CUSTOMCONFIG_ + diff --git a/sql/field.h b/sql/field.h index 5df7d554c35..79c45a99a43 100644 --- a/sql/field.h +++ b/sql/field.h @@ -1132,7 +1132,7 @@ bool test_if_int(const char *str, int length, const char *int_end, */ #define FIELDFLAG_DECIMAL 1 -#define FIELDFLAG_BINARY 1 // Shares same flag +#define FIELDFLAG_BINARY 1 // Shares same flag #define FIELDFLAG_NUMBER 2 #define FIELDFLAG_ZEROFILL 4 #define FIELDFLAG_PACK 120 // Bits used for packing @@ -1163,7 +1163,8 @@ bool test_if_int(const char *str, int length, const char *int_end, #define f_packtype(x) (((x) >> FIELDFLAG_PACK_SHIFT) & 15) #define f_decimals(x) ((uint8) (((x) >> FIELDFLAG_DEC_SHIFT) & FIELDFLAG_MAX_DEC)) #define f_is_alpha(x) (!f_is_num(x)) -#define f_is_enum(x) ((x) & FIELDFLAG_INTERVAL) +#define f_is_binary(x) ((x) & FIELDFLAG_BINARY) // 4.0- compatibility +#define f_is_enum(x) ((x) & FIELDFLAG_INTERVAL) #define f_is_bitfield(x) ((x) & FIELDFLAG_BITFIELD) #define f_is_blob(x) (((x) & (FIELDFLAG_BLOB | FIELDFLAG_NUMBER)) == FIELDFLAG_BLOB) #define f_is_geom(x) ((x) & FIELDFLAG_GEOM) diff --git a/sql/field_conv.cc b/sql/field_conv.cc index 144e6d7e74a..44e30afb880 100644 --- a/sql/field_conv.cc +++ b/sql/field_conv.cc @@ -172,7 +172,10 @@ set_field_to_null_with_conversions(Field *field, bool no_conversions) } field->reset(); if (field == field->table->next_number_field) + { + field->table->auto_increment_field_not_null= false; return 0; // field is set in handler.cc + } if (current_thd->count_cuted_fields) { field->set_warning(MYSQL_ERROR::WARN_LEVEL_WARN,ER_WARN_NULL_TO_NOTNULL); diff --git a/sql/gen_lex_hash.cc b/sql/gen_lex_hash.cc index 1c6f124aac7..ae46bcc9ea5 100644 --- a/sql/gen_lex_hash.cc +++ b/sql/gen_lex_hash.cc @@ -89,6 +89,7 @@ static struct my_option my_long_options[] = 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}, {"version", 'V', "Output version information and exit", 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}, + { 0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0} }; struct hash_lex_struct @@ -101,8 +102,8 @@ struct hash_lex_struct }; int ithis; }; - -hash_lex_struct *get_hash_struct_by_len(hash_lex_struct **root_by_len, + +hash_lex_struct *get_hash_struct_by_len(hash_lex_struct **root_by_len, int len, int *max_len) { if (*max_len<len){ diff --git a/sql/handler.cc b/sql/handler.cc index 1063066f588..2bafa41e542 100644 --- a/sql/handler.cc +++ b/sql/handler.cc @@ -702,11 +702,15 @@ void handler::update_auto_increment() longlong nr; THD *thd; DBUG_ENTER("update_auto_increment"); - if (table->next_number_field->val_int() != 0) + if (table->next_number_field->val_int() != 0 || + table->auto_increment_field_not_null && + current_thd->variables.sql_mode & MODE_NO_AUTO_VALUE_ON_ZERO) { + table->auto_increment_field_not_null= false; auto_increment_column_changed=0; DBUG_VOID_RETURN; } + table->auto_increment_field_not_null= false; thd=current_thd; if ((nr=thd->next_insert_id)) thd->next_insert_id=0; // Clear after use diff --git a/sql/item.cc b/sql/item.cc index 072dec4e6a6..48f9dfea4e1 100644 --- a/sql/item.cc +++ b/sql/item.cc @@ -49,15 +49,19 @@ Item::Item(): THD *thd= current_thd; next= thd->free_list; // Put in free list thd->free_list= this; - loop_id= 0; /* Item constructor can be called during execution other tnen SQL_COM command => we should check thd->lex.current_select on zero (thd->lex can be uninitialised) */ - if (thd->lex.current_select && - thd->lex.current_select->parsing_place == SELECT_LEX_NODE::SELECT_LIST) - thd->lex.current_select->select_items++; + if (thd->lex.current_select) + { + SELECT_LEX_NODE::enum_parsing_place place= + thd->lex.current_select->parsing_place; + if (place == SELECT_LEX_NODE::SELECT_LIST || + place == SELECT_LEX_NODE::IN_HAVING) + thd->lex.current_select->select_n_having_items++; + } } /* @@ -66,7 +70,6 @@ Item::Item(): tables */ Item::Item(THD *thd, Item &item): - loop_id(0), str_value(item.str_value), name(item.name), max_length(item.max_length), @@ -530,6 +533,11 @@ void Item_param::set_longdata(const char *str, ulong length) int Item_param::save_in_field(Field *field, bool no_conversions) { + THD *thd= current_thd; + + if (thd->command == COM_PREPARE) + return -1; + if (null_value) return (int) set_field_to_null(field); @@ -862,7 +870,7 @@ bool Item_field::fix_fields(THD *thd, TABLE_LIST *tables, Item **ref) sl= sl->outer_select()) { table_list= (last= sl)->get_table_list(); - if (sl->insert_select && table_list) + if (sl->resolve_mode == SELECT_LEX::INSERT_MODE && table_list) { // it is primary INSERT st_select_lex => skip first table resolving table_list= table_list->next; @@ -871,7 +879,8 @@ bool Item_field::fix_fields(THD *thd, TABLE_LIST *tables, Item **ref) table_list, &where, 0)) != not_found_field) break; - if ((refer= find_item_in_list(this, sl->item_list, &counter, + if (sl->resolve_mode == SELECT_LEX::SELECT_MODE && + (refer= find_item_in_list(this, sl->item_list, &counter, REPORT_EXCEPT_NOT_FOUND)) != (Item **) not_found_item) break; @@ -1348,13 +1357,15 @@ bool Item_ref::fix_fields(THD *thd,TABLE_LIST *tables, Item **reference) SELECT_LEX *last=0; for ( ; sl ; sl= sl->outer_select()) { - if ((ref= find_item_in_list(this, (last= sl)->item_list, + last= sl; + if (sl->resolve_mode == SELECT_LEX::SELECT_MODE && + (ref= find_item_in_list(this, sl->item_list, &counter, REPORT_EXCEPT_NOT_FOUND)) != (Item **)not_found_item) break; table_list= sl->get_table_list(); - if (sl->insert_select && table_list) + if (sl->resolve_mode == SELECT_LEX::INSERT_MODE && table_list) { // it is primary INSERT st_select_lex => skip first table resolving table_list= table_list->next; @@ -1442,7 +1453,7 @@ bool Item_ref::fix_fields(THD *thd,TABLE_LIST *tables, Item **reference) max_length= (*ref)->max_length; maybe_null= (*ref)->maybe_null; decimals= (*ref)->decimals; - set_charset((*ref)->charset()); + collation.set((*ref)->collation); with_sum_func= (*ref)->with_sum_func; fixed= 1; diff --git a/sql/item.h b/sql/item.h index 57061221878..9df6532a637 100644 --- a/sql/item.h +++ b/sql/item.h @@ -83,7 +83,6 @@ public: }; class Item { - uint loop_id; /* Used to find selfrefering loops */ Item(const Item &); /* Prevent use of these */ void operator=(Item &); public: @@ -374,7 +373,7 @@ public: Item_uint(const char *str_arg, uint length) : Item_int(str_arg, (longlong) strtoull(str_arg,(char**) 0,10), length) {} Item_uint(uint32 i) :Item_int((longlong) i, 10) {} - double val() { return ulonglong2double(value); } + double val() { return ulonglong2double((ulonglong)value); } String *val_str(String*); Item *new_item() { return new Item_uint(name,max_length); } bool fix_fields(THD *thd, struct st_table_list *list, Item **item) diff --git a/sql/item_cmpfunc.cc b/sql/item_cmpfunc.cc index 758733aaa2c..d992b4d69d0 100644 --- a/sql/item_cmpfunc.cc +++ b/sql/item_cmpfunc.cc @@ -24,6 +24,32 @@ #include "mysql_priv.h" #include <m_ctype.h> +static Item_result item_store_type(Item_result a,Item_result b) +{ + if (a == STRING_RESULT || b == STRING_RESULT) + return STRING_RESULT; + else if (a == REAL_RESULT || b == REAL_RESULT) + return REAL_RESULT; + else + return INT_RESULT; +} + +static void agg_result_type(Item_result *type, Item **items, uint nitems) +{ + uint i; + type[0]= items[0]->result_type(); + for (i=1 ; i < nitems ; i++) + type[0]= item_store_type(type[0], items[i]->result_type()); +} + +static void agg_cmp_type(Item_result *type, Item **items, uint nitems) +{ + uint i; + type[0]= items[0]->result_type(); + for (i=1 ; i < nitems ; i++) + type[0]= item_cmp_type(type[0], items[i]->result_type()); +} + static void my_coll_agg_error(DTCollation &c1, DTCollation &c2, const char *fname) { my_error(ER_CANT_AGGREGATE_2COLLATIONS,MYF(0), @@ -223,7 +249,8 @@ int Arg_comparator::set_compare_func(Item_bool_func2 *item, Item_result type) We must set cmp_charset here as we may be called from for an automatic generated item, like in natural join */ - if (cmp_collation.set((*a)->collation, (*b)->collation)) + if (cmp_collation.set((*a)->collation, (*b)->collation) || + cmp_collation.derivation == DERIVATION_NONE) { my_coll_agg_error((*a)->collation, (*b)->collation, owner->func_name()); return 1; @@ -556,10 +583,7 @@ void Item_func_between::fix_length_and_dec() */ if (!args[0] || !args[1] || !args[2]) return; - cmp_type=item_cmp_type(args[0]->result_type(), - item_cmp_type(args[1]->result_type(), - args[2]->result_type())); - + agg_cmp_type(&cmp_type, args, 3); if (cmp_type == STRING_RESULT && agg_arg_collations_for_comparison(cmp_collation, args, 3)) return; @@ -650,28 +674,17 @@ longlong Item_func_between::val_int() return 0; } -static Item_result item_store_type(Item_result a,Item_result b) -{ - if (a == STRING_RESULT || b == STRING_RESULT) - return STRING_RESULT; - else if (a == REAL_RESULT || b == REAL_RESULT) - return REAL_RESULT; - else - return INT_RESULT; -} - void Item_func_ifnull::fix_length_and_dec() { maybe_null=args[1]->maybe_null; max_length=max(args[0]->max_length,args[1]->max_length); decimals=max(args[0]->decimals,args[1]->decimals); - if ((cached_result_type=item_store_type(args[0]->result_type(), - args[1]->result_type())) != - REAL_RESULT) - decimals= 0; + agg_result_type(&cached_result_type, args, 2); if (cached_result_type == STRING_RESULT) agg_arg_collations(collation, args, arg_count); + else if (cached_result_type != REAL_RESULT) + decimals= 0; } @@ -744,19 +757,18 @@ Item_func_if::fix_length_and_dec() cached_result_type= arg1_type; set_charset(args[1]->charset()); } - else if (arg1_type == STRING_RESULT || arg2_type == STRING_RESULT) - { - cached_result_type = STRING_RESULT; - if (agg_arg_collations(collation, args+1, 2)) - return; - } else { - set_charset(&my_charset_bin); // Number - if (arg1_type == REAL_RESULT || arg2_type == REAL_RESULT) - cached_result_type = REAL_RESULT; + agg_result_type(&cached_result_type, args+1, 2); + if (cached_result_type == STRING_RESULT) + { + if (agg_arg_collations(collation, args+1, 2)) + return; + } else - cached_result_type=arg1_type; // Should be INT_RESULT + { + set_charset(&my_charset_bin); // Number + } } } @@ -800,7 +812,7 @@ Item_func_nullif::fix_length_and_dec() { max_length=args[0]->max_length; decimals=args[0]->decimals; - cached_result_type=args[0]->result_type(); + agg_result_type(&cached_result_type, args, 2); } } @@ -863,64 +875,60 @@ Item *Item_func_case::find_item(String *str) String *first_expr_str,*tmp; longlong first_expr_int; double first_expr_real; - bool int_used, real_used,str_used; - int_used=real_used=str_used=0; - + /* These will be initialized later */ LINT_INIT(first_expr_str); LINT_INIT(first_expr_int); LINT_INIT(first_expr_real); + if (first_expr_num != -1) + { + switch (cmp_type) + { + case STRING_RESULT: + // We can't use 'str' here as this may be overwritten + if (!(first_expr_str= args[first_expr_num]->val_str(&str_value))) + return else_expr_num != -1 ? args[else_expr_num] : 0; // Impossible + break; + case INT_RESULT: + first_expr_int= args[first_expr_num]->val_int(); + if (args[first_expr_num]->null_value) + return else_expr_num != -1 ? args[else_expr_num] : 0; + break; + case REAL_RESULT: + first_expr_real= args[first_expr_num]->val(); + if (args[first_expr_num]->null_value) + return else_expr_num != -1 ? args[else_expr_num] : 0; + break; + case ROW_RESULT: + default: + // This case should never be choosen + DBUG_ASSERT(0); + break; + } + } + // Compare every WHEN argument with it and return the first match - for (uint i=0 ; i < arg_count ; i+=2) + for (uint i=0 ; i < ncases ; i+=2) { - if (!first_expr) + if (first_expr_num == -1) { - // No expression between CASE and first WHEN + // No expression between CASE and the first WHEN if (args[i]->val_int()) return args[i+1]; continue; } - switch (args[i]->result_type()) { + switch (cmp_type) { case STRING_RESULT: - if (!str_used) - { - str_used=1; - // We can't use 'str' here as this may be overwritten - if (!(first_expr_str= first_expr->val_str(&str_value))) - return else_expr; // Impossible - } if ((tmp=args[i]->val_str(str))) // If not null - { - /* QQ: COERCIBILITY */ - if (first_expr_is_binary || (args[i]->charset()->state & MY_CS_BINSORT)) - { - if (sortcmp(tmp,first_expr_str,&my_charset_bin)==0) - return args[i+1]; - } - else if (sortcmp(tmp,first_expr_str,tmp->charset())==0) + if (sortcmp(tmp,first_expr_str,cmp_collation.collation)==0) return args[i+1]; - } break; case INT_RESULT: - if (!int_used) - { - int_used=1; - first_expr_int= first_expr->val_int(); - if (first_expr->null_value) - return else_expr; - } if (args[i]->val_int()==first_expr_int && !args[i]->null_value) return args[i+1]; break; case REAL_RESULT: - if (!real_used) - { - real_used=1; - first_expr_real= first_expr->val(); - if (first_expr->null_value) - return else_expr; - } if (args[i]->val()==first_expr_real && !args[i]->null_value) return args[i+1]; break; @@ -932,7 +940,7 @@ Item *Item_func_case::find_item(String *str) } } // No, WHEN clauses all missed, return ELSE expression - return else_expr; + return else_expr_num != -1 ? args[else_expr_num] : 0; } @@ -988,104 +996,57 @@ double Item_func_case::val() return res; } - -bool -Item_func_case::fix_fields(THD *thd, TABLE_LIST *tables, Item **ref) -{ - if (first_expr && (first_expr->fix_fields(thd, tables, &first_expr) || - first_expr->check_cols(1)) || - else_expr && (else_expr->fix_fields(thd, tables, &else_expr) || - else_expr->check_cols(1))) - return 1; - if (Item_func::fix_fields(thd, tables, ref)) - return 1; - if (first_expr) - { - used_tables_cache|=(first_expr)->used_tables(); - const_item_cache&= (first_expr)->const_item(); - with_sum_func= with_sum_func || (first_expr)->with_sum_func; - first_expr_is_binary= first_expr->charset()->state & MY_CS_BINSORT; - } - if (else_expr) - { - used_tables_cache|=(else_expr)->used_tables(); - const_item_cache&= (else_expr)->const_item(); - with_sum_func= with_sum_func || (else_expr)->with_sum_func; - } - if (!else_expr || else_expr->maybe_null) - maybe_null=1; // The result may be NULL - return 0; -} - - -void Item_func_case::split_sum_func(Item **ref_pointer_array, - List<Item> &fields) -{ - if (first_expr) - { - if (first_expr->with_sum_func && first_expr->type() != SUM_FUNC_ITEM) - first_expr->split_sum_func(ref_pointer_array, fields); - else if (first_expr->used_tables() || first_expr->type() == SUM_FUNC_ITEM) - { - uint el= fields.elements; - fields.push_front(first_expr); - ref_pointer_array[el]= first_expr; - first_expr= new Item_ref(ref_pointer_array + el, 0, first_expr->name); - } - } - if (else_expr) - { - if (else_expr->with_sum_func && else_expr->type() != SUM_FUNC_ITEM) - else_expr->split_sum_func(ref_pointer_array, fields); - else if (else_expr->used_tables() || else_expr->type() == SUM_FUNC_ITEM) - { - uint el= fields.elements; - fields.push_front(else_expr); - ref_pointer_array[el]= else_expr; - else_expr= new Item_ref(ref_pointer_array + el, 0, else_expr->name); - } - } - Item_func::split_sum_func(ref_pointer_array, fields); -} - - -void Item_func_case::set_outer_resolving() -{ - first_expr->set_outer_resolving(); - else_expr->set_outer_resolving(); - Item_func::set_outer_resolving(); -} - -void Item_func_case::update_used_tables() -{ - Item_func::update_used_tables(); - if (first_expr) - { - used_tables_cache|=(first_expr)->used_tables(); - const_item_cache&= (first_expr)->const_item(); - } - if (else_expr) - { - used_tables_cache|=(else_expr)->used_tables(); - const_item_cache&= (else_expr)->const_item(); - } -} - - void Item_func_case::fix_length_and_dec() { + Item **agg; + uint nagg; + + if (!(agg= (Item**) sql_alloc(sizeof(Item*)*(ncases+1)))) + return; + + // Aggregate all THEN and ELSE expression types + // and collations when string result + + for (nagg= 0 ; nagg < ncases/2 ; nagg++) + agg[nagg]= args[nagg*2+1]; + + if (else_expr_num != -1) + agg[nagg++]= args[else_expr_num]; + + agg_result_type(&cached_result_type, agg, nagg); + if ((cached_result_type == STRING_RESULT) && + agg_arg_collations(collation, agg, nagg)) + return; + + + // Aggregate first expression and all THEN expression types + // and collations when string comparison + if (first_expr_num != -1) + { + agg[0]= args[first_expr_num]; + for (nagg= 0; nagg < ncases/2 ; nagg++) + agg[nagg+1]= args[nagg*2]; + nagg++; + agg_cmp_type(&cmp_type, agg, nagg); + if ((cmp_type == STRING_RESULT) && + agg_arg_collations_for_comparison(cmp_collation, agg, nagg)) + return; + } + + if (!else_expr_num != -1 || args[else_expr_num]->maybe_null) + maybe_null=1; + max_length=0; decimals=0; - cached_result_type = args[1]->result_type(); - for (uint i=0 ; i < arg_count ; i+=2) + for (uint i=0 ; i < ncases ; i+=2) { set_if_bigger(max_length,args[i+1]->max_length); set_if_bigger(decimals,args[i+1]->decimals); } - if (else_expr != NULL) + if (else_expr_num != -1) { - set_if_bigger(max_length,else_expr->max_length); - set_if_bigger(decimals,else_expr->decimals); + set_if_bigger(max_length,args[else_expr_num]->max_length); + set_if_bigger(decimals,args[else_expr_num]->decimals); } } @@ -1144,13 +1105,11 @@ void Item_func_coalesce::fix_length_and_dec() { max_length= 0; decimals= 0; - cached_result_type = args[0]->result_type(); + agg_result_type(&cached_result_type, args, arg_count); for (uint i=0 ; i < arg_count ; i++) { set_if_bigger(max_length,args[i]->max_length); set_if_bigger(decimals,args[i]->decimals); - cached_result_type=item_store_type(cached_result_type, - args[i]->result_type()); } if (cached_result_type == STRING_RESULT) agg_arg_collations(collation, args, arg_count); @@ -1440,7 +1399,8 @@ void Item_func_in::fix_length_and_dec() Item **arg, **arg_end; uint const_itm= 1; - if ((args[0]->result_type() == STRING_RESULT) && + agg_cmp_type(&cmp_type, args, arg_count); + if ((cmp_type == STRING_RESULT) && (agg_arg_collations_for_comparison(cmp_collation, args, arg_count))) return; @@ -1453,7 +1413,7 @@ void Item_func_in::fix_length_and_dec() */ if (const_itm && !nulls_in_row()) { - switch (args[0]->result_type()) { + switch (cmp_type) { case STRING_RESULT: uint i; array=new in_string(arg_count-1,(qsort2_cmp) srtcmp_in, @@ -1487,7 +1447,7 @@ void Item_func_in::fix_length_and_dec() else { in_item= cmp_item::get_comparator(args[0]); - if (args[0]->result_type() == STRING_RESULT) + if (cmp_type == STRING_RESULT) in_item->cmp_charset= cmp_collation.collation; } maybe_null= args[0]->maybe_null; diff --git a/sql/item_cmpfunc.h b/sql/item_cmpfunc.h index 0d20382eb92..b29657b95aa 100644 --- a/sql/item_cmpfunc.h +++ b/sql/item_cmpfunc.h @@ -348,27 +348,38 @@ public: class Item_func_case :public Item_func { - Item * first_expr, *else_expr; + int first_expr_num, else_expr_num; enum Item_result cached_result_type; String tmp_value; - bool first_expr_is_binary; + uint ncases; + Item_result cmp_type; + DTCollation cmp_collation; public: Item_func_case(List<Item> &list, Item *first_expr_arg, Item *else_expr_arg) - :Item_func(list), first_expr(first_expr_arg), else_expr(else_expr_arg), + :Item_func(), first_expr_num(-1), else_expr_num(-1), cached_result_type(INT_RESULT) - {} + { + ncases= list.elements; + if (first_expr_arg) + { + first_expr_num= list.elements; + list.push_back(first_expr_arg); + } + if (else_expr_arg) + { + else_expr_num= list.elements; + list.push_back(else_expr_arg); + } + set_arguments(list); + } double val(); longlong val_int(); String *val_str(String *); void fix_length_and_dec(); - void update_used_tables(); enum Item_result result_type () const { return cached_result_type; } const char *func_name() const { return "case"; } void print(String *str); - bool fix_fields(THD *thd, struct st_table_list *tlist, Item **ref); - void split_sum_func(Item **ref_pointer_array, List<Item> &fields); Item *find_item(String *str); - void set_outer_resolving(); }; @@ -600,6 +611,7 @@ public: class Item_func_in :public Item_int_func { + Item_result cmp_type; in_vector *array; cmp_item *in_item; bool have_null; diff --git a/sql/item_create.cc b/sql/item_create.cc index eaa27c1009d..e18d1cfa189 100644 --- a/sql/item_create.cc +++ b/sql/item_create.cc @@ -470,7 +470,7 @@ Item *create_load_file(Item* a) } -Item *create_func_cast(Item *a, Item_cast cast_type, CHARSET_INFO *cs) +Item *create_func_cast(Item *a, Cast_target cast_type, CHARSET_INFO *cs) { Item *res; LINT_INIT(res); diff --git a/sql/item_create.h b/sql/item_create.h index 32e452c15dd..1326077b096 100644 --- a/sql/item_create.h +++ b/sql/item_create.h @@ -28,7 +28,7 @@ Item *create_func_bit_length(Item* a); Item *create_func_coercibility(Item* a); Item *create_func_ceiling(Item* a); Item *create_func_char_length(Item* a); -Item *create_func_cast(Item *a, Item_cast cast_type, CHARSET_INFO *cs); +Item *create_func_cast(Item *a, Cast_target cast_type, CHARSET_INFO *cs); Item *create_func_connection_id(void); Item *create_func_conv(Item* a, Item *b, Item *c); Item *create_func_cos(Item* a); diff --git a/sql/item_func.cc b/sql/item_func.cc index 7e236225067..9ecc062d645 100644 --- a/sql/item_func.cc +++ b/sql/item_func.cc @@ -102,10 +102,9 @@ eval_const_cond(COND *cond) return ((Item_func*) cond)->val_int() ? TRUE : FALSE; } - -Item_func::Item_func(List<Item> &list) - :allowed_arg_cols(1) +void Item_func::set_arguments(List<Item> &list) { + allowed_arg_cols= 1; arg_count=list.elements; if ((args=(Item**) sql_alloc(sizeof(Item*)*arg_count))) { @@ -122,6 +121,12 @@ Item_func::Item_func(List<Item> &list) list.empty(); // Fields are used } +Item_func::Item_func(List<Item> &list) + :allowed_arg_cols(1) +{ + set_arguments(list); +} + /* Resolve references to table column for a function and it's argument @@ -592,7 +597,8 @@ void Item_func_neg::fix_length_and_dec() { decimals=args[0]->decimals; max_length=args[0]->max_length; - hybrid_type= args[0]->result_type() == INT_RESULT ? INT_RESULT : REAL_RESULT; + hybrid_type= args[0]->result_type() == INT_RESULT && !args[0]->unsigned_flag ? + INT_RESULT : REAL_RESULT; } double Item_func_abs::val() diff --git a/sql/item_func.h b/sql/item_func.h index a0969fc6b9a..56ee0379cd5 100644 --- a/sql/item_func.h +++ b/sql/item_func.h @@ -115,6 +115,7 @@ public: virtual const char *func_name() const { return "?"; } virtual bool const_item() const { return const_item_cache; } inline Item **arguments() const { return args; } + void set_arguments(List<Item> &list); inline uint argument_count() const { return arg_count; } inline void remove_arguments() { arg_count=0; } virtual void split_sum_func(Item **ref_pointer_array, List<Item> &fields); @@ -1065,7 +1066,7 @@ public: /* For type casts */ -enum Item_cast +enum Cast_target { ITEM_CAST_BINARY, ITEM_CAST_SIGNED_INT, ITEM_CAST_UNSIGNED_INT, ITEM_CAST_DATE, ITEM_CAST_TIME, ITEM_CAST_DATETIME, ITEM_CAST_CHAR diff --git a/sql/item_strfunc.cc b/sql/item_strfunc.cc index 4e35e90b429..b4f4df6968d 100644 --- a/sql/item_strfunc.cc +++ b/sql/item_strfunc.cc @@ -2206,7 +2206,13 @@ void Item_func_set_collation::fix_length_and_dec() set_collation= get_charset_by_csname(args[0]->charset()->csname, MY_CS_BINSORT,MYF(0)); else - set_collation= get_charset_by_name(colname,MYF(0)); + { + if (!(set_collation= get_charset_by_name(colname,MYF(0)))) + { + my_error(ER_UNKNOWN_COLLATION, MYF(0), colname); + return; + } + } if (!set_collation || !my_charset_same(args[0]->charset(),set_collation)) { diff --git a/sql/item_subselect.cc b/sql/item_subselect.cc index cd78edfee7b..32edaaca0fd 100644 --- a/sql/item_subselect.cc +++ b/sql/item_subselect.cc @@ -508,7 +508,7 @@ void Item_in_subselect::single_value_transformer(THD *thd, { sl->item_list.push_back(item); setup_ref_array(thd, &sl->ref_pointer_array, - 1 + sl->select_items + + 1 + sl->select_n_having_items + sl->order_list.elements + sl->group_list.elements); // To prevent crash on Item_ref_null_helper destruction in case of error sl->ref_pointer_array[0]= 0; @@ -759,6 +759,7 @@ static Item_result set_row(SELECT_LEX *select_lex, Item * item, if (!(row[i]= Item_cache::get_cache(res_type))) return STRING_RESULT; // we should return something row[i]->set_len_n_dec(sel_item->max_length, sel_item->decimals); + row[i]->collation.set(sel_item->collation); } } if (select_lex->item_list.elements > 1) @@ -770,6 +771,7 @@ void subselect_single_select_engine::fix_length_and_dec(Item_cache **row) { DBUG_ASSERT(row || select_lex->item_list.elements==1); res_type= set_row(select_lex, item, row, &maybe_null); + item->collation.set(row[0]->collation); if (cols() != 1) maybe_null= 0; } diff --git a/sql/item_sum.cc b/sql/item_sum.cc index 8d3d0de466a..aa146926eb5 100644 --- a/sql/item_sum.cc +++ b/sql/item_sum.cc @@ -199,7 +199,7 @@ Item_sum_hybrid::fix_fields(THD *thd, TABLE_LIST *tables, Item **ref) decimals=item->decimals; maybe_null=item->maybe_null; unsigned_flag=item->unsigned_flag; - set_charset(item->charset()); + collation.set(item->collation); result_field=0; null_value=1; fix_length_and_dec(); diff --git a/sql/mysql_priv.h b/sql/mysql_priv.h index cdffa8c7f50..cc9199c3c13 100644 --- a/sql/mysql_priv.h +++ b/sql/mysql_priv.h @@ -221,6 +221,7 @@ extern CHARSET_INFO *national_charset_info, *table_alias_charset; #define MODE_MYSQL323 32768 #define MODE_MYSQL40 65536 #define MODE_ANSI (MODE_MYSQL40*2) +#define MODE_NO_AUTO_VALUE_ON_ZERO (MODE_ANSI*2) #define RAID_BLOCK_SIZE 1024 diff --git a/sql/mysqld.cc b/sql/mysqld.cc index 09203d127c7..59320e6bb48 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -212,7 +212,7 @@ const char *sql_mode_names[] = "?", "ONLY_FULL_GROUP_BY", "NO_UNSIGNED_SUBTRACTION", "POSTGRESQL", "ORACLE", "MSSQL", "DB2", "SAPDB", "NO_KEY_OPTIONS", "NO_TABLE_OPTIONS", "NO_FIELD_OPTIONS", "MYSQL323", "MYSQL40", "ANSI", - NullS + "NO_AUTO_VALUE_ON_ZERO", NullS }; TYPELIB sql_mode_typelib= { array_elements(sql_mode_names)-1,"", sql_mode_names }; @@ -225,6 +225,13 @@ const char *localhost= "localhost", *delayed_user= "DELAYED"; #endif bool opt_large_files= sizeof(my_off_t) > 4; + +/* + Used with --help for detailed option +*/ +bool opt_help= 0; +bool opt_verbose= 0; + arg_cmp_func Arg_comparator::comparator_matrix[4][2] = {{&Arg_comparator::compare_string, &Arg_comparator::compare_e_string}, {&Arg_comparator::compare_real, &Arg_comparator::compare_e_real}, @@ -3644,8 +3651,12 @@ Disable with --skip-bdb (will save memory).", "Percentage of dirty pages allowed in bufferpool.", (gptr*) &srv_max_buf_pool_modified_pct, (gptr*) &srv_max_buf_pool_modified_pct, 0, GET_ULONG, REQUIRED_ARG, 90, 0, 100, 0, 0, 0}, #endif /* End HAVE_INNOBASE_DB */ - {"help", '?', "Display this help and exit.", 0, 0, 0, GET_NO_ARG, NO_ARG, 0, - 0, 0, 0, 0, 0}, + {"help", '?', "Display this help and exit.", + (gptr*) &opt_help, (gptr*) &opt_help, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, + 0, 0}, + {"verbose", 'v', "Used with --help option for detailed help", + (gptr*) &opt_verbose, (gptr*) &opt_verbose, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, + 0, 0}, {"init-file", OPT_INIT_FILE, "Read SQL commands from this file at startup.", (gptr*) &opt_init_file, (gptr*) &opt_init_file, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, @@ -3981,8 +3992,6 @@ replicating a LOAD DATA INFILE command.", 0, 0, 0, 0, 0, 0}, {"version", 'V', "Output version information and exit.", 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}, - {"version", 'v', "Synonym for option -V.", 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, - 0, 0, 0, 0}, {"log-warnings", 'W', "Log some not critical warnings to the log file.", (gptr*) &global_system_variables.log_warnings, (gptr*) &max_system_variables.log_warnings, 0, GET_BOOL, NO_ARG, 0, 0, 0, @@ -4593,6 +4602,10 @@ and you are welcome to modify and redistribute it under the GPL license\n\ Starts the MySQL server\n"); printf("Usage: %s [OPTIONS]\n", my_progname); + if (!opt_verbose) + puts("\nFor more help options (several pages), use mysqld --verbose --help\n"); + else + { #ifdef __WIN__ puts("NT and Win32 specific options:\n\ --install Install the default service (NT)\n\ @@ -4616,7 +4629,8 @@ Starts the MySQL server\n"); puts("\n\ To see what values a running MySQL server is using, type\n\ -'mysqladmin variables' instead of 'mysqld --help'."); +'mysqladmin variables' instead of 'mysqld --verbose --help'.\n"); + } } @@ -4891,14 +4905,9 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)), break; #endif #include <sslopt-case.h> - case 'v': case 'V': print_version(); exit(0); - case 'I': - case '?': - usage(); - exit(0); case 'T': test_flags= argument ? (uint) atoi(argument) : 0; test_flags&= ~TEST_NO_THREADS; @@ -5374,6 +5383,11 @@ static void get_options(int argc,char **argv) exit(ho_error); } + if (opt_help) + { + usage(); + exit(0); + } #if defined(HAVE_BROKEN_REALPATH) my_use_symdir=0; my_disable_symlinks=1; diff --git a/sql/net_serv.cc b/sql/net_serv.cc index fd5e4f1d71a..9e9eaf9eea1 100644 --- a/sql/net_serv.cc +++ b/sql/net_serv.cc @@ -30,7 +30,10 @@ 3 byte length & 1 byte package-number. */ -#ifndef EMBEDDED_LIBRARY +/* + HFTODO this must be hidden if we don't want client capabilities in + embedded library + */ #ifdef __WIN__ #include <winsock.h> #endif @@ -46,6 +49,17 @@ #include <signal.h> #include <errno.h> +#ifdef EMBEDDED_LIBRARY + +#undef net_flush + +extern "C" { +my_bool net_flush(NET *net); +} + +#endif /*EMBEDDED_LIBRARY */ + + /* The following handles the differences when this is linked between the client and the server. @@ -959,5 +973,3 @@ my_net_read(NET *net) return len; } -#endif /* #ifndef EMBEDDED_LIBRARY */ - diff --git a/sql/protocol.cc b/sql/protocol.cc index 1b9256c7723..e90aa7585e2 100644 --- a/sql/protocol.cc +++ b/sql/protocol.cc @@ -83,6 +83,7 @@ void send_error(THD *thd, uint sql_errno, const char *err) #ifdef EMBEDDED_LIBRARY net->last_errno= sql_errno; strmake(net->last_error, err, sizeof(net->last_error)-1); + strmov(net->sqlstate, mysql_errno_to_sqlstate(sql_errno)); #else if (net->vio == 0) @@ -230,12 +231,12 @@ net_printf(THD *thd, uint errcode, ...) #else net->last_errno= errcode; strmake(net->last_error, text_pos, length); + strmake(net->sqlstate, mysql_errno_to_sqlstate(errcode), SQLSTATE_LENGTH); #endif thd->is_fatal_error=0; // Error message is given DBUG_VOID_RETURN; } - /* Return ok to the client. @@ -350,40 +351,6 @@ send_eof(THD *thd, bool no_flush) } #endif /* EMBEDDED_LIBRARY */ - -/**************************************************************************** - Store a field length in logical packet - This is used to code the string length for normal protocol -****************************************************************************/ - -char * -net_store_length(char *pkg, ulonglong length) -{ - uchar *packet=(uchar*) pkg; - if (length < LL(251)) - { - *packet=(uchar) length; - return (char*) packet+1; - } - /* 251 is reserved for NULL */ - if (length < LL(65536)) - { - *packet++=252; - int2store(packet,(uint) length); - return (char*) packet+2; - } - if (length < LL(16777216)) - { - *packet++=253; - int3store(packet,(ulong) length); - return (char*) packet+3; - } - *packet++=254; - int8store(packet,length); - return (char*) packet+8; -} - - /* Faster net_store_length when we know length is a 32 bit integer */ diff --git a/sql/set_var.cc b/sql/set_var.cc index 33dcd4b7e29..e70dd1c3b85 100644 --- a/sql/set_var.cc +++ b/sql/set_var.cc @@ -1247,7 +1247,7 @@ bool sys_var_collation::check(THD *thd, set_var *var) if (!(tmp=get_charset_by_name(res->c_ptr(),MYF(0)))) { - my_error(ER_UNKNOWN_CHARACTER_SET, MYF(0), res->c_ptr()); + my_error(ER_UNKNOWN_COLLATION, MYF(0), res->c_ptr()); return 1; } var->save_result.charset= tmp; // Save for update diff --git a/sql/share/charsets/cp1251.xml b/sql/share/charsets/cp1251.xml index 795022cc179..94774cca0f1 100644 --- a/sql/share/charsets/cp1251.xml +++ b/sql/share/charsets/cp1251.xml @@ -34,9 +34,9 @@ 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F 40 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F - 70 71 72 73 54 75 76 77 78 79 7A 5B 5C 5D 5E 5F + 70 71 72 73 74 75 76 77 78 79 7A 5B 5C 5D 5E 5F 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F - 70 71 72 73 54 75 76 77 78 79 7A 7B 7C 7D 7E 7F + 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F 90 83 82 83 84 85 86 87 88 89 9A 8B 9C 9D 9E 9F 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F A0 A2 A2 BC A4 B4 A6 A7 B8 A9 BA AB AC AD AE BF @@ -56,9 +56,9 @@ 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F - 50 51 52 53 74 55 56 57 58 59 5A 5B 5C 5D 5E 5F + 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F 60 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F - 50 51 52 53 74 55 56 57 58 59 5A 7B 7C 7D 7E 7F + 50 51 52 53 54 55 56 57 58 59 5A 7B 7C 7D 7E 7F 80 81 82 81 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F 80 91 92 93 94 95 96 97 98 99 8A 9B 8C 9D 8E 8F A0 A1 A1 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF diff --git a/sql/share/czech/errmsg.txt b/sql/share/czech/errmsg.txt index 5ed743962eb..b43c4b43b50 100644 --- a/sql/share/czech/errmsg.txt +++ b/sql/share/czech/errmsg.txt @@ -44,8 +44,8 @@ v/* "Obsluha tabulky '%-.64s' nem-BА tento parametr", "Nemohu naj-BМt zАznam v '%-.64s'", "Nespr-BАvnА informace v souboru '%-.64s'", -"Nespr-BАvnЩ klМХ pro tabulku '%-.64s'. Pokuste se ho opravit", -"Star-BЩ klМХovЩ soubor pro '%-.64s'. Opravte ho.", +"Nespr-BАvnЩ klМХ pro tabulku '%-.64s'; pokuste se ho opravit", +"Star-BЩ klМХovЩ soubor pro '%-.64s'; opravte ho.", "'%-.64s' je jen pro -BХtenМ", "M-BАlo pamЛti. PЬestartujte daemona a zkuste znovu (je potЬeba %d bytЫ)", "M-BАlo pamЛti pro tЬМdЛnМ. Zvy╧te velikost tЬМdМcМho bufferu", @@ -54,8 +54,8 @@ v/* "M-BАlo prostoru/pamЛti pro thread", "Nemohu zjistit jm-BИno stroje pro Va╧i adresu", "Chyba p-BЬi ustavovАnМ spojenМ", -"P-BЬМstup pro u╬ivatele '%-.32s@%-.64s' k databАzi '%-.64s' nenМ povolen", -"P-BЬМstup pro u╬ivatele '%-.32s@%-.64s' (s heslem %s)", +"P-BЬМstup pro u╬ivatele '%-.32s'@'%-.64s' k databАzi '%-.64s' nenМ povolen", +"P-BЬМstup pro u╬ivatele '%-.32s'@'%-.64s' (s heslem %s)", "Nebyla vybr-BАna ╬АdnА databАze", "Nezn-BАmЩ pЬМkaz", "Sloupec '%-.64s' nem-BЫ╬e bЩt null", @@ -152,8 +152,8 @@ v/* "Regul-BАrnМ vЩraz vrАtil chybu '%-.64s'", "Pokud nen-BМ ╬АdnА GROUP BY klauzule, nenМ dovoleno souХasnИ pou╬itМ GROUP polo╬ek (MIN(),MAX(),COUNT()...) s ne GROUP polo╬kami", "Neexistuje odpov-BМdajМcМ grant pro u╬ivatele '%-.32s' na stroji '%-.64s'", -"%-.16s p-BЬМkaz nepЬМstupnЩ pro u╬ivatele: '%-.32s@%-.64s' pro tabulku '%-.64s'", -"%-.16s p-BЬМkaz nepЬМstupnЩ pro u╬ivatele: '%-.32s@%-.64s' pro sloupec '%-.64s' v tabulce '%-.64s'", +"%-.16s p-BЬМkaz nepЬМstupnЩ pro u╬ivatele: '%-.32s'@'%-.64s' pro tabulku '%-.64s'", +"%-.16s p-BЬМkaz nepЬМstupnЩ pro u╬ivatele: '%-.32s'@'%-.64s' pro sloupec '%-.64s' v tabulce '%-.64s'", "Neplatn-BЩ pЬМkaz GRANT/REVOKE. ProsМm, pЬeХtЛte si v manuАlu, jakА privilegia je mo╬nИ pou╬Мt.", "Argument p-BЬМkazu GRANT u╬ivatel nebo stroj je pЬМli╧ dlouhЩ", "Tabulka '%-.64s.%s' neexistuje", @@ -221,7 +221,7 @@ v/* "DROP DATABASE not allowed while thread is holding global read lock", "CREATE DATABASE not allowed while thread is holding global read lock", "Wrong arguments to %s", -"%-.32s@%-.64s is not allowed to create new users", +"'%-.32s'@'%-.64s' is not allowed to create new users", "Incorrect table definition; all MERGE tables must be in the same database", "Deadlock found when trying to get lock; Try restarting transaction", "The used table type doesn't support FULLTEXT indexes", @@ -276,3 +276,4 @@ v/* "Illegal mix of collations (%s,%s), (%s,%s), (%s,%s) for operation '%s'", "Illegal mix of collations for operation '%s'", "Variable '%-.64s' is not a variable component (Can't be used as XXXX.variable_name)", +"Unknown collation: '%-.64s'", diff --git a/sql/share/danish/errmsg.txt b/sql/share/danish/errmsg.txt index 224b168e15b..2eb9e6d2219 100644 --- a/sql/share/danish/errmsg.txt +++ b/sql/share/danish/errmsg.txt @@ -13,19 +13,19 @@ "Kan ikke oprette databasen '%-.64s' (Fejlkode: %d)", "Kan ikke oprette databasen '%-.64s'; databasen eksisterer", "Kan ikke slette (droppe) '%-.64s'; databasen eksisterer ikke", -"Fejl ved sletning (drop) af databasen (kan ikke slette '%-.64s', Fejl %d)", -"Fejl ved sletting af database (kan ikke slette folderen '%-.64s', Fejl %d)", +"Fejl ved sletning (drop) af databasen (kan ikke slette '%-.64s', Fejlkode %d)", +"Fejl ved sletting af database (kan ikke slette folderen '%-.64s', Fejlkode %d)", "Fejl ved sletning af '%-.64s' (Fejlkode: %d)", "Kan ikke lФse posten i systemfolderen", "Kan ikke lФse status af '%-.64s' (Fejlkode: %d)", "Kan ikke lФse aktive folder (Fejlkode: %d)", "Kan ikke lЕse fil (Fejlkode: %d)", -"Kan ikke Еbne fil: '%-.64s'. (Fejlkode: %d)", +"Kan ikke Еbne fil: '%-.64s' (Fejlkode: %d)", "Kan ikke finde fila: '%-.64s' (Fejlkode: %d)", "Kan ikke lФse folder '%-.64s' (Fejlkode: %d)", "Kan ikke skifte folder til '%-.64s' (Fejlkode: %d)", "Posten er Фndret siden sidste lФsning '%-.64s'", -"Ikke mere diskplads (%s). Venter pЕ at fЕ frigjort plads....", +"Ikke mere diskplads (%s). Venter pЕ at fЕ frigjort plads...", "Kan ikke skrive, flere ens nЬgler i tabellen '%-.64s'", "Fejl ved lukning af '%-.64s' (Fejlkode: %d)", "Fejl ved lФsning af '%-.64s' (Fejlkode: %d)", @@ -38,8 +38,8 @@ "Denne mulighed eksisterer ikke for tabeltypen '%-.64s'", "Kan ikke finde posten i '%-.64s'", "Forkert indhold i: '%-.64s'", -"Fejl i indeksfilen til tabellen '%-.64s', prЬv at reparere den", -"Gammel indeksfil for tabellen '%-.64s'; Reparer den", +"Fejl i indeksfilen til tabellen '%-.64s'; prЬv at reparere den", +"Gammel indeksfil for tabellen '%-.64s'; reparer den", "'%-.64s' er skrivebeskyttet", "Ikke mere hukommelse. Genstart serveren og prЬv igen (mangler %d bytes)", "Ikke mere sorteringshukommelse. ьg sorteringshukommelse (sort buffer size) for serveren", @@ -48,8 +48,8 @@ "UdgЕet for trЕde/hukommelse", "Kan ikke fЕ vФrtsnavn for din adresse", "Forkert hЕndtryk (handshake)", -"Adgang nФgtet bruger: '%-.32s@%-.64s' til databasen '%-.64s'", -"Adgang nФgtet bruger: '%-.32s@%-.64s' (Bruger adgangskode: %s)", +"Adgang nФgtet bruger: '%-.32s'@'%-.64s' til databasen '%-.64s'", +"Adgang nФgtet bruger: '%-.32s'@'%-.64s' (Bruger adgangskode: %s)", "Ingen database valgt", "Ukendt kommando", "Kolonne '%-.64s' kan ikke vФre NULL", @@ -146,8 +146,8 @@ "Fik fejl '%-.64s' fra regexp", "Sammenblanding af GROUP kolonner (MIN(),MAX(),COUNT()...) uden GROUP kolonner er ikke tilladt, hvis der ikke er noget GROUP BY prФdikat", "Denne tilladelse findes ikke for brugeren '%-.32s' pЕ vФrt '%-.64s'", -"%-.16s-kommandoen er ikke tilladt for brugeren '%-.32s@%-.64s' for tabellen '%-.64s'", -"%-.16s-kommandoen er ikke tilladt for brugeren '%-.32s@%-.64s' for kolonne '%-.64s' in tabellen '%-.64s'", +"%-.16s-kommandoen er ikke tilladt for brugeren '%-.32s'@'%-.64s' for tabellen '%-.64s'", +"%-.16s-kommandoen er ikke tilladt for brugeren '%-.32s'@'%-.64s' for kolonne '%-.64s' in tabellen '%-.64s'", "Forkert GRANT/REVOKE kommando. Se i brugervejledningen hvilke privilegier der kan specificeres.", "VФrts- eller brugernavn for langt til GRANT", "Tabellen '%-.64s.%-.64s' eksisterer ikke", @@ -215,7 +215,7 @@ "DROP DATABASE er ikke tilladt mens en trЕd holder pЕ globalt read lock", "CREATE DATABASE er ikke tilladt mens en trЕd holder pЕ globalt read lock", "Wrong arguments to %s", -"%-.32s@%-.64s is not allowed to create new users", +"'%-.32s'@'%-.64s' is not allowed to create new users", "Incorrect table definition; all MERGE tables must be in the same database", "Deadlock found when trying to get lock; Try restarting transaction", "The used table type doesn't support FULLTEXT indexes", @@ -270,3 +270,4 @@ "Illegal mix of collations (%s,%s), (%s,%s), (%s,%s) for operation '%s'", "Illegal mix of collations for operation '%s'", "Variable '%-.64s' is not a variable component (Can't be used as XXXX.variable_name)", +"Unknown collation: '%-.64s'", diff --git a/sql/share/dutch/errmsg.txt b/sql/share/dutch/errmsg.txt index ad843ae2e4e..2a663a176f8 100644 --- a/sql/share/dutch/errmsg.txt +++ b/sql/share/dutch/errmsg.txt @@ -28,8 +28,8 @@ "Kan de status niet krijgen van '%-.64s' (Errcode: %d)", "Kan de werkdirectory niet krijgen (Errcode: %d)", "Kan de file niet blokeren (Errcode: %d)", -"Kan de file '%-.64s' niet openen. (Errcode: %d)", -"Kan de file: '%-.64s' niet vinden. (Errcode: %d)", +"Kan de file '%-.64s' niet openen (Errcode: %d)", +"Kan de file: '%-.64s' niet vinden (Errcode: %d)", "Kan de directory niet lezen van '%-.64s' (Errcode: %d)", "Kan de directory niet veranderen naar '%-.64s' (Errcode: %d)", "Record is veranderd sinds de laatste lees activiteit in de tabel '%-.64s'", @@ -46,8 +46,8 @@ "Tabel handler voor '%-.64s' heeft deze optie niet", "Kan record niet vinden in '%-.64s'", "Verkeerde info in file: '%-.64s'", -"Verkeerde zoeksleutel file voor tabel: '%-.64s'. Probeer het te repareren", -"Oude zoeksleutel file voor tabel '%-.64s'; Repareer het!", +"Verkeerde zoeksleutel file voor tabel: '%-.64s'; probeer het te repareren", +"Oude zoeksleutel file voor tabel '%-.64s'; repareer het!", "'%-.64s' is alleen leesbaar", "Geen geheugen meer. Herstart server en probeer opnieuw (%d bytes nodig)", "Geen geheugen om te sorteren. Verhoog de server sort buffer size", @@ -56,8 +56,8 @@ "Geen thread geheugen meer; controleer of mysqld of andere processen al het beschikbare geheugen gebruikt. Zo niet, dan moet u wellicht 'ulimit' gebruiken om mysqld toe te laten meer geheugen te benutten, of u kunt extra swap ruimte toevoegen", "Kan de hostname niet krijgen van uw adres", "Verkeerde handshake", -"Toegang geweigerd voor gebruiker: '%-.32s@%-.64s' naar database '%-.64s'", -"Toegang geweigerd voor gebruiker: '%-.32s@%-.64s' (Wachtwoord gebruikt: %s)", +"Toegang geweigerd voor gebruiker: '%-.32s'@'%-.64s' naar database '%-.64s'", +"Toegang geweigerd voor gebruiker: '%-.32s'@'%-.64s' (Wachtwoord gebruikt: %s)", "Geen database geselecteerd", "Onbekend commando", "Kolom '%-.64s' kan niet null zijn", @@ -154,8 +154,8 @@ "Fout '%-.64s' ontvangen van regexp", "Het mixen van GROUP kolommen (MIN(),MAX(),COUNT()...) met no-GROUP kolommen is foutief indien er geen GROUP BY clausule is", "Deze toegang (GRANT) is niet toegekend voor gebruiker '%-.32s' op host '%-.64s'", -"%-.16s commando geweigerd voor gebruiker: '%-.32s@%-.64s' voor tabel '%-.64s'", -"%-.16s commando geweigerd voor gebruiker: '%-.32s@%-.64s' voor kolom '%-.64s' in tabel '%-.64s'", +"%-.16s commando geweigerd voor gebruiker: '%-.32s'@'%-.64s' voor tabel '%-.64s'", +"%-.16s commando geweigerd voor gebruiker: '%-.32s'@'%-.64s' voor kolom '%-.64s' in tabel '%-.64s'", "Foutief GRANT/REVOKE commando. Raadpleeg de handleiding welke priveleges gebruikt kunnen worden.", "De host of gebruiker parameter voor GRANT is te lang", "Tabel '%-.64s.%s' bestaat niet", @@ -223,7 +223,7 @@ "DROP DATABASE niet toegestaan terwijl thread een globale 'read lock' bezit", "CREATE DATABASE niet toegestaan terwijl thread een globale 'read lock' bezit", "Foutieve parameters voor %s", -"%-.32s@%-.64s mag geen nieuwe gebruikers creeren", +"'%-.32s'@'%-.64s' mag geen nieuwe gebruikers creeren", "Incorrecte tabel definitie; alle MERGE tabellen moeten tot dezelfde database behoren", "Deadlock gevonden tijdens lock-aanvraag poging; Probeer herstart van de transactie", "Het gebruikte tabel type ondersteund geen FULLTEXT indexen", @@ -278,3 +278,4 @@ "Illegal mix of collations (%s,%s), (%s,%s), (%s,%s) for operation '%s'", "Illegal mix of collations for operation '%s'", "Variable '%-.64s' is not a variable component (Can't be used as XXXX.variable_name)", +"Unknown collation: '%-.64s'", diff --git a/sql/share/english/errmsg.txt b/sql/share/english/errmsg.txt index 778854c820b..f4019d63055 100644 --- a/sql/share/english/errmsg.txt +++ b/sql/share/english/errmsg.txt @@ -17,12 +17,12 @@ "Can't get status of '%-.64s' (errno: %d)", "Can't get working directory (errno: %d)", "Can't lock file (errno: %d)", -"Can't open file: '%-.64s'. (errno: %d)", +"Can't open file: '%-.64s' (errno: %d)", "Can't find file: '%-.64s' (errno: %d)", "Can't read dir of '%-.64s' (errno: %d)", "Can't change dir to '%-.64s' (errno: %d)", "Record has changed since last read in table '%-.64s'", -"Disk full (%s). Waiting for someone to free some space....", +"Disk full (%s). Waiting for someone to free some space...", "Can't write, duplicate key in table '%-.64s'", "Error on close of '%-.64s' (errno: %d)", "Error reading file '%-.64s' (errno: %d)", @@ -35,8 +35,8 @@ "Table storage engine for '%-.64s' doesn't have this option", "Can't find record in '%-.64s'", "Incorrect information in file: '%-.64s'", -"Incorrect key file for table: '%-.64s'. Try to repair it", -"Old key file for table '%-.64s'; Repair it!", +"Incorrect key file for table: '%-.64s'; try to repair it", +"Old key file for table '%-.64s'; repair it!", "Table '%-.64s' is read only", "Out of memory. Restart daemon and try again (needed %d bytes)", "Out of sort memory. Increase daemon sort buffer size", @@ -45,8 +45,8 @@ "Out of memory; Check if mysqld or some other process uses all available memory. If not you may have to use 'ulimit' to allow mysqld to use more memory or you can add more swap space", "Can't get hostname for your address", "Bad handshake", -"Access denied for user: '%-.32s@%-.64s' to database '%-.64s'", -"Access denied for user: '%-.32s@%-.64s' (Using password: %s)", +"Access denied for user: '%-.32s'@'%-.64s' to database '%-.64s'", +"Access denied for user: '%-.32s'@'%-.64s' (Using password: %s)", "No Database Selected", "Unknown command", "Column '%-.64s' cannot be null", @@ -85,12 +85,12 @@ "Can't create IP socket", "Table '%-.64s' has no index like the one used in CREATE INDEX. Recreate the table", "Field separator argument is not what is expected. Check the manual", -"You can't use fixed rowlength with BLOBs. Please use 'fields terminated by'.", +"You can't use fixed rowlength with BLOBs. Please use 'fields terminated by'", "The file '%-.64s' must be in the database directory or be readable by all", "File '%-.80s' already exists", "Records: %ld Deleted: %ld Skipped: %ld Warnings: %ld", "Records: %ld Duplicates: %ld", -"Incorrect sub part key. The used key part isn't a string, the used length is longer than the key part or the store engine doesn't support unique sub keys", +"Incorrect sub part key. The used key part isn't a string, the used length is longer than the key part or the storage engine doesn't support unique sub keys", "You can't delete all columns with ALTER TABLE. Use DROP TABLE instead", "Can't DROP '%-.64s'. Check that column/key exists", "Records: %ld Duplicates: %ld Warnings: %ld", @@ -143,9 +143,9 @@ "Got error '%-.64s' from regexp", "Mixing of GROUP columns (MIN(),MAX(),COUNT()...) with no GROUP columns is illegal if there is no GROUP BY clause", "There is no such grant defined for user '%-.32s' on host '%-.64s'", -"%-.16s command denied to user: '%-.32s@%-.64s' for table '%-.64s'", -"%-.16s command denied to user: '%-.32s@%-.64s' for column '%-.64s' in table '%-.64s'", -"Illegal GRANT/REVOKE command. Please consult the manual which privileges can be used.", +"%-.16s command denied to user: '%-.32s'@'%-.64s' for table '%-.64s'", +"%-.16s command denied to user: '%-.32s'@'%-.64s' for column '%-.64s' in table '%-.64s'", +"Illegal GRANT/REVOKE command. Please consult the manual which privileges can be used", "The host or user argument to GRANT is too long", "Table '%-.64s.%-.64s' doesn't exist", "There is no such grant defined for user '%-.32s' on host '%-.64s' on table '%-.64s'", @@ -179,14 +179,14 @@ "You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column", "Key '%-.64s' doesn't exist in table '%-.64s'", "Can't open table", -"The storage enginge for the table doesn't support %s", +"The storage engine for the table doesn't support %s", "You are not allowed to execute this command in a transaction", "Got error %d during COMMIT", "Got error %d during ROLLBACK", "Got error %d during FLUSH_LOGS", "Got error %d during CHECKPOINT", "Aborted connection %ld to db: '%-.64s' user: '%-.32s' host: `%-.64s' (%-.64s)", -"The store engine for the table does not support binary table dump", +"The storage engine for the table does not support binary table dump", "Binlog closed, cannot RESET MASTER", "Failed rebuilding the index of dumped table '%-.64s'", "Error from master: '%-.64s'", @@ -212,7 +212,7 @@ "DROP DATABASE not allowed while thread is holding global read lock", "CREATE DATABASE not allowed while thread is holding global read lock", "Wrong arguments to %s", -"%-.32s@%-.64s is not allowed to create new users", +"'%-.32s'@'%-.64s' is not allowed to create new users", "Incorrect table definition; all MERGE tables must be in the same database", "Deadlock found when trying to get lock; Try restarting transaction", "The used table type doesn't support FULLTEXT indexes", @@ -272,3 +272,4 @@ "Illegal mix of collations (%s,%s), (%s,%s), (%s,%s) for operation '%s'", "Illegal mix of collations for operation '%s'", "Variable '%-.64s' is not a variable component (Can't be used as XXXX.variable_name)", +"Unknown collation: '%-.64s'", diff --git a/sql/share/estonian/errmsg.txt b/sql/share/estonian/errmsg.txt index 0ac668ce01c..d3a38ede5bc 100644 --- a/sql/share/estonian/errmsg.txt +++ b/sql/share/estonian/errmsg.txt @@ -22,7 +22,7 @@ "Ei suuda lugeda '%-.64s' olekut (veakood: %d)", "Ei suuda identifitseerida jooksvat kataloogi (veakood: %d)", "Ei suuda lukustada faili (veakood: %d)", -"Ei suuda avada faili '%-.64s'. (veakood: %d)", +"Ei suuda avada faili '%-.64s' (veakood: %d)", "Ei suuda leida faili '%-.64s' (veakood: %d)", "Ei suuda lugeda kataloogi '%-.64s' (veakood: %d)", "Ei suuda siseneda kataloogi '%-.64s' (veakood: %d)", @@ -40,8 +40,8 @@ "Tabeli '%-.64s' handler ei toeta antud operatsiooni", "Ei suuda leida kirjet '%-.64s'-s", "Vigane informatsioon failis '%-.64s'", -"Tabeli '%-.64s' vУtmefail on vigane; Proovi seda parandada", -"Tabeli '%-.64s' vУtmefail on aegunud; Paranda see!", +"Tabeli '%-.64s' vУtmefail on vigane; proovi seda parandada", +"Tabeli '%-.64s' vУtmefail on aegunud; paranda see!", "Tabel '%-.64s' on ainult lugemiseks", "MДlu sai otsa. Proovi MySQL uuesti kДivitada (puudu jДi %d baiti)", "MДlu sai sorteerimisel otsa. Suurenda MySQL-i sorteerimispuhvrit", @@ -50,8 +50,8 @@ "MДlu sai otsa. VУimalik, et aitab swap-i lisamine vУi kДsu 'ulimit' abil MySQL-le rohkema mДlu kasutamise lubamine", "Ei suuda lahendada IP aadressi masina nimeks", "VДДr handshake", -"LigipДДs keelatud kasutajale '%-.32s@%-.64s' andmebaasile '%-.64s'", -"LigipДДs keelatud kasutajale '%-.32s@%-.64s' (kasutab parooli: %s)", +"LigipДДs keelatud kasutajale '%-.32s'@'%-.64s' andmebaasile '%-.64s'", +"LigipДДs keelatud kasutajale '%-.32s'@'%-.64s' (kasutab parooli: %s)", "Andmebaasi ei ole valitud", "Tundmatu kДsk", "Tulp '%-.64s' ei saa omada nullvДДrtust", @@ -148,8 +148,8 @@ "regexp tagastas vea '%-.64s'", "GROUP tulpade (MIN(),MAX(),COUNT()...) kooskasutamine tavaliste tulpadega ilma GROUP BY klauslita ei ole lubatud", "Sellist Уigust ei ole defineeritud kasutajale '%-.32s' masinast '%-.64s'", -"%-.16s kДsk ei ole lubatud kasutajale '%-.32s@%-.64s' tabelis '%-.64s'", -"%-.16s kДsk ei ole lubatud kasutajale '%-.32s@%-.64s' tulbale '%-.64s' tabelis '%-.64s'", +"%-.16s kДsk ei ole lubatud kasutajale '%-.32s'@'%-.64s' tabelis '%-.64s'", +"%-.16s kДsk ei ole lubatud kasutajale '%-.32s'@'%-.64s' tulbale '%-.64s' tabelis '%-.64s'", "Vigane GRANT/REVOKE kДsk. Tutvu kasutajajuhendiga", "Masina vУi kasutaja nimi GRANT lauses on liiga pikk", "Tabelit '%-.64s.%-.64s' ei eksisteeri", @@ -217,7 +217,7 @@ "DROP DATABASE ei ole lubatud kui lУim omab globaalset READ lukku", "CREATE DATABASE ei ole lubatud kui lУim omab globaalset READ lukku", "Vigased parameetrid %s-le", -"Kasutajal %-.32s@%-.64s ei ole lubatud luua uusi kasutajaid", +"Kasutajal '%-.32s'@'%-.64s' ei ole lubatud luua uusi kasutajaid", "Vigane tabelimДДratlus; kУik MERGE tabeli liikmed peavad asuma samas andmebaasis", "Lukustamisel tekkis tupik (deadlock); alusta transaktsiooni otsast", "Antud tabelitЭЭp ei toeta FULLTEXT indekseid", @@ -272,3 +272,4 @@ "Illegal mix of collations (%s,%s), (%s,%s), (%s,%s) for operation '%s'", "Illegal mix of collations for operation '%s'", "Variable '%-.64s' is not a variable component (Can't be used as XXXX.variable_name)", +"Unknown collation: '%-.64s'", diff --git a/sql/share/french/errmsg.txt b/sql/share/french/errmsg.txt index 51053dc5632..ccff24c5759 100644 --- a/sql/share/french/errmsg.txt +++ b/sql/share/french/errmsg.txt @@ -17,7 +17,7 @@ "Ne peut obtenir le status de '%-.64s' (Errcode: %d)", "Ne peut obtenir le rИpertoire de travail (Errcode: %d)", "Ne peut verrouiller le fichier (Errcode: %d)", -"Ne peut ouvrir le fichier: '%-.64s'. (Errcode: %d)", +"Ne peut ouvrir le fichier: '%-.64s' (Errcode: %d)", "Ne peut trouver le fichier: '%-.64s' (Errcode: %d)", "Ne peut lire le rИpertoire de '%-.64s' (Errcode: %d)", "Ne peut changer le rИpertoire pour '%-.64s' (Errcode: %d)", @@ -35,8 +35,8 @@ "Le handler de la table '%-.64s' n'a pas cette option", "Ne peut trouver l'enregistrement dans '%-.64s'", "Information erronnИe dans le fichier: '%-.64s'", -"Index corrompu dans la table: '%-.64s'. Essayez de le rИparer", -"Vieux fichier d'index pour la table '%-.64s'; RИparez le!", +"Index corrompu dans la table: '%-.64s'; essayez de le rИparer", +"Vieux fichier d'index pour la table '%-.64s'; rИparez le!", "'%-.64s' est en lecture seulement", "Manque de mИmoire. RedИmarrez le dИmon et rИ-essayez (%d octets nИcessaires)", "Manque de mИmoire pour le tri. Augmentez-la.", @@ -45,8 +45,8 @@ "Manque de 'threads'/mИmoire", "Ne peut obtenir de hostname pour votre adresse", "Mauvais 'handshake'", -"AccХs refusИ pour l'utilisateur: '%-.32s@%-.64s'. Base '%-.64s'", -"AccХs refusИ pour l'utilisateur: '%-.32s@%-.64s' (mot de passe: %s)", +"AccХs refusИ pour l'utilisateur: '%-.32s'@'@%-.64s'. Base '%-.64s'", +"AccХs refusИ pour l'utilisateur: '%-.32s'@'@%-.64s' (mot de passe: %s)", "Aucune base n'a ИtИ sИlectionnИe", "Commande inconnue", "Le champ '%-.64s' ne peut Йtre vide (null)", @@ -143,8 +143,8 @@ "Erreur '%-.64s' provenant de regexp", "MИlanger les colonnes GROUP (MIN(),MAX(),COUNT()...) avec des colonnes normales est interdit s'il n'y a pas de clause GROUP BY", "Un tel droit n'est pas dИfini pour l'utilisateur '%-.32s' sur l'hТte '%-.64s'", -"La commande '%-.16s' est interdite Ю l'utilisateur: '%-.32s@%-.64s' sur la table '%-.64s'", -"La commande '%-.16s' est interdite Ю l'utilisateur: '%-.32s@%-.64s' sur la colonne '%-.64s' de la table '%-.64s'", +"La commande '%-.16s' est interdite Ю l'utilisateur: '%-.32s'@'@%-.64s' sur la table '%-.64s'", +"La commande '%-.16s' est interdite Ю l'utilisateur: '%-.32s'@'@%-.64s' sur la colonne '%-.64s' de la table '%-.64s'", "Commande GRANT/REVOKE incorrecte. Consultez le manuel.", "L'hТte ou l'utilisateur donnИ en argument Ю GRANT est trop long", "La table '%-.64s.%s' n'existe pas", @@ -212,7 +212,7 @@ "DROP DATABASE n'est pas autorisИe pendant qu'une tБche possХde un verrou global en lecture", "CREATE DATABASE n'est pas autorisИe pendant qu'une tБche possХde un verrou global en lecture", "Mauvais arguments Ю %s", -"%-.32s@%-.64s n'est pas autorisИ Ю crИer de nouveaux utilisateurs", +"'%-.32s'@'%-.64s' n'est pas autorisИ Ю crИer de nouveaux utilisateurs", "DИfinition de table incorrecte; toutes les tables MERGE doivent Йtre dans la mЙme base de donnИe", "Deadlock dИcouvert en essayant d'obtenir les verrous : essayez de redИmarrer la transaction", "Le type de table utilisИ ne supporte pas les index FULLTEXT", @@ -267,3 +267,4 @@ "Illegal mix of collations (%s,%s), (%s,%s), (%s,%s) for operation '%s'", "Illegal mix of collations for operation '%s'", "Variable '%-.64s' is not a variable component (Can't be used as XXXX.variable_name)", +"Unknown collation: '%-.64s'", diff --git a/sql/share/german/errmsg.txt b/sql/share/german/errmsg.txt index 49615c08223..52f3eb78c11 100644 --- a/sql/share/german/errmsg.txt +++ b/sql/share/german/errmsg.txt @@ -26,27 +26,27 @@ "Kann Status von '%-.64s' nicht ermitteln. (Fehler: %d)", "Kann Arbeitsverzeichnis nicht ermitteln. (Fehler: %d)", "Datei nicht sperrbar. (Fehler: %d)", -"Kann Datei '%-.64s' nicht Жffnen. (Fehler: %d)", -"Kann Datei '%-.64s' nicht finden. (Fehler: %d)", -"Verzeichnis von '%-.64s' nicht lesbar. (Fehler: %d)", -"Kann nicht in das Verzeichnis '%-.64s' wechseln. (Fehler: %d)", -"Datensatz hat sich seit dem letzten Zugriff auf Tabelle '%-.64s' geДndert.", +"Kann Datei '%-.64s' nicht Жffnen (Fehler: %d)", +"Kann Datei '%-.64s' nicht finden (Fehler: %d)", +"Verzeichnis von '%-.64s' nicht lesbar (Fehler: %d)", +"Kann nicht in das Verzeichnis '%-.64s' wechseln (Fehler: %d)", +"Datensatz hat sich seit dem letzten Zugriff auf Tabelle '%-.64s' geДndert", "Festplatte voll (%-.64s). Warte bis jemand Platz schafft ...", -"Kann nicht speichern, doppelter SchlЭssel in Tabelle '%-.64s'.", -"Fehler beim Schlieъen von '%-.64s'. (Fehler: %d)", -"Fehler beim Lesen der Datei '%-.64s'. (Fehler: %d)", -"Fehler beim Umbenennen von '%-.64s' nach '%-.64s'. (Fehler: %d)", -"Fehler beim Speichern der Datei '%-.64s'. (Fehler: %d)", -"'%-.64s' ist fЭr VerДnderungen gesperrt.", -"Sortieren abgebrochen.", -"View '%-.64s' existiert fЭr '%-.64s' nicht.", -"Fehler %d. (Tabellenhandler)", -"Diese Option gibt es nicht. (Tabellenhandler)", -"Kann Datensatz nicht finden.", +"Kann nicht speichern, doppelter SchlЭssel in Tabelle '%-.64s'", +"Fehler beim Schlieъen von '%-.64s' (Fehler: %d)", +"Fehler beim Lesen der Datei '%-.64s' (Fehler: %d)", +"Fehler beim Umbenennen von '%-.64s' nach '%-.64s' (Fehler: %d)", +"Fehler beim Speichern der Datei '%-.64s' (Fehler: %d)", +"'%-.64s' ist fЭr VerДnderungen gesperrt", +"Sortieren abgebrochen", +"View '%-.64s' existiert fЭr '%-.64s' nicht", +"Fehler %d (Tabellenhandler)", +"Diese Option gibt es nicht (Tabellenhandler)", +"Kann Datensatz nicht finden", "Falsche Information in Datei: '%-.64s'", -"Falsche SchlЭssel-Datei fЭr Tabelle '%-.64s'. Versuche zu reparieren!", -"Alte SchlЭssel-Datei fЭr Tabelle '%-.64s'. Repariere!", -"'%-.64s' ist nur lesbar.", +"Falsche SchlЭssel-Datei fЭr Tabelle '%-.64s'; versuche zu reparieren!", +"Alte SchlЭssel-Datei fЭr Tabelle '%-.64s'; repariere!", +"'%-.64s' ist nur lesbar", "Kein Speicher vorhanden (benЖtigt %d bytes). Server neu starten.", "Kein Speicher zum Sortieren. sort_buffer_size sollte erhЖht werden.", "Unerwartetes Ende beim Lesen der Datei '%-.64s'. (Fehler: %d)", @@ -54,8 +54,8 @@ "Zuwenig Speicher.", "Kann Hostname fЭr diese Adresse nicht erhalten.", "Schlechter Handshake.", -"Keine Zugriffsberechtigung fЭr Benutzer: '%-.32s@%-.64s' fЭr Datenbank '%-.64s'.", -"Keine Zugriffsberechtigung fЭr Benutzer: '%-.32s@%-.64s'. (Verwendetes Passwort: %-.64s)", +"Keine Zugriffsberechtigung fЭr Benutzer: '%-.32s'@'%-.64s' fЭr Datenbank '%-.64s'.", +"Keine Zugriffsberechtigung fЭr Benutzer: '%-.32s'@'%-.64s'. (Verwendetes Passwort: %-.64s)", "Keine Datenbank ausgewДhlt.", "Unbekannter Befehl.", "Feld '%-.64s' kann nicht NULL sein.", @@ -152,8 +152,8 @@ "Fehler '%-.64s' von regexp", "Das Vermischen von GROUP Spalten (MIN(),MAX(),COUNT()...) mit Nicht-GROUP Spalten ist nicht erlaubt, sofern keine GROUP BY Klausel vorhanden ist.", "Keine solche Berechtigung fЭr User '%-.32s' auf Host '%-.64s'", -"%-.16s Befehl nicht erlaubt fЭr User: '%-.32s@%-.64s' fЭr Tabelle '%-.64s'", -"%-.16s Befehl nicht erlaubt fЭr User: '%-.32s@%-.64s' in Spalte '%-.64s' in Tabelle '%-.64s'", +"%-.16s Befehl nicht erlaubt fЭr User: '%-.32s'@'%-.64s' fЭr Tabelle '%-.64s'", +"%-.16s Befehl nicht erlaubt fЭr User: '%-.32s'@'%-.64s' in Spalte '%-.64s' in Tabelle '%-.64s'", "UnzulДssiger GRANT/REVOKE Befehl. Weiteres zum Thema Berechtigungen im Manual.", "Das Host oder User Argument fЭr GRANT ist zu lang", "Tabelle '%-.64s.%-.64s' existiert nicht", @@ -221,7 +221,7 @@ "Solange ein globaler Read LOCK gesetzt ist, ist DROP DATABASE nicht zulДssig.", "Solange ein globaler Read LOCK gesetzt ist, ist CREATE DATABASE nicht zulДssig.", "Falsche Argumente fЭr %s", -"%-.32s@%-.64s is nicht berechtigt neue Benutzer hinzuzufЭgen.", +"'%-.32s'@'%-.64s' is nicht berechtigt neue Benutzer hinzuzufЭgen.", "Falsche Tabellendefinition; sДmtliche MERGE-Tabellen mЭssen in derselben Datenbank sein.", "Beim Versuch einen Lock anzufordern ist ein Deadlock aufgetreten. Es wird versucht die Transaktion erneut zu starten.", "Der verwendete Tabellentyp unterstЭtzt keinen FULLTEXT-Index.", @@ -276,3 +276,4 @@ "Illegal mix of collations (%s,%s), (%s,%s), (%s,%s) for operation '%s'", "Illegal mix of collations for operation '%s'", "Variable '%-.64s' is not a variable component (Can't be used as XXXX.variable_name)", +"Unknown collation: '%-.64s'", diff --git a/sql/share/greek/errmsg.txt b/sql/share/greek/errmsg.txt index d49e80135e3..1ce052bdf22 100644 --- a/sql/share/greek/errmsg.txt +++ b/sql/share/greek/errmsg.txt @@ -17,12 +17,12 @@ "аДЩМАТГ Г КчЬГ ПКГЯОЖОЯИЧМ ЦИА ТГМ ЙАТэСТАСГ ТОУ '%-.64s' (ЙЫДИЙЭР КэХОУР: %d)", "о ЖэЙЕККОР ЕЯЦАСъАР ДЕМ БЯщХГЙЕ (ЙЫДИЙЭР КэХОУР: %d)", "тО АЯВЕъО ДЕМ ЛПОЯЕъ МА ЙКЕИДЫХЕъ (ЙЫДИЙЭР КэХОУР: %d)", -"дЕМ ЕъМАИ ДУМАТЭ МА АМОИВТЕъ ТО АЯВЕъО: '%-.64s'. (ЙЫДИЙЭР КэХОУР: %d)", +"дЕМ ЕъМАИ ДУМАТЭ МА АМОИВТЕъ ТО АЯВЕъО: '%-.64s' (ЙЫДИЙЭР КэХОУР: %d)", "дЕМ БЯщХГЙЕ ТО АЯВЕъО: '%-.64s' (ЙЫДИЙЭР КэХОУР: %d)", "дЕМ ЕъМАИ ДУМАТЭ МА ДИАБАСТЕъ О ЖэЙЕККОР ТОУ '%-.64s' (ЙЫДИЙЭР КэХОУР: %d)", "аДЩМАТГ Г АККАЦч ТОУ ТЯщВОМТОР ЙАТАКЭЦОУ СЕ '%-.64s' (ЙЫДИЙЭР КэХОУР: %d)", "г ЕЦЦЯАЖч щВЕИ АККэНЕИ АПЭ ТГМ ТЕКЕУТАъА ЖОЯэ ПОУ АМАСЩЯХГЙЕ АПЭ ТОМ ПъМАЙА '%-.64s'", -"дЕМ УПэЯВЕИ ВЧЯОР СТО ДъСЙО (%s). пАЯАЙАКЧ, ПЕЯИЛщМЕТЕ МА ЕКЕУХЕЯЫХЕъ ВЧЯОР....", +"дЕМ УПэЯВЕИ ВЧЯОР СТО ДъСЙО (%s). пАЯАЙАКЧ, ПЕЯИЛщМЕТЕ МА ЕКЕУХЕЯЫХЕъ ВЧЯОР...", "дЕМ ЕъМАИ ДУМАТч Г ЙАТАВЧЯГСГ, Г ТИЛч УПэЯВЕИ чДГ СТОМ ПъМАЙА '%-.64s'", "пАЯОУСИэСТГЙЕ ПЯЭБКГЛА ЙКЕъМОМТАР ТО '%-.64s' (ЙЫДИЙЭР КэХОУР: %d)", "пЯЭБКГЛА ЙАТэ ТГМ АМэЦМЫСГ ТОУ АЯВЕъОУ '%-.64s' (ЙЫДИЙЭР КэХОУР: %d)", @@ -35,7 +35,7 @@ "о ВЕИЯИСТчР ПъМАЙА (table handler) ЦИА '%-.64s' ДЕМ ДИАХщТЕИ АУТч ТГМ ЕПИКОЦч", "аДЩМАТГ Г АМЕЩЯЕСГ ЕЦЦЯАЖчР СТО '%-.64s'", "кэХОР ПКГЯОЖОЯъЕР СТО АЯВЕъО: '%-.64s'", -"кэХОР АЯВЕъО ТАНИМЭЛИСГР (key file) ЦИА ТОМ ПъМАЙА: '%-.64s'. пАЯАЙАКЧ, ДИОЯХЧСТЕ ТО!", +"кэХОР АЯВЕъО ТАНИМЭЛИСГР (key file) ЦИА ТОМ ПъМАЙА: '%-.64s'; пАЯАЙАКЧ, ДИОЯХЧСТЕ ТО!", "пАКАИЭ АЯВЕъО ТАНИМЭЛИСГР (key file) ЦИА ТОМ ПъМАЙА '%-.64s'; пАЯАЙАКЧ, ДИОЯХЧСТЕ ТО!", "'%-.64s' ЕПИТЯщПЕТАИ ЛЭМО Г АМэЦМЫСГ", "дЕМ УПэЯВЕИ ДИАХщСИЛГ ЛМчЛГ. пЯОСПАХчСТЕ ПэКИ, ЕПАМЕЙИМЧМТАР ТГ ДИАДИЙАСъА (demon) (ВЯЕИэФОМТАИ %d bytes)", @@ -45,8 +45,8 @@ "пЯЭБКГЛА ЛЕ ТГ ДИАХщСИЛГ ЛМчЛГ (Out of thread space/memory)", "дЕМ щЦИМЕ ЦМЫСТЭ ТО hostname ЦИА ТГМ address САР", "г АМАЦМЧЯИСГ (handshake) ДЕМ щЦИМЕ СЫСТэ", -"дЕМ ЕПИТщЯЕТАИ Г ПЯЭСБАСГ СТО ВЯчСТГ: '%-.32s@%-.64s' СТГ БэСГ ДЕДОЛщМЫМ '%-.64s'", -"дЕМ ЕПИТщЯЕТАИ Г ПЯЭСБАСГ СТО ВЯчСТГ: '%-.32s@%-.64s' (ВЯчСГ password: %s)", +"дЕМ ЕПИТщЯЕТАИ Г ПЯЭСБАСГ СТО ВЯчСТГ: '%-.32s'@'%-.64s' СТГ БэСГ ДЕДОЛщМЫМ '%-.64s'", +"дЕМ ЕПИТщЯЕТАИ Г ПЯЭСБАСГ СТО ВЯчСТГ: '%-.32s'@'%-.64s' (ВЯчСГ password: %s)", "дЕМ ЕПИКщВХГЙЕ БэСГ ДЕДОЛщМЫМ", "аЦМЫСТГ ЕМТОКч", "тО ПЕДъО '%-.64s' ДЕМ ЛПОЯЕъ МА ЕъМАИ ЙЕМЭ (null)", @@ -143,8 +143,8 @@ "Got error '%-.64s' from regexp", "Mixing of GROUP columns (MIN(),MAX(),COUNT()...) with no GROUP columns is illegal if there is no GROUP BY clause", "There is no such grant defined for user '%-.32s' on host '%-.64s'", -"%-.16s command denied to user: '%-.32s@%-.64s' for table '%-.64s'", -"%-.16s command denied to user: '%-.32s@%-.64s' for column '%-.64s' in table '%-.64s'", +"%-.16s command denied to user: '%-.32s'@'%-.64s' for table '%-.64s'", +"%-.16s command denied to user: '%-.32s'@'%-.64s' for column '%-.64s' in table '%-.64s'", "Illegal GRANT/REVOKE command. Please consult the manual which privileges can be used.", "The host or user argument to GRANT is too long", "Table '%-.64s.%-.64s' doesn't exist", @@ -212,7 +212,7 @@ "DROP DATABASE not allowed while thread is holding global read lock", "CREATE DATABASE not allowed while thread is holding global read lock", "Wrong arguments to %s", -"%-.32s@%-.64s is not allowed to create new users", +"'%-.32s'@'%-.64s' is not allowed to create new users", "Incorrect table definition; all MERGE tables must be in the same database", "Deadlock found when trying to get lock; Try restarting transaction", "The used table type doesn't support FULLTEXT indexes", @@ -267,3 +267,4 @@ "Illegal mix of collations (%s,%s), (%s,%s), (%s,%s) for operation '%s'", "Illegal mix of collations for operation '%s'", "Variable '%-.64s' is not a variable component (Can't be used as XXXX.variable_name)", +"Unknown collation: '%-.64s'", diff --git a/sql/share/hungarian/errmsg.txt b/sql/share/hungarian/errmsg.txt index 8fc12da1f00..6143ea2a1c4 100644 --- a/sql/share/hungarian/errmsg.txt +++ b/sql/share/hungarian/errmsg.txt @@ -19,8 +19,8 @@ "A(z) '%-.64s' statusza nem allapithato meg (hibakod: %d)", "A munkakonyvtar nem allapithato meg (hibakod: %d)", "A file nem zarolhato. (hibakod: %d)", -"A '%-.64s' file nem nyithato meg. (hibakod: %d)", -"A(z) '%-.64s' file nem talalhato. (hibakod: %d)", +"A '%-.64s' file nem nyithato meg (hibakod: %d)", +"A(z) '%-.64s' file nem talalhato (hibakod: %d)", "A(z) '%-.64s' konyvtar nem olvashato. (hibakod: %d)", "Konyvtarvaltas nem lehetseges a(z) '%-.64s'-ba. (hibakod: %d)", "A(z) '%-.64s' tablaban talalhato rekord megvaltozott az utolso olvasas ota", @@ -37,8 +37,8 @@ "A(z) '%-.64s' tablakezelonek nincs ilyen opcioja", "Nem talalhato a rekord '%-.64s'-ben", "Ervenytelen info a file-ban: '%-.64s'", -"Ervenytelen kulcsfile a tablahoz: '%-.64s'. Probalja kijavitani!", -"Regi kulcsfile a '%-.64s'tablahoz; Probalja kijavitani!", +"Ervenytelen kulcsfile a tablahoz: '%-.64s'; probalja kijavitani!", +"Regi kulcsfile a '%-.64s'tablahoz; probalja kijavitani!", "'%-.64s' irasvedett", "Nincs eleg memoria. Inditsa ujra a demont, es probalja ismet. (%d byte szukseges.)", "Nincs eleg memoria a rendezeshez. Novelje a rendezo demon puffermeretet", @@ -47,8 +47,8 @@ "Elfogyott a thread-memoria", "A gepnev nem allapithato meg a cimbol", "A kapcsolatfelvetel nem sikerult (Bad handshake)", -"A(z) '%-.32s@%-.64s' felhasznalo szamara tiltott eleres az '%-.64s' adabazishoz.", -"A(z) '%-.32s@%-.64s' felhasznalo szamara tiltott eleres. (Hasznalja a jelszot: %s)", +"A(z) '%-.32s'@'%-.64s' felhasznalo szamara tiltott eleres az '%-.64s' adabazishoz.", +"A(z) '%-.32s'@'%-.64s' felhasznalo szamara tiltott eleres. (Hasznalja a jelszot: %s)", "Nincs kivalasztott adatbazis", "Ervenytelen parancs", "A(z) '%-.64s' oszlop erteke nem lehet nulla", @@ -145,8 +145,8 @@ "'%-.64s' hiba a regularis kifejezes hasznalata soran (regexp)", "A GROUP mezok (MIN(),MAX(),COUNT()...) kevert hasznalata nem lehetseges GROUP BY hivatkozas nelkul", "A '%-.32s' felhasznalonak nincs ilyen joga a '%-.64s' host-on", -"%-.16s parancs a '%-.32s@%-.64s' felhasznalo szamara nem engedelyezett a '%-.64s' tablaban", -"%-.16s parancs a '%-.32s@%-.64s' felhasznalo szamara nem engedelyezett a '%-.64s' mezo eseten a '%-.64s' tablaban", +"%-.16s parancs a '%-.32s'@'%-.64s' felhasznalo szamara nem engedelyezett a '%-.64s' tablaban", +"%-.16s parancs a '%-.32s'@'%-.64s' felhasznalo szamara nem engedelyezett a '%-.64s' mezo eseten a '%-.64s' tablaban", "Ervenytelen GRANT/REVOKE parancs. Kerem, nezze meg a kezikonyvben, milyen jogok lehetsegesek", "A host vagy felhasznalo argumentuma tul hosszu a GRANT parancsban", "A '%-.64s.%s' tabla nem letezik", @@ -214,7 +214,7 @@ "DROP DATABASE not allowed while thread is holding global read lock", "CREATE DATABASE not allowed while thread is holding global read lock", "Wrong arguments to %s", -"%-.32s@%-.64s is not allowed to create new users", +"'%-.32s'@'%-.64s' is not allowed to create new users", "Incorrect table definition; all MERGE tables must be in the same database", "Deadlock found when trying to get lock; Try restarting transaction", "The used table type doesn't support FULLTEXT indexes", @@ -269,3 +269,4 @@ "Illegal mix of collations (%s,%s), (%s,%s), (%s,%s) for operation '%s'", "Illegal mix of collations for operation '%s'", "Variable '%-.64s' is not a variable component (Can't be used as XXXX.variable_name)", +"Unknown collation: '%-.64s'", diff --git a/sql/share/italian/errmsg.txt b/sql/share/italian/errmsg.txt index 18ce664e7fd..8164757d823 100644 --- a/sql/share/italian/errmsg.txt +++ b/sql/share/italian/errmsg.txt @@ -17,12 +17,12 @@ "Impossibile leggere lo stato di '%-.64s' (errno: %d)", "Impossibile leggere la directory di lavoro (errno: %d)", "Impossibile il locking il file (errno: %d)", -"Impossibile aprire il file: '%-.64s'. (errno: %d)", +"Impossibile aprire il file: '%-.64s' (errno: %d)", "Impossibile trovare il file: '%-.64s' (errno: %d)", "Impossibile leggere la directory di '%-.64s' (errno: %d)", "Impossibile cambiare la directory in '%-.64s' (errno: %d)", "Il record e` cambiato dall'ultima lettura della tabella '%-.64s'", -"Disco pieno (%s). In attesa che qualcuno liberi un po' di spazio....", +"Disco pieno (%s). In attesa che qualcuno liberi un po' di spazio...", "Scrittura impossibile: chiave duplicata nella tabella '%-.64s'", "Errore durante la chiusura di '%-.64s' (errno: %d)", "Errore durante la lettura del file '%-.64s' (errno: %d)", @@ -35,8 +35,8 @@ "Il gestore delle tabelle per '%-.64s' non ha questa opzione", "Impossibile trovare il record in '%-.64s'", "Informazione errata nel file: '%-.64s'", -"File chiave errato per la tabella : '%-.64s'. Prova a riparalo", -"File chiave vecchio per la tabella '%-.64s'; Riparalo!", +"File chiave errato per la tabella : '%-.64s'; prova a riparalo", +"File chiave vecchio per la tabella '%-.64s'; riparalo!", "'%-.64s' e` di sola lettura", "Memoria esaurita. Fai ripartire il demone e riprova (richiesti %d bytes)", "Memoria per gli ordinamenti esaurita. Incrementare il 'sort_buffer' al demone", @@ -45,8 +45,8 @@ "Fine dello spazio/memoria per i thread", "Impossibile risalire al nome dell'host dall'indirizzo (risoluzione inversa)", "Negoziazione impossibile", -"Accesso non consentito per l'utente: '%-.32s@%-.64s' al database '%-.64s'", -"Accesso non consentito per l'utente: '%-.32s@%-.64s' (Password: %s)", +"Accesso non consentito per l'utente: '%-.32s'@'%-.64s' al database '%-.64s'", +"Accesso non consentito per l'utente: '%-.32s'@'%-.64s' (Password: %s)", "Nessun database selezionato", "Comando sconosciuto", "La colonna '%-.64s' non puo` essere nulla", @@ -143,8 +143,8 @@ "Errore '%-.64s' da regexp", "Il mescolare funzioni di aggregazione (MIN(),MAX(),COUNT()...) e non e` illegale se non c'e` una clausula GROUP BY", "GRANT non definita per l'utente '%-.32s' dalla macchina '%-.64s'", -"Comando %-.16s negato per l'utente: '%-.32s@%-.64s' sulla tabella '%-.64s'", -"Comando %-.16s negato per l'utente: '%-.32s@%-.64s' sulla colonna '%-.64s' della tabella '%-.64s'", +"Comando %-.16s negato per l'utente: '%-.32s'@'%-.64s' sulla tabella '%-.64s'", +"Comando %-.16s negato per l'utente: '%-.32s'@'%-.64s' sulla colonna '%-.64s' della tabella '%-.64s'", "Comando GRANT/REVOKE illegale. Prego consultare il manuale per sapere quali privilegi possono essere usati.", "L'argomento host o utente per la GRANT e` troppo lungo", "La tabella '%-.64s.%s' non esiste", @@ -212,7 +212,7 @@ "DROP DATABASE non e' permesso mentre il thread ha un lock globale di lettura", "CREATE DATABASE non e' permesso mentre il thread ha un lock globale di lettura", "Argomenti errati a %s", -"A %-.32s@%-.64s non e' permesso creare nuovi utenti", +"A '%-.32s'@'%-.64s' non e' permesso creare nuovi utenti", "Definizione della tabella errata; tutte le tabelle di tipo MERGE devono essere nello stesso database", "Trovato deadlock durante il lock; Provare a far ripartire la transazione", "La tabella usata non supporta gli indici FULLTEXT", @@ -267,3 +267,4 @@ "Illegal mix of collations (%s,%s), (%s,%s), (%s,%s) for operation '%s'", "Illegal mix of collations for operation '%s'", "Variable '%-.64s' is not a variable component (Can't be used as XXXX.variable_name)", +"Unknown collation: '%-.64s'", diff --git a/sql/share/japanese/errmsg.txt b/sql/share/japanese/errmsg.txt index fedf0fd8e9c..747d3611cc9 100644 --- a/sql/share/japanese/errmsg.txt +++ b/sql/share/japanese/errmsg.txt @@ -17,9 +17,9 @@ "'%-.64s' ╓н╨О╫Э╓╛╔╗╔И║╪ (errno: %d)", "system table ╓н╔Л╔Ё║╪╔и╓Рфи╓Ю╩Ж╓╛╓г╓╜╓ч╓╩╓С╓г╓╥╓©", "'%-.64s' ╓н╔╧╔ф╔╓╔©╔╧╓╛фю╓И╓Л╓ч╓╩╓С. (errno: %d)", -"working directory ╓Рфю╓К╩Ж╓╛╓г╓╜╓ч╓╩╓С╓г╓╥╓©. (errno: %d)", -"╔у╔║╔╓╔К╓Р╔М╔ц╔╞╓г╓╜╓ч╓╩╓С.(errno: %d)", -"'%-.64s' ╔у╔║╔╓╔К╓РЁ╚╓╞╩Ж╓╛╓г╓╜╓ч╓╩╓С.(errno: %d)", +"working directory ╓Рфю╓К╩Ж╓╛╓г╓╜╓ч╓╩╓С╓г╓╥╓© (errno: %d)", +"╔у╔║╔╓╔К╓Р╔М╔ц╔╞╓г╓╜╓ч╓╩╓С (errno: %d)", +"'%-.64s' ╔у╔║╔╓╔К╓РЁ╚╓╞╩Ж╓╛╓г╓╜╓ч╓╩╓С (errno: %d)", "'%-.64s' ╔у╔║╔╓╔К╓Р╦╚иу╓╠╓К╩Ж╓╛╓г╓╜╓ч╓╩╓С.(errno: %d)", "'%-.64s' ╔г╔ё╔Л╔╞╔х╔Й╓╛фи╓А╓ч╓╩╓С.(errno: %d)", "'%-.64s' ╔г╔ё╔Л╔╞╔х╔Й╓к chdir ╓г╓╜╓ч╓╩╓С.(errno: %d)", @@ -47,8 +47,8 @@ "Out of memory; mysqld ╓╚╓╫╓нб╬╓н╔в╔М╔╩╔╧╓╛╔А╔Б╔Й║╪╓Ра╢╓ф╩х╓ц╓ф╓╓╓К╓╚Ёнг╖╓╥╓ф╓╞╓ю╓╣╓╓. ╔А╔Б╔Й║╪╓Р╩х╓╓юз╓ц╓ф╓╓╓й╓╓╬Л╧Г║╒'ulimit' ╓РюъдЙ╓╥╓ф mysqld ╓н╔А╔Б╔Й║╪╩хмя╦бЁ╕нл╓Рб©╓╞╓╧╓К╓╚║╒swap space ╓РаЩ╓Д╓╥╓ф╓ъ╓ф╓╞╓ю╓╣╓╓", "╓╫╓н address ╓н hostname ╓╛╟З╓╠╓ч╓╩╓С.", "Bad handshake", -"╔Ф║╪╔╤║╪ '%-.32s@%-.64s' ╓н '%-.64s' ╔г║╪╔©╔ы║╪╔╧╓ь╓н╔╒╔╞╔╩╔╧╓Р╣Яхщ╓╥╓ч╓╧", -"╔Ф║╪╔╤║╪ '%-.32s@%-.64s' ╓Р╣Яхщ╓╥╓ч╓╧.(Using password: %s)", +"╔Ф║╪╔╤║╪ '%-.32s'@'%-.64s' ╓н '%-.64s' ╔г║╪╔©╔ы║╪╔╧╓ь╓н╔╒╔╞╔╩╔╧╓Р╣Яхщ╓╥╓ч╓╧", +"╔Ф║╪╔╤║╪ '%-.32s'@'%-.64s' ╓Р╣Яхщ╓╥╓ч╓╧.(Using password: %s)", "╔г║╪╔©╔ы║╪╔╧╓╛а╙бР╓╣╓Л╓ф╓╓╓ч╓╩╓С.", "╓╫╓н╔Ё╔ч╔С╔и╓о╡©║╘", "Column '%-.64s' ╓о null ╓к╓о╓г╓╜╓й╓╓╓н╓г╓╧", @@ -145,8 +145,8 @@ "Got error '%-.64s' from regexp", "Mixing of GROUP columns (MIN(),MAX(),COUNT()...) with no GROUP columns is illegal if there is no GROUP BY clause", "╔Ф║╪╔╤║╪ '%-.32s' (╔ш╔╧╔х '%-.64s' ╓н╔Ф║╪╔╤║╪) ╓о╣Ж╡д╓╣╓Л╓ф╓╓╓ч╓╩╓С", -"╔Ё╔ч╔С╔и %-.16s ╓о ╔Ф║╪╔╤║╪ '%-.32s@%-.64s' ,╔ф║╪╔ж╔К '%-.64s' ╓кбп╓╥╓ф╣Ж╡д╓╣╓Л╓ф╓╓╓ч╓╩╓С", -"╔Ё╔ч╔С╔и %-.16s ╓о ╔Ф║╪╔╤║╪ '%-.32s@%-.64s'\n ╔╚╔И╔Ю '%-.64s' ╔ф║╪╔ж╔К '%-.64s' ╓кбп╓╥╓ф╣Ж╡д╓╣╓Л╓ф╓╓╓ч╓╩╓С", +"╔Ё╔ч╔С╔и %-.16s ╓о ╔Ф║╪╔╤║╪ '%-.32s'@'%-.64s' ,╔ф║╪╔ж╔К '%-.64s' ╓кбп╓╥╓ф╣Ж╡д╓╣╓Л╓ф╓╓╓ч╓╩╓С", +"╔Ё╔ч╔С╔и %-.16s ╓о ╔Ф║╪╔╤║╪ '%-.32s'@'%-.64s'\n ╔╚╔И╔Ю '%-.64s' ╔ф║╪╔ж╔К '%-.64s' ╓кбп╓╥╓ф╣Ж╡д╓╣╓Л╓ф╓╓╓ч╓╩╓С", "Illegal GRANT/REVOKE command. Please consult the manual which privleges can be used.", "The host or user argument to GRANT is too long", "Table '%-.64s.%s' doesn't exist", @@ -214,7 +214,7 @@ "DROP DATABASE not allowed while thread is holding global read lock", "CREATE DATABASE not allowed while thread is holding global read lock", "Wrong arguments to %s", -"%-.32s@%-.64s is not allowed to create new users", +"'%-.32s'@'%-.64s' is not allowed to create new users", "Incorrect table definition; all MERGE tables must be in the same database", "Deadlock found when trying to get lock; Try restarting transaction", "The used table type doesn't support FULLTEXT indexes", @@ -269,3 +269,4 @@ "Illegal mix of collations (%s,%s), (%s,%s), (%s,%s) for operation '%s'", "Illegal mix of collations for operation '%s'", "Variable '%-.64s' is not a variable component (Can't be used as XXXX.variable_name)", +"Unknown collation: '%-.64s'", diff --git a/sql/share/korean/errmsg.txt b/sql/share/korean/errmsg.txt index 8c37b824342..93d86d32937 100644 --- a/sql/share/korean/errmsg.txt +++ b/sql/share/korean/errmsg.txt @@ -17,12 +17,12 @@ "'%-.64s'юг ╩Себ╦╕ ╬РаЖ ╦Ьгъ╫ю╢о╢ы. (©║╥╞╧Ьхё: %d)", "╪ЖгЮ ╣П╥╨еД╦╝╦╕ цёаЖ ╦Ьгъ╫ю╢о╢ы. (©║╥╞╧Ьхё: %d)", "х╜юою╩ юА╠ваЖ(lock) ╦Ьгъ╫ю╢о╢ы. (©║╥╞╧Ьхё: %d)", -"х╜юою╩ ©╜аЖ ╦Ьгъ╫ю╢о╢ы.: '%-.64s'. (©║╥╞╧Ьхё: %d)", +"х╜юою╩ ©╜аЖ ╦Ьгъ╫ю╢о╢ы.: '%-.64s' (©║╥╞╧Ьхё: %d)", "х╜юою╩ цёаЖ ╦Ьгъ╫ю╢о╢ы.: '%-.64s' (©║╥╞╧Ьхё: %d)", "'%-.64s'╣П╥╨еД╦╝╦╕ юпаЖ ╦Ьгъ╫ю╢о╢ы. (©║╥╞╧Ьхё: %d)", "'%-.64s'╣П╥╨еД╦╝╥н юл╣©гр ╪Ж ╬Ь╬З╫ю╢о╢ы. (©║╥╞╧Ьхё: %d)", "евюл╨М '%-.64s'©║╪╜ ╦╤аЖ╦╥ю╦╥н юпю╨ хд Record╟║ ╨╞╟Ф╣г╬З╫ю╢о╢ы.", -"Disk full (%s). ╢ы╦╔ ╩Г╤Вюл аЖ©О╤╖╠НаЖ ╠Б╢ы╦Ё╢о╢ы.....", +"Disk full (%s). ╢ы╦╔ ╩Г╤Вюл аЖ©О╤╖╠НаЖ ╠Б╢ы╦Ё╢о╢ы...", "╠Б╥огр ╪Ж ╬Ью╬╢о╢ы., евюл╨М '%-.64s'©║╪╜ аъ╨╧ е╟", "'%-.64s'╢щ╢б аъ ©║╥╞ (©║╥╞╧Ьхё: %d)", "'%-.64s'х╜юо юп╠Б ©║╥╞ (©║╥╞╧Ьхё: %d)", @@ -45,10 +45,10 @@ "Out of memory; mysqldЁ╙ ╤г╢ы╦╔ га╥н╪╪╪╜©║╪╜ ╩Г©К╟║╢игя ╦ч╦П╦╝╦╕ ╩Г©КгяаЖ ц╓е╘го╫ц©ю. ╦╦╬Ю ╠в╥╦аЖ ╬й╢ы╦И ulimit ╦М╥ию╩ юл©©Кго©╘ ╢У╦╧ю╨ ╦ч╦П╦╝╦╕ ╩Г©Кгр ╪Ж юж╣╣╥о го╟еЁ╙ ╫╨©р ╫╨фпюл╫╨╦╕ аУ╟║╫це╟╫ц©ю", "╢Г╫еюг ддг╩емюг хё╫╨ф╝юл╦╖ю╩ ╬Рю╩ ╪Ж ╬Ью╬╢о╢ы.", "Bad handshake", -"'%-.32s@%-.64s' ╩Г©Кюз╢б '%-.64s' ╣╔юле╦╨ёюл╫╨©║ а╒╠ыюл ╟е╨н ╣г╬З╫ю╢о╢ы.", -"'%-.32s@%-.64s' ╩Г©Кюз╢б а╒╠ыюл ╟е╨н ╣г╬З╫ю╢о╢ы. (Using password: %s)", +"'%-.32s'@'%-.64s' ╩Г©Кюз╢б '%-.64s' ╣╔юле╦╨ёюл╫╨©║ а╒╠ыюл ╟е╨н ╣г╬З╫ю╢о╢ы.", +"'%-.32s'@'%-.64s' ╩Г©Кюз╢б а╒╠ыюл ╟е╨н ╣г╬З╫ю╢о╢ы. (Using password: %s)", "╪╠ец╣х ╣╔юле╦╨ёюл╫╨╟║ ╬Ь╫ю╢о╢ы.", -"╦М╥и╬Н╟║ ╧╨аЖ ╦П╦ё╟з╬Н©Д....", +"╦М╥и╬Н╟║ ╧╨аЖ ╦П╦ё╟з╬Н©Д...", "д╝╥Ё '%-.64s'╢б Ён(Null)юл ╣г╦И ╬х╣к╢о╢ы. ", "╣╔юле╦╨ёюл╫╨ '%-.64s'╢б ╬к╪Ж ╬Ью╫", "евюл╨М '%-.64s'╢б юл╧л а╦юГгт", @@ -143,8 +143,8 @@ "regexp©║╪╜ '%-.64s'╟║ Ё╣╫ю╢о╢ы.", "Mixing of GROUP д╝╥Ёs (MIN(),MAX(),COUNT()...) with no GROUP д╝╥Ёs is illegal if there is no GROUP BY clause", "╩Г©Кюз '%-.32s' (хё╫╨ф╝ '%-.64s')╦╕ ю╖го©╘ а╓юг╣х ╠в╥╠ ╫бюню╨ ╬Ь╫ю╢о╢ы.", -"'%-.16s' ╦М╥ию╨ ╢ыю╫ ╩Г©Кюз©║╟т ╟е╨н╣г╬З╫ю╢о╢ы. : '%-.32s@%-.64s' for евюл╨М '%-.64s'", -"'%-.16s' ╦М╥ию╨ ╢ыю╫ ╩Г©Кюз©║╟т ╟е╨н╣г╬З╫ю╢о╢ы. : '%-.32s@%-.64s' for д╝╥Ё '%-.64s' in евюл╨М '%-.64s'", +"'%-.16s' ╦М╥ию╨ ╢ыю╫ ╩Г©Кюз©║╟т ╟е╨н╣г╬З╫ю╢о╢ы. : '%-.32s'@'%-.64s' for евюл╨М '%-.64s'", +"'%-.16s' ╦М╥ию╨ ╢ыю╫ ╩Г©Кюз©║╟т ╟е╨н╣г╬З╫ю╢о╢ы. : '%-.32s'@'%-.64s' for д╝╥Ё '%-.64s' in евюл╨М '%-.64s'", "юъ╦Ь╣х GRANT/REVOKE ╦М╥и. ╬Н╤╡ ╠г╦╝©м ╫бюнюл ╩Г©К╣г╬Н аЗ ╪Ж юж╢баЖ ╦ч╢╨╬Сю╩ ╨╦╫ц©ю.", "╫бюн(GRANT)ю╩ ю╖го©╘ ╩Г©Кгя ╩Г©КюзЁ╙ хё╫╨ф╝юг ╟╙╣Июл Ёй╧╚ ╠И╢о╢ы.", "евюл╨М '%-.64s.%s' ╢б а╦юГгоаЖ ╬й╫ю╢о╢ы.", @@ -212,7 +212,7 @@ "DROP DATABASE not allowed while thread is holding global read lock", "CREATE DATABASE not allowed while thread is holding global read lock", "Wrong arguments to %s", -"%-.32s@%-.64s is not allowed to create new users", +"'%-.32s'@'%-.64s' is not allowed to create new users", "Incorrect table definition; all MERGE tables must be in the same database", "Deadlock found when trying to get lock; Try restarting transaction", "The used table type doesn't support FULLTEXT indexes", @@ -267,3 +267,4 @@ "Illegal mix of collations (%s,%s), (%s,%s), (%s,%s) for operation '%s'", "Illegal mix of collations for operation '%s'", "Variable '%-.64s' is not a variable component (Can't be used as XXXX.variable_name)", +"Unknown collation: '%-.64s'", diff --git a/sql/share/norwegian-ny/errmsg.txt b/sql/share/norwegian-ny/errmsg.txt index 4e5bed92916..e9319246fc6 100644 --- a/sql/share/norwegian-ny/errmsg.txt +++ b/sql/share/norwegian-ny/errmsg.txt @@ -19,12 +19,12 @@ "Kan ikkje lese statusen til '%-.64s' (Feilkode: %d)", "Kan ikkje lese aktiv katalog(Feilkode: %d)", "Kan ikkje lЕse fila (Feilkode: %d)", -"Kan ikkje Еpne fila: '%-.64s'. (Feilkode: %d)", +"Kan ikkje Еpne fila: '%-.64s' (Feilkode: %d)", "Kan ikkje finne fila: '%-.64s' (Feilkode: %d)", "Kan ikkje lese katalogen '%-.64s' (Feilkode: %d)", "Kan ikkje skifte katalog til '%-.64s' (Feilkode: %d)", "Posten har vorte endra sidan den sist vart lesen '%-.64s'", -"Ikkje meir diskplass (%s). Ventar pЕ Е fЕ frigjort plass....", +"Ikkje meir diskplass (%s). Ventar pЕ Е fЕ frigjort plass...", "Kan ikkje skrive, flere like nyklar i tabellen '%-.64s'", "Feil ved lukking av '%-.64s' (Feilkode: %d)", "Feil ved lesing av '%-.64s' (Feilkode: %d)", @@ -37,8 +37,8 @@ "Tabell hЕndteraren for '%-.64s' har ikkje denne moglegheita", "Kan ikkje finne posten i '%-.64s'", "Feil informasjon i fila: '%-.64s'", -"Tabellen '%-.64s' har feil i nykkelfila, PrЬv Е reparere den", -"Gammel nykkelfil for tabellen '%-.64s'; Reparer den!", +"Tabellen '%-.64s' har feil i nykkelfila; prЬv Е reparere den", +"Gammel nykkelfil for tabellen '%-.64s'; reparer den!", "'%-.64s' er skrivetryggja", "Ikkje meir minne. Start pЕ nytt tenesten og prЬv igjen (trengte %d bytar)", "Ikkje meir sorteringsminne. Auk sorteringsminnet (sorteringsbffer storleik) for tenesten", @@ -47,8 +47,8 @@ "Tomt for trЕd plass/minne", "Kan ikkje fЕ tak i vertsnavn for di adresse", "Feil handtrykk (handshake)", -"Tilgang ikkje tillate for brukar: '%-.32s@%-.64s' til databasen '%-.64s' nekta", -"Tilgang ikke tillate for brukar: '%-.32s@%-.64s' (Brukar passord: %s)", +"Tilgang ikkje tillate for brukar: '%-.32s'@'%-.64s' til databasen '%-.64s' nekta", +"Tilgang ikke tillate for brukar: '%-.32s'@'%-.64s' (Brukar passord: %s)", "Ingen database vald", "Ukjent kommando", "Kolonne '%-.64s' kan ikkje vere null", @@ -145,8 +145,8 @@ "Got error '%-.64s' from regexp", "Mixing of GROUP columns (MIN(),MAX(),COUNT()...) with no GROUP columns is illegal if there is no GROUP BY clause", "There is no such grant defined for user '%-.32s' on host '%-.64s'", -"%-.16s command denied to user: '%-.32s@%-.64s' for table '%-.64s'", -"%-.16s command denied to user: '%-.32s@%-.64s' for column '%-.64s' in table '%-.64s'", +"%-.16s command denied to user: '%-.32s'@'%-.64s' for table '%-.64s'", +"%-.16s command denied to user: '%-.32s'@'%-.64s' for column '%-.64s' in table '%-.64s'", "Illegal GRANT/REVOKE command. Please consult the manual which privleges can be used.", "The host or user argument to GRANT is too long", "Table '%-.64s.%s' doesn't exist", @@ -214,7 +214,7 @@ "DROP DATABASE not allowed while thread is holding global read lock", "CREATE DATABASE not allowed while thread is holding global read lock", "Wrong arguments to %s", -"%-.32s@%-.64s is not allowed to create new users", +"'%-.32s'@'%-.64s' is not allowed to create new users", "Incorrect table definition; all MERGE tables must be in the same database", "Deadlock found when trying to get lock; Try restarting transaction", "The used table type doesn't support FULLTEXT indexes", @@ -269,3 +269,4 @@ "Illegal mix of collations (%s,%s), (%s,%s), (%s,%s) for operation '%s'", "Illegal mix of collations for operation '%s'", "Variable '%-.64s' is not a variable component (Can't be used as XXXX.variable_name)", +"Unknown collation: '%-.64s'", diff --git a/sql/share/norwegian/errmsg.txt b/sql/share/norwegian/errmsg.txt index 4b4f4e6a1f3..edb5854db7e 100644 --- a/sql/share/norwegian/errmsg.txt +++ b/sql/share/norwegian/errmsg.txt @@ -19,12 +19,12 @@ "Kan ikke lese statusen til '%-.64s' (Feilkode: %d)", "Kan ikke lese aktiv katalog(Feilkode: %d)", "Kan ikke lЕse fila (Feilkode: %d)", -"Kan ikke Еpne fila: '%-.64s'. (Feilkode: %d)", +"Kan ikke Еpne fila: '%-.64s' (Feilkode: %d)", "Kan ikke finne fila: '%-.64s' (Feilkode: %d)", "Kan ikke lese katalogen '%-.64s' (Feilkode: %d)", "Kan ikke skifte katalog til '%-.64s' (Feilkode: %d)", "Posten har blitt endret siden den ble lest '%-.64s'", -"Ikke mer diskplass (%s). Venter pЕ Е fЕ frigjort plass....", +"Ikke mer diskplass (%s). Venter pЕ Е fЕ frigjort plass...", "Kan ikke skrive, flere like nЬkler i tabellen '%-.64s'", "Feil ved lukking av '%-.64s' (Feilkode: %d)", "Feil ved lesing av '%-.64s' (Feilkode: %d)", @@ -37,8 +37,8 @@ "Tabell hЕndtereren for '%-.64s' har ikke denne muligheten", "Kan ikke finne posten i '%-.64s'", "Feil informasjon i filen: '%-.64s'", -"Tabellen '%-.64s' har feil i nЬkkelfilen, forsЬk Е reparer den", -"Gammel nЬkkelfil for tabellen '%-.64s'; Reparer den!", +"Tabellen '%-.64s' har feil i nЬkkelfilen; forsЬk Е reparer den", +"Gammel nЬkkelfil for tabellen '%-.64s'; reparer den!", "'%-.64s' er skrivebeskyttet", "Ikke mer minne. Star pЕ nytt tjenesten og prЬv igjen (trengte %d byter)", "Ikke mer sorteringsminne. ьk sorteringsminnet (sort buffer size) for tjenesten", @@ -47,8 +47,8 @@ "Tomt for trЕd plass/minne", "Kan ikke fЕ tak i vertsnavn for din adresse", "Feil hЕndtrykk (handshake)", -"Tilgang nektet for bruker: '%-.32s@%-.64s' til databasen '%-.64s' nektet", -"Tilgang nektet for bruker: '%-.32s@%-.64s' (Bruker passord: %s)", +"Tilgang nektet for bruker: '%-.32s'@'%-.64s' til databasen '%-.64s' nektet", +"Tilgang nektet for bruker: '%-.32s'@'%-.64s' (Bruker passord: %s)", "Ingen database valgt", "Ukjent kommando", "Kolonne '%-.64s' kan ikke vere null", @@ -145,8 +145,8 @@ "Got error '%-.64s' from regexp", "Mixing of GROUP columns (MIN(),MAX(),COUNT()...) with no GROUP columns is illegal if there is no GROUP BY clause", "There is no such grant defined for user '%-.32s' on host '%-.64s'", -"%-.16s command denied to user: '%-.32s@%-.64s' for table '%-.64s'", -"%-.16s command denied to user: '%-.32s@%-.64s' for column '%-.64s' in table '%-.64s'", +"%-.16s command denied to user: '%-.32s'@'%-.64s' for table '%-.64s'", +"%-.16s command denied to user: '%-.32s'@'%-.64s' for column '%-.64s' in table '%-.64s'", "Illegal GRANT/REVOKE command. Please consult the manual which privleges can be used.", "The host or user argument to GRANT is too long", "Table '%-.64s.%s' doesn't exist", @@ -214,7 +214,7 @@ "DROP DATABASE not allowed while thread is holding global read lock", "CREATE DATABASE not allowed while thread is holding global read lock", "Wrong arguments to %s", -"%-.32s@%-.64s is not allowed to create new users", +"'%-.32s'@'%-.64s' is not allowed to create new users", "Incorrect table definition; all MERGE tables must be in the same database", "Deadlock found when trying to get lock; Try restarting transaction", "The used table type doesn't support FULLTEXT indexes", @@ -269,3 +269,4 @@ "Illegal mix of collations (%s,%s), (%s,%s), (%s,%s) for operation '%s'", "Illegal mix of collations for operation '%s'", "Variable '%-.64s' is not a variable component (Can't be used as XXXX.variable_name)", +"Unknown collation: '%-.64s'", diff --git a/sql/share/polish/errmsg.txt b/sql/share/polish/errmsg.txt index cc710376052..27b4d0d661f 100644 --- a/sql/share/polish/errmsg.txt +++ b/sql/share/polish/errmsg.txt @@ -21,12 +21,12 @@ "Nie mo©na otrzymaФ statusu '%-.64s' (Kod bЁЙdu: %d)", "Nie mo©na rozpoznaФ aktualnego katalogu (Kod bЁЙdu: %d)", "Nie mo©na zablokowaФ pliku (Kod bЁЙdu: %d)", -"Nie mo©na otworzyФ pliku: '%-.64s'. (Kod bЁЙdu: %d)", +"Nie mo©na otworzyФ pliku: '%-.64s' (Kod bЁЙdu: %d)", "Nie mo©na znale╔Ф pliku: '%-.64s' (Kod bЁЙdu: %d)", "Nie mo©na odczytaФ katalogu '%-.64s' (Kod bЁЙdu: %d)", "Nie mo©na zmieniФ katalogu na '%-.64s' (Kod bЁЙdu: %d)", "Rekord zostaЁ zmieniony od ostaniego odczytania z tabeli '%-.64s'", -"Dysk peЁny (%s). Oczekiwanie na zwolnienie miejsca....", +"Dysk peЁny (%s). Oczekiwanie na zwolnienie miejsca...", "Nie mo©na zapisaФ, powtСrzone klucze w tabeli '%-.64s'", "BЁ?d podczas zamykania '%-.64s' (Kod bЁЙdu: %d)", "BЁ?d podczas odczytu pliku '%-.64s' (Kod bЁЙdu: %d)", @@ -39,8 +39,8 @@ "ObsЁuga tabeli '%-.64s' nie posiada tej opcji", "Nie mo©na znale╔Ф rekordu w '%-.64s'", "NiewЁa?ciwa informacja w pliku: '%-.64s'", -"NiewЁa?ciwy plik kluczy dla tabeli: '%-.64s'. SprСbuj go naprawiФ", -"Plik kluczy dla tabeli '%-.64s' jest starego typu; Napraw go!", +"NiewЁa?ciwy plik kluczy dla tabeli: '%-.64s'; sprСbuj go naprawiФ", +"Plik kluczy dla tabeli '%-.64s' jest starego typu; napraw go!", "'%-.64s' jest tylko do odczytu", "Zbyt maЁo pamiЙci. Uruchom ponownie demona i sprСbuj ponownie (potrzeba %d bajtСw)", "Zbyt maЁo pamiЙci dla sortowania. ZwiЙksz wielko?Ф bufora demona dla sortowania", @@ -49,8 +49,8 @@ "Zbyt maЁo miejsca/pamiЙci dla w?tku", "Nie mo©na otrzymaФ nazwy hosta dla twojego adresu", "ZЁy uchwyt(handshake)", -"Access denied for user: '%-.32s@%-.64s' to database '%-.64s'", -"Access denied for user: '%-.32s@%-.64s' (Using password: %s)", +"Access denied for user: '%-.32s'@'%-.64s' to database '%-.64s'", +"Access denied for user: '%-.32s'@'%-.64s' (Using password: %s)", "Nie wybrano ©adnej bazy danych", "Nieznana komenda", "Kolumna '%-.64s' nie mo©e byФ null", @@ -147,8 +147,8 @@ "Got error '%-.64s' from regexp", "Mixing of GROUP columns (MIN(),MAX(),COUNT()...) with no GROUP columns is illegal if there is no GROUP BY clause", "There is no such grant defined for user '%-.32s' on host '%-.64s'", -"%-.16s command denied to user: '%-.32s@%-.64s' for table '%-.64s'", -"%-.16s command denied to user: '%-.32s@%-.64s' for column '%-.64s' in table '%-.64s'", +"%-.16s command denied to user: '%-.32s'@'%-.64s' for table '%-.64s'", +"%-.16s command denied to user: '%-.32s'@'%-.64s' for column '%-.64s' in table '%-.64s'", "Illegal GRANT/REVOKE command. Please consult the manual which privleges can be used.", "The host or user argument to GRANT is too long", "Table '%-.64s.%s' doesn't exist", @@ -216,7 +216,7 @@ "DROP DATABASE not allowed while thread is holding global read lock", "CREATE DATABASE not allowed while thread is holding global read lock", "Wrong arguments to %s", -"%-.32s@%-.64s is not allowed to create new users", +"'%-.32s'@'%-.64s' is not allowed to create new users", "Incorrect table definition; all MERGE tables must be in the same database", "Deadlock found when trying to get lock; Try restarting transaction", "The used table type doesn't support FULLTEXT indexes", @@ -271,3 +271,4 @@ "Illegal mix of collations (%s,%s), (%s,%s), (%s,%s) for operation '%s'", "Illegal mix of collations for operation '%s'", "Variable '%-.64s' is not a variable component (Can't be used as XXXX.variable_name)", +"Unknown collation: '%-.64s'", diff --git a/sql/share/portuguese/errmsg.txt b/sql/share/portuguese/errmsg.txt index 14a1e6763b4..60ace09ab33 100644 --- a/sql/share/portuguese/errmsg.txt +++ b/sql/share/portuguese/errmsg.txt @@ -35,8 +35,8 @@ "Manipulador de tabela para '%-.64s' nЦo tem esta opГЦo", "NЦo pode encontrar registro em '%-.64s'", "InformaГЦo incorreta no arquivo '%-.64s'", -"Arquivo de Мndice incorreto para tabela '%-.64s'. Tente reparА-lo", -"Arquivo de Мndice desatualizado para tabela '%-.64s'. Repare-o!", +"Arquivo de Мndice incorreto para tabela '%-.64s'; tente reparА-lo", +"Arquivo de Мndice desatualizado para tabela '%-.64s'; repare-o!", "Tabela '%-.64s' И somente para leitura", "Sem memСria. Reinicie o programa e tente novamente (necessita de %d bytes)", "Sem memСria para ordenaГЦo. Aumente tamanho do 'buffer' de ordenaГЦo", @@ -45,8 +45,8 @@ "Sem memСria. Verifique se o mysqld ou algum outro processo estА usando toda memСria disponМvel. Se nЦo, vocЙ pode ter que usar 'ulimit' para permitir ao mysqld usar mais memСria ou vocЙ pode adicionar mais Аrea de 'swap'", "NЦo pode obter nome do 'host' para seu endereГo", "NegociaГЦo de acesso falhou", -"Acesso negado para o usuАrio '%-.32s@%-.64s' ao banco de dados '%-.64s'", -"Acesso negado para o usuАrio '%-.32s@%-.64s' (senha usada: %s)", +"Acesso negado para o usuАrio '%-.32s'@'%-.64s' ao banco de dados '%-.64s'", +"Acesso negado para o usuАrio '%-.32s'@'%-.64s' (senha usada: %s)", "Nenhum banco de dados foi selecionado", "Comando desconhecido", "Coluna '%-.64s' nЦo pode ser vazia", @@ -143,8 +143,8 @@ "Obteve erro '%-.64s' em regexp", "Mistura de colunas agrupadas (com MIN(), MAX(), COUNT(), ...) com colunas nЦo agrupadas И ilegal, se nЦo existir uma clАusula de agrupamento (clАusula GROUP BY)", "NЦo existe tal permissЦo (grant) definida para o usuАrio '%-.32s' no 'host' '%-.64s'", -"Comando '%-.16s' negado para o usuАrio '%-.32s@%-.64s' na tabela '%-.64s'", -"Comando '%-.16s' negado para o usuАrio '%-.32s@%-.64s' na coluna '%-.64s', na tabela '%-.64s'", +"Comando '%-.16s' negado para o usuАrio '%-.32s'@'%-.64s' na tabela '%-.64s'", +"Comando '%-.16s' negado para o usuАrio '%-.32s'@'%-.64s' na coluna '%-.64s', na tabela '%-.64s'", "Comando GRANT/REVOKE ilegal. Por favor consulte no manual quais privilИgios podem ser usados.", "Argumento de 'host' ou de usuАrio para o GRANT И longo demais", "Tabela '%-.64s.%-.64s' nЦo existe", @@ -212,7 +212,7 @@ "DROP DATABASE nЦo permitido enquanto uma 'thread' estА mantendo um travamento global de leitura", "CREATE DATABASE nЦo permitido enquanto uma 'thread' estА mantendo um travamento global de leitura", "Argumentos errados para %s", -"NЦo И permitido a %-.32s@%-.64s criar novos usuАrios", +"NЦo И permitido a '%-.32s'@'%-.64s' criar novos usuАrios", "DefiniГЦo incorreta da tabela. Todas as tabelas contidas na junГЦo devem estar no mesmo banco de dados.", "Encontrado um travamento fatal (deadlock) quando tentava obter uma trava. Tente reiniciar a transaГЦo.", "O tipo de tabela utilizado nЦo suporta Мndices de texto completo (fulltext indexes)", @@ -267,3 +267,4 @@ "Illegal mix of collations (%s,%s), (%s,%s), (%s,%s) for operation '%s'", "Illegal mix of collations for operation '%s'", "Variable '%-.64s' is not a variable component (Can't be used as XXXX.variable_name)", +"Unknown collation: '%-.64s'", diff --git a/sql/share/romanian/errmsg.txt b/sql/share/romanian/errmsg.txt index f8bbba75a9f..8824d64876a 100644 --- a/sql/share/romanian/errmsg.txt +++ b/sql/share/romanian/errmsg.txt @@ -21,12 +21,12 @@ "Nu pot sa obtin statusul lui '%-.64s' (Eroare: %d)", "Nu pot sa obtin directorul current (working directory) (Eroare: %d)", "Nu pot sa lock fisierul (Eroare: %d)", -"Nu pot sa deschid fisierul: '%-.64s'. (Eroare: %d)", +"Nu pot sa deschid fisierul: '%-.64s' (Eroare: %d)", "Nu pot sa gasesc fisierul: '%-.64s' (Eroare: %d)", "Nu pot sa citesc directorul '%-.64s' (Eroare: %d)", "Nu pot sa schimb directorul '%-.64s' (Eroare: %d)", "Cimpul a fost schimbat de la ultima citire a tabelei '%-.64s'", -"Hard-disk-ul este plin (%s). Astept sa se elibereze ceva spatiu....", +"Hard-disk-ul este plin (%s). Astept sa se elibereze ceva spatiu...", "Nu pot sa scriu (can't write), cheie duplicata in tabela '%-.64s'", "Eroare inchizind '%-.64s' (errno: %d)", "Eroare citind fisierul '%-.64s' (errno: %d)", @@ -39,8 +39,8 @@ "Handlerul tabelei pentru '%-.64s' nu are aceasta optiune", "Nu pot sa gasesc recordul in '%-.64s'", "Informatie incorecta in fisierul: '%-.64s'", -"Cheia fisierului incorecta pentru tabela: '%-.64s'. Incearca s-o repari", -"Cheia fisierului e veche pentru tabela '%-.64s'; Repar-o!", +"Cheia fisierului incorecta pentru tabela: '%-.64s'; incearca s-o repari", +"Cheia fisierului e veche pentru tabela '%-.64s'; repar-o!", "Tabela '%-.64s' e read-only", "Out of memory. Porneste daemon-ul din nou si incearca inca o data (e nevoie de %d bytes)", "Out of memory pentru sortare. Largeste marimea buffer-ului pentru sortare in daemon (sort buffer size)", @@ -49,8 +49,8 @@ "Out of memory; Verifica daca mysqld sau vreun alt proces foloseste toate memoria disponbila. Altfel, trebuie sa folosesi 'ulimit' ca sa permiti lui memoria disponbila. Altfel, trebuie sa folosesi 'ulimit' ca sa permiti lui mysqld sa foloseasca mai multa memorie ori adauga mai mult spatiu pentru swap (swap space)", "Nu pot sa obtin hostname-ul adresei tale", "Prost inceput de conectie (bad handshake)", -"Acces interzis pentru utilizatorul: '%-.32s@%-.64s' la baza de date '%-.64s'", -"Acces interzis pentru utilizatorul: '%-.32s@%-.64s' (Folosind parola: %s)", +"Acces interzis pentru utilizatorul: '%-.32s'@'%-.64s' la baza de date '%-.64s'", +"Acces interzis pentru utilizatorul: '%-.32s'@'%-.64s' (Folosind parola: %s)", "Nici o baza de data nu a fost selectata inca", "Comanda invalida", "Coloana '%-.64s' nu poate sa fie null", @@ -147,8 +147,8 @@ "Eroarea '%-.64s' obtinuta din expresia regulara (regexp)", "Amestecarea de coloane GROUP (MIN(),MAX(),COUNT()...) fara coloane GROUP este ilegala daca nu exista o clauza GROUP BY", "Nu exista un astfel de grant definit pentru utilzatorul '%-.32s' de pe host-ul '%-.64s'", -"Comanda %-.16s interzisa utilizatorului: '%-.32s@%-.64s' pentru tabela '%-.64s'", -"Comanda %-.16s interzisa utilizatorului: '%-.32s@%-.64s' pentru coloana '%-.64s' in tabela '%-.64s'", +"Comanda %-.16s interzisa utilizatorului: '%-.32s'@'%-.64s' pentru tabela '%-.64s'", +"Comanda %-.16s interzisa utilizatorului: '%-.32s'@'%-.64s' pentru coloana '%-.64s' in tabela '%-.64s'", "Comanda GRANT/REVOKE ilegala. Consultati manualul in privinta privilegiilor ce pot fi folosite.", "Argumentul host-ului sau utilizatorului pentru GRANT e prea lung", "Tabela '%-.64s.%-.64s' nu exista", @@ -216,7 +216,7 @@ "DROP DATABASE not allowed while thread is holding global read lock", "CREATE DATABASE not allowed while thread is holding global read lock", "Wrong arguments to %s", -"%-.32s@%-.64s is not allowed to create new users", +"'%-.32s'@'%-.64s' is not allowed to create new users", "Incorrect table definition; all MERGE tables must be in the same database", "Deadlock found when trying to get lock; Try restarting transaction", "The used table type doesn't support FULLTEXT indexes", @@ -271,3 +271,4 @@ "Illegal mix of collations (%s,%s), (%s,%s), (%s,%s) for operation '%s'", "Illegal mix of collations for operation '%s'", "Variable '%-.64s' is not a variable component (Can't be used as XXXX.variable_name)", +"Unknown collation: '%-.64s'", diff --git a/sql/share/russian/errmsg.txt b/sql/share/russian/errmsg.txt index 1981e7e7a5a..ddfc0a8f7de 100644 --- a/sql/share/russian/errmsg.txt +++ b/sql/share/russian/errmsg.txt @@ -19,12 +19,12 @@ "Невозможно получить статусную информацию о '%-.64s' (ошибка: %d)", "Невозможно определить рабочий каталог (ошибка: %d)", "Невозможно поставить блокировку на файле (ошибка: %d)", -"Невозможно открыть файл: '%-.64s'. (ошибка: %d)", +"Невозможно открыть файл: '%-.64s' (ошибка: %d)", "Невозможно найти файл: '%-.64s' (ошибка: %d)", "Невозможно прочитать каталог '%-.64s' (ошибка: %d)", "Невозможно перейти в каталог '%-.64s' (ошибка: %d)", "Запись изменилась с момента последней выборки в таблице '%-.64s'", -"Диск заполнен. (%s). Ожидаем, пока кто-то не уберет после себя мусор....", +"Диск заполнен. (%s). Ожидаем, пока кто-то не уберет после себя мусор...", "Невозможно произвести запись, дублирующийся ключ в таблице '%-.64s'", "Ошибка при закрытии '%-.64s' (ошибка: %d)", "Ошибка чтения файла '%-.64s' (ошибка: %d)", @@ -47,8 +47,8 @@ "Недостаточно памяти; удостоверьтесь, что mysqld или какой-либо другой процесс не занимает всю доступную память. Если нет, то вы можете использовать ulimit, чтобы выделить для mysqld больше памяти, или увеличить объем файла подкачки", "Невозможно получить имя хоста для вашего адреса", "Некорректное приветствие", -"Для пользователя '%-.32s@%-.64s' доступ к базе данных '%-.64s' закрыт", -"Доступ закрыт для пользователя '%-.32s@%-.64s' (был использован пароль: %s)", +"Для пользователя '%-.32s'@'%-.64s' доступ к базе данных '%-.64s' закрыт", +"Доступ закрыт для пользователя '%-.32s'@'%-.64s' (был использован пароль: %s)", "База данных не выбрана", "Неизвестная команда коммуникационного протокола", "Столбец '%-.64s' не может принимать величину NULL", @@ -145,8 +145,8 @@ "Получена ошибка '%-.64s' от регулярного выражения", "Одновременное использование сгруппированных (GROUP) столбцов (MIN(),MAX(),COUNT(),...) с несгруппированными столбцами является некорректным, если в выражении есть GROUP BY", "Такие права не определены для пользователя '%-.32s' на хосте '%-.64s'", -"Команда %-.16s запрещена пользователю '%-.32s@%-.64s' для таблицы '%-.64s'", -"Команда %-.16s запрещена пользователю '%-.32s@%-.64s' для столбца '%-.64s' в таблице '%-.64s'", +"Команда %-.16s запрещена пользователю '%-.32s'@'%-.64s' для таблицы '%-.64s'", +"Команда %-.16s запрещена пользователю '%-.32s'@'%-.64s' для столбца '%-.64s' в таблице '%-.64s'", "Неверная команда GRANT или REVOKE. Обратитесь к документации, чтобы выяснить, какие привилегии можно использовать", "Слишком длинное имя пользователя/хоста для GRANT", "Таблица '%-.64s.%-.64s' не существует", @@ -214,7 +214,7 @@ "Не допускается DROP DATABASE, пока поток держит глобальную блокировку чтения", "Не допускается CREATE DATABASE, пока поток держит глобальную блокировку чтения", "Неверные параметры для %s", -"%-.32s@%-.64s не разрешается создавать новых пользователей", +"'%-.32s'@'%-.64s' не разрешается создавать новых пользователей", "Неверное определение таблицы; Все таблицы в MERGE должны принадлежать одной и той же базе данных", "Возникла тупиковая ситуация в процессе получения блокировки; Попробуйте перезапустить транзакцию", "Используемый тип таблиц не поддерживает полнотекстовых индексов", @@ -269,3 +269,4 @@ "Illegal mix of collations (%s,%s), (%s,%s), (%s,%s) for operation '%s'", "Illegal mix of collations for operation '%s'", "Variable '%-.64s' is not a variable component (Can't be used as XXXX.variable_name)", +"Unknown collation: '%-.64s'", diff --git a/sql/share/serbian/errmsg.txt b/sql/share/serbian/errmsg.txt index e1583bbb791..9e2a37e4053 100644 --- a/sql/share/serbian/errmsg.txt +++ b/sql/share/serbian/errmsg.txt @@ -23,12 +23,12 @@ "Ne mogu da dobijem stanje file-a '%-.64s' (errno: %d)", "Ne mogu da dobijem trenutni direktorijum (errno: %d)", "Ne mogu da zakljuХam file (errno: %d)", -"Ne mogu da otvorim file: '%-.64s'. (errno: %d)", +"Ne mogu da otvorim file: '%-.64s' (errno: %d)", "Ne mogu da pronaПem file: '%-.64s' (errno: %d)", "Ne mogu da proХitam direktorijum '%-.64s' (errno: %d)", "Ne mogu da promenim direktorijum na '%-.64s' (errno: %d)", "Slog je promenjen od zadnjeg Хitanja tabele '%-.64s'", -"Disk je pun (%s). хekam nekoga da doПe i oslobodi ne to mesta....", +"Disk je pun (%s). хekam nekoga da doПe i oslobodi ne to mesta...", "Ne mogu da pi em po to postoji duplirani kljuХ u tabeli '%-.64s'", "Gre ka pri zatvaranju '%-.64s' (errno: %d)", "Gre ka pri Хitanju file-a '%-.64s' (errno: %d)", @@ -41,8 +41,8 @@ "Handler tabela za '%-.64s' nema ovu opciju", "Ne mogu da pronaПem slog u '%-.64s'", "Pogre na informacija u file-u: '%-.64s'", -"Pogre an key file za tabelu: '%-.64s'. Probajte da ga ispravite", -"Zastareo key file za tabelu '%-.64s'; Ispravite ga", +"Pogre an key file za tabelu: '%-.64s'; probajte da ga ispravite", +"Zastareo key file za tabelu '%-.64s'; ispravite ga", "Tabelu '%-.64s' je dozvoljeno samo Хitati", "Nema memorije. Restartujte MySQL server i probajte ponovo (potrebno je %d byte-ova)", "Nema memorije za sortiranje. PoveФajte veliХinu sort buffer-a MySQL server-u", @@ -51,8 +51,8 @@ "Nema memorije; Proverite da li MySQL server ili neki drugi proces koristi svu slobodnu memoriju. (UNIX: Ako ne, probajte da upotrebite 'ulimit' komandu da biste dozvolili daemon-u da koristi vi e memorije ili probajte da dodate vi e swap memorije)", "Ne mogu da dobijem ime host-a za va u IP adresu", "Lo poХetak komunikacije (handshake)", -"Pristup je zabranjen korisniku '%-.32s@%-.64s' za bazu '%-.64s'", -"Pristup je zabranjen korisniku '%-.32s@%-.64s' (koristi lozinku: '%s')", +"Pristup je zabranjen korisniku '%-.32s'@'%-.64s' za bazu '%-.64s'", +"Pristup je zabranjen korisniku '%-.32s'@'%-.64s' (koristi lozinku: '%s')", "Ni jedna baza nije selektovana", "Nepoznata komanda", "Kolona '%-.64s' ne mo·e biti NULL", @@ -149,8 +149,8 @@ "Funkcija regexp je vratila gre ku '%-.64s'", "Upotreba agregatnih funkcija (MIN(),MAX(),COUNT()...) bez 'GROUP' kolona je pogre na ako ne postoji 'GROUP BY' iskaz", "Ne postoji odobrenje za pristup korisniku '%-.32s' na host-u '%-.64s'", -"%-.16s komanda zabranjena za korisnika '%-.32s@%-.64s' za tabelu '%-.64s'", -"%-.16s komanda zabranjena za korisnika '%-.32s@%-.64s' za kolonu '%-.64s' iz tabele '%-.64s'", +"%-.16s komanda zabranjena za korisnika '%-.32s'@'%-.64s' za tabelu '%-.64s'", +"%-.16s komanda zabranjena za korisnika '%-.32s'@'%-.64s' za kolonu '%-.64s' iz tabele '%-.64s'", "Pogre na 'GRANT' odnosno 'REVOKE' komanda. Molim Vas pogledajte u priruХniku koje vrednosti mogu biti upotrebljene.", "Argument 'host' ili 'korisnik' prosleПen komandi 'GRANT' je predugaХak", "Tabela '%-.64s.%-.64s' ne postoji", @@ -218,7 +218,7 @@ "Komanda 'DROP DATABASE' nije dozvoljena dok thread globalno zakljuХava Хitanje podataka", "Komanda 'CREATE DATABASE' nije dozvoljena dok thread globalno zakljuХava Хitanje podataka", "Pogre ni argumenti prosleПeni na %s", -"Korisniku %-.32s@%-.64s nije dozvoljeno da kreira nove korisnike", +"Korisniku '%-.32s'@'%-.64s' nije dozvoljeno da kreira nove korisnike", "Pogre na definicija tabele; sve 'MERGE' tabele moraju biti u istoj bazi podataka", "Unakrsno zakljuХavanje pronaПeno kada sam poku ao da dobijem pravo na zakljuХavanje; Probajte da restartujete transakciju", "Upotrebljeni tip tabele ne podr·ava 'FULLTEXT' indekse", @@ -263,3 +263,4 @@ "Illegal mix of collations (%s,%s), (%s,%s), (%s,%s) for operation '%s'", "Illegal mix of collations for operation '%s'", "Variable '%-.64s' is not a variable component (Can't be used as XXXX.variable_name)", +"Unknown collation: '%-.64s'", diff --git a/sql/share/slovak/errmsg.txt b/sql/share/slovak/errmsg.txt index c6fad79e15a..ed1d8cadb80 100644 --- a/sql/share/slovak/errmsg.txt +++ b/sql/share/slovak/errmsg.txt @@ -25,12 +25,12 @@ "NemТ╬em zisti╩ stav '%-.64s' (chybovЩ kСd: %d)", "NemТ╬em zisti╩ pracovnЩ adresАr (chybovЩ kСd: %d)", "NemТ╬em zamknЗ╩ sЗbor (chybovЩ kСd: %d)", -"NemТ╬em otvori╩ sЗbor: '%-.64s'. (chybovЩ kСd: %d)", +"NemТ╬em otvori╩ sЗbor: '%-.64s' (chybovЩ kСd: %d)", "NemТ╬em nАjs╩ sЗbor: '%-.64s' (chybovЩ kСd: %d)", "NemТ╬em ХМta╩ adresАr '%-.64s' (chybovЩ kСd: %d)", "NemТ╬em vojs╩ do adresАra '%-.64s' (chybovЩ kСd: %d)", "ZАznam bol zmenenЩ od poslednИho ХМtania v tabu╣ke '%-.64s'", -"Disk je plnЩ (%s), ХakАm na uvo╣nenie miesta....", +"Disk je plnЩ (%s), ХakАm na uvo╣nenie miesta...", "NemТ╬em zapМsa╩, duplikАt k╣ЗХa v tabu╣ke '%-.64s'", "Chyba pri zatvАranМ '%-.64s' (chybovЩ kСd: %d)", "Chyba pri ХМtanМ sЗboru '%-.64s' (chybovЩ kСd: %d)", @@ -43,8 +43,8 @@ "Obsluha tabu╣ky '%-.64s' nemА tento parameter", "NemТ╬em nАjs╩ zАznam v '%-.64s'", "NesprАvna informАcia v sЗbore: '%-.64s'", -"NesprАvny k╣ЗХ pre tabu╣ku '%-.64s'. PokЗste sa ho opravi╩", -"StarЩ k╣ЗХovЩ sЗbor pre '%-.64s'; Opravte ho!", +"NesprАvny k╣ЗХ pre tabu╣ku '%-.64s'; pokЗste sa ho opravi╩", +"StarЩ k╣ЗХovЩ sЗbor pre '%-.64s'; opravte ho!", "'%-.64s' is ХМta╩ only", "MАlo pamДti. Re╧tartujte daemona a skЗste znova (je potrebnЩch %d bytov)", "MАlo pamДti pre triedenie, zvЩ╧te ve╣kos╩ triediaceho bufferu", @@ -53,8 +53,8 @@ "MАlo miesta-pamДti pre vlАkno", "NemТ╬em zisti╩ meno hostite╣a pre va╧u adresu", "Chyba pri nadvДzovanМ spojenia", -"ZakАzanЩ prМstup pre u╬Мvate╣a: '%-.32s@%-.64s' k databАzi '%-.64s'", -"ZakАzanЩ prМstup pre u╬Мvate╣a: '%-.32s@%-.64s' (pou╬itie hesla: %s)", +"ZakАzanЩ prМstup pre u╬Мvate╣a: '%-.32s'@'%-.64s' k databАzi '%-.64s'", +"ZakАzanЩ prМstup pre u╬Мvate╣a: '%-.32s'@'%-.64s' (pou╬itie hesla: %s)", "Nebola vybranА databАza", "NeznАmy prМkaz", "Pole '%-.64s' nemТ╬e by╩ null", @@ -151,8 +151,8 @@ "Got error '%-.64s' from regexp", "Mixing of GROUP columns (MIN(),MAX(),COUNT()...) with no GROUP columns is illegal if there is no GROUP BY clause", "There is no such grant defined for user '%-.32s' on host '%-.64s'", -"%-.16s command denied to user: '%-.32s@%-.64s' for table '%-.64s'", -"%-.16s command denied to user: '%-.32s@%-.64s' for column '%-.64s' in table '%-.64s'", +"%-.16s command denied to user: '%-.32s'@'%-.64s' for table '%-.64s'", +"%-.16s command denied to user: '%-.32s'@'%-.64s' for column '%-.64s' in table '%-.64s'", "Illegal GRANT/REVOKE command. Please consult the manual which privleges can be used.", "The host or user argument to GRANT is too long", "Table '%-.64s.%s' doesn't exist", @@ -220,7 +220,7 @@ "DROP DATABASE not allowed while thread is holding global read lock", "CREATE DATABASE not allowed while thread is holding global read lock", "Wrong arguments to %s", -"%-.32s@%-.64s is not allowed to create new users", +"'%-.32s'@'%-.64s' is not allowed to create new users", "Incorrect table definition; all MERGE tables must be in the same database", "Deadlock found when trying to get lock; Try restarting transaction", "The used table type doesn't support FULLTEXT indexes", @@ -275,3 +275,4 @@ "Illegal mix of collations (%s,%s), (%s,%s), (%s,%s) for operation '%s'", "Illegal mix of collations for operation '%s'", "Variable '%-.64s' is not a variable component (Can't be used as XXXX.variable_name)", +"Unknown collation: '%-.64s'", diff --git a/sql/share/spanish/errmsg.txt b/sql/share/spanish/errmsg.txt index 731e576fafd..5f3a2f38109 100644 --- a/sql/share/spanish/errmsg.txt +++ b/sql/share/spanish/errmsg.txt @@ -18,12 +18,12 @@ "No puedo obtener el estado de '%-.64s' (Error: %d)", "No puedo acceder al directorio (Error: %d)", "No puedo bloquear archivo: (Error: %d)", -"No puedo abrir archivo: '%-.64s'. (Error: %d)", +"No puedo abrir archivo: '%-.64s' (Error: %d)", "No puedo encontrar archivo: '%-.64s' (Error: %d)", "No puedo leer el directorio de '%-.64s' (Error: %d)", "No puedo cambiar al directorio de '%-.64s' (Error: %d)", "El registro ha cambiado desde la ultima lectura de la tabla '%-.64s'", -"Disco lleno (%s). Esperando para que se libere algo de espacio....", +"Disco lleno (%s). Esperando para que se libere algo de espacio...", "No puedo escribir, clave duplicada en la tabla '%-.64s'", "Error en el cierre de '%-.64s' (Error: %d)", "Error leyendo el fichero '%-.64s' (Error: %d)", @@ -36,8 +36,8 @@ "El manejador de la tabla de '%-.64s' no tiene esta opcion", "No puedo encontrar el registro en '%-.64s'", "Informacion erronea en el archivo: '%-.64s'", -"Clave de archivo erronea para la tabla: '%-.64s'. Intente repararlo", -"Clave de archivo antigua para la tabla '%-.64s'; Reparelo!", +"Clave de archivo erronea para la tabla: '%-.64s'; intente repararlo", +"Clave de archivo antigua para la tabla '%-.64s'; reparelo!", "'%-.64s' es de solo lectura", "Memoria insuficiente. Reinicie el demonio e intentelo otra vez (necesita %d bytes)", "Memoria de ordenacion insuficiente. Incremente el tamano del buffer de ordenacion", @@ -46,8 +46,8 @@ "Memoria/espacio de tranpaso insuficiente", "No puedo obtener el nombre de maquina de tu direccion", "Protocolo erroneo", -"Acceso negado para usuario: '%-.32s@%-.64s' para la base de datos '%-.64s'", -"Acceso negado para usuario: '%-.32s@%-.64s' (Usando clave: %s)", +"Acceso negado para usuario: '%-.32s'@'%-.64s' para la base de datos '%-.64s'", +"Acceso negado para usuario: '%-.32s'@'%-.64s' (Usando clave: %s)", "Base de datos no seleccionada", "Comando desconocido", "La columna '%-.64s' no puede ser nula", @@ -144,8 +144,8 @@ "Obtenido error '%-.64s' de regexp", "Mezcla de columnas GROUP (MIN(),MAX(),COUNT()...) con no GROUP columnas es ilegal si no hat la clausula GROUP BY", "No existe permiso definido para usuario '%-.32s' en el servidor '%-.64s'", -"%-.16s comando negado para usuario: '%-.32s@%-.64s' para tabla '%-.64s'", -"%-.16s comando negado para usuario: '%-.32s@%-.64s' para columna '%-.64s' en la tabla '%-.64s'", +"%-.16s comando negado para usuario: '%-.32s'@'%-.64s' para tabla '%-.64s'", +"%-.16s comando negado para usuario: '%-.32s'@'%-.64s' para columna '%-.64s' en la tabla '%-.64s'", "Ilegal comando GRANT/REVOKE. Por favor consulte el manual para cuales permisos pueden ser usados.", "El argumento para servidor o usuario para GRANT es demasiado grande", "Tabla '%-.64s.%s' no existe", @@ -213,7 +213,7 @@ "DROP DATABASE no permitido mientras un thread estА ejerciendo un bloqueo de lectura global", "CREATE DATABASE no permitido mientras un thread estА ejerciendo un bloqueo de lectura global", "Wrong arguments to %s", -"%-.32s@%-.64s is not allowed to create new users", +"'%-.32s'@'%-.64s' is not allowed to create new users", "Incorrect table definition; all MERGE tables must be in the same database", "Deadlock found when trying to get lock; Try restarting transaction", "The used table type doesn't support FULLTEXT indexes", @@ -268,3 +268,4 @@ "Illegal mix of collations (%s,%s), (%s,%s), (%s,%s) for operation '%s'", "Illegal mix of collations for operation '%s'", "Variable '%-.64s' is not a variable component (Can't be used as XXXX.variable_name)", +"Unknown collation: '%-.64s'", diff --git a/sql/share/swedish/errmsg.txt b/sql/share/swedish/errmsg.txt index 9e34dbb138a..d108618834e 100644 --- a/sql/share/swedish/errmsg.txt +++ b/sql/share/swedish/errmsg.txt @@ -17,12 +17,12 @@ "Kan inte lДsa filinformationen (stat) frЕn '%-.64s' (Felkod: %d)", "Kan inte inte lДsa aktivt bibliotek. (Felkod: %d)", "Kan inte lЕsa filen. (Felkod: %d)", -"Kan inte anvДnda '%-.64s'. (Felkod: %d)", -"Hittar inte filen '%-.64s'. (Felkod: %d)", -"Kan inte lДsa frЕn bibliotek '%-.64s'. (Felkod: %d)", -"Kan inte byta till '%-.64s'. (Felkod: %d)", +"Kan inte anvДnda '%-.64s' (Felkod: %d)", +"Hittar inte filen '%-.64s' (Felkod: %d)", +"Kan inte lДsa frЕn bibliotek '%-.64s' (Felkod: %d)", +"Kan inte byta till '%-.64s' (Felkod: %d)", "Posten har fЖrДndrats sedan den lДstes i register '%-.64s'", -"Disken Дr full (%s). VДntar tills det finns ledigt utrymme....", +"Disken Дr full (%s). VДntar tills det finns ledigt utrymme...", "Kan inte skriva, dubbel sЖknyckel i register '%-.64s'", "Fick fel vid stДngning av '%-.64s' (Felkod: %d)", "Fick fel vid lДsning av '%-.64s' (Felkod %d)", @@ -35,8 +35,8 @@ "Registrets databas har inte denna facilitet", "Hittar inte posten", "Felaktig fil: '%-.64s'", -"Fatalt fel vid hantering av register '%-.64s'. KЖr en reparation", -"Gammal nyckelfil '%-.64s'. Reparera registret", +"Fatalt fel vid hantering av register '%-.64s'; kЖr en reparation", +"Gammal nyckelfil '%-.64s'; reparera registret", "'%-.64s' Дr skyddad mot fЖrДndring", "OvДntat slut pЕ minnet, starta om programmet och fЖrsЖk pЕ nytt (BehЖvde %d bytes)", "Sorteringsbufferten rДcker inte till. Kontrollera startparametrarna", @@ -45,8 +45,8 @@ "Fick slut pЕ minnet. Kontrollera om mysqld eller nЕgon annan process anvДnder allt tillgДngligt minne. Om inte, fЖrsЖk anvДnda 'ulimit' eller allokera mera swap", "Kan inte hitta 'hostname' fЖr din adress", "Fel vid initiering av kommunikationen med klienten", -"AnvДndare '%-.32s@%-.64s' Дr ej berДttigad att anvДnda databasen %-.64s", -"AnvДndare '%-.32s@%-.64s' Дr ej berДttigad att logga in (AnvДnder lЖsen: %s)", +"AnvДndare '%-.32s'@'%-.64s' Дr ej berДttigad att anvДnda databasen %-.64s", +"AnvДndare '%-.32s'@'%-.64s' Дr ej berДttigad att logga in (AnvДnder lЖsen: %s)", "Ingen databas i anvДndning", "OkДnt commando", "Kolumn '%-.64s' fЕr inte vara NULL", @@ -143,8 +143,8 @@ "Fick fel '%-.64s' frЕn REGEXP", "Man fЕr ha bЕde GROUP-kolumner (MIN(),MAX(),COUNT()...) och fДlt i en frЕga om man inte har en GROUP BY-del", "Det finns inget privilegium definierat fЖr anvДndare '%-.32s' pЕ '%-.64s'", -"%-.16s ej tillЕtet fЖr '%-.32s@%-.64s' fЖr tabell '%-.64s'", -"%-.16s ej tillЕtet fЖr '%-.32s@%-.64s' fЖr kolumn '%-.64s' i tabell '%-.64s'", +"%-.16s ej tillЕtet fЖr '%-.32s'@'%-.64s' fЖr tabell '%-.64s'", +"%-.16s ej tillЕtet fЖr '%-.32s'@'%-.64s' fЖr kolumn '%-.64s' i tabell '%-.64s'", "Felaktigt GRANT-privilegium anvДnt", "Felaktigt maskinnamn eller anvДndarnamn anvДnt med GRANT", "Det finns ingen tabell som heter '%-.64s.%s'", @@ -212,7 +212,7 @@ "DROP DATABASE Дr inte tillЕtet nДr man har ett globalt lДslЕs", "CREATE DATABASE Дr inte tillЕtet nДr man har ett globalt lДslЕs", "Felaktiga argument till %s", -"%-.32s@%-.64s har inte rДttighet att skapa nya anvДndare", +"'%-.32s'@'%-.64s' har inte rДttighet att skapa nya anvДndare", "Felaktig tabelldefinition; alla tabeller i en MERGE-tabell mЕste vara i samma databas", "Fick 'DEADLOCK' vid lЕsfЖrsЖk av block/rad. FЖrsЖk att starta om transaktionen", "Tabelltypen har inte hantering av FULLTEXT-index", @@ -267,3 +267,4 @@ "Illegal mix of collations (%s,%s), (%s,%s), (%s,%s) for operation '%s'", "Illegal mix of collations for operation '%s'", "Variable '%-.64s' is not a variable component (Can't be used as XXXX.variable_name)", +"Unknown collation: '%-.64s'", diff --git a/sql/share/ukrainian/errmsg.txt b/sql/share/ukrainian/errmsg.txt index adbb35dc7c0..96b9f40feac 100644 --- a/sql/share/ukrainian/errmsg.txt +++ b/sql/share/ukrainian/errmsg.txt @@ -40,7 +40,7 @@ "Дескриптор таблиц╕ '%-.64s' не ма╓ ц╕╓╖ властивост╕", "Не можу записати у '%-.64s'", "Хибна ╕нформац╕я у файл╕: '%-.64s'", -"Хибний файл ключей для таблиц╕: '%-.64s'. Спробуйте його в╕дновити", +"Хибний файл ключей для таблиц╕: '%-.64s'; Спробуйте його в╕дновити", "Старий файл ключей для таблиц╕ '%-.64s'; В╕днов╕ть його!", "Таблиця '%-.64s' т╕льки для читання", "Брак пам'ят╕. Рестартуйте сервер та спробуйте знову (потр╕бно %d байт╕в)", @@ -50,8 +50,8 @@ "Брак пам'ят╕; Перев╕рте чи mysqld або як╕сь ╕нш╕ процеси використовують усю доступну пам'ять. Як н╕, то ви можете скористатися 'ulimit', аби дозволити mysqld використовувати б╕льше пам'ят╕ або ви можете додати б╕льше м╕сця п╕д свап", "Не можу визначити ╕м'я хосту для вашо╖ адреси", "Нев╕рна установка зв'язку", -"Доступ заборонено для користувача: '%-.32s@%-.64s' до бази данних '%-.64s'", -"Доступ заборонено для користувача: '%-.32s@%-.64s' (Використано пароль: %s)", +"Доступ заборонено для користувача: '%-.32s'@'%-.64s' до бази данних '%-.64s'", +"Доступ заборонено для користувача: '%-.32s'@'%-.64s' (Використано пароль: %s)", "Базу данних не вибрано", "Нев╕дома команда", "Стовбець '%-.64s' не може бути нульовим", @@ -148,8 +148,8 @@ "Отримано помилку '%-.64s' в╕д регулярного виразу", "Зм╕шування GROUP стовбц╕в (MIN(),MAX(),COUNT()...) з не GROUP стовбцями ╓ забороненим, якщо не ма╓ GROUP BY", "Повноважень не визначено для користувача '%-.32s' з хосту '%-.64s'", -"%-.16s команда заборонена користувачу: '%-.32s@%-.64s' у таблиц╕ '%-.64s'", -"%-.16s команда заборонена користувачу: '%-.32s@%-.64s' для стовбця '%-.64s' у таблиц╕ '%-.64s'", +"%-.16s команда заборонена користувачу: '%-.32s'@'%-.64s' у таблиц╕ '%-.64s'", +"%-.16s команда заборонена користувачу: '%-.32s'@'%-.64s' для стовбця '%-.64s' у таблиц╕ '%-.64s'", "Хибна GRANT/REVOKE команда. Прочитайте документац╕ю стосовно того, як╕ права можна використовувати.", "Аргумент host або user для GRANT задовгий", "Таблиця '%-.64s.%-.64s' не ╕сну╓", @@ -217,7 +217,7 @@ "DROP DATABASE не дозволено доки г╕лка перебува╓ п╕д загальним блокуванням читання", "CREATE DATABASE не дозволено доки г╕лка перебува╓ п╕д загальним блокуванням читання", "Хибний аргумент для %s", -"Користувачу %-.32s@%-.64s не дозволено створювати нових користувач╕в", +"Користувачу '%-.32s'@'%-.64s' не дозволено створювати нових користувач╕в", "Incorrect table definition; all MERGE tables must be in the same database", "Deadlock found when trying to get lock; Try restarting transaction", "Використаний тип таблиц╕ не п╕дтриму╓ FULLTEXT ╕ндекс╕в", @@ -272,3 +272,4 @@ "Illegal mix of collations (%s,%s), (%s,%s), (%s,%s) for operation '%s'", "Illegal mix of collations for operation '%s'", "Variable '%-.64s' is not a variable component (Can't be used as XXXX.variable_name)", +"Unknown collation: '%-.64s'", diff --git a/sql/slave.cc b/sql/slave.cc index c45c11f8bef..37979576b73 100644 --- a/sql/slave.cc +++ b/sql/slave.cc @@ -1565,6 +1565,48 @@ int register_slave_on_master(MYSQL* mysql) } +/* + Builds a String from a HASH of TABLE_RULE_ENT. Cannot be used for any other + hash, as it assumes that the hash entries are TABLE_RULE_ENT. + + SYNOPSIS + table_rule_ent_hash_to_str() + s pointer to the String to fill + h pointer to the HASH to read + + RETURN VALUES + none +*/ + +void table_rule_ent_hash_to_str(String* s, HASH* h) +{ + s->length(0); + for (uint i=0 ; i < h->records ; i++) + { + TABLE_RULE_ENT* e= (TABLE_RULE_ENT*) hash_element(h, i); + if (s->length()) + s->append(','); + s->append(e->db,e->key_len); + } +} + +/* + Mostly the same thing as above +*/ + +void table_rule_ent_dynamic_array_to_str(String* s, DYNAMIC_ARRAY* a) +{ + s->length(0); + for (uint i=0 ; i < a->elements ; i++) + { + TABLE_RULE_ENT* e; + get_dynamic(a, (gptr)&e, i); + if (s->length()) + s->append(','); + s->append(e->db,e->key_len); + } +} + int show_master_info(THD* thd, MASTER_INFO* mi) { // TODO: fix this for multi-master @@ -1594,6 +1636,10 @@ int show_master_info(THD* thd, MASTER_INFO* mi) field_list.push_back(new Item_empty_string("Slave_SQL_Running", 3)); field_list.push_back(new Item_empty_string("Replicate_do_db", 20)); field_list.push_back(new Item_empty_string("Replicate_ignore_db", 20)); + field_list.push_back(new Item_empty_string("Replicate_do_table", 20)); + field_list.push_back(new Item_empty_string("Replicate_ignore_table", 23)); + field_list.push_back(new Item_empty_string("Replicate_wild_do_table", 24)); + field_list.push_back(new Item_empty_string("Replicate_wild_ignore_table", 28)); field_list.push_back(new Item_return_int("Last_errno", 4, MYSQL_TYPE_LONG)); field_list.push_back(new Item_empty_string("Last_error", 20)); field_list.push_back(new Item_return_int("Skip_counter", 10, @@ -1626,6 +1672,23 @@ int show_master_info(THD* thd, MASTER_INFO* mi) protocol->store(mi->rli.slave_running ? "Yes":"No", &my_charset_bin); protocol->store(&replicate_do_db); protocol->store(&replicate_ignore_db); + /* + We can't directly use some protocol->store for + replicate_*_table, + as Protocol doesn't know the TABLE_RULE_ENT struct. + We first build Strings and then pass them to protocol->store. + */ + char buf[256]; + String tmp(buf, sizeof(buf), &my_charset_bin); + table_rule_ent_hash_to_str(&tmp, &replicate_do_table); + protocol->store(&tmp); + table_rule_ent_hash_to_str(&tmp, &replicate_ignore_table); + protocol->store(&tmp); + table_rule_ent_dynamic_array_to_str(&tmp, &replicate_wild_do_table); + protocol->store(&tmp); + table_rule_ent_dynamic_array_to_str(&tmp, &replicate_wild_ignore_table); + protocol->store(&tmp); + protocol->store((uint32) mi->rli.last_slave_errno); protocol->store(mi->rli.last_slave_error, &my_charset_bin); protocol->store((uint32) mi->rli.slave_skip_counter); diff --git a/sql/slave.h b/sql/slave.h index 429456eb0bb..668fff52d08 100644 --- a/sql/slave.h +++ b/sql/slave.h @@ -398,6 +398,8 @@ int mysql_table_dump(THD* thd, const char* db, int fetch_master_table(THD* thd, const char* db_name, const char* table_name, MASTER_INFO* mi, MYSQL* mysql); +void table_rule_ent_hash_to_str(String* s, HASH* h); +void table_rule_ent_dynamic_array_to_str(String* s, DYNAMIC_ARRAY* a); int show_master_info(THD* thd, MASTER_INFO* mi); int show_binlog_info(THD* thd); diff --git a/sql/sql_acl.cc b/sql/sql_acl.cc index 1bdca7167e8..598ff153cad 100644 --- a/sql/sql_acl.cc +++ b/sql/sql_acl.cc @@ -590,7 +590,6 @@ ulong acl_getroot(THD *thd, const char *host, const char *ip, const char *user, /* OK. User found and password checked continue validation */ -#ifdef HAVE_OPENSSL { Vio *vio=thd->net.vio; /* @@ -604,6 +603,7 @@ ulong acl_getroot(THD *thd, const char *host, const char *ip, const char *user, case SSL_TYPE_NONE: /* SSL is not required to connect */ user_access=acl_user->access; break; +#ifdef HAVE_OPENSSL case SSL_TYPE_ANY: /* Any kind of SSL is good enough */ if (vio_type(vio) == VIO_TYPE_SSL) user_access=acl_user->access; @@ -686,11 +686,17 @@ ulong acl_getroot(THD *thd, const char *host, const char *ip, const char *user, free(ptr); } break; +#else /* HAVE_OPENSSL */ + default: + /* + If we don't have SSL but SSL is required for this user the + authentication should fail. + */ + break; +#endif /* HAVE_OPENSSL */ } } -#else /* HAVE_OPENSSL */ - user_access=acl_user->access; -#endif /* HAVE_OPENSSL */ + *mqh=acl_user->user_resource; if (!acl_user->user) *priv_user=(char*) ""; // Change to anonymous user /* purecov: inspected */ @@ -877,7 +883,7 @@ static void acl_insert_db(const char *user, const char *host, const char *db, *****************************************************************************/ ulong acl_get(const char *host, const char *ip, const char *bin_ip, - const char *user, const char *db) + const char *user, const char *db, my_bool db_is_pattern) { ulong host_access,db_access; uint i,key_length; @@ -911,7 +917,7 @@ ulong acl_get(const char *host, const char *ip, const char *bin_ip, { if (compare_hostname(&acl_db->host,host,ip)) { - if (!acl_db->db || !wild_compare(db,acl_db->db)) + if (!acl_db->db || !wild_compare(db,acl_db->db,db_is_pattern)) { db_access=acl_db->access; if (acl_db->host.hostname) @@ -933,7 +939,7 @@ ulong acl_get(const char *host, const char *ip, const char *bin_ip, ACL_HOST *acl_host=dynamic_element(&acl_hosts,i,ACL_HOST*); if (compare_hostname(&acl_host->host,host,ip)) { - if (!acl_host->db || !wild_compare(db,acl_host->db)) + if (!acl_host->db || !wild_compare(db,acl_host->db,db_is_pattern)) { host_access=acl_host->access; // Fully specified. Take it break; @@ -1271,7 +1277,7 @@ static bool compare_hostname(const acl_host_and_ip *host, const char *hostname, return (!host->hostname || (hostname && !wild_case_compare(&my_charset_latin1, hostname,host->hostname)) || - (ip && !wild_compare(ip,host->hostname))); + (ip && !wild_compare(ip,host->hostname,0))); } @@ -1331,7 +1337,7 @@ static bool test_if_create_new_users(THD *thd) tl.db= (char*) "mysql"; tl.real_name= (char*) "user"; db_access=acl_get(thd->host, thd->ip, (char*) &thd->remote.sin_addr, - thd->priv_user, tl.db); + thd->priv_user, tl.db, 0); if (!(db_access & INSERT_ACL)) { if (check_grant(thd,INSERT_ACL,&tl,0,1)) diff --git a/sql/sql_acl.h b/sql/sql_acl.h index e6c6771253c..ca976f43999 100644 --- a/sql/sql_acl.h +++ b/sql/sql_acl.h @@ -134,7 +134,7 @@ my_bool acl_init(THD *thd, bool dont_read_acl_tables); void acl_reload(THD *thd); void acl_free(bool end=0); ulong acl_get(const char *host, const char *ip, const char *bin_ip, - const char *user, const char *db); + const char *user, const char *db, my_bool db_is_pattern); ulong acl_getroot(THD *thd, const char *host, const char *ip, const char *user, const char *password,const char *scramble, char **priv_user, char *priv_host, diff --git a/sql/sql_base.cc b/sql/sql_base.cc index c51dc65ac11..05f6827951b 100644 --- a/sql/sql_base.cc +++ b/sql/sql_base.cc @@ -147,7 +147,7 @@ OPEN_TABLE_LIST *list_open_tables(THD *thd, const char *wild) if (wild) { strxmov(name,entry->table_cache_key,".",entry->real_name,NullS); - if (wild_compare(name,wild)) + if (wild_compare(name,wild,0)) continue; } @@ -2372,7 +2372,11 @@ fill_record(List<Item> &fields,List<Item> &values, bool ignore_errors) while ((field=(Item_field*) f++)) { value=v++; - if (value->save_in_field(field->field, 0) > 0 && !ignore_errors) + Field *rfield= field->field; + TABLE *table= rfield->table; + if (rfield == table->next_number_field) + table->auto_increment_field_not_null= true; + if (value->save_in_field(rfield, 0) > 0 && !ignore_errors) DBUG_RETURN(1); } DBUG_RETURN(0); @@ -2390,6 +2394,9 @@ fill_record(Field **ptr,List<Item> &values, bool ignore_errors) while ((field = *ptr++)) { value=v++; + TABLE *table= field->table; + if (field == table->next_number_field) + table->auto_increment_field_not_null= true; if (value->save_in_field(field, 0) == 1 && !ignore_errors) DBUG_RETURN(1); } diff --git a/sql/sql_cache.cc b/sql/sql_cache.cc index ac6471e794c..767a1a46dcc 100644 --- a/sql/sql_cache.cc +++ b/sql/sql_cache.cc @@ -1422,10 +1422,10 @@ ulong Query_cache::init_cache() DUMP(this); - VOID(hash_init(&queries,system_charset_info,def_query_hash_size, 0, 0, + VOID(hash_init(&queries, &my_charset_bin, def_query_hash_size, 0, 0, query_cache_query_get_key, 0, 0)); #ifndef FN_NO_CASE_SENCE - VOID(hash_init(&tables,system_charset_info,def_table_hash_size, 0, 0, + VOID(hash_init(&tables, &my_charset_bin, def_table_hash_size, 0, 0, query_cache_table_get_key, 0, 0)); #else // windows, OS/2 or other case insensitive file names work around diff --git a/sql/sql_db.cc b/sql/sql_db.cc index f8cf1eee0c5..34e81402dd0 100644 --- a/sql/sql_db.cc +++ b/sql/sql_db.cc @@ -127,7 +127,7 @@ static bool load_db_opt(THD *thd, const char *path, HA_CREATE_INFO *create) { if (!(create->table_charset=get_charset_by_name(pos+1, MYF(0)))) { - sql_print_error(ER(ER_UNKNOWN_CHARACTER_SET),pos+1); + sql_print_error(ER(ER_UNKNOWN_COLLATION),pos+1); } } } @@ -591,7 +591,7 @@ bool mysql_change_db(THD *thd, const char *name) db_access=DB_ACLS; else db_access= (acl_get(thd->host,thd->ip,(char*) &thd->remote.sin_addr, - thd->priv_user,dbname) | + thd->priv_user,dbname,0) | thd->master_access); if (!(db_access & DB_ACLS) && (!grant_option || check_grant_db(thd,dbname))) { @@ -625,8 +625,8 @@ bool mysql_change_db(THD *thd, const char *name) strmov(path+unpack_dirname(path,path), MY_DB_OPT_FILE); load_db_opt(thd, path, &create); - thd->db_charset= create.table_charset ? - create.table_charset : + thd->db_charset= create.table_charset ? + create.table_charset : global_system_variables.character_set_database; thd->variables.character_set_database= thd->db_charset; DBUG_RETURN(0); @@ -644,18 +644,18 @@ int mysqld_show_create_db(THD *thd, char *dbname, uint create_options = create_info ? create_info->options : 0; Protocol *protocol=thd->protocol; DBUG_ENTER("mysql_show_create_db"); - + if (check_db_name(dbname)) { net_printf(thd,ER_WRONG_DB_NAME, dbname); DBUG_RETURN(1); } - + if (test_all_bits(thd->master_access,DB_ACLS)) db_access=DB_ACLS; else db_access= (acl_get(thd->host,thd->ip,(char*) &thd->remote.sin_addr, - thd->priv_user,dbname) | + thd->priv_user,dbname,0) | thd->master_access); if (!(db_access & DB_ACLS) && (!grant_option || check_grant_db(thd,dbname))) { @@ -669,7 +669,7 @@ int mysqld_show_create_db(THD *thd, char *dbname, dbname); DBUG_RETURN(1); } - + (void) sprintf(path,"%s/%s",mysql_data_home, dbname); length=unpack_dirname(path,path); // Convert if not unix found_libchar= 0; diff --git a/sql/sql_derived.cc b/sql/sql_derived.cc index c61e8f42343..9ed26bc4062 100644 --- a/sql/sql_derived.cc +++ b/sql/sql_derived.cc @@ -126,7 +126,8 @@ int mysql_derived(THD *thd, LEX *lex, SELECT_LEX_UNIT *unit, item_list= select_cursor->item_list; select_cursor->with_wild= 0; if (setup_ref_array(thd, &select_cursor->ref_pointer_array, - (item_list.elements + select_cursor->select_items + + (item_list.elements + + select_cursor->select_n_having_items + select_cursor->order_list.elements + select_cursor->group_list.elements)) || setup_fields(thd, select_cursor->ref_pointer_array, first_table, diff --git a/sql/sql_lex.cc b/sql/sql_lex.cc index a4b4aa7f7b3..84a4ec4ed5b 100644 --- a/sql/sql_lex.cc +++ b/sql/sql_lex.cc @@ -455,6 +455,13 @@ int yylex(void *arg, void *yythd) } case MY_LEX_CHAR: // Unknown or single char token case MY_LEX_SKIP: // This should not happen + if (c == '-' && yyPeek() == '-' && + (my_isspace(cs,yyPeek2()) || + my_iscntrl(cs,yyPeek2()))) + { + state=MY_LEX_COMMENT; + break; + } yylval->lex_str.str=(char*) (lex->ptr=lex->tok_start);// Set to first chr yylval->lex_str.length=1; c=yyGet(); @@ -545,7 +552,7 @@ int yylex(void *arg, void *yythd) /* Note: "SELECT _bla AS 'alias'" _bla should be considered as a IDENT if charset haven't been found. - So we don't use MYF(MY_WME) with get_charset_by_name to avoid + So we don't use MYF(MY_WME) with get_charset_by_csname to avoid producing an error. */ @@ -694,37 +701,6 @@ int yylex(void *arg, void *yythd) lex->next_state= MY_LEX_START; return(IDENT); } - case MY_LEX_SIGNED_NUMBER: // Incomplete signed number - if (prev_state == MY_LEX_OPERATOR_OR_IDENT) - { - if (c == '-' && yyPeek() == '-' && - (my_isspace(cs,yyPeek2()) || - my_iscntrl(cs,yyPeek2()))) - state=MY_LEX_COMMENT; - else - state= MY_LEX_CHAR; // Must be operator - break; - } - if (!my_isdigit(cs,c=yyGet()) || yyPeek() == 'x') - { - if (c != '.') - { - if (c == '-' && my_isspace(cs,yyPeek())) - state= MY_LEX_COMMENT; - else - state= MY_LEX_CHAR; // Return sign as single char - break; - } - yyUnget(); // Fix for next loop - } - while (my_isdigit(cs,c=yyGet())) ; // Incomplete real or int number - if ((c == 'e' || c == 'E') && - (yyPeek() == '+' || yyPeek() == '-' || my_isdigit(cs,yyPeek()))) - { // Real number - yyUnget(); - c= '.'; // Fool next test - } - // fall through case MY_LEX_INT_OR_REAL: // Compleat int or incompleat real if (c != '.') { // Found complete integer number. @@ -983,7 +959,7 @@ void st_select_lex_node::init_select() order_list.next= (byte**) &order_list.first; select_limit= HA_POS_ERROR; offset_limit= 0; - select_items= 0; + select_n_having_items= 0; with_sum_func= 0; parsing_place= SELECT_LEX_NODE::NO_MATTER; } @@ -1010,7 +986,8 @@ void st_select_lex::init_query() join= 0; where= 0; olap= UNSPECIFIED_OLAP_TYPE; - insert_select= having_fix_field= 0; + having_fix_field= 0; + resolve_mode= NOMATTER_MODE; with_wild= 0; } diff --git a/sql/sql_lex.h b/sql/sql_lex.h index e8fff47d7f5..207e6f7b031 100644 --- a/sql/sql_lex.h +++ b/sql/sql_lex.h @@ -206,8 +206,12 @@ public: ha_rows select_limit, offset_limit; /* LIMIT clause parameters */ // Arrays of pointers to top elements of all_fields list Item **ref_pointer_array; - - uint select_items; /* number of items in select_list */ + /* + number of items in select_list and HAVING clause used to get number + bigger then can be number of entries that will be added to all item + list during split_sum_func + */ + uint select_n_having_items; uint cond_count; /* number of arguments of and/or/xor in where/having */ enum_parsing_place parsing_place; /* where we are parsing expression */ bool with_sum_func; /* sum function indicator */ @@ -362,14 +366,27 @@ public: bool braces; /* SELECT ... UNION (SELECT ... ) <- this braces */ /* TRUE when having fix field called in processing of this SELECT */ bool having_fix_field; + /* - TRUE for primary st_select_lex structure of simple INSERT/REPLACE + SELECT for SELECT command st_select_lex. Used to privent scaning + item_list of non-SELECT st_select_lex (no sense find to finding + reference in it (all should be in tables, it is dangerouse due + to order of fix_fields calling for non-SELECTs commands (item list + can be not fix_fieldsd)). This value will be assigned for + primary select (sql_yac.yy) and for any subquery and + UNION SELECT (sql_parse.cc mysql_new_select()) + + + INSERT for primary st_select_lex structure of simple INSERT/REPLACE (used for name resolution, see Item_fiels & Item_ref fix_fields, FALSE for INSERT/REPLACE ... SELECT, because it's st_select_lex->table_list will be preprocessed (first table removed) before passing to handle_select) + + NOMATTER for other */ - bool insert_select; + enum {NOMATTER_MODE, SELECT_MODE, INSERT_MODE} resolve_mode; + void init_query(); void init_select(); diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index abf809c0c5e..76d1c512848 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -549,6 +549,7 @@ check_connections(THD *thd) char *end, *user, *passwd, *db; char prepared_scramble[SCRAMBLE41_LENGTH+4]; /* Buffer for scramble&hash */ ACL_USER* cached_user=NULL; /* Initialise to NULL for first stage */ + String convdb; DBUG_PRINT("info",("New connection received on %s", vio_description(net->vio))); @@ -724,7 +725,12 @@ check_connections(THD *thd) db=0; using_password= test(passwd[0]); if (thd->client_capabilities & CLIENT_CONNECT_WITH_DB) + { db=strend(passwd)+1; + convdb.copy(db, strlen(db), + thd->variables.character_set_client, system_charset_info); + db= convdb.c_ptr(); + } /* We can get only old hash at this point */ if (using_password && strlen(passwd) != SCRAMBLE_LENGTH) @@ -1125,10 +1131,15 @@ bool dispatch_command(enum enum_server_command command, THD *thd, thd->lex.select_lex.options=0; // We store status here switch (command) { case COM_INIT_DB: - statistic_increment(com_stat[SQLCOM_CHANGE_DB],&LOCK_status); - if (!mysql_change_db(thd,packet)) - mysql_log.write(thd,command,"%s",thd->db); - break; + { + String convname; + statistic_increment(com_stat[SQLCOM_CHANGE_DB],&LOCK_status); + convname.copy(packet, strlen(packet), + thd->variables.character_set_client, system_charset_info); + if (!mysql_change_db(thd,convname.c_ptr())) + mysql_log.write(thd,command,"%s",thd->db); + break; + } #ifndef EMBEDDED_LIBRARY case COM_REGISTER_SLAVE: { @@ -3262,7 +3273,7 @@ check_access(THD *thd, ulong want_access, const char *db, ulong *save_priv, if (!(thd->master_access & SELECT_ACL) && (db && (!thd->db || strcmp(db,thd->db)))) db_access=acl_get(thd->host, thd->ip, (char*) &thd->remote.sin_addr, - thd->priv_user, db); /* purecov: inspected */ + thd->priv_user, db, test(want_access & GRANT_ACL)); *save_priv=thd->master_access | db_access; DBUG_RETURN(FALSE); } @@ -3282,7 +3293,7 @@ check_access(THD *thd, ulong want_access, const char *db, ulong *save_priv, if (db && (!thd->db || strcmp(db,thd->db))) db_access=acl_get(thd->host, thd->ip, (char*) &thd->remote.sin_addr, - thd->priv_user, db); /* purecov: inspected */ + thd->priv_user, db, test(want_access & GRANT_ACL)); else db_access=thd->db_access; // Remove SHOW attribute and access rights we already have @@ -3558,6 +3569,7 @@ mysql_new_select(LEX *lex, bool move_down) unit->link_prev= 0; unit->return_to= lex->current_select; select_lex->include_down(unit); + // TODO: assign resolve_mode for fake subquery after merging with new tree } else select_lex->include_neighbour(lex->current_select); @@ -3565,6 +3577,7 @@ mysql_new_select(LEX *lex, bool move_down) select_lex->master_unit()->global_parameters= select_lex; select_lex->include_global((st_select_lex_node**)&lex->all_selects_list); lex->current_select= select_lex; + select_lex->resolve_mode= SELECT_LEX::SELECT_MODE; return 0; } diff --git a/sql/sql_select.cc b/sql/sql_select.cc index 0aa7e67a12b..7803e87572d 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -294,7 +294,8 @@ JOIN::prepare(Item ***rref_pointer_array, fields_list, &all_fields, wild_num))) || setup_ref_array(thd, rref_pointer_array, (fields_list.elements + - select_lex->select_items + + select_lex-> + select_n_having_items + og_num)) || setup_fields(thd, (*rref_pointer_array), tables_list, fields_list, 1, &all_fields, 1) || diff --git a/sql/sql_select.h b/sql/sql_select.h index 7de9007369e..76960876158 100644 --- a/sql/sql_select.h +++ b/sql/sql_select.h @@ -259,7 +259,7 @@ class JOIN :public Sql_alloc bool rollup_init(); bool rollup_make_fields(List<Item> &all_fields, List<Item> &fields, Item_sum ***func); - int JOIN::rollup_send_data(uint idx); + int rollup_send_data(uint idx); }; diff --git a/sql/sql_show.cc b/sql/sql_show.cc index e8cb59e387e..9084269f486 100644 --- a/sql/sql_show.cc +++ b/sql/sql_show.cc @@ -75,7 +75,7 @@ mysqld_show_dbs(THD *thd,const char *wild) { if (thd->master_access & (DB_ACLS | SHOW_DB_ACL) || acl_get(thd->host, thd->ip, (char*) &thd->remote.sin_addr, - thd->priv_user, file_name) || + thd->priv_user, file_name,0) || (grant_option && !check_grant_db(thd, file_name))) { protocol->prepare_for_resend(); @@ -415,7 +415,7 @@ mysql_find_files(THD *thd,List<char> *files, const char *db,const char *path, #endif { if (file->name[0] == '.' || !MY_S_ISDIR(file->mystat.st_mode) || - (wild && wild_compare(file->name,wild))) + (wild && wild_compare(file->name,wild,0))) continue; } } @@ -433,7 +433,7 @@ mysql_find_files(THD *thd,List<char> *files, const char *db,const char *path, if (wild_case_compare(system_charset_info,file->name,wild)) continue; } - else if (wild_compare(file->name,wild)) + else if (wild_compare(file->name,wild,0)) continue; } } @@ -1031,7 +1031,7 @@ store_create_info(THD *thd, TABLE *table, String *packet) my_bool limited_mysql_mode= (thd->variables.sql_mode & (MODE_NO_FIELD_OPTIONS | MODE_MYSQL323 | MODE_MYSQL40)) != 0; - + DBUG_ENTER("store_create_info"); DBUG_PRINT("enter",("table: %s",table->real_name)); diff --git a/sql/sql_union.cc b/sql/sql_union.cc index 724cc658b15..5f3fbadc99a 100644 --- a/sql/sql_union.cc +++ b/sql/sql_union.cc @@ -159,7 +159,8 @@ int st_select_lex_unit::prepare(THD *thd, select_result *sel_result, item_list= select_cursor->item_list; select_cursor->with_wild= 0; if (setup_ref_array(thd, &select_cursor->ref_pointer_array, - (item_list.elements + select_cursor->select_items + + (item_list.elements + + select_cursor->select_n_having_items + select_cursor->order_list.elements + select_cursor->group_list.elements)) || setup_fields(thd, select_cursor->ref_pointer_array, first_table, diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy index e475fa1d052..e028889f960 100644 --- a/sql/sql_yacc.yy +++ b/sql/sql_yacc.yy @@ -74,7 +74,7 @@ inline Item *or_or_concat(THD *thd, Item* A, Item* B) enum row_type row_type; enum ha_rkey_function ha_rkey_mode; enum enum_tx_isolation tx_isolation; - enum Item_cast cast_type; + enum Cast_target cast_type; enum Item_udftype udf_type; CHARSET_INFO *charset; thr_lock_type lock_type; @@ -547,7 +547,6 @@ bool my_yyoverflow(short **a, YYSTYPE **b,int *yystacksize); %token SUBJECT_SYM %token CIPHER_SYM -%token HELP %token BEFORE_SYM %left SET_VAR %left OR_OR_CONCAT OR @@ -1412,7 +1411,7 @@ collation_name: { if (!($$=get_charset_by_name($1.str,MYF(0)))) { - net_printf(YYTHD,ER_UNKNOWN_CHARACTER_SET,$1.str); + net_printf(YYTHD,ER_UNKNOWN_COLLATION,$1.str); YYABORT; } }; @@ -1951,7 +1950,12 @@ opt_ignore_leaves: select: - select_init { Lex->sql_command=SQLCOM_SELECT; }; + select_init + { + LEX *lex= Lex; + lex->sql_command= SQLCOM_SELECT; + lex->select_lex.resolve_mode= SELECT_LEX::SELECT_MODE; + }; /* Need select_init2 for subselects. */ select_init: @@ -2334,7 +2338,8 @@ simple_expr: YYABORT; } | sum_expr - | '-' expr %prec NEG { $$= new Item_func_neg($2); } + | '+' expr %prec NEG { $$= $2; } + | '-' expr %prec NEG { $$= new Item_func_neg($2); } | '~' expr %prec NEG { $$= new Item_func_bit_neg($2); } | NOT expr %prec NEG { $$= new Item_func_not($2); } | '!' expr %prec NEG { $$= new Item_func_not($2); } @@ -3441,7 +3446,7 @@ insert: lex->sql_command = SQLCOM_INSERT; /* for subselects */ lex->lock_option= (using_update_log) ? TL_READ_NO_INSERT : TL_READ; - lex->select_lex.insert_select= 1; + lex->select_lex.resolve_mode= SELECT_LEX::INSERT_MODE; } insert_lock_option opt_ignore insert2 { @@ -3457,7 +3462,7 @@ replace: LEX *lex=Lex; lex->sql_command = SQLCOM_REPLACE; lex->duplicates= DUP_REPLACE; - lex->select_lex.insert_select= 1; + lex->select_lex.resolve_mode= SELECT_LEX::INSERT_MODE; } replace_lock_option insert2 { @@ -3526,7 +3531,7 @@ insert_values: it is not simple select => table list will be preprocessed before passing to handle_select */ - lex->select_lex.insert_select= 0; + lex->select_lex.resolve_mode= SELECT_LEX::NOMATTER_MODE; lex->current_select->parsing_place= SELECT_LEX_NODE::SELECT_LIST; } select_options select_item_list @@ -4178,7 +4183,7 @@ literal: Lex->next_state=MY_LEX_OPERATOR_OR_IDENT;} | HEX_NUM { $$ = new Item_varbinary($1.str,$1.length);} | UNDERSCORE_CHARSET HEX_NUM - { + { Item *tmp= new Item_varbinary($2.str,$2.length); String *str= tmp ? tmp->val_str((String*) 0) : (String*) 0; $$ = new Item_string(str ? str->ptr() : "", str ? str->length() : 0, @@ -4350,8 +4355,6 @@ ident: LEX *lex= Lex; $$.str= lex->thd->strmake($1.str,$1.length); $$.length=$1.length; - if (lex->next_state != MY_LEX_END) - lex->next_state= MY_LEX_OPERATOR_OR_IDENT; } ; diff --git a/sql/table.cc b/sql/table.cc index 0fc2a09f749..1cee0587f17 100644 --- a/sql/table.cc +++ b/sql/table.cc @@ -138,7 +138,7 @@ int openfrm(const char *name, const char *alias, uint db_stat, uint prgflag, outparam->raid_chunks= head[42]; outparam->raid_chunksize= uint4korr(head+43); if (!(outparam->table_charset=get_charset((uint) head[38],MYF(0)))) - outparam->table_charset=NULL; // QQ display error message? + outparam->table_charset=default_charset_info; // QQ display error message? null_field_first=1; } outparam->db_record_offset=1; @@ -398,8 +398,7 @@ int openfrm(const char *name, const char *alias, uint db_stat, uint prgflag, if (!strpos[14]) charset= &my_charset_bin; else if (!(charset=get_charset((uint) strpos[14], MYF(0)))) - charset= (outparam->table_charset ? outparam->table_charset: - default_charset_info); + charset= outparam->table_charset; } if (!comment_length) { @@ -423,8 +422,7 @@ int openfrm(const char *name, const char *alias, uint db_stat, uint prgflag, /* old frm file */ field_type= (enum_field_types) f_packtype(pack_flag); - charset=(outparam->table_charset ? outparam->table_charset : - default_charset_info); + charset=f_is_binary(pack_flag) ? &my_charset_bin : outparam->table_charset; bzero((char*) &comment, sizeof(comment)); } *field_ptr=reg_field= @@ -599,7 +597,7 @@ int openfrm(const char *name, const char *alias, uint db_stat, uint prgflag, } keyinfo->usable_key_parts=usable_parts; // Filesort } - if (primary_key < MAX_KEY && + if (primary_key < MAX_KEY && (outparam->keys_in_use & ((key_map) 1 << primary_key))) { outparam->primary_key=primary_key; diff --git a/sql/table.h b/sql/table.h index ad5908ae5c2..16ff8c0ce07 100644 --- a/sql/table.h +++ b/sql/table.h @@ -143,6 +143,7 @@ struct st_table { my_bool crashed; my_bool is_view; my_bool no_keyread; + my_bool auto_increment_field_not_null; Field *next_number_field, /* Set if next_number is activated */ *found_next_number_field, /* Set on open */ *rowid_field; |